diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6e4adaa05..aae01cddc 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -26,7 +26,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 # tag=v2 + uses: github/codeql-action/init@v3 # Override language selection by uncommenting this and choosing your languages # with: # languages: go, javascript, csharp, python, cpp, java @@ -34,7 +34,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 # tag=v2 + uses: github/codeql-action/autobuild@v3 # â„šī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -48,4 +48,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 # tag=v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/immediate-response.yml b/.github/workflows/immediate-response.yml index 1a21a731e..e8bb8ee5b 100644 --- a/.github/workflows/immediate-response.yml +++ b/.github/workflows/immediate-response.yml @@ -6,12 +6,12 @@ on: issues: types: - opened - pull_request: + pull_request_target: types: - opened jobs: respond-to-issue: - if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} + if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' && github.actor != 'githubactions[bot]' && github.actor != 'octokitbot' }} runs-on: ubuntu-latest steps: - name: Determine issue or PR number @@ -19,7 +19,7 @@ jobs: run: echo "NUMBER=${{ github.event.issue.number || github.event.pull_request.number }}" >> "$GITHUB_OUTPUT" - name: Respond to issue or PR - uses: peter-evans/create-or-update-comment@v3 + uses: peter-evans/create-or-update-comment@v4 with: issue-number: ${{ steps.extract.outputs.NUMBER }} body: > diff --git a/README.md b/README.md index ce321cf52..6f80026f2 100644 --- a/README.md +++ b/README.md @@ -253,7 +253,7 @@ const { data: app } = await requestWithAuth( String - Any supported http verb, case insensitive. Defaults to Get. + Any supported http verb, case-insensitive. Defaults to Get. @@ -322,7 +322,7 @@ const { data: app } = await requestWithAuth( Function - Function with the signature hook(request, endpointOptions), where endpointOptions are the parsed options as returned by endpoint.merge(), and request is request(). This option works great in conjuction with before-after-hook. + Function with the signature hook(request, endpointOptions), where endpointOptions are the parsed options as returned by endpoint.merge(), and request is request(). This option works great in conjunction with before-after-hook. diff --git a/package-lock.json b/package-lock.json index e5b22d227..920d1fcfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,12 +22,12 @@ "@types/lolex": "^5.1.0", "@types/node": "^20.0.0", "@types/once": "^1.4.0", - "esbuild": "^0.19.0", - "fetch-mock": "^9.3.1", + "esbuild": "^0.20.0", + "fetch-mock": "npm:@gr2m/fetch-mock@^9.11.0-pull-request-644.1", "glob": "^10.2.4", "jest": "^29.0.0", "lolex": "^6.0.0", - "prettier": "3.1.0", + "prettier": "3.2.5", "semantic-release-plugin-update-version-in-files": "^1.0.0", "string-to-arraybuffer": "^1.0.2", "ts-jest": "^29.0.0", @@ -592,10 +592,26 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz", + "integrity": "sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.0.tgz", - "integrity": "sha512-GAkjUyHgWTYuex3evPd5V7uV/XS4LMKr1PWHRPW1xNyy/Jx08x3uTrDFRefBYLKT/KpaWM8/YMQcwbp5a3yIDA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.0.tgz", + "integrity": "sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==", "cpu": [ "arm" ], @@ -609,9 +625,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.0.tgz", - "integrity": "sha512-AzsozJnB+RNaDncBCs3Ys5g3kqhPFUueItfEaCpp89JH2naFNX2mYDIvUgPYMqqjm8hiFoo+jklb3QHZyR3ubw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz", + "integrity": "sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==", "cpu": [ "arm64" ], @@ -625,9 +641,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.0.tgz", - "integrity": "sha512-SUG8/qiVhljBDpdkHQ9DvOWbp7hFFIP0OzxOTptbmVsgBgzY6JWowmMd6yJuOhapfxmj/DrvwKmjRLvVSIAKZg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.0.tgz", + "integrity": "sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==", "cpu": [ "x64" ], @@ -641,9 +657,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.0.tgz", - "integrity": "sha512-HkxZ8k3Jvcw0FORPNTavA8BMgQjLOB6AajT+iXmil7BwY3gU1hWvJJAyWyEogCmA4LdbGvKF8vEykdmJ4xNJJQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz", + "integrity": "sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==", "cpu": [ "arm64" ], @@ -657,9 +673,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.0.tgz", - "integrity": "sha512-9IRWJjqpWFHM9a5Qs3r3bK834NCFuDY5ZaLrmTjqE+10B6w65UMQzeZjh794JcxpHolsAHqwsN/33crUXNCM2Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz", + "integrity": "sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==", "cpu": [ "x64" ], @@ -673,9 +689,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.0.tgz", - "integrity": "sha512-s7i2WcXcK0V1PJHVBe7NsGddsL62a9Vhpz2U7zapPrwKoFuxPP9jybwX8SXnropR/AOj3ppt2ern4ItblU6UQQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz", + "integrity": "sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==", "cpu": [ "arm64" ], @@ -689,9 +705,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.0.tgz", - "integrity": "sha512-NMdBSSdgwHCqCsucU5k1xflIIRU0qi1QZnM6+vdGy5fvxm1c8rKh50VzsWsIVTFUG3l91AtRxVwoz3Lcvy3I5w==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz", + "integrity": "sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==", "cpu": [ "x64" ], @@ -705,9 +721,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.0.tgz", - "integrity": "sha512-2F1+lH7ZBcCcgxiSs8EXQV0PPJJdTNiNcXxDb61vzxTRJJkXX1I/ye9mAhfHyScXzHaEibEXg1Jq9SW586zz7w==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz", + "integrity": "sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==", "cpu": [ "arm" ], @@ -721,9 +737,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.0.tgz", - "integrity": "sha512-I4zvE2srSZxRPapFnNqj+NL3sDJ1wkvEZqt903OZUlBBgigrQMvzUowvP/TTTu2OGYe1oweg5MFilfyrElIFag==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz", + "integrity": "sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==", "cpu": [ "arm64" ], @@ -737,9 +753,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.0.tgz", - "integrity": "sha512-dz2Q7+P92r1Evc8kEN+cQnB3qqPjmCrOZ+EdBTn8lEc1yN8WDgaDORQQiX+mxaijbH8npXBT9GxUqE52Gt6Y+g==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz", + "integrity": "sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==", "cpu": [ "ia32" ], @@ -753,9 +769,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.0.tgz", - "integrity": "sha512-IcVJovJVflih4oFahhUw+N7YgNbuMSVFNr38awb0LNzfaiIfdqIh518nOfYaNQU3aVfiJnOIRVJDSAP4k35WxA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz", + "integrity": "sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==", "cpu": [ "loong64" ], @@ -769,9 +785,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.0.tgz", - "integrity": "sha512-bZGRAGySMquWsKw0gIdsClwfvgbsSq/7oq5KVu1H1r9Il+WzOcfkV1hguntIuBjRVL8agI95i4AukjdAV2YpUw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz", + "integrity": "sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==", "cpu": [ "mips64el" ], @@ -785,9 +801,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.0.tgz", - "integrity": "sha512-3LC6H5/gCDorxoRBUdpLV/m7UthYSdar0XcCu+ypycQxMS08MabZ06y1D1yZlDzL/BvOYliRNRWVG/YJJvQdbg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz", + "integrity": "sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==", "cpu": [ "ppc64" ], @@ -801,9 +817,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.0.tgz", - "integrity": "sha512-jfvdKjWk+Cp2sgLtEEdSHXO7qckrw2B2eFBaoRdmfhThqZs29GMMg7q/LsQpybA7BxCLLEs4di5ucsWzZC5XPA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz", + "integrity": "sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==", "cpu": [ "riscv64" ], @@ -817,9 +833,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.0.tgz", - "integrity": "sha512-ofcucfNLkoXmcnJaw9ugdEOf40AWKGt09WBFCkpor+vFJVvmk/8OPjl/qRtks2Z7BuZbG3ztJuK1zS9z5Cgx9A==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz", + "integrity": "sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==", "cpu": [ "s390x" ], @@ -833,9 +849,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.0.tgz", - "integrity": "sha512-Fpf7zNDBti3xrQKQKLdXT0hTyOxgFdRJIMtNy8x1az9ATR9/GJ1brYbB/GLWoXhKiHsoWs+2DLkFVNNMTCLEwA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz", + "integrity": "sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==", "cpu": [ "x64" ], @@ -849,9 +865,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.0.tgz", - "integrity": "sha512-AMQAp/5oENgDOvVhvOlbhVe1pWii7oFAMRHlmTjSEMcpjTpIHtFXhv9uAFgUERHm3eYtNvS9Vf+gT55cwuI6Aw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz", + "integrity": "sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==", "cpu": [ "x64" ], @@ -865,9 +881,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.0.tgz", - "integrity": "sha512-fDztEve1QUs3h/Dw2AUmBlWGkNQbhDoD05ppm5jKvzQv+HVuV13so7m5RYeiSMIC2XQy7PAjZh+afkxAnCRZxA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz", + "integrity": "sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==", "cpu": [ "x64" ], @@ -881,9 +897,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.0.tgz", - "integrity": "sha512-bKZzJ2/rvUjDzA5Ddyva2tMk89WzNJEibZEaq+wY6SiqPlwgFbqyQLimouxLHiHh1itb5P3SNCIF1bc2bw5H9w==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz", + "integrity": "sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==", "cpu": [ "x64" ], @@ -897,9 +913,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.0.tgz", - "integrity": "sha512-NQJ+4jmnA79saI+sE+QzcEls19uZkoEmdxo7r//PDOjIpX8pmoWtTnWg6XcbnO7o4fieyAwb5U2LvgWynF4diA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz", + "integrity": "sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==", "cpu": [ "arm64" ], @@ -913,9 +929,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.0.tgz", - "integrity": "sha512-uyxiZAnsfu9diHm9/rIH2soecF/HWLXYUhJKW4q1+/LLmNQ+55lRjvSUDhUmsgJtSUscRJB/3S4RNiTb9o9mCg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz", + "integrity": "sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==", "cpu": [ "ia32" ], @@ -929,9 +945,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.0.tgz", - "integrity": "sha512-jl+NXUjK2StMgqnZnqgNjZuerFG8zQqWXMBZdMMv4W/aO1ZKQaYWZBxTrtWKphkCBVEMh0wMVfGgOd2BjOZqUQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz", + "integrity": "sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==", "cpu": [ "x64" ], @@ -2849,9 +2865,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.0.tgz", - "integrity": "sha512-i7i8TP4vuG55bKeLyqqk5sTPu1ZjPH3wkcLvAj/0X/222iWFo3AJUYRKjbOoY6BWFMH3teizxHEdV9Su5ESl0w==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz", + "integrity": "sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==", "dev": true, "hasInstallScript": true, "bin": { @@ -2861,28 +2877,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.0", - "@esbuild/android-arm64": "0.19.0", - "@esbuild/android-x64": "0.19.0", - "@esbuild/darwin-arm64": "0.19.0", - "@esbuild/darwin-x64": "0.19.0", - "@esbuild/freebsd-arm64": "0.19.0", - "@esbuild/freebsd-x64": "0.19.0", - "@esbuild/linux-arm": "0.19.0", - "@esbuild/linux-arm64": "0.19.0", - "@esbuild/linux-ia32": "0.19.0", - "@esbuild/linux-loong64": "0.19.0", - "@esbuild/linux-mips64el": "0.19.0", - "@esbuild/linux-ppc64": "0.19.0", - "@esbuild/linux-riscv64": "0.19.0", - "@esbuild/linux-s390x": "0.19.0", - "@esbuild/linux-x64": "0.19.0", - "@esbuild/netbsd-x64": "0.19.0", - "@esbuild/openbsd-x64": "0.19.0", - "@esbuild/sunos-x64": "0.19.0", - "@esbuild/win32-arm64": "0.19.0", - "@esbuild/win32-ia32": "0.19.0", - "@esbuild/win32-x64": "0.19.0" + "@esbuild/aix-ppc64": "0.20.0", + "@esbuild/android-arm": "0.20.0", + "@esbuild/android-arm64": "0.20.0", + "@esbuild/android-x64": "0.20.0", + "@esbuild/darwin-arm64": "0.20.0", + "@esbuild/darwin-x64": "0.20.0", + "@esbuild/freebsd-arm64": "0.20.0", + "@esbuild/freebsd-x64": "0.20.0", + "@esbuild/linux-arm": "0.20.0", + "@esbuild/linux-arm64": "0.20.0", + "@esbuild/linux-ia32": "0.20.0", + "@esbuild/linux-loong64": "0.20.0", + "@esbuild/linux-mips64el": "0.20.0", + "@esbuild/linux-ppc64": "0.20.0", + "@esbuild/linux-riscv64": "0.20.0", + "@esbuild/linux-s390x": "0.20.0", + "@esbuild/linux-x64": "0.20.0", + "@esbuild/netbsd-x64": "0.20.0", + "@esbuild/openbsd-x64": "0.20.0", + "@esbuild/sunos-x64": "0.20.0", + "@esbuild/win32-arm64": "0.20.0", + "@esbuild/win32-ia32": "0.20.0", + "@esbuild/win32-x64": "0.20.0" } }, "node_modules/escalade": { @@ -2957,9 +2974,10 @@ } }, "node_modules/fetch-mock": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-9.11.0.tgz", - "integrity": "sha512-PG1XUv+x7iag5p/iNHD4/jdpxL9FtVSqRMUQhPab4hVDt80T1MH5ehzVrL2IdXO9Q2iBggArFvPqjUbHFuI58Q==", + "name": "@gr2m/fetch-mock", + "version": "9.11.0-pull-request-644.1", + "resolved": "https://registry.npmjs.org/@gr2m/fetch-mock/-/fetch-mock-9.11.0-pull-request-644.1.tgz", + "integrity": "sha512-gTp6RCHzlOXS1qRb0APfuyz48Lw/JFPa4uiar+kEgL1STsDwth75HJZ4x30tBlXMJXV8XDTDzJ2Hz9w3RWiHJA==", "dev": true, "dependencies": { "@babel/core": "^7.0.0", @@ -5792,9 +5810,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/package.json b/package.json index 968114e90..980bbd218 100644 --- a/package.json +++ b/package.json @@ -35,12 +35,12 @@ "@types/lolex": "^5.1.0", "@types/node": "^20.0.0", "@types/once": "^1.4.0", - "esbuild": "^0.19.0", - "fetch-mock": "^9.3.1", + "esbuild": "^0.20.0", + "fetch-mock": "npm:@gr2m/fetch-mock@^9.11.0-pull-request-644.1", "glob": "^10.2.4", "jest": "^29.0.0", "lolex": "^6.0.0", - "prettier": "3.1.0", + "prettier": "3.2.5", "semantic-release-plugin-update-version-in-files": "^1.0.0", "string-to-arraybuffer": "^1.0.2", "ts-jest": "^29.0.0", @@ -65,7 +65,10 @@ }, "modulePathIgnorePatterns": [ "/pkg" - ] + ], + "moduleNameMapper": { + "^(.+)\\.jsx?$": "$1" + } }, "release": { "branches": [ diff --git a/src/fetch-wrapper.ts b/src/fetch-wrapper.ts index ef41903cf..bf65ba426 100644 --- a/src/fetch-wrapper.ts +++ b/src/fetch-wrapper.ts @@ -1,8 +1,8 @@ -import { isPlainObject } from "./is-plain-object"; +import { isPlainObject } from "./is-plain-object.js"; import { RequestError } from "@octokit/request-error"; import type { EndpointInterface } from "@octokit/types"; -import getBuffer from "./get-buffer-response"; +import getBuffer from "./get-buffer-response.js"; export default function fetchWrapper( requestOptions: ReturnType, @@ -176,13 +176,22 @@ async function getResponseData(response: Response) { function toErrorMessage(data: any) { if (typeof data === "string") return data; + let suffix: string; + + // istanbul ignore else - just in case + if ("documentation_url" in data) { + suffix = ` - ${data.documentation_url}`; + } else { + suffix = ""; + } + // istanbul ignore else - just in case if ("message" in data) { if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; } - return data.message; + return `${data.message}${suffix}`; } // istanbul ignore next - just in case diff --git a/src/index.ts b/src/index.ts index 9de0b81bf..c3e578728 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,8 @@ import { endpoint } from "@octokit/endpoint"; import { getUserAgent } from "universal-user-agent"; -import { VERSION } from "./version"; -import withDefaults from "./with-defaults"; +import { VERSION } from "./version.js"; +import withDefaults from "./with-defaults.js"; export const request = withDefaults(endpoint, { headers: { diff --git a/src/with-defaults.ts b/src/with-defaults.ts index 88c7ab741..6a82854ed 100644 --- a/src/with-defaults.ts +++ b/src/with-defaults.ts @@ -1,4 +1,4 @@ -import fetchWrapper from "./fetch-wrapper"; +import fetchWrapper from "./fetch-wrapper.js"; import type { EndpointOptions, EndpointInterface, diff --git a/test/defaults.test.ts b/test/defaults.test.ts index 6098ec9b2..81d7cc860 100644 --- a/test/defaults.test.ts +++ b/test/defaults.test.ts @@ -1,6 +1,6 @@ import fetchMock from "fetch-mock"; -import { request } from "../src"; +import { request } from "../src/index.ts"; describe("endpoint.defaults()", () => { it("is a function", () => { diff --git a/test/is-plain-object.test.ts b/test/is-plain-object.test.ts index 962c915b2..1b9d44e33 100644 --- a/test/is-plain-object.test.ts +++ b/test/is-plain-object.test.ts @@ -1,4 +1,4 @@ -import { isPlainObject } from "../src/is-plain-object"; +import { isPlainObject } from "../src/is-plain-object.ts"; describe("isPlainObject", () => { function Foo() { diff --git a/test/request.test.ts b/test/request.test.ts index fe39cd01a..294480e0b 100644 --- a/test/request.test.ts +++ b/test/request.test.ts @@ -1,5 +1,6 @@ -import fs from "fs"; -import stream, { Stream } from "stream"; +import fs from "node:fs"; +import stream from "node:stream"; +import { ReadableStream } from "node:stream/web"; import { getUserAgent } from "universal-user-agent"; import fetchMock from "fetch-mock"; @@ -11,7 +12,7 @@ import type { ResponseHeaders, } from "@octokit/types"; -import { request } from "../src"; +import { request } from "../src/index.ts"; const userAgent = `octokit-request.js/0.0.0-development ${getUserAgent()}`; const stringToArrayBuffer = require("string-to-arraybuffer"); @@ -405,12 +406,13 @@ x//0u+zd/R/QRUzLOw4N72/Hu+UG6MNt5iDZFCtapRaKt6OvSBwy8w== .sandbox() .get("path:/repos/octokit-fixture-org/hello-world/contents/README.md", { status: 500, - body: undefined, + body: "", headers: { "content-type": "application/json", }, }); + expect(request).not.toThrow(); return request("GET /repos/{owner}/{repo}/contents/{path}", { headers: { accept: "content-type: application/json", @@ -807,7 +809,7 @@ x//0u+zd/R/QRUzLOw4N72/Hu+UG6MNt5iDZFCtapRaKt6OvSBwy8w== .catch((error) => { expect(error).toHaveProperty( "message", - `Validation failed: "Only organization repositories can have users and team restrictions", {"resource":"Search","field":"q","code":"invalid"}`, + `Validation failed: "Only organization repositories can have users and team restrictions", {"resource":"Search","field":"q","code":"invalid"} - https://developer.github.com/v3/repos/branches/#update-branch-protection`, ); }); }); @@ -1116,7 +1118,7 @@ x//0u+zd/R/QRUzLOw4N72/Hu+UG6MNt5iDZFCtapRaKt6OvSBwy8w== }).then((response) => { expect(response.status).toEqual(200); expect(response.headers["content-type"]).toEqual("application/x-gzip"); - expect(response.data).toBeInstanceOf(Stream); + expect(response.data).toBeInstanceOf(ReadableStream); expect(mock.done()).toBe(true); }); }); diff --git a/test/tsconfig.test.json b/test/tsconfig.test.json index b0961e18c..5e8dc2487 100644 --- a/test/tsconfig.test.json +++ b/test/tsconfig.test.json @@ -3,7 +3,8 @@ "compilerOptions": { "emitDeclarationOnly": false, "noEmit": true, - "verbatimModuleSyntax": false + "verbatimModuleSyntax": false, + "allowImportingTsExtensions": true }, "include": ["src/**/*"] }