diff --git a/generate-github-skills-readme-from-lab-config.js b/generate-github-skills-readme-from-lab-config.js
index f4bf553..303f10d 100644
--- a/generate-github-skills-readme-from-lab-config.js
+++ b/generate-github-skills-readme-from-lab-config.js
@@ -59,17 +59,42 @@ function isPathtoRelativeMdFile(path) {
return path.endsWith('.md') && !path.startsWith('https://') && RegExp('(./)?[a-zA-Z0-9/]*.md').test(path)
}
+async function fetchCourseDetails(course, {octokit, reporter}) {
+ const [owner, repo] = course.split('/');
+ owner ||= process.env.GITHUB_REPOSITORY_OWNER;
+
+ try {
+ const courseConfigResponse = await octokit.rest.repos.getContent({
+ owner,
+ repo,
+ path: 'config.yml'
+ });
+
+ const courseConfig = parse(Buffer.from(courseConfigResponse.data.content, 'base64').toString());
+
+ const link = `${process.env.GITHUB_SERVER_URL}/${owner}/${repo}`;
+ const title = courseConfig.title;
+ const description = courseConfig.description;
+
+ return { link, title, description };
+ } catch (error) {
+ reporter.info(`failed to fetch course details for ${course}`)
+ reporter.error(error);
+ return null;
+ }
+}
+
async function generateReadmeFromConfig(
configPath='config.yml',
courseDetailsPath='course-details.md',
readmePath='./README.md',
rootPath='./',
- consoleErr = console.error,
+ octokit = null,
+ reporter = console,
// ADDON: Options
{
inlineMDlinks
} = {}) {
- console.log('root:', rootPath);
configPath = path.resolve(rootPath, configPath);
courseDetailsPath = path.resolve(rootPath, courseDetailsPath);
readmePath = path.resolve(rootPath, readmePath);
@@ -85,14 +110,30 @@ async function generateReadmeFromConfig(
let labConfigSteps = labConfig.steps;
// ADDON: files & inline md links
labConfigSteps = await Promise.all(labConfigSteps.map(async (step, index) => {
- const { link, file, inlineMDlink } = step;
+ const { link, file, course, inlineMDlink } = step;
let mdFileContent = null;
- if (((inlineMDlinks || inlineMDlink) && (link && isPathtoRelativeMdFile(link))) || file) {
- const filePath = file || (inlineMDlinks || inlineMDlink) && link;
- mdFileContent = await fs.readFile(path.resolve(rootPath, filePath), 'utf8');
+ let courseStep = false;
+ if (course) {
+ const courseDetails = await fetchCourseDetails(course, { octokit, reporter });
+ if (courseDetails) {
+ const { link: courseLink, title: courseTitle, description: courseDescription } = courseDetails;
+
+ step.link ||= courseLink;
+ step.title ||= courseTitle;
+ step.description ||= courseDescription;
+
+ courseStep = true;
+ }
+ } else {
+ if (((inlineMDlinks || inlineMDlink) && (link && isPathtoRelativeMdFile(link))) || file) {
+ const filePath = file || (inlineMDlinks || inlineMDlink) && link;
+ mdFileContent = await fs.readFile(path.resolve(rootPath, filePath), 'utf8');
+ }
}
+ // TODO: YouTube thumbnail fetcher
+
return {...step, index, mdFileContent, noLink: (inlineMDlinks || inlineMDlink)}
}))
labConfigSteps.sort((a, b) => a.index - b.index);
@@ -114,9 +155,10 @@ async function generateReadmeFromConfig(
await fs.writeFile(readmePath, _readmeTemplate)
return _readmeTemplate;
} catch (error) {
- consoleErr('README.md GitHub Skill format file creating error: ', error);
+ reporter.error('README.md GitHub Skill format file creating error: ', error);
throw error;
}
+
}
diff --git a/index.js b/index.js
index 71d3b81..2d654b8 100644
--- a/index.js
+++ b/index.js
@@ -1,4 +1,7 @@
const core = require('@actions/core');
+const { Octokit } = require("@octokit/action");
+const octokit = new Octokit();
+
const { generateReadmeFromConfig } = require('./generate-github-skills-readme-from-lab-config');
async function run() {
@@ -11,7 +14,7 @@ async function run() {
core.info(`Generating in ${rootPath}: ${readmePath} from ${configPath}, ${courseDetailsPath} ...`);
- const readmeContent = await generateReadmeFromConfig(configPath, courseDetailsPath, readmePath, rootPath, core.error, {
+ const readmeContent = await generateReadmeFromConfig(configPath, courseDetailsPath, readmePath, rootPath, octokit, core, {
inlineMDlinks
});
diff --git a/package-lock.json b/package-lock.json
index 7b3d23b..d7e3dbf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,21 +1,23 @@
{
- "name": "javascript-action",
+ "name": "action-migrate-github-lab-to-github-skills",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "javascript-action",
+ "name": "action-migrate-github-lab-to-github-skills",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.5",
+ "@octokit/action": "^4.0.10",
"yaml": "^2.1.1"
},
"devDependencies": {
"@vercel/ncc": "^0.34.0",
"eslint": "^8.0.0",
- "jest": "^27.2.5"
+ "jest": "^27.2.5",
+ "octokit": "^2.0.10"
}
},
"node_modules/@actions/core": {
@@ -914,6 +916,368 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
+ "node_modules/@octokit/action": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/@octokit/action/-/action-4.0.10.tgz",
+ "integrity": "sha512-AkQ+QT6jcD2teu+ceZhck1Z/IvjBOGe0VNp1VI7t6lhn6FqYP5JImuiS9kT/fRMDEvczGX1vSIxDSOo10ANaaQ==",
+ "dependencies": {
+ "@octokit/auth-action": "^2.0.0",
+ "@octokit/core": "^4.0.0",
+ "@octokit/plugin-paginate-rest": "^5.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "https-proxy-agent": "^5.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/app": {
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@octokit/app/-/app-13.0.11.tgz",
+ "integrity": "sha512-qlUynCN1+BNYQ6VaJOMCqDdCo/2yzPixuoFnbcUThakRV+5969Tp+LTAtsZWjjb/tUHfutaAYOnsia1EGTAzfA==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/auth-app": "^4.0.0",
+ "@octokit/auth-unauthenticated": "^3.0.0",
+ "@octokit/core": "^4.0.0",
+ "@octokit/oauth-app": "^4.0.7",
+ "@octokit/plugin-paginate-rest": "^5.0.0",
+ "@octokit/types": "^8.0.0",
+ "@octokit/webhooks": "^10.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-action": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-action/-/auth-action-2.0.2.tgz",
+ "integrity": "sha512-uxYIO3eX7moMRr01jaLmfWAuj53cWPzF154yrqDkqySSrUmT0slQYx3uvDs5YC5twl3eeJYZaD5UQhl/8r5mWA==",
+ "dependencies": {
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/types": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-app": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.7.tgz",
+ "integrity": "sha512-hjjVCoI/+1oLminVHJPPexguYb9FP4Q60hEHExgy1uAKMMJ5Zf8iJIeRJlIIqneTb4vt7NvUTEj4YDxBLZ1FLg==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^5.0.0",
+ "@octokit/auth-oauth-user": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "@types/lru-cache": "^5.1.0",
+ "deprecation": "^2.3.1",
+ "lru-cache": "^6.0.0",
+ "universal-github-app-jwt": "^1.0.1",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-oauth-app": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.4.tgz",
+ "integrity": "sha512-zlWuii5hAN50vsV6SJC+uIJ7SMhyWjQMEmKJQxkmNDlieE9LjnkZnbOjqRsfcG7VO7WTl4K8ccpo/3A7Kdpmrw==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^4.0.0",
+ "@octokit/auth-oauth-user": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "@types/btoa-lite": "^1.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-oauth-device": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.3.tgz",
+ "integrity": "sha512-KPTx5nMntKjNZzzltO3X4T68v22rd7Cp/TcLJXQE2U8aXPcZ9LFuww9q9Q5WUNSu3jwi3lRwzfkPguRfz1R8Vg==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/oauth-methods": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-oauth-user": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.0.4.tgz",
+ "integrity": "sha512-HrbDzTPqz6GcGSOUkR+wSeF3vEqsb9NMsmPja/qqqdiGmlk/Czkxctc3KeWYogHonp62Ml4kjz2VxKawrFsadQ==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^4.0.0",
+ "@octokit/oauth-methods": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-token": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz",
+ "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==",
+ "dependencies": {
+ "@octokit/types": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/auth-unauthenticated": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.3.tgz",
+ "integrity": "sha512-IyfLo1T5GmIC9+07hHGlD3gHtZI1Bona8PLhHXUnwcYDuZt0BhjlNJDYMoPG21C4r7v7+ZSxQHBKrGgkxpYb7A==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/core": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz",
+ "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==",
+ "dependencies": {
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/graphql": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/endpoint": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz",
+ "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==",
+ "dependencies": {
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/graphql": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz",
+ "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==",
+ "dependencies": {
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/oauth-app": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-4.1.0.tgz",
+ "integrity": "sha512-dGZcfmwPkS3VZ9CNnvNszp6mlnbOZh9+/uPNiK/AkvSUJGXTbUVIZTkMvAjbyIFw2WlIx++hhtrTeKNJq6uMbw==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^5.0.0",
+ "@octokit/auth-oauth-user": "^2.0.0",
+ "@octokit/auth-unauthenticated": "^3.0.0",
+ "@octokit/core": "^4.0.0",
+ "@octokit/oauth-authorization-url": "^5.0.0",
+ "@octokit/oauth-methods": "^2.0.0",
+ "@types/aws-lambda": "^8.10.83",
+ "fromentries": "^1.3.1",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/oauth-authorization-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz",
+ "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/oauth-methods": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.4.tgz",
+ "integrity": "sha512-RDSa6XL+5waUVrYSmOlYROtPq0+cfwppP4VaQY/iIei3xlFb0expH6YNsxNrZktcLhJWSpm9uzeom+dQrXlS3A==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/oauth-authorization-url": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "btoa-lite": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/openapi-types": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz",
+ "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw=="
+ },
+ "node_modules/@octokit/plugin-paginate-rest": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz",
+ "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==",
+ "dependencies": {
+ "@octokit/types": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=4"
+ }
+ },
+ "node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz",
+ "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==",
+ "dependencies": {
+ "@octokit/types": "^8.0.0",
+ "deprecation": "^2.3.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=3"
+ }
+ },
+ "node_modules/@octokit/plugin-retry": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-4.0.3.tgz",
+ "integrity": "sha512-tDR+4Cs9GPPNJ7/RjTEq5ty2wqjKe1hRUV7/hch+nORow5LshlHXTT1qfYNsFPw3S9szvFFAfDEFq/xwrEpL7g==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/types": "^8.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=3"
+ }
+ },
+ "node_modules/@octokit/plugin-throttling": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-4.3.2.tgz",
+ "integrity": "sha512-ZaCK599h3tzcoy0Jtdab95jgmD7X9iAk59E2E7hYKCAmnURaI4WpzwL9vckImilybUGrjY1JOWJapDs2N2D3vw==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/types": "^8.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "@octokit/core": "^4.0.0"
+ }
+ },
+ "node_modules/@octokit/request": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz",
+ "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==",
+ "dependencies": {
+ "@octokit/endpoint": "^7.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "universal-user-agent": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/request-error": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz",
+ "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==",
+ "dependencies": {
+ "@octokit/types": "^8.0.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/types": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz",
+ "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==",
+ "dependencies": {
+ "@octokit/openapi-types": "^14.0.0"
+ }
+ },
+ "node_modules/@octokit/webhooks": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.3.1.tgz",
+ "integrity": "sha512-TSGiz9+IxP8Oh8LVFwhzLYTJ+8T/U6/fC/i1/iB39izyFzoEub3wNHlsfh8A6PUbde70w2pLr/O2ELlyQdrLgg==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/webhooks-methods": "^3.0.0",
+ "@octokit/webhooks-types": "6.6.0",
+ "aggregate-error": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/webhooks-methods": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.1.tgz",
+ "integrity": "sha512-XftYVcBxtzC2G05kdBNn9IYLtQ+Cz6ufKkjZd0DU/qGaZEFTPzM2OabXAWG5tvL0q/I+Exio1JnRiPfetiMSEw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@octokit/webhooks-types": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.6.0.tgz",
+ "integrity": "sha512-czpEwg4UA3hb0G345BVk1zMXWwX0Qdaa4F/z7C3bP6baQ9AWY/VmCYydLU+Pi4z3aOPEJYCvt9zVhZ5CutqBKw==",
+ "dev": true
+ },
"node_modules/@sinonjs/commons": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
@@ -941,6 +1305,12 @@
"node": ">= 6"
}
},
+ "node_modules/@types/aws-lambda": {
+ "version": "8.10.108",
+ "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.108.tgz",
+ "integrity": "sha512-1yh1W1WoqK3lGHy+V/Fi55zobxrDHUUsluCWdMlOXkCvtsCmHPXOG+CQ2STIL4B1g6xi6I6XzxaF8V9+zeIFLA==",
+ "dev": true
+ },
"node_modules/@types/babel__core": {
"version": "7.1.17",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz",
@@ -982,6 +1352,12 @@
"@babel/types": "^7.3.0"
}
},
+ "node_modules/@types/btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==",
+ "dev": true
+ },
"node_modules/@types/color-name": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
@@ -1021,6 +1397,21 @@
"@types/istanbul-lib-report": "*"
}
},
+ "node_modules/@types/jsonwebtoken": {
+ "version": "8.5.9",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
+ "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==",
+ "dev": true
+ },
"node_modules/@types/node": {
"version": "17.0.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz",
@@ -1125,7 +1516,6 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
"dependencies": {
"debug": "4"
},
@@ -1133,6 +1523,19 @@
"node": ">= 6.0.0"
}
},
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -1345,6 +1748,17 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
+ "node_modules/before-after-hook": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
+ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
+ },
+ "node_modules/bottleneck": {
+ "version": "2.19.5",
+ "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
+ "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
+ "dev": true
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1405,6 +1819,18 @@
"node-int64": "^0.4.0"
}
},
+ "node_modules/btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==",
+ "dev": true
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "dev": true
+ },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -1537,6 +1963,15 @@
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
"dev": true
},
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -1663,7 +2098,6 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
- "dev": true,
"dependencies": {
"ms": "^2.1.1"
}
@@ -1704,6 +2138,11 @@
"node": ">=0.4.0"
}
},
+ "node_modules/deprecation": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
+ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
+ },
"node_modules/detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
@@ -1755,6 +2194,15 @@
"node": ">=8"
}
},
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/electron-to-chromium": {
"version": "1.4.29",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.29.tgz",
@@ -2284,6 +2732,26 @@
"node": ">= 6"
}
},
+ "node_modules/fromentries": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2474,10 +2942,9 @@
}
},
"node_modules/https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
- "dev": true,
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -2557,6 +3024,15 @@
"node": ">=0.8.19"
}
},
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2633,6 +3109,14 @@
"node": ">=0.12.0"
}
},
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-potential-custom-element-name": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
@@ -3490,6 +3974,58 @@
"node": ">=6"
}
},
+ "node_modules/jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "dev": true,
+ "dependencies": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=4",
+ "npm": ">=1.4.28"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "dev": true,
+ "dependencies": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "dev": true,
+ "dependencies": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/kleur": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -3539,12 +4075,66 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "dev": true
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "dev": true
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+ "dev": true
+ },
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+ "dev": true
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "dev": true
+ },
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
+ "dev": true
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -3645,17 +4235,54 @@
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
"dev": true
},
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
- "dev": true
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
},
"node_modules/node-int64": {
"version": "0.4.0",
@@ -3696,11 +4323,29 @@
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
"dev": true
},
+ "node_modules/octokit": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/octokit/-/octokit-2.0.10.tgz",
+ "integrity": "sha512-sI15RZVaV9iyqLLEky4i++tMM48Fo9a80zrpOXMdAtbomznBLDi/moi9mAjJg7Ii+EaSEyaWOVIh3M/Vk/a5mw==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/app": "^13.0.5",
+ "@octokit/core": "^4.0.4",
+ "@octokit/oauth-app": "^4.0.6",
+ "@octokit/plugin-paginate-rest": "^5.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^6.0.0",
+ "@octokit/plugin-retry": "^4.0.3",
+ "@octokit/plugin-throttling": "^4.0.1",
+ "@octokit/types": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
"dependencies": {
"wrappy": "1"
}
@@ -4420,6 +5065,21 @@
"is-typedarray": "^1.0.0"
}
},
+ "node_modules/universal-github-app-jwt": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz",
+ "integrity": "sha512-3b+ocAjjz4JTyqaOT+NNBd5BtTuvJTxWElIoeHSVelUV9J3Jp7avmQTdLKCaoqi/5Ox2o/q+VK19TJ233rVXVQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/jsonwebtoken": "^8.3.3",
+ "jsonwebtoken": "^8.5.1"
+ }
+ },
+ "node_modules/universal-user-agent": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
+ "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
+ },
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -4620,8 +5280,7 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"node_modules/write-file-atomic": {
"version": "3.0.3",
@@ -4677,6 +5336,12 @@
"node": ">=10"
}
},
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"node_modules/yaml": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz",
@@ -5410,6 +6075,287 @@
"chalk": "^4.0.0"
}
},
+ "@octokit/action": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/@octokit/action/-/action-4.0.10.tgz",
+ "integrity": "sha512-AkQ+QT6jcD2teu+ceZhck1Z/IvjBOGe0VNp1VI7t6lhn6FqYP5JImuiS9kT/fRMDEvczGX1vSIxDSOo10ANaaQ==",
+ "requires": {
+ "@octokit/auth-action": "^2.0.0",
+ "@octokit/core": "^4.0.0",
+ "@octokit/plugin-paginate-rest": "^5.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "https-proxy-agent": "^5.0.1"
+ }
+ },
+ "@octokit/app": {
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@octokit/app/-/app-13.0.11.tgz",
+ "integrity": "sha512-qlUynCN1+BNYQ6VaJOMCqDdCo/2yzPixuoFnbcUThakRV+5969Tp+LTAtsZWjjb/tUHfutaAYOnsia1EGTAzfA==",
+ "dev": true,
+ "requires": {
+ "@octokit/auth-app": "^4.0.0",
+ "@octokit/auth-unauthenticated": "^3.0.0",
+ "@octokit/core": "^4.0.0",
+ "@octokit/oauth-app": "^4.0.7",
+ "@octokit/plugin-paginate-rest": "^5.0.0",
+ "@octokit/types": "^8.0.0",
+ "@octokit/webhooks": "^10.0.0"
+ }
+ },
+ "@octokit/auth-action": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-action/-/auth-action-2.0.2.tgz",
+ "integrity": "sha512-uxYIO3eX7moMRr01jaLmfWAuj53cWPzF154yrqDkqySSrUmT0slQYx3uvDs5YC5twl3eeJYZaD5UQhl/8r5mWA==",
+ "requires": {
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/types": "^8.0.0"
+ }
+ },
+ "@octokit/auth-app": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.7.tgz",
+ "integrity": "sha512-hjjVCoI/+1oLminVHJPPexguYb9FP4Q60hEHExgy1uAKMMJ5Zf8iJIeRJlIIqneTb4vt7NvUTEj4YDxBLZ1FLg==",
+ "dev": true,
+ "requires": {
+ "@octokit/auth-oauth-app": "^5.0.0",
+ "@octokit/auth-oauth-user": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "@types/lru-cache": "^5.1.0",
+ "deprecation": "^2.3.1",
+ "lru-cache": "^6.0.0",
+ "universal-github-app-jwt": "^1.0.1",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/auth-oauth-app": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.4.tgz",
+ "integrity": "sha512-zlWuii5hAN50vsV6SJC+uIJ7SMhyWjQMEmKJQxkmNDlieE9LjnkZnbOjqRsfcG7VO7WTl4K8ccpo/3A7Kdpmrw==",
+ "dev": true,
+ "requires": {
+ "@octokit/auth-oauth-device": "^4.0.0",
+ "@octokit/auth-oauth-user": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "@types/btoa-lite": "^1.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/auth-oauth-device": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.3.tgz",
+ "integrity": "sha512-KPTx5nMntKjNZzzltO3X4T68v22rd7Cp/TcLJXQE2U8aXPcZ9LFuww9q9Q5WUNSu3jwi3lRwzfkPguRfz1R8Vg==",
+ "dev": true,
+ "requires": {
+ "@octokit/oauth-methods": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/auth-oauth-user": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.0.4.tgz",
+ "integrity": "sha512-HrbDzTPqz6GcGSOUkR+wSeF3vEqsb9NMsmPja/qqqdiGmlk/Czkxctc3KeWYogHonp62Ml4kjz2VxKawrFsadQ==",
+ "dev": true,
+ "requires": {
+ "@octokit/auth-oauth-device": "^4.0.0",
+ "@octokit/oauth-methods": "^2.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "btoa-lite": "^1.0.0",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/auth-token": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz",
+ "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==",
+ "requires": {
+ "@octokit/types": "^8.0.0"
+ }
+ },
+ "@octokit/auth-unauthenticated": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.3.tgz",
+ "integrity": "sha512-IyfLo1T5GmIC9+07hHGlD3gHtZI1Bona8PLhHXUnwcYDuZt0BhjlNJDYMoPG21C4r7v7+ZSxQHBKrGgkxpYb7A==",
+ "dev": true,
+ "requires": {
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0"
+ }
+ },
+ "@octokit/core": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz",
+ "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==",
+ "requires": {
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/graphql": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/endpoint": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz",
+ "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==",
+ "requires": {
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/graphql": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz",
+ "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==",
+ "requires": {
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/oauth-app": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-4.1.0.tgz",
+ "integrity": "sha512-dGZcfmwPkS3VZ9CNnvNszp6mlnbOZh9+/uPNiK/AkvSUJGXTbUVIZTkMvAjbyIFw2WlIx++hhtrTeKNJq6uMbw==",
+ "dev": true,
+ "requires": {
+ "@octokit/auth-oauth-app": "^5.0.0",
+ "@octokit/auth-oauth-user": "^2.0.0",
+ "@octokit/auth-unauthenticated": "^3.0.0",
+ "@octokit/core": "^4.0.0",
+ "@octokit/oauth-authorization-url": "^5.0.0",
+ "@octokit/oauth-methods": "^2.0.0",
+ "@types/aws-lambda": "^8.10.83",
+ "fromentries": "^1.3.1",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/oauth-authorization-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz",
+ "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==",
+ "dev": true
+ },
+ "@octokit/oauth-methods": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.4.tgz",
+ "integrity": "sha512-RDSa6XL+5waUVrYSmOlYROtPq0+cfwppP4VaQY/iIei3xlFb0expH6YNsxNrZktcLhJWSpm9uzeom+dQrXlS3A==",
+ "dev": true,
+ "requires": {
+ "@octokit/oauth-authorization-url": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "btoa-lite": "^1.0.0"
+ }
+ },
+ "@octokit/openapi-types": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz",
+ "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw=="
+ },
+ "@octokit/plugin-paginate-rest": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz",
+ "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==",
+ "requires": {
+ "@octokit/types": "^8.0.0"
+ }
+ },
+ "@octokit/plugin-rest-endpoint-methods": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz",
+ "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==",
+ "requires": {
+ "@octokit/types": "^8.0.0",
+ "deprecation": "^2.3.1"
+ }
+ },
+ "@octokit/plugin-retry": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-4.0.3.tgz",
+ "integrity": "sha512-tDR+4Cs9GPPNJ7/RjTEq5ty2wqjKe1hRUV7/hch+nORow5LshlHXTT1qfYNsFPw3S9szvFFAfDEFq/xwrEpL7g==",
+ "dev": true,
+ "requires": {
+ "@octokit/types": "^8.0.0",
+ "bottleneck": "^2.15.3"
+ }
+ },
+ "@octokit/plugin-throttling": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-4.3.2.tgz",
+ "integrity": "sha512-ZaCK599h3tzcoy0Jtdab95jgmD7X9iAk59E2E7hYKCAmnURaI4WpzwL9vckImilybUGrjY1JOWJapDs2N2D3vw==",
+ "dev": true,
+ "requires": {
+ "@octokit/types": "^8.0.0",
+ "bottleneck": "^2.15.3"
+ }
+ },
+ "@octokit/request": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz",
+ "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==",
+ "requires": {
+ "@octokit/endpoint": "^7.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "universal-user-agent": "^6.0.0"
+ }
+ },
+ "@octokit/request-error": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz",
+ "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==",
+ "requires": {
+ "@octokit/types": "^8.0.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ }
+ },
+ "@octokit/types": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz",
+ "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==",
+ "requires": {
+ "@octokit/openapi-types": "^14.0.0"
+ }
+ },
+ "@octokit/webhooks": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.3.1.tgz",
+ "integrity": "sha512-TSGiz9+IxP8Oh8LVFwhzLYTJ+8T/U6/fC/i1/iB39izyFzoEub3wNHlsfh8A6PUbde70w2pLr/O2ELlyQdrLgg==",
+ "dev": true,
+ "requires": {
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/webhooks-methods": "^3.0.0",
+ "@octokit/webhooks-types": "6.6.0",
+ "aggregate-error": "^3.1.0"
+ }
+ },
+ "@octokit/webhooks-methods": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.1.tgz",
+ "integrity": "sha512-XftYVcBxtzC2G05kdBNn9IYLtQ+Cz6ufKkjZd0DU/qGaZEFTPzM2OabXAWG5tvL0q/I+Exio1JnRiPfetiMSEw==",
+ "dev": true
+ },
+ "@octokit/webhooks-types": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.6.0.tgz",
+ "integrity": "sha512-czpEwg4UA3hb0G345BVk1zMXWwX0Qdaa4F/z7C3bP6baQ9AWY/VmCYydLU+Pi4z3aOPEJYCvt9zVhZ5CutqBKw==",
+ "dev": true
+ },
"@sinonjs/commons": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
@@ -5434,6 +6380,12 @@
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
"dev": true
},
+ "@types/aws-lambda": {
+ "version": "8.10.108",
+ "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.108.tgz",
+ "integrity": "sha512-1yh1W1WoqK3lGHy+V/Fi55zobxrDHUUsluCWdMlOXkCvtsCmHPXOG+CQ2STIL4B1g6xi6I6XzxaF8V9+zeIFLA==",
+ "dev": true
+ },
"@types/babel__core": {
"version": "7.1.17",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz",
@@ -5475,6 +6427,12 @@
"@babel/types": "^7.3.0"
}
},
+ "@types/btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==",
+ "dev": true
+ },
"@types/color-name": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
@@ -5514,6 +6472,21 @@
"@types/istanbul-lib-report": "*"
}
},
+ "@types/jsonwebtoken": {
+ "version": "8.5.9",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz",
+ "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==",
+ "dev": true
+ },
"@types/node": {
"version": "17.0.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz",
@@ -5600,11 +6573,20 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
"requires": {
"debug": "4"
}
},
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -5770,6 +6752,17 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
+ "before-after-hook": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
+ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
+ },
+ "bottleneck": {
+ "version": "2.19.5",
+ "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
+ "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==",
+ "dev": true
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -5817,6 +6810,18 @@
"node-int64": "^0.4.0"
}
},
+ "btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==",
+ "dev": true
+ },
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "dev": true
+ },
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -5911,6 +6916,12 @@
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
"dev": true
},
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true
+ },
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -6022,7 +7033,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -6057,6 +7067,11 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
},
+ "deprecation": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
+ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
+ },
"detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
@@ -6095,6 +7110,15 @@
}
}
},
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
"electron-to-chromium": {
"version": "1.4.29",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.29.tgz",
@@ -6490,6 +7514,12 @@
"mime-types": "^2.1.12"
}
},
+ "fromentries": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
+ "dev": true
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -6627,10 +7657,9 @@
}
},
"https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
- "dev": true,
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"requires": {
"agent-base": "6",
"debug": "4"
@@ -6683,6 +7712,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -6741,6 +7776,11 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
+ },
"is-potential-custom-element-name": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
@@ -7411,6 +8451,53 @@
"minimist": "^1.2.5"
}
},
+ "jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "dev": true,
+ "requires": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "dev": true,
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "dev": true,
+ "requires": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"kleur": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -7448,12 +8535,63 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
+ "lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "dev": true
+ },
+ "lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "dev": true
+ },
+ "lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+ "dev": true
+ },
+ "lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+ "dev": true
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "dev": true
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
+ "dev": true
+ },
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -7535,8 +8673,7 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"natural-compare": {
"version": "1.4.0",
@@ -7544,6 +8681,35 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
+ "node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ },
+ "dependencies": {
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ }
+ }
+ },
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -7577,11 +8743,26 @@
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
"dev": true
},
+ "octokit": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/octokit/-/octokit-2.0.10.tgz",
+ "integrity": "sha512-sI15RZVaV9iyqLLEky4i++tMM48Fo9a80zrpOXMdAtbomznBLDi/moi9mAjJg7Ii+EaSEyaWOVIh3M/Vk/a5mw==",
+ "dev": true,
+ "requires": {
+ "@octokit/app": "^13.0.5",
+ "@octokit/core": "^4.0.4",
+ "@octokit/oauth-app": "^4.0.6",
+ "@octokit/plugin-paginate-rest": "^5.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^6.0.0",
+ "@octokit/plugin-retry": "^4.0.3",
+ "@octokit/plugin-throttling": "^4.0.1",
+ "@octokit/types": "^8.0.0"
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
"requires": {
"wrappy": "1"
}
@@ -8117,6 +9298,21 @@
"is-typedarray": "^1.0.0"
}
},
+ "universal-github-app-jwt": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz",
+ "integrity": "sha512-3b+ocAjjz4JTyqaOT+NNBd5BtTuvJTxWElIoeHSVelUV9J3Jp7avmQTdLKCaoqi/5Ox2o/q+VK19TJ233rVXVQ==",
+ "dev": true,
+ "requires": {
+ "@types/jsonwebtoken": "^8.3.3",
+ "jsonwebtoken": "^8.5.1"
+ }
+ },
+ "universal-user-agent": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
+ "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w=="
+ },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -8276,8 +9472,7 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write-file-atomic": {
"version": "3.0.3",
@@ -8316,6 +9511,12 @@
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true
},
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
"yaml": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz",
diff --git a/package.json b/package.json
index 06fe305..6ed5c9d 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
- "name": "javascript-action",
+ "name": "action-migrate-github-lab-to-github-skills",
"version": "1.0.0",
- "description": "JavaScript Action Template",
+ "description": "GitHub Action transform GitHub lab to GitHub skills format",
"main": "index.js",
"scripts": {
"lint": "eslint .",
@@ -27,11 +27,13 @@
"homepage": "https://github.com/actions/javascript-action#readme",
"dependencies": {
"@actions/core": "^1.2.5",
+ "@octokit/action": "^4.0.10",
"yaml": "^2.1.1"
},
"devDependencies": {
"@vercel/ncc": "^0.34.0",
"eslint": "^8.0.0",
- "jest": "^27.2.5"
+ "jest": "^27.2.5",
+ "octokit": "^2.0.10"
}
}
diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap
index d68dd92..26faa51 100644
--- a/test/__snapshots__/index.test.js.snap
+++ b/test/__snapshots__/index.test.js.snap
@@ -379,6 +379,170 @@ Now that you know how to use Velo enable it in one of your sites. Select a Wix S
[](https://www.youtube.com/watch?v=D5D1b0J0hQE \\"Start using Wix Velo today\\")
+π [Start using Wix Velo today](https://www.wix.com/my-account/site-selector/?buttonText=Start+Now&title=Select+A+Site&actionUrl=https%3A%2F%2Feditor.wix.com%2Fhtml%2Feditor%2Fweb%2Frenderer%2Fedit%2F%7B%7BprimaryApp.idInApp%7D%7D%3FmetaSiteId%3D%7B%7BmetaSiteId%7D%7D%26editorSessionId%3D%7B%7Besi%7D%7D%26autoDevMode%3Dtrue)
+
+"
+`;
+
+exports[`generate readme with course 1`] = `
+"
+# Learn Velo
+
+
+Velo is a full-stack development platform that empowers you to rapidly build, manage and deploy professional web apps.
+
+## Course Details
+
+This is the description we show on the course page [here](https://github.com/wix-academy/learn-velo). This first paragraph will be featured at the top of the page so make it great.
+β
+
+β
+Be sure to tell the learner about the technology you are teaching, why they should learn it, how they can use it, and what you will teach them.
+β
+
+
+Include information on how they can reach you for questions about the content or course.
+
+### Help
+
+[Post on the #academy Slack channel](https://wix.slack.com/archives/CE2AFKXEK)
+
+## Steps
+
+
+
+01 - Welcome to Wix Engineering
+
+course description
+
+
+
+π [Welcome to Wix Engineering](https://github.com/wix-academy/welcome-to-wix-engineering-path)
+
+
+
+02 - Welcome to Wix Engineering
+
+This learning path introduces terms and concepts used in Wix Engineering, we recommend bookmarking it and getting back to it from time to time.
+
+
+
+π [Welcome to Wix Engineering](https://github.com/wix-academy/welcome-to-wix-engineering-path)
+
+
+
+03 - Welcome to Wix Engineering 2
+
+This learning path introduces terms and concepts used in Wix Engineering, we recommend bookmarking it and getting back to it from time to time.
+
+
+
+π [Welcome to Wix Engineering 2](https://github.com/wix-academy/welcome-to-wix-engineering-path)
+
+
+
+04 - Welcome to Wix Engineering
+
+This learning path introduces terms and concepts used in Wix Engineering, we recommend bookmarking it and getting back to it from time to time.
+
+
+
+π [Welcome to Wix Engineering](https://github.com/wix-academy/welcome-to-wix-engineering-path#test)
+
+
+
+05 - Welcome to Velo, Wixβs developer mode
+
+Our developer advocate Joshua Alphonse is happy to introduce you to this powerful product so you can start creating your custom solutions.
+
+
+#### Watch the video
+
+[](https://www.youtube.com/watch?v=JyTegNu4MHw \\"Welcome to Velo, Wixβs developer mode\\")
+
+
+π [Welcome to Velo, Wixβs developer mode](https://learn-code.wix.com/en/article/about-velo-2466982)
+
+
+
+06 - A tour of Velo interface
+
+learn where to find the tools and resources you need to add custom functionality to your site using code
+
+
+#### Watch the video
+
+[](https://www.youtube.com/watch?v=rzReCvkI4gg \\"A tour of Velo interface\\")
+
+
+π [A tour of Velo interface](https://learn-code.wix.com/en/article/getting-oriented-521681)
+
+
+
+07 - π Read: Velo API Introduction
+
+Use the APIs to interact with site elements, your siteβs database content, Wix Apps, and external services. The APIs also give you access to information about your site, its users, and more.
+
+
+
+π [π Read: Velo API Introduction](https://hackernoon.com/velo-api-introduction-the-basic-things-you-should-know-about-the-velo-jc2d33uz)
+
+
+
+08 - πΊ Add Custom Interactions with JavaScript | 5:48 β³
+
+Learn how to use Velo to create custom interactions on your site. Visit the link to see a working example
+
+
+#### Watch the video
+
+[](https://www.youtube.com/watch?v=aayDBLTKG5c \\"πΊ Add Custom Interactions with JavaScript | 5:48 β³\\")
+
+
+π [πΊ Add Custom Interactions with JavaScript | 5:48 β³](https://www.wix.com/velo/example/hide-%26-show-elements)
+
+
+
+09 - π Read the getting started guide (2-3 hours π)
+
+Let's take a quick look at how to get started writing your first Velo code. We'll do that by creating a traditional Hello World app - Velo style.
+
+
+
+π [π Read the getting started guide (2-3 hours π)](https://learn-code.wix.com/en/getting-started-guides/beginners-guide)
+
+
+
+10 - (Optional) π©βπ» take on a side by side exercises (2 hours π)
+
+Take on a tutorial inside Wix editor, we'll make a collapsed paragraph expand on button click. Use a switch to change image element source. Set up a sticky header (onScroll down).
+
+
+
+π [(Optional) π©βπ» take on a side by side exercises (2 hours π)](https://learn-code.wix.com/en/step-by-step-exercises-3016544)
+
+
+
+11 - Build a to-do list
+
+The to do list will display all items in the list using a repeater. Add a text input element and button. Clicking the button or pressing the enter key will add the item in the text input element to the to do list.
+
+
+
+π [Build a to-do list](https://www.wix.com/velo/example/to-do-list)
+
+
+
+12 - Start using Wix Velo today
+
+Now that you know how to use Velo enable it in one of your sites. Select a Wix Site you want to intergarte Velo into today.
+
+
+#### Watch the video
+
+[](https://www.youtube.com/watch?v=D5D1b0J0hQE \\"Start using Wix Velo today\\")
+
+
π [Start using Wix Velo today](https://www.wix.com/my-account/site-selector/?buttonText=Start+Now&title=Select+A+Site&actionUrl=https%3A%2F%2Feditor.wix.com%2Fhtml%2Feditor%2Fweb%2Frenderer%2Fedit%2F%7B%7BprimaryApp.idInApp%7D%7D%3FmetaSiteId%3D%7B%7BmetaSiteId%7D%7D%26editorSessionId%3D%7B%7Besi%7D%7D%26autoDevMode%3Dtrue)
"
diff --git a/test/config-with-course.yml b/test/config-with-course.yml
new file mode 100644
index 0000000..a4c2cf9
--- /dev/null
+++ b/test/config-with-course.yml
@@ -0,0 +1,59 @@
+title: Learn Velo
+description: Velo is a full-stack development platform that empowers you to rapidly build, manage and deploy professional web apps.
+steps:
+ - course: wix-academy/welcome-to-wix-engineering-path
+ description: course description
+ - course: wix-academy/welcome-to-wix-engineering-path
+ - course: wix-academy/welcome-to-wix-engineering-path
+ title: Welcome to Wix Engineering 2
+ - course: wix-academy/welcome-to-wix-engineering-path
+ link: https://github.com/wix-academy/welcome-to-wix-engineering-path#test
+ - title: 'Welcome to Velo, Wixβs developer mode'
+ link: 'https://learn-code.wix.com/en/article/about-velo-2466982'
+ video: 'https://youtube.com/embed/JyTegNu4MHw'
+ description: >-
+ Our developer advocate Joshua Alphonse is happy to introduce you to this powerful product so you can start creating your custom solutions.
+
+ - title: A tour of Velo interface
+ link: 'https://learn-code.wix.com/en/article/getting-oriented-521681'
+ video: 'https://youtube.com/embed/rzReCvkI4gg'
+ description: >-
+ learn where to find the tools and resources you need to add custom functionality to your site using code
+
+ - title: 'π Read: Velo API Introduction'
+ link: 'https://hackernoon.com/velo-api-introduction-the-basic-things-you-should-know-about-the-velo-jc2d33uz'
+ description: >-
+ Use the APIs to interact with site elements, your siteβs database content, Wix Apps, and external services.
+ The APIs also give you access to information about your site, its users, and more.
+
+ - title: 'πΊ Add Custom Interactions with JavaScript | 5:48 β³'
+ video: 'https://youtube.com/embed/aayDBLTKG5c'
+ link: 'https://www.wix.com/velo/example/hide-%26-show-elements'
+ description: >-
+ Learn how to use Velo to create custom interactions on your site.
+ Visit the link to see a working example
+
+ - title: 'π Read the getting started guide (2-3 hours π)'
+ link: 'https://learn-code.wix.com/en/getting-started-guides/beginners-guide'
+ description: >-
+ Let's take a quick look at how to get started writing your first Velo code. We'll do that by creating a traditional Hello World app - Velo style.
+
+ - title: '(Optional) π©βπ» take on a side by side exercises (2 hours π)'
+ link: 'https://learn-code.wix.com/en/step-by-step-exercises-3016544'
+ description: >-
+ Take on a tutorial inside Wix editor, we'll make a collapsed paragraph expand on button click.
+ Use a switch to change image element source.
+ Set up a sticky header (onScroll down).
+
+ - title: 'Build a to-do list'
+ link: 'https://www.wix.com/velo/example/to-do-list'
+ description: >-
+ The to do list will display all items in the list using a repeater.
+ Add a text input element and button. Clicking the button or pressing the enter
+ key will add the item in the text input element to the to do list.
+
+ - title: 'Start using Wix Velo today'
+ video: 'https://youtube.com/embed/D5D1b0J0hQE'
+ description: >-
+ Now that you know how to use Velo enable it in one of your sites. Select a Wix Site you want to intergarte Velo into today.
+ link: 'https://www.wix.com/my-account/site-selector/?buttonText=Start+Now&title=Select+A+Site&actionUrl=https%3A%2F%2Feditor.wix.com%2Fhtml%2Feditor%2Fweb%2Frenderer%2Fedit%2F%7B%7BprimaryApp.idInApp%7D%7D%3FmetaSiteId%3D%7B%7BmetaSiteId%7D%7D%26editorSessionId%3D%7B%7Besi%7D%7D%26autoDevMode%3Dtrue'
diff --git a/test/index.test.js b/test/index.test.js
index 65b833d..e19fd14 100644
--- a/test/index.test.js
+++ b/test/index.test.js
@@ -1,5 +1,6 @@
const process = require("process");
const cp = require("child_process");
+const { Octokit } = require("octokit");
const itif = (condition) => condition ? it : it.skip;
const itSkipInCI = itif(!process.env['CI'])
@@ -42,6 +43,22 @@ test('generate readme with metadata', async () => {
expect(readmeWithMetadata).toMatchSnapshot();
})
+// For running this test you should set GITHUB_TOKEN ENV Variable on your machine/CI e.g., in ~/.zshrc
+test('generate readme with course', async () => {
+ process.env.GITHUB_SERVER_URL = 'https://github.com'
+ process.env.GITHUB_REPOSITORY_OWNER = 'wix-academy'
+ const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
+ const readmeWithCourse = await generateReadmeFromConfig(
+ "config-with-course.yml",
+ "course-details.md",
+ "out/readme-with-course.md",
+ "test/",
+ octokit
+ );
+
+ expect(readmeWithCourse).toMatchSnapshot();
+})
+
test('extractYTVidfromUrl', () => {
expect(extractYTVidfromUrl('https://www.youtube.com/embed/ISAplsTsIOE')).toBe('ISAplsTsIOE')
expect(extractYTVidfromUrl('https://www.youtube.com/embed/ISAplsTsIOE/')).toBe('ISAplsTsIOE')
@@ -57,6 +74,7 @@ itSkipInCI("test runs", () => {
process.env["INPUT_README-FILE"] = "test/out/readme.md";
process.env["INPUT_INLINE-MARKDOWN-LINKS"] = "false";
process.env["INPUT_ROOT-PATH"] = "./";
+ process.env["GITHUB_ACTION"] = '1';
const result = cp.execSync(`node index.js`, { env: process.env }).toString();
console.log(result);
});
@@ -98,12 +116,16 @@ describe("Addon", () => {
});
describeSkipInCI("test runs", () => {
- test("with files with inline links", () => {
+ beforeEach(()=>{
process.env["INPUT_CONFIG-FILE"] = "config-with-files.yml";
process.env["INPUT_COURSE-DETAILS-FILE"] = "course-details.md";
+ process.env["INPUT_ROOT-PATH"] = "./test";
+ process.env["GITHUB_ACTION"] = '1';
+ })
+ test("with files with inline links", () => {
process.env["INPUT_README-FILE"] = "out/readme-with-files-inline-links.md";
- process.env["INPUT_INLINE-MARKDOWN-LINKS"] = "true";
- process.env["INPUT_ROOT-PATH"] = "./test";
+ process.env["INPUT_INLINE-MARKDOWN-LINKS"] = "true";
+
const result = cp
.execSync(`node index.js`, { env: process.env })
.toString();
@@ -111,11 +133,9 @@ describe("Addon", () => {
});
test("with files no inline links", () => {
- process.env["INPUT_CONFIG-FILE"] = "config-with-files.yml";
- process.env["INPUT_COURSE-DETAILS-FILE"] = "course-details.md";
process.env["INPUT_README-FILE"] = "out/readme-with-files-no-inline-links.md";
process.env["INPUT_INLINE-MARKDOWN-LINKS"] = "false";
- process.env["INPUT_ROOT-PATH"] = "./test";
+
const result = cp
.execSync(`node index.js`, { env: process.env })
.toString();