├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── bug_report.md │ └── feature_request.md ├── security.md ├── dependabot.yml ├── code_of_conduct.md └── contributing.md ├── LICENSE ├── package.json ├── action.yml ├── .gitignore ├── index.js ├── README.md └── dist └── licenses.txt /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # default owners 2 | * @nicklegan 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | 3 | contact_links: 4 | - name: GitHub Expert Services 5 | url: https://services.github.com/#contact 6 | about: Contact GitHub Expert Services 7 | -------------------------------------------------------------------------------- /.github/security.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | If you discover a security issue in this repo, please submit it to [GitHub Professional Services](https://services.github.com/#contact). 4 | 5 | Thanks for helping make GitHub Actions safe for everyone. -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "monthly" 7 | 8 | - package-ecosystem: "npm" 9 | directory: "/" 10 | schedule: 11 | interval: "monthly" 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'Bug report' 3 | about: 'Create a bug report to help improve this project' 4 | title: 'PLEASE DESCRIBE THE BUG' 5 | labels: 'bug :bug:' 6 | assignees: '' 7 | --- 8 | 9 | ### Describe the bug 10 | 11 | A clear and concise description of what the bug is. 12 | 13 | ### To Reproduce 14 | 15 | Steps to reproduce the behavior: 16 | 17 | 1. Run '...' 18 | 2. See error 19 | 20 | ### Expected behavior 21 | 22 | A clear and concise description of what you expected to happen. 23 | 24 | ### Additional context 25 | 26 | Add any other context about the problem here. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'Feature request' 3 | about: 'Suggest an idea for this project' 4 | title: 'PLEASE DESCRIBE THE FEATURE REQUEST' 5 | labels: 'feature-request :construction:' 6 | assignees: '' 7 | --- 8 | 9 | ### Is your feature request related to a problem? Please describe. 10 | 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | ### Describe the solution you'd like 14 | 15 | A clear and concise description of what you want to happen. 16 | 17 | ### Describe alternatives you've considered 18 | 19 | A clear and concise description of any alternative solutions or features you've considered. 20 | 21 | ### Additional context 22 | 23 | Add any other context or screenshots about the feature request here. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 GitHub, Inc. 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. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-org-code-frequency-action", 3 | "version": "2.1.0", 4 | "description": "A GitHub Action to generate a report that contains code frequency metrics and programming languages used per repository belonging to a GitHub organization.", 5 | "author": { 6 | "name": "GitHub Expert Services", 7 | "email": "services@github.com", 8 | "url": "https://services.github.com" 9 | }, 10 | "contributors": [ 11 | { 12 | "name": "Nick Nagel", 13 | "email": "nicklegan@github.com", 14 | "url": "https://github.com/nicklegan" 15 | } 16 | ], 17 | "repository": "github:nicklegan/github-org-code-frequency-action", 18 | "engines": { 19 | "node": ">=16", 20 | "npm": ">=7" 21 | }, 22 | "license": "MIT", 23 | "main": "index.js", 24 | "scripts": { 25 | "build": "npx @vercel/ncc build index.js --out dist --license licenses.txt --quiet --minify" 26 | }, 27 | "dependencies": { 28 | "@actions/core": "^1.9.1", 29 | "@actions/github": "^5.0.3", 30 | "@octokit/auth-app": "^4.0.5", 31 | "csv": "^6.2.0", 32 | "natural-orderby": "^2.0.3" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: GitHub Organization Code Frequency Report Action 2 | description: 'An Action to generate a report with frequency metrics and programming languages used per repository for a GitHub organization' 3 | 4 | inputs: 5 | token: 6 | description: 'A Personal Access token with repo and read:org scope' 7 | required: true 8 | org: 9 | description: 'Custom GitHub organization to retrieve data for' 10 | default: '' 11 | required: false 12 | weeks: 13 | description: 'Amount of weeks in the past to collect data for' 14 | default: '4' 15 | required: false 16 | sort: 17 | description: 'Column used for sorting report results' 18 | default: 'additions' 19 | required: false 20 | sort-order: 21 | description: 'Selected column sorting direction' 22 | default: 'desc' 23 | required: false 24 | committer-name: 25 | description: 'The name of the committer that will appear in the Git history' 26 | default: 'github-actions' 27 | required: false 28 | committer-email: 29 | description: 'The committer email that will appear in the Git history' 30 | default: 'github-actions@github.com' 31 | required: false 32 | fromdate: 33 | description: 'The date from which to start collecting data' 34 | required: false 35 | todate: 36 | description: 'The date to which to stop collecting data' 37 | required: false 38 | json: 39 | description: 'Optional report export in JSON format' 40 | required: false 41 | appid: 42 | required: false 43 | privatekey: 44 | required: false 45 | installationid: 46 | required: false 47 | 48 | runs: 49 | using: 'node16' 50 | main: 'dist/index.js' 51 | 52 | branding: 53 | icon: 'list' 54 | color: 'blue' 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Optional REPL history 57 | .node_repl_history 58 | 59 | # Output of 'npm pack' 60 | *.tgz 61 | 62 | # Yarn Integrity file 63 | .yarn-integrity 64 | 65 | # dotenv environment variables file 66 | .env 67 | .env.test 68 | 69 | # parcel-bundler cache (https://parceljs.org/) 70 | .cache 71 | 72 | # next.js build output 73 | .next 74 | 75 | # nuxt.js build output 76 | .nuxt 77 | 78 | # vuepress build output 79 | .vuepress/dist 80 | 81 | # Serverless directories 82 | .serverless/ 83 | 84 | # FuseBox cache 85 | .fusebox/ 86 | 87 | # DynamoDB Local files 88 | .dynamodb/ 89 | 90 | # CSV reports 91 | *.csv 92 | 93 | # .DS_Store 94 | .DS_Store 95 | 96 | # .prettierrc 97 | .prettierrc.json 98 | -------------------------------------------------------------------------------- /.github/code_of_conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | - Using welcoming and inclusive language 18 | - Being respectful of differing viewpoints and experiences 19 | - Gracefully accepting constructive criticism 20 | - Focusing on what is best for the community 21 | - Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | - The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | - Trolling, insulting/derogatory comments, and personal or political attacks 28 | - Public or private harassment 29 | - Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | - Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at opensource@github.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html) 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq) 77 | -------------------------------------------------------------------------------- /.github/contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | :wave: Hi there! 4 | We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. 5 | 6 | ## Submitting a pull request 7 | 8 | [Pull Requests][pulls] are used for adding new playbooks, roles, and documents to the repository, or editing the existing ones. 9 | 10 | **With write access** 11 | 12 | 1. Clone the repository (only if you do not have write access) 13 | 1. Create a new branch: `git checkout -b my-branch-name` 14 | 1. Make your change 15 | 1. Push and [submit a pull request][pr] 16 | 1. Pat yourself on the back and wait for your pull request to be reviewed and merged. 17 | 18 | **Without write access** 19 | 20 | 1. [Fork][fork] and clone the repository 21 | 1. Create a new branch: `git checkout -b my-branch-name` 22 | 1. Make your change 23 | 1. Push to your fork and [submit a pull request][pr] 24 | 1. Pat your self on the back and wait for your pull request to be reviewed and merged. 25 | 26 | Here are a few things you can do that will increase the likelihood of your pull request being accepted: 27 | 28 | - Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. 29 | - Write [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). 30 | 31 | Work in Progress pull requests are also welcome to get feedback early on, or if there is something blocking you. 32 | 33 | - Create a branch with a name that identifies the user and nature of the changes (similar to `user/branch-purpose`) 34 | - Open a pull request and request a review from the `@github/ps-delivery` team 35 | 36 | ## Releasing 37 | 38 | If you are the current maintainer of this action: 39 | 40 | 1. Create a [Tag](https://stackoverflow.com/questions/18216991/create-a-tag-in-a-github-repository) 41 | 2. Draft [Release](https://help.github.com/en/github/administering-a-repository/managing-releases-in-a-repository) document explaining details of Release 42 | 3. Look for approval from [CODEOWNERS](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners) 43 | 44 | ## Resources 45 | 46 | - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) 47 | - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) 48 | - [GitHub Help](https://help.github.com) 49 | 50 | [pulls]: https://github.com/github/github-demo-stack/pulls 51 | [pr]: https://github.com/github/github-demo-stack/compare 52 | [fork]: https://github.com/github/github-demo-stack/fork 53 | # Contributing 54 | 55 | :wave: Hi there! 56 | We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. 57 | 58 | ## Submitting a pull request 59 | 60 | [Pull Requests][pulls] are used for adding new playbooks, roles, and documents to the repository, or editing the existing ones. 61 | 62 | **With write access** 63 | 64 | 1. Clone the repository (only if you do not have write access) 65 | 1. Create a new branch: `git checkout -b my-branch-name` 66 | 1. Make your change 67 | 1. Push and [submit a pull request][pr] 68 | 1. Pat yourself on the back and wait for your pull request to be reviewed and merged. 69 | 70 | **Without write access** 71 | 72 | 1. [Fork][fork] and clone the repository 73 | 1. Create a new branch: `git checkout -b my-branch-name` 74 | 1. Make your change 75 | 1. Push to your fork and [submit a pull request][pr] 76 | 1. Pat your self on the back and wait for your pull request to be reviewed and merged. 77 | 78 | Here are a few things you can do that will increase the likelihood of your pull request being accepted: 79 | 80 | - Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. 81 | - Write [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). 82 | 83 | Work in Progress pull requests are also welcome to get feedback early on, or if there is something blocking you. 84 | 85 | - Create a branch with a name that identifies the user and nature of the changes (similar to `user/branch-purpose`) 86 | - Open a pull request and request a review from the `@github/ps-delivery` team 87 | 88 | ## Releasing 89 | 90 | If you are the current maintainer of this action: 91 | 92 | 1. Create a [Tag](https://stackoverflow.com/questions/18216991/create-a-tag-in-a-github-repository) 93 | 2. Draft [Release](https://help.github.com/en/github/administering-a-repository/managing-releases-in-a-repository) document explaining details of Release 94 | 3. Look for approval from [CODEOWNERS](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners) 95 | 96 | ## Resources 97 | 98 | - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) 99 | - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) 100 | - [GitHub Help](https://help.github.com) 101 | 102 | [pulls]: https://github.com/github/github-demo-stack/pulls 103 | [pr]: https://github.com/github/github-demo-stack/compare 104 | [fork]: https://github.com/github/github-demo-stack/fork -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const core = require('@actions/core') 2 | const github = require('@actions/github') 3 | const { stringify } = require('csv-stringify/sync') 4 | const { orderBy } = require('natural-orderby') 5 | const eventPayload = require(process.env.GITHUB_EVENT_PATH) 6 | const { GitHub } = require('@actions/github/lib/utils') 7 | const { createAppAuth } = require('@octokit/auth-app') 8 | const { owner, repo } = github.context.repo 9 | 10 | const appId = core.getInput('appid', { required: false }) 11 | const privateKey = core.getInput('privatekey', { required: false }) 12 | const installationId = core.getInput('installationid', { required: false }) 13 | 14 | const token = core.getInput('token', { required: true }) 15 | const org = core.getInput('org', { required: false }) || eventPayload.organization.login 16 | const weeks = core.getInput('weeks', { required: false }) || '4' 17 | const sortColumn = core.getInput('sort', { required: false }) || 'additions' 18 | const sortOrder = core.getInput('sort-order', { required: false }) || 'desc' 19 | const jsonExport = core.getInput('json', { required: false }) || 'false' 20 | const committerName = core.getInput('committer-name', { required: false }) || 'github-actions' 21 | const committerEmail = core.getInput('committer-email', { required: false }) || 'github-actions@github.com' 22 | 23 | let octokit 24 | let columnDate 25 | let fileDate 26 | 27 | // GitHub App authentication 28 | if (appId && privateKey && installationId) { 29 | octokit = new GitHub({ 30 | authStrategy: createAppAuth, 31 | auth: { 32 | appId: appId, 33 | privateKey: privateKey, 34 | installationId: installationId 35 | } 36 | }) 37 | } else { 38 | octokit = github.getOctokit(token) 39 | } 40 | 41 | // Orchestrator 42 | ;(async () => { 43 | try { 44 | let repoArray = [] 45 | let sumArray = [] 46 | await getRepos(repoArray) 47 | await freqStats(repoArray, sumArray) 48 | await sortpushTotals(sumArray) 49 | if (jsonExport === 'true') { 50 | await json(sumArray) 51 | } 52 | } catch (error) { 53 | core.setFailed(error.message) 54 | } 55 | })() 56 | 57 | // Retrieve all repos for org 58 | async function getRepos(repoArray) { 59 | try { 60 | let paginationMember = null 61 | 62 | const query = ` 63 | query ($owner: String!, $cursorID: String) { 64 | organization(login: $owner) { 65 | repositories(first: 100, after: $cursorID) { 66 | nodes { 67 | name 68 | createdAt 69 | primaryLanguage { 70 | name 71 | } 72 | languages(first:100) { 73 | nodes { 74 | name 75 | } 76 | } 77 | } 78 | pageInfo { 79 | hasNextPage 80 | endCursor 81 | } 82 | } 83 | } 84 | } 85 | ` 86 | 87 | let hasNextPageMember = false 88 | let dataJSON = null 89 | 90 | do { 91 | dataJSON = await octokit.graphql({ 92 | query, 93 | owner: org, 94 | cursorID: paginationMember 95 | }) 96 | 97 | const repos = dataJSON.organization.repositories.nodes 98 | 99 | hasNextPageMember = dataJSON.organization.repositories.pageInfo.hasNextPage 100 | 101 | for (const repo of repos) { 102 | if (hasNextPageMember) { 103 | paginationMember = dataJSON.organization.repositories.pageInfo.endCursor 104 | } else { 105 | paginationMember = null 106 | } 107 | repoArray.push(repo) 108 | } 109 | } while (hasNextPageMember) 110 | } catch (error) { 111 | core.setFailed(error.message) 112 | } 113 | } 114 | 115 | // Retrieve code frequency data for the repo and set interval input selection 116 | async function freqStats(repoArray, sumArray) { 117 | try { 118 | for (const repo of repoArray) { 119 | do { 120 | response = await octokit.rest.repos.getCodeFrequencyStats({ 121 | owner: org, 122 | repo: repo.name 123 | }) 124 | 125 | let weeksTotal 126 | let weeksInterval = [] 127 | let logDate 128 | 129 | weeksTotal = response.data 130 | 131 | const fromdate = core.getInput('fromdate', { required: false }) || '' 132 | const todate = core.getInput('todate', { required: false }) || '' 133 | 134 | const regex = '([0-9]{4}-[0-9]{2}-[0-9]{2})' 135 | const flags = 'i' 136 | const re = new RegExp(regex, flags) 137 | 138 | if (weeksTotal !== undefined) { 139 | if (weeksTotal.length > 0) { 140 | if (re.test(fromdate, todate) !== true) { 141 | weeksInterval = weeksTotal.slice(-weeks) 142 | columnDate = `<${weeks} weeks` 143 | fileDate = `${weeks}-weeks` 144 | logDate = `last ${weeks} weeks` 145 | } else { 146 | to = new Date(todate).getTime() / 1000 147 | from = new Date(fromdate).getTime() / 1000 148 | for (const element of weeksTotal) { 149 | if (element[0] >= from && element[0] <= to) { 150 | weeksInterval.push(element) 151 | } 152 | columnDate = `${fromdate} to ${todate}` 153 | fileDate = `${fromdate}-to-${todate}` 154 | logDate = `${fromdate} to ${todate}` 155 | } 156 | } 157 | 158 | intervalTotal = weeksInterval.reduce((r, a) => a.map((b, i) => (r[i] || 0) + b), []).slice(1) 159 | alltimeTotal = weeksTotal.reduce((r, a) => a.map((b, i) => (r[i] || 0) + b), []).slice(1) 160 | 161 | const additions = intervalTotal[0] 162 | const deletions = Math.abs(intervalTotal[1]) 163 | const alltimeAdditions = alltimeTotal[0] 164 | const alltimeDeletions = Math.abs(alltimeTotal[1]) 165 | const repoName = repo.name 166 | const createdDate = repo.createdAt.substr(0, 10) 167 | 168 | let primaryLanguage 169 | let allLanguages 170 | if (repo.primaryLanguage !== null) { 171 | primaryLanguage = repo.primaryLanguage.name 172 | } 173 | 174 | if (repo.languages !== null) { 175 | allLanguages = repo.languages.nodes.map((language) => language.name).join(', ') 176 | } 177 | sumArray.push({ repoName, additions, deletions, alltimeAdditions, alltimeDeletions, createdDate, primaryLanguage, allLanguages }) 178 | console.log(repoName) 179 | } 180 | } 181 | } while (response.status === 202) 182 | } 183 | } catch (error) { 184 | core.setFailed(error.message) 185 | } 186 | } 187 | 188 | // Create and push CSV report 189 | async function sortpushTotals(sumArray) { 190 | try { 191 | const columns = { 192 | repoName: 'Repository', 193 | additions: `Lines added (${columnDate})`, 194 | deletions: `Lines deleted (${columnDate})`, 195 | alltimeAdditions: 'All time lines added', 196 | alltimeDeletions: 'All time lines deleted', 197 | primaryLanguage: 'Primary language', 198 | allLanguages: 'All languages', 199 | createdDate: 'Repo creation date' 200 | } 201 | 202 | const sortArray = orderBy(sumArray, [sortColumn], [sortOrder]) 203 | const csv = stringify(sortArray, { 204 | header: true, 205 | columns: columns 206 | }) 207 | 208 | const reportPath = `reports/${org}-${new Date().toISOString().substring(0, 19) + 'Z'}-${fileDate}.csv` 209 | const opts = { 210 | owner, 211 | repo, 212 | path: reportPath, 213 | message: `${new Date().toISOString().slice(0, 10)} code frequency report`, 214 | content: Buffer.from(csv).toString('base64'), 215 | committer: { 216 | name: committerName, 217 | email: committerEmail 218 | } 219 | } 220 | 221 | console.log(`Pushing CSV report to repository path: ${reportPath}`) 222 | 223 | await octokit.rest.repos.createOrUpdateFileContents(opts) 224 | } catch (error) { 225 | core.setFailed(error.message) 226 | } 227 | } 228 | 229 | // Create and push optional JSON report 230 | async function json(sumArray) { 231 | try { 232 | const reportPath = `reports/${org}-${new Date().toISOString().substring(0, 19) + 'Z'}-${fileDate}.json` 233 | const opts = { 234 | owner, 235 | repo, 236 | path: reportPath, 237 | message: `${new Date().toISOString().slice(0, 10)} repo collaborator report`, 238 | content: Buffer.from(JSON.stringify(sumArray, null, 2)).toString('base64'), 239 | committer: { 240 | name: committerName, 241 | email: committerEmail 242 | } 243 | } 244 | 245 | console.log(`Pushing JSON report to repository path: ${reportPath}`) 246 | 247 | await octokit.rest.repos.createOrUpdateFileContents(opts) 248 | } catch (error) { 249 | core.setFailed(error.message) 250 | } 251 | } 252 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GitHub Organization Code Frequency Report Action 2 | 3 | > A GitHub Action to generate a report that contains code frequency metrics and programming languages used per repository belonging to a GitHub organization. 4 | 5 | ## Usage 6 | 7 | The example [workflow](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions) below runs on a monthly [schedule](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events) using the amount of weeks as an interval set in the workflow (default 4 weeks) and alternatively can also be triggered manually using a [workflow_dispatch](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#manual-events) event. 8 | 9 | ```yml 10 | name: Code Frequency Action 11 | 12 | on: 13 | schedule: 14 | # Runs on the first day of the month at 00:00 UTC 15 | # 16 | # ┌────────────── minute 17 | # │ ┌──────────── hour 18 | # │ │ ┌────────── day (month) 19 | # │ │ │ ┌──────── month 20 | # │ │ │ │ ┌────── day (week) 21 | - cron: '0 0 1 * *' 22 | workflow_dispatch: 23 | inputs: 24 | fromdate: 25 | description: 'Optional interval start date (format: yyyy-mm-dd)' 26 | required: false # Skipped if workflow dispatch input is not provided 27 | todate: 28 | description: 'Optional interval end date (format: yyyy-mm-dd)' 29 | required: false # Skipped if workflow dispatch input is not provided 30 | 31 | jobs: 32 | code-frequency-report: 33 | runs-on: ubuntu-latest 34 | 35 | steps: 36 | - name: Checkout 37 | uses: actions/checkout@v3 38 | 39 | - name: Code Frequency Report 40 | uses: nicklegan/github-org-code-frequency-action@v2.1.0 41 | with: 42 | token: ${{ secrets.ORG_TOKEN }} 43 | fromdate: ${{ github.event.inputs.fromdate }} # Used for workflow dispatch input 44 | todate: ${{ github.event.inputs.todate }} # Used for workflow dispatch input 45 | # org: '' 46 | # weeks: '4' 47 | # sort: 'additions' 48 | # sort-order: 'desc' 49 | # json: 'false' 50 | # appid: ${{ secrets.APPID }} 51 | # privatekey: ${{ secrets.PRIVATEKEY }} 52 | # installationid: ${{ secrets.INSTALLATIONID }} 53 | ``` 54 | 55 | ## GitHub secrets 56 | 57 | | Name | Value | Required | 58 | | :------------------- | :------------------------------------------------- | :------- | 59 | | `ORG_TOKEN` | A `repo`, `read:org`scoped [Personal Access Token] | `true` | 60 | | `ACTIONS_STEP_DEBUG` | `true` [Enables diagnostic logging] | `false` | 61 | 62 | [personal access token]: https://github.com/settings/tokens/new?scopes=repo,read:org&description=Code+Frequency+Action 'Personal Access Token' 63 | [enables diagnostic logging]: https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging#enabling-runner-diagnostic-logging 'Enabling runner diagnostic logging' 64 | 65 | :bulb: Disable [token expiration](https://github.blog/changelog/2021-07-26-expiration-options-for-personal-access-tokens/) to avoid failed workflow runs when running on a schedule. 66 | 67 | ## Action inputs 68 | 69 | | Name | Description | Default | Options | Required | 70 | | :---------------- | :--------------------------------------------------------------------------------------- | :-------------------------- | :------------------------------------------------------------------------------------------------- | :------- | 71 | | `org` | Organization different than workflow context | | | `false` | 72 | | `weeks` | Amount of weeks in the past to collect data for **(weeks start on Sunday 00:00:00 GMT)** | `4` | | `false` | 73 | | `sort` | Column used to sort the acquired code frequency data | `additions` | `repoName, additions, deletions, alltimeAdditions, alltimeDeletions, primaryLanguage, createdDate` | `false` | 74 | | `sort-order` | Selected column sorting direction | `desc` | `desc, asc` | `false` | 75 | | `json` | Generate an additional report in JSON format | `false` | `true, false` | `false` | 76 | | `committer-name` | The name of the committer that will appear in the Git history | `github-actions` | | `false` | 77 | | `committer-email` | The committer email that will appear in the Git history | `github-actions@github.com` | | `false` | 78 | 79 | ## Workflow dispatch inputs 80 | 81 | The additional option to retrieve code frequency data using a custom date interval. 82 | If the below fields are left empty during [workflow dispatch input](https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/), the default interval option of set weeks from the current date configured in `main.yml` will be used instead. 83 | 84 | :bulb: The result data includes the weeks which have their start date **(Sunday 00:00:00 GMT)** within the set interval. 85 | 86 | | Name | Value | Required | 87 | | :----------------------------- | :-------------------------------------- | :------- | 88 | | `Optional interval start date` | A date matching the format `yyyy-mm-dd` | `false` | 89 | | `Optional interval end date` | A date matching the format `yyyy-mm-dd` | `false` | 90 | 91 | ## CSV/JSON layout 92 | 93 | The results of the 2nd and 3rd report column will be the sum of code frequency date for the selected interval per organization repository. 94 | 95 | | Column | JSON | Description | 96 | | :------------------------- | :----------------- | :-------------------------------------------------- | 97 | | `Repository` | `repoName` | Organization owned repository | 98 | | `Lines added (interval)` | `additions` | Number of lines of code added during set interval | 99 | | `Lines deleted (interval)` | `deletions` | Number of lines of code deleted during set interval | 100 | | `All time lines added` | `alltimeAdditions` | Number of lines of code added since repo creation | 101 | | `All time lines deleted` | `alltimeDeletions` | Number of lines of code deleted since repo creation | 102 | | `Primary language` | `primaryLanguage` | The primary programming language used in the repo | 103 | | `All languages` | `allLanguages` | All programming languages used in the repo | 104 | | `Repo creation date` | `createdDate` | Date the repo has been created | 105 | 106 | A CSV report file to be saved in the repository **reports** folder using the following naming format: **`organization`-`date`-`interval`.csv**. 107 | 108 | ## GitHub App authentication 109 | 110 | As an alternative you can use GitHub App authentication to generate the report. 111 | For larger organizations it is recommended to use this method as more API requests per hour are allowed which will avoid running into [rate limit](https://docs.github.com/developers/apps/building-github-apps/rate-limits-for-github-apps) errors. 112 | 113 | [Register](https://docs.github.com/developers/apps/building-github-apps/creating-a-github-app) a new organization/personal owned GitHub App with the below permissions: 114 | 115 | | GitHub App Permission | Access | 116 | | :---------------------------------------- | :--------------- | 117 | | `Repository Permissions:Contents` | `read and write` | 118 | | `Organization Permissions:Administration` | `read` | 119 | 120 | After registration install the GitHub App to your organization. Store the below App values as secrets. 121 | 122 | ### GitHub App secrets 123 | 124 | | Name | Value | Required | 125 | | :--------------- | :-------------------------------- | :------- | 126 | | `APPID` | GitHub App ID number | `true` | 127 | | `PRIVATEKEY` | Content of private key .pem file | `true` | 128 | | `INSTALLATIONID` | GitHub App installation ID number | `true` | 129 | -------------------------------------------------------------------------------- /dist/licenses.txt: -------------------------------------------------------------------------------- 1 | @actions/core 2 | MIT 3 | The MIT License (MIT) 4 | 5 | Copyright 2019 GitHub 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | 13 | @actions/github 14 | MIT 15 | The MIT License (MIT) 16 | 17 | Copyright 2019 GitHub 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 20 | 21 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | 25 | @actions/http-client 26 | MIT 27 | Actions Http Client for Node.js 28 | 29 | Copyright (c) GitHub, Inc. 30 | 31 | All rights reserved. 32 | 33 | MIT License 34 | 35 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 36 | associated documentation files (the "Software"), to deal in the Software without restriction, 37 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 38 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 39 | subject to the following conditions: 40 | 41 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 44 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 45 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 46 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 47 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 48 | 49 | 50 | @octokit/auth-app 51 | MIT 52 | The MIT License 53 | 54 | Copyright (c) 2019 Octokit contributors 55 | 56 | Permission is hereby granted, free of charge, to any person obtaining a copy 57 | of this software and associated documentation files (the "Software"), to deal 58 | in the Software without restriction, including without limitation the rights 59 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 60 | copies of the Software, and to permit persons to whom the Software is 61 | furnished to do so, subject to the following conditions: 62 | 63 | The above copyright notice and this permission notice shall be included in 64 | all copies or substantial portions of the Software. 65 | 66 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 67 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 68 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 69 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 70 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 71 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 72 | THE SOFTWARE. 73 | 74 | 75 | @octokit/auth-oauth-app 76 | MIT 77 | The MIT License 78 | 79 | Copyright (c) 2019 Octokit contributors 80 | 81 | Permission is hereby granted, free of charge, to any person obtaining a copy 82 | of this software and associated documentation files (the "Software"), to deal 83 | in the Software without restriction, including without limitation the rights 84 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 85 | copies of the Software, and to permit persons to whom the Software is 86 | furnished to do so, subject to the following conditions: 87 | 88 | The above copyright notice and this permission notice shall be included in 89 | all copies or substantial portions of the Software. 90 | 91 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 92 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 93 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 94 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 95 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 96 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 97 | THE SOFTWARE. 98 | 99 | 100 | @octokit/auth-oauth-device 101 | MIT 102 | MIT License 103 | 104 | Copyright (c) 2021 Octokit contributors 105 | 106 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 107 | 108 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 109 | 110 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 111 | 112 | 113 | @octokit/auth-oauth-user 114 | MIT 115 | MIT License 116 | 117 | Copyright (c) 2021 Octokit contributors 118 | 119 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 120 | 121 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 122 | 123 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 124 | 125 | 126 | @octokit/auth-token 127 | MIT 128 | The MIT License 129 | 130 | Copyright (c) 2019 Octokit contributors 131 | 132 | Permission is hereby granted, free of charge, to any person obtaining a copy 133 | of this software and associated documentation files (the "Software"), to deal 134 | in the Software without restriction, including without limitation the rights 135 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 136 | copies of the Software, and to permit persons to whom the Software is 137 | furnished to do so, subject to the following conditions: 138 | 139 | The above copyright notice and this permission notice shall be included in 140 | all copies or substantial portions of the Software. 141 | 142 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 143 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 144 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 145 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 146 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 147 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 148 | THE SOFTWARE. 149 | 150 | 151 | @octokit/core 152 | MIT 153 | The MIT License 154 | 155 | Copyright (c) 2019 Octokit contributors 156 | 157 | Permission is hereby granted, free of charge, to any person obtaining a copy 158 | of this software and associated documentation files (the "Software"), to deal 159 | in the Software without restriction, including without limitation the rights 160 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 161 | copies of the Software, and to permit persons to whom the Software is 162 | furnished to do so, subject to the following conditions: 163 | 164 | The above copyright notice and this permission notice shall be included in 165 | all copies or substantial portions of the Software. 166 | 167 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 168 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 169 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 170 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 171 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 172 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 173 | THE SOFTWARE. 174 | 175 | 176 | @octokit/endpoint 177 | MIT 178 | The MIT License 179 | 180 | Copyright (c) 2018 Octokit contributors 181 | 182 | Permission is hereby granted, free of charge, to any person obtaining a copy 183 | of this software and associated documentation files (the "Software"), to deal 184 | in the Software without restriction, including without limitation the rights 185 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 186 | copies of the Software, and to permit persons to whom the Software is 187 | furnished to do so, subject to the following conditions: 188 | 189 | The above copyright notice and this permission notice shall be included in 190 | all copies or substantial portions of the Software. 191 | 192 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 193 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 194 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 195 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 196 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 197 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 198 | THE SOFTWARE. 199 | 200 | 201 | @octokit/graphql 202 | MIT 203 | The MIT License 204 | 205 | Copyright (c) 2018 Octokit contributors 206 | 207 | Permission is hereby granted, free of charge, to any person obtaining a copy 208 | of this software and associated documentation files (the "Software"), to deal 209 | in the Software without restriction, including without limitation the rights 210 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 211 | copies of the Software, and to permit persons to whom the Software is 212 | furnished to do so, subject to the following conditions: 213 | 214 | The above copyright notice and this permission notice shall be included in 215 | all copies or substantial portions of the Software. 216 | 217 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 218 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 219 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 220 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 221 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 222 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 223 | THE SOFTWARE. 224 | 225 | 226 | @octokit/oauth-authorization-url 227 | MIT 228 | The MIT License 229 | 230 | Copyright (c) 2019 Octokit contributors 231 | 232 | Permission is hereby granted, free of charge, to any person obtaining a copy 233 | of this software and associated documentation files (the "Software"), to deal 234 | in the Software without restriction, including without limitation the rights 235 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 236 | copies of the Software, and to permit persons to whom the Software is 237 | furnished to do so, subject to the following conditions: 238 | 239 | The above copyright notice and this permission notice shall be included in 240 | all copies or substantial portions of the Software. 241 | 242 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 243 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 244 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 245 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 246 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 247 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 248 | THE SOFTWARE. 249 | 250 | 251 | @octokit/oauth-methods 252 | MIT 253 | MIT License 254 | 255 | Copyright (c) 2021 Octokit contributors 256 | 257 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 258 | 259 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 260 | 261 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 262 | 263 | 264 | @octokit/plugin-paginate-rest 265 | MIT 266 | MIT License Copyright (c) 2019 Octokit contributors 267 | 268 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 269 | 270 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. 271 | 272 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 273 | 274 | 275 | @octokit/plugin-rest-endpoint-methods 276 | MIT 277 | MIT License Copyright (c) 2019 Octokit contributors 278 | 279 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 280 | 281 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. 282 | 283 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 284 | 285 | 286 | @octokit/request 287 | MIT 288 | The MIT License 289 | 290 | Copyright (c) 2018 Octokit contributors 291 | 292 | Permission is hereby granted, free of charge, to any person obtaining a copy 293 | of this software and associated documentation files (the "Software"), to deal 294 | in the Software without restriction, including without limitation the rights 295 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 296 | copies of the Software, and to permit persons to whom the Software is 297 | furnished to do so, subject to the following conditions: 298 | 299 | The above copyright notice and this permission notice shall be included in 300 | all copies or substantial portions of the Software. 301 | 302 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 303 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 304 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 305 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 306 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 307 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 308 | THE SOFTWARE. 309 | 310 | 311 | @octokit/request-error 312 | MIT 313 | The MIT License 314 | 315 | Copyright (c) 2019 Octokit contributors 316 | 317 | Permission is hereby granted, free of charge, to any person obtaining a copy 318 | of this software and associated documentation files (the "Software"), to deal 319 | in the Software without restriction, including without limitation the rights 320 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 321 | copies of the Software, and to permit persons to whom the Software is 322 | furnished to do so, subject to the following conditions: 323 | 324 | The above copyright notice and this permission notice shall be included in 325 | all copies or substantial portions of the Software. 326 | 327 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 328 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 329 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 330 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 331 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 332 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 333 | THE SOFTWARE. 334 | 335 | 336 | @vercel/ncc 337 | MIT 338 | Copyright 2018 ZEIT, Inc. 339 | 340 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 341 | 342 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 343 | 344 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 345 | 346 | before-after-hook 347 | Apache-2.0 348 | Apache License 349 | Version 2.0, January 2004 350 | http://www.apache.org/licenses/ 351 | 352 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 353 | 354 | 1. Definitions. 355 | 356 | "License" shall mean the terms and conditions for use, reproduction, 357 | and distribution as defined by Sections 1 through 9 of this document. 358 | 359 | "Licensor" shall mean the copyright owner or entity authorized by 360 | the copyright owner that is granting the License. 361 | 362 | "Legal Entity" shall mean the union of the acting entity and all 363 | other entities that control, are controlled by, or are under common 364 | control with that entity. For the purposes of this definition, 365 | "control" means (i) the power, direct or indirect, to cause the 366 | direction or management of such entity, whether by contract or 367 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 368 | outstanding shares, or (iii) beneficial ownership of such entity. 369 | 370 | "You" (or "Your") shall mean an individual or Legal Entity 371 | exercising permissions granted by this License. 372 | 373 | "Source" form shall mean the preferred form for making modifications, 374 | including but not limited to software source code, documentation 375 | source, and configuration files. 376 | 377 | "Object" form shall mean any form resulting from mechanical 378 | transformation or translation of a Source form, including but 379 | not limited to compiled object code, generated documentation, 380 | and conversions to other media types. 381 | 382 | "Work" shall mean the work of authorship, whether in Source or 383 | Object form, made available under the License, as indicated by a 384 | copyright notice that is included in or attached to the work 385 | (an example is provided in the Appendix below). 386 | 387 | "Derivative Works" shall mean any work, whether in Source or Object 388 | form, that is based on (or derived from) the Work and for which the 389 | editorial revisions, annotations, elaborations, or other modifications 390 | represent, as a whole, an original work of authorship. For the purposes 391 | of this License, Derivative Works shall not include works that remain 392 | separable from, or merely link (or bind by name) to the interfaces of, 393 | the Work and Derivative Works thereof. 394 | 395 | "Contribution" shall mean any work of authorship, including 396 | the original version of the Work and any modifications or additions 397 | to that Work or Derivative Works thereof, that is intentionally 398 | submitted to Licensor for inclusion in the Work by the copyright owner 399 | or by an individual or Legal Entity authorized to submit on behalf of 400 | the copyright owner. For the purposes of this definition, "submitted" 401 | means any form of electronic, verbal, or written communication sent 402 | to the Licensor or its representatives, including but not limited to 403 | communication on electronic mailing lists, source code control systems, 404 | and issue tracking systems that are managed by, or on behalf of, the 405 | Licensor for the purpose of discussing and improving the Work, but 406 | excluding communication that is conspicuously marked or otherwise 407 | designated in writing by the copyright owner as "Not a Contribution." 408 | 409 | "Contributor" shall mean Licensor and any individual or Legal Entity 410 | on behalf of whom a Contribution has been received by Licensor and 411 | subsequently incorporated within the Work. 412 | 413 | 2. Grant of Copyright License. Subject to the terms and conditions of 414 | this License, each Contributor hereby grants to You a perpetual, 415 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 416 | copyright license to reproduce, prepare Derivative Works of, 417 | publicly display, publicly perform, sublicense, and distribute the 418 | Work and such Derivative Works in Source or Object form. 419 | 420 | 3. Grant of Patent License. Subject to the terms and conditions of 421 | this License, each Contributor hereby grants to You a perpetual, 422 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 423 | (except as stated in this section) patent license to make, have made, 424 | use, offer to sell, sell, import, and otherwise transfer the Work, 425 | where such license applies only to those patent claims licensable 426 | by such Contributor that are necessarily infringed by their 427 | Contribution(s) alone or by combination of their Contribution(s) 428 | with the Work to which such Contribution(s) was submitted. If You 429 | institute patent litigation against any entity (including a 430 | cross-claim or counterclaim in a lawsuit) alleging that the Work 431 | or a Contribution incorporated within the Work constitutes direct 432 | or contributory patent infringement, then any patent licenses 433 | granted to You under this License for that Work shall terminate 434 | as of the date such litigation is filed. 435 | 436 | 4. Redistribution. You may reproduce and distribute copies of the 437 | Work or Derivative Works thereof in any medium, with or without 438 | modifications, and in Source or Object form, provided that You 439 | meet the following conditions: 440 | 441 | (a) You must give any other recipients of the Work or 442 | Derivative Works a copy of this License; and 443 | 444 | (b) You must cause any modified files to carry prominent notices 445 | stating that You changed the files; and 446 | 447 | (c) You must retain, in the Source form of any Derivative Works 448 | that You distribute, all copyright, patent, trademark, and 449 | attribution notices from the Source form of the Work, 450 | excluding those notices that do not pertain to any part of 451 | the Derivative Works; and 452 | 453 | (d) If the Work includes a "NOTICE" text file as part of its 454 | distribution, then any Derivative Works that You distribute must 455 | include a readable copy of the attribution notices contained 456 | within such NOTICE file, excluding those notices that do not 457 | pertain to any part of the Derivative Works, in at least one 458 | of the following places: within a NOTICE text file distributed 459 | as part of the Derivative Works; within the Source form or 460 | documentation, if provided along with the Derivative Works; or, 461 | within a display generated by the Derivative Works, if and 462 | wherever such third-party notices normally appear. The contents 463 | of the NOTICE file are for informational purposes only and 464 | do not modify the License. You may add Your own attribution 465 | notices within Derivative Works that You distribute, alongside 466 | or as an addendum to the NOTICE text from the Work, provided 467 | that such additional attribution notices cannot be construed 468 | as modifying the License. 469 | 470 | You may add Your own copyright statement to Your modifications and 471 | may provide additional or different license terms and conditions 472 | for use, reproduction, or distribution of Your modifications, or 473 | for any such Derivative Works as a whole, provided Your use, 474 | reproduction, and distribution of the Work otherwise complies with 475 | the conditions stated in this License. 476 | 477 | 5. Submission of Contributions. Unless You explicitly state otherwise, 478 | any Contribution intentionally submitted for inclusion in the Work 479 | by You to the Licensor shall be under the terms and conditions of 480 | this License, without any additional terms or conditions. 481 | Notwithstanding the above, nothing herein shall supersede or modify 482 | the terms of any separate license agreement you may have executed 483 | with Licensor regarding such Contributions. 484 | 485 | 6. Trademarks. This License does not grant permission to use the trade 486 | names, trademarks, service marks, or product names of the Licensor, 487 | except as required for reasonable and customary use in describing the 488 | origin of the Work and reproducing the content of the NOTICE file. 489 | 490 | 7. Disclaimer of Warranty. Unless required by applicable law or 491 | agreed to in writing, Licensor provides the Work (and each 492 | Contributor provides its Contributions) on an "AS IS" BASIS, 493 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 494 | implied, including, without limitation, any warranties or conditions 495 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 496 | PARTICULAR PURPOSE. You are solely responsible for determining the 497 | appropriateness of using or redistributing the Work and assume any 498 | risks associated with Your exercise of permissions under this License. 499 | 500 | 8. Limitation of Liability. In no event and under no legal theory, 501 | whether in tort (including negligence), contract, or otherwise, 502 | unless required by applicable law (such as deliberate and grossly 503 | negligent acts) or agreed to in writing, shall any Contributor be 504 | liable to You for damages, including any direct, indirect, special, 505 | incidental, or consequential damages of any character arising as a 506 | result of this License or out of the use or inability to use the 507 | Work (including but not limited to damages for loss of goodwill, 508 | work stoppage, computer failure or malfunction, or any and all 509 | other commercial damages or losses), even if such Contributor 510 | has been advised of the possibility of such damages. 511 | 512 | 9. Accepting Warranty or Additional Liability. While redistributing 513 | the Work or Derivative Works thereof, You may choose to offer, 514 | and charge a fee for, acceptance of support, warranty, indemnity, 515 | or other liability obligations and/or rights consistent with this 516 | License. However, in accepting such obligations, You may act only 517 | on Your own behalf and on Your sole responsibility, not on behalf 518 | of any other Contributor, and only if You agree to indemnify, 519 | defend, and hold each Contributor harmless for any liability 520 | incurred by, or claims asserted against, such Contributor by reason 521 | of your accepting any such warranty or additional liability. 522 | 523 | END OF TERMS AND CONDITIONS 524 | 525 | APPENDIX: How to apply the Apache License to your work. 526 | 527 | To apply the Apache License to your work, attach the following 528 | boilerplate notice, with the fields enclosed by brackets "{}" 529 | replaced with your own identifying information. (Don't include 530 | the brackets!) The text should be enclosed in the appropriate 531 | comment syntax for the file format. We also recommend that a 532 | file or class name and description of purpose be included on the 533 | same "printed page" as the copyright notice for easier 534 | identification within third-party archives. 535 | 536 | Copyright 2018 Gregor Martynus and other contributors. 537 | 538 | Licensed under the Apache License, Version 2.0 (the "License"); 539 | you may not use this file except in compliance with the License. 540 | You may obtain a copy of the License at 541 | 542 | http://www.apache.org/licenses/LICENSE-2.0 543 | 544 | Unless required by applicable law or agreed to in writing, software 545 | distributed under the License is distributed on an "AS IS" BASIS, 546 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 547 | See the License for the specific language governing permissions and 548 | limitations under the License. 549 | 550 | 551 | btoa-lite 552 | MIT 553 | This software is released under the MIT license: 554 | 555 | Permission is hereby granted, free of charge, to any person obtaining a copy of 556 | this software and associated documentation files (the "Software"), to deal in 557 | the Software without restriction, including without limitation the rights to 558 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 559 | the Software, and to permit persons to whom the Software is furnished to do so, 560 | subject to the following conditions: 561 | 562 | The above copyright notice and this permission notice shall be included in all 563 | copies or substantial portions of the Software. 564 | 565 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 566 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 567 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 568 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 569 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 570 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 571 | 572 | 573 | buffer-equal-constant-time 574 | BSD-3-Clause 575 | Copyright (c) 2013, GoInstant Inc., a salesforce.com company 576 | All rights reserved. 577 | 578 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 579 | 580 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 581 | 582 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 583 | 584 | * Neither the name of salesforce.com, nor GoInstant, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 585 | 586 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 587 | 588 | 589 | csv-stringify 590 | MIT 591 | The MIT License (MIT) 592 | 593 | Copyright (c) 2010 Adaltas 594 | 595 | Permission is hereby granted, free of charge, to any person obtaining a copy 596 | of this software and associated documentation files (the "Software"), to deal 597 | in the Software without restriction, including without limitation the rights 598 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 599 | copies of the Software, and to permit persons to whom the Software is 600 | furnished to do so, subject to the following conditions: 601 | 602 | The above copyright notice and this permission notice shall be included in all 603 | copies or substantial portions of the Software. 604 | 605 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 606 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 607 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 608 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 609 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 610 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 611 | SOFTWARE. 612 | 613 | 614 | deprecation 615 | ISC 616 | The ISC License 617 | 618 | Copyright (c) Gregor Martynus and contributors 619 | 620 | Permission to use, copy, modify, and/or distribute this software for any 621 | purpose with or without fee is hereby granted, provided that the above 622 | copyright notice and this permission notice appear in all copies. 623 | 624 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 625 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 626 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 627 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 628 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 629 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 630 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 631 | 632 | 633 | ecdsa-sig-formatter 634 | Apache-2.0 635 | Apache License 636 | Version 2.0, January 2004 637 | http://www.apache.org/licenses/ 638 | 639 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 640 | 641 | 1. Definitions. 642 | 643 | "License" shall mean the terms and conditions for use, reproduction, 644 | and distribution as defined by Sections 1 through 9 of this document. 645 | 646 | "Licensor" shall mean the copyright owner or entity authorized by 647 | the copyright owner that is granting the License. 648 | 649 | "Legal Entity" shall mean the union of the acting entity and all 650 | other entities that control, are controlled by, or are under common 651 | control with that entity. For the purposes of this definition, 652 | "control" means (i) the power, direct or indirect, to cause the 653 | direction or management of such entity, whether by contract or 654 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 655 | outstanding shares, or (iii) beneficial ownership of such entity. 656 | 657 | "You" (or "Your") shall mean an individual or Legal Entity 658 | exercising permissions granted by this License. 659 | 660 | "Source" form shall mean the preferred form for making modifications, 661 | including but not limited to software source code, documentation 662 | source, and configuration files. 663 | 664 | "Object" form shall mean any form resulting from mechanical 665 | transformation or translation of a Source form, including but 666 | not limited to compiled object code, generated documentation, 667 | and conversions to other media types. 668 | 669 | "Work" shall mean the work of authorship, whether in Source or 670 | Object form, made available under the License, as indicated by a 671 | copyright notice that is included in or attached to the work 672 | (an example is provided in the Appendix below). 673 | 674 | "Derivative Works" shall mean any work, whether in Source or Object 675 | form, that is based on (or derived from) the Work and for which the 676 | editorial revisions, annotations, elaborations, or other modifications 677 | represent, as a whole, an original work of authorship. For the purposes 678 | of this License, Derivative Works shall not include works that remain 679 | separable from, or merely link (or bind by name) to the interfaces of, 680 | the Work and Derivative Works thereof. 681 | 682 | "Contribution" shall mean any work of authorship, including 683 | the original version of the Work and any modifications or additions 684 | to that Work or Derivative Works thereof, that is intentionally 685 | submitted to Licensor for inclusion in the Work by the copyright owner 686 | or by an individual or Legal Entity authorized to submit on behalf of 687 | the copyright owner. For the purposes of this definition, "submitted" 688 | means any form of electronic, verbal, or written communication sent 689 | to the Licensor or its representatives, including but not limited to 690 | communication on electronic mailing lists, source code control systems, 691 | and issue tracking systems that are managed by, or on behalf of, the 692 | Licensor for the purpose of discussing and improving the Work, but 693 | excluding communication that is conspicuously marked or otherwise 694 | designated in writing by the copyright owner as "Not a Contribution." 695 | 696 | "Contributor" shall mean Licensor and any individual or Legal Entity 697 | on behalf of whom a Contribution has been received by Licensor and 698 | subsequently incorporated within the Work. 699 | 700 | 2. Grant of Copyright License. Subject to the terms and conditions of 701 | this License, each Contributor hereby grants to You a perpetual, 702 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 703 | copyright license to reproduce, prepare Derivative Works of, 704 | publicly display, publicly perform, sublicense, and distribute the 705 | Work and such Derivative Works in Source or Object form. 706 | 707 | 3. Grant of Patent License. Subject to the terms and conditions of 708 | this License, each Contributor hereby grants to You a perpetual, 709 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 710 | (except as stated in this section) patent license to make, have made, 711 | use, offer to sell, sell, import, and otherwise transfer the Work, 712 | where such license applies only to those patent claims licensable 713 | by such Contributor that are necessarily infringed by their 714 | Contribution(s) alone or by combination of their Contribution(s) 715 | with the Work to which such Contribution(s) was submitted. If You 716 | institute patent litigation against any entity (including a 717 | cross-claim or counterclaim in a lawsuit) alleging that the Work 718 | or a Contribution incorporated within the Work constitutes direct 719 | or contributory patent infringement, then any patent licenses 720 | granted to You under this License for that Work shall terminate 721 | as of the date such litigation is filed. 722 | 723 | 4. Redistribution. You may reproduce and distribute copies of the 724 | Work or Derivative Works thereof in any medium, with or without 725 | modifications, and in Source or Object form, provided that You 726 | meet the following conditions: 727 | 728 | (a) You must give any other recipients of the Work or 729 | Derivative Works a copy of this License; and 730 | 731 | (b) You must cause any modified files to carry prominent notices 732 | stating that You changed the files; and 733 | 734 | (c) You must retain, in the Source form of any Derivative Works 735 | that You distribute, all copyright, patent, trademark, and 736 | attribution notices from the Source form of the Work, 737 | excluding those notices that do not pertain to any part of 738 | the Derivative Works; and 739 | 740 | (d) If the Work includes a "NOTICE" text file as part of its 741 | distribution, then any Derivative Works that You distribute must 742 | include a readable copy of the attribution notices contained 743 | within such NOTICE file, excluding those notices that do not 744 | pertain to any part of the Derivative Works, in at least one 745 | of the following places: within a NOTICE text file distributed 746 | as part of the Derivative Works; within the Source form or 747 | documentation, if provided along with the Derivative Works; or, 748 | within a display generated by the Derivative Works, if and 749 | wherever such third-party notices normally appear. The contents 750 | of the NOTICE file are for informational purposes only and 751 | do not modify the License. You may add Your own attribution 752 | notices within Derivative Works that You distribute, alongside 753 | or as an addendum to the NOTICE text from the Work, provided 754 | that such additional attribution notices cannot be construed 755 | as modifying the License. 756 | 757 | You may add Your own copyright statement to Your modifications and 758 | may provide additional or different license terms and conditions 759 | for use, reproduction, or distribution of Your modifications, or 760 | for any such Derivative Works as a whole, provided Your use, 761 | reproduction, and distribution of the Work otherwise complies with 762 | the conditions stated in this License. 763 | 764 | 5. Submission of Contributions. Unless You explicitly state otherwise, 765 | any Contribution intentionally submitted for inclusion in the Work 766 | by You to the Licensor shall be under the terms and conditions of 767 | this License, without any additional terms or conditions. 768 | Notwithstanding the above, nothing herein shall supersede or modify 769 | the terms of any separate license agreement you may have executed 770 | with Licensor regarding such Contributions. 771 | 772 | 6. Trademarks. This License does not grant permission to use the trade 773 | names, trademarks, service marks, or product names of the Licensor, 774 | except as required for reasonable and customary use in describing the 775 | origin of the Work and reproducing the content of the NOTICE file. 776 | 777 | 7. Disclaimer of Warranty. Unless required by applicable law or 778 | agreed to in writing, Licensor provides the Work (and each 779 | Contributor provides its Contributions) on an "AS IS" BASIS, 780 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 781 | implied, including, without limitation, any warranties or conditions 782 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 783 | PARTICULAR PURPOSE. You are solely responsible for determining the 784 | appropriateness of using or redistributing the Work and assume any 785 | risks associated with Your exercise of permissions under this License. 786 | 787 | 8. Limitation of Liability. In no event and under no legal theory, 788 | whether in tort (including negligence), contract, or otherwise, 789 | unless required by applicable law (such as deliberate and grossly 790 | negligent acts) or agreed to in writing, shall any Contributor be 791 | liable to You for damages, including any direct, indirect, special, 792 | incidental, or consequential damages of any character arising as a 793 | result of this License or out of the use or inability to use the 794 | Work (including but not limited to damages for loss of goodwill, 795 | work stoppage, computer failure or malfunction, or any and all 796 | other commercial damages or losses), even if such Contributor 797 | has been advised of the possibility of such damages. 798 | 799 | 9. Accepting Warranty or Additional Liability. While redistributing 800 | the Work or Derivative Works thereof, You may choose to offer, 801 | and charge a fee for, acceptance of support, warranty, indemnity, 802 | or other liability obligations and/or rights consistent with this 803 | License. However, in accepting such obligations, You may act only 804 | on Your own behalf and on Your sole responsibility, not on behalf 805 | of any other Contributor, and only if You agree to indemnify, 806 | defend, and hold each Contributor harmless for any liability 807 | incurred by, or claims asserted against, such Contributor by reason 808 | of your accepting any such warranty or additional liability. 809 | 810 | END OF TERMS AND CONDITIONS 811 | 812 | APPENDIX: How to apply the Apache License to your work. 813 | 814 | To apply the Apache License to your work, attach the following 815 | boilerplate notice, with the fields enclosed by brackets "{}" 816 | replaced with your own identifying information. (Don't include 817 | the brackets!) The text should be enclosed in the appropriate 818 | comment syntax for the file format. We also recommend that a 819 | file or class name and description of purpose be included on the 820 | same "printed page" as the copyright notice for easier 821 | identification within third-party archives. 822 | 823 | Copyright 2015 D2L Corporation 824 | 825 | Licensed under the Apache License, Version 2.0 (the "License"); 826 | you may not use this file except in compliance with the License. 827 | You may obtain a copy of the License at 828 | 829 | http://www.apache.org/licenses/LICENSE-2.0 830 | 831 | Unless required by applicable law or agreed to in writing, software 832 | distributed under the License is distributed on an "AS IS" BASIS, 833 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 834 | See the License for the specific language governing permissions and 835 | limitations under the License. 836 | 837 | 838 | is-plain-object 839 | MIT 840 | The MIT License (MIT) 841 | 842 | Copyright (c) 2014-2017, Jon Schlinkert. 843 | 844 | Permission is hereby granted, free of charge, to any person obtaining a copy 845 | of this software and associated documentation files (the "Software"), to deal 846 | in the Software without restriction, including without limitation the rights 847 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 848 | copies of the Software, and to permit persons to whom the Software is 849 | furnished to do so, subject to the following conditions: 850 | 851 | The above copyright notice and this permission notice shall be included in 852 | all copies or substantial portions of the Software. 853 | 854 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 855 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 856 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 857 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 858 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 859 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 860 | THE SOFTWARE. 861 | 862 | 863 | jsonwebtoken 864 | MIT 865 | The MIT License (MIT) 866 | 867 | Copyright (c) 2015 Auth0, Inc. (http://auth0.com) 868 | 869 | Permission is hereby granted, free of charge, to any person obtaining a copy 870 | of this software and associated documentation files (the "Software"), to deal 871 | in the Software without restriction, including without limitation the rights 872 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 873 | copies of the Software, and to permit persons to whom the Software is 874 | furnished to do so, subject to the following conditions: 875 | 876 | The above copyright notice and this permission notice shall be included in all 877 | copies or substantial portions of the Software. 878 | 879 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 880 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 881 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 882 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 883 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 884 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 885 | SOFTWARE. 886 | 887 | 888 | jwa 889 | MIT 890 | Copyright (c) 2013 Brian J. Brennan 891 | 892 | Permission is hereby granted, free of charge, to any person obtaining a copy 893 | of this software and associated documentation files (the "Software"), to deal in 894 | the Software without restriction, including without limitation the rights to use, 895 | copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the 896 | Software, and to permit persons to whom the Software is furnished to do so, 897 | subject to the following conditions: 898 | 899 | The above copyright notice and this permission notice shall be included in all 900 | copies or substantial portions of the Software. 901 | 902 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 903 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 904 | PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 905 | FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 906 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 907 | 908 | 909 | jws 910 | MIT 911 | Copyright (c) 2013 Brian J. Brennan 912 | 913 | Permission is hereby granted, free of charge, to any person obtaining a copy 914 | of this software and associated documentation files (the "Software"), to deal in 915 | the Software without restriction, including without limitation the rights to use, 916 | copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the 917 | Software, and to permit persons to whom the Software is furnished to do so, 918 | subject to the following conditions: 919 | 920 | The above copyright notice and this permission notice shall be included in all 921 | copies or substantial portions of the Software. 922 | 923 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 924 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 925 | PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 926 | FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 927 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 928 | 929 | 930 | lodash.includes 931 | MIT 932 | Copyright jQuery Foundation and other contributors 933 | 934 | Based on Underscore.js, copyright Jeremy Ashkenas, 935 | DocumentCloud and Investigative Reporters & Editors 936 | 937 | This software consists of voluntary contributions made by many 938 | individuals. For exact contribution history, see the revision history 939 | available at https://github.com/lodash/lodash 940 | 941 | The following license applies to all parts of this software except as 942 | documented below: 943 | 944 | ==== 945 | 946 | Permission is hereby granted, free of charge, to any person obtaining 947 | a copy of this software and associated documentation files (the 948 | "Software"), to deal in the Software without restriction, including 949 | without limitation the rights to use, copy, modify, merge, publish, 950 | distribute, sublicense, and/or sell copies of the Software, and to 951 | permit persons to whom the Software is furnished to do so, subject to 952 | the following conditions: 953 | 954 | The above copyright notice and this permission notice shall be 955 | included in all copies or substantial portions of the Software. 956 | 957 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 958 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 959 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 960 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 961 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 962 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 963 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 964 | 965 | ==== 966 | 967 | Copyright and related rights for sample code are waived via CC0. Sample 968 | code is defined as all source code displayed within the prose of the 969 | documentation. 970 | 971 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 972 | 973 | ==== 974 | 975 | Files located in the node_modules and vendor directories are externally 976 | maintained libraries used by this software which have their own 977 | licenses; we recommend you read them, as their terms may differ from the 978 | terms above. 979 | 980 | 981 | lodash.isboolean 982 | MIT 983 | Copyright 2012-2016 The Dojo Foundation 984 | Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, 985 | DocumentCloud and Investigative Reporters & Editors 986 | 987 | Permission is hereby granted, free of charge, to any person obtaining 988 | a copy of this software and associated documentation files (the 989 | "Software"), to deal in the Software without restriction, including 990 | without limitation the rights to use, copy, modify, merge, publish, 991 | distribute, sublicense, and/or sell copies of the Software, and to 992 | permit persons to whom the Software is furnished to do so, subject to 993 | the following conditions: 994 | 995 | The above copyright notice and this permission notice shall be 996 | included in all copies or substantial portions of the Software. 997 | 998 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 999 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1000 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1001 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1002 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1003 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1004 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1005 | 1006 | 1007 | lodash.isinteger 1008 | MIT 1009 | Copyright jQuery Foundation and other contributors 1010 | 1011 | Based on Underscore.js, copyright Jeremy Ashkenas, 1012 | DocumentCloud and Investigative Reporters & Editors 1013 | 1014 | This software consists of voluntary contributions made by many 1015 | individuals. For exact contribution history, see the revision history 1016 | available at https://github.com/lodash/lodash 1017 | 1018 | The following license applies to all parts of this software except as 1019 | documented below: 1020 | 1021 | ==== 1022 | 1023 | Permission is hereby granted, free of charge, to any person obtaining 1024 | a copy of this software and associated documentation files (the 1025 | "Software"), to deal in the Software without restriction, including 1026 | without limitation the rights to use, copy, modify, merge, publish, 1027 | distribute, sublicense, and/or sell copies of the Software, and to 1028 | permit persons to whom the Software is furnished to do so, subject to 1029 | the following conditions: 1030 | 1031 | The above copyright notice and this permission notice shall be 1032 | included in all copies or substantial portions of the Software. 1033 | 1034 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1035 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1036 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1037 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1038 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1039 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1040 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1041 | 1042 | ==== 1043 | 1044 | Copyright and related rights for sample code are waived via CC0. Sample 1045 | code is defined as all source code displayed within the prose of the 1046 | documentation. 1047 | 1048 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 1049 | 1050 | ==== 1051 | 1052 | Files located in the node_modules and vendor directories are externally 1053 | maintained libraries used by this software which have their own 1054 | licenses; we recommend you read them, as their terms may differ from the 1055 | terms above. 1056 | 1057 | 1058 | lodash.isnumber 1059 | MIT 1060 | Copyright 2012-2016 The Dojo Foundation 1061 | Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, 1062 | DocumentCloud and Investigative Reporters & Editors 1063 | 1064 | Permission is hereby granted, free of charge, to any person obtaining 1065 | a copy of this software and associated documentation files (the 1066 | "Software"), to deal in the Software without restriction, including 1067 | without limitation the rights to use, copy, modify, merge, publish, 1068 | distribute, sublicense, and/or sell copies of the Software, and to 1069 | permit persons to whom the Software is furnished to do so, subject to 1070 | the following conditions: 1071 | 1072 | The above copyright notice and this permission notice shall be 1073 | included in all copies or substantial portions of the Software. 1074 | 1075 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1076 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1077 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1078 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1079 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1080 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1081 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1082 | 1083 | 1084 | lodash.isplainobject 1085 | MIT 1086 | Copyright jQuery Foundation and other contributors 1087 | 1088 | Based on Underscore.js, copyright Jeremy Ashkenas, 1089 | DocumentCloud and Investigative Reporters & Editors 1090 | 1091 | This software consists of voluntary contributions made by many 1092 | individuals. For exact contribution history, see the revision history 1093 | available at https://github.com/lodash/lodash 1094 | 1095 | The following license applies to all parts of this software except as 1096 | documented below: 1097 | 1098 | ==== 1099 | 1100 | Permission is hereby granted, free of charge, to any person obtaining 1101 | a copy of this software and associated documentation files (the 1102 | "Software"), to deal in the Software without restriction, including 1103 | without limitation the rights to use, copy, modify, merge, publish, 1104 | distribute, sublicense, and/or sell copies of the Software, and to 1105 | permit persons to whom the Software is furnished to do so, subject to 1106 | the following conditions: 1107 | 1108 | The above copyright notice and this permission notice shall be 1109 | included in all copies or substantial portions of the Software. 1110 | 1111 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1112 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1113 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1114 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1115 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1116 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1117 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1118 | 1119 | ==== 1120 | 1121 | Copyright and related rights for sample code are waived via CC0. Sample 1122 | code is defined as all source code displayed within the prose of the 1123 | documentation. 1124 | 1125 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 1126 | 1127 | ==== 1128 | 1129 | Files located in the node_modules and vendor directories are externally 1130 | maintained libraries used by this software which have their own 1131 | licenses; we recommend you read them, as their terms may differ from the 1132 | terms above. 1133 | 1134 | 1135 | lodash.isstring 1136 | MIT 1137 | Copyright 2012-2016 The Dojo Foundation 1138 | Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, 1139 | DocumentCloud and Investigative Reporters & Editors 1140 | 1141 | Permission is hereby granted, free of charge, to any person obtaining 1142 | a copy of this software and associated documentation files (the 1143 | "Software"), to deal in the Software without restriction, including 1144 | without limitation the rights to use, copy, modify, merge, publish, 1145 | distribute, sublicense, and/or sell copies of the Software, and to 1146 | permit persons to whom the Software is furnished to do so, subject to 1147 | the following conditions: 1148 | 1149 | The above copyright notice and this permission notice shall be 1150 | included in all copies or substantial portions of the Software. 1151 | 1152 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1153 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1154 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1155 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1156 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1157 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1158 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1159 | 1160 | 1161 | lodash.once 1162 | MIT 1163 | Copyright jQuery Foundation and other contributors 1164 | 1165 | Based on Underscore.js, copyright Jeremy Ashkenas, 1166 | DocumentCloud and Investigative Reporters & Editors 1167 | 1168 | This software consists of voluntary contributions made by many 1169 | individuals. For exact contribution history, see the revision history 1170 | available at https://github.com/lodash/lodash 1171 | 1172 | The following license applies to all parts of this software except as 1173 | documented below: 1174 | 1175 | ==== 1176 | 1177 | Permission is hereby granted, free of charge, to any person obtaining 1178 | a copy of this software and associated documentation files (the 1179 | "Software"), to deal in the Software without restriction, including 1180 | without limitation the rights to use, copy, modify, merge, publish, 1181 | distribute, sublicense, and/or sell copies of the Software, and to 1182 | permit persons to whom the Software is furnished to do so, subject to 1183 | the following conditions: 1184 | 1185 | The above copyright notice and this permission notice shall be 1186 | included in all copies or substantial portions of the Software. 1187 | 1188 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1189 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1190 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1191 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 1192 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 1193 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 1194 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1195 | 1196 | ==== 1197 | 1198 | Copyright and related rights for sample code are waived via CC0. Sample 1199 | code is defined as all source code displayed within the prose of the 1200 | documentation. 1201 | 1202 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 1203 | 1204 | ==== 1205 | 1206 | Files located in the node_modules and vendor directories are externally 1207 | maintained libraries used by this software which have their own 1208 | licenses; we recommend you read them, as their terms may differ from the 1209 | terms above. 1210 | 1211 | 1212 | lru-cache 1213 | ISC 1214 | The ISC License 1215 | 1216 | Copyright (c) Isaac Z. Schlueter and Contributors 1217 | 1218 | Permission to use, copy, modify, and/or distribute this software for any 1219 | purpose with or without fee is hereby granted, provided that the above 1220 | copyright notice and this permission notice appear in all copies. 1221 | 1222 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1223 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1224 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1225 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1226 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1227 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1228 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1229 | 1230 | 1231 | ms 1232 | MIT 1233 | The MIT License (MIT) 1234 | 1235 | Copyright (c) 2020 Vercel, Inc. 1236 | 1237 | Permission is hereby granted, free of charge, to any person obtaining a copy 1238 | of this software and associated documentation files (the "Software"), to deal 1239 | in the Software without restriction, including without limitation the rights 1240 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1241 | copies of the Software, and to permit persons to whom the Software is 1242 | furnished to do so, subject to the following conditions: 1243 | 1244 | The above copyright notice and this permission notice shall be included in all 1245 | copies or substantial portions of the Software. 1246 | 1247 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1248 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1249 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1250 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1251 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1252 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1253 | SOFTWARE. 1254 | 1255 | 1256 | natural-orderby 1257 | MIT 1258 | The MIT License (MIT) 1259 | 1260 | Copyright (c) 2018 - present Olaf Ennen 1261 | 1262 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1263 | 1264 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1265 | 1266 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1267 | 1268 | 1269 | node-fetch 1270 | MIT 1271 | The MIT License (MIT) 1272 | 1273 | Copyright (c) 2016 David Frank 1274 | 1275 | Permission is hereby granted, free of charge, to any person obtaining a copy 1276 | of this software and associated documentation files (the "Software"), to deal 1277 | in the Software without restriction, including without limitation the rights 1278 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1279 | copies of the Software, and to permit persons to whom the Software is 1280 | furnished to do so, subject to the following conditions: 1281 | 1282 | The above copyright notice and this permission notice shall be included in all 1283 | copies or substantial portions of the Software. 1284 | 1285 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1286 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1287 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1288 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1289 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1290 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1291 | SOFTWARE. 1292 | 1293 | 1294 | 1295 | once 1296 | ISC 1297 | The ISC License 1298 | 1299 | Copyright (c) Isaac Z. Schlueter and Contributors 1300 | 1301 | Permission to use, copy, modify, and/or distribute this software for any 1302 | purpose with or without fee is hereby granted, provided that the above 1303 | copyright notice and this permission notice appear in all copies. 1304 | 1305 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1306 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1307 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1308 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1309 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1310 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1311 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1312 | 1313 | 1314 | safe-buffer 1315 | MIT 1316 | The MIT License (MIT) 1317 | 1318 | Copyright (c) Feross Aboukhadijeh 1319 | 1320 | Permission is hereby granted, free of charge, to any person obtaining a copy 1321 | of this software and associated documentation files (the "Software"), to deal 1322 | in the Software without restriction, including without limitation the rights 1323 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1324 | copies of the Software, and to permit persons to whom the Software is 1325 | furnished to do so, subject to the following conditions: 1326 | 1327 | The above copyright notice and this permission notice shall be included in 1328 | all copies or substantial portions of the Software. 1329 | 1330 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1331 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1332 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1333 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1334 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1335 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1336 | THE SOFTWARE. 1337 | 1338 | 1339 | semver 1340 | ISC 1341 | The ISC License 1342 | 1343 | Copyright (c) Isaac Z. Schlueter and Contributors 1344 | 1345 | Permission to use, copy, modify, and/or distribute this software for any 1346 | purpose with or without fee is hereby granted, provided that the above 1347 | copyright notice and this permission notice appear in all copies. 1348 | 1349 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1350 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1351 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1352 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1353 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1354 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1355 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1356 | 1357 | 1358 | tr46 1359 | MIT 1360 | 1361 | tunnel 1362 | MIT 1363 | The MIT License (MIT) 1364 | 1365 | Copyright (c) 2012 Koichi Kobayashi 1366 | 1367 | Permission is hereby granted, free of charge, to any person obtaining a copy 1368 | of this software and associated documentation files (the "Software"), to deal 1369 | in the Software without restriction, including without limitation the rights 1370 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1371 | copies of the Software, and to permit persons to whom the Software is 1372 | furnished to do so, subject to the following conditions: 1373 | 1374 | The above copyright notice and this permission notice shall be included in 1375 | all copies or substantial portions of the Software. 1376 | 1377 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1378 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1379 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1380 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1381 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1382 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1383 | THE SOFTWARE. 1384 | 1385 | 1386 | universal-github-app-jwt 1387 | MIT 1388 | The MIT License 1389 | 1390 | Copyright (c) 2019 Gregor Martynus 1391 | 1392 | Permission is hereby granted, free of charge, to any person obtaining a copy 1393 | of this software and associated documentation files (the "Software"), to deal 1394 | in the Software without restriction, including without limitation the rights 1395 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1396 | copies of the Software, and to permit persons to whom the Software is 1397 | furnished to do so, subject to the following conditions: 1398 | 1399 | The above copyright notice and this permission notice shall be included in 1400 | all copies or substantial portions of the Software. 1401 | 1402 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1403 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1404 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1405 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1406 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1407 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1408 | THE SOFTWARE. 1409 | 1410 | 1411 | universal-user-agent 1412 | ISC 1413 | # [ISC License](https://spdx.org/licenses/ISC) 1414 | 1415 | Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) 1416 | 1417 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 1418 | 1419 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1420 | 1421 | 1422 | uuid 1423 | MIT 1424 | The MIT License (MIT) 1425 | 1426 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 1427 | 1428 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1429 | 1430 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1431 | 1432 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1433 | 1434 | 1435 | webidl-conversions 1436 | BSD-2-Clause 1437 | # The BSD 2-Clause License 1438 | 1439 | Copyright (c) 2014, Domenic Denicola 1440 | All rights reserved. 1441 | 1442 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1443 | 1444 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 1445 | 1446 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 1447 | 1448 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1449 | 1450 | 1451 | whatwg-url 1452 | MIT 1453 | The MIT License (MIT) 1454 | 1455 | Copyright (c) 2015–2016 Sebastian Mayr 1456 | 1457 | Permission is hereby granted, free of charge, to any person obtaining a copy 1458 | of this software and associated documentation files (the "Software"), to deal 1459 | in the Software without restriction, including without limitation the rights 1460 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 1461 | copies of the Software, and to permit persons to whom the Software is 1462 | furnished to do so, subject to the following conditions: 1463 | 1464 | The above copyright notice and this permission notice shall be included in 1465 | all copies or substantial portions of the Software. 1466 | 1467 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1468 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1469 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1470 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1471 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1472 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 1473 | THE SOFTWARE. 1474 | 1475 | 1476 | wrappy 1477 | ISC 1478 | The ISC License 1479 | 1480 | Copyright (c) Isaac Z. Schlueter and Contributors 1481 | 1482 | Permission to use, copy, modify, and/or distribute this software for any 1483 | purpose with or without fee is hereby granted, provided that the above 1484 | copyright notice and this permission notice appear in all copies. 1485 | 1486 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1487 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1488 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1489 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1490 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1491 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1492 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1493 | 1494 | 1495 | yallist 1496 | ISC 1497 | The ISC License 1498 | 1499 | Copyright (c) Isaac Z. Schlueter and Contributors 1500 | 1501 | Permission to use, copy, modify, and/or distribute this software for any 1502 | purpose with or without fee is hereby granted, provided that the above 1503 | copyright notice and this permission notice appear in all copies. 1504 | 1505 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1506 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1507 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1508 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1509 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1510 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 1511 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1512 | --------------------------------------------------------------------------------