${el}
` 126 | } 127 | 128 | function populateList(firstChar, el) { 129 | tempList.push(el) 130 | currentList = firstChar 131 | } 132 | 133 | function createTitle(el) { 134 | const count = (el.match(/#/g)).length; 135 | return `${el.substring(2)}` 140 | } 141 | 142 | function createImages(el) { 143 | let imgElem = el.substring( 144 | el.lastIndexOf("[") + 1, 145 | el.lastIndexOf("]") 146 | ); 147 | el = el.split(/\[|\]/) 148 | let elem = ""; 149 | el.forEach(e => { 150 | if (e === imgElem) { 151 | e = e.split(",") 152 | let alt = e.length > 1 ? `alt="${e[1].trim()}"` : "" 153 | let img = `
"
227 | opening = false
228 | } else if (e === "`" && opening === false) {
229 | e = "
"
230 | opening = true
231 | }
232 | elem = elem + e
233 | });
234 | return elem
235 | }
236 |
237 |
238 |
239 | //DEMO STUFF
240 | const formated = document.querySelector('.normal');
241 | const htmldemo = document.querySelector('.html');
242 | let demo = document.querySelector('textarea');
243 |
244 | document.addEventListener('keyup', triggerDemo)
245 |
246 | function triggerDemo() {
247 | let demotext = parser(demo.value)
248 | formated.innerHTML = ""
249 | htmldemo.textContent = ""
250 | formated.innerHTML = demotext;
251 | htmldemo.textContent = demotext;
252 | }
253 |
254 | triggerDemo()
--------------------------------------------------------------------------------
/old/parser_v2.js:
--------------------------------------------------------------------------------
1 | const symbol = [
2 | "\n",
3 | "*",
4 | "_",
5 | "`",
6 | ">",
7 | "#",
8 | "[",
9 | "]",
10 | "{",
11 | "}",
12 | "-",
13 | "?",
14 | "+"
15 | ]
16 |
17 | function isProcessing(status) {
18 | return status.bold || status.italic || status.code || status.blockquote || status.title || status.image || status.link || status.list
19 | }
20 |
21 | function assert(condition) {
22 | if (condition) {
23 | return
24 | } else {
25 | throw "Assert error";
26 | }
27 | }
28 |
29 |
30 | function parser(text) {
31 |
32 | //outbuffer is the final rendered text
33 | const outBuffer = [];
34 |
35 | //acc contains text being processed
36 | const acc = [];
37 |
38 | let titleAcc = [];
39 | let titleCount = "";
40 |
41 | const listAcc = []
42 | let listType = undefined
43 |
44 |
45 | //status define what type of text is being processed
46 | const status = {
47 | paragraph: false,
48 | bold: false,
49 | italic: false,
50 | code: false,
51 | citation: false,
52 | space: false,
53 | image: false,
54 | link: false,
55 | list: false,
56 | linebreak: false
57 | };
58 |
59 |
60 | //Replacing line break chars
61 | const formated = text.replace(/\r\n/g, "\n").replace(/\n\s*\n/g, '\n');
62 |
63 |
64 | for (var i = 0; i < formated.length; ++i) {
65 | const c = formated[i]
66 |
67 | //If acc has value and no process is running
68 | //Then push acc content into outBuffer
69 | //Reset acc content
70 | if(listAcc.length <= 0) {
71 |
72 | if (acc.length && !isProcessing(status)) {
73 | outBuffer.push(acc.join(''))
74 | acc.length = 0
75 | }
76 | }
77 |
78 | //Check if character contains one of the symbols
79 | const s = symbol.find(x => x == c)
80 |
81 | //If not a syntax character
82 | //And we're not processing anything
83 | //Then push the symbol inside outbuffer
84 | // PLUS checks if new line or end of document
85 | if (!s && !isProcessing(status)) {
86 | status.linebreak = false
87 | if(listAcc.length) {
88 | const lst = createList(listAcc, listType);
89 | outBuffer.push(lst)
90 | listAcc.length = 0
91 | listType = undefined
92 | }
93 | if ((i + 1) == (formated.length) && status.paragraph) {
94 | const p = `${c}`;
95 | status.paragraph = false;
96 | outBuffer.push(p)
97 | continue;
98 | }
99 | if (!status.paragraph && c !== " ") {
100 | status.paragraph = true;
101 | const p = `${c}`; 102 | outBuffer.push(p) 103 | continue; 104 | } 105 | 106 | outBuffer.push(c) 107 | continue; 108 | } 109 | 110 | //If a syntax character 111 | if (!!s) { 112 | //Then which one? 113 | switch (s) { 114 | // Symbols with similar starter and ender 115 | case "*": 116 | //If status is true 117 | //End it 118 | //Add closing html into acc 119 | if (status.bold) { 120 | status.bold = false 121 | acc.push('') 122 | } 123 | //if status is true 124 | //start it 125 | //Push starting html into acc 126 | else { 127 | acc.push('') 128 | status.bold = true 129 | } 130 | if ((i + 1) == (formated.length) && status.paragraph) { 131 | acc.push('
') 132 | status.paragraph = false; 133 | if (acc.length && !isProcessing(status)) { 134 | outBuffer.push(acc.join('').trim()) 135 | } 136 | } 137 | continue 138 | case "_": 139 | if (status.link || status.image) { 140 | acc.push(c) 141 | continue 142 | } 143 | if (status.italic) { 144 | status.italic = false 145 | acc.push('') 146 | } 147 | else { 148 | acc.push('') 149 | status.italic = true 150 | } 151 | if ((i + 1) == (formated.length) && status.paragraph) { 152 | acc.push('') 153 | status.paragraph = false; 154 | if (acc.length && !isProcessing(status)) { 155 | outBuffer.push(acc.join('').trim()) 156 | } 157 | } 158 | continue; 159 | case "`": 160 | if (status.code) { 161 | status.code = false 162 | acc.push('') 163 | } else { 164 | acc.push('')
165 | status.code = true
166 | }
167 | if ((i + 1) == (formated.length) && status.paragraph) {
168 | acc.push('')
169 | status.paragraph = false;
170 | if (acc.length && !isProcessing(status)) {
171 | outBuffer.push(acc.join('').trim())
172 | }
173 | }
174 | continue;
175 | case ">":
176 | if (!status.blockquote) {
177 | acc.push('')
178 | status.blockquote = true
179 | status.space = true
180 | }
181 | continue;
182 | case "#":
183 | titleAcc.push('#')
184 | status.title = true
185 | status.space = true
186 | continue;
187 | case "[":
188 | acc.push(c)
189 | status.image = true
190 | continue
191 | case "]":
192 | acc.push(c)
193 | const img = createImages(acc.join(''))
194 | acc.splice(0, acc.length)
195 | acc.push(img)
196 | status.image = false
197 | if ((i + 1) == (formated.length)) {
198 | if (acc.length && !isProcessing(status)) {
199 | outBuffer.push(acc.join('').trim())
200 | }
201 | }
202 | continue
203 | case "{":
204 | acc.push(c)
205 | status.link = true
206 | continue
207 | case "}":
208 | acc.push(c)
209 | const link = createLink(acc.join(''))
210 | acc.splice(0, acc.length)
211 | acc.push(link)
212 | status.link = false
213 | if ((i + 1) == (formated.length)) {
214 | if (acc.length && !isProcessing(status)) {
215 | outBuffer.push(acc.join('').trim())
216 | }
217 | }
218 | continue
219 | case "-":
220 | case "?":
221 | case "+":
222 | if (status.linebreak) {
223 | if(status.list === false && listType !== c) {
224 | const lst = createList(listAcc, listType);
225 | outBuffer.push(lst)
226 | listAcc.length = 0
227 | listType = undefined
228 | }
229 | status.list = true
230 | listType = c
231 | acc.push(c)
232 |
233 |
234 | } else {
235 | outBuffer.push(c)
236 | }
237 |
238 | continue
239 | case "\n":
240 | status.linebreak = true
241 |
242 | if (status.paragraph) {
243 | acc.push('')
244 | status.paragraph = false
245 | }
246 | if (status.blockquote) {
247 | acc.push('
')
248 | status.blockquote = false
249 | if ((i + 1) == (formated.length)) {
250 | if (acc.length && !isProcessing(status)) {
251 | outBuffer.push(acc.join('').trim())
252 | }
253 | }
254 | }
255 | if (status.title) {
256 | acc.push(``)
257 | status.title = false
258 | if ((i + 1) == (formated.length)) {
259 | if (acc.length && !isProcessing(status)) {
260 | outBuffer.push(acc.join('').trim())
261 | }
262 | }
263 | }
264 | if (status.list) {
265 | acc.push(c)
266 | listAcc.push(acc.join('').trim())
267 | status.list = false
268 | acc.length = 0
269 | }
270 | continue;
271 | }
272 | }
273 |
274 |
275 | //If acc is not empty
276 | //And we're not processing anything special anymore
277 | //Then push the acc content inside outBuffer
278 | if (acc.length && !isProcessing(status)) {
279 | outBuffer.push(acc.join('').trim())
280 | }
281 |
282 | //If we are processing something
283 | //Then push it into acc
284 | //And don't send it yet to outbuffer
285 | assert(isProcessing(status) === true)
286 |
287 | if (status.space) {
288 | status.space = false
289 | } else {
290 | if (titleAcc.length) {
291 | acc.push(`${c}`)
292 | titleCount = titleAcc.length
293 | titleAcc.length = []
294 | } else if (status.blockquote) {
295 | acc.push(c)
296 | } else {
297 | acc.push(c)
298 | }
299 | }
300 | }
301 |
302 |
303 | //Retunr completed text
304 | return outBuffer.join('');
305 | }
306 |
307 | function createImages(el) {
308 | let imgElem = el.substring(
309 | el.lastIndexOf("[") + 1,
310 | el.lastIndexOf("]")
311 | );
312 | el = el.split(/\[|\]/)
313 | let elem = "";
314 | el.forEach(e => {
315 | if (e === imgElem) {
316 | e = e.split(",")
317 | let alt = e.length > 1 ? ` alt="${e[1].trim()}"` : ""
318 | let img = `
`
319 |
320 | if (e.length > 2) {
321 | let caption = `${e[2].trim()} `
322 | e = `${img}${caption} `
323 | } else {
324 | e = img
325 | }
326 | }
327 | elem = elem + e
328 | });
329 | return elem
330 | }
331 |
332 | function createLink(el) {
333 | let linkElem = el.substring(
334 | el.lastIndexOf("{") + 1,
335 | el.lastIndexOf("}")
336 | );
337 | el = el.split(/{|}/)
338 |
339 | let elem = "";
340 | el.forEach(e => {
341 | if (e === linkElem) {
342 | e = e.split(",")
343 | const aria = e.length > 2 ? ` aria-label="${e[2].trim()}"` : ""
344 | e = `${e[1].trim()}`
345 | }
346 | elem = elem + e
347 | });
348 | return elem
349 | }
350 |
351 |
352 | function createList(tempList, type) {
353 |
354 | let listType = undefined
355 | switch (type) {
356 | case "-":
357 | listType = "ul"
358 | break;
359 | case "+":
360 | listType = "ol"
361 | break;
362 | case "?":
363 | listType = "dl"
364 | break;
365 | }
366 |
367 | if (listType === "ul" || listType === "ol") {
368 | let listItems = ""
369 | tempList.forEach(item => {
370 | listItems = listItems + `${item.substring(1).trim()} `
371 | });
372 | tempList = []
373 | listItems = `<${listType}>${listItems}${listType}>\n`
374 | return listItems
375 | } else {
376 | let listItems = ""
377 | tempList.forEach(item => {
378 | item = item.split(":")
379 | const term = item[0].substring(1).trim()
380 | const definition = item[1].trim()
381 | listItems = listItems + `${term} ${definition} `
382 | });
383 | tempList = []
384 | listItems = `<${listType}>${listItems}${listType}>\n`
385 | return listItems
386 | }
387 | }
388 |
389 | // //DEMO STUFF
390 | const formated = document.querySelector('article');
391 | let demo = document.querySelector('textarea');
392 |
393 | document.addEventListener('keyup', triggerDemo)
394 |
395 | function triggerDemo() {
396 | let demotext = parser(demo.value)
397 | formated.innerHTML = ""
398 | formated.innerHTML = demotext;
399 | }
400 |
401 | triggerDemo()
--------------------------------------------------------------------------------
/old/parser_v3.js:
--------------------------------------------------------------------------------
1 | const pregReplace = function (a, b, c, d) {
2 | void 0 === d && (d = -1);
3 | var e = a.substr(a.lastIndexOf(a[0]) + 1),
4 | f = a.substr(1, a.lastIndexOf(a[0]) - 1),
5 | g = RegExp(f, e),
6 | i = [],
7 | j = 0,
8 | k = 0,
9 | l = c,
10 | m = [];
11 | if (-1 === d) {
12 | do m = g.exec(c), null !== m && i.push(m); while (null !== m && -1 !== e.indexOf("g"))
13 | } else i.push(g.exec(c));
14 | for (j = i.length - 1; j > -1; j--) {
15 | for (m = b, k = i[j].length; k > -1; k--) m = m.replace("${" + k + "}", i[j][k]).replace("$" + k, i[j][k]).replace("\\" + k, i[j][k]);
16 | l = l.replace(i[j][0], m)
17 | }
18 | return l
19 | };
20 |
21 | const parser = function (str) {
22 | const rules = [
23 | // headers
24 | ['/(#+)(.*)/g', function (chars, item) {
25 | const level = chars.length
26 | return createTitle(level, item)
27 | }],
28 | // code fences
29 | ['/`{3,}(?!.*`)/g', '', '
'],
30 | // code
31 | ['/(\\`)(.*?)\\1/g', function (char, item) {
32 | const code = item.replace(/<')
33 | return `${code}
`
34 | }],
35 | // images
36 | ['/\\n\\[([^\\[]+)\\]/g', function (item) {
37 | return createImages(item)
38 | }],
39 | // videos
40 | ['/\\n\\|([^\\|]+)\\|/g', function (item) {
41 | return createMultimedia(item)/
42 | }],
43 | // link
44 | ['/\\{([^\\{]+)\\}/g', function (item) {
45 | return createLink(item)
46 | }],
47 | // bold
48 | ['/(\\*)(.*?)\\1/g', '\\2'],
49 | // emphasis
50 | ['/(\\_)(.*?)\\1/g', '\\2'],
51 | // strike
52 | ['/(\\~)(.*?)\\1/g', '- \n
- ' + item.trim() + ' \n
- \n
- ' + item.trim() + ' \n
${line}
\n` 85 | }] 86 | ] 87 | const fixes = [ 88 | ['/<\\/ul>\n- /g', '\n'],
89 | ['/<\\/ol>\n
- ${term}
- ${definition}
- $1
- $1
- $1
- $2
- /g, " \n
- ")
101 | .replace(/<\/em>/g, "__")
102 | .replace(/<\/strong>/g, "**")
103 | .replace(/
<\/del>/g, "~~"); 104 | 105 | return cleanedText; 106 | } 107 | 108 | function parseTitles(character, titleContent) { 109 | const lvl = character.length; 110 | const titleId = toKebab(titleContent).trim(); 111 | const html = `${titleContent.trim()} \n\n`; 112 | return html; 113 | } 114 | 115 | function parseLinks(linkContent) { 116 | const linkData = /^(.+?(?=text:|title:|label:|$))/.exec(linkContent); 117 | const textData = /text:(.+?(?=title:|label:|$))/.exec(linkContent); 118 | const titleData = /title:(.+?(?=text:|label:|$))/.exec(linkContent); 119 | const labelData = /label:(.+?(?=text:|title:|$))/.exec(linkContent); 120 | const link = linkData ? `href="${linkData[1].trim()}"` : ""; 121 | const text = textData ? textData[1].trim() : linkData[1].trim(); 122 | const title = titleData ? ` title="${titleData[1].trim()}"` : ""; 123 | const label = labelData ? ` aria-label="${labelData[1].trim()}"` : ""; 124 | const html = `${text}`; 125 | return html; 126 | } 127 | 128 | function parseImage(imgContent) { 129 | const linkData = 130 | /^.+?(?=figcaption|(.jpg)|(.jpeg)|(.png)|alt:|figcaption|$)/.exec( 131 | imgContent 132 | ); 133 | const altData = /alt:(.+?(?=figcaption|$))/.exec(imgContent); 134 | const figcaptionData = /figcaption:(.+?(?=alt|$))/.exec(imgContent); 135 | const link = linkData ? linkData[0].trim() : ""; 136 | const extension = 137 | linkData[1] || linkData[2] || linkData[3] 138 | ? linkData[1] || linkData[2] || linkData[3] 139 | : ""; 140 | const alt = altData ? `alt="${altData[1].trim()}"` : ""; 141 | const figcaption = figcaptionData 142 | ? `${figcaptionData[1].trim()} ` 143 | : ""; 144 | 145 | // Uncomment this for picture + srcset 146 | const html = `${ 147 | figcaption ? "" : "" 148 | } " : "" 152 | }`; 153 | return html; 154 | 155 | // if (figcaption) { 156 | // const html = ` ${figcaption} ${ 151 | figcaption ? " ` 157 | // return html 158 | // } else { 159 | // const html = `${figcaption}
` 160 | // return html 161 | // } 162 | } 163 | 164 | function parseVideo(videoContent) { 165 | const videoData = /^(.+?(?=autoplay|figcaption|$))/.exec(videoContent); 166 | const autoplayData = / autoplay/.exec(videoContent); 167 | const figcaptionData = /figcaption:(.+?(?=autoplay|$))/.exec(videoContent); 168 | const link = videoData ? `src="${videoData[1].trim()}"` : ""; 169 | const controls = autoplayData 170 | ? "autoplay playsinline loop mute" 171 | : "controls playsinline"; 172 | const format = /\.mp4|\.webm|\.mov/.exec(link); 173 | const source = `type="video/${format.toString().slice(1)}"`; 174 | const figcaption = figcaptionData 175 | ? `
${figcaptionData[1].trim()} ` 176 | : ""; 177 | const html = `${ 178 | figcaptionData ? "" : "" 179 | }${figcaption}${ 180 | figcaptionData ? " " : "" 181 | }`; 182 | return html; 183 | } 184 | 185 | function parseQuote(quoteContent) { 186 | const quoteData = /^(.+?(?=author|source|link|$))/.exec(quoteContent); 187 | const authorData = /author:(.+?(?=source|link|$))/.exec(quoteContent); 188 | const sourceData = /source:(.+?(?=author|link|$))/.exec(quoteContent); 189 | const linkData = /link:(.+?(?=author|source|$))/.exec(quoteContent); 190 | const quote = quoteData ? quoteData[1].trim() : false; 191 | const author = authorData ? authorData[1].trim() : false; 192 | const source = sourceData ? sourceData[1].trim() : false; 193 | const link = linkData ? linkData[1].trim() : false; 194 | const cite = link ? `cite="${link}"` : ""; 195 | 196 | let figcaption = ""; 197 | if (author && !source && !link) { 198 | figcaption = `— ${author} `; 199 | } else if (author && source && !link) { 200 | figcaption = `— ${author}, ${source} `; 201 | } else if (author && source && link) { 202 | figcaption = `— ${author}, ${source} `; 203 | } else if (!author && source && link) { 204 | figcaption = `${source} `; 205 | } else if (!author && !source && link) { 206 | figcaption = `${link} `; 207 | } else if (!author && source && !link) { 208 | figcaption = `${source} `; 209 | } 210 | 211 | const html = ` `; 212 | return html; 213 | } 214 | 215 | function toKebab(text) { 216 | const toKebabCase = 217 | text && 218 | text 219 | .match( 220 | /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g 221 | ) 222 | .map((x) => x.toLowerCase()) 223 | .join("-"); 224 | return toKebabCase; 225 | } 226 | export { parser as default }; 227 | -------------------------------------------------------------------------------- /src/parser.js: -------------------------------------------------------------------------------- 1 | function parser(text) { 2 | const blocks = text.split(/\n\n/g); 3 | let parsedText = ""; 4 | for (let i = 0; i < blocks.length; i++) { 5 | const el = blocks[i]; 6 | const codeRegex = new RegExp("^```\n(.+)\n```", "sgim"); 7 | const codeTest = codeRegex.test(el); 8 | 9 | if (!codeTest) { 10 | let tempText = el 11 | .replace(/^(#) (.*$)/gim, function (char, item, item2) { 12 | return parseTitles(item, item2); 13 | }) // h1 tag 14 | .replace(/^(##) (.*$)/gim, function (char, item, item2) { 15 | return parseTitles(item, item2); 16 | }) // h2 tag 17 | .replace(/^(###) (.*$)/gim, function (char, item, item2) { 18 | return parseTitles(item, item2); 19 | }) // h3 tag 20 | .replace(/^(####) (.*$)/gim, function (char, item, item2) { 21 | return parseTitles(item, item2); 22 | }) // h4 tag 23 | .replace(/^(#####) (.*$)/gim, function (char, item, item2) { 24 | return parseTitles(item, item2); 25 | }) // h5 tag 26 | .replace(/^(######) (.*$)/gim, function (char, item, item2) { 27 | return parseTitles(item, item2); 28 | }) // h6 tag 29 | .replace(/\`(.*?)\`/gim, function (char, item) { 30 | if (item.includes("<")) { 31 | return `${quote}
${figcaption}${item.replace(/<")}
`; 32 | } else { 33 | return `${item}
`; 34 | } 35 | }) // strong text 36 | .replace(/^----$/gim, "
") // hr tag 37 | .replace( 38 | /(^|\(|\s)_(.*?)_(\s|\.|\,|\?|\!|\n|\)|\b)/gim, 39 | "$1$2$3" 40 | ) // em text 41 | .replace(/\*(.*?)\*/gim, "$1") // strong text 42 | .replace(/\~(.*?)\~/gim, "$1") // strike text 43 | .replace(/^- (.*$)/gim, "- $1
- $1
- $1
- $2
${tempText.trim()}
\n\n`; 68 | } 69 | 70 | if (tempText) { 71 | parsedText += tempText; 72 | } 73 | } else if (codeTest) { 74 | const splitCode = el.trim().split("\n"); 75 | splitCode.shift(); 76 | splitCode.pop(); 77 | const cleanedCode = []; 78 | splitCode.forEach((el) => { 79 | if (el.includes("<")) { 80 | cleanedCode.push(el.replace(/<")); 81 | } else { 82 | cleanedCode.push(el); 83 | } 84 | }); 85 | const tempText = `
\n\n`; 88 | if (tempText) { 89 | parsedText += tempText; 90 | } 91 | } 92 | } 93 | 94 | const cleanedText = parsedText 95 | .replace(/<\/ul>\n\n\n${cleanedCode.join( 86 | "\n" 87 | )}\n
- /g, "")
96 | .replace(/<\/ol>\n\n\n
- /g, " \n
- ")
101 | .replace(/<\/em>/g, "__")
102 | .replace(/<\/strong>/g, "**")
103 | .replace(/
<\/del>/g, "~~"); 104 | 105 | return cleanedText; 106 | } 107 | 108 | function parseTitles(character, titleContent) { 109 | const lvl = character.length; 110 | const titleId = toKebab(titleContent).trim(); 111 | const html = `${titleContent.trim()} \n\n`; 112 | return html; 113 | } 114 | 115 | function parseLinks(linkContent) { 116 | const linkData = /^(.+?(?=text:|title:|label:|$))/.exec(linkContent); 117 | const textData = /text:(.+?(?=title:|label:|$))/.exec(linkContent); 118 | const titleData = /title:(.+?(?=text:|label:|$))/.exec(linkContent); 119 | const labelData = /label:(.+?(?=text:|title:|$))/.exec(linkContent); 120 | const link = linkData ? `href="${linkData[1].trim()}"` : ""; 121 | const text = textData ? textData[1].trim() : linkData[1].trim(); 122 | const title = titleData ? ` title="${titleData[1].trim()}"` : ""; 123 | const label = labelData ? ` aria-label="${labelData[1].trim()}"` : ""; 124 | const html = `${text}`; 125 | return html; 126 | } 127 | 128 | function parseImage(imgContent) { 129 | const linkData = 130 | /^.+?(?=figcaption|(.jpg)|(.jpeg)|(.png)|alt:|figcaption|$)/.exec( 131 | imgContent 132 | ); 133 | const altData = /alt:(.+?(?=figcaption|$))/.exec(imgContent); 134 | const figcaptionData = /figcaption:(.+?(?=alt|$))/.exec(imgContent); 135 | const link = linkData ? linkData[0].trim() : ""; 136 | const extension = 137 | linkData[1] || linkData[2] || linkData[3] 138 | ? linkData[1] || linkData[2] || linkData[3] 139 | : ""; 140 | const alt = altData ? `alt="${altData[1].trim()}"` : ""; 141 | const figcaption = figcaptionData 142 | ? `${figcaptionData[1].trim()} ` 143 | : ""; 144 | 145 | // Uncomment this for picture + srcset 146 | const html = `${ 147 | figcaption ? "" : "" 148 | } " : "" 152 | }`; 153 | return html; 154 | 155 | // if (figcaption) { 156 | // const html = ` ${figcaption} ${ 151 | figcaption ? " ` 157 | // return html 158 | // } else { 159 | // const html = `${figcaption}
` 160 | // return html 161 | // } 162 | } 163 | 164 | function parseVideo(videoContent) { 165 | const videoData = /^(.+?(?=autoplay|figcaption|$))/.exec(videoContent); 166 | const autoplayData = / autoplay/.exec(videoContent); 167 | const figcaptionData = /figcaption:(.+?(?=autoplay|$))/.exec(videoContent); 168 | const link = videoData ? `src="${videoData[1].trim()}"` : ""; 169 | const controls = autoplayData 170 | ? "autoplay playsinline loop mute" 171 | : "controls playsinline"; 172 | const format = /\.mp4|\.webm|\.mov/.exec(link); 173 | const source = `type="video/${format.toString().slice(1)}"`; 174 | const figcaption = figcaptionData 175 | ? `
${figcaptionData[1].trim()} ` 176 | : ""; 177 | const html = `${ 178 | figcaptionData ? "" : "" 179 | }${figcaption}${ 180 | figcaptionData ? " " : "" 181 | }`; 182 | return html; 183 | } 184 | 185 | function parseQuote(quoteContent) { 186 | const quoteData = /^(.+?(?=author|source|link|$))/.exec(quoteContent); 187 | const authorData = /author:(.+?(?=source|link|$))/.exec(quoteContent); 188 | const sourceData = /source:(.+?(?=author|link|$))/.exec(quoteContent); 189 | const linkData = /link:(.+?(?=author|source|$))/.exec(quoteContent); 190 | const quote = quoteData ? quoteData[1].trim() : false; 191 | const author = authorData ? authorData[1].trim() : false; 192 | const source = sourceData ? sourceData[1].trim() : false; 193 | const link = linkData ? linkData[1].trim() : false; 194 | const cite = link ? `cite="${link}"` : ""; 195 | 196 | let figcaption = ""; 197 | if (author && !source && !link) { 198 | figcaption = `— ${author} `; 199 | } else if (author && source && !link) { 200 | figcaption = `— ${author}, ${source} `; 201 | } else if (author && source && link) { 202 | figcaption = `— ${author}, ${source} `; 203 | } else if (!author && source && link) { 204 | figcaption = `${source} `; 205 | } else if (!author && !source && link) { 206 | figcaption = `${link} `; 207 | } else if (!author && source && !link) { 208 | figcaption = `${source} `; 209 | } 210 | 211 | const html = ` `; 212 | return html; 213 | } 214 | 215 | function toKebab(text) { 216 | const toKebabCase = 217 | text && 218 | text 219 | .match( 220 | /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g 221 | ) 222 | .map((x) => x.toLowerCase()) 223 | .join("-"); 224 | return toKebabCase; 225 | } 226 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | const test = require('ava'); 2 | import parser from "./src/module" 3 | 4 | // TITLES 5 | 6 | test("Title 1", t => { 7 | const result = parser("# Title 1"); 8 | t.is(result, `${quote}
${figcaption}Title 1
\n\n`); 9 | }); 10 | 11 | test("Title 2", t => { 12 | const result = parser("## Title 2"); 13 | t.is(result, `Title 2
\n\n`); 14 | }); 15 | 16 | // BLOCKQUOTE 17 | 18 | test("blockquote simple", t => { 19 | const result = parser(`(quote: Kaku is mostly used for my static website build.)`); 20 | t.is(result, ` `); 21 | }); 22 | 23 | test("blockquote with author", t => { 24 | const result = parser(`(quote: Kaku is mostly used for my static website build. author: Thomasorus)`); 25 | t.is(result, `Kaku is mostly used for my static website build.
`); 26 | }); 27 | 28 | test("blockquote complete", t => { 29 | const result = parser(`(quote: Kaku is mostly used for my static website build. author: Thomasorus source: Kaku's Repo link: https://github.com/Thomasorus/Kaku)`); 30 | t.is(result, `Kaku is mostly used for my static website build.
— Thomasorus `); 31 | }); 32 | 33 | 34 | // TYPOGRAPHY 35 | 36 | test('Bold', t => { 37 | const result = parser("Sometimes with *bold* inside."); 38 | t.is(result, "Kaku is mostly used for my static website build.
— Thomasorus, Kaku's Repo Sometimes with bold inside.
\n\n"); 39 | }); 40 | 41 | test('code', t => { 42 | const result = parser("I do some \`code\` text."); 43 | t.is(result, "I do some
\n\n"); 44 | }); 45 | 46 | test('strike', t => { 47 | const result = parser("I do some \~code\~ text."); 48 | t.is(result, "code
text.I do some
\n\n"); 49 | }); 50 | 51 | 52 | test('italic', t => { 53 | const result = parser("Sometimes with _italic_ text?"); 54 | t.is(result, "codetext.Sometimes with italic text?
\n\n"); 55 | }); 56 | 57 | 58 | // PARAGRAPHS 59 | 60 | test('simple text', t => { 61 | const result = parser(`simple text`); 62 | t.is(result, "simple text
\n\n"); 63 | }); 64 | 65 | test('paragraph', t => { 66 | const result = parser(`I am a line\n\nI'm a second line`); 67 | t.is(result, "I am a line
\n\nI'm a second line
\n\n"); 68 | }); 69 | 70 | // CODE BLOCK 71 | 72 | test('code block', t => { 73 | const result = parser("```\nThis is some code\n```"); 74 | t.is(result, "
\n\n"); 75 | }); 76 | 77 | test('code block with html', t => { 78 | const result = parser("```\nThis is some small text\n```"); 79 | t.is(result, "This is some code\n
\n\n"); 80 | }); 81 | 82 | 83 | // LINKS 84 | 85 | test('Link without A11Y label', t => { 86 | const result = parser('(link: link_url text: textlink)'); 87 | t.is(result, `textlink`); 88 | }); 89 | 90 | test('Link with A11Y label', t => { 91 | const result = parser('(link: link_url text: textlink label: a11ylabel title: titleText)'); 92 | t.is(result, `textlink`); 93 | }); 94 | 95 | // // // IMAGES 96 | 97 | test('Image basic', t => { 98 | const result = parser("(image: imgname)"); 99 | t.is(result, `<small>This is some small text</small>\n
`); 100 | }); 101 | 102 | test('Image with alt', t => { 103 | const result = parser("(image: imgname alt: altText)"); 104 | t.is(result, `
`); 105 | }); 106 | 107 | test('Image with alt and caption', t => { 108 | const result = parser('(image: imgname alt: altText figcaption: figcaptionText)'); 109 | t.is(result, `
`); 110 | }); 111 | 112 | // LISTS 113 | 114 | test('Bullet list', t => { 115 | const result = parser("- AAA\n- BBB\n- CCC"); 116 | t.is(result, "figcaptionText - AAA \n
- BBB \n
- CCC
- Number 1 \n
- Number 2 \n
- Number 3
- Term 1
- definition 1
- Term 2
- definition 2
- /g, "")
97 | .replace(/<\/dl>\n\n\n
- /g, "")
98 | .replace(/
[\s\S\n]<\/p>/gim, "") 99 | .replace(/
<\/p>/g, "") 100 | .replace(/<\/li>
- /g', '\n'],
90 | ['/<\\/dl>\n
- /g', '\n'],
91 | ['/<\\/blockquote>\n
/g', '\n'], 92 | ['/\n/g', '
'], 93 | ['/<\\/em>/g', '__'], 94 | ['/<em></em>/g', '__'], 95 | ['/ <strong> /g', ' * '], 96 | ['/ <\\/strong> /g', ' * '], 97 | ['/ /g', ' '] 98 | ] 99 | 100 | let codeblock = false 101 | 102 | const parseLine = function (str) { 103 | str = `\n${str.trim()}\n` 104 | 105 | for (let i = 0, j = rules.length; i < j; i++) { 106 | if (typeof rules[i][1] === 'function') { 107 | const _flag = rules[i][0].substr(rules[i][0].lastIndexOf(rules[i][0][0]) + 1) 108 | const _pattern = rules[i][0].substr(1, rules[i][0].lastIndexOf(rules[i][0][0]) - 1) 109 | const reg = new RegExp(_pattern, _flag) 110 | 111 | const matches = [...str.matchAll(reg)] 112 | 113 | if (matches.length > 0) { 114 | matches.forEach(match => { 115 | // If more than one occurence on the same line 116 | if (matches.length > 1) { 117 | const rule = rules[i][0].slice(0, -1) 118 | if (match.length > 1) { 119 | str = pregReplace(rule, rules[i][1](match[1], match[2]), str) 120 | } else { 121 | str = pregReplace(rule, rules[i][1](match[0]), str) 122 | } 123 | } else { 124 | // If only one occurence on the same line 125 | if (match.length > 1) { 126 | str = pregReplace(rules[i][0], rules[i][1](match[1], match[2]), str) 127 | } else { 128 | str = pregReplace(rules[i][0], rules[i][1](match[0]), str) 129 | } 130 | } 131 | }) 132 | } 133 | } else { 134 | if (str === '\n```\n' && codeblock) { 135 | str = rules[i][2] 136 | codeblock = false 137 | } else if (str === '\n```\n' && !codeblock) { 138 | str = rules[i][1] 139 | codeblock = true 140 | } else { 141 | str = pregReplace(rules[i][0], rules[i][1], str) 142 | } 143 | } 144 | } 145 | return str.trim() 146 | } 147 | 148 | str = str.split('\n') 149 | let rtn = [] 150 | for (let i = 0, j = str.length; i < j; i++) { 151 | rtn.push(parseLine(str[i])) 152 | } 153 | rtn = rtn.join('\n') 154 | 155 | for (let i = 0, j = fixes.length; i < j; i++) { 156 | rtn = pregReplace(fixes[i][0], fixes[i][1], rtn) 157 | } 158 | 159 | return rtn 160 | } 161 | 162 | function extractText (text) { 163 | const regexuuu = /"((?:\\[\s\S]|[^\\])+?)"(?!\*)/g 164 | const match = text.match(regexuuu)[0].replace(/"/g, '').trim() 165 | return match 166 | } 167 | 168 | function createImages (item) { 169 | let el = item 170 | el = el.replace('[', '').replace(']', '') 171 | const imgArr = el.split(',') 172 | let imgHtml = '' 173 | 174 | if (imgArr.length === 1) { 175 | imgHtml = `
` 176 | } 177 | 178 | if (imgArr.length === 2) { 179 | const alt = ` alt="${imgArr[1].trim()}"` 180 | imgHtml = `
` 181 | } 182 | 183 | if (imgArr.length === 3) { 184 | const alt = ` alt="${imgArr[1].trim()}"` 185 | imgHtml = `
` 186 | const caption = `
${extractText(el)} ` 187 | imgHtml = `${imgHtml}${caption} ` 188 | } 189 | 190 | return imgHtml 191 | } 192 | 193 | function createLink (item) { 194 | let el = item 195 | el = el.replace('{', '').replace('}', '') 196 | const textLink = extractText(el) 197 | const linkElem = el.split(',') 198 | const aria = linkElem.length > 2 ? ` title="${linkElem[2].trim()}" aria-label="${linkElem[2].trim()}"` : '' 199 | const html = `${textLink}` 200 | return html 201 | } 202 | 203 | function createQuote (item) { 204 | let el = item 205 | el = el.replace(/~/g, '') 206 | const citation = extractText(el) 207 | el = el.replace(citation, '') 208 | el = el.split(',') 209 | const url = el[3] ? ` cite="${el[3].trim()}"` : '' 210 | const source = el[2] ? `, ${el[2]}` : '' 211 | const author = el[1] ? `` : '' 212 | const html = `` 213 | return html 214 | } 215 | 216 | function createDefinitionList (item) { 217 | item = item.split(':') 218 | const term = item[0].trim() 219 | const definition = item[1].trim() 220 | const html = `${citation}
${author}` 221 | return html 222 | } 223 | 224 | function createMultimedia (item) { 225 | let el = item 226 | el = el.split(',') 227 | const url = el[0].trim() 228 | let param = el[1] ? el[1].trim() : '' 229 | const mediaType = url.slice(-1) 230 | if (param) { 231 | if (param === 'g') { 232 | param = 'autoplay="true" playsinline="true" loop="true" mute="true" preload="metadata"' 233 | } else { 234 | param = 'controls preload="metadata"' 235 | } 236 | } else { 237 | param = 'controls preload="metadata"' 238 | } 239 | 240 | let html = '' 241 | switch (mediaType) { 242 | case '4': 243 | html = `` 244 | break 245 | case '3': 246 | html = `` 247 | break 248 | default: 249 | break 250 | } 251 | return html 252 | } 253 | 254 | function createTitle (level, item) { 255 | const count = level 256 | const title = item.trim() 257 | const kebab = toKebab(title) 258 | const link = `` 259 | const html = `
${link}${title} ` 260 | return html 261 | } 262 | 263 | function toKebab (text) { 264 | const toKebabCase = text && text 265 | .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) 266 | .map(x => x.toLowerCase()) 267 | .join('-') 268 | return toKebabCase 269 | } 270 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | {"ava": { 2 | "require": [ 3 | "esm" 4 | ] 5 | }, 6 | "devDependencies": { 7 | "ava": "^3.8.2", 8 | "esm": "^3.2.25" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | ava: ^3.8.2 5 | esm: ^3.2.25 6 | 7 | devDependencies: 8 | ava: 3.15.0 9 | esm: 3.2.25 10 | 11 | packages: 12 | 13 | /@babel/code-frame/7.16.7: 14 | resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} 15 | engines: {node: '>=6.9.0'} 16 | dependencies: 17 | '@babel/highlight': 7.16.10 18 | dev: true 19 | 20 | /@babel/helper-validator-identifier/7.16.7: 21 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} 22 | engines: {node: '>=6.9.0'} 23 | dev: true 24 | 25 | /@babel/highlight/7.16.10: 26 | resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} 27 | engines: {node: '>=6.9.0'} 28 | dependencies: 29 | '@babel/helper-validator-identifier': 7.16.7 30 | chalk: 2.4.2 31 | js-tokens: 4.0.0 32 | dev: true 33 | 34 | /@concordance/react/2.0.0: 35 | resolution: {integrity: sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==} 36 | engines: {node: '>=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0'} 37 | dependencies: 38 | arrify: 1.0.1 39 | dev: true 40 | 41 | /@nodelib/fs.scandir/2.1.5: 42 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 43 | engines: {node: '>= 8'} 44 | dependencies: 45 | '@nodelib/fs.stat': 2.0.5 46 | run-parallel: 1.2.0 47 | dev: true 48 | 49 | /@nodelib/fs.stat/2.0.5: 50 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 51 | engines: {node: '>= 8'} 52 | dev: true 53 | 54 | /@nodelib/fs.walk/1.2.8: 55 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 56 | engines: {node: '>= 8'} 57 | dependencies: 58 | '@nodelib/fs.scandir': 2.1.5 59 | fastq: 1.13.0 60 | dev: true 61 | 62 | /@sindresorhus/is/0.14.0: 63 | resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} 64 | engines: {node: '>=6'} 65 | dev: true 66 | 67 | /@szmarczak/http-timer/1.1.2: 68 | resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} 69 | engines: {node: '>=6'} 70 | dependencies: 71 | defer-to-connect: 1.1.3 72 | dev: true 73 | 74 | /@types/normalize-package-data/2.4.1: 75 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 76 | dev: true 77 | 78 | /acorn-walk/8.2.0: 79 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 80 | engines: {node: '>=0.4.0'} 81 | dev: true 82 | 83 | /acorn/8.7.0: 84 | resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} 85 | engines: {node: '>=0.4.0'} 86 | hasBin: true 87 | dev: true 88 | 89 | /aggregate-error/3.1.0: 90 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 91 | engines: {node: '>=8'} 92 | dependencies: 93 | clean-stack: 2.2.0 94 | indent-string: 4.0.0 95 | dev: true 96 | 97 | /ansi-align/3.0.1: 98 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 99 | dependencies: 100 | string-width: 4.2.3 101 | dev: true 102 | 103 | /ansi-regex/5.0.1: 104 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 105 | engines: {node: '>=8'} 106 | dev: true 107 | 108 | /ansi-styles/3.2.1: 109 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 110 | engines: {node: '>=4'} 111 | dependencies: 112 | color-convert: 1.9.3 113 | dev: true 114 | 115 | /ansi-styles/4.3.0: 116 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 117 | engines: {node: '>=8'} 118 | dependencies: 119 | color-convert: 2.0.1 120 | dev: true 121 | 122 | /ansi-styles/5.2.0: 123 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 124 | engines: {node: '>=10'} 125 | dev: true 126 | 127 | /anymatch/3.1.2: 128 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 129 | engines: {node: '>= 8'} 130 | dependencies: 131 | normalize-path: 3.0.0 132 | picomatch: 2.3.1 133 | dev: true 134 | 135 | /argparse/1.0.10: 136 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 137 | dependencies: 138 | sprintf-js: 1.0.3 139 | dev: true 140 | 141 | /array-find-index/1.0.2: 142 | resolution: {integrity: sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=} 143 | engines: {node: '>=0.10.0'} 144 | dev: true 145 | 146 | /array-union/2.1.0: 147 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 148 | engines: {node: '>=8'} 149 | dev: true 150 | 151 | /arrgv/1.0.2: 152 | resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==} 153 | engines: {node: '>=8.0.0'} 154 | dev: true 155 | 156 | /arrify/1.0.1: 157 | resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} 158 | engines: {node: '>=0.10.0'} 159 | dev: true 160 | 161 | /arrify/2.0.1: 162 | resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} 163 | engines: {node: '>=8'} 164 | dev: true 165 | 166 | /astral-regex/2.0.0: 167 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 168 | engines: {node: '>=8'} 169 | dev: true 170 | 171 | /ava/3.15.0: 172 | resolution: {integrity: sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA==} 173 | engines: {node: '>=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15'} 174 | hasBin: true 175 | dependencies: 176 | '@concordance/react': 2.0.0 177 | acorn: 8.7.0 178 | acorn-walk: 8.2.0 179 | ansi-styles: 5.2.0 180 | arrgv: 1.0.2 181 | arrify: 2.0.1 182 | callsites: 3.1.0 183 | chalk: 4.1.2 184 | chokidar: 3.5.3 185 | chunkd: 2.0.1 186 | ci-info: 2.0.0 187 | ci-parallel-vars: 1.0.1 188 | clean-yaml-object: 0.1.0 189 | cli-cursor: 3.1.0 190 | cli-truncate: 2.1.0 191 | code-excerpt: 3.0.0 192 | common-path-prefix: 3.0.0 193 | concordance: 5.0.4 194 | convert-source-map: 1.8.0 195 | currently-unhandled: 0.4.1 196 | debug: 4.3.4 197 | del: 6.0.0 198 | emittery: 0.8.1 199 | equal-length: 1.0.1 200 | figures: 3.2.0 201 | globby: 11.1.0 202 | ignore-by-default: 2.0.0 203 | import-local: 3.1.0 204 | indent-string: 4.0.0 205 | is-error: 2.2.2 206 | is-plain-object: 5.0.0 207 | is-promise: 4.0.0 208 | lodash: 4.17.21 209 | matcher: 3.0.0 210 | md5-hex: 3.0.1 211 | mem: 8.1.1 212 | ms: 2.1.3 213 | ora: 5.4.1 214 | p-event: 4.2.0 215 | p-map: 4.0.0 216 | picomatch: 2.3.1 217 | pkg-conf: 3.1.0 218 | plur: 4.0.0 219 | pretty-ms: 7.0.1 220 | read-pkg: 5.2.0 221 | resolve-cwd: 3.0.0 222 | slash: 3.0.0 223 | source-map-support: 0.5.21 224 | stack-utils: 2.0.5 225 | strip-ansi: 6.0.1 226 | supertap: 2.0.0 227 | temp-dir: 2.0.0 228 | trim-off-newlines: 1.0.3 229 | update-notifier: 5.1.0 230 | write-file-atomic: 3.0.3 231 | yargs: 16.2.0 232 | transitivePeerDependencies: 233 | - supports-color 234 | dev: true 235 | 236 | /balanced-match/1.0.2: 237 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 238 | dev: true 239 | 240 | /base64-js/1.5.1: 241 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 242 | dev: true 243 | 244 | /binary-extensions/2.2.0: 245 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 246 | engines: {node: '>=8'} 247 | dev: true 248 | 249 | /bl/4.1.0: 250 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 251 | dependencies: 252 | buffer: 5.7.1 253 | inherits: 2.0.4 254 | readable-stream: 3.6.0 255 | dev: true 256 | 257 | /blueimp-md5/2.19.0: 258 | resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} 259 | dev: true 260 | 261 | /boxen/5.1.2: 262 | resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} 263 | engines: {node: '>=10'} 264 | dependencies: 265 | ansi-align: 3.0.1 266 | camelcase: 6.3.0 267 | chalk: 4.1.2 268 | cli-boxes: 2.2.1 269 | string-width: 4.2.3 270 | type-fest: 0.20.2 271 | widest-line: 3.1.0 272 | wrap-ansi: 7.0.0 273 | dev: true 274 | 275 | /brace-expansion/1.1.11: 276 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 277 | dependencies: 278 | balanced-match: 1.0.2 279 | concat-map: 0.0.1 280 | dev: true 281 | 282 | /braces/3.0.2: 283 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 284 | engines: {node: '>=8'} 285 | dependencies: 286 | fill-range: 7.0.1 287 | dev: true 288 | 289 | /buffer-from/1.1.2: 290 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 291 | dev: true 292 | 293 | /buffer/5.7.1: 294 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 295 | dependencies: 296 | base64-js: 1.5.1 297 | ieee754: 1.2.1 298 | dev: true 299 | 300 | /cacheable-request/6.1.0: 301 | resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} 302 | engines: {node: '>=8'} 303 | dependencies: 304 | clone-response: 1.0.2 305 | get-stream: 5.2.0 306 | http-cache-semantics: 4.1.0 307 | keyv: 3.1.0 308 | lowercase-keys: 2.0.0 309 | normalize-url: 4.5.1 310 | responselike: 1.0.2 311 | dev: true 312 | 313 | /callsites/3.1.0: 314 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 315 | engines: {node: '>=6'} 316 | dev: true 317 | 318 | /camelcase/6.3.0: 319 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 320 | engines: {node: '>=10'} 321 | dev: true 322 | 323 | /chalk/2.4.2: 324 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 325 | engines: {node: '>=4'} 326 | dependencies: 327 | ansi-styles: 3.2.1 328 | escape-string-regexp: 1.0.5 329 | supports-color: 5.5.0 330 | dev: true 331 | 332 | /chalk/4.1.2: 333 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 334 | engines: {node: '>=10'} 335 | dependencies: 336 | ansi-styles: 4.3.0 337 | supports-color: 7.2.0 338 | dev: true 339 | 340 | /chokidar/3.5.3: 341 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 342 | engines: {node: '>= 8.10.0'} 343 | dependencies: 344 | anymatch: 3.1.2 345 | braces: 3.0.2 346 | glob-parent: 5.1.2 347 | is-binary-path: 2.1.0 348 | is-glob: 4.0.3 349 | normalize-path: 3.0.0 350 | readdirp: 3.6.0 351 | optionalDependencies: 352 | fsevents: 2.3.2 353 | dev: true 354 | 355 | /chunkd/2.0.1: 356 | resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} 357 | dev: true 358 | 359 | /ci-info/2.0.0: 360 | resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} 361 | dev: true 362 | 363 | /ci-parallel-vars/1.0.1: 364 | resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} 365 | dev: true 366 | 367 | /clean-stack/2.2.0: 368 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 369 | engines: {node: '>=6'} 370 | dev: true 371 | 372 | /clean-yaml-object/0.1.0: 373 | resolution: {integrity: sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=} 374 | engines: {node: '>=0.10.0'} 375 | dev: true 376 | 377 | /cli-boxes/2.2.1: 378 | resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} 379 | engines: {node: '>=6'} 380 | dev: true 381 | 382 | /cli-cursor/3.1.0: 383 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 384 | engines: {node: '>=8'} 385 | dependencies: 386 | restore-cursor: 3.1.0 387 | dev: true 388 | 389 | /cli-spinners/2.6.1: 390 | resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} 391 | engines: {node: '>=6'} 392 | dev: true 393 | 394 | /cli-truncate/2.1.0: 395 | resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} 396 | engines: {node: '>=8'} 397 | dependencies: 398 | slice-ansi: 3.0.0 399 | string-width: 4.2.3 400 | dev: true 401 | 402 | /cliui/7.0.4: 403 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 404 | dependencies: 405 | string-width: 4.2.3 406 | strip-ansi: 6.0.1 407 | wrap-ansi: 7.0.0 408 | dev: true 409 | 410 | /clone-response/1.0.2: 411 | resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} 412 | dependencies: 413 | mimic-response: 1.0.1 414 | dev: true 415 | 416 | /clone/1.0.4: 417 | resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} 418 | engines: {node: '>=0.8'} 419 | dev: true 420 | 421 | /code-excerpt/3.0.0: 422 | resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} 423 | engines: {node: '>=10'} 424 | dependencies: 425 | convert-to-spaces: 1.0.2 426 | dev: true 427 | 428 | /color-convert/1.9.3: 429 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 430 | dependencies: 431 | color-name: 1.1.3 432 | dev: true 433 | 434 | /color-convert/2.0.1: 435 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 436 | engines: {node: '>=7.0.0'} 437 | dependencies: 438 | color-name: 1.1.4 439 | dev: true 440 | 441 | /color-name/1.1.3: 442 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 443 | dev: true 444 | 445 | /color-name/1.1.4: 446 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 447 | dev: true 448 | 449 | /common-path-prefix/3.0.0: 450 | resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} 451 | dev: true 452 | 453 | /concat-map/0.0.1: 454 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 455 | dev: true 456 | 457 | /concordance/5.0.4: 458 | resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} 459 | engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} 460 | dependencies: 461 | date-time: 3.1.0 462 | esutils: 2.0.3 463 | fast-diff: 1.2.0 464 | js-string-escape: 1.0.1 465 | lodash: 4.17.21 466 | md5-hex: 3.0.1 467 | semver: 7.3.5 468 | well-known-symbols: 2.0.0 469 | dev: true 470 | 471 | /configstore/5.0.1: 472 | resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} 473 | engines: {node: '>=8'} 474 | dependencies: 475 | dot-prop: 5.3.0 476 | graceful-fs: 4.2.9 477 | make-dir: 3.1.0 478 | unique-string: 2.0.0 479 | write-file-atomic: 3.0.3 480 | xdg-basedir: 4.0.0 481 | dev: true 482 | 483 | /convert-source-map/1.8.0: 484 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} 485 | dependencies: 486 | safe-buffer: 5.1.2 487 | dev: true 488 | 489 | /convert-to-spaces/1.0.2: 490 | resolution: {integrity: sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=} 491 | engines: {node: '>= 4'} 492 | dev: true 493 | 494 | /crypto-random-string/2.0.0: 495 | resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} 496 | engines: {node: '>=8'} 497 | dev: true 498 | 499 | /currently-unhandled/0.4.1: 500 | resolution: {integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o=} 501 | engines: {node: '>=0.10.0'} 502 | dependencies: 503 | array-find-index: 1.0.2 504 | dev: true 505 | 506 | /date-time/3.1.0: 507 | resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} 508 | engines: {node: '>=6'} 509 | dependencies: 510 | time-zone: 1.0.0 511 | dev: true 512 | 513 | /debug/4.3.4: 514 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 515 | engines: {node: '>=6.0'} 516 | peerDependencies: 517 | supports-color: '*' 518 | peerDependenciesMeta: 519 | supports-color: 520 | optional: true 521 | dependencies: 522 | ms: 2.1.2 523 | dev: true 524 | 525 | /decompress-response/3.3.0: 526 | resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} 527 | engines: {node: '>=4'} 528 | dependencies: 529 | mimic-response: 1.0.1 530 | dev: true 531 | 532 | /deep-extend/0.6.0: 533 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 534 | engines: {node: '>=4.0.0'} 535 | dev: true 536 | 537 | /defaults/1.0.3: 538 | resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} 539 | dependencies: 540 | clone: 1.0.4 541 | dev: true 542 | 543 | /defer-to-connect/1.1.3: 544 | resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} 545 | dev: true 546 | 547 | /del/6.0.0: 548 | resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==} 549 | engines: {node: '>=10'} 550 | dependencies: 551 | globby: 11.1.0 552 | graceful-fs: 4.2.9 553 | is-glob: 4.0.3 554 | is-path-cwd: 2.2.0 555 | is-path-inside: 3.0.3 556 | p-map: 4.0.0 557 | rimraf: 3.0.2 558 | slash: 3.0.0 559 | dev: true 560 | 561 | /dir-glob/3.0.1: 562 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 563 | engines: {node: '>=8'} 564 | dependencies: 565 | path-type: 4.0.0 566 | dev: true 567 | 568 | /dot-prop/5.3.0: 569 | resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} 570 | engines: {node: '>=8'} 571 | dependencies: 572 | is-obj: 2.0.0 573 | dev: true 574 | 575 | /duplexer3/0.1.4: 576 | resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} 577 | dev: true 578 | 579 | /emittery/0.8.1: 580 | resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} 581 | engines: {node: '>=10'} 582 | dev: true 583 | 584 | /emoji-regex/8.0.0: 585 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 586 | dev: true 587 | 588 | /end-of-stream/1.4.4: 589 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 590 | dependencies: 591 | once: 1.4.0 592 | dev: true 593 | 594 | /equal-length/1.0.1: 595 | resolution: {integrity: sha1-IcoRLUirJLTh5//A5TOdMf38J0w=} 596 | engines: {node: '>=4'} 597 | dev: true 598 | 599 | /error-ex/1.3.2: 600 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 601 | dependencies: 602 | is-arrayish: 0.2.1 603 | dev: true 604 | 605 | /escalade/3.1.1: 606 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 607 | engines: {node: '>=6'} 608 | dev: true 609 | 610 | /escape-goat/2.1.1: 611 | resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} 612 | engines: {node: '>=8'} 613 | dev: true 614 | 615 | /escape-string-regexp/1.0.5: 616 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 617 | engines: {node: '>=0.8.0'} 618 | dev: true 619 | 620 | /escape-string-regexp/2.0.0: 621 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 622 | engines: {node: '>=8'} 623 | dev: true 624 | 625 | /escape-string-regexp/4.0.0: 626 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 627 | engines: {node: '>=10'} 628 | dev: true 629 | 630 | /esm/3.2.25: 631 | resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} 632 | engines: {node: '>=6'} 633 | dev: true 634 | 635 | /esprima/4.0.1: 636 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 637 | engines: {node: '>=4'} 638 | hasBin: true 639 | dev: true 640 | 641 | /esutils/2.0.3: 642 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 643 | engines: {node: '>=0.10.0'} 644 | dev: true 645 | 646 | /fast-diff/1.2.0: 647 | resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 648 | dev: true 649 | 650 | /fast-glob/3.2.11: 651 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 652 | engines: {node: '>=8.6.0'} 653 | dependencies: 654 | '@nodelib/fs.stat': 2.0.5 655 | '@nodelib/fs.walk': 1.2.8 656 | glob-parent: 5.1.2 657 | merge2: 1.4.1 658 | micromatch: 4.0.5 659 | dev: true 660 | 661 | /fastq/1.13.0: 662 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 663 | dependencies: 664 | reusify: 1.0.4 665 | dev: true 666 | 667 | /figures/3.2.0: 668 | resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} 669 | engines: {node: '>=8'} 670 | dependencies: 671 | escape-string-regexp: 1.0.5 672 | dev: true 673 | 674 | /fill-range/7.0.1: 675 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 676 | engines: {node: '>=8'} 677 | dependencies: 678 | to-regex-range: 5.0.1 679 | dev: true 680 | 681 | /find-up/3.0.0: 682 | resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} 683 | engines: {node: '>=6'} 684 | dependencies: 685 | locate-path: 3.0.0 686 | dev: true 687 | 688 | /find-up/4.1.0: 689 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 690 | engines: {node: '>=8'} 691 | dependencies: 692 | locate-path: 5.0.0 693 | path-exists: 4.0.0 694 | dev: true 695 | 696 | /fs.realpath/1.0.0: 697 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 698 | dev: true 699 | 700 | /fsevents/2.3.2: 701 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 702 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 703 | os: [darwin] 704 | requiresBuild: true 705 | dev: true 706 | optional: true 707 | 708 | /function-bind/1.1.1: 709 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 710 | dev: true 711 | 712 | /get-caller-file/2.0.5: 713 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 714 | engines: {node: 6.* || 8.* || >= 10.*} 715 | dev: true 716 | 717 | /get-stream/4.1.0: 718 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 719 | engines: {node: '>=6'} 720 | dependencies: 721 | pump: 3.0.0 722 | dev: true 723 | 724 | /get-stream/5.2.0: 725 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 726 | engines: {node: '>=8'} 727 | dependencies: 728 | pump: 3.0.0 729 | dev: true 730 | 731 | /glob-parent/5.1.2: 732 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 733 | engines: {node: '>= 6'} 734 | dependencies: 735 | is-glob: 4.0.3 736 | dev: true 737 | 738 | /glob/7.2.0: 739 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} 740 | dependencies: 741 | fs.realpath: 1.0.0 742 | inflight: 1.0.6 743 | inherits: 2.0.4 744 | minimatch: 3.1.2 745 | once: 1.4.0 746 | path-is-absolute: 1.0.1 747 | dev: true 748 | 749 | /global-dirs/3.0.0: 750 | resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} 751 | engines: {node: '>=10'} 752 | dependencies: 753 | ini: 2.0.0 754 | dev: true 755 | 756 | /globby/11.1.0: 757 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 758 | engines: {node: '>=10'} 759 | dependencies: 760 | array-union: 2.1.0 761 | dir-glob: 3.0.1 762 | fast-glob: 3.2.11 763 | ignore: 5.2.0 764 | merge2: 1.4.1 765 | slash: 3.0.0 766 | dev: true 767 | 768 | /got/9.6.0: 769 | resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} 770 | engines: {node: '>=8.6'} 771 | dependencies: 772 | '@sindresorhus/is': 0.14.0 773 | '@szmarczak/http-timer': 1.1.2 774 | cacheable-request: 6.1.0 775 | decompress-response: 3.3.0 776 | duplexer3: 0.1.4 777 | get-stream: 4.1.0 778 | lowercase-keys: 1.0.1 779 | mimic-response: 1.0.1 780 | p-cancelable: 1.1.0 781 | to-readable-stream: 1.0.0 782 | url-parse-lax: 3.0.0 783 | dev: true 784 | 785 | /graceful-fs/4.2.9: 786 | resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} 787 | dev: true 788 | 789 | /has-flag/3.0.0: 790 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 791 | engines: {node: '>=4'} 792 | dev: true 793 | 794 | /has-flag/4.0.0: 795 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 796 | engines: {node: '>=8'} 797 | dev: true 798 | 799 | /has-yarn/2.1.0: 800 | resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} 801 | engines: {node: '>=8'} 802 | dev: true 803 | 804 | /has/1.0.3: 805 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 806 | engines: {node: '>= 0.4.0'} 807 | dependencies: 808 | function-bind: 1.1.1 809 | dev: true 810 | 811 | /hosted-git-info/2.8.9: 812 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 813 | dev: true 814 | 815 | /http-cache-semantics/4.1.0: 816 | resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} 817 | dev: true 818 | 819 | /ieee754/1.2.1: 820 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 821 | dev: true 822 | 823 | /ignore-by-default/2.0.0: 824 | resolution: {integrity: sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==} 825 | engines: {node: '>=10 <11 || >=12 <13 || >=14'} 826 | dev: true 827 | 828 | /ignore/5.2.0: 829 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 830 | engines: {node: '>= 4'} 831 | dev: true 832 | 833 | /import-lazy/2.1.0: 834 | resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} 835 | engines: {node: '>=4'} 836 | dev: true 837 | 838 | /import-local/3.1.0: 839 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} 840 | engines: {node: '>=8'} 841 | hasBin: true 842 | dependencies: 843 | pkg-dir: 4.2.0 844 | resolve-cwd: 3.0.0 845 | dev: true 846 | 847 | /imurmurhash/0.1.4: 848 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} 849 | engines: {node: '>=0.8.19'} 850 | dev: true 851 | 852 | /indent-string/4.0.0: 853 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 854 | engines: {node: '>=8'} 855 | dev: true 856 | 857 | /inflight/1.0.6: 858 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 859 | dependencies: 860 | once: 1.4.0 861 | wrappy: 1.0.2 862 | dev: true 863 | 864 | /inherits/2.0.4: 865 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 866 | dev: true 867 | 868 | /ini/1.3.8: 869 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 870 | dev: true 871 | 872 | /ini/2.0.0: 873 | resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} 874 | engines: {node: '>=10'} 875 | dev: true 876 | 877 | /irregular-plurals/3.3.0: 878 | resolution: {integrity: sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==} 879 | engines: {node: '>=8'} 880 | dev: true 881 | 882 | /is-arrayish/0.2.1: 883 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 884 | dev: true 885 | 886 | /is-binary-path/2.1.0: 887 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 888 | engines: {node: '>=8'} 889 | dependencies: 890 | binary-extensions: 2.2.0 891 | dev: true 892 | 893 | /is-ci/2.0.0: 894 | resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} 895 | hasBin: true 896 | dependencies: 897 | ci-info: 2.0.0 898 | dev: true 899 | 900 | /is-core-module/2.8.1: 901 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} 902 | dependencies: 903 | has: 1.0.3 904 | dev: true 905 | 906 | /is-error/2.2.2: 907 | resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==} 908 | dev: true 909 | 910 | /is-extglob/2.1.1: 911 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 912 | engines: {node: '>=0.10.0'} 913 | dev: true 914 | 915 | /is-fullwidth-code-point/3.0.0: 916 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 917 | engines: {node: '>=8'} 918 | dev: true 919 | 920 | /is-glob/4.0.3: 921 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 922 | engines: {node: '>=0.10.0'} 923 | dependencies: 924 | is-extglob: 2.1.1 925 | dev: true 926 | 927 | /is-installed-globally/0.4.0: 928 | resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} 929 | engines: {node: '>=10'} 930 | dependencies: 931 | global-dirs: 3.0.0 932 | is-path-inside: 3.0.3 933 | dev: true 934 | 935 | /is-interactive/1.0.0: 936 | resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} 937 | engines: {node: '>=8'} 938 | dev: true 939 | 940 | /is-npm/5.0.0: 941 | resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} 942 | engines: {node: '>=10'} 943 | dev: true 944 | 945 | /is-number/7.0.0: 946 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 947 | engines: {node: '>=0.12.0'} 948 | dev: true 949 | 950 | /is-obj/2.0.0: 951 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} 952 | engines: {node: '>=8'} 953 | dev: true 954 | 955 | /is-path-cwd/2.2.0: 956 | resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} 957 | engines: {node: '>=6'} 958 | dev: true 959 | 960 | /is-path-inside/3.0.3: 961 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 962 | engines: {node: '>=8'} 963 | dev: true 964 | 965 | /is-plain-object/5.0.0: 966 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} 967 | engines: {node: '>=0.10.0'} 968 | dev: true 969 | 970 | /is-promise/4.0.0: 971 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} 972 | dev: true 973 | 974 | /is-typedarray/1.0.0: 975 | resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} 976 | dev: true 977 | 978 | /is-unicode-supported/0.1.0: 979 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 980 | engines: {node: '>=10'} 981 | dev: true 982 | 983 | /is-yarn-global/0.3.0: 984 | resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} 985 | dev: true 986 | 987 | /js-string-escape/1.0.1: 988 | resolution: {integrity: sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=} 989 | engines: {node: '>= 0.8'} 990 | dev: true 991 | 992 | /js-tokens/4.0.0: 993 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 994 | dev: true 995 | 996 | /js-yaml/3.14.1: 997 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 998 | hasBin: true 999 | dependencies: 1000 | argparse: 1.0.10 1001 | esprima: 4.0.1 1002 | dev: true 1003 | 1004 | /json-buffer/3.0.0: 1005 | resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} 1006 | dev: true 1007 | 1008 | /json-parse-better-errors/1.0.2: 1009 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1010 | dev: true 1011 | 1012 | /json-parse-even-better-errors/2.3.1: 1013 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1014 | dev: true 1015 | 1016 | /keyv/3.1.0: 1017 | resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} 1018 | dependencies: 1019 | json-buffer: 3.0.0 1020 | dev: true 1021 | 1022 | /latest-version/5.1.0: 1023 | resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} 1024 | engines: {node: '>=8'} 1025 | dependencies: 1026 | package-json: 6.5.0 1027 | dev: true 1028 | 1029 | /lines-and-columns/1.2.4: 1030 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1031 | dev: true 1032 | 1033 | /load-json-file/5.3.0: 1034 | resolution: {integrity: sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==} 1035 | engines: {node: '>=6'} 1036 | dependencies: 1037 | graceful-fs: 4.2.9 1038 | parse-json: 4.0.0 1039 | pify: 4.0.1 1040 | strip-bom: 3.0.0 1041 | type-fest: 0.3.1 1042 | dev: true 1043 | 1044 | /locate-path/3.0.0: 1045 | resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} 1046 | engines: {node: '>=6'} 1047 | dependencies: 1048 | p-locate: 3.0.0 1049 | path-exists: 3.0.0 1050 | dev: true 1051 | 1052 | /locate-path/5.0.0: 1053 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1054 | engines: {node: '>=8'} 1055 | dependencies: 1056 | p-locate: 4.1.0 1057 | dev: true 1058 | 1059 | /lodash/4.17.21: 1060 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1061 | dev: true 1062 | 1063 | /log-symbols/4.1.0: 1064 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1065 | engines: {node: '>=10'} 1066 | dependencies: 1067 | chalk: 4.1.2 1068 | is-unicode-supported: 0.1.0 1069 | dev: true 1070 | 1071 | /lowercase-keys/1.0.1: 1072 | resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} 1073 | engines: {node: '>=0.10.0'} 1074 | dev: true 1075 | 1076 | /lowercase-keys/2.0.0: 1077 | resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} 1078 | engines: {node: '>=8'} 1079 | dev: true 1080 | 1081 | /lru-cache/6.0.0: 1082 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1083 | engines: {node: '>=10'} 1084 | dependencies: 1085 | yallist: 4.0.0 1086 | dev: true 1087 | 1088 | /make-dir/3.1.0: 1089 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1090 | engines: {node: '>=8'} 1091 | dependencies: 1092 | semver: 6.3.0 1093 | dev: true 1094 | 1095 | /map-age-cleaner/0.1.3: 1096 | resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} 1097 | engines: {node: '>=6'} 1098 | dependencies: 1099 | p-defer: 1.0.0 1100 | dev: true 1101 | 1102 | /matcher/3.0.0: 1103 | resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} 1104 | engines: {node: '>=10'} 1105 | dependencies: 1106 | escape-string-regexp: 4.0.0 1107 | dev: true 1108 | 1109 | /md5-hex/3.0.1: 1110 | resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} 1111 | engines: {node: '>=8'} 1112 | dependencies: 1113 | blueimp-md5: 2.19.0 1114 | dev: true 1115 | 1116 | /mem/8.1.1: 1117 | resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} 1118 | engines: {node: '>=10'} 1119 | dependencies: 1120 | map-age-cleaner: 0.1.3 1121 | mimic-fn: 3.1.0 1122 | dev: true 1123 | 1124 | /merge2/1.4.1: 1125 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1126 | engines: {node: '>= 8'} 1127 | dev: true 1128 | 1129 | /micromatch/4.0.5: 1130 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1131 | engines: {node: '>=8.6'} 1132 | dependencies: 1133 | braces: 3.0.2 1134 | picomatch: 2.3.1 1135 | dev: true 1136 | 1137 | /mimic-fn/2.1.0: 1138 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1139 | engines: {node: '>=6'} 1140 | dev: true 1141 | 1142 | /mimic-fn/3.1.0: 1143 | resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} 1144 | engines: {node: '>=8'} 1145 | dev: true 1146 | 1147 | /mimic-response/1.0.1: 1148 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 1149 | engines: {node: '>=4'} 1150 | dev: true 1151 | 1152 | /minimatch/3.1.2: 1153 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1154 | dependencies: 1155 | brace-expansion: 1.1.11 1156 | dev: true 1157 | 1158 | /minimist/1.2.6: 1159 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} 1160 | dev: true 1161 | 1162 | /ms/2.1.2: 1163 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1164 | dev: true 1165 | 1166 | /ms/2.1.3: 1167 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1168 | dev: true 1169 | 1170 | /normalize-package-data/2.5.0: 1171 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1172 | dependencies: 1173 | hosted-git-info: 2.8.9 1174 | resolve: 1.22.0 1175 | semver: 5.7.1 1176 | validate-npm-package-license: 3.0.4 1177 | dev: true 1178 | 1179 | /normalize-path/3.0.0: 1180 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1181 | engines: {node: '>=0.10.0'} 1182 | dev: true 1183 | 1184 | /normalize-url/4.5.1: 1185 | resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} 1186 | engines: {node: '>=8'} 1187 | dev: true 1188 | 1189 | /once/1.4.0: 1190 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 1191 | dependencies: 1192 | wrappy: 1.0.2 1193 | dev: true 1194 | 1195 | /onetime/5.1.2: 1196 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1197 | engines: {node: '>=6'} 1198 | dependencies: 1199 | mimic-fn: 2.1.0 1200 | dev: true 1201 | 1202 | /ora/5.4.1: 1203 | resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} 1204 | engines: {node: '>=10'} 1205 | dependencies: 1206 | bl: 4.1.0 1207 | chalk: 4.1.2 1208 | cli-cursor: 3.1.0 1209 | cli-spinners: 2.6.1 1210 | is-interactive: 1.0.0 1211 | is-unicode-supported: 0.1.0 1212 | log-symbols: 4.1.0 1213 | strip-ansi: 6.0.1 1214 | wcwidth: 1.0.1 1215 | dev: true 1216 | 1217 | /p-cancelable/1.1.0: 1218 | resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} 1219 | engines: {node: '>=6'} 1220 | dev: true 1221 | 1222 | /p-defer/1.0.0: 1223 | resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=} 1224 | engines: {node: '>=4'} 1225 | dev: true 1226 | 1227 | /p-event/4.2.0: 1228 | resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} 1229 | engines: {node: '>=8'} 1230 | dependencies: 1231 | p-timeout: 3.2.0 1232 | dev: true 1233 | 1234 | /p-finally/1.0.0: 1235 | resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} 1236 | engines: {node: '>=4'} 1237 | dev: true 1238 | 1239 | /p-limit/2.3.0: 1240 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1241 | engines: {node: '>=6'} 1242 | dependencies: 1243 | p-try: 2.2.0 1244 | dev: true 1245 | 1246 | /p-locate/3.0.0: 1247 | resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} 1248 | engines: {node: '>=6'} 1249 | dependencies: 1250 | p-limit: 2.3.0 1251 | dev: true 1252 | 1253 | /p-locate/4.1.0: 1254 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1255 | engines: {node: '>=8'} 1256 | dependencies: 1257 | p-limit: 2.3.0 1258 | dev: true 1259 | 1260 | /p-map/4.0.0: 1261 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 1262 | engines: {node: '>=10'} 1263 | dependencies: 1264 | aggregate-error: 3.1.0 1265 | dev: true 1266 | 1267 | /p-timeout/3.2.0: 1268 | resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} 1269 | engines: {node: '>=8'} 1270 | dependencies: 1271 | p-finally: 1.0.0 1272 | dev: true 1273 | 1274 | /p-try/2.2.0: 1275 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1276 | engines: {node: '>=6'} 1277 | dev: true 1278 | 1279 | /package-json/6.5.0: 1280 | resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} 1281 | engines: {node: '>=8'} 1282 | dependencies: 1283 | got: 9.6.0 1284 | registry-auth-token: 4.2.1 1285 | registry-url: 5.1.0 1286 | semver: 6.3.0 1287 | dev: true 1288 | 1289 | /parse-json/4.0.0: 1290 | resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} 1291 | engines: {node: '>=4'} 1292 | dependencies: 1293 | error-ex: 1.3.2 1294 | json-parse-better-errors: 1.0.2 1295 | dev: true 1296 | 1297 | /parse-json/5.2.0: 1298 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1299 | engines: {node: '>=8'} 1300 | dependencies: 1301 | '@babel/code-frame': 7.16.7 1302 | error-ex: 1.3.2 1303 | json-parse-even-better-errors: 2.3.1 1304 | lines-and-columns: 1.2.4 1305 | dev: true 1306 | 1307 | /parse-ms/2.1.0: 1308 | resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} 1309 | engines: {node: '>=6'} 1310 | dev: true 1311 | 1312 | /path-exists/3.0.0: 1313 | resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} 1314 | engines: {node: '>=4'} 1315 | dev: true 1316 | 1317 | /path-exists/4.0.0: 1318 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1319 | engines: {node: '>=8'} 1320 | dev: true 1321 | 1322 | /path-is-absolute/1.0.1: 1323 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 1324 | engines: {node: '>=0.10.0'} 1325 | dev: true 1326 | 1327 | /path-parse/1.0.7: 1328 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1329 | dev: true 1330 | 1331 | /path-type/4.0.0: 1332 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1333 | engines: {node: '>=8'} 1334 | dev: true 1335 | 1336 | /picomatch/2.3.1: 1337 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1338 | engines: {node: '>=8.6'} 1339 | dev: true 1340 | 1341 | /pify/4.0.1: 1342 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1343 | engines: {node: '>=6'} 1344 | dev: true 1345 | 1346 | /pkg-conf/3.1.0: 1347 | resolution: {integrity: sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==} 1348 | engines: {node: '>=6'} 1349 | dependencies: 1350 | find-up: 3.0.0 1351 | load-json-file: 5.3.0 1352 | dev: true 1353 | 1354 | /pkg-dir/4.2.0: 1355 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1356 | engines: {node: '>=8'} 1357 | dependencies: 1358 | find-up: 4.1.0 1359 | dev: true 1360 | 1361 | /plur/4.0.0: 1362 | resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} 1363 | engines: {node: '>=10'} 1364 | dependencies: 1365 | irregular-plurals: 3.3.0 1366 | dev: true 1367 | 1368 | /prepend-http/2.0.0: 1369 | resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} 1370 | engines: {node: '>=4'} 1371 | dev: true 1372 | 1373 | /pretty-ms/7.0.1: 1374 | resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} 1375 | engines: {node: '>=10'} 1376 | dependencies: 1377 | parse-ms: 2.1.0 1378 | dev: true 1379 | 1380 | /pump/3.0.0: 1381 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1382 | dependencies: 1383 | end-of-stream: 1.4.4 1384 | once: 1.4.0 1385 | dev: true 1386 | 1387 | /pupa/2.1.1: 1388 | resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} 1389 | engines: {node: '>=8'} 1390 | dependencies: 1391 | escape-goat: 2.1.1 1392 | dev: true 1393 | 1394 | /queue-microtask/1.2.3: 1395 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1396 | dev: true 1397 | 1398 | /rc/1.2.8: 1399 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1400 | hasBin: true 1401 | dependencies: 1402 | deep-extend: 0.6.0 1403 | ini: 1.3.8 1404 | minimist: 1.2.6 1405 | strip-json-comments: 2.0.1 1406 | dev: true 1407 | 1408 | /read-pkg/5.2.0: 1409 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 1410 | engines: {node: '>=8'} 1411 | dependencies: 1412 | '@types/normalize-package-data': 2.4.1 1413 | normalize-package-data: 2.5.0 1414 | parse-json: 5.2.0 1415 | type-fest: 0.6.0 1416 | dev: true 1417 | 1418 | /readable-stream/3.6.0: 1419 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 1420 | engines: {node: '>= 6'} 1421 | dependencies: 1422 | inherits: 2.0.4 1423 | string_decoder: 1.3.0 1424 | util-deprecate: 1.0.2 1425 | dev: true 1426 | 1427 | /readdirp/3.6.0: 1428 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1429 | engines: {node: '>=8.10.0'} 1430 | dependencies: 1431 | picomatch: 2.3.1 1432 | dev: true 1433 | 1434 | /registry-auth-token/4.2.1: 1435 | resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} 1436 | engines: {node: '>=6.0.0'} 1437 | dependencies: 1438 | rc: 1.2.8 1439 | dev: true 1440 | 1441 | /registry-url/5.1.0: 1442 | resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} 1443 | engines: {node: '>=8'} 1444 | dependencies: 1445 | rc: 1.2.8 1446 | dev: true 1447 | 1448 | /require-directory/2.1.1: 1449 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} 1450 | engines: {node: '>=0.10.0'} 1451 | dev: true 1452 | 1453 | /resolve-cwd/3.0.0: 1454 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} 1455 | engines: {node: '>=8'} 1456 | dependencies: 1457 | resolve-from: 5.0.0 1458 | dev: true 1459 | 1460 | /resolve-from/5.0.0: 1461 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1462 | engines: {node: '>=8'} 1463 | dev: true 1464 | 1465 | /resolve/1.22.0: 1466 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} 1467 | hasBin: true 1468 | dependencies: 1469 | is-core-module: 2.8.1 1470 | path-parse: 1.0.7 1471 | supports-preserve-symlinks-flag: 1.0.0 1472 | dev: true 1473 | 1474 | /responselike/1.0.2: 1475 | resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} 1476 | dependencies: 1477 | lowercase-keys: 1.0.1 1478 | dev: true 1479 | 1480 | /restore-cursor/3.1.0: 1481 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 1482 | engines: {node: '>=8'} 1483 | dependencies: 1484 | onetime: 5.1.2 1485 | signal-exit: 3.0.7 1486 | dev: true 1487 | 1488 | /reusify/1.0.4: 1489 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1490 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1491 | dev: true 1492 | 1493 | /rimraf/3.0.2: 1494 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1495 | hasBin: true 1496 | dependencies: 1497 | glob: 7.2.0 1498 | dev: true 1499 | 1500 | /run-parallel/1.2.0: 1501 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1502 | dependencies: 1503 | queue-microtask: 1.2.3 1504 | dev: true 1505 | 1506 | /safe-buffer/5.1.2: 1507 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1508 | dev: true 1509 | 1510 | /safe-buffer/5.2.1: 1511 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1512 | dev: true 1513 | 1514 | /semver-diff/3.1.1: 1515 | resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} 1516 | engines: {node: '>=8'} 1517 | dependencies: 1518 | semver: 6.3.0 1519 | dev: true 1520 | 1521 | /semver/5.7.1: 1522 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 1523 | hasBin: true 1524 | dev: true 1525 | 1526 | /semver/6.3.0: 1527 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 1528 | hasBin: true 1529 | dev: true 1530 | 1531 | /semver/7.3.5: 1532 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 1533 | engines: {node: '>=10'} 1534 | hasBin: true 1535 | dependencies: 1536 | lru-cache: 6.0.0 1537 | dev: true 1538 | 1539 | /serialize-error/7.0.1: 1540 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} 1541 | engines: {node: '>=10'} 1542 | dependencies: 1543 | type-fest: 0.13.1 1544 | dev: true 1545 | 1546 | /signal-exit/3.0.7: 1547 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1548 | dev: true 1549 | 1550 | /slash/3.0.0: 1551 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1552 | engines: {node: '>=8'} 1553 | dev: true 1554 | 1555 | /slice-ansi/3.0.0: 1556 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} 1557 | engines: {node: '>=8'} 1558 | dependencies: 1559 | ansi-styles: 4.3.0 1560 | astral-regex: 2.0.0 1561 | is-fullwidth-code-point: 3.0.0 1562 | dev: true 1563 | 1564 | /source-map-support/0.5.21: 1565 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1566 | dependencies: 1567 | buffer-from: 1.1.2 1568 | source-map: 0.6.1 1569 | dev: true 1570 | 1571 | /source-map/0.6.1: 1572 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1573 | engines: {node: '>=0.10.0'} 1574 | dev: true 1575 | 1576 | /spdx-correct/3.1.1: 1577 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 1578 | dependencies: 1579 | spdx-expression-parse: 3.0.1 1580 | spdx-license-ids: 3.0.11 1581 | dev: true 1582 | 1583 | /spdx-exceptions/2.3.0: 1584 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 1585 | dev: true 1586 | 1587 | /spdx-expression-parse/3.0.1: 1588 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1589 | dependencies: 1590 | spdx-exceptions: 2.3.0 1591 | spdx-license-ids: 3.0.11 1592 | dev: true 1593 | 1594 | /spdx-license-ids/3.0.11: 1595 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} 1596 | dev: true 1597 | 1598 | /sprintf-js/1.0.3: 1599 | resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} 1600 | dev: true 1601 | 1602 | /stack-utils/2.0.5: 1603 | resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} 1604 | engines: {node: '>=10'} 1605 | dependencies: 1606 | escape-string-regexp: 2.0.0 1607 | dev: true 1608 | 1609 | /string-width/4.2.3: 1610 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1611 | engines: {node: '>=8'} 1612 | dependencies: 1613 | emoji-regex: 8.0.0 1614 | is-fullwidth-code-point: 3.0.0 1615 | strip-ansi: 6.0.1 1616 | dev: true 1617 | 1618 | /string_decoder/1.3.0: 1619 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1620 | dependencies: 1621 | safe-buffer: 5.2.1 1622 | dev: true 1623 | 1624 | /strip-ansi/6.0.1: 1625 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1626 | engines: {node: '>=8'} 1627 | dependencies: 1628 | ansi-regex: 5.0.1 1629 | dev: true 1630 | 1631 | /strip-bom/3.0.0: 1632 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} 1633 | engines: {node: '>=4'} 1634 | dev: true 1635 | 1636 | /strip-json-comments/2.0.1: 1637 | resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} 1638 | engines: {node: '>=0.10.0'} 1639 | dev: true 1640 | 1641 | /supertap/2.0.0: 1642 | resolution: {integrity: sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==} 1643 | engines: {node: '>=10'} 1644 | dependencies: 1645 | arrify: 2.0.1 1646 | indent-string: 4.0.0 1647 | js-yaml: 3.14.1 1648 | serialize-error: 7.0.1 1649 | strip-ansi: 6.0.1 1650 | dev: true 1651 | 1652 | /supports-color/5.5.0: 1653 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1654 | engines: {node: '>=4'} 1655 | dependencies: 1656 | has-flag: 3.0.0 1657 | dev: true 1658 | 1659 | /supports-color/7.2.0: 1660 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1661 | engines: {node: '>=8'} 1662 | dependencies: 1663 | has-flag: 4.0.0 1664 | dev: true 1665 | 1666 | /supports-preserve-symlinks-flag/1.0.0: 1667 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1668 | engines: {node: '>= 0.4'} 1669 | dev: true 1670 | 1671 | /temp-dir/2.0.0: 1672 | resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} 1673 | engines: {node: '>=8'} 1674 | dev: true 1675 | 1676 | /time-zone/1.0.0: 1677 | resolution: {integrity: sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=} 1678 | engines: {node: '>=4'} 1679 | dev: true 1680 | 1681 | /to-readable-stream/1.0.0: 1682 | resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} 1683 | engines: {node: '>=6'} 1684 | dev: true 1685 | 1686 | /to-regex-range/5.0.1: 1687 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1688 | engines: {node: '>=8.0'} 1689 | dependencies: 1690 | is-number: 7.0.0 1691 | dev: true 1692 | 1693 | /trim-off-newlines/1.0.3: 1694 | resolution: {integrity: sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==} 1695 | engines: {node: '>=0.10.0'} 1696 | dev: true 1697 | 1698 | /type-fest/0.13.1: 1699 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 1700 | engines: {node: '>=10'} 1701 | dev: true 1702 | 1703 | /type-fest/0.20.2: 1704 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1705 | engines: {node: '>=10'} 1706 | dev: true 1707 | 1708 | /type-fest/0.3.1: 1709 | resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==} 1710 | engines: {node: '>=6'} 1711 | dev: true 1712 | 1713 | /type-fest/0.6.0: 1714 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 1715 | engines: {node: '>=8'} 1716 | dev: true 1717 | 1718 | /typedarray-to-buffer/3.1.5: 1719 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} 1720 | dependencies: 1721 | is-typedarray: 1.0.0 1722 | dev: true 1723 | 1724 | /unique-string/2.0.0: 1725 | resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} 1726 | engines: {node: '>=8'} 1727 | dependencies: 1728 | crypto-random-string: 2.0.0 1729 | dev: true 1730 | 1731 | /update-notifier/5.1.0: 1732 | resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} 1733 | engines: {node: '>=10'} 1734 | dependencies: 1735 | boxen: 5.1.2 1736 | chalk: 4.1.2 1737 | configstore: 5.0.1 1738 | has-yarn: 2.1.0 1739 | import-lazy: 2.1.0 1740 | is-ci: 2.0.0 1741 | is-installed-globally: 0.4.0 1742 | is-npm: 5.0.0 1743 | is-yarn-global: 0.3.0 1744 | latest-version: 5.1.0 1745 | pupa: 2.1.1 1746 | semver: 7.3.5 1747 | semver-diff: 3.1.1 1748 | xdg-basedir: 4.0.0 1749 | dev: true 1750 | 1751 | /url-parse-lax/3.0.0: 1752 | resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} 1753 | engines: {node: '>=4'} 1754 | dependencies: 1755 | prepend-http: 2.0.0 1756 | dev: true 1757 | 1758 | /util-deprecate/1.0.2: 1759 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 1760 | dev: true 1761 | 1762 | /validate-npm-package-license/3.0.4: 1763 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 1764 | dependencies: 1765 | spdx-correct: 3.1.1 1766 | spdx-expression-parse: 3.0.1 1767 | dev: true 1768 | 1769 | /wcwidth/1.0.1: 1770 | resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} 1771 | dependencies: 1772 | defaults: 1.0.3 1773 | dev: true 1774 | 1775 | /well-known-symbols/2.0.0: 1776 | resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} 1777 | engines: {node: '>=6'} 1778 | dev: true 1779 | 1780 | /widest-line/3.1.0: 1781 | resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} 1782 | engines: {node: '>=8'} 1783 | dependencies: 1784 | string-width: 4.2.3 1785 | dev: true 1786 | 1787 | /wrap-ansi/7.0.0: 1788 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1789 | engines: {node: '>=10'} 1790 | dependencies: 1791 | ansi-styles: 4.3.0 1792 | string-width: 4.2.3 1793 | strip-ansi: 6.0.1 1794 | dev: true 1795 | 1796 | /wrappy/1.0.2: 1797 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 1798 | dev: true 1799 | 1800 | /write-file-atomic/3.0.3: 1801 | resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} 1802 | dependencies: 1803 | imurmurhash: 0.1.4 1804 | is-typedarray: 1.0.0 1805 | signal-exit: 3.0.7 1806 | typedarray-to-buffer: 3.1.5 1807 | dev: true 1808 | 1809 | /xdg-basedir/4.0.0: 1810 | resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} 1811 | engines: {node: '>=8'} 1812 | dev: true 1813 | 1814 | /y18n/5.0.8: 1815 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1816 | engines: {node: '>=10'} 1817 | dev: true 1818 | 1819 | /yallist/4.0.0: 1820 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1821 | dev: true 1822 | 1823 | /yargs-parser/20.2.9: 1824 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1825 | engines: {node: '>=10'} 1826 | dev: true 1827 | 1828 | /yargs/16.2.0: 1829 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 1830 | engines: {node: '>=10'} 1831 | dependencies: 1832 | cliui: 7.0.4 1833 | escalade: 3.1.1 1834 | get-caller-file: 2.0.5 1835 | require-directory: 2.1.1 1836 | string-width: 4.2.3 1837 | y18n: 5.0.8 1838 | yargs-parser: 20.2.9 1839 | dev: true 1840 | -------------------------------------------------------------------------------- /src/module.js: -------------------------------------------------------------------------------- 1 | function parser(text) { 2 | const blocks = text.split(/\n\n/g); 3 | let parsedText = ""; 4 | for (let i = 0; i < blocks.length; i++) { 5 | const el = blocks[i]; 6 | const codeRegex = new RegExp("^```\n(.+)\n```", "sgim"); 7 | const codeTest = codeRegex.test(el); 8 | 9 | if (!codeTest) { 10 | let tempText = el 11 | .replace(/^(#) (.*$)/gim, function (char, item, item2) { 12 | return parseTitles(item, item2); 13 | }) // h1 tag 14 | .replace(/^(##) (.*$)/gim, function (char, item, item2) { 15 | return parseTitles(item, item2); 16 | }) // h2 tag 17 | .replace(/^(###) (.*$)/gim, function (char, item, item2) { 18 | return parseTitles(item, item2); 19 | }) // h3 tag 20 | .replace(/^(####) (.*$)/gim, function (char, item, item2) { 21 | return parseTitles(item, item2); 22 | }) // h4 tag 23 | .replace(/^(#####) (.*$)/gim, function (char, item, item2) { 24 | return parseTitles(item, item2); 25 | }) // h5 tag 26 | .replace(/^(######) (.*$)/gim, function (char, item, item2) { 27 | return parseTitles(item, item2); 28 | }) // h6 tag 29 | .replace(/\`(.*?)\`/gim, function (char, item) { 30 | if (item.includes("<")) { 31 | return `${item.replace(/<")}
`; 32 | } else { 33 | return `${item}
`; 34 | } 35 | }) // strong text 36 | .replace(/^----$/gim, "
") // hr tag 37 | .replace( 38 | /(^|\(|\s)_(.*?)_(\s|\.|\,|\?|\!|\n|\)|\b)/gim, 39 | "$1$2$3" 40 | ) // em text 41 | .replace(/\*(.*?)\*/gim, "$1") // strong text 42 | .replace(/\~(.*?)\~/gim, "$1") // strike text 43 | .replace(/^- (.*$)/gim, "\n\n") // strike text 44 | .replace(/^\+ (.*$)/gim, "
\n\n") // strike text 45 | .replace(/^\? (.*) : (.*$)/gim, "
\n\n") // strike text 46 | .replace(/\(link:(.*?)\)/gim, function (char, item) { 47 | return parseLinks(item); 48 | }) // links 49 | .replace(/\(image:(.*?)\)/gim, function (char, item) { 50 | return parseImage(item); 51 | }) // image 52 | .replace(/\(video:(.*?)\)/gim, function (char, item) { 53 | return parseVideo(item); 54 | }) // links 55 | .replace(/\(audio:(.*?)\)/gim, function (char, item) { 56 | const mp3 = item.trim(); 57 | return ``; 58 | }) // links 59 | .replace(/\(quote:(.*)\)/gim, function (char, item) { 60 | return parseQuote(item); 61 | }); // blockquote 62 | 63 | const htmlRegex = new RegExp("^<(.*)>", "gim"); 64 | const htmlTest = htmlRegex.test(tempText); 65 | 66 | if (!htmlTest) { 67 | tempText = `
${tempText.trim()}
\n\n`; 68 | } 69 | 70 | if (tempText) { 71 | parsedText += tempText; 72 | } 73 | } else if (codeTest) { 74 | const splitCode = el.trim().split("\n"); 75 | splitCode.shift(); 76 | splitCode.pop(); 77 | const cleanedCode = []; 78 | splitCode.forEach((el) => { 79 | if (el.includes("<")) { 80 | cleanedCode.push(el.replace(/<")); 81 | } else { 82 | cleanedCode.push(el); 83 | } 84 | }); 85 | const tempText = `\n\n`; 88 | if (tempText) { 89 | parsedText += tempText; 90 | } 91 | } 92 | } 93 | 94 | const cleanedText = parsedText 95 | .replace(/<\/ul>\n\n\n${cleanedCode.join( 86 | "\n" 87 | )}\n
/g, "") 96 | .replace(/<\/ol>\n\n\n
/g, "") 97 | .replace(/<\/dl>\n\n\n
/g, "") 98 | .replace(/
[\s\S\n]<\/p>/gim, "") 99 | .replace(/
<\/p>/g, "") 100 | .replace(/<\/li>