forked from mirrors/action-gh-release
node_modules
This commit is contained in:
parent
2984051a42
commit
b28d8151ad
445 changed files with 83959 additions and 1 deletions
22
node_modules/@octokit/rest/LICENSE
generated
vendored
Normal file
22
node_modules/@octokit/rest/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
The MIT License
|
||||
|
||||
Copyright (c) 2012 Cloud9 IDE, Inc. (Mike de Boer)
|
||||
Copyright (c) 2017-2018 Octokit contributors
|
||||
|
||||
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:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
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.
|
44
node_modules/@octokit/rest/README.md
generated
vendored
Normal file
44
node_modules/@octokit/rest/README.md
generated
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# rest.js
|
||||
|
||||
> GitHub REST API client for JavaScript
|
||||
|
||||
[](https://www.npmjs.com/package/@octokit/rest)
|
||||
[](https://travis-ci.org/octokit/rest.js)
|
||||
[](https://coveralls.io/github/octokit/rest.js)
|
||||
[](https://greenkeeper.io/)
|
||||
|
||||
## Installation
|
||||
```shell
|
||||
npm install @octokit/rest
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
const Octokit = require('@octokit/rest')
|
||||
const octokit = new Octokit()
|
||||
|
||||
// Compare: https://developer.github.com/v3/repos/#list-organization-repositories
|
||||
octokit.repos.listForOrg({
|
||||
org: 'octokit',
|
||||
type: 'public'
|
||||
}).then(({ data }) => {
|
||||
// handle data
|
||||
})
|
||||
```
|
||||
|
||||
See https://octokit.github.io/rest.js/ for full documentation.
|
||||
|
||||
## Contributing
|
||||
|
||||
We would love you to contribute to `@octokit/rest`, pull requests are very welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
|
||||
|
||||
## Credits
|
||||
|
||||
`@octokit/rest` was originally created as [`node-github`](https://www.npmjs.com/package/github) in 2012 by Mike de Boer from Cloud9 IDE, Inc.
|
||||
|
||||
It was adopted and renamed by GitHub in 2017
|
||||
|
||||
## LICENSE
|
||||
|
||||
[MIT](LICENSE)
|
32082
node_modules/@octokit/rest/index.d.ts
generated
vendored
Normal file
32082
node_modules/@octokit/rest/index.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
16
node_modules/@octokit/rest/index.js
generated
vendored
Normal file
16
node_modules/@octokit/rest/index.js
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
const Octokit = require('./lib/core')
|
||||
|
||||
const CORE_PLUGINS = [
|
||||
require('./plugins/log'),
|
||||
require('./plugins/authentication-deprecated'), // deprecated: remove in v17
|
||||
require('./plugins/authentication'),
|
||||
require('./plugins/pagination'),
|
||||
require('./plugins/normalize-git-reference-responses'),
|
||||
require('./plugins/register-endpoints'),
|
||||
require('./plugins/rest-api-endpoints'),
|
||||
require('./plugins/validate'),
|
||||
|
||||
require('octokit-pagination-methods') // deprecated: remove in v17
|
||||
]
|
||||
|
||||
module.exports = Octokit.plugin(CORE_PLUGINS)
|
26
node_modules/@octokit/rest/lib/constructor.js
generated
vendored
Normal file
26
node_modules/@octokit/rest/lib/constructor.js
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
module.exports = Octokit
|
||||
|
||||
const { request } = require('@octokit/request')
|
||||
const Hook = require('before-after-hook')
|
||||
|
||||
const parseClientOptions = require('./parse-client-options')
|
||||
|
||||
function Octokit (plugins, options) {
|
||||
options = options || {}
|
||||
const hook = new Hook.Collection()
|
||||
const log = Object.assign({
|
||||
debug: () => {},
|
||||
info: () => {},
|
||||
warn: console.warn,
|
||||
error: console.error
|
||||
}, options && options.log)
|
||||
const api = {
|
||||
hook,
|
||||
log,
|
||||
request: request.defaults(parseClientOptions(options, log, hook))
|
||||
}
|
||||
|
||||
plugins.forEach(pluginFunction => pluginFunction(api, options))
|
||||
|
||||
return api
|
||||
}
|
3
node_modules/@octokit/rest/lib/core.js
generated
vendored
Normal file
3
node_modules/@octokit/rest/lib/core.js
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
const factory = require('./factory')
|
||||
|
||||
module.exports = factory()
|
10
node_modules/@octokit/rest/lib/factory.js
generated
vendored
Normal file
10
node_modules/@octokit/rest/lib/factory.js
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
module.exports = factory
|
||||
|
||||
const Octokit = require('./constructor')
|
||||
const registerPlugin = require('./register-plugin')
|
||||
|
||||
function factory (plugins) {
|
||||
const Api = Octokit.bind(null, plugins || [])
|
||||
Api.plugin = registerPlugin.bind(null, plugins || [])
|
||||
return Api
|
||||
}
|
64
node_modules/@octokit/rest/lib/parse-client-options.js
generated
vendored
Normal file
64
node_modules/@octokit/rest/lib/parse-client-options.js
generated
vendored
Normal file
|
@ -0,0 +1,64 @@
|
|||
module.exports = parseOptions
|
||||
|
||||
const { Deprecation } = require('deprecation')
|
||||
const { getUserAgent } = require('universal-user-agent')
|
||||
const once = require('once')
|
||||
|
||||
const pkg = require('../package.json')
|
||||
|
||||
const deprecateOptionsTimeout = once((log, deprecation) => log.warn(deprecation))
|
||||
const deprecateOptionsAgent = once((log, deprecation) => log.warn(deprecation))
|
||||
const deprecateOptionsHeaders = once((log, deprecation) => log.warn(deprecation))
|
||||
|
||||
function parseOptions (options, log, hook) {
|
||||
if (options.headers) {
|
||||
options.headers = Object.keys(options.headers).reduce((newObj, key) => {
|
||||
newObj[key.toLowerCase()] = options.headers[key]
|
||||
return newObj
|
||||
}, {})
|
||||
}
|
||||
|
||||
const clientDefaults = {
|
||||
headers: options.headers || {},
|
||||
request: options.request || {},
|
||||
mediaType: {
|
||||
previews: [],
|
||||
format: ''
|
||||
}
|
||||
}
|
||||
|
||||
if (options.baseUrl) {
|
||||
clientDefaults.baseUrl = options.baseUrl
|
||||
}
|
||||
|
||||
if (options.userAgent) {
|
||||
clientDefaults.headers['user-agent'] = options.userAgent
|
||||
}
|
||||
|
||||
if (options.previews) {
|
||||
clientDefaults.mediaType.previews = options.previews
|
||||
}
|
||||
|
||||
if (options.timeout) {
|
||||
deprecateOptionsTimeout(log, new Deprecation('[@octokit/rest] new Octokit({timeout}) is deprecated. Use {request: {timeout}} instead. See https://github.com/octokit/request.js#request'))
|
||||
clientDefaults.request.timeout = options.timeout
|
||||
}
|
||||
|
||||
if (options.agent) {
|
||||
deprecateOptionsAgent(log, new Deprecation('[@octokit/rest] new Octokit({agent}) is deprecated. Use {request: {agent}} instead. See https://github.com/octokit/request.js#request'))
|
||||
clientDefaults.request.agent = options.agent
|
||||
}
|
||||
|
||||
if (options.headers) {
|
||||
deprecateOptionsHeaders(log, new Deprecation('[@octokit/rest] new Octokit({headers}) is deprecated. Use {userAgent, previews} instead. See https://github.com/octokit/request.js#request'))
|
||||
}
|
||||
|
||||
const userAgentOption = clientDefaults.headers['user-agent']
|
||||
const defaultUserAgent = `octokit.js/${pkg.version} ${getUserAgent()}`
|
||||
|
||||
clientDefaults.headers['user-agent'] = [userAgentOption, defaultUserAgent].filter(Boolean).join(' ')
|
||||
|
||||
clientDefaults.request.hook = hook.bind(null, 'request')
|
||||
|
||||
return clientDefaults
|
||||
}
|
7
node_modules/@octokit/rest/lib/register-plugin.js
generated
vendored
Normal file
7
node_modules/@octokit/rest/lib/register-plugin.js
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = registerPlugin
|
||||
|
||||
const factory = require('./factory')
|
||||
|
||||
function registerPlugin (plugins, pluginFunction) {
|
||||
return factory(plugins.includes(pluginFunction) ? plugins : plugins.concat(pluginFunction))
|
||||
}
|
7
node_modules/@octokit/rest/node_modules/universal-user-agent/LICENSE.md
generated
vendored
Normal file
7
node_modules/@octokit/rest/node_modules/universal-user-agent/LICENSE.md
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
# [ISC License](https://spdx.org/licenses/ISC)
|
||||
|
||||
Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m)
|
||||
|
||||
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.
|
||||
|
||||
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.
|
25
node_modules/@octokit/rest/node_modules/universal-user-agent/README.md
generated
vendored
Normal file
25
node_modules/@octokit/rest/node_modules/universal-user-agent/README.md
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# universal-user-agent
|
||||
|
||||
> Get a user agent string in both browser and node
|
||||
|
||||
[](https://www.npmjs.com/package/universal-user-agent)
|
||||
[](https://travis-ci.com/gr2m/universal-user-agent)
|
||||
[](https://greenkeeper.io/)
|
||||
|
||||
```js
|
||||
const { getUserAgent } = require("universal-user-agent");
|
||||
// or import { getUserAgent } from "universal-user-agent";
|
||||
|
||||
const userAgent = getUserAgent();
|
||||
// userAgent will look like this
|
||||
// in browser: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0"
|
||||
// in node: Node.js/v8.9.4 (macOS High Sierra; x64)
|
||||
```
|
||||
|
||||
## Credits
|
||||
|
||||
The Node implementation was originally inspired by [default-user-agent](https://www.npmjs.com/package/default-user-agent).
|
||||
|
||||
## License
|
||||
|
||||
[ISC](LICENSE.md)
|
22
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-node/index.js
generated
vendored
Normal file
22
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-node/index.js
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
||||
|
||||
var osName = _interopDefault(require('os-name'));
|
||||
|
||||
function getUserAgent() {
|
||||
try {
|
||||
return `Node.js/${process.version.substr(1)} (${osName()}; ${process.arch})`;
|
||||
} catch (error) {
|
||||
if (/wmic os get Caption/.test(error.message)) {
|
||||
return "Windows <version undetectable>";
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
exports.getUserAgent = getUserAgent;
|
||||
//# sourceMappingURL=index.js.map
|
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-node/index.js.map
generated
vendored
Normal file
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-node/index.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.js","sources":["../dist-src/node.js"],"sourcesContent":["import osName from \"os-name\";\nexport function getUserAgent() {\n try {\n return `Node.js/${process.version.substr(1)} (${osName()}; ${process.arch})`;\n }\n catch (error) {\n if (/wmic os get Caption/.test(error.message)) {\n return \"Windows <version undetectable>\";\n }\n throw error;\n }\n}\n"],"names":["getUserAgent","process","version","substr","osName","arch","error","test","message"],"mappings":";;;;;;;;AACO,SAASA,YAAT,GAAwB;MACvB;WACQ,WAAUC,OAAO,CAACC,OAAR,CAAgBC,MAAhB,CAAuB,CAAvB,CAA0B,KAAIC,MAAM,EAAG,KAAIH,OAAO,CAACI,IAAK,GAA1E;GADJ,CAGA,OAAOC,KAAP,EAAc;QACN,sBAAsBC,IAAtB,CAA2BD,KAAK,CAACE,OAAjC,CAAJ,EAA+C;aACpC,gCAAP;;;UAEEF,KAAN;;;;;;"}
|
3
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-src/browser.js
generated
vendored
Normal file
3
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-src/browser.js
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
export function getUserAgent() {
|
||||
return navigator.userAgent;
|
||||
}
|
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-src/index.js
generated
vendored
Normal file
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-src/index.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
export { getUserAgent } from "./node";
|
12
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-src/node.js
generated
vendored
Normal file
12
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-src/node.js
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
import osName from "os-name";
|
||||
export function getUserAgent() {
|
||||
try {
|
||||
return `Node.js/${process.version.substr(1)} (${osName()}; ${process.arch})`;
|
||||
}
|
||||
catch (error) {
|
||||
if (/wmic os get Caption/.test(error.message)) {
|
||||
return "Windows <version undetectable>";
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
}
|
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-types/browser.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-types/browser.d.ts
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
export declare function getUserAgent(): string;
|
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-types/index.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-types/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
export { getUserAgent } from "./node";
|
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-types/node.d.ts
generated
vendored
Normal file
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-types/node.d.ts
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
export declare function getUserAgent(): string;
|
6
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-web/index.js
generated
vendored
Normal file
6
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-web/index.js
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
function getUserAgent() {
|
||||
return navigator.userAgent;
|
||||
}
|
||||
|
||||
export { getUserAgent };
|
||||
//# sourceMappingURL=index.js.map
|
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-web/index.js.map
generated
vendored
Normal file
1
node_modules/@octokit/rest/node_modules/universal-user-agent/dist-web/index.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.js","sources":["../dist-src/browser.js"],"sourcesContent":["export function getUserAgent() {\n return navigator.userAgent;\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,GAAG;IAC3B,OAAO,SAAS,CAAC,SAAS,CAAC;CAC9B;;;;"}
|
68
node_modules/@octokit/rest/node_modules/universal-user-agent/package.json
generated
vendored
Normal file
68
node_modules/@octokit/rest/node_modules/universal-user-agent/package.json
generated
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"_args": [
|
||||
[
|
||||
"universal-user-agent@4.0.0",
|
||||
"/Users/dougtangren/code/rust/action-gh-release"
|
||||
]
|
||||
],
|
||||
"_from": "universal-user-agent@4.0.0",
|
||||
"_id": "universal-user-agent@4.0.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==",
|
||||
"_location": "/@octokit/rest/universal-user-agent",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "universal-user-agent@4.0.0",
|
||||
"name": "universal-user-agent",
|
||||
"escapedName": "universal-user-agent",
|
||||
"rawSpec": "4.0.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "4.0.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/@octokit/rest"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz",
|
||||
"_spec": "4.0.0",
|
||||
"_where": "/Users/dougtangren/code/rust/action-gh-release",
|
||||
"bugs": {
|
||||
"url": "https://github.com/gr2m/universal-user-agent/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"os-name": "^3.1.0"
|
||||
},
|
||||
"description": "Get a user agent string in both browser and node",
|
||||
"devDependencies": {
|
||||
"@gr2m/pika-plugin-build-web": "^0.6.0-issue-84.1",
|
||||
"@pika/pack": "^0.5.0",
|
||||
"@pika/plugin-build-node": "^0.6.0",
|
||||
"@pika/plugin-ts-standard-pkg": "^0.6.0",
|
||||
"@types/jest": "^24.0.18",
|
||||
"jest": "^24.9.0",
|
||||
"prettier": "^1.18.2",
|
||||
"semantic-release": "^15.9.15",
|
||||
"ts-jest": "^24.0.2",
|
||||
"typescript": "^3.6.2"
|
||||
},
|
||||
"files": [
|
||||
"dist-*/",
|
||||
"bin/"
|
||||
],
|
||||
"homepage": "https://github.com/gr2m/universal-user-agent#readme",
|
||||
"keywords": [],
|
||||
"license": "ISC",
|
||||
"main": "dist-node/index.js",
|
||||
"module": "dist-web/index.js",
|
||||
"name": "universal-user-agent",
|
||||
"pika": true,
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/gr2m/universal-user-agent.git"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"source": "dist-src/index.js",
|
||||
"types": "dist-types/index.d.ts",
|
||||
"version": "4.0.0"
|
||||
}
|
188
node_modules/@octokit/rest/package.json
generated
vendored
Normal file
188
node_modules/@octokit/rest/package.json
generated
vendored
Normal file
|
@ -0,0 +1,188 @@
|
|||
{
|
||||
"_args": [
|
||||
[
|
||||
"@octokit/rest@16.28.9",
|
||||
"/Users/dougtangren/code/rust/action-gh-release"
|
||||
]
|
||||
],
|
||||
"_from": "@octokit/rest@16.28.9",
|
||||
"_id": "@octokit/rest@16.28.9",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-IKGnX+Tvzt7XHhs8f4ajqxyJvYAMNX5nWfoJm4CQj8LZToMiaJgutf5KxxpxoC3y5w7JTJpW5rnWnF4TsIvCLA==",
|
||||
"_location": "/@octokit/rest",
|
||||
"_phantomChildren": {
|
||||
"os-name": "3.1.0"
|
||||
},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "@octokit/rest@16.28.9",
|
||||
"name": "@octokit/rest",
|
||||
"escapedName": "@octokit%2frest",
|
||||
"scope": "@octokit",
|
||||
"rawSpec": "16.28.9",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "16.28.9"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/@actions/github"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.28.9.tgz",
|
||||
"_spec": "16.28.9",
|
||||
"_where": "/Users/dougtangren/code/rust/action-gh-release",
|
||||
"author": {
|
||||
"name": "Gregor Martynus",
|
||||
"url": "https://github.com/gr2m"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/octokit/rest.js/issues"
|
||||
},
|
||||
"bundlesize": [
|
||||
{
|
||||
"path": "./dist/octokit-rest.min.js.gz",
|
||||
"maxSize": "33 kB"
|
||||
}
|
||||
],
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Mike de Boer",
|
||||
"email": "info@mikedeboer.nl"
|
||||
},
|
||||
{
|
||||
"name": "Fabian Jakobs",
|
||||
"email": "fabian@c9.io"
|
||||
},
|
||||
{
|
||||
"name": "Joe Gallo",
|
||||
"email": "joe@brassafrax.com"
|
||||
},
|
||||
{
|
||||
"name": "Gregor Martynus",
|
||||
"url": "https://github.com/gr2m"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@octokit/request": "^5.0.0",
|
||||
"@octokit/request-error": "^1.0.2",
|
||||
"atob-lite": "^2.0.0",
|
||||
"before-after-hook": "^2.0.0",
|
||||
"btoa-lite": "^1.0.0",
|
||||
"deprecation": "^2.0.0",
|
||||
"lodash.get": "^4.4.2",
|
||||
"lodash.set": "^4.3.2",
|
||||
"lodash.uniq": "^4.5.0",
|
||||
"octokit-pagination-methods": "^1.1.0",
|
||||
"once": "^1.4.0",
|
||||
"universal-user-agent": "^4.0.0"
|
||||
},
|
||||
"description": "GitHub REST API client for Node.js",
|
||||
"devDependencies": {
|
||||
"@gimenete/type-writer": "^0.1.3",
|
||||
"@octokit/fixtures-server": "^5.0.1",
|
||||
"@octokit/routes": "20.9.2",
|
||||
"@types/node": "^12.0.0",
|
||||
"bundlesize": "^0.18.0",
|
||||
"chai": "^4.1.2",
|
||||
"compression-webpack-plugin": "^3.0.0",
|
||||
"coveralls": "^3.0.0",
|
||||
"glob": "^7.1.2",
|
||||
"http-proxy-agent": "^2.1.0",
|
||||
"lodash.camelcase": "^4.3.0",
|
||||
"lodash.merge": "^4.6.1",
|
||||
"lodash.upperfirst": "^4.3.1",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mocha": "^6.0.0",
|
||||
"mustache": "^3.0.0",
|
||||
"nock": "^10.0.0",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"nyc": "^14.0.0",
|
||||
"prettier": "^1.14.2",
|
||||
"proxy": "^0.2.4",
|
||||
"semantic-release": "^15.0.0",
|
||||
"sinon": "^7.2.4",
|
||||
"sinon-chai": "^3.0.0",
|
||||
"sort-keys": "^4.0.0",
|
||||
"standard": "^14.0.2",
|
||||
"string-to-arraybuffer": "^1.0.0",
|
||||
"string-to-jsdoc-comment": "^1.0.0",
|
||||
"typescript": "^3.3.1",
|
||||
"webpack": "^4.0.0",
|
||||
"webpack-bundle-analyzer": "^3.0.0",
|
||||
"webpack-cli": "^3.0.0"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"index.d.ts",
|
||||
"lib",
|
||||
"plugins"
|
||||
],
|
||||
"homepage": "https://github.com/octokit/rest.js#readme",
|
||||
"keywords": [
|
||||
"octokit",
|
||||
"github",
|
||||
"rest",
|
||||
"api-client"
|
||||
],
|
||||
"license": "MIT",
|
||||
"name": "@octokit/rest",
|
||||
"nyc": {
|
||||
"ignore": [
|
||||
"test"
|
||||
]
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"release": {
|
||||
"publish": [
|
||||
"@semantic-release/npm",
|
||||
{
|
||||
"path": "@semantic-release/github",
|
||||
"assets": [
|
||||
"dist/*",
|
||||
"!dist/*.map.gz"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/octokit/rest.js.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npm-run-all build:*",
|
||||
"build:browser": "npm-run-all build:browser:*",
|
||||
"build:browser:development": "webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json",
|
||||
"build:browser:production": "webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map",
|
||||
"build:ts": "node scripts/generate-types",
|
||||
"coverage": "nyc report --reporter=html && open coverage/index.html",
|
||||
"generate-bundle-report": "webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html",
|
||||
"generate-routes": "node scripts/generate-routes",
|
||||
"postvalidate:ts": "tsc --noEmit --target es6 test/typescript-validate.ts",
|
||||
"prebuild:browser": "mkdirp dist/",
|
||||
"pretest": "standard",
|
||||
"prevalidate:ts": "npm run -s build:ts",
|
||||
"start-fixtures-server": "octokit-fixtures-server",
|
||||
"test": "nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"",
|
||||
"test:browser": "cypress run --browser chrome",
|
||||
"test:memory": "mocha test/memory-test",
|
||||
"validate:ts": "tsc --target es6 --noImplicitAny index.d.ts"
|
||||
},
|
||||
"standard": {
|
||||
"globals": [
|
||||
"describe",
|
||||
"before",
|
||||
"beforeEach",
|
||||
"afterEach",
|
||||
"after",
|
||||
"it",
|
||||
"expect",
|
||||
"cy"
|
||||
],
|
||||
"ignore": [
|
||||
"/docs"
|
||||
]
|
||||
},
|
||||
"types": "index.d.ts",
|
||||
"version": "16.28.9"
|
||||
}
|
41
node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js
generated
vendored
Normal file
41
node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js
generated
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
module.exports = authenticate
|
||||
|
||||
const { Deprecation } = require('deprecation')
|
||||
const once = require('once')
|
||||
|
||||
const deprecateAuthenticate = once((log, deprecation) => log.warn(deprecation))
|
||||
|
||||
function authenticate (state, options) {
|
||||
deprecateAuthenticate(state.octokit.log, new Deprecation('[@octokit/rest] octokit.authenticate() is deprecated. Use "auth" constructor option instead.'))
|
||||
|
||||
if (!options) {
|
||||
state.auth = false
|
||||
return
|
||||
}
|
||||
|
||||
switch (options.type) {
|
||||
case 'basic':
|
||||
if (!options.username || !options.password) {
|
||||
throw new Error('Basic authentication requires both a username and password to be set')
|
||||
}
|
||||
break
|
||||
|
||||
case 'oauth':
|
||||
if (!options.token && !(options.key && options.secret)) {
|
||||
throw new Error('OAuth2 authentication requires a token or key & secret to be set')
|
||||
}
|
||||
break
|
||||
|
||||
case 'token':
|
||||
case 'app':
|
||||
if (!options.token) {
|
||||
throw new Error('Token authentication requires a token to be set')
|
||||
}
|
||||
break
|
||||
|
||||
default:
|
||||
throw new Error("Invalid authentication type, must be 'basic', 'oauth', 'token' or 'app'")
|
||||
}
|
||||
|
||||
state.auth = options
|
||||
}
|
40
node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js
generated
vendored
Normal file
40
node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js
generated
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
module.exports = authenticationBeforeRequest
|
||||
|
||||
const btoa = require('btoa-lite')
|
||||
const uniq = require('lodash.uniq')
|
||||
|
||||
function authenticationBeforeRequest (state, options) {
|
||||
if (!state.auth.type) {
|
||||
return
|
||||
}
|
||||
|
||||
if (state.auth.type === 'basic') {
|
||||
const hash = btoa(`${state.auth.username}:${state.auth.password}`)
|
||||
options.headers.authorization = `Basic ${hash}`
|
||||
return
|
||||
}
|
||||
|
||||
if (state.auth.type === 'token') {
|
||||
options.headers.authorization = `token ${state.auth.token}`
|
||||
return
|
||||
}
|
||||
|
||||
if (state.auth.type === 'app') {
|
||||
options.headers.authorization = `Bearer ${state.auth.token}`
|
||||
const acceptHeaders = options.headers.accept.split(',')
|
||||
.concat('application/vnd.github.machine-man-preview+json')
|
||||
options.headers.accept = uniq(acceptHeaders).filter(Boolean).join(',')
|
||||
return
|
||||
}
|
||||
|
||||
options.url += options.url.indexOf('?') === -1 ? '?' : '&'
|
||||
|
||||
if (state.auth.token) {
|
||||
options.url += `access_token=${encodeURIComponent(state.auth.token)}`
|
||||
return
|
||||
}
|
||||
|
||||
const key = encodeURIComponent(state.auth.key)
|
||||
const secret = encodeURIComponent(state.auth.secret)
|
||||
options.url += `client_id=${key}&client_secret=${secret}`
|
||||
}
|
26
node_modules/@octokit/rest/plugins/authentication-deprecated/index.js
generated
vendored
Normal file
26
node_modules/@octokit/rest/plugins/authentication-deprecated/index.js
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
module.exports = authenticationPlugin
|
||||
|
||||
const { Deprecation } = require('deprecation')
|
||||
const once = require('once')
|
||||
|
||||
const deprecateAuthenticate = once((log, deprecation) => log.warn(deprecation))
|
||||
|
||||
const authenticate = require('./authenticate')
|
||||
const beforeRequest = require('./before-request')
|
||||
const requestError = require('./request-error')
|
||||
|
||||
function authenticationPlugin (octokit, options) {
|
||||
if (options.auth) {
|
||||
octokit.authenticate = () => {
|
||||
deprecateAuthenticate(octokit.log, new Deprecation('[@octokit/rest] octokit.authenticate() is deprecated and has no effect when "auth" option is set on Octokit constructor'))
|
||||
}
|
||||
return
|
||||
}
|
||||
const state = {
|
||||
octokit,
|
||||
auth: false
|
||||
}
|
||||
octokit.authenticate = authenticate.bind(null, state)
|
||||
octokit.hook.before('request', beforeRequest.bind(null, state))
|
||||
octokit.hook.error('request', requestError.bind(null, state))
|
||||
}
|
39
node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js
generated
vendored
Normal file
39
node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js
generated
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
module.exports = authenticationRequestError
|
||||
|
||||
const { RequestError } = require('@octokit/request-error')
|
||||
|
||||
function authenticationRequestError (state, error, options) {
|
||||
/* istanbul ignore next */
|
||||
if (!error.headers) throw error
|
||||
|
||||
const otpRequired = /required/.test(error.headers['x-github-otp'] || '')
|
||||
// handle "2FA required" error only
|
||||
if (error.status !== 401 || !otpRequired) {
|
||||
throw error
|
||||
}
|
||||
|
||||
if (error.status === 401 && otpRequired && error.request && error.request.headers['x-github-otp']) {
|
||||
throw new RequestError('Invalid one-time password for two-factor authentication', 401, {
|
||||
headers: error.headers,
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
if (typeof state.auth.on2fa !== 'function') {
|
||||
throw new RequestError('2FA required, but options.on2fa is not a function. See https://github.com/octokit/rest.js#authentication', 401, {
|
||||
headers: error.headers,
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
return Promise.resolve()
|
||||
.then(() => {
|
||||
return state.auth.on2fa()
|
||||
})
|
||||
.then((oneTimePassword) => {
|
||||
const newOptions = Object.assign(options, {
|
||||
headers: Object.assign({ 'x-github-otp': oneTimePassword }, options.headers)
|
||||
})
|
||||
return state.octokit.request(newOptions)
|
||||
})
|
||||
}
|
61
node_modules/@octokit/rest/plugins/authentication/before-request.js
generated
vendored
Normal file
61
node_modules/@octokit/rest/plugins/authentication/before-request.js
generated
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
module.exports = authenticationBeforeRequest
|
||||
|
||||
const btoa = require('btoa-lite')
|
||||
|
||||
const withAuthorizationPrefix = require('./with-authorization-prefix')
|
||||
|
||||
function authenticationBeforeRequest (state, options) {
|
||||
if (typeof state.auth === 'string') {
|
||||
options.headers.authorization = withAuthorizationPrefix(state.auth)
|
||||
|
||||
// https://developer.github.com/v3/previews/#integrations
|
||||
if (/^bearer /i.test(state.auth) && !/machine-man/.test(options.headers.accept)) {
|
||||
const acceptHeaders = options.headers.accept.split(',')
|
||||
.concat('application/vnd.github.machine-man-preview+json')
|
||||
options.headers.accept = acceptHeaders.filter(Boolean).join(',')
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if (state.auth.username) {
|
||||
const hash = btoa(`${state.auth.username}:${state.auth.password}`)
|
||||
options.headers.authorization = `Basic ${hash}`
|
||||
if (state.otp) {
|
||||
options.headers['x-github-otp'] = state.otp
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if (state.auth.clientId) {
|
||||
// There is a special case for OAuth applications, when `clientId` and `clientSecret` is passed as
|
||||
// Basic Authorization instead of query parameters. The only routes where that applies share the same
|
||||
// URL though: `/applications/:client_id/tokens/:access_token`.
|
||||
//
|
||||
// 1. [Check an authorization](https://developer.github.com/v3/oauth_authorizations/#check-an-authorization)
|
||||
// 2. [Reset an authorization](https://developer.github.com/v3/oauth_authorizations/#reset-an-authorization)
|
||||
// 3. [Revoke an authorization for an application](https://developer.github.com/v3/oauth_authorizations/#revoke-an-authorization-for-an-application)
|
||||
//
|
||||
// We identify by checking the URL. It must merge both "/applications/:client_id/tokens/:access_token"
|
||||
// as well as "/applications/123/tokens/token456"
|
||||
if (/\/applications\/:?[\w_]+\/tokens\/:?[\w_]+($|\?)/.test(options.url)) {
|
||||
const hash = btoa(`${state.auth.clientId}:${state.auth.clientSecret}`)
|
||||
options.headers.authorization = `Basic ${hash}`
|
||||
return
|
||||
}
|
||||
|
||||
options.url += options.url.indexOf('?') === -1 ? '?' : '&'
|
||||
options.url += `client_id=${state.auth.clientId}&client_secret=${state.auth.clientSecret}`
|
||||
return
|
||||
}
|
||||
|
||||
return Promise.resolve()
|
||||
|
||||
.then(() => {
|
||||
return state.auth()
|
||||
})
|
||||
|
||||
.then((authorization) => {
|
||||
options.headers.authorization = withAuthorizationPrefix(authorization)
|
||||
})
|
||||
}
|
21
node_modules/@octokit/rest/plugins/authentication/index.js
generated
vendored
Normal file
21
node_modules/@octokit/rest/plugins/authentication/index.js
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
module.exports = authenticationPlugin
|
||||
|
||||
const beforeRequest = require('./before-request')
|
||||
const requestError = require('./request-error')
|
||||
const validate = require('./validate')
|
||||
|
||||
function authenticationPlugin (octokit, options) {
|
||||
if (!options.auth) {
|
||||
return
|
||||
}
|
||||
|
||||
validate(options.auth)
|
||||
|
||||
const state = {
|
||||
octokit,
|
||||
auth: options.auth
|
||||
}
|
||||
|
||||
octokit.hook.before('request', beforeRequest.bind(null, state))
|
||||
octokit.hook.error('request', requestError.bind(null, state))
|
||||
}
|
47
node_modules/@octokit/rest/plugins/authentication/request-error.js
generated
vendored
Normal file
47
node_modules/@octokit/rest/plugins/authentication/request-error.js
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
module.exports = authenticationRequestError
|
||||
|
||||
const { RequestError } = require('@octokit/request-error')
|
||||
|
||||
function authenticationRequestError (state, error, options) {
|
||||
if (!error.headers) throw error
|
||||
|
||||
const otpRequired = /required/.test(error.headers['x-github-otp'] || '')
|
||||
// handle "2FA required" error only
|
||||
if (error.status !== 401 || !otpRequired) {
|
||||
throw error
|
||||
}
|
||||
|
||||
if (error.status === 401 && otpRequired && error.request && error.request.headers['x-github-otp']) {
|
||||
if (state.otp) {
|
||||
delete state.otp // no longer valid, request again
|
||||
} else {
|
||||
throw new RequestError('Invalid one-time password for two-factor authentication', 401, {
|
||||
headers: error.headers,
|
||||
request: options
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof state.auth.on2fa !== 'function') {
|
||||
throw new RequestError('2FA required, but options.on2fa is not a function. See https://github.com/octokit/rest.js#authentication', 401, {
|
||||
headers: error.headers,
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
return Promise.resolve()
|
||||
.then(() => {
|
||||
return state.auth.on2fa()
|
||||
})
|
||||
.then((oneTimePassword) => {
|
||||
const newOptions = Object.assign(options, {
|
||||
headers: Object.assign(options.headers, { 'x-github-otp': oneTimePassword })
|
||||
})
|
||||
return state.octokit.request(newOptions)
|
||||
.then(response => {
|
||||
// If OTP still valid, then persist it for following requests
|
||||
state.otp = oneTimePassword
|
||||
return response
|
||||
})
|
||||
})
|
||||
}
|
21
node_modules/@octokit/rest/plugins/authentication/validate.js
generated
vendored
Normal file
21
node_modules/@octokit/rest/plugins/authentication/validate.js
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
module.exports = validateAuth
|
||||
|
||||
function validateAuth (auth) {
|
||||
if (typeof auth === 'string') {
|
||||
return
|
||||
}
|
||||
|
||||
if (typeof auth === 'function') {
|
||||
return
|
||||
}
|
||||
|
||||
if (auth.username && auth.password) {
|
||||
return
|
||||
}
|
||||
|
||||
if (auth.clientId && auth.clientSecret) {
|
||||
return
|
||||
}
|
||||
|
||||
throw new Error(`Invalid "auth" option: ${JSON.stringify(auth)}`)
|
||||
}
|
23
node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js
generated
vendored
Normal file
23
node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
module.exports = withAuthorizationPrefix
|
||||
|
||||
const atob = require('atob-lite')
|
||||
|
||||
const REGEX_IS_BASIC_AUTH = /^[\w-]+:/
|
||||
|
||||
function withAuthorizationPrefix (authorization) {
|
||||
if (/^(basic|bearer|token) /i.test(authorization)) {
|
||||
return authorization
|
||||
}
|
||||
|
||||
try {
|
||||
if (REGEX_IS_BASIC_AUTH.test(atob(authorization))) {
|
||||
return `basic ${authorization}`
|
||||
}
|
||||
} catch (error) { }
|
||||
|
||||
if (authorization.split(/\./).length === 3) {
|
||||
return `bearer ${authorization}`
|
||||
}
|
||||
|
||||
return `token ${authorization}`
|
||||
}
|
22
node_modules/@octokit/rest/plugins/log/index.js
generated
vendored
Normal file
22
node_modules/@octokit/rest/plugins/log/index.js
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
module.exports = octokitDebug
|
||||
|
||||
function octokitDebug (octokit) {
|
||||
octokit.hook.wrap('request', (request, options) => {
|
||||
octokit.log.debug('request', options)
|
||||
const start = Date.now()
|
||||
const requestOptions = octokit.request.endpoint.parse(options)
|
||||
const path = requestOptions.url.replace(options.baseUrl, '')
|
||||
|
||||
return request(options)
|
||||
|
||||
.then(response => {
|
||||
octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`)
|
||||
return response
|
||||
})
|
||||
|
||||
.catch(error => {
|
||||
octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`)
|
||||
throw error
|
||||
})
|
||||
})
|
||||
}
|
53
node_modules/@octokit/rest/plugins/normalize-git-reference-responses/index.js
generated
vendored
Normal file
53
node_modules/@octokit/rest/plugins/normalize-git-reference-responses/index.js
generated
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
module.exports = octokitRestNormalizeGitReferenceResponses
|
||||
|
||||
const { RequestError } = require('@octokit/request-error')
|
||||
|
||||
function octokitRestNormalizeGitReferenceResponses (octokit) {
|
||||
octokit.hook.wrap('request', (request, options) => {
|
||||
const isGetOrListRefRequest = /\/repos\/:?\w+\/:?\w+\/git\/refs\/:?\w+/.test(options.url)
|
||||
|
||||
if (!isGetOrListRefRequest) {
|
||||
return request(options)
|
||||
}
|
||||
|
||||
const isGetRefRequest = 'ref' in options
|
||||
|
||||
return request(options)
|
||||
.then(response => {
|
||||
// request single reference
|
||||
if (isGetRefRequest) {
|
||||
if (Array.isArray(response.data)) {
|
||||
throw new RequestError(`More than one reference found for "${options.ref}"`, 404, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
// ✅ received single reference
|
||||
return response
|
||||
}
|
||||
|
||||
// request list of references
|
||||
if (!Array.isArray(response.data)) {
|
||||
response.data = [response.data]
|
||||
}
|
||||
|
||||
return response
|
||||
})
|
||||
|
||||
.catch(error => {
|
||||
if (isGetRefRequest) {
|
||||
throw error
|
||||
}
|
||||
|
||||
if (error.status === 404) {
|
||||
return {
|
||||
status: 200,
|
||||
headers: error.headers,
|
||||
data: []
|
||||
}
|
||||
}
|
||||
|
||||
throw error
|
||||
})
|
||||
})
|
||||
}
|
9
node_modules/@octokit/rest/plugins/pagination/index.js
generated
vendored
Normal file
9
node_modules/@octokit/rest/plugins/pagination/index.js
generated
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
module.exports = paginatePlugin
|
||||
|
||||
const iterator = require('./iterator')
|
||||
const paginate = require('./paginate')
|
||||
|
||||
function paginatePlugin (octokit) {
|
||||
octokit.paginate = paginate.bind(null, octokit)
|
||||
octokit.paginate.iterator = iterator.bind(null, octokit)
|
||||
}
|
31
node_modules/@octokit/rest/plugins/pagination/iterator.js
generated
vendored
Normal file
31
node_modules/@octokit/rest/plugins/pagination/iterator.js
generated
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
module.exports = iterator
|
||||
|
||||
const normalizePaginatedListResponse = require('./normalize-paginated-list-response')
|
||||
|
||||
function iterator (octokit, options) {
|
||||
const headers = options.headers
|
||||
let url = octokit.request.endpoint(options).url
|
||||
|
||||
return {
|
||||
[Symbol.asyncIterator]: () => ({
|
||||
next () {
|
||||
if (!url) {
|
||||
return Promise.resolve({ done: true })
|
||||
}
|
||||
|
||||
return octokit.request({ url, headers })
|
||||
|
||||
.then((response) => {
|
||||
normalizePaginatedListResponse(octokit, url, response)
|
||||
|
||||
// `response.headers.link` format:
|
||||
// '<https://api.github.com/users/aseemk/followers?page=2>; rel="next", <https://api.github.com/users/aseemk/followers?page=2>; rel="last"'
|
||||
// sets `url` to undefined if "next" URL is not present or `link` header is not set
|
||||
url = ((response.headers.link || '').match(/<([^>]+)>;\s*rel="next"/) || [])[1]
|
||||
|
||||
return { value: response }
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
91
node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js
generated
vendored
Normal file
91
node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js
generated
vendored
Normal file
|
@ -0,0 +1,91 @@
|
|||
/**
|
||||
* Some “list” response that can be paginated have a different response structure
|
||||
*
|
||||
* They have a `total_count` key in the response (search also has `incomplete_results`,
|
||||
* /installation/repositories also has `repository_selection`), as well as a key with
|
||||
* the list of the items which name varies from endpoint to endpoint:
|
||||
*
|
||||
* - https://developer.github.com/v3/search/#example (key `items`)
|
||||
* - https://developer.github.com/v3/checks/runs/#response-3 (key: `check_runs`)
|
||||
* - https://developer.github.com/v3/checks/suites/#response-1 (key: `check_suites`)
|
||||
* - https://developer.github.com/v3/apps/installations/#list-repositories (key: `repositories`)
|
||||
* - https://developer.github.com/v3/apps/installations/#list-installations-for-a-user (key `installations`)
|
||||
*
|
||||
* Octokit normalizes these responses so that paginated results are always returned following
|
||||
* the same structure. One challenge is that if the list response has only one page, no Link
|
||||
* header is provided, so this header alone is not sufficient to check wether a response is
|
||||
* paginated or not. For the exceptions with the namespace, a fallback check for the route
|
||||
* paths has to be added in order to normalize the response. We cannot check for the total_count
|
||||
* property because it also exists in the response of Get the combined status for a specific ref.
|
||||
*/
|
||||
|
||||
module.exports = normalizePaginatedListResponse
|
||||
|
||||
const { Deprecation } = require('deprecation')
|
||||
const once = require('once')
|
||||
|
||||
const deprecateIncompleteResults = once((log, deprecation) => log.warn(deprecation))
|
||||
const deprecateTotalCount = once((log, deprecation) => log.warn(deprecation))
|
||||
const deprecateNamespace = once((log, deprecation) => log.warn(deprecation))
|
||||
|
||||
const REGEX_IS_SEARCH_PATH = /^\/search\//
|
||||
const REGEX_IS_CHECKS_PATH = /^\/repos\/[^/]+\/[^/]+\/commits\/[^/]+\/(check-runs|check-suites)/
|
||||
const REGEX_IS_INSTALLATION_REPOSITORIES_PATH = /^\/installation\/repositories/
|
||||
const REGEX_IS_USER_INSTALLATIONS_PATH = /^\/user\/installations/
|
||||
|
||||
function normalizePaginatedListResponse (octokit, url, response) {
|
||||
const path = url.replace(octokit.request.endpoint.DEFAULTS.baseUrl, '')
|
||||
if (
|
||||
!REGEX_IS_SEARCH_PATH.test(path) &&
|
||||
!REGEX_IS_CHECKS_PATH.test(path) &&
|
||||
!REGEX_IS_INSTALLATION_REPOSITORIES_PATH.test(path) &&
|
||||
!REGEX_IS_USER_INSTALLATIONS_PATH.test(path)
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
// keep the additional properties intact to avoid a breaking change,
|
||||
// but log a deprecation warning when accessed
|
||||
const incompleteResults = response.data.incomplete_results
|
||||
const repositorySelection = response.data.repository_selection
|
||||
const totalCount = response.data.total_count
|
||||
delete response.data.incomplete_results
|
||||
delete response.data.repository_selection
|
||||
delete response.data.total_count
|
||||
|
||||
const namespaceKey = Object.keys(response.data)[0]
|
||||
|
||||
response.data = response.data[namespaceKey]
|
||||
|
||||
Object.defineProperty(response.data, namespaceKey, {
|
||||
get () {
|
||||
deprecateNamespace(octokit.log, new Deprecation(`[@octokit/rest] "result.data.${namespaceKey}" is deprecated. Use "result.data" instead`))
|
||||
return response.data
|
||||
}
|
||||
})
|
||||
|
||||
if (typeof incompleteResults !== 'undefined') {
|
||||
Object.defineProperty(response.data, 'incomplete_results', {
|
||||
get () {
|
||||
deprecateIncompleteResults(octokit.log, new Deprecation('[@octokit/rest] "result.data.incomplete_results" is deprecated.'))
|
||||
return incompleteResults
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (typeof repositorySelection !== 'undefined') {
|
||||
Object.defineProperty(response.data, 'repository_selection', {
|
||||
get () {
|
||||
deprecateTotalCount(octokit.log, new Deprecation('[@octokit/rest] "result.data.repository_selection" is deprecated.'))
|
||||
return repositorySelection
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Object.defineProperty(response.data, 'total_count', {
|
||||
get () {
|
||||
deprecateTotalCount(octokit.log, new Deprecation('[@octokit/rest] "result.data.total_count" is deprecated.'))
|
||||
return totalCount
|
||||
}
|
||||
})
|
||||
}
|
34
node_modules/@octokit/rest/plugins/pagination/paginate.js
generated
vendored
Normal file
34
node_modules/@octokit/rest/plugins/pagination/paginate.js
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
module.exports = paginate
|
||||
|
||||
const iterator = require('./iterator')
|
||||
|
||||
function paginate (octokit, route, options, mapFn) {
|
||||
if (typeof options === 'function') {
|
||||
mapFn = options
|
||||
options = undefined
|
||||
}
|
||||
options = octokit.request.endpoint.merge(route, options)
|
||||
return gather(octokit, [], iterator(octokit, options)[Symbol.asyncIterator](), mapFn)
|
||||
}
|
||||
|
||||
function gather (octokit, results, iterator, mapFn) {
|
||||
return iterator.next()
|
||||
.then(result => {
|
||||
if (result.done) {
|
||||
return results
|
||||
}
|
||||
|
||||
let earlyExit = false
|
||||
function done () {
|
||||
earlyExit = true
|
||||
}
|
||||
|
||||
results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data)
|
||||
|
||||
if (earlyExit) {
|
||||
return results
|
||||
}
|
||||
|
||||
return gather(octokit, results, iterator, mapFn)
|
||||
})
|
||||
}
|
7
node_modules/@octokit/rest/plugins/register-endpoints/index.js
generated
vendored
Normal file
7
node_modules/@octokit/rest/plugins/register-endpoints/index.js
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = octokitRegisterEndpoints
|
||||
|
||||
const registerEndpoints = require('./register-endpoints')
|
||||
|
||||
function octokitRegisterEndpoints (octokit) {
|
||||
octokit.registerEndpoints = registerEndpoints.bind(null, octokit)
|
||||
}
|
87
node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js
generated
vendored
Normal file
87
node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js
generated
vendored
Normal file
|
@ -0,0 +1,87 @@
|
|||
module.exports = registerEndpoints
|
||||
|
||||
const { Deprecation } = require('deprecation')
|
||||
|
||||
function registerEndpoints (octokit, routes) {
|
||||
Object.keys(routes).forEach(namespaceName => {
|
||||
if (!octokit[namespaceName]) {
|
||||
octokit[namespaceName] = {}
|
||||
}
|
||||
|
||||
Object.keys(routes[namespaceName]).forEach(apiName => {
|
||||
const apiOptions = routes[namespaceName][apiName]
|
||||
|
||||
const endpointDefaults = ['method', 'url', 'headers'].reduce((map, key) => {
|
||||
if (typeof apiOptions[key] !== 'undefined') {
|
||||
map[key] = apiOptions[key]
|
||||
}
|
||||
|
||||
return map
|
||||
}, {})
|
||||
|
||||
endpointDefaults.request = {
|
||||
validate: apiOptions.params
|
||||
}
|
||||
|
||||
let request = octokit.request.defaults(endpointDefaults)
|
||||
|
||||
// patch request & endpoint methods to support deprecated parameters.
|
||||
// Not the most elegant solution, but we don’t want to move deprecation
|
||||
// logic into octokit/endpoint.js as it’s out of scope
|
||||
const hasDeprecatedParam = Object.keys(apiOptions.params || {}).find(key => apiOptions.params[key].deprecated)
|
||||
if (hasDeprecatedParam) {
|
||||
const patch = patchForDeprecation.bind(null, octokit, apiOptions)
|
||||
request = patch(
|
||||
octokit.request.defaults(endpointDefaults),
|
||||
`.${namespaceName}.${apiName}()`
|
||||
)
|
||||
request.endpoint = patch(
|
||||
request.endpoint,
|
||||
`.${namespaceName}.${apiName}.endpoint()`
|
||||
)
|
||||
request.endpoint.merge = patch(
|
||||
request.endpoint.merge,
|
||||
`.${namespaceName}.${apiName}.endpoint.merge()`
|
||||
)
|
||||
}
|
||||
|
||||
if (apiOptions.deprecated) {
|
||||
octokit[namespaceName][apiName] = function deprecatedEndpointMethod () {
|
||||
octokit.log.warn(new Deprecation(`[@octokit/rest] ${apiOptions.deprecated}`))
|
||||
octokit[namespaceName][apiName] = request
|
||||
return request.apply(null, arguments)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
octokit[namespaceName][apiName] = request
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function patchForDeprecation (octokit, apiOptions, method, methodName) {
|
||||
const patchedMethod = (options) => {
|
||||
options = Object.assign({}, options)
|
||||
|
||||
Object.keys(options).forEach(key => {
|
||||
if (apiOptions.params[key] && apiOptions.params[key].deprecated) {
|
||||
const aliasKey = apiOptions.params[key].alias
|
||||
|
||||
octokit.log.warn(new Deprecation(`[@octokit/rest] "${key}" parameter is deprecated for "${methodName}". Use "${aliasKey}" instead`))
|
||||
|
||||
if (!(aliasKey in options)) {
|
||||
options[aliasKey] = options[key]
|
||||
}
|
||||
delete options[key]
|
||||
}
|
||||
})
|
||||
|
||||
return method(options)
|
||||
}
|
||||
Object.keys(method).forEach(key => {
|
||||
patchedMethod[key] = method[key]
|
||||
})
|
||||
|
||||
return patchedMethod
|
||||
}
|
13
node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js
generated
vendored
Normal file
13
node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
module.exports = octokitRestApiEndpoints
|
||||
|
||||
const ROUTES = require('./routes.json')
|
||||
|
||||
function octokitRestApiEndpoints (octokit) {
|
||||
// Aliasing scopes for backward compatibility
|
||||
// See https://github.com/octokit/rest.js/pull/1134
|
||||
ROUTES.gitdata = ROUTES.git
|
||||
ROUTES.authorization = ROUTES.oauthAuthorizations
|
||||
ROUTES.pullRequests = ROUTES.pulls
|
||||
|
||||
octokit.registerEndpoints(ROUTES)
|
||||
}
|
11284
node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json
generated
vendored
Normal file
11284
node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
7
node_modules/@octokit/rest/plugins/validate/index.js
generated
vendored
Normal file
7
node_modules/@octokit/rest/plugins/validate/index.js
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = octokitValidate
|
||||
|
||||
const validate = require('./validate')
|
||||
|
||||
function octokitValidate (octokit) {
|
||||
octokit.hook.before('request', validate.bind(null, octokit))
|
||||
}
|
113
node_modules/@octokit/rest/plugins/validate/validate.js
generated
vendored
Normal file
113
node_modules/@octokit/rest/plugins/validate/validate.js
generated
vendored
Normal file
|
@ -0,0 +1,113 @@
|
|||
'use strict'
|
||||
|
||||
module.exports = validate
|
||||
|
||||
const { RequestError } = require('@octokit/request-error')
|
||||
const get = require('lodash.get')
|
||||
const set = require('lodash.set')
|
||||
|
||||
function validate (octokit, options) {
|
||||
if (!options.request.validate) {
|
||||
return
|
||||
}
|
||||
const { validate: params } = options.request
|
||||
|
||||
Object.keys(params).forEach(parameterName => {
|
||||
const parameter = get(params, parameterName)
|
||||
|
||||
const expectedType = parameter.type
|
||||
let parentParameterName
|
||||
let parentValue
|
||||
let parentParamIsPresent = true
|
||||
let parentParameterIsArray = false
|
||||
|
||||
if (/\./.test(parameterName)) {
|
||||
parentParameterName = parameterName.replace(/\.[^.]+$/, '')
|
||||
parentParameterIsArray = parentParameterName.slice(-2) === '[]'
|
||||
if (parentParameterIsArray) {
|
||||
parentParameterName = parentParameterName.slice(0, -2)
|
||||
}
|
||||
parentValue = get(options, parentParameterName)
|
||||
parentParamIsPresent = parentParameterName === 'headers' || (typeof parentValue === 'object' && parentValue !== null)
|
||||
}
|
||||
|
||||
const values = parentParameterIsArray
|
||||
? (get(options, parentParameterName) || []).map(value => value[parameterName.split(/\./).pop()])
|
||||
: [get(options, parameterName)]
|
||||
|
||||
values.forEach((value, i) => {
|
||||
const valueIsPresent = typeof value !== 'undefined'
|
||||
const valueIsNull = value === null
|
||||
const currentParameterName = parentParameterIsArray
|
||||
? parameterName.replace(/\[\]/, `[${i}]`)
|
||||
: parameterName
|
||||
|
||||
if (!parameter.required && !valueIsPresent) {
|
||||
return
|
||||
}
|
||||
|
||||
// if the parent parameter is of type object but allows null
|
||||
// then the child parameters can be ignored
|
||||
if (!parentParamIsPresent) {
|
||||
return
|
||||
}
|
||||
|
||||
if (parameter.allowNull && valueIsNull) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!parameter.allowNull && valueIsNull) {
|
||||
throw new RequestError(`'${currentParameterName}' cannot be null`, 400, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
if (parameter.required && !valueIsPresent) {
|
||||
throw new RequestError(`Empty value for parameter '${currentParameterName}': ${JSON.stringify(value)}`, 400, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
// parse to integer before checking for enum
|
||||
// so that string "1" will match enum with number 1
|
||||
if (expectedType === 'integer') {
|
||||
const unparsedValue = value
|
||||
value = parseInt(value, 10)
|
||||
if (isNaN(value)) {
|
||||
throw new RequestError(`Invalid value for parameter '${currentParameterName}': ${JSON.stringify(unparsedValue)} is NaN`, 400, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (parameter.enum && parameter.enum.indexOf(value) === -1) {
|
||||
throw new RequestError(`Invalid value for parameter '${currentParameterName}': ${JSON.stringify(value)}`, 400, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
|
||||
if (parameter.validation) {
|
||||
const regex = new RegExp(parameter.validation)
|
||||
if (!regex.test(value)) {
|
||||
throw new RequestError(`Invalid value for parameter '${currentParameterName}': ${JSON.stringify(value)}`, 400, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (expectedType === 'object' && typeof value === 'string') {
|
||||
try {
|
||||
value = JSON.parse(value)
|
||||
} catch (exception) {
|
||||
throw new RequestError(`JSON parse error of value for parameter '${currentParameterName}': ${JSON.stringify(value)}`, 400, {
|
||||
request: options
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
set(options, parameter.mapTo || currentParameterName, value)
|
||||
})
|
||||
})
|
||||
|
||||
return options
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue