mirror of
https://github.com/veggiemonk/awesome-docker.git
synced 2024-10-01 01:36:03 -04:00
Merge build scripts
This commit is contained in:
parent
c57cc3d1bf
commit
ce8779ec61
248
build.js
248
build.js
@ -1,25 +1,170 @@
|
||||
const fs = require('fs');
|
||||
const showdown = require('showdown');
|
||||
const fs = require('fs-extra');
|
||||
const cheerio = require('cheerio');
|
||||
const dayjs = require('dayjs');
|
||||
const showdown = require('showdown');
|
||||
const Parcel = require('parcel-bundler');
|
||||
const sm = require('sitemap');
|
||||
|
||||
process.env.NODE_ENV = 'production';
|
||||
|
||||
process.on('unhandledRejection', error => {
|
||||
console.log('unhandledRejection', error.message);
|
||||
});
|
||||
const LOG = {
|
||||
error: (...args) => console.error('❌ ERROR', { ...args }),
|
||||
debug: (...args) => {
|
||||
if (process.env.DEBUG) console.log('💡 DEBUG: ', { ...args });
|
||||
},
|
||||
};
|
||||
const handleFailure = err => {
|
||||
LOG.error(err);
|
||||
process.exit(1);
|
||||
};
|
||||
|
||||
const readme = 'README.md';
|
||||
const template = 'website/index.tmpl.html';
|
||||
const merged = 'website/index.html';
|
||||
const destination = 'website/index.html';
|
||||
process.on('unhandledRejection', handleFailure);
|
||||
|
||||
const includeReadme = ({
|
||||
md = readme,
|
||||
templateHTML = template,
|
||||
dest = merged,
|
||||
} = {}) => {
|
||||
// --- FILES
|
||||
const README = 'README.md';
|
||||
const WEBSITE_FOLDER = 'website';
|
||||
const DATA_FOLDER = 'data';
|
||||
const LATEST_FILENAME = `${DATA_FOLDER}/latest`;
|
||||
const indexTemplate = `${WEBSITE_FOLDER}/index.tmpl.html`;
|
||||
const indexDestination = `${WEBSITE_FOLDER}/index.html`;
|
||||
const tableTemplate = `${WEBSITE_FOLDER}/table.tmpl.html`;
|
||||
const tableDestination = `${WEBSITE_FOLDER}/table.html`;
|
||||
|
||||
const valueNames = [
|
||||
'name',
|
||||
'description',
|
||||
'homepage',
|
||||
'star',
|
||||
'updated',
|
||||
'language',
|
||||
'license',
|
||||
'author',
|
||||
];
|
||||
|
||||
const sitemapOpts = {
|
||||
hostname: 'https://awesome-docker.netlify.com/',
|
||||
cacheTime: 6000000, // 600 sec (10 min) cache purge period
|
||||
urls: [
|
||||
{
|
||||
url: '/',
|
||||
changefreq: 'daily',
|
||||
priority: 0.8,
|
||||
lastmodrealtime: true,
|
||||
lastmodfile: 'dist/index.html',
|
||||
},
|
||||
{
|
||||
url: '/table.html',
|
||||
changefreq: 'daily',
|
||||
priority: 0.8,
|
||||
lastmodrealtime: true,
|
||||
lastmodfile: 'dist/table.html',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const getLastUpdate = updated => {
|
||||
const updt = Number(dayjs(updated).diff(dayjs(), 'days'));
|
||||
if (updt < 0) {
|
||||
if (Math.abs(updt) === 1) return `1 day ago`;
|
||||
return `${Math.abs(updt)} days ago`;
|
||||
} else if (updt === 0) return 'today';
|
||||
return updated;
|
||||
};
|
||||
|
||||
const mapHomePage = h => {
|
||||
if (h === 'manageiq.org') return 'https://manageiq.org';
|
||||
else if (h === 'dev-sec.io') return 'https://dev-sec.io';
|
||||
return h;
|
||||
};
|
||||
|
||||
const mapLicense = l => {
|
||||
if (l === 'GNU Lesser General Public License v3.0') return 'GNU LGPL v3.0';
|
||||
else if (l === 'GNU General Public License v2.0') return 'GNU GPL v2.0';
|
||||
else if (l === 'GNU General Public License v3.0') return 'GNU GPL v3.0';
|
||||
else if (l === 'BSD 3-Clause "New" or "Revised" License')
|
||||
return 'BSD 3-Clause';
|
||||
else if (l === 'BSD 2-Clause "Simplified" License') return 'BSD 2-Clause';
|
||||
return l;
|
||||
};
|
||||
|
||||
const formatEntry = (
|
||||
{
|
||||
name,
|
||||
html_url: repoURL,
|
||||
description,
|
||||
homepage,
|
||||
stargazers_count: stargazers,
|
||||
pushed_at: updated,
|
||||
language,
|
||||
license,
|
||||
owner,
|
||||
},
|
||||
i,
|
||||
) =>
|
||||
[
|
||||
`<li data-id="${i}">`,
|
||||
`<a href="${repoURL}" class="link ${valueNames[0]}">${name}</a>`,
|
||||
`<p class="${valueNames[1]}">${description || '-'}</p>`,
|
||||
`<p class="${
|
||||
valueNames[4]
|
||||
} timestamp" data-timestamp="${updated}">Last code update: ${getLastUpdate(
|
||||
updated,
|
||||
)}</p>`,
|
||||
(homepage &&
|
||||
`<a href="${mapHomePage(homepage)}" class="link ${
|
||||
valueNames[2]
|
||||
}">website</a>`) ||
|
||||
'<p></p>',
|
||||
`<p class="${
|
||||
valueNames[3]
|
||||
} timestamp" data-timestamp="${stargazers}">⭐️${stargazers}</p>`,
|
||||
(language && `<p class="${valueNames[5]}">${language}</p>`) || '<p></p>',
|
||||
(license &&
|
||||
license.url !== null &&
|
||||
`<a href="${license.url}" class="link ${valueNames[6]}">${mapLicense(
|
||||
license.name,
|
||||
)}</a>`) ||
|
||||
'<p></p>',
|
||||
owner &&
|
||||
`<p>Made by </p><a href="${owner.html_url}" class="link ${
|
||||
valueNames[7]
|
||||
}">${owner.login}</a>`,
|
||||
'</li>',
|
||||
].join('');
|
||||
|
||||
async function processTable() {
|
||||
try {
|
||||
LOG.debug('Loading files...', { LATEST_FILENAME, tableTemplate });
|
||||
const latestFilename = await fs.readFile(LATEST_FILENAME, 'utf8');
|
||||
LOG.debug({ latestFilename });
|
||||
const metaData = await fs.readJson(latestFilename, 'utf-8');
|
||||
|
||||
const template = await fs.readFile(tableTemplate, 'utf8');
|
||||
const $ = cheerio.load(template);
|
||||
const btn = valueNames.map(
|
||||
v => `<button class="sort" data-sort="${v}">${v} </button>`,
|
||||
);
|
||||
$('#md').append(
|
||||
[
|
||||
`<div class="container">`,
|
||||
`<div class="searchbar" ><input class="search" placeholder="Search" /></div>`,
|
||||
`<div class="sortbtn" ><p>Sort by</p>${btn.join('')}</div>`,
|
||||
`</div>`,
|
||||
'<ul class="list">',
|
||||
metaData.map(formatEntry).join(''),
|
||||
'</ul>',
|
||||
].join(''),
|
||||
);
|
||||
|
||||
LOG.debug('Writing table.html');
|
||||
await fs.outputFile(tableDestination, $.html(), 'utf8');
|
||||
LOG.debug('✅ DONE 👍');
|
||||
} catch (err) {
|
||||
handleFailure(err);
|
||||
}
|
||||
}
|
||||
|
||||
async function processIndex() {
|
||||
const converter = new showdown.Converter({
|
||||
omitExtraWLInCodeBlocks: true,
|
||||
simplifiedAutoLink: true,
|
||||
@ -41,58 +186,47 @@ const includeReadme = ({
|
||||
});
|
||||
// converter.setFlavor('github');
|
||||
|
||||
console.log('Loading files...');
|
||||
const indexTemplate = fs.readFileSync(templateHTML, 'utf8');
|
||||
const markdown = fs.readFileSync(md, 'utf8');
|
||||
try {
|
||||
LOG.debug('Loading files...', { indexTemplate, README });
|
||||
const template = await fs.readFile(indexTemplate, 'utf8');
|
||||
const markdown = await fs.readFile(README, 'utf8');
|
||||
|
||||
console.log('Merging files...');
|
||||
const $ = cheerio.load(indexTemplate);
|
||||
$('#md').append(converter.makeHtml(markdown));
|
||||
console.log('Writing index.html');
|
||||
fs.writeFileSync(dest, $.html(), 'utf8');
|
||||
console.log('DONE 👍');
|
||||
};
|
||||
LOG.debug('Merging files...');
|
||||
const $ = cheerio.load(template);
|
||||
|
||||
const bundle = (dest = destination) => {
|
||||
console.log('');
|
||||
console.log('Bundling with Parcel.js');
|
||||
console.log('');
|
||||
$('#md').append(converter.makeHtml(markdown));
|
||||
|
||||
new Parcel(dest, {
|
||||
LOG.debug('Writing index.html');
|
||||
await fs.outputFile(indexDestination, $.html(), 'utf8');
|
||||
LOG.debug('DONE 👍');
|
||||
} catch (err) {
|
||||
handleFailure(err);
|
||||
}
|
||||
}
|
||||
|
||||
const bundle = () => {
|
||||
LOG.debug('---');
|
||||
LOG.debug('📦 Bundling with Parcel.js');
|
||||
LOG.debug('---');
|
||||
|
||||
new Parcel(indexDestination, {
|
||||
name: 'build',
|
||||
publicURL: '/',
|
||||
})
|
||||
.bundle()
|
||||
.then(() => {
|
||||
.then(() =>
|
||||
// Creates a sitemap object given the input configuration with URLs
|
||||
const sitemap = sm.createSitemap({
|
||||
hostname: 'https://awesome-docker.netlify.com/',
|
||||
cacheTime: 6000000, // 600 sec (10 min) cache purge period
|
||||
urls: [
|
||||
{
|
||||
url: '/',
|
||||
changefreq: 'daily',
|
||||
priority: 0.8,
|
||||
lastmodrealtime: true,
|
||||
lastmodfile: 'dist/index.html',
|
||||
},
|
||||
{
|
||||
url: '/table.html',
|
||||
changefreq: 'weekly',
|
||||
priority: 0.8,
|
||||
lastmodrealtime: true,
|
||||
lastmodfile: 'dist/table.html',
|
||||
},
|
||||
],
|
||||
});
|
||||
fs.writeFileSync('dist/sitemap.xml', sitemap.toString());
|
||||
// fs.copyFileSync('website/sitemap.xml', 'dist/sitemap.xml');
|
||||
});
|
||||
fs.outputFile(
|
||||
'dist/sitemap.xml',
|
||||
sm.createSitemap(sitemapOpts).toString(),
|
||||
),
|
||||
);
|
||||
};
|
||||
|
||||
const main = () => {
|
||||
includeReadme();
|
||||
bundle();
|
||||
};
|
||||
async function main() {
|
||||
await processTable();
|
||||
await processIndex();
|
||||
await bundle();
|
||||
}
|
||||
|
||||
main();
|
||||
|
@ -10,10 +10,12 @@ const LOG = {
|
||||
if (process.env.DEBUG) console.log('💡 DEBUG: ', { ...args });
|
||||
},
|
||||
};
|
||||
const handleFailure = err => {
|
||||
LOG.error(err);
|
||||
process.exit(1);
|
||||
};
|
||||
|
||||
process.on('unhandledRejection', error => {
|
||||
LOG.error('unhandledRejection', error.message);
|
||||
});
|
||||
process.on('unhandledRejection', handleFailure);
|
||||
|
||||
if (!process.env.TOKEN) {
|
||||
LOG.error('no credentials found.');
|
||||
@ -26,12 +28,11 @@ const DELAY = parseInt(process.env.DELAY, 10) || 3000;
|
||||
const INTERVAL = parseInt(process.env.INTERVAL, 10) || 1;
|
||||
const INTERVAL_UNIT = process.env.INTERVAL_UNIT || 'days';
|
||||
|
||||
// --- FILENAME ---
|
||||
const README = 'README.md';
|
||||
// --- FILES ---
|
||||
const DATA_FOLDER = 'data';
|
||||
const GITHUB_METADATA_FILE = `${DATA_FOLDER}/${dayjs().format(
|
||||
'YYYY-MM-DDTHH.mm.ss',
|
||||
)}-fetched_repo_data.json`;
|
||||
const README = 'README.md';
|
||||
const DATE = dayjs().format('YYYY-MM-DDTHH.mm.ss');
|
||||
const GITHUB_METADATA_FILE = `${DATA_FOLDER}/${DATE}-fetched_repo_data.json`;
|
||||
const LATEST_FILENAME = `${DATA_FOLDER}/latest`;
|
||||
const GITHUB_REPOS = `${DATA_FOLDER}/list_repos.json`;
|
||||
|
||||
@ -46,12 +47,8 @@ const options = {
|
||||
},
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
const removeHost = x => x.slice('https://github.com/'.length, x.length);
|
||||
const barLine = console.draft('Starting batch...');
|
||||
const handleFailure = err => {
|
||||
LOG.error(err);
|
||||
process.exit(1);
|
||||
};
|
||||
|
||||
const delay = ms =>
|
||||
new Promise(resolve => {
|
||||
@ -59,7 +56,7 @@ const delay = ms =>
|
||||
});
|
||||
|
||||
const get = (pathURL, opt) => {
|
||||
LOG.debug(` Fetching ${pathURL}`);
|
||||
LOG.debug(`Fetching ${pathURL}`);
|
||||
return fetch(`${API}repos/${pathURL}`, {
|
||||
...options,
|
||||
...opt,
|
||||
@ -83,11 +80,13 @@ const extractAllRepos = markdown => {
|
||||
const ProgressBar = (i, batchSize, total) => {
|
||||
const progress = Math.round((i / total) * 100);
|
||||
const units = Math.round(progress / 2);
|
||||
const barLine = console.draft('Starting batch...');
|
||||
return barLine(
|
||||
`[${'='.repeat(units)}${' '.repeat(50 - units)}] ${progress}% - # ${i}`,
|
||||
);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
async function batchFetchRepoMetadata(githubRepos) {
|
||||
const repos = githubRepos.map(removeHost);
|
||||
|
||||
@ -127,7 +126,6 @@ function shouldUpdate(lastUpdateTime) {
|
||||
async function main() {
|
||||
try {
|
||||
const lastUpdateTime = await fs.readFile(LATEST_FILENAME, 'utf8');
|
||||
|
||||
LOG.debug('Checking if updating is needed');
|
||||
if (!shouldUpdate(lastUpdateTime)) {
|
||||
LOG.debug('Last update was less than a day ago 😅. Exiting...');
|
||||
|
122
buildTable.js
122
buildTable.js
@ -1,122 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const cheerio = require('cheerio');
|
||||
const dayjs = require('dayjs');
|
||||
|
||||
const getLatestFilename = fs.readFileSync('data/latest', 'utf-8');
|
||||
console.log(getLatestFilename);
|
||||
const metaData = require(`./${getLatestFilename}`); // eslint-disable-line import/no-dynamic-require
|
||||
|
||||
process.env.NODE_ENV = 'production';
|
||||
|
||||
process.on('unhandledRejection', error => {
|
||||
console.log('unhandledRejection', error.message);
|
||||
});
|
||||
|
||||
const templateHTML = 'website/table.tmpl.html';
|
||||
const destination = 'website/table.html';
|
||||
|
||||
const valueNames = [
|
||||
'name',
|
||||
'description',
|
||||
'homepage',
|
||||
'star',
|
||||
'updated',
|
||||
'language',
|
||||
'license',
|
||||
'author',
|
||||
];
|
||||
|
||||
const getLastUpdate = updated => {
|
||||
const updt = Number(dayjs(updated).diff(dayjs(), 'days'));
|
||||
if (updt < 0) {
|
||||
if (Math.abs(updt) === 1) return `1 day ago`;
|
||||
return `${Math.abs(updt)} days ago`;
|
||||
} else if (updt === 0) return 'today';
|
||||
return updated;
|
||||
};
|
||||
|
||||
const mapHomePage = h => {
|
||||
if (h === 'manageiq.org') return 'https://manageiq.org';
|
||||
else if (h === 'dev-sec.io') return 'https://dev-sec.io';
|
||||
return h;
|
||||
};
|
||||
|
||||
const mapLicense = l => {
|
||||
if (l === 'GNU Lesser General Public License v3.0') return 'GNU LGPL v3.0';
|
||||
else if (l === 'GNU General Public License v2.0') return 'GNU GPL v2.0';
|
||||
else if (l === 'GNU General Public License v3.0') return 'GNU GPL v3.0';
|
||||
else if (l === 'BSD 3-Clause "New" or "Revised" License')
|
||||
return 'BSD 3-Clause';
|
||||
else if (l === 'BSD 2-Clause "Simplified" License') return 'BSD 2-Clause';
|
||||
return l;
|
||||
};
|
||||
|
||||
const formatEntry = (
|
||||
{
|
||||
name,
|
||||
html_url: repoURL,
|
||||
description,
|
||||
homepage,
|
||||
stargazers_count: stargazers,
|
||||
pushed_at: updated,
|
||||
language,
|
||||
license,
|
||||
owner,
|
||||
},
|
||||
i,
|
||||
) =>
|
||||
[
|
||||
`<li data-id="${i}">`,
|
||||
`<a href="${repoURL}" class="link ${valueNames[0]}">${name}</a>`,
|
||||
`<p class="${valueNames[1]}">${description || '-'}</p>`,
|
||||
`<p class="${
|
||||
valueNames[4]
|
||||
} timestamp" data-timestamp="${updated}">Last code update: ${getLastUpdate(
|
||||
updated,
|
||||
)}</p>`,
|
||||
(homepage &&
|
||||
`<a href="${mapHomePage(homepage)}" class="link ${
|
||||
valueNames[2]
|
||||
}">website</a>`) ||
|
||||
'<p></p>',
|
||||
`<p class="${
|
||||
valueNames[3]
|
||||
} timestamp" data-timestamp="${stargazers}">⭐️${stargazers}</p>`,
|
||||
(language && `<p class="${valueNames[5]}">💻${language}</p>`) || '<p></p>',
|
||||
(license &&
|
||||
license.url !== null &&
|
||||
`<a href="${license.url}" class="link ${valueNames[6]}">${mapLicense(
|
||||
license.name,
|
||||
)}</a>`) ||
|
||||
'<p></p>',
|
||||
owner &&
|
||||
`<p>Made by </p><a href="${owner.html_url}" class="link ${
|
||||
valueNames[7]
|
||||
}">${owner.login}</a>`,
|
||||
'</li>',
|
||||
].join('');
|
||||
|
||||
function main() {
|
||||
const indexTemplate = fs.readFileSync(templateHTML, 'utf8');
|
||||
const $ = cheerio.load(indexTemplate);
|
||||
const btn = valueNames.map(
|
||||
v => `<button class="sort" data-sort="${v}">${v} </button>`,
|
||||
);
|
||||
$('#md').append(
|
||||
[
|
||||
`<div class="container">`,
|
||||
`<div class="searchbar" ><input class="search" placeholder="Search" /></div>`,
|
||||
`<div class="sortbtn" ><p>Sort by</p>${btn.join('')}</div>`,
|
||||
`</div>`,
|
||||
'<ul class="list">',
|
||||
metaData.map(formatEntry).join(''),
|
||||
'</ul>',
|
||||
].join(''),
|
||||
);
|
||||
|
||||
console.log('Writing table.html');
|
||||
fs.writeFileSync(destination, $.html(), 'utf8');
|
||||
console.log('DONE 👍');
|
||||
}
|
||||
|
||||
main();
|
290
package-lock.json
generated
290
package-lock.json
generated
@ -131,11 +131,6 @@
|
||||
"resolved": "http://registry.npmjs.org/@types/node/-/node-9.4.7.tgz",
|
||||
"integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw=="
|
||||
},
|
||||
"abab": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
|
||||
"integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
@ -146,14 +141,6 @@
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
|
||||
"integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ=="
|
||||
},
|
||||
"acorn-globals": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz",
|
||||
"integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==",
|
||||
"requires": {
|
||||
"acorn": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"acorn-jsx": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
|
||||
@ -297,9 +284,9 @@
|
||||
}
|
||||
},
|
||||
"aria-query": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz",
|
||||
"integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
|
||||
"integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ast-types-flow": "0.0.7",
|
||||
@ -321,11 +308,6 @@
|
||||
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
|
||||
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
|
||||
},
|
||||
"array-equal": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
|
||||
"integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
|
||||
},
|
||||
"array-find-index": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
|
||||
@ -560,9 +542,9 @@
|
||||
"integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="
|
||||
},
|
||||
"axobject-query": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
|
||||
"integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.1.tgz",
|
||||
"integrity": "sha1-Bd+nBa2orZ25k/polvItOVsLCgc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ast-types-flow": "0.0.7"
|
||||
@ -667,16 +649,16 @@
|
||||
}
|
||||
},
|
||||
"babel-eslint": {
|
||||
"version": "8.2.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.3.tgz",
|
||||
"integrity": "sha512-0HeSTtaXg/Em7FCUWxwOT+KeFSO1O7LuRuzhk7g+1BjwdlQGlHq4OyMi3GqGxrNfEq8jEi6Hmt5ylEQUhurgiQ==",
|
||||
"version": "8.2.6",
|
||||
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz",
|
||||
"integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "7.0.0-beta.44",
|
||||
"@babel/traverse": "7.0.0-beta.44",
|
||||
"@babel/types": "7.0.0-beta.44",
|
||||
"babylon": "7.0.0-beta.44",
|
||||
"eslint-scope": "~3.7.1",
|
||||
"eslint-scope": "3.7.1",
|
||||
"eslint-visitor-keys": "^1.0.0"
|
||||
}
|
||||
},
|
||||
@ -1510,11 +1492,6 @@
|
||||
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
||||
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
||||
},
|
||||
"browser-process-hrtime": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
|
||||
"integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44="
|
||||
},
|
||||
"browserify-aes": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||
@ -2466,19 +2443,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"cssom": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
|
||||
"integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs="
|
||||
},
|
||||
"cssstyle": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.3.1.tgz",
|
||||
"integrity": "sha512-tNvaxM5blOnxanyxI6panOsnfiyLRj3HV4qjqqS45WPNS1usdYWRUQjqTEEELK73lpeP/1KoIGYUwrBn/VcECA==",
|
||||
"requires": {
|
||||
"cssom": "0.3.x"
|
||||
}
|
||||
},
|
||||
"currently-unhandled": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
|
||||
@ -2501,16 +2465,6 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"data-urls": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz",
|
||||
"integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==",
|
||||
"requires": {
|
||||
"abab": "^1.0.4",
|
||||
"whatwg-mimetype": "^2.0.0",
|
||||
"whatwg-url": "^6.4.0"
|
||||
}
|
||||
},
|
||||
"date-now": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
|
||||
@ -2755,14 +2709,6 @@
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
|
||||
"integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
|
||||
},
|
||||
"domexception": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
|
||||
"integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
|
||||
"requires": {
|
||||
"webidl-conversions": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"domhandler": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
|
||||
@ -3067,9 +3013,9 @@
|
||||
}
|
||||
},
|
||||
"eslint-plugin-import": {
|
||||
"version": "2.12.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.12.0.tgz",
|
||||
"integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=",
|
||||
"version": "2.13.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz",
|
||||
"integrity": "sha512-t6hGKQDMIt9N8R7vLepsYXgDfeuhp6ZJSgtrLEDxonpSubyxUZHjhm6LsAaZX8q6GYVxkbT3kTsV9G5mBCFR6A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"contains-path": "^0.1.0",
|
||||
@ -3154,24 +3100,36 @@
|
||||
}
|
||||
},
|
||||
"eslint-plugin-jsx-a11y": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz",
|
||||
"integrity": "sha1-VFg9GuRCSDFi4EDhPMMYZUZRAOU=",
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.1.tgz",
|
||||
"integrity": "sha512-JsxNKqa3TwmPypeXNnI75FntkUktGzI1wSa1LgNZdSOMI+B4sxnr1lSF8m8lPiz4mKiC+14ysZQM4scewUrP7A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aria-query": "^0.7.0",
|
||||
"aria-query": "^3.0.0",
|
||||
"array-includes": "^3.0.3",
|
||||
"ast-types-flow": "0.0.7",
|
||||
"axobject-query": "^0.1.0",
|
||||
"damerau-levenshtein": "^1.0.0",
|
||||
"emoji-regex": "^6.1.0",
|
||||
"jsx-ast-utils": "^2.0.0"
|
||||
"ast-types-flow": "^0.0.7",
|
||||
"axobject-query": "^2.0.1",
|
||||
"damerau-levenshtein": "^1.0.4",
|
||||
"emoji-regex": "^6.5.1",
|
||||
"has": "^1.0.3",
|
||||
"jsx-ast-utils": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-plugin-prettier": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz",
|
||||
"integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==",
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz",
|
||||
"integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-diff": "^1.1.1",
|
||||
@ -4457,14 +4415,6 @@
|
||||
"resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
|
||||
"integrity": "sha1-ZouTd26q5V696POtRkswekljYl4="
|
||||
},
|
||||
"html-encoding-sniffer": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
|
||||
"integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
|
||||
"requires": {
|
||||
"whatwg-encoding": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"htmlnano": {
|
||||
"version": "0.1.9",
|
||||
"resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-0.1.9.tgz",
|
||||
@ -5064,55 +5014,6 @@
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||
"optional": true
|
||||
},
|
||||
"jsdom": {
|
||||
"version": "11.11.0",
|
||||
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.11.0.tgz",
|
||||
"integrity": "sha512-ou1VyfjwsSuWkudGxb03FotDajxAto6USAlmMZjE2lc0jCznt7sBWkhfRBRaWwbnmDqdMSTKTLT5d9sBFkkM7A==",
|
||||
"requires": {
|
||||
"abab": "^1.0.4",
|
||||
"acorn": "^5.3.0",
|
||||
"acorn-globals": "^4.1.0",
|
||||
"array-equal": "^1.0.0",
|
||||
"cssom": ">= 0.3.2 < 0.4.0",
|
||||
"cssstyle": ">= 0.3.1 < 0.4.0",
|
||||
"data-urls": "^1.0.0",
|
||||
"domexception": "^1.0.0",
|
||||
"escodegen": "^1.9.0",
|
||||
"html-encoding-sniffer": "^1.0.2",
|
||||
"left-pad": "^1.2.0",
|
||||
"nwsapi": "^2.0.0",
|
||||
"parse5": "4.0.0",
|
||||
"pn": "^1.1.0",
|
||||
"request": "^2.83.0",
|
||||
"request-promise-native": "^1.0.5",
|
||||
"sax": "^1.2.4",
|
||||
"symbol-tree": "^3.2.2",
|
||||
"tough-cookie": "^2.3.3",
|
||||
"w3c-hr-time": "^1.0.1",
|
||||
"webidl-conversions": "^4.0.2",
|
||||
"whatwg-encoding": "^1.0.3",
|
||||
"whatwg-mimetype": "^2.1.0",
|
||||
"whatwg-url": "^6.4.1",
|
||||
"ws": "^4.0.0",
|
||||
"xml-name-validator": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"parse5": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
|
||||
"integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA=="
|
||||
},
|
||||
"ws": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
|
||||
"integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
|
||||
"requires": {
|
||||
"async-limiter": "~1.0.0",
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jsesc": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
|
||||
@ -5214,11 +5115,6 @@
|
||||
"invert-kv": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"left-pad": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
|
||||
"integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="
|
||||
},
|
||||
"levn": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
|
||||
@ -5357,11 +5253,6 @@
|
||||
"resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
|
||||
"integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0="
|
||||
},
|
||||
"lodash.sortby": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
|
||||
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
|
||||
},
|
||||
"lodash.uniq": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
|
||||
@ -5870,11 +5761,6 @@
|
||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
||||
},
|
||||
"nwsapi": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.2.tgz",
|
||||
"integrity": "sha512-wAvMV1QgoYPvqfcAmX1M86SyZA3SnNT6UNvjqO/pKHjIZzhMpPHjCTOWdOfkmUknjnvjDq09wDiBaHAzXSLiSA=="
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
|
||||
@ -6527,11 +6413,6 @@
|
||||
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
|
||||
"dev": true
|
||||
},
|
||||
"pn": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
|
||||
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
|
||||
},
|
||||
"posix-character-classes": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
|
||||
@ -8554,9 +8435,9 @@
|
||||
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
|
||||
},
|
||||
"prettier": {
|
||||
"version": "1.13.5",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.5.tgz",
|
||||
"integrity": "sha512-4M90mfvLz6yRf2Dhzd+xPIE6b4xkI8nHMJhsSm9IlfG17g6wujrrm7+H1X8x52tC4cSNm6HmuhCUSNe6Hd5wfw==",
|
||||
"version": "1.13.7",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz",
|
||||
"integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==",
|
||||
"dev": true
|
||||
},
|
||||
"private": {
|
||||
@ -8999,24 +8880,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"request-promise-core": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
|
||||
"integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
|
||||
"requires": {
|
||||
"lodash": "^4.13.1"
|
||||
}
|
||||
},
|
||||
"request-promise-native": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
|
||||
"integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
|
||||
"requires": {
|
||||
"request-promise-core": "1.1.1",
|
||||
"stealthy-require": "^1.1.0",
|
||||
"tough-cookie": ">=2.3.3"
|
||||
}
|
||||
},
|
||||
"require-directory": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
@ -9601,11 +9464,6 @@
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||
},
|
||||
"stealthy-require": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
|
||||
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
|
||||
},
|
||||
"stream-browserify": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
|
||||
@ -9770,11 +9628,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"symbol-tree": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
|
||||
"integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY="
|
||||
},
|
||||
"table": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
|
||||
@ -9926,21 +9779,6 @@
|
||||
"punycode": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"tr46": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
|
||||
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"trim-newlines": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
||||
@ -10322,49 +10160,6 @@
|
||||
"indexof": "0.0.1"
|
||||
}
|
||||
},
|
||||
"w3c-hr-time": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
|
||||
"integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
|
||||
"requires": {
|
||||
"browser-process-hrtime": "^0.1.2"
|
||||
}
|
||||
},
|
||||
"webidl-conversions": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
|
||||
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
|
||||
},
|
||||
"whatwg-encoding": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
|
||||
"integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
|
||||
"requires": {
|
||||
"iconv-lite": "0.4.19"
|
||||
},
|
||||
"dependencies": {
|
||||
"iconv-lite": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"whatwg-mimetype": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz",
|
||||
"integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew=="
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
|
||||
"integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
|
||||
"requires": {
|
||||
"lodash.sortby": "^4.7.0",
|
||||
"tr46": "^1.0.1",
|
||||
"webidl-conversions": "^4.0.2"
|
||||
}
|
||||
},
|
||||
"whet.extend": {
|
||||
"version": "0.9.9",
|
||||
"resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
|
||||
@ -10511,11 +10306,6 @@
|
||||
"os-homedir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"xml-name-validator": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
|
||||
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
|
41
package.json
41
package.json
@ -2,9 +2,9 @@
|
||||
"name": "awesome-docker-website",
|
||||
"version": "1.0.0",
|
||||
"description": "A curated list of Docker resources and projects Inspired by @sindresorhus and improved by amazing contributors",
|
||||
"main": "index.js",
|
||||
"main": "build.js",
|
||||
"scripts": {
|
||||
"build": "node buildTable.js && rimraf ./dist/ && node build.js"
|
||||
"build": "rimraf ./dist/ && node build.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -17,27 +17,26 @@
|
||||
},
|
||||
"homepage": "https://github.com/veggiemonk/awesome-docker#readme",
|
||||
"dependencies": {
|
||||
"cheerio": "^1.0.0-rc.2",
|
||||
"critical": "^1.3.3",
|
||||
"dayjs": "^1.6.6",
|
||||
"draftlog": "^1.0.12",
|
||||
"cheerio": "1.0.0-rc.2",
|
||||
"critical": "1.3.3",
|
||||
"dayjs": "1.6.6",
|
||||
"draftlog": "1.0.12",
|
||||
"fs-extra": "7.0.0",
|
||||
"jsdom": "^11.11.0",
|
||||
"list.js": "^1.5.0",
|
||||
"node-fetch": "^2.1.2",
|
||||
"parcel-bundler": "^1.8.1",
|
||||
"rimraf": "^2.6.2",
|
||||
"showdown": "^1.8.6",
|
||||
"sitemap": "^1.13.0"
|
||||
"list.js": "1.5.0",
|
||||
"node-fetch": "2.1.2",
|
||||
"parcel-bundler": "1.8.1",
|
||||
"rimraf": "2.6.2",
|
||||
"showdown": "1.8.6",
|
||||
"sitemap": "1.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^8.2.3",
|
||||
"eslint": "^4.19.1",
|
||||
"eslint-config-airbnb-base": "^12.1.0",
|
||||
"eslint-config-prettier": "^2.9.0",
|
||||
"eslint-plugin-import": "^2.12.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.3",
|
||||
"eslint-plugin-prettier": "^2.6.0",
|
||||
"prettier": "^1.13.5"
|
||||
"babel-eslint": "8.2.6",
|
||||
"eslint": "4.19.1",
|
||||
"eslint-config-airbnb-base": "12.1.0",
|
||||
"eslint-config-prettier": "2.9.0",
|
||||
"eslint-plugin-import": "2.13.0",
|
||||
"eslint-plugin-jsx-a11y": "6.1.1",
|
||||
"eslint-plugin-prettier": "2.6.2",
|
||||
"prettier": "1.13.7"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user