diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 28c29cc9b..d760c6e74 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,9 +13,8 @@ jobs:
strategy:
matrix:
node_version:
- - 14
- - 16
- 18
+ - 20
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node_version }}
diff --git a/README.md b/README.md
index aab44ccb5..899312399 100644
--- a/README.md
+++ b/README.md
@@ -324,6 +324,7 @@ Middleware for Node's built in http server or [`express`](https://expressjs.com/
```js
const { App, createNodeMiddleware } = require("@octokit/app");
+
const app = new App({
appId: 123,
privateKey: "-----BEGIN PRIVATE KEY-----\n...",
@@ -337,11 +338,20 @@ const app = new App({
});
const middleware = createNodeMiddleware(app);
-
-require("http").createServer(middleware).listen(3000);
+require("http")
+ .createServer(async (req, res) => {
+ // `middleware` returns `false` when `req` is unhandled (beyond `/api/github`)
+ if (await middleware(req, res)) return;
+ res.writeHead(404);
+ res.end();
+ })
+ .listen(3000);
// can now receive user authorization callbacks at /api/github/*
```
+The middleware returned from `createNodeMiddleware` can also serve as an
+`Express.js` middleware directly.
+
@@ -392,33 +402,9 @@ All exposed paths will be prefixed with the provided prefix. Defaults to `"/api/
Used for internal logging. Defaults to [`console`](https://developer.mozilla.org/en-US/docs/Web/API/console) with `debug` and `info` doing nothing.
-
+
-
-
- options.onUnhandledRequest
- |
-
- function
- |
-
-
-Defaults to
-```js
-function onUnhandledRequest(request, response) {
- response.writeHead(400, {
- "content-type": "application/json",
- });
- response.end(
- JSON.stringify({
- error: error.message,
- }),
- );
-}
-```
-
- |
diff --git a/package-lock.json b/package-lock.json
index f1f1425d6..802ab9600 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,33 +9,31 @@
"version": "0.0.0-development",
"license": "MIT",
"dependencies": {
- "@octokit/auth-app": "^4.0.13",
- "@octokit/auth-unauthenticated": "^3.0.0",
- "@octokit/core": "^4.0.0",
- "@octokit/oauth-app": "^4.0.7",
- "@octokit/plugin-paginate-rest": "^6.0.0",
- "@octokit/types": "^9.0.0",
- "@octokit/webhooks": "^10.0.0"
+ "@octokit/auth-app": "^6.0.0",
+ "@octokit/auth-unauthenticated": "^5.0.0",
+ "@octokit/core": "^5.0.0",
+ "@octokit/oauth-app": "^6.0.0",
+ "@octokit/plugin-paginate-rest": "^8.0.0",
+ "@octokit/types": "^11.1.0",
+ "@octokit/webhooks": "^12.0.1"
},
"devDependencies": {
"@octokit/tsconfig": "^2.0.0",
"@types/jest": "^29.0.0",
"@types/node": "^18.0.0",
- "@types/node-fetch": "^2.5.8",
"esbuild": "^0.18.0",
"express": "^4.17.1",
"fetch-mock": "^9.10.7",
"glob": "^10.0.0",
"jest": "^29.0.0",
"mockdate": "^3.0.2",
- "node-fetch": "^2.6.7",
"prettier": "3.0.0",
"semantic-release-plugin-update-version-in-files": "^1.0.0",
"ts-jest": "^29.0.0",
"typescript": "^5.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@ampproject/remapping": {
@@ -52,42 +50,42 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.22.5"
+ "@babel/highlight": "^7.18.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz",
- "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==",
+ "version": "7.21.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz",
+ "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
- "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
+ "version": "7.21.8",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz",
+ "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helpers": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5",
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-compilation-targets": "^7.21.5",
+ "@babel/helper-module-transforms": "^7.21.5",
+ "@babel/helpers": "^7.21.5",
+ "@babel/parser": "^7.21.8",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -126,12 +124,12 @@
"dev": true
},
"node_modules/@babel/generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
- "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz",
+ "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5",
+ "@babel/types": "^7.21.5",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -141,13 +139,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz",
- "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
+ "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
"dev": true,
"dependencies": {
- "@babel/compat-data": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.5",
+ "@babel/compat-data": "^7.21.5",
+ "@babel/helper-validator-option": "^7.21.0",
"browserslist": "^4.21.3",
"lru-cache": "^5.1.1",
"semver": "^6.3.0"
@@ -169,151 +167,151 @@
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
- "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
+ "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
+ "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.20.7",
+ "@babel/types": "^7.21.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.18.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
+ "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.21.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz",
- "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz",
+ "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-module-imports": "^7.21.4",
+ "@babel/helper-simple-access": "^7.21.5",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
+ "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.21.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz",
- "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==",
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.18.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
- "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
+ "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
- "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz",
+ "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
- "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.18.6",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
@@ -322,9 +320,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz",
- "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==",
+ "version": "7.21.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz",
+ "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -394,12 +392,12 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
- "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz",
+ "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
@@ -496,12 +494,12 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
- "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz",
+ "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
@@ -511,9 +509,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz",
- "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz",
+ "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.11"
@@ -523,33 +521,33 @@
}
},
"node_modules/@babel/template": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
- "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
- "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.22.5",
- "@babel/generator": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.5",
- "@babel/parser": "^7.22.5",
- "@babel/types": "^7.22.5",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz",
+ "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.21.5",
+ "@babel/types": "^7.21.5",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -581,13 +579,13 @@
"dev": true
},
"node_modules/@babel/types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz",
- "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -1767,174 +1765,181 @@
"dev": true
},
"node_modules/@octokit/auth-app": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.13.tgz",
- "integrity": "sha512-NBQkmR/Zsc+8fWcVIFrwDgNXS7f4XDrkd9LHdi9DPQw1NdGHLviLzRO2ZBwTtepnwHXW5VTrVU9eFGijMUqllg==",
- "dependencies": {
- "@octokit/auth-oauth-app": "^5.0.0",
- "@octokit/auth-oauth-user": "^2.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-6.0.0.tgz",
+ "integrity": "sha512-OKct7Rukf3g9DjpzcpdacQsdmd6oPrJ7fZND22JkjzhDvfhttUOnmh+qPS4kHhaNNyTxqSThnfrUWvkqNLd1nw==",
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^7.0.0",
+ "@octokit/auth-oauth-user": "^4.0.0",
+ "@octokit/request": "^8.0.2",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0",
"deprecation": "^2.3.1",
- "lru-cache": "^9.0.0",
+ "lru-cache": "^10.0.0",
"universal-github-app-jwt": "^1.1.1",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-app/node_modules/lru-cache": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz",
+ "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==",
+ "engines": {
+ "node": "14 || >=16.14"
}
},
"node_modules/@octokit/auth-oauth-app": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.6.tgz",
- "integrity": "sha512-SxyfIBfeFcWd9Z/m1xa4LENTQ3l1y6Nrg31k2Dcb1jS5ov7pmwMJZ6OGX8q3K9slRgVpeAjNA1ipOAMHkieqyw==",
- "dependencies": {
- "@octokit/auth-oauth-device": "^4.0.0",
- "@octokit/auth-oauth-user": "^2.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-7.0.0.tgz",
+ "integrity": "sha512-8JvJEXGoEqrbzLwt3SwIUvkDd+1wrM8up0KawvDIElB8rbxPbvWppGO0SLKAWSJ0q8ILcVq+mWck6pDcZ3a9KA==",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^6.0.0",
+ "@octokit/auth-oauth-user": "^4.0.0",
+ "@octokit/request": "^8.0.2",
+ "@octokit/types": "^11.0.0",
"@types/btoa-lite": "^1.0.0",
"btoa-lite": "^1.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/auth-oauth-device": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.5.tgz",
- "integrity": "sha512-XyhoWRTzf2ZX0aZ52a6Ew5S5VBAfwwx1QnC2Np6Et3MWQpZjlREIcbcvVZtkNuXp6Z9EeiSLSDUqm3C+aMEHzQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-6.0.0.tgz",
+ "integrity": "sha512-Zgf/LKhwWk54rJaTGYVYtbKgUty+ouil6VQeRd+pCw7Gd0ECoSWaZuHK6uDGC/HtnWHjpSWFhzxPauDoHcNRtg==",
"dependencies": {
- "@octokit/oauth-methods": "^2.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/oauth-methods": "^4.0.0",
+ "@octokit/request": "^8.0.0",
+ "@octokit/types": "^11.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/auth-oauth-user": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.1.2.tgz",
- "integrity": "sha512-kkRqNmFe7s5GQcojE3nSlF+AzYPpPv7kvP/xYEnE57584pixaFBH8Vovt+w5Y3E4zWUEOxjdLItmBTFAWECPAg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-4.0.0.tgz",
+ "integrity": "sha512-VOm5aIkVGHaOhIvsF/4YmSjoYDzzrKbbYkdSEO0KqHK7I8SlO3ZndSikQ1fBlNPUEH0ve2BOTxLrVvI1qBf9/Q==",
"dependencies": {
- "@octokit/auth-oauth-device": "^4.0.0",
- "@octokit/oauth-methods": "^2.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/auth-oauth-device": "^6.0.0",
+ "@octokit/oauth-methods": "^4.0.0",
+ "@octokit/request": "^8.0.2",
+ "@octokit/types": "^11.0.0",
"btoa-lite": "^1.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/auth-token": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz",
- "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
+ "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/auth-unauthenticated": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.5.tgz",
- "integrity": "sha512-yH2GPFcjrTvDWPwJWWCh0tPPtTL5SMgivgKPA+6v/XmYN6hGQkAto8JtZibSKOpf8ipmeYhLNWQ2UgW0GYILCw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.0.tgz",
+ "integrity": "sha512-AjOI6FNB2dweJ85p6rf7D4EhE4y6VBcwYfX/7KJkR5Q9fD9ET6NABAjajUTSNFfCxmNIaQgISggZ3pkgwtTqsA==",
"dependencies": {
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0"
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/core": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz",
- "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==",
- "dependencies": {
- "@octokit/auth-token": "^3.0.0",
- "@octokit/graphql": "^5.0.0",
- "@octokit/request": "^6.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz",
+ "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==",
+ "dependencies": {
+ "@octokit/auth-token": "^4.0.0",
+ "@octokit/graphql": "^7.0.0",
+ "@octokit/request": "^8.0.2",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0",
"before-after-hook": "^2.2.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/endpoint": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz",
- "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz",
+ "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==",
"dependencies": {
- "@octokit/types": "^9.0.0",
+ "@octokit/types": "^11.0.0",
"is-plain-object": "^5.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/graphql": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz",
- "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz",
+ "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==",
"dependencies": {
- "@octokit/request": "^6.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/request": "^8.0.1",
+ "@octokit/types": "^11.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/oauth-app": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-4.2.4.tgz",
- "integrity": "sha512-iuOVFrmm5ZKNavRtYu5bZTtmlKLc5uVgpqTfMEqYYf2OkieV6VdxKZAb5qLVdEPL8LU2lMWcGpavPBV835cgoA==",
- "dependencies": {
- "@octokit/auth-oauth-app": "^5.0.0",
- "@octokit/auth-oauth-user": "^2.0.0",
- "@octokit/auth-unauthenticated": "^3.0.0",
- "@octokit/core": "^4.0.0",
- "@octokit/oauth-authorization-url": "^5.0.0",
- "@octokit/oauth-methods": "^2.0.0",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-6.0.0.tgz",
+ "integrity": "sha512-bNMkS+vJ6oz2hCyraT9ZfTpAQ8dZNqJJQVNaKjPLx4ue5RZiFdU1YWXguOPR8AaSHS+lKe+lR3abn2siGd+zow==",
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^7.0.0",
+ "@octokit/auth-oauth-user": "^4.0.0",
+ "@octokit/auth-unauthenticated": "^5.0.0",
+ "@octokit/core": "^5.0.0",
+ "@octokit/oauth-authorization-url": "^6.0.2",
+ "@octokit/oauth-methods": "^4.0.0",
"@types/aws-lambda": "^8.10.83",
- "fromentries": "^1.3.1",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/oauth-authorization-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz",
- "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz",
+ "integrity": "sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==",
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/oauth-methods": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.6.tgz",
- "integrity": "sha512-l9Uml2iGN2aTWLZcm8hV+neBiFXAQ9+3sKiQe/sgumHlL6HDg0AQ8/l16xX/5jJvfxueqTW5CWbzd0MjnlfHZw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-4.0.0.tgz",
+ "integrity": "sha512-dqy7BZLfLbi3/8X8xPKUKZclMEK9vN3fK5WF3ortRvtplQTszFvdAGbTo71gGLO+4ZxspNiLjnqdd64Chklf7w==",
"dependencies": {
- "@octokit/oauth-authorization-url": "^5.0.0",
- "@octokit/request": "^6.2.3",
- "@octokit/request-error": "^3.0.3",
- "@octokit/types": "^9.0.0",
+ "@octokit/oauth-authorization-url": "^6.0.2",
+ "@octokit/request": "^8.0.2",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0",
"btoa-lite": "^1.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/openapi-types": {
@@ -1943,52 +1948,45 @@
"integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw=="
},
"node_modules/@octokit/plugin-paginate-rest": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz",
- "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-8.0.0.tgz",
+ "integrity": "sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==",
"dependencies": {
- "@octokit/tsconfig": "^1.0.2",
- "@octokit/types": "^9.2.3"
+ "@octokit/types": "^11.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
},
"peerDependencies": {
- "@octokit/core": ">=4"
+ "@octokit/core": ">=5"
}
},
- "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/tsconfig": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz",
- "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA=="
- },
"node_modules/@octokit/request": {
- "version": "6.2.8",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz",
- "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==",
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.0.4.tgz",
+ "integrity": "sha512-YZ1XeDRil4ejHKoBP8BgROgP4auOH5A9lLZH96l39GKKEmsKOccQxKP5M7m+Punblg1bFw8LrdeKIDwIzQ8afA==",
"dependencies": {
- "@octokit/endpoint": "^7.0.0",
- "@octokit/request-error": "^3.0.0",
- "@octokit/types": "^9.0.0",
+ "@octokit/endpoint": "^9.0.0",
+ "@octokit/request-error": "^5.0.0",
+ "@octokit/types": "^11.0.0",
"is-plain-object": "^5.0.0",
- "node-fetch": "^2.6.7",
"universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/request-error": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz",
- "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz",
+ "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==",
"dependencies": {
- "@octokit/types": "^9.0.0",
+ "@octokit/types": "^11.0.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/tsconfig": {
@@ -1998,39 +1996,60 @@
"dev": true
},
"node_modules/@octokit/types": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
- "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz",
+ "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==",
"dependencies": {
"@octokit/openapi-types": "^18.0.0"
}
},
"node_modules/@octokit/webhooks": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.9.1.tgz",
- "integrity": "sha512-5NXU4VfsNOo2VSU/SrLrpPH2Z1ZVDOWFcET4EpnEBX1uh/v8Uz65UVuHIRx5TZiXhnWyRE9AO1PXHa+M/iWwZA==",
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-12.0.1.tgz",
+ "integrity": "sha512-E/4KBNQCmDd4Llr/KeIP9haKXQ3lxeUdeAB/NgdeIWmTuFOM2Od19OX98XADTp4wkIdoEq5ycp2Y6tHCclSBGQ==",
"dependencies": {
- "@octokit/request-error": "^3.0.0",
- "@octokit/webhooks-methods": "^3.0.0",
- "@octokit/webhooks-types": "6.11.0",
+ "@octokit/request-error": "^4.0.0",
+ "@octokit/webhooks-methods": "^4.0.0",
+ "@octokit/webhooks-types": "7.0.3",
"aggregate-error": "^3.1.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/webhooks-methods": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.3.tgz",
- "integrity": "sha512-2vM+DCNTJ5vL62O5LagMru6XnYhV4fJslK+5YUkTa6rWlW2S+Tqs1lF9Wr9OGqHfVwpBj3TeztWfVON/eUoW1Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-4.0.0.tgz",
+ "integrity": "sha512-M8mwmTXp+VeolOS/kfRvsDdW+IO0qJ8kYodM/sAysk093q6ApgmBXwK1ZlUvAwXVrp/YVHp6aArj4auAxUAOFw==",
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
}
},
"node_modules/@octokit/webhooks-types": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.11.0.tgz",
- "integrity": "sha512-AanzbulOHljrku1NGfafxdpTCfw2ENaWzH01N2vqQM+cUFbk868Cgh0xylz0JIM9BoKbfI++bdD6EYX0Q/UTEw=="
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-7.0.3.tgz",
+ "integrity": "sha512-yDw/89TBaMotdT1/4gxVaiemBhswBd+jPazhL60/rS5WqXC6JZuj5CkDql7Dhc9vAbbkrJBkWsa2sppM/g8jxQ=="
+ },
+ "node_modules/@octokit/webhooks/node_modules/@octokit/request-error": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-4.0.2.tgz",
+ "integrity": "sha512-uqwUEmZw3x4I9DGYq9fODVAAvcLsPQv97NRycP6syEFu5916M189VnNBW2zANNwqg3OiligNcAey7P0SET843w==",
+ "dependencies": {
+ "@octokit/types": "^10.0.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/webhooks/node_modules/@octokit/types": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz",
+ "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==",
+ "dependencies": {
+ "@octokit/openapi-types": "^18.0.0"
+ }
},
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
@@ -2072,9 +2091,9 @@
"integrity": "sha512-Vqm22aZrCvCd6I5g1SvpW151jfqwTzEZ7XJ3yZ6xaZG31nUEOEyzzVImjRcsN8Wi/QyPxId/x8GTtgIbsy8kEw=="
},
"node_modules/@types/babel__core": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
- "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
+ "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.20.7",
@@ -2104,12 +2123,12 @@
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz",
- "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz",
+ "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.20.7"
+ "@babel/types": "^7.3.0"
}
},
"node_modules/@types/btoa-lite": {
@@ -2151,9 +2170,9 @@
}
},
"node_modules/@types/jest": {
- "version": "29.5.2",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz",
- "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==",
+ "version": "29.5.1",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz",
+ "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==",
"dev": true,
"dependencies": {
"expect": "^29.0.0",
@@ -2173,20 +2192,10 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz",
"integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw=="
},
- "node_modules/@types/node-fetch": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz",
- "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "form-data": "^3.0.0"
- }
- },
"node_modules/@types/prettier": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
- "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
+ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==",
"dev": true
},
"node_modules/@types/stack-utils": {
@@ -2302,12 +2311,6 @@
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
"dev": true
},
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
"node_modules/babel-jest": {
"version": "29.5.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
@@ -2538,10 +2541,6 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
@@ -2693,9 +2692,9 @@
}
},
"node_modules/cjs-module-lexer": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
"dev": true
},
"node_modules/clean-stack": {
@@ -2842,18 +2841,6 @@
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2903,9 +2890,9 @@
"dev": true
},
"node_modules/core-js": {
- "version": "3.31.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz",
- "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==",
+ "version": "3.30.2",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz",
+ "integrity": "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==",
"dev": true,
"hasInstallScript": true,
"funding": {
@@ -2951,15 +2938,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -3379,20 +3357,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -3411,25 +3375,6 @@
"node": ">= 0.6"
}
},
- "node_modules/fromentries": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
- "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -5749,9 +5694,10 @@
"dev": true
},
"node_modules/lru-cache": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz",
- "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==",
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
+ "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
+ "dev": true,
"engines": {
"node": "14 || >=16.14"
}
@@ -5926,6 +5872,9 @@
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
"integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -5944,17 +5893,26 @@
"node_modules/node-fetch/node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "optional": true,
+ "peer": true
},
"node_modules/node-fetch/node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true
},
"node_modules/node-fetch/node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -5967,9 +5925,9 @@
"dev": true
},
"node_modules/node-releases": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
- "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
+ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
"dev": true
},
"node_modules/normalize-path": {
@@ -6789,9 +6747,9 @@
}
},
"node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
"dev": true,
"dependencies": {
"ansi-regex": "^6.0.1"
@@ -7091,16 +7049,16 @@
}
},
"node_modules/typescript": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
- "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=14.17"
+ "node": ">=12.20"
}
},
"node_modules/universal-github-app-jwt": {
diff --git a/package.json b/package.json
index db110c1ac..39b0f90d7 100644
--- a/package.json
+++ b/package.json
@@ -18,33 +18,31 @@
"author": "Gregor Martynus (https://github.com/gr2m)",
"license": "MIT",
"dependencies": {
- "@octokit/auth-app": "^4.0.13",
- "@octokit/auth-unauthenticated": "^3.0.0",
- "@octokit/core": "^4.0.0",
- "@octokit/oauth-app": "^4.0.7",
- "@octokit/plugin-paginate-rest": "^6.0.0",
- "@octokit/types": "^9.0.0",
- "@octokit/webhooks": "^10.0.0"
+ "@octokit/auth-app": "^6.0.0",
+ "@octokit/auth-unauthenticated": "^5.0.0",
+ "@octokit/core": "^5.0.0",
+ "@octokit/oauth-app": "^6.0.0",
+ "@octokit/plugin-paginate-rest": "^8.0.0",
+ "@octokit/types": "^11.1.0",
+ "@octokit/webhooks": "^12.0.1"
},
"devDependencies": {
"@octokit/tsconfig": "^2.0.0",
"@types/jest": "^29.0.0",
"@types/node": "^18.0.0",
- "@types/node-fetch": "^2.5.8",
"esbuild": "^0.18.0",
"express": "^4.17.1",
"fetch-mock": "^9.10.7",
"glob": "^10.0.0",
"jest": "^29.0.0",
"mockdate": "^3.0.2",
- "node-fetch": "^2.6.7",
"prettier": "3.0.0",
"semantic-release-plugin-update-version-in-files": "^1.0.0",
"ts-jest": "^29.0.0",
"typescript": "^5.0.0"
},
"engines": {
- "node": ">= 14"
+ "node": ">= 18"
},
"jest": {
"transform": {
diff --git a/src/middleware/node/index.ts b/src/middleware/node/index.ts
index cbe6054e1..f48e50763 100644
--- a/src/middleware/node/index.ts
+++ b/src/middleware/node/index.ts
@@ -4,20 +4,19 @@
type IncomingMessage = any;
type ServerResponse = any;
-import { createNodeMiddleware as oauthNodeMiddleware } from "@octokit/oauth-app";
+import {
+ createNodeMiddleware as oauthNodeMiddleware,
+ sendNodeResponse,
+ unknownRouteResponse,
+} from "@octokit/oauth-app";
import { createNodeMiddleware as webhooksNodeMiddleware } from "@octokit/webhooks";
import { App } from "../../index";
-import { onUnhandledRequestDefault } from "./on-unhandled-request-default";
import type { Options } from "../../types";
export type MiddlewareOptions = {
pathPrefix?: string;
log?: Options["log"];
- onUnhandledRequest?: (
- request: IncomingMessage,
- response: ServerResponse
- ) => void;
};
function noop() {}
@@ -37,7 +36,6 @@ export function createNodeMiddleware(
);
const optionsWithDefaults = {
- onUnhandledRequest: onUnhandledRequestDefault,
pathPrefix: "/api/github",
...options,
log,
@@ -46,41 +44,41 @@ export function createNodeMiddleware(
const webhooksMiddleware = webhooksNodeMiddleware(app.webhooks, {
path: optionsWithDefaults.pathPrefix + "/webhooks",
log,
- onUnhandledRequest: optionsWithDefaults.onUnhandledRequest,
});
const oauthMiddleware = oauthNodeMiddleware(app.oauth, {
pathPrefix: optionsWithDefaults.pathPrefix + "/oauth",
- onUnhandledRequest: optionsWithDefaults.onUnhandledRequest,
});
- return middleware.bind(null, optionsWithDefaults, {
+ return middleware.bind(
+ null,
+ optionsWithDefaults.pathPrefix,
webhooksMiddleware,
- oauthMiddleware,
- });
+ oauthMiddleware
+ );
}
export async function middleware(
- options: Required,
- { webhooksMiddleware, oauthMiddleware }: any,
+ pathPrefix: string,
+ webhooksMiddleware: any,
+ oauthMiddleware: any,
request: IncomingMessage,
response: ServerResponse,
next?: Function
-) {
+): Promise {
const { pathname } = new URL(request.url as string, "http://localhost");
- if (pathname === `${options.pathPrefix}/webhooks`) {
- return webhooksMiddleware(request, response, next);
- }
- if (pathname.startsWith(`${options.pathPrefix}/oauth/`)) {
- return oauthMiddleware(request, response, next);
+ if (pathname.startsWith(`${pathPrefix}/`)) {
+ if (pathname === `${pathPrefix}/webhooks`) {
+ webhooksMiddleware(request, response);
+ } else if (pathname.startsWith(`${pathPrefix}/oauth/`)) {
+ oauthMiddleware(request, response);
+ } else {
+ sendNodeResponse(unknownRouteResponse(request), response);
+ }
+ return true;
+ } else {
+ next?.();
+ return false;
}
-
- const isExpressMiddleware = typeof next === "function";
- if (isExpressMiddleware) {
- // @ts-ignore `next` must be a function as we check two lines above
- return next();
- }
-
- return options.onUnhandledRequest(request, response);
}
diff --git a/src/middleware/node/on-unhandled-request-default.ts b/src/middleware/node/on-unhandled-request-default.ts
deleted file mode 100644
index 3664190fc..000000000
--- a/src/middleware/node/on-unhandled-request-default.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-// remove type imports from http for Deno compatibility
-// see https://github.com/octokit/octokit.js/issues/24#issuecomment-817361886
-// import { IncomingMessage, ServerResponse } from "http";
-type IncomingMessage = any;
-type ServerResponse = any;
-
-export function onUnhandledRequestDefault(
- request: IncomingMessage,
- response: ServerResponse
-) {
- response.writeHead(404, {
- "content-type": "application/json",
- });
- response.end(
- JSON.stringify({
- error: `Unknown route: ${request.method} ${request.url}`,
- })
- );
-}
diff --git a/test/node-middleware.test.ts b/test/node-middleware.test.ts
index f3378cc8b..ef21abd73 100644
--- a/test/node-middleware.test.ts
+++ b/test/node-middleware.test.ts
@@ -1,5 +1,4 @@
import { createServer } from "http";
-import fetch from "node-fetch";
// import without types
const express = require("express");
@@ -36,30 +35,99 @@ x//0u+zd/R/QRUzLOw4N72/Hu+UG6MNt5iDZFCtapRaKt6OvSBwy8w==
-----END RSA PRIVATE KEY-----`;
describe("createNodeMiddleware()", () => {
- test("unknown route", async () => {
- const app = new App({
- appId: APP_ID,
- privateKey: PRIVATE_KEY,
- webhooks: {
- secret: "mysecret",
- },
- oauth: {
- clientId: "",
- clientSecret: "",
- },
+ test("unknown route (outside pathPrefix)", async () => {
+ const middleware = createNodeMiddleware({} as unknown as App);
+ const server = createServer(async (req, res) => {
+ if (!(await middleware(req, res))) {
+ res.writeHead(404, { "Content-Type": "text/plain" });
+ res.write("Not found.");
+ res.end();
+ }
+ }).listen();
+ // @ts-expect-error complains about { port } although it's included in returned AddressInfo interface
+ const { port } = server.address();
+
+ const response = await fetch(`http://localhost:${port}/unknown-route`);
+
+ expect(response.status).toEqual(404);
+ expect(response.headers.get("Content-Type")).toBe("text/plain");
+ await expect(response.text()).resolves.toBe("Not found.");
+
+ server.close();
+ });
+
+ test("unknown route (within pathPrefix)", async () => {
+ const middleware = createNodeMiddleware({} as unknown as App);
+ const server = createServer(async (req, res) => {
+ if (!(await middleware(req, res))) {
+ res.writeHead(404, { "Content-Type": "text/plain" });
+ res.write("Not found.");
+ res.end();
+ }
+ }).listen();
+ // @ts-expect-error complains about { port } although it's included in returned AddressInfo interface
+ const { port } = server.address();
+
+ const response = await fetch(
+ `http://localhost:${port}/api/github/unknown-route`,
+ );
+
+ expect(response.status).toEqual(404);
+ expect(response.headers.get("Content-Type")).toBe("application/json");
+ await expect(response.json()).resolves.toEqual({
+ error: "Unknown route: GET /api/github/unknown-route",
});
- const server = createServer(createNodeMiddleware(app)).listen();
+ server.close();
+ });
+
+ test("unknown route (within webhooks path)", async () => {
+ const middleware = createNodeMiddleware({} as unknown as App);
+ const server = createServer(async (req, res) => {
+ if (!(await middleware(req, res))) {
+ res.writeHead(404, { "Content-Type": "text/plain" });
+ res.write("Not found.");
+ res.end();
+ }
+ }).listen();
// @ts-expect-error complains about { port } although it's included in returned AddressInfo interface
const { port } = server.address();
- const response = await fetch(`http://localhost:${port}/unknown-route`);
+ const response = await fetch(
+ `http://localhost:${port}/api/github/webhooks`,
+ );
expect(response.status).toEqual(404);
- await expect(response.text()).resolves.toMatch(
- /Unknown route: GET \/unknown-route/,
+ expect(response.headers.get("Content-Type")).toBe("application/json");
+ await expect(response.json()).resolves.toEqual({
+ error: "Unknown route: GET /api/github/webhooks",
+ });
+
+ server.close();
+ });
+
+ test("unknown route (within oauth pathPrefix)", async () => {
+ const middleware = createNodeMiddleware({} as unknown as App);
+ const server = createServer(async (req, res) => {
+ if (!(await middleware(req, res))) {
+ res.writeHead(404, { "Content-Type": "text/plain" });
+ res.write("Not found.");
+ res.end();
+ }
+ }).listen();
+ // @ts-expect-error complains about { port } although it's included in returned AddressInfo interface
+ const { port } = server.address();
+
+ const response = await fetch(
+ `http://localhost:${port}/api/github/oauth/unknown-route`,
);
+ expect(response.status).toEqual(404);
+ expect(response.headers.get("Content-Type")).toBe("application/json");
+ await expect(response.json()).resolves.toEqual({
+ error: "Unknown route: GET /api/github/oauth/unknown-route",
+ });
+
server.close();
});
diff --git a/test/readme-examples.test.ts b/test/readme-examples.test.ts
index 757e9ec83..7ad3f9f40 100644
--- a/test/readme-examples.test.ts
+++ b/test/readme-examples.test.ts
@@ -219,7 +219,7 @@ describe("README examples", () => {
// @ts-ignore
const { port } = server.address();
const url = `http://localhost:${port}/api/github/webhooks`;
- const data = {
+ const data = JSON.stringify({
action: "opened",
installation: {
id: 123,
@@ -233,7 +233,7 @@ describe("README examples", () => {
issue: {
number: 456,
},
- };
+ });
await request({
method: "POST",