From aaf0b3e148e0c9092dfa53466a54dc434b8f0606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Ayhan?= Date: Sun, 6 Jul 2025 00:35:04 +0300 Subject: [PATCH 1/5] doc: contributing file --- CONTRIBUTING.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebc0b09..3fb5561 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -71,12 +71,12 @@ Commit messages should follow [Conventional Commits](https://www.conventionalcom **Recommended format:** `type(scope)!: subject` -| Field | Details | -|-------|---------| -| `type` | Optional: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert` | -| `scope` | Optional: `cli`, `firestore`, `rtdb`, `remote-config`, `auth`, `config`, `release`, `docs`, `deps` | -| `!` | Optional: marks a breaking change | -| `subject` | Describe the change (no format enforcement) | +| Field | Details | +| --------- | ------------------------------------------------------------------------------------------------------ | +| `type` | Optional: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert` | +| `scope` | Optional: `cli`, `firestore`, `rtdb`, `remote-config`, `auth`, `config`, `release`, `docs`, `deps` | +| `!` | Optional: marks a breaking change | +| `subject` | Describe the change (no format enforcement) | **Examples:** From 5f6a885049c2aab5313bac3f7471cd91d4465b7d Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:33:06 +0300 Subject: [PATCH 2/5] ci: add lenient conventional commits and PR title checks (#55) * Initial plan * ci: enforce conventional commits and PR titles - Add .github/copilot-instructions.md with conventions and checklists - Add .github/workflows/conventional-pr-title.yml for PR title enforcement - Add .github/workflows/commitlint.yml for commit message enforcement - Add commitlint.config.cjs with config-conventional and custom scopes - Update package.json with @commitlint/cli and @commitlint/config-conventional devDeps - Update CONTRIBUTING.md to document commit and PR title conventions Co-authored-by: omer-ayhan <32736625+omer-ayhan@users.noreply.github.com> * docs: add base branch rule to copilot instructions Co-authored-by: omer-ayhan <32736625+omer-ayhan@users.noreply.github.com> * fix(ci): remove subject enforcement from commitlint and PR title check Co-authored-by: omer-ayhan <32736625+omer-ayhan@users.noreply.github.com> * fix(ci): make commit type non-mandatory, only basic message is required Co-authored-by: omer-ayhan <32736625+omer-ayhan@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: omer-ayhan <32736625+omer-ayhan@users.noreply.github.com> --- yarn.lock | 226 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 126 insertions(+), 100 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2452e8a..c5787eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -277,126 +277,152 @@ resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz" integrity sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA== -"@esbuild/android-arm@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz" - integrity sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA== +"@commitlint/config-conventional@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.4.3.tgz" + integrity sha512-9RtLySbYQAs8yEqWEqhSZo9nYhbm57jx7qHXtgRmv/nmeQIjjMcwf6Dl+y5UZcGWgWx435TAYBURONaJIuCjWg== + dependencies: + "@commitlint/types" "^20.4.3" + conventional-changelog-conventionalcommits "^9.2.0" -"@esbuild/android-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz" - integrity sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg== +"@commitlint/config-validator@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.4.3.tgz" + integrity sha512-jCZpZFkcSL3ZEdL5zgUzFRdytv3xPo8iukTe9VA+QGus/BGhpp1xXSVu2B006GLLb2gYUAEGEqv64kTlpZNgmA== + dependencies: + "@commitlint/types" "^20.4.3" + ajv "^8.11.0" -"@esbuild/android-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz" - integrity sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw== +"@commitlint/ensure@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.4.3.tgz" + integrity sha512-WcXGKBNn0wBKpX8VlXgxqedyrLxedIlLBCMvdamLnJFEbUGJ9JZmBVx4vhLV3ZyA8uONGOb+CzW0Y9HDbQ+ONQ== + dependencies: + "@commitlint/types" "^20.4.3" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" -"@esbuild/darwin-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz" - integrity sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ== +"@commitlint/execute-rule@^20.0.0": + version "20.0.0" + resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-20.0.0.tgz" + integrity sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw== -"@esbuild/darwin-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz" - integrity sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ== +"@commitlint/format@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/format/-/format-20.4.3.tgz" + integrity sha512-UDJVErjLbNghop6j111rsHJYGw6MjCKAi95K0GT2yf4eeiDHy3JDRLWYWEjIaFgO+r+dQSkuqgJ1CdMTtrvHsA== + dependencies: + "@commitlint/types" "^20.4.3" + picocolors "^1.1.1" -"@esbuild/freebsd-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz" - integrity sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw== +"@commitlint/is-ignored@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.4.3.tgz" + integrity sha512-W5VQKZ7fdJ1X3Tko+h87YZaqRMGN1KvQKXyCM8xFdxzMIf1KCZgN4uLz3osLB1zsFcVS4ZswHY64LI26/9ACag== + dependencies: + "@commitlint/types" "^20.4.3" + semver "^7.6.0" -"@esbuild/freebsd-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz" - integrity sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw== +"@commitlint/lint@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-20.4.3.tgz" + integrity sha512-CYOXL23e+nRKij81+d0+dymtIi7Owl9QzvblJYbEfInON/4MaETNSLFDI74LDu+YJ0ML5HZyw9Vhp9QpckwQ0A== + dependencies: + "@commitlint/is-ignored" "^20.4.3" + "@commitlint/parse" "^20.4.3" + "@commitlint/rules" "^20.4.3" + "@commitlint/types" "^20.4.3" -"@esbuild/linux-arm@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz" - integrity sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw== +"@commitlint/load@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/load/-/load-20.4.3.tgz" + integrity sha512-3cdJOUVP+VcgHa7bhJoWS+Z8mBNXB5aLWMBu7Q7uX8PSeWDzdbrBlR33J1MGGf7r1PZDp+mPPiFktk031PgdRw== + dependencies: + "@commitlint/config-validator" "^20.4.3" + "@commitlint/execute-rule" "^20.0.0" + "@commitlint/resolve-extends" "^20.4.3" + "@commitlint/types" "^20.4.3" + cosmiconfig "^9.0.1" + cosmiconfig-typescript-loader "^6.1.0" + is-plain-obj "^4.1.0" + lodash.mergewith "^4.6.2" + picocolors "^1.1.1" -"@esbuild/linux-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz" - integrity sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg== +"@commitlint/message@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/message/-/message-20.4.3.tgz" + integrity sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ== -"@esbuild/linux-ia32@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz" - integrity sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA== +"@commitlint/parse@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-20.4.3.tgz" + integrity sha512-hzC3JCo3zs3VkQ833KnGVuWjWIzR72BWZWjQM7tY/7dfKreKAm7fEsy71tIFCRtxf2RtMP2d3RLF1U9yhFSccA== + dependencies: + "@commitlint/types" "^20.4.3" + conventional-changelog-angular "^8.2.0" + conventional-commits-parser "^6.3.0" -"@esbuild/linux-loong64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz" - integrity sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg== +"@commitlint/read@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/read/-/read-20.4.3.tgz" + integrity sha512-j42OWv3L31WfnP8WquVjHZRt03w50Y/gEE8FAyih7GQTrIv2+pZ6VZ6pWLD/ml/3PO+RV2SPtRtTp/MvlTb8rQ== + dependencies: + "@commitlint/top-level" "^20.4.3" + "@commitlint/types" "^20.4.3" + git-raw-commits "^4.0.0" + minimist "^1.2.8" + tinyexec "^1.0.0" -"@esbuild/linux-mips64el@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz" - integrity sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg== +"@commitlint/resolve-extends@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.4.3.tgz" + integrity sha512-QucxcOy+00FhS9s4Uy0OyS5HeUV+hbC6OLqkTSIm6fwMdKva+OEavaCDuLtgd9akZZlsUo//XzSmPP3sLKBPog== + dependencies: + "@commitlint/config-validator" "^20.4.3" + "@commitlint/types" "^20.4.3" + global-directory "^4.0.1" + import-meta-resolve "^4.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" -"@esbuild/linux-ppc64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz" - integrity sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ== +"@commitlint/rules@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-20.4.3.tgz" + integrity sha512-Yuosd7Grn5qiT7FovngXLyRXTMUbj9PYiSkvUgWK1B5a7+ZvrbWDS7epeUapYNYatCy/KTpPFPbgLUdE+MUrBg== + dependencies: + "@commitlint/ensure" "^20.4.3" + "@commitlint/message" "^20.4.3" + "@commitlint/to-lines" "^20.0.0" + "@commitlint/types" "^20.4.3" -"@esbuild/linux-riscv64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz" - integrity sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA== +"@commitlint/to-lines@^20.0.0": + version "20.0.0" + resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-20.0.0.tgz" + integrity sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw== -"@esbuild/linux-s390x@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz" - integrity sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ== +"@commitlint/top-level@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.4.3.tgz" + integrity sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ== + dependencies: + escalade "^3.2.0" + +"@commitlint/types@^20.4.3": + version "20.4.3" + resolved "https://registry.npmjs.org/@commitlint/types/-/types-20.4.3.tgz" + integrity sha512-51OWa1Gi6ODOasPmfJPq6js4pZoomima4XLZZCrkldaH2V5Nb3bVhNXPeT6XV0gubbainSpTw4zi68NqAeCNCg== + dependencies: + conventional-commits-parser "^6.3.0" + picocolors "^1.1.1" "@esbuild/linux-x64@0.25.5": version "0.25.5" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz" integrity sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw== -"@esbuild/netbsd-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz" - integrity sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw== - -"@esbuild/netbsd-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz" - integrity sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ== - -"@esbuild/openbsd-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz" - integrity sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw== - -"@esbuild/openbsd-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz" - integrity sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg== - -"@esbuild/sunos-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz" - integrity sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA== - -"@esbuild/win32-arm64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz" - integrity sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw== - -"@esbuild/win32-ia32@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz" - integrity sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ== - -"@esbuild/win32-x64@0.25.5": - version "0.25.5" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz" - integrity sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g== - "@fastify/busboy@^3.0.0": version "3.1.1" resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz" From 584e48bd8f9b33a15094c28e9e8e011de76f1ace Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:36:47 +0000 Subject: [PATCH 3/5] Initial plan From ad7df83578f60522f6ab13c10c26741732877358 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:40:41 +0000 Subject: [PATCH 4/5] feat(ci): add Bun support for improved performance Co-authored-by: omer-ayhan <32736625+omer-ayhan@users.noreply.github.com> --- .github/workflows/bun-compat.yml | 39 ++++++++++++++++++++++++++++++++ README.md | 21 ++++++++++++++++- llm.txt | 3 ++- npm-shrinkwrap.json | 1 + package.json | 3 ++- 5 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/bun-compat.yml diff --git a/.github/workflows/bun-compat.yml b/.github/workflows/bun-compat.yml new file mode 100644 index 0000000..3fac4bf --- /dev/null +++ b/.github/workflows/bun-compat.yml @@ -0,0 +1,39 @@ +name: Bun Compatibility + +on: + push: + branches: [development] + pull_request: + branches: [main, development] + +permissions: + contents: read + +jobs: + bun-compat: + name: Verify Bun compatibility + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + + - name: Install dependencies with Bun + run: bun install + + - name: TypeScript compilation check + run: bunx tsc --noEmit + + - name: Build project with Bun + run: bun esbuild.config.js && chmod +x dist/index.js + + - name: Test CLI help (Bun) + run: bun run dist/index.js --help + + - name: All Bun checks passed + run: echo "✅ Bun compatibility checks passed successfully!" diff --git a/README.md b/README.md index dc0f9f9..fb623b1 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![License][license-image]][license-url] [![Node Version][node-badge]][npm] [![NPM version][npm-badge]][npm] +[![Bun compatible][bun-badge]][bun-url] The Firebase Tools CLI is a command-line interface for managing Firebase services including Firestore, Realtime Database, and Remote Config. It provides powerful tools to export, import, query, and manage your Firebase data from the command line. @@ -29,6 +30,22 @@ npm install -g firebase-tools-cli This will provide you with the globally accessible `firebase-tools-cli` command. +### Bun + +Firebase Tools CLI also supports [Bun](https://bun.sh/) (>=1.0.0) as a runtime. You can install it globally using Bun's package manager: + +```bash +bun install -g firebase-tools-cli +``` + +Or run commands directly with Bun after a local install: + +```bash +bun run firebase-tools-cli --help +``` + +> **Note:** Core features are expected to be compatible with Bun. Some interactive prompts that rely on Node.js-specific stdin handling may behave slightly differently under Bun. If you encounter issues, please [open an issue](https://github.com/omer-ayhan/firebase-tools-cli/issues). + ## Commands **The command `firebase-tools-cli --help` lists the available commands and `firebase-tools-cli --help` shows more details for an individual command.** @@ -130,7 +147,7 @@ firebase-tools-cli remote-config:convert config.json --version-number 2 --user-e ## Requirements -- Node.js >= 18.0.0 +- Node.js >= 18.0.0 **or** Bun >= 1.0.0 - Valid Firebase project with appropriate permissions - Service account key @@ -161,3 +178,5 @@ Firebase Tools CLI is licensed under the [MIT License](LICENSE.txt). [node-badge]: https://img.shields.io/node/v/firebase-tools-cli.svg [npm]: https://www.npmjs.com/package/firebase-tools-cli [npm-badge]: https://img.shields.io/npm/v/firebase-tools-cli.svg +[bun-badge]: https://img.shields.io/badge/bun-%3E%3D1.0.0-black?logo=bun +[bun-url]: https://bun.sh diff --git a/llm.txt b/llm.txt index 90a89cd..9d3f688 100644 --- a/llm.txt +++ b/llm.txt @@ -271,6 +271,7 @@ firebase-tools-cli - Use service account for production workflows ## Version Information -- Node.js: >=14.0.0 required +- Node.js: >=18.0.0 required (or Bun >=1.0.0) +- Bun: >=1.0.0 supported as an alternative runtime - Firebase Admin SDK: v12.0.0+ - Supports all current Firestore features and regions \ No newline at end of file diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 05bbaea..34c69fc 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -33,6 +33,7 @@ "typescript": "^5.8.3" }, "engines": { + "bun": ">=1.0.0", "node": ">=18.0.0" } }, diff --git a/package.json b/package.json index ad291a4..0dd4922 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,8 @@ "open": "^8.4.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0", + "bun": ">=1.0.0" }, "repository": { "type": "git", From 78616ce7dbb59dff1b47336c8e7f9c2cc2d7e449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Ayhan?= Date: Sat, 7 Mar 2026 16:55:24 +0300 Subject: [PATCH 5/5] build: update yarn lock file --- yarn.lock | 226 ++++++++++++++++++++++++------------------------------ 1 file changed, 100 insertions(+), 126 deletions(-) diff --git a/yarn.lock b/yarn.lock index c5787eb..2452e8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -277,152 +277,126 @@ resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz" integrity sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA== -"@commitlint/config-conventional@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.4.3.tgz" - integrity sha512-9RtLySbYQAs8yEqWEqhSZo9nYhbm57jx7qHXtgRmv/nmeQIjjMcwf6Dl+y5UZcGWgWx435TAYBURONaJIuCjWg== - dependencies: - "@commitlint/types" "^20.4.3" - conventional-changelog-conventionalcommits "^9.2.0" - -"@commitlint/config-validator@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.4.3.tgz" - integrity sha512-jCZpZFkcSL3ZEdL5zgUzFRdytv3xPo8iukTe9VA+QGus/BGhpp1xXSVu2B006GLLb2gYUAEGEqv64kTlpZNgmA== - dependencies: - "@commitlint/types" "^20.4.3" - ajv "^8.11.0" +"@esbuild/android-arm@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz" + integrity sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA== -"@commitlint/ensure@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.4.3.tgz" - integrity sha512-WcXGKBNn0wBKpX8VlXgxqedyrLxedIlLBCMvdamLnJFEbUGJ9JZmBVx4vhLV3ZyA8uONGOb+CzW0Y9HDbQ+ONQ== - dependencies: - "@commitlint/types" "^20.4.3" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.upperfirst "^4.3.1" +"@esbuild/android-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz" + integrity sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg== -"@commitlint/execute-rule@^20.0.0": - version "20.0.0" - resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-20.0.0.tgz" - integrity sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw== +"@esbuild/android-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz" + integrity sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw== -"@commitlint/format@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/format/-/format-20.4.3.tgz" - integrity sha512-UDJVErjLbNghop6j111rsHJYGw6MjCKAi95K0GT2yf4eeiDHy3JDRLWYWEjIaFgO+r+dQSkuqgJ1CdMTtrvHsA== - dependencies: - "@commitlint/types" "^20.4.3" - picocolors "^1.1.1" +"@esbuild/darwin-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz" + integrity sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ== -"@commitlint/is-ignored@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.4.3.tgz" - integrity sha512-W5VQKZ7fdJ1X3Tko+h87YZaqRMGN1KvQKXyCM8xFdxzMIf1KCZgN4uLz3osLB1zsFcVS4ZswHY64LI26/9ACag== - dependencies: - "@commitlint/types" "^20.4.3" - semver "^7.6.0" +"@esbuild/darwin-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz" + integrity sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ== -"@commitlint/lint@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-20.4.3.tgz" - integrity sha512-CYOXL23e+nRKij81+d0+dymtIi7Owl9QzvblJYbEfInON/4MaETNSLFDI74LDu+YJ0ML5HZyw9Vhp9QpckwQ0A== - dependencies: - "@commitlint/is-ignored" "^20.4.3" - "@commitlint/parse" "^20.4.3" - "@commitlint/rules" "^20.4.3" - "@commitlint/types" "^20.4.3" +"@esbuild/freebsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz" + integrity sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw== -"@commitlint/load@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/load/-/load-20.4.3.tgz" - integrity sha512-3cdJOUVP+VcgHa7bhJoWS+Z8mBNXB5aLWMBu7Q7uX8PSeWDzdbrBlR33J1MGGf7r1PZDp+mPPiFktk031PgdRw== - dependencies: - "@commitlint/config-validator" "^20.4.3" - "@commitlint/execute-rule" "^20.0.0" - "@commitlint/resolve-extends" "^20.4.3" - "@commitlint/types" "^20.4.3" - cosmiconfig "^9.0.1" - cosmiconfig-typescript-loader "^6.1.0" - is-plain-obj "^4.1.0" - lodash.mergewith "^4.6.2" - picocolors "^1.1.1" +"@esbuild/freebsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz" + integrity sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw== -"@commitlint/message@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/message/-/message-20.4.3.tgz" - integrity sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ== +"@esbuild/linux-arm@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz" + integrity sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw== -"@commitlint/parse@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-20.4.3.tgz" - integrity sha512-hzC3JCo3zs3VkQ833KnGVuWjWIzR72BWZWjQM7tY/7dfKreKAm7fEsy71tIFCRtxf2RtMP2d3RLF1U9yhFSccA== - dependencies: - "@commitlint/types" "^20.4.3" - conventional-changelog-angular "^8.2.0" - conventional-commits-parser "^6.3.0" +"@esbuild/linux-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz" + integrity sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg== -"@commitlint/read@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/read/-/read-20.4.3.tgz" - integrity sha512-j42OWv3L31WfnP8WquVjHZRt03w50Y/gEE8FAyih7GQTrIv2+pZ6VZ6pWLD/ml/3PO+RV2SPtRtTp/MvlTb8rQ== - dependencies: - "@commitlint/top-level" "^20.4.3" - "@commitlint/types" "^20.4.3" - git-raw-commits "^4.0.0" - minimist "^1.2.8" - tinyexec "^1.0.0" +"@esbuild/linux-ia32@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz" + integrity sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA== -"@commitlint/resolve-extends@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.4.3.tgz" - integrity sha512-QucxcOy+00FhS9s4Uy0OyS5HeUV+hbC6OLqkTSIm6fwMdKva+OEavaCDuLtgd9akZZlsUo//XzSmPP3sLKBPog== - dependencies: - "@commitlint/config-validator" "^20.4.3" - "@commitlint/types" "^20.4.3" - global-directory "^4.0.1" - import-meta-resolve "^4.0.0" - lodash.mergewith "^4.6.2" - resolve-from "^5.0.0" +"@esbuild/linux-loong64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz" + integrity sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg== -"@commitlint/rules@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-20.4.3.tgz" - integrity sha512-Yuosd7Grn5qiT7FovngXLyRXTMUbj9PYiSkvUgWK1B5a7+ZvrbWDS7epeUapYNYatCy/KTpPFPbgLUdE+MUrBg== - dependencies: - "@commitlint/ensure" "^20.4.3" - "@commitlint/message" "^20.4.3" - "@commitlint/to-lines" "^20.0.0" - "@commitlint/types" "^20.4.3" +"@esbuild/linux-mips64el@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz" + integrity sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg== -"@commitlint/to-lines@^20.0.0": - version "20.0.0" - resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-20.0.0.tgz" - integrity sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw== +"@esbuild/linux-ppc64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz" + integrity sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ== -"@commitlint/top-level@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.4.3.tgz" - integrity sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ== - dependencies: - escalade "^3.2.0" +"@esbuild/linux-riscv64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz" + integrity sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA== -"@commitlint/types@^20.4.3": - version "20.4.3" - resolved "https://registry.npmjs.org/@commitlint/types/-/types-20.4.3.tgz" - integrity sha512-51OWa1Gi6ODOasPmfJPq6js4pZoomima4XLZZCrkldaH2V5Nb3bVhNXPeT6XV0gubbainSpTw4zi68NqAeCNCg== - dependencies: - conventional-commits-parser "^6.3.0" - picocolors "^1.1.1" +"@esbuild/linux-s390x@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz" + integrity sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ== "@esbuild/linux-x64@0.25.5": version "0.25.5" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz" integrity sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw== +"@esbuild/netbsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz" + integrity sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw== + +"@esbuild/netbsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz" + integrity sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ== + +"@esbuild/openbsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz" + integrity sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw== + +"@esbuild/openbsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz" + integrity sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg== + +"@esbuild/sunos-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz" + integrity sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA== + +"@esbuild/win32-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz" + integrity sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw== + +"@esbuild/win32-ia32@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz" + integrity sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ== + +"@esbuild/win32-x64@0.25.5": + version "0.25.5" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz" + integrity sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g== + "@fastify/busboy@^3.0.0": version "3.1.1" resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz"