├── .eslintignore ├── .gitignore ├── slack.png ├── .github ├── renovate.json ├── dependabot.yml └── workflows │ └── main.yml ├── .editorconfig ├── .eslintrc ├── action.yml ├── CUSTOM_PAYLOAD.md ├── .all-contributorsrc ├── .env.dist ├── entrypoint.js ├── DEVELOPMENT.md ├── LICENSE ├── package.json ├── message.js ├── handlers.js ├── README.md ├── event-example.json └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | .github 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/action-slack/master/slack.png -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ], 5 | "assignees": ["@Ilshidur"], 6 | "lockFileMaintenance": { 7 | "enabled": true 8 | }, 9 | "vulnerabilityAlerts": { 10 | "labels": ["security"], 11 | "assignees": ["@Ilshidur"] 12 | }, 13 | "packageRules": [ 14 | { 15 | "depTypeList": [ 16 | "engines" 17 | ], 18 | "rangeStrategy": "auto" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # http://editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | 9 | # Change these settings to your own preference 10 | indent_style = space 11 | indent_size = 2 12 | 13 | # We recommend you to keep these unchanged 14 | end_of_line = lf 15 | charset = utf-8 16 | trim_trailing_whitespace = true 17 | insert_final_newline = true 18 | 19 | [*.md] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "eslint:recommended", 4 | "plugin:node/recommended" 5 | ], 6 | "plugins": [ 7 | "node" 8 | ], 9 | "reportUnusedDisableDirectives": true, 10 | "env": { 11 | "node": true, 12 | "es6": true, 13 | "commonjs": true 14 | }, 15 | "globals": { 16 | "Atomics": "readonly", 17 | "SharedArrayBuffer": "readonly" 18 | }, 19 | "parserOptions": { 20 | "ecmaVersion": 2020, 21 | "sourceType": "module" 22 | }, 23 | "rules": { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'GitHub Action for Slack' 2 | description: 'Outputs a message to Slack.' 3 | author: Ilshidur 4 | inputs: 5 | args: 6 | description: 'The message to display in the Slack notification.' 7 | required: true 8 | # TODO: Handle configuration through Action inputs. 9 | # slack_webhook: 10 | # slack_avatar: 11 | # slack_custom_payload: 12 | # slack_username: 13 | # slack_channel: 14 | runs: 15 | using: node16 16 | main: dist/index.js 17 | branding: 18 | icon: hash 19 | color: red 20 | -------------------------------------------------------------------------------- /CUSTOM_PAYLOAD.md: -------------------------------------------------------------------------------- 1 | # 🚀 Slack for GitHub Actions - CUSTOM PAYLOAD 2 | 3 | Custom payload allows interpolate hook data and event payload 4 | 5 | ## Example 6 | ```yml 7 | env: 8 | SLACK_CUSTOM_PAYLOAD: '{"text":"Custom payload from {{ GITHUB_REPOSITORY }} \\n *with* `new` _line_ escaped","username": "{{ GITHUB_ACTOR }}"}' 9 | ``` 10 | 11 | > ## IMPORTANT: 12 | > - Escaped characters (like: line-breaks) needs to be escaped 2x:
ex: `\n` becomes: `\\n` 13 | > - Mind to send a quoted JSON string payload as the example above. 14 | > - Using a custom payload will cause the other slack env vars data to be ignored. 15 | -------------------------------------------------------------------------------- /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | "README.md" 4 | ], 5 | "imageSize": 100, 6 | "commit": false, 7 | "contributors": [ 8 | { 9 | "login": "itsmelion", 10 | "name": "Christhopher Lion", 11 | "avatar_url": "https://avatars1.githubusercontent.com/u/12537491?v=4", 12 | "profile": "https://lion.alia.ml", 13 | "contributions": [ 14 | "code", 15 | "ideas", 16 | "doc" 17 | ] 18 | } 19 | ], 20 | "contributorsPerLine": 7, 21 | "projectName": "action-slack", 22 | "projectOwner": "Ilshidur", 23 | "repoType": "github", 24 | "repoHost": "https://github.com", 25 | "skipCi": true 26 | } 27 | -------------------------------------------------------------------------------- /.env.dist: -------------------------------------------------------------------------------- 1 | # This file will set env vars for development purposes (e.g.: debugging of this Action). 2 | 3 | # Mocked Slack-related environment variables. 4 | # See : https://github.com/Ilshidur/action-slack#environment-variables 5 | SLACK_WEBHOOK= 6 | SLACK_CHANNEL= 7 | SLACK_AVATAR=sender 8 | SLACK_USERNAME=$USER 9 | # SLACK_CUSTOM_PAYLOAD= 10 | 11 | # Mocked event-related environment variables. 12 | # See : https://developer.github.com/v3/activity/events/types 13 | GITHUB_REPOSITORY=sample/project 14 | GITHUB_WORKFLOW=Slack notification 15 | GITHUB_ACTOR=$USER 16 | GITHUB_ACTION=Lint 17 | GITHUB_EVENT_NAME=push 18 | # Mocking the event payload 19 | GITHUB_EVENT_PATH=./event-example.json 20 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "npm" 9 | directory: "/" 10 | schedule: 11 | interval: "weekly" 12 | day: "sunday" 13 | assignees: 14 | - "Ilshidur" 15 | reviewers: 16 | - "Ilshidur" 17 | labels: 18 | - "dependencies" 19 | - "npm" 20 | # Maintain dependencies for GitHub Actions 21 | - package-ecosystem: "github-actions" 22 | directory: "/" 23 | schedule: 24 | interval: "weekly" 25 | day: "sunday" 26 | -------------------------------------------------------------------------------- /entrypoint.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | const _ = require('lodash'); 3 | const core = require('@actions/core'); 4 | const message = require('./message'); 5 | 6 | const REQUIRED_ENV_VARS = [ 7 | "GITHUB_EVENT_PATH", 8 | "SLACK_WEBHOOK", 9 | ]; 10 | 11 | try { 12 | _.forEach(REQUIRED_ENV_VARS, env => { 13 | if (_.isEmpty(process.env[env])) { 14 | process.exitCode = 1; 15 | throw new Error(`Missing environment variable. ${env} is required.`); 16 | } 17 | }); 18 | } catch (e) { core.setFailed(e.message); } 19 | 20 | 21 | if (!process.exitCode) { 22 | core.info("Sending message ..."); 23 | 24 | axios 25 | .post(process.env.SLACK_WEBHOOK, message.get()) 26 | .then(() => { 27 | process.exitCode = 0; 28 | return core.info('Message sent! Shutting down ...'); 29 | }) 30 | .catch((err) => { 31 | process.exitCode = 1; 32 | const errMessage = err.response ? err.response.data : err.message; 33 | return core.setFailed(`Error: ${errMessage}`); 34 | }); 35 | } 36 | -------------------------------------------------------------------------------- /DEVELOPMENT.md: -------------------------------------------------------------------------------- 1 | # 🚀 Slack for GitHub Actions - DEVELOPMENT 2 | 3 | This document will help you in case you want to test your GitHub Action before deploying it. 4 | By installing and running this Action manually, you'll be able to control the environment variables that GitHub usually applies to the Action's container. 5 | 6 |
7 | 8 | ## Requirements 9 | 10 | * Node.js *(sorry ...)* 11 | 12 | ## Installation 13 | 14 | * Copy `.env.dist` to `.env` and set **all** the environment variables. 15 | * Run `yarn`. 16 | 17 | ## Development 18 | 19 | Run the Action using this : 20 | 21 | ```bash 22 | node -r dotenv/config entrypoint.js "{{ EVENT_PAYLOAD.commits[0].message }}" 23 | ``` 24 | 25 | You can change the event payload by editing the `event-example.json` file according to the [event types](https://developer.github.com/v3/activity/events/types). 26 | 27 |
28 | 29 |

30 | Don't forget to 🌟 Star 🌟 the repo if you like this GitHub Action !
31 | Your feedback is appreciated 32 |

33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Nicolas Coutin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "action-slack", 3 | "version": "2.0.0", 4 | "description": "GitHub Action that sends a Slack notification.", 5 | "private": true, 6 | "type": "commonjs", 7 | "main": "./entrypoint.js", 8 | "engines": { 9 | "node": ">=8.3.0" 10 | }, 11 | "scripts": { 12 | "build": "ncc build ./entrypoint -m", 13 | "start": "node -r dotenv/config ./entrypoint 'My message from {{GITHUB_REPOSITORY}}'", 14 | "lint": "eslint --ext .js ./" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/Ilshidur/actions.git" 19 | }, 20 | "keywords": [ 21 | "slack", 22 | "github", 23 | "action" 24 | ], 25 | "author": "Ilshidur", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/Ilshidur/actions/issues" 29 | }, 30 | "homepage": "https://github.com/Ilshidur/actions#readme", 31 | "dependencies": { 32 | "@actions/core": "1.10.0", 33 | "axios": "0.21.0", 34 | "lodash": "4.17.21" 35 | }, 36 | "devDependencies": { 37 | "@vercel/ncc": "0.28.2", 38 | "dotenv": "8.2.0", 39 | "eslint": "7.24.0", 40 | "eslint-plugin-node": "11.1.0" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /message.js: -------------------------------------------------------------------------------- 1 | /** 2 | @description 3 | Message payload to be sent with Slack webhook 4 | */ 5 | const { selectAvatar, getMessage, parsePayload } = require("./handlers"); 6 | 7 | const { 8 | SLACK_USERNAME, 9 | SLACK_CHANNEL, 10 | SLACK_CUSTOM_PAYLOAD, 11 | SLACK_UNFURL_LINKS, 12 | } = process.env; 13 | 14 | const messageSingleton = (() => { 15 | let instance; 16 | 17 | function createInstance() { 18 | if (SLACK_CUSTOM_PAYLOAD) return parsePayload(); 19 | 20 | const message = {}; 21 | 22 | message.text = getMessage(); // Args || DEFAULT_MESSAGE 23 | if(SLACK_UNFURL_LINKS === 'true'){ 24 | message.unfurl_links = true; 25 | } 26 | 27 | // override username 28 | if (SLACK_USERNAME) message.username = SLACK_USERNAME; 29 | 30 | // override channel 31 | if (SLACK_CHANNEL) message.channel = SLACK_CHANNEL; 32 | 33 | /* 34 | If provided avatar add it, 35 | also can use use sender, or repository image. 36 | defaults to webhook slack app; 37 | */ 38 | if (selectAvatar()) message.icon_url = selectAvatar(); 39 | 40 | return message; 41 | } 42 | 43 | return { 44 | get() { 45 | if (!instance) instance = createInstance(); 46 | return instance; 47 | } 48 | }; 49 | })(); 50 | 51 | module.exports = messageSingleton; 52 | -------------------------------------------------------------------------------- /handlers.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const _ = require('lodash'); 3 | const core = require('@actions/core'); 4 | 5 | _.templateSettings.interpolate = /{{([\s\S]+?)}}/g; 6 | 7 | const { 8 | SLACK_AVATAR, 9 | SLACK_CUSTOM_PAYLOAD, 10 | GITHUB_EVENT_PATH, 11 | GITHUB_ACTOR, 12 | GITHUB_EVENT_NAME, 13 | GITHUB_REPOSITORY 14 | } = process.env; 15 | 16 | const EVENT_PAYLOAD = JSON.parse(fs.readFileSync(GITHUB_EVENT_PATH, "utf8")); 17 | 18 | const replaceMustaches = data => _.template(data)({ ...process.env, EVENT_PAYLOAD }) 19 | 20 | // Override Slack message 21 | exports.getMessage = () => { 22 | const args = core.getInput('args'); 23 | const DEFAULT_MESSAGE = `@${GITHUB_ACTOR} (${GITHUB_EVENT_NAME}) at ${GITHUB_REPOSITORY}`; 24 | 25 | if (!args) return DEFAULT_MESSAGE; 26 | 27 | // If any arguments provided, parse moustaches on template string: 28 | return replaceMustaches(args) || DEFAULT_MESSAGE; 29 | } 30 | 31 | // Custom slack payload 32 | exports.parsePayload = () => JSON.parse(replaceMustaches(SLACK_CUSTOM_PAYLOAD)); 33 | 34 | 35 | // overrides default avatar 36 | exports.selectAvatar = () => { 37 | switch (SLACK_AVATAR) { 38 | case 'sender': return _.get(EVENT_PAYLOAD, 'sender.avatar_url') || false; 39 | case 'repository': return _.get(EVENT_PAYLOAD, 'owner.avatar_url') || false 40 | default: return SLACK_AVATAR || false; 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Notification on push 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - main # ✊🏿 8 | 9 | env: 10 | CI: true 11 | SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} 12 | DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} 13 | HUSKY_SKIP_INSTALL: true 14 | 15 | jobs: 16 | build: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v2 20 | 21 | - name: Check syntax 22 | run: | 23 | yarn install --frozen-lockfile --silent --non-interactive 24 | yarn lint 25 | 26 | - name: Slack notification FAILED 27 | uses: Ilshidur/action-slack@2.1.0 28 | if: failure() 29 | env: 30 | SLACK_AVATAR: sender # optional: repository, sender or ImageURL 31 | with: 32 | args: "Lint checks *FAILED* for {{GITHUB_REPOSITORY}}*\nYo {{GITHUB_ACTOR}} see why at <{{GITHUB_SERVER_URL}}/{{GITHUB_REPOSITORY}}/commit/{{GITHUB_SHA}}/checks|action logs>" 33 | 34 | - name: Slack notification SUCCESS 35 | uses: Ilshidur/action-slack@2.1.0 36 | if: success() 37 | with: 38 | args: "Lint checks *SUCCESSFUL!*\nfrom {{ GITHUB_ACTOR }} at {{ GITHUB_REPOSITORY }}" 39 | 40 | - name: Discord notification FAILED 41 | uses: Ilshidur/action-discord@0.3.0 42 | if: failure() 43 | with: 44 | args: "Lint checks *FAILED* for {{GITHUB_REPOSITORY}}*\nYo {{GITHUB_ACTOR}} see why at <{{GITHUB_SERVER_URL}}/{{GITHUB_REPOSITORY}}/commit/{{GITHUB_SHA}}/checks|action logs>" 45 | 46 | - name: Discord notification SUCCESS 47 | uses: Ilshidur/action-discord@0.3.0 48 | if: success() 49 | with: 50 | args: "Lint checks *SUCCESSFUL!*\nfrom {{ GITHUB_ACTOR }} at {{ GITHUB_REPOSITORY }}" 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🚀 Slack for GitHub Actions 2 | 3 | 4 | [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) 5 | 6 | 7 | [![Build Status][build-badge]][build-url] 8 | 9 | Sends a Slack notification. Simple as that. 10 | 11 | *Appearance on Slack :* 12 | 13 | ![Slack message](slack.png "Slack message") 14 | 15 | This GitHub action is part of a list of Actions that are located in an other repo. Feel free to check it out : https://github.com/Ilshidur/actions. 16 | 17 |
18 | 19 | ## Usage 20 | 21 | ```yaml 22 | - name: Slack notification 23 | env: 24 | SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} 25 | SLACK_USERNAME: ThisIsMyUsername # Optional. (defaults to webhook app) 26 | SLACK_CHANNEL: general # Optional. (defaults to webhook) 27 | SLACK_AVATAR: repository # Optional. can be (repository, sender, an URL) (defaults to webhook app avatar) 28 | uses: Ilshidur/action-slack@2.0.2 29 | with: 30 | args: 'A new commit has been pushed.' # Optional 31 | ``` 32 | 33 | **NOTICE :** for stability purposes, it is recommended to use the action with an explicit commit SHA-1 : 34 | 35 | * Version : `uses: "Ilshidur/action-slack@2.1.0"` (→ link to the releases list : https://github.com/Ilshidur/action-slack/releases) 36 | * Commit SHA-1 : `uses: "Ilshidur/action-slack@702accad29cfcfe2ee4ebebb21a3883cc1ac9a39"` (→ link to the commits list : https://github.com/Ilshidur/action-slack/commits/master) 37 | 38 | ### Arguments 39 | 40 | The argument is the message to display in the Slack notification. 41 | 42 | **Environment variables** can be interpolated in the message using brackets (`{{` and `}}`) : 43 | 44 | e.g.: `Action called : {{ GITHUB_ACTION }}` 45 | 46 | *Note :* be careful to properly [format your messages for Slack](https://api.slack.com/docs/message-formatting). 47 | 48 | **Event Payload** data can also be interpolated in the message using brackets (`{{` and `}}`) with the `EVENT_PAYLOAD` variable. 49 | 50 | e.g.: `Action called: {{ GITHUB_ACTION }} as {{ EVENT_PAYLOAD.pull_request.id }}` 51 | 52 | > See the [event types](https://developer.github.com/v3/activity/events/types/) for valid payload informations. 53 | 54 | #### Examples 55 | 56 | * `args: "Hello, beautiful ! I ran a GitHub Action for you <3"` 57 | * `args: "I showed you my commit. Please respond."` 58 | 59 | ### Environment variables 60 | 61 | * **`SLACK_WEBHOOK`** **(required)**: the Slack webhook URL (see https://api.slack.com/incoming-webhooks). 62 | * **`SLACK_USERNAME`** *(optional)* : overrides username. Defaults to the Slack webhook bot name. 63 | * **`SLACK_CHANNEL`** *(optional)* : overrides the default channel of the webhook. If not set, the message will be sent to the channel associated to the webhook. 64 | * **`SLACK_AVATAR`** *(optional)* : overrides the message avatar. Can be `'repository'`, `'sender'` or an URL. If not set, the avatar of the Slack webhook's bot picture will be used. 65 | * **`SLACK_CUSTOM_PAYLOAD`** *(advanced)* : JSON string that sets full payload. instructions see [CUSTOM_PAYLOAD](CUSTOM_PAYLOAD.md) 66 | 67 | ## Debugging / testing / development 68 | 69 | Developers, all you need is in the [DEVELOPMENT.md](DEVELOPMENT.md) file. 70 | 71 | ## Contributors 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |

Christhopher Lion

💻 🤔 📖
81 | 82 | 83 | 84 | 85 | 86 | ## Alternatives 87 | 88 | Because open source is about everyone : 89 | 90 | https://github.com/marketplace/actions/post-slack-message
91 | ![](https://img.shields.io/github/stars/pullreminders/slack-action.svg?label=Stars&style=social) 92 | 93 | https://github.com/marketplace/actions/slack-notify
94 | ![](https://img.shields.io/github/stars/rtCamp/action-slack-notify.svg?label=Stars&style=social) 95 | 96 | https://github.com/marketplace/actions/slack-bot-action
97 | ![](https://img.shields.io/github/stars/krider2010/slack-bot-action.svg?label=Stars&style=social) 98 | 99 | https://github.com/marketplace/actions/slatify
100 | ![](https://img.shields.io/github/stars/homoluctus/slatify.svg?label=Stars&style=social) 101 | 102 | https://github.com/marketplace/actions/slack-notify-build
103 | ![](https://img.shields.io/github/stars/voxmedia/github-action-slack-notify-build.svg?label=Stars&style=social) 104 | 105 | https://github.com/marketplace/actions/action-slack
106 | ![](https://img.shields.io/github/stars/8398a7/action-slack.svg?label=Stars&style=social) 107 | 108 |
109 | 110 |

111 | Don't forget to 🌟 Star 🌟 the repo if you like this GitHub Action !
112 | Your feedback is appreciated 113 |

114 | 115 | [build-badge]: https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FIlshidur%2Faction-slack%2Fbadge&style=flat 116 | [build-url]: https://actions-badge.atrox.dev/Ilshidur/action-slack/goto 117 | -------------------------------------------------------------------------------- /event-example.json: -------------------------------------------------------------------------------- 1 | { 2 | "ref": "refs/tags/simple-tag", 3 | "before": "a10867b14bb761a232cd80139fbd4c0d33264240", 4 | "after": "0000000000000000000000000000000000000000", 5 | "created": false, 6 | "deleted": true, 7 | "forced": false, 8 | "base_ref": null, 9 | "compare": "https://github.com/Codertocat/Hello-World/compare/a10867b14bb7...000000000000", 10 | "commits": [{ 11 | "sha": "a10867b14bb761a232cd80139fbd4c0d33264240", 12 | "message": "Commit message", 13 | "author": { 14 | "name": "Ilshidur", 15 | "email": "ilshidur@github.com" 16 | }, 17 | "url": "http://github.com/blahblah", 18 | "distinct": true 19 | }], 20 | "head_commit": null, 21 | "repository": { 22 | "id": 135493233, 23 | "node_id": "MDEwOlJlcG9zaXRvcnkxMzU0OTMyMzM=", 24 | "name": "Hello-World", 25 | "full_name": "Codertocat/Hello-World", 26 | "owner": { 27 | "name": "Codertocat", 28 | "email": "21031067+Codertocat@users.noreply.github.com", 29 | "login": "Codertocat", 30 | "id": 21031067, 31 | "node_id": "MDQ6VXNlcjIxMDMxMDY3", 32 | "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", 33 | "gravatar_id": "", 34 | "url": "https://api.github.com/users/Codertocat", 35 | "html_url": "https://github.com/Codertocat", 36 | "followers_url": "https://api.github.com/users/Codertocat/followers", 37 | "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", 38 | "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", 39 | "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", 40 | "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", 41 | "organizations_url": "https://api.github.com/users/Codertocat/orgs", 42 | "repos_url": "https://api.github.com/users/Codertocat/repos", 43 | "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", 44 | "received_events_url": "https://api.github.com/users/Codertocat/received_events", 45 | "type": "User", 46 | "site_admin": false 47 | }, 48 | "private": false, 49 | "html_url": "https://github.com/Codertocat/Hello-World", 50 | "description": null, 51 | "fork": false, 52 | "url": "https://github.com/Codertocat/Hello-World", 53 | "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", 54 | "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", 55 | "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", 56 | "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", 57 | "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", 58 | "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", 59 | "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", 60 | "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", 61 | "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", 62 | "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", 63 | "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", 64 | "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", 65 | "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", 66 | "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", 67 | "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", 68 | "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", 69 | "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", 70 | "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", 71 | "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", 72 | "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", 73 | "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", 74 | "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", 75 | "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", 76 | "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", 77 | "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", 78 | "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", 79 | "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", 80 | "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", 81 | "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", 82 | "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", 83 | "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", 84 | "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", 85 | "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", 86 | "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", 87 | "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", 88 | "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", 89 | "created_at": 1527711484, 90 | "updated_at": "2018-05-30T20:18:35Z", 91 | "pushed_at": 1527711528, 92 | "git_url": "git://github.com/Codertocat/Hello-World.git", 93 | "ssh_url": "git@github.com:Codertocat/Hello-World.git", 94 | "clone_url": "https://github.com/Codertocat/Hello-World.git", 95 | "svn_url": "https://github.com/Codertocat/Hello-World", 96 | "homepage": null, 97 | "size": 0, 98 | "stargazers_count": 0, 99 | "watchers_count": 0, 100 | "language": null, 101 | "has_issues": true, 102 | "has_projects": true, 103 | "has_downloads": true, 104 | "has_wiki": true, 105 | "has_pages": true, 106 | "forks_count": 0, 107 | "mirror_url": null, 108 | "archived": false, 109 | "open_issues_count": 2, 110 | "license": null, 111 | "forks": 0, 112 | "open_issues": 2, 113 | "watchers": 0, 114 | "default_branch": "master", 115 | "stargazers": 0, 116 | "master_branch": "master" 117 | }, 118 | "pusher": { 119 | "name": "Codertocat", 120 | "email": "21031067+Codertocat@users.noreply.github.com" 121 | }, 122 | "sender": { 123 | "login": "Codertocat", 124 | "id": 21031067, 125 | "node_id": "MDQ6VXNlcjIxMDMxMDY3", 126 | "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", 127 | "gravatar_id": "", 128 | "url": "https://api.github.com/users/Codertocat", 129 | "html_url": "https://github.com/Codertocat", 130 | "followers_url": "https://api.github.com/users/Codertocat/followers", 131 | "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", 132 | "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", 133 | "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", 134 | "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", 135 | "organizations_url": "https://api.github.com/users/Codertocat/orgs", 136 | "repos_url": "https://api.github.com/users/Codertocat/repos", 137 | "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", 138 | "received_events_url": "https://api.github.com/users/Codertocat/received_events", 139 | "type": "User", 140 | "site_admin": false 141 | } 142 | } 143 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@actions/core@1.10.0": 6 | "integrity" "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==" 7 | "resolved" "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz" 8 | "version" "1.10.0" 9 | dependencies: 10 | "@actions/http-client" "^2.0.1" 11 | "uuid" "^8.3.2" 12 | 13 | "@actions/http-client@^2.0.1": 14 | "integrity" "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==" 15 | "resolved" "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz" 16 | "version" "2.1.0" 17 | dependencies: 18 | "tunnel" "^0.0.6" 19 | 20 | "@babel/code-frame@7.12.11": 21 | "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" 22 | "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" 23 | "version" "7.12.11" 24 | dependencies: 25 | "@babel/highlight" "^7.10.4" 26 | 27 | "@babel/helper-validator-identifier@^7.10.4": 28 | "integrity" "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" 29 | "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz" 30 | "version" "7.10.4" 31 | 32 | "@babel/highlight@^7.10.4": 33 | "integrity" "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==" 34 | "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz" 35 | "version" "7.10.4" 36 | dependencies: 37 | "@babel/helper-validator-identifier" "^7.10.4" 38 | "chalk" "^2.0.0" 39 | "js-tokens" "^4.0.0" 40 | 41 | "@eslint/eslintrc@^0.4.0": 42 | "integrity" "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==" 43 | "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz" 44 | "version" "0.4.0" 45 | dependencies: 46 | "ajv" "^6.12.4" 47 | "debug" "^4.1.1" 48 | "espree" "^7.3.0" 49 | "globals" "^12.1.0" 50 | "ignore" "^4.0.6" 51 | "import-fresh" "^3.2.1" 52 | "js-yaml" "^3.13.1" 53 | "minimatch" "^3.0.4" 54 | "strip-json-comments" "^3.1.1" 55 | 56 | "@vercel/ncc@0.28.2": 57 | "integrity" "sha512-2ZBPviK9nFHzymu9POKGz50BRGGBIw7a8VcjgH73Xu2H4IvZx3KS0Qk/SS7S/N6iAalAGGxLSwFM1obeBGWXGg==" 58 | "resolved" "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.28.2.tgz" 59 | "version" "0.28.2" 60 | 61 | "acorn-jsx@^5.3.1": 62 | "integrity" "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" 63 | "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz" 64 | "version" "5.3.1" 65 | 66 | "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.4.0": 67 | "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" 68 | "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" 69 | "version" "7.4.1" 70 | 71 | "ajv@^6.10.0", "ajv@^6.12.4": 72 | "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" 73 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 74 | "version" "6.12.6" 75 | dependencies: 76 | "fast-deep-equal" "^3.1.1" 77 | "fast-json-stable-stringify" "^2.0.0" 78 | "json-schema-traverse" "^0.4.1" 79 | "uri-js" "^4.2.2" 80 | 81 | "ajv@^7.0.2": 82 | "integrity" "sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==" 83 | "resolved" "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz" 84 | "version" "7.2.4" 85 | dependencies: 86 | "fast-deep-equal" "^3.1.1" 87 | "json-schema-traverse" "^1.0.0" 88 | "require-from-string" "^2.0.2" 89 | "uri-js" "^4.2.2" 90 | 91 | "ansi-colors@^4.1.1": 92 | "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" 93 | "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" 94 | "version" "4.1.1" 95 | 96 | "ansi-regex@^5.0.0": 97 | "integrity" "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 98 | "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" 99 | "version" "5.0.0" 100 | 101 | "ansi-styles@^3.2.1": 102 | "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" 103 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" 104 | "version" "3.2.1" 105 | dependencies: 106 | "color-convert" "^1.9.0" 107 | 108 | "ansi-styles@^4.0.0", "ansi-styles@^4.1.0": 109 | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" 110 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 111 | "version" "4.3.0" 112 | dependencies: 113 | "color-convert" "^2.0.1" 114 | 115 | "argparse@^1.0.7": 116 | "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" 117 | "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" 118 | "version" "1.0.10" 119 | dependencies: 120 | "sprintf-js" "~1.0.2" 121 | 122 | "astral-regex@^2.0.0": 123 | "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" 124 | "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" 125 | "version" "2.0.0" 126 | 127 | "axios@0.21.0": 128 | "integrity" "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==" 129 | "resolved" "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz" 130 | "version" "0.21.0" 131 | dependencies: 132 | "follow-redirects" "^1.10.0" 133 | 134 | "balanced-match@^1.0.0": 135 | "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c= sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg==" 136 | "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" 137 | "version" "1.0.0" 138 | 139 | "brace-expansion@^1.1.7": 140 | "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" 141 | "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 142 | "version" "1.1.11" 143 | dependencies: 144 | "balanced-match" "^1.0.0" 145 | "concat-map" "0.0.1" 146 | 147 | "callsites@^3.0.0": 148 | "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 149 | "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 150 | "version" "3.1.0" 151 | 152 | "chalk@^2.0.0": 153 | "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" 154 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 155 | "version" "2.4.2" 156 | dependencies: 157 | "ansi-styles" "^3.2.1" 158 | "escape-string-regexp" "^1.0.5" 159 | "supports-color" "^5.3.0" 160 | 161 | "chalk@^4.0.0": 162 | "integrity" "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==" 163 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" 164 | "version" "4.1.0" 165 | dependencies: 166 | "ansi-styles" "^4.1.0" 167 | "supports-color" "^7.1.0" 168 | 169 | "color-convert@^1.9.0": 170 | "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" 171 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" 172 | "version" "1.9.3" 173 | dependencies: 174 | "color-name" "1.1.3" 175 | 176 | "color-convert@^2.0.1": 177 | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" 178 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 179 | "version" "2.0.1" 180 | dependencies: 181 | "color-name" "~1.1.4" 182 | 183 | "color-name@~1.1.4": 184 | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 185 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 186 | "version" "1.1.4" 187 | 188 | "color-name@1.1.3": 189 | "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 190 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" 191 | "version" "1.1.3" 192 | 193 | "concat-map@0.0.1": 194 | "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 195 | "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 196 | "version" "0.0.1" 197 | 198 | "cross-spawn@^7.0.2": 199 | "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" 200 | "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 201 | "version" "7.0.3" 202 | dependencies: 203 | "path-key" "^3.1.0" 204 | "shebang-command" "^2.0.0" 205 | "which" "^2.0.1" 206 | 207 | "debug@^4.0.1", "debug@^4.1.1": 208 | "integrity" "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==" 209 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz" 210 | "version" "4.2.0" 211 | dependencies: 212 | "ms" "2.1.2" 213 | 214 | "deep-is@^0.1.3": 215 | "integrity" "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw==" 216 | "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" 217 | "version" "0.1.3" 218 | 219 | "doctrine@^3.0.0": 220 | "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" 221 | "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 222 | "version" "3.0.0" 223 | dependencies: 224 | "esutils" "^2.0.2" 225 | 226 | "dotenv@8.2.0": 227 | "integrity" "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" 228 | "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz" 229 | "version" "8.2.0" 230 | 231 | "emoji-regex@^8.0.0": 232 | "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 233 | "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 234 | "version" "8.0.0" 235 | 236 | "enquirer@^2.3.5": 237 | "integrity" "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==" 238 | "resolved" "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" 239 | "version" "2.3.6" 240 | dependencies: 241 | "ansi-colors" "^4.1.1" 242 | 243 | "escape-string-regexp@^1.0.5": 244 | "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 245 | "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 246 | "version" "1.0.5" 247 | 248 | "eslint-plugin-es@^3.0.0": 249 | "integrity" "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==" 250 | "resolved" "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz" 251 | "version" "3.0.1" 252 | dependencies: 253 | "eslint-utils" "^2.0.0" 254 | "regexpp" "^3.0.0" 255 | 256 | "eslint-plugin-node@11.1.0": 257 | "integrity" "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==" 258 | "resolved" "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz" 259 | "version" "11.1.0" 260 | dependencies: 261 | "eslint-plugin-es" "^3.0.0" 262 | "eslint-utils" "^2.0.0" 263 | "ignore" "^5.1.1" 264 | "minimatch" "^3.0.4" 265 | "resolve" "^1.10.1" 266 | "semver" "^6.1.0" 267 | 268 | "eslint-scope@^5.1.1": 269 | "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" 270 | "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" 271 | "version" "5.1.1" 272 | dependencies: 273 | "esrecurse" "^4.3.0" 274 | "estraverse" "^4.1.1" 275 | 276 | "eslint-utils@^2.0.0", "eslint-utils@^2.1.0": 277 | "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==" 278 | "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" 279 | "version" "2.1.0" 280 | dependencies: 281 | "eslint-visitor-keys" "^1.1.0" 282 | 283 | "eslint-visitor-keys@^1.1.0": 284 | "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" 285 | "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" 286 | "version" "1.3.0" 287 | 288 | "eslint-visitor-keys@^1.3.0": 289 | "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" 290 | "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" 291 | "version" "1.3.0" 292 | 293 | "eslint-visitor-keys@^2.0.0": 294 | "integrity" "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" 295 | "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz" 296 | "version" "2.0.0" 297 | 298 | "eslint@>=4.19.1", "eslint@>=5.16.0", "eslint@7.24.0": 299 | "integrity" "sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==" 300 | "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz" 301 | "version" "7.24.0" 302 | dependencies: 303 | "@babel/code-frame" "7.12.11" 304 | "@eslint/eslintrc" "^0.4.0" 305 | "ajv" "^6.10.0" 306 | "chalk" "^4.0.0" 307 | "cross-spawn" "^7.0.2" 308 | "debug" "^4.0.1" 309 | "doctrine" "^3.0.0" 310 | "enquirer" "^2.3.5" 311 | "eslint-scope" "^5.1.1" 312 | "eslint-utils" "^2.1.0" 313 | "eslint-visitor-keys" "^2.0.0" 314 | "espree" "^7.3.1" 315 | "esquery" "^1.4.0" 316 | "esutils" "^2.0.2" 317 | "file-entry-cache" "^6.0.1" 318 | "functional-red-black-tree" "^1.0.1" 319 | "glob-parent" "^5.0.0" 320 | "globals" "^13.6.0" 321 | "ignore" "^4.0.6" 322 | "import-fresh" "^3.0.0" 323 | "imurmurhash" "^0.1.4" 324 | "is-glob" "^4.0.0" 325 | "js-yaml" "^3.13.1" 326 | "json-stable-stringify-without-jsonify" "^1.0.1" 327 | "levn" "^0.4.1" 328 | "lodash" "^4.17.21" 329 | "minimatch" "^3.0.4" 330 | "natural-compare" "^1.4.0" 331 | "optionator" "^0.9.1" 332 | "progress" "^2.0.0" 333 | "regexpp" "^3.1.0" 334 | "semver" "^7.2.1" 335 | "strip-ansi" "^6.0.0" 336 | "strip-json-comments" "^3.1.0" 337 | "table" "^6.0.4" 338 | "text-table" "^0.2.0" 339 | "v8-compile-cache" "^2.0.3" 340 | 341 | "espree@^7.3.0", "espree@^7.3.1": 342 | "integrity" "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==" 343 | "resolved" "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" 344 | "version" "7.3.1" 345 | dependencies: 346 | "acorn" "^7.4.0" 347 | "acorn-jsx" "^5.3.1" 348 | "eslint-visitor-keys" "^1.3.0" 349 | 350 | "esprima@^4.0.0": 351 | "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 352 | "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" 353 | "version" "4.0.1" 354 | 355 | "esquery@^1.4.0": 356 | "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" 357 | "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" 358 | "version" "1.4.0" 359 | dependencies: 360 | "estraverse" "^5.1.0" 361 | 362 | "esrecurse@^4.3.0": 363 | "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" 364 | "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 365 | "version" "4.3.0" 366 | dependencies: 367 | "estraverse" "^5.2.0" 368 | 369 | "estraverse@^4.1.1": 370 | "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 371 | "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" 372 | "version" "4.3.0" 373 | 374 | "estraverse@^5.1.0": 375 | "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" 376 | "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" 377 | "version" "5.2.0" 378 | 379 | "estraverse@^5.2.0": 380 | "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" 381 | "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" 382 | "version" "5.2.0" 383 | 384 | "esutils@^2.0.2": 385 | "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" 386 | "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 387 | "version" "2.0.3" 388 | 389 | "fast-deep-equal@^3.1.1": 390 | "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 391 | "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 392 | "version" "3.1.3" 393 | 394 | "fast-json-stable-stringify@^2.0.0": 395 | "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 396 | "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 397 | "version" "2.1.0" 398 | 399 | "fast-levenshtein@^2.0.6": 400 | "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" 401 | "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 402 | "version" "2.0.6" 403 | 404 | "file-entry-cache@^6.0.1": 405 | "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" 406 | "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" 407 | "version" "6.0.1" 408 | dependencies: 409 | "flat-cache" "^3.0.4" 410 | 411 | "flat-cache@^3.0.4": 412 | "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" 413 | "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" 414 | "version" "3.0.4" 415 | dependencies: 416 | "flatted" "^3.1.0" 417 | "rimraf" "^3.0.2" 418 | 419 | "flatted@^3.1.0": 420 | "integrity" "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" 421 | "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" 422 | "version" "3.1.1" 423 | 424 | "follow-redirects@^1.10.0": 425 | "integrity" "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" 426 | "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz" 427 | "version" "1.13.0" 428 | 429 | "fs.realpath@^1.0.0": 430 | "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 431 | "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 432 | "version" "1.0.0" 433 | 434 | "function-bind@^1.1.1": 435 | "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 436 | "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 437 | "version" "1.1.1" 438 | 439 | "functional-red-black-tree@^1.0.1": 440 | "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" 441 | "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" 442 | "version" "1.0.1" 443 | 444 | "glob-parent@^5.0.0": 445 | "integrity" "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==" 446 | "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz" 447 | "version" "5.1.1" 448 | dependencies: 449 | "is-glob" "^4.0.1" 450 | 451 | "glob@^7.1.3": 452 | "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" 453 | "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" 454 | "version" "7.1.6" 455 | dependencies: 456 | "fs.realpath" "^1.0.0" 457 | "inflight" "^1.0.4" 458 | "inherits" "2" 459 | "minimatch" "^3.0.4" 460 | "once" "^1.3.0" 461 | "path-is-absolute" "^1.0.0" 462 | 463 | "globals@^12.1.0": 464 | "integrity" "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==" 465 | "resolved" "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz" 466 | "version" "12.4.0" 467 | dependencies: 468 | "type-fest" "^0.8.1" 469 | 470 | "globals@^13.6.0": 471 | "integrity" "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==" 472 | "resolved" "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz" 473 | "version" "13.7.0" 474 | dependencies: 475 | "type-fest" "^0.20.2" 476 | 477 | "has-flag@^3.0.0": 478 | "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 479 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 480 | "version" "3.0.0" 481 | 482 | "has-flag@^4.0.0": 483 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 484 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 485 | "version" "4.0.0" 486 | 487 | "has@^1.0.3": 488 | "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" 489 | "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 490 | "version" "1.0.3" 491 | dependencies: 492 | "function-bind" "^1.1.1" 493 | 494 | "ignore@^4.0.6": 495 | "integrity" "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" 496 | "resolved" "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" 497 | "version" "4.0.6" 498 | 499 | "ignore@^5.1.1": 500 | "integrity" "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" 501 | "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" 502 | "version" "5.1.8" 503 | 504 | "import-fresh@^3.0.0", "import-fresh@^3.2.1": 505 | "integrity" "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==" 506 | "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz" 507 | "version" "3.2.2" 508 | dependencies: 509 | "parent-module" "^1.0.0" 510 | "resolve-from" "^4.0.0" 511 | 512 | "imurmurhash@^0.1.4": 513 | "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" 514 | "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 515 | "version" "0.1.4" 516 | 517 | "inflight@^1.0.4": 518 | "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" 519 | "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 520 | "version" "1.0.6" 521 | dependencies: 522 | "once" "^1.3.0" 523 | "wrappy" "1" 524 | 525 | "inherits@2": 526 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 527 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 528 | "version" "2.0.4" 529 | 530 | "is-core-module@^2.0.0": 531 | "integrity" "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==" 532 | "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz" 533 | "version" "2.1.0" 534 | dependencies: 535 | "has" "^1.0.3" 536 | 537 | "is-extglob@^2.1.1": 538 | "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 539 | "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 540 | "version" "2.1.1" 541 | 542 | "is-fullwidth-code-point@^3.0.0": 543 | "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 544 | "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 545 | "version" "3.0.0" 546 | 547 | "is-glob@^4.0.0", "is-glob@^4.0.1": 548 | "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" 549 | "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" 550 | "version" "4.0.1" 551 | dependencies: 552 | "is-extglob" "^2.1.1" 553 | 554 | "isexe@^2.0.0": 555 | "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 556 | "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 557 | "version" "2.0.0" 558 | 559 | "js-tokens@^4.0.0": 560 | "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 561 | "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 562 | "version" "4.0.0" 563 | 564 | "js-yaml@^3.13.1": 565 | "integrity" "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==" 566 | "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz" 567 | "version" "3.14.0" 568 | dependencies: 569 | "argparse" "^1.0.7" 570 | "esprima" "^4.0.0" 571 | 572 | "json-schema-traverse@^0.4.1": 573 | "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 574 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 575 | "version" "0.4.1" 576 | 577 | "json-schema-traverse@^1.0.0": 578 | "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 579 | "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" 580 | "version" "1.0.0" 581 | 582 | "json-stable-stringify-without-jsonify@^1.0.1": 583 | "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" 584 | "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 585 | "version" "1.0.1" 586 | 587 | "levn@^0.4.1": 588 | "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" 589 | "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" 590 | "version" "0.4.1" 591 | dependencies: 592 | "prelude-ls" "^1.2.1" 593 | "type-check" "~0.4.0" 594 | 595 | "lodash@^4.17.20", "lodash@^4.17.21", "lodash@4.17.21": 596 | "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 597 | "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 598 | "version" "4.17.21" 599 | 600 | "minimatch@^3.0.4": 601 | "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" 602 | "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" 603 | "version" "3.0.4" 604 | dependencies: 605 | "brace-expansion" "^1.1.7" 606 | 607 | "ms@2.1.2": 608 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 609 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 610 | "version" "2.1.2" 611 | 612 | "natural-compare@^1.4.0": 613 | "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" 614 | "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 615 | "version" "1.4.0" 616 | 617 | "once@^1.3.0": 618 | "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" 619 | "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 620 | "version" "1.4.0" 621 | dependencies: 622 | "wrappy" "1" 623 | 624 | "optionator@^0.9.1": 625 | "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" 626 | "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" 627 | "version" "0.9.1" 628 | dependencies: 629 | "deep-is" "^0.1.3" 630 | "fast-levenshtein" "^2.0.6" 631 | "levn" "^0.4.1" 632 | "prelude-ls" "^1.2.1" 633 | "type-check" "^0.4.0" 634 | "word-wrap" "^1.2.3" 635 | 636 | "parent-module@^1.0.0": 637 | "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" 638 | "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 639 | "version" "1.0.1" 640 | dependencies: 641 | "callsites" "^3.0.0" 642 | 643 | "path-is-absolute@^1.0.0": 644 | "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 645 | "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 646 | "version" "1.0.1" 647 | 648 | "path-key@^3.1.0": 649 | "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 650 | "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 651 | "version" "3.1.1" 652 | 653 | "path-parse@^1.0.6": 654 | "integrity" "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 655 | "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" 656 | "version" "1.0.6" 657 | 658 | "prelude-ls@^1.2.1": 659 | "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" 660 | "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" 661 | "version" "1.2.1" 662 | 663 | "progress@^2.0.0": 664 | "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 665 | "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" 666 | "version" "2.0.3" 667 | 668 | "punycode@^2.1.0": 669 | "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 670 | "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 671 | "version" "2.1.1" 672 | 673 | "regexpp@^3.0.0", "regexpp@^3.1.0": 674 | "integrity" "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" 675 | "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz" 676 | "version" "3.1.0" 677 | 678 | "require-from-string@^2.0.2": 679 | "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 680 | "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" 681 | "version" "2.0.2" 682 | 683 | "resolve-from@^4.0.0": 684 | "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" 685 | "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 686 | "version" "4.0.0" 687 | 688 | "resolve@^1.10.1": 689 | "integrity" "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==" 690 | "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz" 691 | "version" "1.18.1" 692 | dependencies: 693 | "is-core-module" "^2.0.0" 694 | "path-parse" "^1.0.6" 695 | 696 | "rimraf@^3.0.2": 697 | "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" 698 | "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 699 | "version" "3.0.2" 700 | dependencies: 701 | "glob" "^7.1.3" 702 | 703 | "semver@^6.1.0": 704 | "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 705 | "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" 706 | "version" "6.3.0" 707 | 708 | "semver@^7.2.1": 709 | "integrity" "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" 710 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" 711 | "version" "7.3.2" 712 | 713 | "shebang-command@^2.0.0": 714 | "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" 715 | "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 716 | "version" "2.0.0" 717 | dependencies: 718 | "shebang-regex" "^3.0.0" 719 | 720 | "shebang-regex@^3.0.0": 721 | "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 722 | "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 723 | "version" "3.0.0" 724 | 725 | "slice-ansi@^4.0.0": 726 | "integrity" "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==" 727 | "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" 728 | "version" "4.0.0" 729 | dependencies: 730 | "ansi-styles" "^4.0.0" 731 | "astral-regex" "^2.0.0" 732 | "is-fullwidth-code-point" "^3.0.0" 733 | 734 | "sprintf-js@~1.0.2": 735 | "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 736 | "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" 737 | "version" "1.0.3" 738 | 739 | "string-width@^4.2.0": 740 | "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" 741 | "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" 742 | "version" "4.2.2" 743 | dependencies: 744 | "emoji-regex" "^8.0.0" 745 | "is-fullwidth-code-point" "^3.0.0" 746 | "strip-ansi" "^6.0.0" 747 | 748 | "strip-ansi@^6.0.0": 749 | "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" 750 | "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" 751 | "version" "6.0.0" 752 | dependencies: 753 | "ansi-regex" "^5.0.0" 754 | 755 | "strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1": 756 | "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" 757 | "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 758 | "version" "3.1.1" 759 | 760 | "supports-color@^5.3.0": 761 | "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" 762 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 763 | "version" "5.5.0" 764 | dependencies: 765 | "has-flag" "^3.0.0" 766 | 767 | "supports-color@^7.1.0": 768 | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" 769 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 770 | "version" "7.2.0" 771 | dependencies: 772 | "has-flag" "^4.0.0" 773 | 774 | "table@^6.0.4": 775 | "integrity" "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==" 776 | "resolved" "https://registry.npmjs.org/table/-/table-6.0.7.tgz" 777 | "version" "6.0.7" 778 | dependencies: 779 | "ajv" "^7.0.2" 780 | "lodash" "^4.17.20" 781 | "slice-ansi" "^4.0.0" 782 | "string-width" "^4.2.0" 783 | 784 | "text-table@^0.2.0": 785 | "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" 786 | "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" 787 | "version" "0.2.0" 788 | 789 | "tunnel@^0.0.6": 790 | "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" 791 | "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" 792 | "version" "0.0.6" 793 | 794 | "type-check@^0.4.0", "type-check@~0.4.0": 795 | "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" 796 | "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" 797 | "version" "0.4.0" 798 | dependencies: 799 | "prelude-ls" "^1.2.1" 800 | 801 | "type-fest@^0.20.2": 802 | "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" 803 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 804 | "version" "0.20.2" 805 | 806 | "type-fest@^0.8.1": 807 | "integrity" "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" 808 | "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" 809 | "version" "0.8.1" 810 | 811 | "uri-js@^4.2.2": 812 | "integrity" "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==" 813 | "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz" 814 | "version" "4.4.0" 815 | dependencies: 816 | "punycode" "^2.1.0" 817 | 818 | "uuid@^8.3.2": 819 | "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" 820 | "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" 821 | "version" "8.3.2" 822 | 823 | "v8-compile-cache@^2.0.3": 824 | "integrity" "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==" 825 | "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz" 826 | "version" "2.2.0" 827 | 828 | "which@^2.0.1": 829 | "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" 830 | "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 831 | "version" "2.0.2" 832 | dependencies: 833 | "isexe" "^2.0.0" 834 | 835 | "word-wrap@^1.2.3": 836 | "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" 837 | "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" 838 | "version" "1.2.3" 839 | 840 | "wrappy@1": 841 | "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 842 | "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 843 | "version" "1.0.2" 844 | --------------------------------------------------------------------------------