diff --git a/.gitignore b/.gitignore index 8d44485..e273011 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,10 @@ package-lock.json .env.*.local .env.local + +### JetBrains ### +.idea + # Created by https://www.toptal.com/developers/gitignore/api/linux,macos,windows,node # Edit at https://www.toptal.com/developers/gitignore?templates=linux,macos,windows,node diff --git a/README.md b/README.md index 4ea80c5..223dac3 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,8 @@ pnpm i @coderabbitai/bitbucket ### Cloud ```ts -import { createBitbucketCloudClient, toBase64 } from "@coderabbitai/bitbucket" +import { createBitbucketCloudClient } from "@coderabbitai/bitbucket/cloud" +import { toBase64 } from "@coderabbitai/bitbucket" import { BITBUCKET_CLOUD_APP_PASSWORD, BITBUCKET_CLOUD_URL, @@ -38,7 +39,7 @@ const client = createBitbucketCloudClient({ ### Server ```ts -import { createBitbucketServerClient } from "@coderabbitai/bitbucket" +import { createBitbucketServerClient } from "@coderabbitai/bitbucket/server" import { BITBUCKET_SERVER_TOKEN, BITBUCKET_SERVER_URL } from "./env.js" const server = createBitbucketServerClient({ diff --git a/package.json b/package.json index 083d92b..93740bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@coderabbitai/bitbucket", - "version": "1.0.7", + "version": "1.0.8", "description": "CodeRabbit's TypeScript API client for connecting to Bitbucket Cloud and Bitbucket Data Center", "keywords": [ "bitbucket-api-v1", @@ -73,6 +73,14 @@ ".": { "types": "./dist/index.d.ts", "default": "./dist/index.js" + }, + "./cloud": { + "types": "./dist/cloud/index.d.ts", + "default": "./dist/cloud/index.js" + }, + "./server": { + "types": "./dist/server/index.d.ts", + "default": "./dist/server/index.js" } }, "types": "dist/index.d.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index baa14cf..8082006 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ importers: version: 9.1.0(eslint@9.11.1) globals: specifier: ^15.9.0 - version: 15.9.0 + version: 15.10.0 markdownlint-cli2: specifier: ^0.14.0 version: 0.14.0 @@ -56,7 +56,7 @@ importers: version: 8.8.0(eslint@9.11.1)(typescript@5.6.2) vitest: specifier: ^2.1.1 - version: 2.1.1(@types/node@22.7.4) + version: 2.1.2(@types/node@22.7.4) packages: @@ -421,83 +421,83 @@ packages: resolution: {integrity: sha512-qnpr4Z1rzfXdtxQxt/lfGD0wW3UVrm3qhrTpzLG5R/Ze+z+1u8sSRiQHp9N+RT3IuMjh00wq59nop9x9PPa1jQ==} engines: {node: '>=14.19.0', npm: '>=7.0.0'} - '@rollup/rollup-android-arm-eabi@4.22.5': - resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.22.5': - resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.22.5': - resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.22.5': - resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.22.5': - resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.22.5': - resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.22.5': - resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.22.5': - resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': - resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.22.5': - resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.22.5': - resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.22.5': - resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.22.5': - resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.22.5': - resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.22.5': - resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.22.5': - resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] @@ -598,13 +598,13 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitest/expect@2.1.1': - resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} + '@vitest/expect@2.1.2': + resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} - '@vitest/mocker@2.1.1': - resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + '@vitest/mocker@2.1.2': + resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} peerDependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 msw: ^2.3.5 vite: ^5.0.0 peerDependenciesMeta: @@ -613,20 +613,20 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.1': - resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} + '@vitest/pretty-format@2.1.2': + resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} - '@vitest/runner@2.1.1': - resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} + '@vitest/runner@2.1.2': + resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==} - '@vitest/snapshot@2.1.1': - resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} + '@vitest/snapshot@2.1.2': + resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==} - '@vitest/spy@2.1.1': - resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} + '@vitest/spy@2.1.2': + resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} - '@vitest/utils@2.1.1': - resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + '@vitest/utils@2.1.2': + resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -916,8 +916,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.9.0: - resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + globals@15.10.0: + resolution: {integrity: sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==} engines: {node: '>=18'} globby@14.0.2: @@ -1230,8 +1230,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.22.5: - resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1414,8 +1414,8 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.1.1: - resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} + vite-node@2.1.2: + resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -1450,15 +1450,15 @@ packages: terser: optional: true - vitest@2.1.1: - resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} + vitest@2.1.2: + resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.1 - '@vitest/ui': 2.1.1 + '@vitest/browser': 2.1.2 + '@vitest/ui': 2.1.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -1757,52 +1757,52 @@ snapshots: - encoding - supports-color - '@rollup/rollup-android-arm-eabi@4.22.5': + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.22.5': + '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.22.5': + '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.22.5': + '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.22.5': + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.22.5': + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.22.5': + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.22.5': + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.22.5': + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.22.5': + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.22.5': + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.22.5': + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.22.5': + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.22.5': + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.22.5': + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true '@shikijs/core@1.21.0': @@ -1935,43 +1935,43 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/expect@2.1.1': + '@vitest/expect@2.1.2': dependencies: - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.8(@types/node@22.7.4))': + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4))': dependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: vite: 5.4.8(@types/node@22.7.4) - '@vitest/pretty-format@2.1.1': + '@vitest/pretty-format@2.1.2': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.1': + '@vitest/runner@2.1.2': dependencies: - '@vitest/utils': 2.1.1 + '@vitest/utils': 2.1.2 pathe: 1.1.2 - '@vitest/snapshot@2.1.1': + '@vitest/snapshot@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 magic-string: 0.30.11 pathe: 1.1.2 - '@vitest/spy@2.1.1': + '@vitest/spy@2.1.2': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.1': + '@vitest/utils@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 loupe: 3.1.1 tinyrainbow: 1.2.0 @@ -2306,7 +2306,7 @@ snapshots: globals@14.0.0: {} - globals@15.9.0: {} + globals@15.10.0: {} globby@14.0.2: dependencies: @@ -2604,26 +2604,26 @@ snapshots: reusify@1.0.4: {} - rollup@4.22.5: + rollup@4.24.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.5 - '@rollup/rollup-android-arm64': 4.22.5 - '@rollup/rollup-darwin-arm64': 4.22.5 - '@rollup/rollup-darwin-x64': 4.22.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.5 - '@rollup/rollup-linux-arm-musleabihf': 4.22.5 - '@rollup/rollup-linux-arm64-gnu': 4.22.5 - '@rollup/rollup-linux-arm64-musl': 4.22.5 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.5 - '@rollup/rollup-linux-riscv64-gnu': 4.22.5 - '@rollup/rollup-linux-s390x-gnu': 4.22.5 - '@rollup/rollup-linux-x64-gnu': 4.22.5 - '@rollup/rollup-linux-x64-musl': 4.22.5 - '@rollup/rollup-win32-arm64-msvc': 4.22.5 - '@rollup/rollup-win32-ia32-msvc': 4.22.5 - '@rollup/rollup-win32-x64-msvc': 4.22.5 + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -2793,7 +2793,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.1(@types/node@22.7.4): + vite-node@2.1.2(@types/node@22.7.4): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@9.4.0) @@ -2814,20 +2814,20 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.22.5 + rollup: 4.24.0 optionalDependencies: '@types/node': 22.7.4 fsevents: 2.3.3 - vitest@2.1.1(@types/node@22.7.4): + vitest@2.1.2(@types/node@22.7.4): dependencies: - '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.8(@types/node@22.7.4)) - '@vitest/pretty-format': 2.1.1 - '@vitest/runner': 2.1.1 - '@vitest/snapshot': 2.1.1 - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/expect': 2.1.2 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4)) + '@vitest/pretty-format': 2.1.2 + '@vitest/runner': 2.1.2 + '@vitest/snapshot': 2.1.2 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 debug: 4.3.7(supports-color@9.4.0) magic-string: 0.30.11 @@ -2838,7 +2838,7 @@ snapshots: tinypool: 1.0.1 tinyrainbow: 1.2.0 vite: 5.4.8(@types/node@22.7.4) - vite-node: 2.1.1(@types/node@22.7.4) + vite-node: 2.1.2(@types/node@22.7.4) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.7.4 diff --git a/src/base64.ts b/src/base64.ts index 45b0941..79762b1 100644 --- a/src/base64.ts +++ b/src/base64.ts @@ -1,11 +1,11 @@ -export function toBase64(input: string): string { - const bytes = new TextEncoder().encode(input) - const string = String.fromCodePoint(...bytes) - return btoa(string) -} - export function fromBase64(base64: string): Buffer | Uint8Array | string { const string = atob(base64) const bytes = Uint8Array.from(string, v => v.codePointAt(0) ?? 0) return new TextDecoder().decode(bytes) } + +export function toBase64(input: string): string { + const bytes = new TextEncoder().encode(input) + const string = String.fromCodePoint(...bytes) + return btoa(string) +} diff --git a/src/cloud/index.ts b/src/cloud/index.ts index 1114719..f7e9a95 100644 --- a/src/cloud/index.ts +++ b/src/cloud/index.ts @@ -1,2 +1,2 @@ export * from "./client.js" -export type * as cloud from "./openapi/index.js" +export type * from "./openapi/index.js" diff --git a/src/index.ts b/src/index.ts index ce4bf6b..f9be965 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,3 @@ export * from "./base64.js" -export * from "./cloud/index.js" -export * from "./server/index.js" +export * as cloud from "./cloud/index.js" +export * as server from "./server/index.js" diff --git a/src/server/webhooks/events/index.ts b/src/server/webhooks/events/index.ts index be1f14c..5fbf626 100644 --- a/src/server/webhooks/events/index.ts +++ b/src/server/webhooks/events/index.ts @@ -2,3 +2,4 @@ export * from "./event.js" export * as pr from "./pr/index.js" export * as project from "./project/index.js" export * as repo from "./repo/index.js" +export * from "./suggestion_state.js" diff --git a/src/server/webhooks/events/pr/comment_added.ts b/src/server/webhooks/events/pr/comment_added.ts index d6940d2..39057b0 100644 --- a/src/server/webhooks/events/pr/comment_added.ts +++ b/src/server/webhooks/events/pr/comment_added.ts @@ -7,6 +7,7 @@ import type { SchemaRepository, SchemaRestMinimalRef, } from "../../../openapi/openapi-typescript.js" +import type { SuggestionState } from "../suggestion_state.js" export interface Actor { readonly active: boolean @@ -75,7 +76,7 @@ export interface Project { export interface Properties { readonly repositoryId: number - readonly suggestionState: string + readonly suggestionState?: SuggestionState } export interface PullRequest { diff --git a/src/server/webhooks/events/pr/declined.ts b/src/server/webhooks/events/pr/declined.ts index b76d8d8..cf0bd2f 100644 --- a/src/server/webhooks/events/pr/declined.ts +++ b/src/server/webhooks/events/pr/declined.ts @@ -11,6 +11,15 @@ export interface Actor { readonly name: string readonly slug: string readonly type: string + readonly links: ActorLinks +} + +export interface ActorLinks { + readonly self: Self[] +} + +export interface Self { + readonly href: string } export interface Author { @@ -56,6 +65,8 @@ export interface PullRequest { readonly toRef: Ref readonly updatedDate: number readonly version: number + readonly links: ActorLinks + readonly description: string } export interface Ref { diff --git a/src/server/webhooks/events/pr/merged.ts b/src/server/webhooks/events/pr/merged.ts index ef02e25..b11a4f5 100644 --- a/src/server/webhooks/events/pr/merged.ts +++ b/src/server/webhooks/events/pr/merged.ts @@ -1,7 +1,7 @@ import type { SchemaPullRequest, SchemaRepository, -} from "../../../openapi/openapi-typescript.js" +} from "../../../openapi/index.js" export interface Actor { readonly active: boolean diff --git a/src/server/webhooks/events/pr/modified.ts b/src/server/webhooks/events/pr/modified.ts index 1cdcc7c..7950c8a 100644 --- a/src/server/webhooks/events/pr/modified.ts +++ b/src/server/webhooks/events/pr/modified.ts @@ -1,7 +1,7 @@ import type { SchemaPullRequest, SchemaRepository, -} from "../../../openapi/openapi-typescript.js" +} from "../../../openapi/index.js" export interface Actor { readonly active: boolean @@ -11,6 +11,15 @@ export interface Actor { readonly name: string readonly slug: string readonly type: string + readonly links: ActorLinks +} + +export interface ActorLinks { + readonly self: Self[] +} + +export interface Self { + readonly href: string } export interface Author { @@ -29,27 +38,30 @@ export interface PRModified { readonly previousDescription: string readonly previousDraft: boolean /** Previous target of the pull request, may not have changed */ - readonly previousTarget: PreviousTarget + readonly previousTarget: Ref /** Previous title of the pull request, may not have changed */ readonly previousTitle: string /** Details of the pull request created. */ readonly pullRequest: PullRequest } -export interface PreviousTarget { +export interface Ref { readonly displayId: string readonly id: string - readonly latestChangeset: string + readonly latestChangeset?: string readonly latestCommit: string readonly type: string + readonly repository?: Repository } export interface Project { readonly id: number readonly key: string readonly name: string - readonly owner: Actor + readonly owner?: Actor readonly type: string + readonly public: boolean + readonly links: ActorLinks } export interface PullRequest { @@ -69,13 +81,7 @@ export interface PullRequest { readonly toRef: Ref readonly updatedDate: number readonly version: number -} - -export interface Ref { - readonly displayId: string - readonly id: string - readonly latestCommit: string - readonly repository: Repository + readonly links: ActorLinks } export interface Repository { @@ -88,4 +94,17 @@ export interface Repository { readonly slug: string readonly state: SchemaRepository["state"] readonly statusMessage: string + readonly hierarchyId: string + readonly archived: boolean + readonly links: RepositoryLinks +} + +export interface RepositoryLinks { + readonly clone: Clone[] + readonly self: Self[] +} + +export interface Clone { + readonly href: string + readonly name: string } diff --git a/src/server/webhooks/events/pr/opened.ts b/src/server/webhooks/events/pr/opened.ts index ce1cc4a..88d18af 100644 --- a/src/server/webhooks/events/pr/opened.ts +++ b/src/server/webhooks/events/pr/opened.ts @@ -1,7 +1,7 @@ import type { SchemaPullRequest, SchemaRepository, -} from "../../../openapi/openapi-typescript.js" +} from "../../../openapi/index.js" export interface Actor { readonly active: boolean @@ -11,6 +11,15 @@ export interface Actor { readonly name: string readonly slug: string readonly type: string + readonly links: SelfLinks +} + +export interface SelfLinks { + readonly self: Self[] +} + +export interface Self { + readonly href: string } export interface Author { @@ -39,6 +48,7 @@ export interface Project { readonly name: string readonly public: boolean readonly type: string + readonly links: SelfLinks } export interface PullRequest { @@ -58,12 +68,14 @@ export interface PullRequest { readonly toRef: Ref readonly updatedDate: number readonly version: number + readonly description: string } export interface Ref { readonly displayId: string readonly id: string readonly latestCommit: string + readonly type: string readonly repository: Repository } @@ -77,4 +89,17 @@ export interface Repository { readonly slug: string readonly state: SchemaRepository["state"] readonly statusMessage: string + readonly hierarchyId: string + readonly archived: boolean + readonly links: RepositoryLinks +} + +export interface RepositoryLinks { + readonly clone: Clone[] + readonly self: Self[] +} + +export interface Clone { + readonly href: string + readonly name: string } diff --git a/src/server/webhooks/events/suggestion_state.ts b/src/server/webhooks/events/suggestion_state.ts new file mode 100644 index 0000000..cd94caf --- /dev/null +++ b/src/server/webhooks/events/suggestion_state.ts @@ -0,0 +1,6 @@ +export const suggestionState = { + UNAPPLIED: "UNAPPLIED", +} as const + +export type SuggestionState = + (typeof suggestionState)[keyof typeof suggestionState] diff --git a/tests/cloud/client.ts b/tests/cloud/client.ts index 34f4261..f47280f 100644 --- a/tests/cloud/client.ts +++ b/tests/cloud/client.ts @@ -1,4 +1,5 @@ -import { createBitbucketCloudClient, toBase64 } from "../../src/index.js" +import { createBitbucketCloudClient } from "../../src/cloud/index.js" +import { toBase64 } from "../../src/index.js" import { BITBUCKET_CLOUD_APP_PASSWORD, BITBUCKET_CLOUD_URL, @@ -6,7 +7,7 @@ import { } from "../env.js" const basic = toBase64( - BITBUCKET_CLOUD_USERNAME + ":" + BITBUCKET_CLOUD_APP_PASSWORD, + `${BITBUCKET_CLOUD_USERNAME}:${BITBUCKET_CLOUD_APP_PASSWORD}`, ) export const client = createBitbucketCloudClient({ diff --git a/tests/env.ts b/tests/env.ts index a5a7d3f..4658126 100644 --- a/tests/env.ts +++ b/tests/env.ts @@ -89,7 +89,6 @@ export const BITBUCKET_CLOUD_APP_PASSWORD = envString( export const BITBUCKET_SERVER_URL = envUrl("BITBUCKET_SERVER_URL") export const BITBUCKET_SERVER_TOKEN = envString("BITBUCKET_SERVER_TOKEN") export const NODE_ENV = parsed.NODE_ENV - export const BITBUCKET_SERVER_TEST_PROJECT_KEY = envString( "BITBUCKET_SERVER_TEST_PROJECT_KEY", ) diff --git a/tests/server/client.ts b/tests/server/client.ts index 5961027..d97526a 100644 --- a/tests/server/client.ts +++ b/tests/server/client.ts @@ -1,4 +1,4 @@ -import { createBitbucketServerClient } from "../../src/index.js" +import { createBitbucketServerClient } from "../../src/server/index.js" import { BITBUCKET_SERVER_TOKEN, BITBUCKET_SERVER_URL } from "../env.js" export const client = createBitbucketServerClient({ diff --git a/typedoc.json b/typedoc.json index df59887..84e4ec9 100644 --- a/typedoc.json +++ b/typedoc.json @@ -1,5 +1,9 @@ { "$schema": "https://typedoc.org/schema.json", - "entryPoints": ["./src/index.ts"], + "entryPoints": [ + "./src/index.ts", + "./src/cloud/index.ts", + "./src/server/index.ts" + ], "highlightLanguages": ["ini", "sh", "ts"] }