@octokit/oauth-app
Advanced tools
Comparing version 4.0.8 to 5.0.0-beta.1
@@ -15,3 +15,3 @@ 'use strict'; | ||
const VERSION = "4.0.8"; | ||
const VERSION = "5.0.0-beta.1"; | ||
@@ -352,32 +352,4 @@ function addEventHandler(state, eventName, eventHandler) { | ||
function parseRequest(request) { | ||
const { | ||
method, | ||
url, | ||
headers | ||
} = request; | ||
async function text() { | ||
const text = await new Promise((resolve, reject) => { | ||
let bodyChunks = []; | ||
request.on("error", reject).on("data", chunk => bodyChunks.push(chunk)).on("end", () => resolve(Buffer.concat(bodyChunks).toString())); | ||
}); | ||
return text; | ||
} | ||
function unknownRouteResponse(request) { | ||
return { | ||
method, | ||
url, | ||
headers, | ||
text | ||
}; | ||
} | ||
function sendResponse(octokitResponse, response) { | ||
response.writeHead(octokitResponse.status, octokitResponse.headers); | ||
response.end(octokitResponse.text); | ||
} | ||
function onUnhandledRequestDefault(request) { | ||
return { | ||
status: 404, | ||
@@ -393,3 +365,2 @@ headers: { | ||
// @ts-ignore - requires esModuleInterop flag | ||
async function handleRequest(app, { | ||
@@ -411,20 +382,26 @@ pathPrefix = "/api/github/oauth" | ||
const { | ||
let { | ||
pathname | ||
} = new URL(request.url, "http://localhost"); | ||
if (!pathname.startsWith(`${pathPrefix}/`)) { | ||
return undefined; | ||
} | ||
pathname = pathname.slice(pathPrefix.length + 1); | ||
const route = [request.method, pathname].join(" "); | ||
const routes = { | ||
getLogin: `GET ${pathPrefix}/login`, | ||
getCallback: `GET ${pathPrefix}/callback`, | ||
createToken: `POST ${pathPrefix}/token`, | ||
getToken: `GET ${pathPrefix}/token`, | ||
patchToken: `PATCH ${pathPrefix}/token`, | ||
patchRefreshToken: `PATCH ${pathPrefix}/refresh-token`, | ||
scopeToken: `POST ${pathPrefix}/token/scoped`, | ||
deleteToken: `DELETE ${pathPrefix}/token`, | ||
deleteGrant: `DELETE ${pathPrefix}/grant` | ||
getLogin: `GET login`, | ||
getCallback: `GET callback`, | ||
createToken: `POST token`, | ||
getToken: `GET token`, | ||
patchToken: `PATCH token`, | ||
patchRefreshToken: `PATCH refresh-token`, | ||
scopeToken: `POST token/scoped`, | ||
deleteToken: `DELETE token`, | ||
deleteGrant: `DELETE grant` | ||
}; // handle unknown routes | ||
if (!Object.values(routes).includes(route)) { | ||
return null; | ||
return unknownRouteResponse(request); | ||
} | ||
@@ -497,3 +474,3 @@ | ||
}, | ||
text: `<h1>Token created successfull</h1> | ||
text: `<h1>Token created successfully</h1> | ||
@@ -685,24 +662,41 @@ <p>Your token is: <strong>${token}</strong>. Copy it now as it cannot be shown again.</p>` | ||
function onUnhandledRequestDefaultNode(request, response) { | ||
const octokitRequest = parseRequest(request); | ||
const octokitResponse = onUnhandledRequestDefault(octokitRequest); | ||
sendResponse(octokitResponse, response); | ||
function parseRequest(request) { | ||
const { | ||
method, | ||
url, | ||
headers | ||
} = request; | ||
async function text() { | ||
const text = await new Promise((resolve, reject) => { | ||
let bodyChunks = []; | ||
request.on("error", reject).on("data", chunk => bodyChunks.push(chunk)).on("end", () => resolve(Buffer.concat(bodyChunks).toString())); | ||
}); | ||
return text; | ||
} | ||
return { | ||
method, | ||
url, | ||
headers, | ||
text | ||
}; | ||
} | ||
function createNodeMiddleware(app, { | ||
pathPrefix, | ||
onUnhandledRequest = onUnhandledRequestDefaultNode | ||
} = {}) { | ||
function sendResponse(octokitResponse, response) { | ||
response.writeHead(octokitResponse.status, octokitResponse.headers); | ||
response.end(octokitResponse.text); | ||
} | ||
function createNodeMiddleware(app, options = {}) { | ||
return async function (request, response, next) { | ||
const octokitRequest = parseRequest(request); | ||
const octokitResponse = await handleRequest(app, { | ||
pathPrefix | ||
}, octokitRequest); | ||
const octokitRequest = await parseRequest(request); | ||
const octokitResponse = await handleRequest(app, options, octokitRequest); | ||
if (octokitResponse) { | ||
sendResponse(octokitResponse, response); | ||
} else if (typeof next === "function") { | ||
next(); | ||
return true; | ||
} else { | ||
onUnhandledRequest(request, response); | ||
next === null || next === void 0 ? void 0 : next(); | ||
return false; | ||
} | ||
@@ -730,27 +724,10 @@ }; | ||
async function onUnhandledRequestDefaultWebWorker(request) { | ||
const octokitRequest = parseRequest$1(request); | ||
const octokitResponse = onUnhandledRequestDefault(octokitRequest); | ||
return sendResponse$1(octokitResponse); | ||
} | ||
function createWebWorkerHandler(app, { | ||
pathPrefix, | ||
onUnhandledRequest = onUnhandledRequestDefaultWebWorker | ||
} = {}) { | ||
function createWebWorkerHandler(app, options = {}) { | ||
return async function (request) { | ||
const octokitRequest = parseRequest$1(request); | ||
const octokitResponse = await handleRequest(app, { | ||
pathPrefix | ||
}, octokitRequest); | ||
return octokitResponse ? sendResponse$1(octokitResponse) : await onUnhandledRequest(request); | ||
const octokitRequest = await parseRequest$1(request); | ||
const octokitResponse = await handleRequest(app, options, octokitRequest); | ||
return octokitResponse ? sendResponse$1(octokitResponse) : undefined; | ||
}; | ||
} | ||
/** @deprecated */ | ||
function createCloudflareHandler(...args) { | ||
args[0].octokit.log.warn("[@octokit/oauth-app] `createCloudflareHandler` is deprecated, use `createWebWorkerHandler` instead"); | ||
return createWebWorkerHandler(...args); | ||
} | ||
function parseRequest$2(request) { | ||
@@ -786,18 +763,7 @@ const { | ||
async function onUnhandledRequestDefaultAWSAPIGatewayV2(event) { | ||
const request = parseRequest$2(event); | ||
const response = onUnhandledRequestDefault(request); | ||
return sendResponse$2(response); | ||
} | ||
function createAWSLambdaAPIGatewayV2Handler(app, { | ||
pathPrefix, | ||
onUnhandledRequest = onUnhandledRequestDefaultAWSAPIGatewayV2 | ||
} = {}) { | ||
function createAWSLambdaAPIGatewayV2Handler(app, options = {}) { | ||
return async function (event) { | ||
const request = parseRequest$2(event); | ||
const response = await handleRequest(app, { | ||
pathPrefix | ||
}, request); | ||
return response ? sendResponse$2(response) : onUnhandledRequest(event); | ||
const response = await handleRequest(app, options, request); | ||
return response ? sendResponse$2(response) : undefined; | ||
}; | ||
@@ -862,5 +828,7 @@ } | ||
exports.createAWSLambdaAPIGatewayV2Handler = createAWSLambdaAPIGatewayV2Handler; | ||
exports.createCloudflareHandler = createCloudflareHandler; | ||
exports.createNodeMiddleware = createNodeMiddleware; | ||
exports.createWebWorkerHandler = createWebWorkerHandler; | ||
exports.handleRequest = handleRequest; | ||
exports.sendNodeResponse = sendResponse; | ||
exports.unknownRouteResponse = unknownRouteResponse; | ||
//# sourceMappingURL=index.js.map |
@@ -14,4 +14,8 @@ import { createOAuthAppAuth } from "@octokit/auth-oauth-app"; | ||
import { deleteAuthorizationWithState, } from "./methods/delete-authorization"; | ||
// generic handlers | ||
export { handleRequest } from "./middleware/handle-request"; | ||
export { unknownRouteResponse } from "./middleware/unknown-route-response"; | ||
export { createNodeMiddleware } from "./middleware/node/index"; | ||
export { createCloudflareHandler, createWebWorkerHandler, } from "./middleware/web-worker/index"; | ||
export { sendResponse as sendNodeResponse } from "./middleware/node/send-response"; | ||
export { createWebWorkerHandler } from "./middleware/web-worker/index"; | ||
export { createAWSLambdaAPIGatewayV2Handler } from "./middleware/aws-lambda/api-gateway-v2"; | ||
@@ -18,0 +22,0 @@ export class OAuthApp { |
import { parseRequest } from "./api-gateway-v2-parse-request"; | ||
import { sendResponse } from "./api-gateway-v2-send-response"; | ||
import { handleRequest } from "../handle-request"; | ||
import { onUnhandledRequestDefault } from "../on-unhandled-request-default"; | ||
async function onUnhandledRequestDefaultAWSAPIGatewayV2(event) { | ||
const request = parseRequest(event); | ||
const response = onUnhandledRequestDefault(request); | ||
return sendResponse(response); | ||
} | ||
export function createAWSLambdaAPIGatewayV2Handler(app, { pathPrefix, onUnhandledRequest = onUnhandledRequestDefaultAWSAPIGatewayV2, } = {}) { | ||
export function createAWSLambdaAPIGatewayV2Handler(app, options = {}) { | ||
return async function (event) { | ||
const request = parseRequest(event); | ||
const response = await handleRequest(app, { pathPrefix }, request); | ||
return response ? sendResponse(response) : onUnhandledRequest(event); | ||
const response = await handleRequest(app, options, request); | ||
return response ? sendResponse(response) : undefined; | ||
}; | ||
} |
@@ -0,1 +1,2 @@ | ||
import { unknownRouteResponse } from "./unknown-route-response"; | ||
// @ts-ignore - requires esModuleInterop flag | ||
@@ -16,18 +17,22 @@ import fromEntries from "fromentries"; | ||
// hence the workaround using new URL() | ||
const { pathname } = new URL(request.url, "http://localhost"); | ||
let { pathname } = new URL(request.url, "http://localhost"); | ||
if (!pathname.startsWith(`${pathPrefix}/`)) { | ||
return undefined; | ||
} | ||
pathname = pathname.slice(pathPrefix.length + 1); | ||
const route = [request.method, pathname].join(" "); | ||
const routes = { | ||
getLogin: `GET ${pathPrefix}/login`, | ||
getCallback: `GET ${pathPrefix}/callback`, | ||
createToken: `POST ${pathPrefix}/token`, | ||
getToken: `GET ${pathPrefix}/token`, | ||
patchToken: `PATCH ${pathPrefix}/token`, | ||
patchRefreshToken: `PATCH ${pathPrefix}/refresh-token`, | ||
scopeToken: `POST ${pathPrefix}/token/scoped`, | ||
deleteToken: `DELETE ${pathPrefix}/token`, | ||
deleteGrant: `DELETE ${pathPrefix}/grant`, | ||
getLogin: `GET login`, | ||
getCallback: `GET callback`, | ||
createToken: `POST token`, | ||
getToken: `GET token`, | ||
patchToken: `PATCH token`, | ||
patchRefreshToken: `PATCH refresh-token`, | ||
scopeToken: `POST token/scoped`, | ||
deleteToken: `DELETE token`, | ||
deleteGrant: `DELETE grant`, | ||
}; | ||
// handle unknown routes | ||
if (!Object.values(routes).includes(route)) { | ||
return null; | ||
return unknownRouteResponse(request); | ||
} | ||
@@ -79,3 +84,3 @@ let json; | ||
}, | ||
text: `<h1>Token created successfull</h1> | ||
text: `<h1>Token created successfully</h1> | ||
@@ -82,0 +87,0 @@ <p>Your token is: <strong>${token}</strong>. Copy it now as it cannot be shown again.</p>`, |
import { parseRequest } from "./parse-request"; | ||
import { sendResponse } from "./send-response"; | ||
import { onUnhandledRequestDefault } from "../on-unhandled-request-default"; | ||
import { handleRequest } from "../handle-request"; | ||
function onUnhandledRequestDefaultNode(request, response) { | ||
const octokitRequest = parseRequest(request); | ||
const octokitResponse = onUnhandledRequestDefault(octokitRequest); | ||
sendResponse(octokitResponse, response); | ||
} | ||
export function createNodeMiddleware(app, { pathPrefix, onUnhandledRequest = onUnhandledRequestDefaultNode, } = {}) { | ||
export function createNodeMiddleware(app, options = {}) { | ||
return async function (request, response, next) { | ||
const octokitRequest = parseRequest(request); | ||
const octokitResponse = await handleRequest(app, { pathPrefix }, octokitRequest); | ||
const octokitRequest = await parseRequest(request); | ||
const octokitResponse = await handleRequest(app, options, octokitRequest); | ||
if (octokitResponse) { | ||
sendResponse(octokitResponse, response); | ||
return true; | ||
} | ||
else if (typeof next === "function") { | ||
next(); | ||
} | ||
else { | ||
onUnhandledRequest(request, response); | ||
next?.(); | ||
return false; | ||
} | ||
}; | ||
} |
import { parseRequest } from "./parse-request"; | ||
import { sendResponse } from "./send-response"; | ||
import { handleRequest } from "../handle-request"; | ||
import { onUnhandledRequestDefault } from "../on-unhandled-request-default"; | ||
async function onUnhandledRequestDefaultWebWorker(request) { | ||
const octokitRequest = parseRequest(request); | ||
const octokitResponse = onUnhandledRequestDefault(octokitRequest); | ||
return sendResponse(octokitResponse); | ||
} | ||
export function createWebWorkerHandler(app, { pathPrefix, onUnhandledRequest = onUnhandledRequestDefaultWebWorker, } = {}) { | ||
export function createWebWorkerHandler(app, options = {}) { | ||
return async function (request) { | ||
const octokitRequest = parseRequest(request); | ||
const octokitResponse = await handleRequest(app, { pathPrefix }, octokitRequest); | ||
return octokitResponse | ||
? sendResponse(octokitResponse) | ||
: await onUnhandledRequest(request); | ||
const octokitRequest = await parseRequest(request); | ||
const octokitResponse = await handleRequest(app, options, octokitRequest); | ||
return octokitResponse ? sendResponse(octokitResponse) : undefined; | ||
}; | ||
} | ||
/** @deprecated */ | ||
export function createCloudflareHandler(...args) { | ||
args[0].octokit.log.warn("[@octokit/oauth-app] `createCloudflareHandler` is deprecated, use `createWebWorkerHandler` instead"); | ||
return createWebWorkerHandler(...args); | ||
} |
@@ -1,1 +0,1 @@ | ||
export const VERSION = "4.0.8"; | ||
export const VERSION = "5.0.0-beta.1"; |
@@ -11,4 +11,8 @@ import { GetUserOctokitWithStateInterface } from "./methods/get-user-octokit"; | ||
import type { AddEventHandler, ClientType, ClientTypeFromOptions, ConstructorOptions, OctokitTypeFromOptions, Options } from "./types"; | ||
export type { HandlerOptions, OctokitRequest, OctokitResponse, } from "./middleware/types"; | ||
export { handleRequest } from "./middleware/handle-request"; | ||
export { unknownRouteResponse } from "./middleware/unknown-route-response"; | ||
export { createNodeMiddleware } from "./middleware/node/index"; | ||
export { createCloudflareHandler, createWebWorkerHandler, } from "./middleware/web-worker/index"; | ||
export { sendResponse as sendNodeResponse } from "./middleware/node/send-response"; | ||
export { createWebWorkerHandler } from "./middleware/web-worker/index"; | ||
export { createAWSLambdaAPIGatewayV2Handler } from "./middleware/aws-lambda/api-gateway-v2"; | ||
@@ -15,0 +19,0 @@ declare type Constructor<T> = new (...args: any[]) => T; |
@@ -1,7 +0,5 @@ | ||
import { HandlerOptions } from "../types"; | ||
import { OAuthApp } from "../../index"; | ||
import { Options, ClientType } from "../../types"; | ||
import type { HandlerOptions } from "../types"; | ||
import type { OAuthApp } from "../../index"; | ||
import type { ClientType, Options } from "../../types"; | ||
import type { APIGatewayProxyEventV2, APIGatewayProxyStructuredResultV2 } from "aws-lambda"; | ||
export declare function createAWSLambdaAPIGatewayV2Handler(app: OAuthApp<Options<ClientType>>, { pathPrefix, onUnhandledRequest, }?: HandlerOptions & { | ||
onUnhandledRequest?: (event: APIGatewayProxyEventV2) => Promise<APIGatewayProxyStructuredResultV2>; | ||
}): (event: APIGatewayProxyEventV2) => Promise<APIGatewayProxyStructuredResultV2>; | ||
export declare function createAWSLambdaAPIGatewayV2Handler(app: OAuthApp<Options<ClientType>>, options?: HandlerOptions): (event: APIGatewayProxyEventV2) => Promise<APIGatewayProxyStructuredResultV2 | undefined>; |
import { OAuthApp } from "../index"; | ||
import { HandlerOptions, OctokitRequest, OctokitResponse } from "./types"; | ||
import { ClientType, Options } from "../types"; | ||
export declare function handleRequest(app: OAuthApp<Options<ClientType>>, { pathPrefix }: HandlerOptions, request: OctokitRequest): Promise<OctokitResponse | null>; | ||
export declare function handleRequest(app: OAuthApp<Options<ClientType>>, { pathPrefix }: HandlerOptions, request: OctokitRequest): Promise<OctokitResponse | undefined>; |
declare type IncomingMessage = any; | ||
declare type ServerResponse = any; | ||
import { OAuthApp } from "../../index"; | ||
import { HandlerOptions } from "../types"; | ||
import { ClientType, Options } from "../../types"; | ||
export declare function createNodeMiddleware(app: OAuthApp<Options<ClientType>>, { pathPrefix, onUnhandledRequest, }?: HandlerOptions & { | ||
onUnhandledRequest?: (request: IncomingMessage, response: ServerResponse) => void; | ||
}): (request: IncomingMessage, response: ServerResponse, next?: Function) => Promise<void>; | ||
import type { OAuthApp } from "../../index"; | ||
import type { HandlerOptions } from "../types"; | ||
import type { ClientType, Options } from "../../types"; | ||
export declare function createNodeMiddleware(app: OAuthApp<Options<ClientType>>, options?: HandlerOptions): (request: IncomingMessage, response: ServerResponse, next?: Function) => Promise<boolean>; | ||
export {}; |
@@ -1,8 +0,4 @@ | ||
import { OAuthApp } from "../../index"; | ||
import { HandlerOptions } from "../types"; | ||
import { ClientType, Options } from "../../types"; | ||
export declare function createWebWorkerHandler<T extends Options<ClientType>>(app: OAuthApp<T>, { pathPrefix, onUnhandledRequest, }?: HandlerOptions & { | ||
onUnhandledRequest?: (request: Request) => Response | Promise<Response>; | ||
}): (request: Request) => Promise<Response>; | ||
/** @deprecated */ | ||
export declare function createCloudflareHandler<T>(...args: Parameters<typeof createWebWorkerHandler>): (request: Request) => Promise<Response>; | ||
import type { OAuthApp } from "../../index"; | ||
import type { HandlerOptions } from "../types"; | ||
import type { ClientType, Options } from "../../types"; | ||
export declare function createWebWorkerHandler<T extends Options<ClientType>>(app: OAuthApp<T>, options?: HandlerOptions): (request: Request) => Promise<Response | undefined>; |
@@ -1,1 +0,1 @@ | ||
export declare const VERSION = "4.0.8"; | ||
export declare const VERSION = "5.0.0-beta.1"; |
{ | ||
"name": "@octokit/oauth-app", | ||
"description": "GitHub OAuth toolset for Node.js", | ||
"version": "4.0.8", | ||
"version": "5.0.0-beta.1", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "files": [ |
@@ -940,27 +940,2 @@ # oauth-app.js | ||
</tr> | ||
<tr> | ||
<th> | ||
<code>options.onUnhandledRequest</code> | ||
</th> | ||
<th> | ||
<code>function</code> | ||
</th> | ||
<td> | ||
Defaults to | ||
```js | ||
function onUnhandledRequest(request, response) { | ||
response.writeHead(404, { | ||
"content-type": "application/json", | ||
}); | ||
response.end( | ||
JSON.stringify({ | ||
error: `Unknown route: ${request.method} ${request.url}`, | ||
}) | ||
); | ||
} | ||
``` | ||
</td></tr> | ||
</tbody> | ||
@@ -1031,27 +1006,2 @@ </table> | ||
</tr> | ||
<tr> | ||
<th> | ||
<code>options.onUnhandledRequest</code> | ||
</th> | ||
<th> | ||
<code>function</code> | ||
</th> | ||
<td>Defaults to | ||
```js | ||
function onUnhandledRequest(request) { | ||
return new Response( | ||
JSON.stringify({ | ||
error: `Unknown route: ${request.method} ${request.url}`, | ||
}), | ||
{ | ||
status: 404, | ||
headers: { "content-type": "application/json" }, | ||
} | ||
); | ||
} | ||
``` | ||
</td> | ||
</tr> | ||
</tbody> | ||
@@ -1122,27 +1072,2 @@ </table> | ||
</tr> | ||
<tr> | ||
<th> | ||
<code>options.onUnhandledRequest</code> | ||
</th> | ||
<th> | ||
<code>function</code> | ||
</th> | ||
<td>Defaults to returns: | ||
```js | ||
function onUnhandledRequest(request) { | ||
return | ||
{ | ||
status: 404, | ||
headers: { "content-type": "application/json" }, | ||
body: JSON.stringify({ | ||
error: `Unknown route: [METHOD] [URL]`, | ||
}) | ||
} | ||
); | ||
} | ||
``` | ||
</td> | ||
</tr> | ||
</tbody> | ||
@@ -1149,0 +1074,0 @@ </table> |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
150689
1775
2
1080