From 5fa318e2e99bb4f9f399917e48680b279a333ddb Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 03:54:51 +0600 Subject: [PATCH 01/16] chore: configure Conventional Commits, Husky, and Changesets --- .changeset/README.md | 8 + .changeset/config.json | 13 + .husky/commit-msg | 3 + .husky/install.mjs | 6 + .husky/pre-commit | 3 + commitlint.config.js | 4 + create-db/package.json | 31 +- package.json | 10 + pnpm-lock.yaml | 1483 +++++++++++++++++++++++++++++++++++++++- 9 files changed, 1541 insertions(+), 20 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100755 .husky/commit-msg create mode 100644 .husky/install.mjs create mode 100644 .husky/pre-commit create mode 100644 commitlint.config.js diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..07240be --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", + "changelog": [ + "@changesets/cli/changelog", + { "repo": "https://github.com/prisma/create-db" } + ], + "commit": false, + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": ["create-db-worker", "claim-db-worker"], + "linked": [["create-db", "create-db-worker", "claim-db-worker"]] +} diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..17d0778 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,3 @@ +# commit-msg → enforce Conventional Commits +echo "pnpm exec commitlint --edit \"$1\"" > .husky/commit-msg +chmod +x .husky/commit-msg diff --git a/.husky/install.mjs b/.husky/install.mjs new file mode 100644 index 0000000..920bd55 --- /dev/null +++ b/.husky/install.mjs @@ -0,0 +1,6 @@ +// Skip Husky install in production and CI +if (process.env.NODE_ENV === "production" || process.env.CI === "true") { + process.exit(0); +} +const husky = (await import("husky")).default; +console.log(husky()); diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..6094110 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,3 @@ +# (optional) pre-commit → lint staged files +echo "pnpm exec lint-staged" > .husky/pre-commit +chmod +x .husky/pre-commit \ No newline at end of file diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..8e64ec7 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,4 @@ +// commitlint.config.js +module.exports = { + extends: ["@commitlint/config-conventional"], +}; diff --git a/create-db/package.json b/create-db/package.json index d1912af..e14837d 100644 --- a/create-db/package.json +++ b/create-db/package.json @@ -1,14 +1,30 @@ { "name": "create-db", "version": "0.0.1", - "description": "", + "description": "Instantly create a temporary Prisma Postgres database with one command, then claim and persist it in your Prisma Data Platform project when ready.", "main": "index.js", - "keywords": [], "author": "", + "repository": { + "type": "git", + "url": "git+https://github.com/prisma/create-db.git" + }, + "bugs": { + "url": "https://github.com/prisma/create-db/issues" + }, + "homepage": "https://github.com/prisma/create-db#readme", + "keywords": [ + "prisma", + "postgres", + "cli", + "database", + "temporary" + ], "license": "ISC", "type": "module", "bin": { - "create-db": "./index.js" + "create-db": "./index.js", + "create-postgres": "./index.js", + "create-pg": "./index.js" }, "dependencies": { "@clack/prompts": "^0.11.0", @@ -16,5 +32,12 @@ "clipboardy": "^4.0.0", "dotenv": "^16.6.1", "terminal-link": "^4.0.0" - } + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "index.js", + "README.md" + ] } diff --git a/package.json b/package.json index 12c10a3..5a0e08a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,17 @@ "name": "create-db-monorepo", "version": "1.0.0", "private": true, + "scripts": { + "changeset": "changeset", + "version": "changeset version", + "publish:cli": "changeset publish --filter create-db", + "prepare": "node .husky/install.mjs" + }, "devDependencies": { + "@changesets/cli": "^2.29.5", + "@commitlint/cli": "^19.8.1", + "@commitlint/config-conventional": "^19.8.1", + "husky": "^9.1.7", "prettier": "^3.0.0", "typescript": "^5.0.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f79ee3..4cb050c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,18 @@ importers: .: devDependencies: + '@changesets/cli': + specifier: ^2.29.5 + version: 2.29.5 + '@commitlint/cli': + specifier: ^19.8.1 + version: 19.8.1(@types/node@24.0.14)(typescript@5.8.3) + '@commitlint/config-conventional': + specifier: ^19.8.1 + version: 19.8.1 + husky: + specifier: ^9.1.7 + version: 9.1.7 prettier: specifier: ^3.0.0 version: 3.6.2 @@ -19,13 +31,13 @@ importers: devDependencies: '@cloudflare/vitest-pool-workers': specifier: ^0.8.19 - version: 0.8.49(@vitest/runner@3.2.4)(@vitest/snapshot@3.2.4)(vitest@3.2.4) + version: 0.8.49(@vitest/runner@3.2.4)(@vitest/snapshot@3.2.4)(vitest@3.2.4(@types/node@24.0.14)(jiti@2.4.2)) typescript: specifier: ^5.5.2 version: 5.8.3 vitest: specifier: ~3.2.0 - version: 3.2.4 + version: 3.2.4(@types/node@24.0.14)(jiti@2.4.2) wrangler: specifier: ^4.22.0 version: 4.23.0 @@ -52,19 +64,86 @@ importers: devDependencies: '@cloudflare/vitest-pool-workers': specifier: ^0.8.19 - version: 0.8.49(@vitest/runner@3.2.4)(@vitest/snapshot@3.2.4)(vitest@3.2.4) + version: 0.8.49(@vitest/runner@3.2.4)(@vitest/snapshot@3.2.4)(vitest@3.2.4(@types/node@24.0.14)(jiti@2.4.2)) typescript: specifier: ^5.5.2 version: 5.8.3 vitest: specifier: ~3.2.0 - version: 3.2.4 + version: 3.2.4(@types/node@24.0.14)(jiti@2.4.2) wrangler: specifier: ^4.22.0 version: 4.23.0 packages: + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + engines: {node: '>=6.9.0'} + + '@changesets/apply-release-plan@7.0.12': + resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} + + '@changesets/assemble-release-plan@6.0.9': + resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} + + '@changesets/changelog-git@0.2.1': + resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + + '@changesets/cli@2.29.5': + resolution: {integrity: sha512-0j0cPq3fgxt2dPdFsg4XvO+6L66RC0pZybT9F4dG5TBrLA3jA/1pNkdTXH9IBBVHkgsKrNKenI3n1mPyPlIydg==} + hasBin: true + + '@changesets/config@3.1.1': + resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.3': + resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + + '@changesets/get-release-plan@4.0.13': + resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.4': + resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.1': + resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} + + '@changesets/pre@2.0.2': + resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + + '@changesets/read@0.6.5': + resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} + + '@changesets/should-skip-package@0.1.2': + resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.1.0': + resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + + '@changesets/write@0.4.0': + resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@clack/core@0.5.0': resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} @@ -121,6 +200,75 @@ packages: cpu: [x64] os: [win32] + '@commitlint/cli@19.8.1': + resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} + engines: {node: '>=v18'} + hasBin: true + + '@commitlint/config-conventional@19.8.1': + resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==} + engines: {node: '>=v18'} + + '@commitlint/config-validator@19.8.1': + resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==} + engines: {node: '>=v18'} + + '@commitlint/ensure@19.8.1': + resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==} + engines: {node: '>=v18'} + + '@commitlint/execute-rule@19.8.1': + resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==} + engines: {node: '>=v18'} + + '@commitlint/format@19.8.1': + resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==} + engines: {node: '>=v18'} + + '@commitlint/is-ignored@19.8.1': + resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==} + engines: {node: '>=v18'} + + '@commitlint/lint@19.8.1': + resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==} + engines: {node: '>=v18'} + + '@commitlint/load@19.8.1': + resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==} + engines: {node: '>=v18'} + + '@commitlint/message@19.8.1': + resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==} + engines: {node: '>=v18'} + + '@commitlint/parse@19.8.1': + resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==} + engines: {node: '>=v18'} + + '@commitlint/read@19.8.1': + resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==} + engines: {node: '>=v18'} + + '@commitlint/resolve-extends@19.8.1': + resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==} + engines: {node: '>=v18'} + + '@commitlint/rules@19.8.1': + resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==} + engines: {node: '>=v18'} + + '@commitlint/to-lines@19.8.1': + resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==} + engines: {node: '>=v18'} + + '@commitlint/top-level@19.8.1': + resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==} + engines: {node: '>=v18'} + + '@commitlint/types@19.8.1': + resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==} + engines: {node: '>=v18'} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -547,6 +695,24 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + '@rollup/rollup-android-arm-eabi@4.44.2': resolution: {integrity: sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==} cpu: [arm] @@ -650,12 +816,21 @@ packages: '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/conventional-commits-parser@5.0.1': + resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} + '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@24.0.14': + resolution: {integrity: sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==} + '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} @@ -685,6 +860,10 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} @@ -694,14 +873,38 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-escapes@7.0.0: resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} engines: {node: '>=18'} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} @@ -709,16 +912,28 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + birpc@0.2.14: resolution: {integrity: sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA==} blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + chai@5.2.0: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} @@ -727,10 +942,21 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} @@ -738,6 +964,10 @@ packages: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -752,14 +982,51 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + + conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + + conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + cosmiconfig-typescript-loader@6.1.0: + resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==} + engines: {node: '>=v18'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=9' + typescript: '>=5' + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} @@ -779,6 +1046,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -786,14 +1057,36 @@ packages: devalue@4.3.3: resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -807,6 +1100,15 @@ packages: engines: {node: '>=18'} hasBin: true + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -825,6 +1127,26 @@ packages: exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fdir@6.4.6: resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: @@ -833,11 +1155,35 @@ packages: picomatch: optional: true + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@7.0.0: + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} @@ -845,17 +1191,68 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + human-id@4.1.1: + resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + hasBin: true + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -864,15 +1261,47 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -884,18 +1313,96 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + loupe@3.1.4: resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} @@ -910,6 +1417,13 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -933,6 +1447,60 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -944,6 +1512,10 @@ packages: path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -954,14 +1526,27 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + picomatch@4.0.2: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@3.6.2: resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} @@ -970,11 +1555,47 @@ packages: printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rollup@4.44.2: resolution: {integrity: sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -1005,6 +1626,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -1013,6 +1638,16 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -1026,6 +1661,18 @@ packages: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -1045,16 +1692,30 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + terminal-link@4.0.0: resolution: {integrity: sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==} engines: {node: '>=18'} + text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} @@ -1071,6 +1732,14 @@ packages: resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} engines: {node: '>=14.0.0'} + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -1082,6 +1751,9 @@ packages: ufo@1.6.1: resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} @@ -1089,7 +1761,15 @@ packages: unenv@2.0.0-rc.17: resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==} - vite-node@3.2.4: + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -1187,6 +1867,10 @@ packages: '@cloudflare/workers-types': optional: true + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} @@ -1199,6 +1883,22 @@ packages: utf-8-validate: optional: true + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@1.2.1: + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + engines: {node: '>=12.20'} + youch@3.3.4: resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} @@ -1210,6 +1910,158 @@ packages: snapshots: + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/runtime@7.27.6': {} + + '@changesets/apply-release-plan@7.0.12': + dependencies: + '@changesets/config': 3.1.1 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.2 + + '@changesets/assemble-release-plan@6.0.9': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.2 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.29.5': + dependencies: + '@changesets/apply-release-plan': 7.0.12 + '@changesets/assemble-release-plan': 6.0.9 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-release-plan': 4.0.13 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.2 + spawndamnit: 3.0.1 + term-size: 2.2.1 + + '@changesets/config@3.1.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.3': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.2 + + '@changesets/get-release-plan@4.0.13': + dependencies: + '@changesets/assemble-release-plan': 6.0.9 + '@changesets/config': 3.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.1': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.5': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.1 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.1 + prettier: 2.8.8 + '@clack/core@0.5.0': dependencies: picocolors: 1.1.1 @@ -1231,7 +2083,7 @@ snapshots: optionalDependencies: workerd: 1.20250617.0 - '@cloudflare/vitest-pool-workers@0.8.49(@vitest/runner@3.2.4)(@vitest/snapshot@3.2.4)(vitest@3.2.4)': + '@cloudflare/vitest-pool-workers@0.8.49(@vitest/runner@3.2.4)(@vitest/snapshot@3.2.4)(vitest@3.2.4(@types/node@24.0.14)(jiti@2.4.2))': dependencies: '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -1240,7 +2092,7 @@ snapshots: devalue: 4.3.3 miniflare: 4.20250617.5 semver: 7.7.2 - vitest: 3.2.4 + vitest: 3.2.4(@types/node@24.0.14)(jiti@2.4.2) wrangler: 4.23.0 zod: 3.25.75 transitivePeerDependencies: @@ -1263,6 +2115,116 @@ snapshots: '@cloudflare/workerd-windows-64@1.20250617.0': optional: true + '@commitlint/cli@19.8.1(@types/node@24.0.14)(typescript@5.8.3)': + dependencies: + '@commitlint/format': 19.8.1 + '@commitlint/lint': 19.8.1 + '@commitlint/load': 19.8.1(@types/node@24.0.14)(typescript@5.8.3) + '@commitlint/read': 19.8.1 + '@commitlint/types': 19.8.1 + tinyexec: 1.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/config-conventional@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-conventionalcommits: 7.0.2 + + '@commitlint/config-validator@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + ajv: 8.17.1 + + '@commitlint/ensure@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + 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 + + '@commitlint/execute-rule@19.8.1': {} + + '@commitlint/format@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + chalk: 5.4.1 + + '@commitlint/is-ignored@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + semver: 7.7.2 + + '@commitlint/lint@19.8.1': + dependencies: + '@commitlint/is-ignored': 19.8.1 + '@commitlint/parse': 19.8.1 + '@commitlint/rules': 19.8.1 + '@commitlint/types': 19.8.1 + + '@commitlint/load@19.8.1(@types/node@24.0.14)(typescript@5.8.3)': + dependencies: + '@commitlint/config-validator': 19.8.1 + '@commitlint/execute-rule': 19.8.1 + '@commitlint/resolve-extends': 19.8.1 + '@commitlint/types': 19.8.1 + chalk: 5.4.1 + cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@24.0.14)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + + '@commitlint/message@19.8.1': {} + + '@commitlint/parse@19.8.1': + dependencies: + '@commitlint/types': 19.8.1 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + + '@commitlint/read@19.8.1': + dependencies: + '@commitlint/top-level': 19.8.1 + '@commitlint/types': 19.8.1 + git-raw-commits: 4.0.0 + minimist: 1.2.8 + tinyexec: 1.0.1 + + '@commitlint/resolve-extends@19.8.1': + dependencies: + '@commitlint/config-validator': 19.8.1 + '@commitlint/types': 19.8.1 + global-directory: 4.0.1 + import-meta-resolve: 4.1.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + + '@commitlint/rules@19.8.1': + dependencies: + '@commitlint/ensure': 19.8.1 + '@commitlint/message': 19.8.1 + '@commitlint/to-lines': 19.8.1 + '@commitlint/types': 19.8.1 + + '@commitlint/to-lines@19.8.1': {} + + '@commitlint/top-level@19.8.1': + dependencies: + find-up: 7.0.0 + + '@commitlint/types@19.8.1': + dependencies: + '@types/conventional-commits-parser': 5.0.1 + chalk: 5.4.1 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -1508,6 +2470,34 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.4 + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.27.6 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.27.6 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + '@rollup/rollup-android-arm-eabi@4.44.2': optional: true @@ -1572,10 +2562,20 @@ snapshots: dependencies: '@types/deep-eql': 4.0.2 + '@types/conventional-commits-parser@5.0.1': + dependencies: + '@types/node': 24.0.14 + '@types/deep-eql@4.0.2': {} '@types/estree@1.0.8': {} + '@types/node@12.20.55': {} + + '@types/node@24.0.14': + dependencies: + undici-types: 7.8.0 + '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.2 @@ -1584,13 +2584,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.0.2)': + '@vitest/mocker@3.2.4(vite@7.0.2(@types/node@24.0.14)(jiti@2.4.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.0.2 + vite: 7.0.2(@types/node@24.0.14)(jiti@2.4.2) '@vitest/pretty-format@3.2.4': dependencies: @@ -1618,30 +2618,66 @@ snapshots: loupe: 3.1.4 tinyrainbow: 2.0.0 + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + acorn-walk@8.3.2: {} acorn@8.14.0: {} + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + ansi-escapes@7.0.0: dependencies: environment: 1.1.0 + ansi-regex@5.0.1: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-ify@1.0.0: {} + + array-union@2.1.0: {} + as-table@1.0.55: dependencies: printable-characters: 1.0.42 assertion-error@2.0.1: {} + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + birpc@0.2.14: {} blake3-wasm@2.1.5: {} + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + cac@6.7.14: {} + callsites@3.1.0: {} + chai@5.2.0: dependencies: assertion-error: 2.0.1 @@ -1655,8 +2691,14 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.4.1: {} + + chardet@0.7.0: {} + check-error@2.1.1: {} + ci-info@3.9.0: {} + cjs-module-lexer@1.4.3: {} clipboardy@4.0.0: @@ -1665,6 +2707,12 @@ snapshots: is-wsl: 3.1.0 is64bit: 2.0.0 + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -1681,14 +2729,52 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@7.0.2: + dependencies: + compare-func: 2.0.0 + + conventional-commits-parser@5.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + cookie@0.7.2: {} + cosmiconfig-typescript-loader@6.1.0(@types/node@24.0.14)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + dependencies: + '@types/node': 24.0.14 + cosmiconfig: 9.0.0(typescript@5.8.3) + jiti: 2.4.2 + typescript: 5.8.3 + + cosmiconfig@9.0.0(typescript@5.8.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.8.3 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dargs@8.1.0: {} + data-uri-to-buffer@2.0.2: {} debug@4.4.1: @@ -1699,14 +2785,37 @@ snapshots: defu@6.1.4: {} + detect-indent@6.1.0: {} + detect-libc@2.0.4: {} devalue@4.3.3: {} + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + dotenv@16.6.1: {} + emoji-regex@8.0.0: {} + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + env-paths@2.2.1: {} + environment@1.1.0: {} + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + es-module-lexer@1.7.0: {} esbuild@0.25.4: @@ -1765,6 +2874,10 @@ snapshots: '@esbuild/win32-ia32': 0.25.5 '@esbuild/win32-x64': 0.25.5 + escalade@3.2.0: {} + + esprima@4.0.1: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.8 @@ -1787,13 +2900,66 @@ snapshots: exsolve@1.0.7: {} + extendable-error@0.1.7: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-uri@3.0.6: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@7.0.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + unicorn-magic: 0.1.0 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fsevents@2.3.3: optional: true + get-caller-file@2.0.5: {} + get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 @@ -1801,22 +2967,90 @@ snapshots: get-stream@8.0.1: {} + git-raw-commits@4.0.0: + dependencies: + dargs: 8.1.0 + meow: 12.1.1 + split2: 4.2.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + has-flag@4.0.0: {} + human-id@4.1.1: {} + human-signals@5.0.0: {} + husky@9.1.7: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.1.0: {} + + ini@4.1.1: {} + + is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} is-docker@3.0.0: {} + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 + is-number@7.0.0: {} + + is-obj@2.0.0: {} + is-stream@3.0.0: {} + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-text-path@2.0.0: + dependencies: + text-extensions: 2.4.0 + + is-windows@1.0.2: {} + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -1827,16 +3061,76 @@ snapshots: isexe@2.0.0: {} + jiti@2.4.2: {} + + js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@1.0.0: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + lines-and-columns@1.2.4: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.kebabcase@4.1.1: {} + + lodash.merge@4.6.2: {} + + lodash.mergewith@4.6.2: {} + + lodash.snakecase@4.1.1: {} + + lodash.startcase@4.4.0: {} + + lodash.uniq@4.5.0: {} + + lodash.upperfirst@4.3.1: {} + loupe@3.1.4: {} magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.4 + meow@12.1.1: {} + merge-stream@2.0.0: {} + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime@3.0.0: {} mimic-fn@4.0.0: {} @@ -1859,6 +3153,10 @@ snapshots: - bufferutil - utf-8-validate + minimist@1.2.8: {} + + mri@1.2.0: {} + ms@2.1.3: {} mustache@4.2.0: {} @@ -1875,30 +3173,106 @@ snapshots: dependencies: mimic-fn: 4.0.0 + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.2.1 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + p-map@2.1.0: {} + + p-try@2.2.0: {} + + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.10 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + path-key@3.1.1: {} path-key@4.0.0: {} path-to-regexp@6.3.0: {} + path-type@4.0.0: {} + pathe@2.0.3: {} pathval@2.0.1: {} picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@4.0.1: {} + postcss@8.5.6: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 + prettier@2.8.8: {} + prettier@3.6.2: {} printable-characters@1.0.42: {} + quansync@0.2.10: {} + + queue-microtask@1.2.3: {} + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + reusify@1.1.0: {} + rollup@4.44.2: dependencies: '@types/estree': 1.0.8 @@ -1925,6 +3299,12 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.44.2 fsevents: 2.3.3 + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safer-buffer@2.1.2: {} + semver@7.7.2: {} sharp@0.33.5: @@ -1969,10 +3349,21 @@ snapshots: sisteransi@1.0.5: {} + slash@3.0.0: {} + source-map-js@1.2.1: {} source-map@0.6.1: {} + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + split2@4.2.0: {} + + sprintf-js@1.0.3: {} + stackback@0.0.2: {} stacktracey@2.1.8: @@ -1984,6 +3375,18 @@ snapshots: stoppable@1.1.0: {} + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@3.0.0: {} + strip-final-newline@3.0.0: {} strip-literal@3.0.0: @@ -2001,15 +3404,23 @@ snapshots: system-architecture@0.1.0: {} + term-size@2.2.1: {} + terminal-link@4.0.0: dependencies: ansi-escapes: 7.0.0 supports-hyperlinks: 3.2.0 + text-extensions@2.4.0: {} + + through@2.3.8: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} + tinyexec@1.0.1: {} + tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) @@ -2021,6 +3432,14 @@ snapshots: tinyspy@4.0.3: {} + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + tslib@2.8.1: optional: true @@ -2028,6 +3447,8 @@ snapshots: ufo@1.6.1: {} + undici-types@7.8.0: {} + undici@5.29.0: dependencies: '@fastify/busboy': 2.1.1 @@ -2040,13 +3461,17 @@ snapshots: pathe: 2.0.3 ufo: 1.6.1 - vite-node@3.2.4: + unicorn-magic@0.1.0: {} + + universalify@0.1.2: {} + + vite-node@3.2.4(@types/node@24.0.14)(jiti@2.4.2): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.2 + vite: 7.0.2(@types/node@24.0.14)(jiti@2.4.2) transitivePeerDependencies: - '@types/node' - jiti @@ -2061,7 +3486,7 @@ snapshots: - tsx - yaml - vite@7.0.2: + vite@7.0.2(@types/node@24.0.14)(jiti@2.4.2): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -2070,13 +3495,15 @@ snapshots: rollup: 4.44.2 tinyglobby: 0.2.14 optionalDependencies: + '@types/node': 24.0.14 fsevents: 2.3.3 + jiti: 2.4.2 - vitest@3.2.4: + vitest@3.2.4(@types/node@24.0.14)(jiti@2.4.2): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.0.2) + '@vitest/mocker': 3.2.4(vite@7.0.2(@types/node@24.0.14)(jiti@2.4.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -2094,9 +3521,11 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.2 - vite-node: 3.2.4 + vite: 7.0.2(@types/node@24.0.14)(jiti@2.4.2) + vite-node: 3.2.4(@types/node@24.0.14)(jiti@2.4.2) why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 24.0.14 transitivePeerDependencies: - jiti - less @@ -2144,8 +3573,30 @@ snapshots: - bufferutil - utf-8-validate + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + ws@8.18.0: {} + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@1.2.1: {} + youch@3.3.4: dependencies: cookie: 0.7.2 From 81c7bc5b43115d2d15c5fa2e0dbffd376f8cddc9 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 03:56:17 +0600 Subject: [PATCH 02/16] chore: remove unused pre-commit hook --- .husky/commit-msg | 4 +--- .husky/pre-commit | 3 --- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 .husky/pre-commit diff --git a/.husky/commit-msg b/.husky/commit-msg index 17d0778..4b63288 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,3 +1 @@ -# commit-msg → enforce Conventional Commits -echo "pnpm exec commitlint --edit \"$1\"" > .husky/commit-msg -chmod +x .husky/commit-msg +pnpm exec commitlint --edit ".git/COMMIT_EDITMSG" diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100644 index 6094110..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,3 +0,0 @@ -# (optional) pre-commit → lint staged files -echo "pnpm exec lint-staged" > .husky/pre-commit -chmod +x .husky/pre-commit \ No newline at end of file From 55faa7e9b948fc6e0e8fe0dd3369cf8874249a7b Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 03:59:16 +0600 Subject: [PATCH 03/16] chore: add action to publish to npm --- .github/workflows/publish-cli.yml | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/publish-cli.yml diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml new file mode 100644 index 0000000..1910a97 --- /dev/null +++ b/.github/workflows/publish-cli.yml @@ -0,0 +1,43 @@ +name: Version & Publish create-db + +on: + push: + branches: [main] + +jobs: + release: + name: Bump Version & Publish CLI + runs-on: ubuntu-latest + steps: + - name: Checkout with token + uses: actions/checkout@v3 + with: + persist-credentials: true # so we can push commits & tags + + - name: Disable Husky in CI + run: echo "HUSKY=0" >> $GITHUB_ENV + + - name: Setup Node & pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install dependencies + run: pnpm install + + - name: Bump versions & generate changelogs + run: pnpm version + + - name: Push version bump & tags + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git push origin main --follow-tags + + - name: Dry-run npm publish + run: pnpm --filter create-db publish --dry-run + + - name: Publish create-db to npm + env: + NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }} + run: pnpm --filter create-db publish --access public From 3dd6d1347c078b137be5d49e57feec846026bfaa Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:01:07 +0600 Subject: [PATCH 04/16] chore: add release on pull request too --- .github/workflows/publish-cli.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 1910a97..c8d2ecf 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -3,6 +3,8 @@ name: Version & Publish create-db on: push: branches: [main] + pull_request: + branches: [main] jobs: release: From b514d48a992f56a1b6ab81c63ddfa794cb23d855 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:05:36 +0600 Subject: [PATCH 05/16] feat: publish feature branch on npm --- .github/workflows/publish-cli.yml | 59 +++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index c8d2ecf..35dd135 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -1,25 +1,63 @@ -name: Version & Publish create-db +name: Preview & Publish create-db on: - push: - branches: [main] pull_request: branches: [main] + types: [opened, reopened, synchronize] + push: + branches: [main] jobs: - release: - name: Bump Version & Publish CLI + preview: + name: 🚧 Preview release (PR ${{ github.event.number }}) + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Disable Husky in CI + run: echo "HUSKY=0" >> $GITHUB_ENV + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install dependencies + run: pnpm install + + - name: Bump preview version in create-db + # uses npm to create a prerelease bump like 0.0.1-pr42 + run: | + cd packages/create-db + npm version prerelease --preid pr${{ github.event.number }} --no-git-tag-version + shell: bash + + - name: Publish preview to npm + env: + NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }} + run: | + pnpm --filter create-db publish --access public --tag pr${{ github.event.number }} --no-git-checks + + publish: + name: 🚀 Bump & publish real release + if: github.event_name == 'push' + needs: preview runs-on: ubuntu-latest steps: - - name: Checkout with token + - name: Checkout code (full history & tags) uses: actions/checkout@v3 with: - persist-credentials: true # so we can push commits & tags + fetch-depth: 0 + persist-credentials: true - name: Disable Husky in CI run: echo "HUSKY=0" >> $GITHUB_ENV - - name: Setup Node & pnpm + - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 @@ -30,11 +68,10 @@ jobs: - name: Bump versions & generate changelogs run: pnpm version - - name: Push version bump & tags + - name: Push version bump commit & tags env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git push origin main --follow-tags + run: git push origin main --follow-tags - name: Dry-run npm publish run: pnpm --filter create-db publish --dry-run From 95838778b028955f73367b0d7670d60c480a2c18 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:08:09 +0600 Subject: [PATCH 06/16] fix: change working dir for bumping version path --- .github/workflows/publish-cli.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 35dd135..810f75c 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -9,7 +9,7 @@ on: jobs: preview: - name: 🚧 Preview release (PR ${{ github.event.number }}) + name: 🚧 Preview release (PR #${{ github.event.number }} – ${{ github.event.pull_request.head.ref }}) if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: @@ -30,17 +30,21 @@ jobs: run: pnpm install - name: Bump preview version in create-db - # uses npm to create a prerelease bump like 0.0.1-pr42 + working-directory: ./create-db run: | - cd packages/create-db - npm version prerelease --preid pr${{ github.event.number }} --no-git-tag-version - shell: bash + # e.g. 0.0.1 → 0.0.1-pr3-my-branch + npm version prerelease \ + --preid pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }} \ + --no-git-tag-version - name: Publish preview to npm env: NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }} run: | - pnpm --filter create-db publish --access public --tag pr${{ github.event.number }} --no-git-checks + pnpm --filter create-db publish \ + --access public \ + --tag pr${{ github.event.number }} + # no git checks so we can publish a prerelease off a PR publish: name: 🚀 Bump & publish real release From abb8905a05d924f3f0fe475c24ed64102c784e27 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:10:18 +0600 Subject: [PATCH 07/16] fix: remove git checks in PR --- .github/workflows/publish-cli.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 810f75c..6f8c2cc 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -44,6 +44,7 @@ jobs: pnpm --filter create-db publish \ --access public \ --tag pr${{ github.event.number }} + --no-git-checks # no git checks so we can publish a prerelease off a PR publish: From a1017c51b93c0564347337acf579c69d200a4982 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:12:42 +0600 Subject: [PATCH 08/16] fix: publish git checks --- .github/workflows/publish-cli.yml | 55 +++++++------------------------ 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 6f8c2cc..9296eda 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -4,39 +4,47 @@ on: pull_request: branches: [main] types: [opened, reopened, synchronize] - push: - branches: [main] jobs: preview: name: 🚧 Preview release (PR #${{ github.event.number }} – ${{ github.event.pull_request.head.ref }}) if: github.event_name == 'pull_request' runs-on: ubuntu-latest + steps: + # 1️⃣ check out all history so that `npm version` can run - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 + # 2️⃣ turn off Husky so our CI scripts don’t block - name: Disable Husky in CI run: echo "HUSKY=0" >> $GITHUB_ENV + # 3️⃣ install pnpm - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 + # 4️⃣ install deps - name: Install dependencies run: pnpm install + # 5️⃣ bump just the preview version in the create-db package - name: Bump preview version in create-db working-directory: ./create-db run: | - # e.g. 0.0.1 → 0.0.1-pr3-my-branch npm version prerelease \ --preid pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }} \ --no-git-tag-version + # 6️⃣ disable pnpm's git-clean safeguard permanently for this runner + - name: Disable pnpm git-checks + run: pnpm config set git-checks false + + # 7️⃣ publish under the `pr` dist-tag - name: Publish preview to npm env: NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }} @@ -44,44 +52,3 @@ jobs: pnpm --filter create-db publish \ --access public \ --tag pr${{ github.event.number }} - --no-git-checks - # no git checks so we can publish a prerelease off a PR - - publish: - name: 🚀 Bump & publish real release - if: github.event_name == 'push' - needs: preview - runs-on: ubuntu-latest - steps: - - name: Checkout code (full history & tags) - uses: actions/checkout@v3 - with: - fetch-depth: 0 - persist-credentials: true - - - name: Disable Husky in CI - run: echo "HUSKY=0" >> $GITHUB_ENV - - - name: Setup pnpm - uses: pnpm/action-setup@v2 - with: - version: 8 - - - name: Install dependencies - run: pnpm install - - - name: Bump versions & generate changelogs - run: pnpm version - - - name: Push version bump commit & tags - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: git push origin main --follow-tags - - - name: Dry-run npm publish - run: pnpm --filter create-db publish --dry-run - - - name: Publish create-db to npm - env: - NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }} - run: pnpm --filter create-db publish --access public From 4ac881357b0542e3a52c4070d4a46c9ea6909c3a Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:16:04 +0600 Subject: [PATCH 09/16] fix: add npm auth --- .github/workflows/publish-cli.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 9296eda..eeb4f41 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - # 1️⃣ check out all history so that `npm version` can run + # 1️⃣ check out full history so `npm version` can run - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 - # 2️⃣ turn off Husky so our CI scripts don’t block + # 2️⃣ turn off Husky in CI - name: Disable Husky in CI run: echo "HUSKY=0" >> $GITHUB_ENV @@ -28,11 +28,11 @@ jobs: with: version: 8 - # 4️⃣ install deps + # 4️⃣ install dependencies - name: Install dependencies run: pnpm install - # 5️⃣ bump just the preview version in the create-db package + # 5️⃣ bump just the preview version in create-db - name: Bump preview version in create-db working-directory: ./create-db run: | @@ -40,15 +40,15 @@ jobs: --preid pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }} \ --no-git-tag-version - # 6️⃣ disable pnpm's git-clean safeguard permanently for this runner + # 6️⃣ disable pnpm's git-clean safeguard - name: Disable pnpm git-checks run: pnpm config set git-checks false - # 7️⃣ publish under the `pr` dist-tag + # 7️⃣ configure npm auth so publish can log in + - name: Configure npm auth + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + + # 8️⃣ publish only the create-db package under tag pr - name: Publish preview to npm - env: - NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }} - run: | - pnpm --filter create-db publish \ - --access public \ - --tag pr${{ github.event.number }} + working-directory: ./create-db + run: pnpm publish --access public --tag pr${{ github.event.number }} From c4e26e1b153db3775ef3048b369450ca77b44343 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:22:33 +0600 Subject: [PATCH 10/16] fix: add temporary domain --- create-db/index.js | 60 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/create-db/index.js b/create-db/index.js index edc2a35..3108104 100755 --- a/create-db/index.js +++ b/create-db/index.js @@ -1,9 +1,17 @@ #!/usr/bin/env node -import { select, spinner, intro, outro, log, cancel, confirm } from "@clack/prompts"; +import { + select, + spinner, + intro, + outro, + log, + cancel, + confirm, +} from "@clack/prompts"; import chalk from "chalk"; import dotenv from "dotenv"; -import terminalLink from 'terminal-link'; +import terminalLink from "terminal-link"; import clipboard from "clipboardy"; dotenv.config(); @@ -64,7 +72,7 @@ function parseArgs() { // Get region from user input async function promptForRegion(defaultRegion) { - const url = `${process.env.CREATE_DB_WORKER_URL}/regions`; + const url = `${process.env.CREATE_DB_WORKER_URL || "https://create-db-temp.prisma.io"}/regions`; const res = await fetch(url); let data; try { @@ -79,7 +87,8 @@ async function promptForRegion(defaultRegion) { const region = await select({ message: "Choose a region:", options: regions.map((r) => ({ value: r.id, label: r.id })), - initialValue: regions.find((r) => r.id === defaultRegion)?.id || regions[0]?.id, + initialValue: + regions.find((r) => r.id === defaultRegion)?.id || regions[0]?.id, }); if (region === null) { @@ -96,22 +105,29 @@ async function createDatabase(name, region, enableCopyPrompt = false) { const s = spinner(); s.start("Setting up your database..."); - const resp = await fetch(`${process.env.CREATE_DB_WORKER_URL}/create`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ region, name }), - }); + const resp = await fetch( + `${process.env.CREATE_DB_WORKER_URL || "https://create-db-temp.prisma.io"}/create`, + { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ region, name }), + } + ); // Rate limit exceeded if (resp.status === 429) { - s.stop("We're experiencing a high volume of requests. Please try again later."); + s.stop( + "We're experiencing a high volume of requests. Please try again later." + ); process.exit(1); } const result = await resp.json(); if (result.error) { - s.stop(`Error creating database: ${result.error.message || "Unknown error"}`); + s.stop( + `Error creating database: ${result.error.message || "Unknown error"}` + ); process.exit(1); } @@ -128,14 +144,19 @@ async function createDatabase(name, region, enableCopyPrompt = false) { log.message(""); log.success("Claim your database:"); - const claimUrl = `${process.env.CLAIM_DB_WORKER_URL}?projectID=${result.id}`; - const clickableUrl = terminalLink(claimUrl, claimUrl, { fallback: false}); + const claimUrl = `${process.env.CLAIM_DB_WORKER_URL || "https://create-db.prisma.io"}?projectID=${result.id}`; + const clickableUrl = terminalLink(claimUrl, claimUrl, { fallback: false }); log.message(" " + chalk.green(clickableUrl)); - log.message(" " + chalk.red(`Expires: ${expiryFormatted}`) + chalk.gray(" (Claim to make permanent on your Prisma account)")); + log.message( + " " + + chalk.red(`Expires: ${expiryFormatted}`) + + chalk.gray(" (Claim to make permanent on your Prisma account)") + ); if (enableCopyPrompt) { const shouldCopy = await confirm({ - message: "Would you like to copy the connection string to your clipboard?", + message: + "Would you like to copy the connection string to your clipboard?", initialValue: true, }); if (shouldCopy) { @@ -176,7 +197,11 @@ async function main() { } else { // Show minimal header for non-interactive mode log.info(chalk.cyan.bold("🚀 Prisma Postgres Create DB")); - log.message(chalk.gray(`Creating a temporary Prisma Postgres database in ${region}...`)); + log.message( + chalk.gray( + `Creating a temporary Prisma Postgres database in ${region}...` + ) + ); log.message(""); } @@ -184,11 +209,10 @@ async function main() { await createDatabase(name, region, enableCopyPrompt); outro(""); - } catch (error) { console.error("Error:", error.message); process.exit(1); } } -main(); \ No newline at end of file +main(); From f769602579cbe6d162adace75d6f6174370b10d6 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:25:27 +0600 Subject: [PATCH 11/16] fix: add run id --- .github/workflows/publish-cli.yml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index eeb4f41..d38dacc 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -12,43 +12,48 @@ jobs: runs-on: ubuntu-latest steps: - # 1️⃣ check out full history so `npm version` can run + # 1️⃣ Checkout full history so `npm version` can bump - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 - # 2️⃣ turn off Husky in CI + # 2️⃣ Disable Husky in CI - name: Disable Husky in CI run: echo "HUSKY=0" >> $GITHUB_ENV - # 3️⃣ install pnpm + # 3️⃣ Install pnpm - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 - # 4️⃣ install dependencies + # 4️⃣ Install dependencies - name: Install dependencies run: pnpm install - # 5️⃣ bump just the preview version in create-db + # 5️⃣ Bump a unique preview version - name: Bump preview version in create-db working-directory: ./create-db run: | + PREID="pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }}-${{ github.run_id }}" npm version prerelease \ - --preid pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }} \ + --preid "$PREID" \ --no-git-tag-version - # 6️⃣ disable pnpm's git-clean safeguard + # 6️⃣ Disable pnpm’s git‐clean safeguard - name: Disable pnpm git-checks run: pnpm config set git-checks false - # 7️⃣ configure npm auth so publish can log in + # 7️⃣ Configure npm auth for publish - name: Configure npm auth run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - # 8️⃣ publish only the create-db package under tag pr + # 8️⃣ Publish the create-db package under `pr` tag - name: Publish preview to npm working-directory: ./create-db run: pnpm publish --access public --tag pr${{ github.event.number }} + + # 9️⃣ Clean up auth file + - name: Cleanup npm auth + run: rm ~/.npmrc From a1f884b6fb5ea53a442876794fbe206c848787ff Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:40:17 +0600 Subject: [PATCH 12/16] feat: add more packages --- .github/workflows/publish-cli.yml | 113 ++++++++++++++++++++++-------- create-pg/.gitignore | 3 + create-pg/README.md | 50 +++++++++++++ create-pg/package.json | 41 +++++++++++ create-postgres/.gitignore | 3 + create-postgres/README.md | 50 +++++++++++++ create-postgres/package.json | 41 +++++++++++ pnpm-lock.yaml | 36 ++++++++++ pnpm-workspace.yaml | 2 + 9 files changed, 309 insertions(+), 30 deletions(-) create mode 100644 create-pg/.gitignore create mode 100644 create-pg/README.md create mode 100644 create-pg/package.json create mode 100644 create-postgres/.gitignore create mode 100644 create-postgres/README.md create mode 100644 create-postgres/package.json diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index d38dacc..1067b37 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -1,59 +1,112 @@ -name: Preview & Publish create-db +name: Preview & Publish all CLIs on: pull_request: branches: [main] types: [opened, reopened, synchronize] + push: + branches: [main] + +env: + # relative paths to each CLI + WORKSPACES: | + packages/create-db + packages/create-pg + packages/create-postgres jobs: preview: - name: 🚧 Preview release (PR #${{ github.event.number }} – ${{ github.event.pull_request.head.ref }}) if: github.event_name == 'pull_request' + name: 🚧 Preview release (PR #${{ github.event.number }}) runs-on: ubuntu-latest - steps: - # 1️⃣ Checkout full history so `npm version` can bump - - name: Checkout code + - name: 🛎️ Checkout full history uses: actions/checkout@v3 with: fetch-depth: 0 - # 2️⃣ Disable Husky in CI - - name: Disable Husky in CI + - name: 🤐 Disable Husky run: echo "HUSKY=0" >> $GITHUB_ENV - # 3️⃣ Install pnpm - - name: Setup pnpm + - name: 📦 Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 - # 4️⃣ Install dependencies - - name: Install dependencies + - name: 🔧 Install dependencies run: pnpm install - # 5️⃣ Bump a unique preview version - - name: Bump preview version in create-db - working-directory: ./create-db + - name: ❌ Disable pnpm git‐checks + run: pnpm config set git-checks false + + - name: 🔑 Configure npm auth + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + + - name: 🚀 Publish PR-tagged previews run: | - PREID="pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }}-${{ github.run_id }}" - npm version prerelease \ - --preid "$PREID" \ - --no-git-tag-version + PRE_TAG="pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }}" + for pkg in $WORKSPACES; do + echo "› publishing $pkg" + cd $pkg - # 6️⃣ Disable pnpm’s git‐clean safeguard - - name: Disable pnpm git-checks - run: pnpm config set git-checks false + # bump a unique prerelease + npm version prerelease \ + --preid "$PRE_TAG" \ + --no-git-tag-version - # 7️⃣ Configure npm auth for publish - - name: Configure npm auth + # publish under tag pr + pnpm publish --access public --tag pr${{ github.event.number }} + + cd - >/dev/null + done + + - name: 🧹 Cleanup npm auth + run: rm -f ~/.npmrc + + publish: + if: github.event_name == 'push' + needs: preview + name: 🚀 Bump & publish real releases + runs-on: ubuntu-latest + steps: + - name: 🛎️ Checkout full & tags + uses: actions/checkout@v3 + with: + fetch-depth: 0 + persist-credentials: true + + - name: 🤐 Disable Husky + run: echo "HUSKY=0" >> $GITHUB_ENV + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: 🔧 Install dependencies + run: pnpm install + + - name: 🔄 Bump versions & changelogs + run: pnpm changeset version + + - name: 💾 Commit & push version bump + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git commit -am "chore: version packages [skip ci]" || echo "no version changes" + git push origin main --follow-tags + + - name: 🔑 Configure npm auth run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - # 8️⃣ Publish the create-db package under `pr` tag - - name: Publish preview to npm - working-directory: ./create-db - run: pnpm publish --access public --tag pr${{ github.event.number }} + - name: 🚀 Publish all real releases + run: | + for pkg in $WORKSPACES; do + echo "› publishing $pkg" + cd $pkg + pnpm publish --access public + cd - >/dev/null + done - # 9️⃣ Clean up auth file - - name: Cleanup npm auth - run: rm ~/.npmrc + - name: 🧹 Cleanup npm auth + run: rm -f ~/.npmrc diff --git a/create-pg/.gitignore b/create-pg/.gitignore new file mode 100644 index 0000000..941d536 --- /dev/null +++ b/create-pg/.gitignore @@ -0,0 +1,3 @@ +.env +node_modules +package-lock.json \ No newline at end of file diff --git a/create-pg/README.md b/create-pg/README.md new file mode 100644 index 0000000..699ba80 --- /dev/null +++ b/create-pg/README.md @@ -0,0 +1,50 @@ +# Create DB CLI + +CLI tool for creating temporary Prisma Postgres databases. + +## Usage + +```bash +npx create-db # Default region (us-east-1) +npx create-db --region eu-west-1 # Custom region +npx create-db --i # Interactive region selection +``` + +## Key Files + +- **Main Logic:** [`index.js`](index.js) - Argument parsing, API requests, and output +- **Configuration:** [`package.json`](package.json) - CLI entry point and dependencies +- **Environment:** `.env` - Worker endpoints configuration + +## Development + +```bash +npm install +``` + +Create `.env` for local development: + +```env +# LOCAL +CREATE_DB_WORKER_URL="http://127.0.0.1:8787" +CLAIM_DB_WORKER_URL="http://127.0.0.1:8787" + +# PROD +# CREATE_DB_WORKER_URL="https://create-db-worker.raycast-0ef.workers.dev" +# CLAIM_DB_WORKER_URL="https://claim-db-worker.raycast-0ef.workers.dev" +``` + +If running both workers locally, use a different port for one and update the URL: + +```env +CREATE_DB_WORKER_URL="http://127.0.0.1:9999" +CLAIM_DB_WORKER_URL="http://127.0.0.1:8787" +``` + +## Test Locally + +```bash +npx create-db +npx create-db --region eu-west-1 +npx create-db --i +``` diff --git a/create-pg/package.json b/create-pg/package.json new file mode 100644 index 0000000..a6e94dc --- /dev/null +++ b/create-pg/package.json @@ -0,0 +1,41 @@ +{ + "name": "create-pg", + "version": "0.0.1", + "description": "Instantly create a temporary Prisma Postgres database with one command, then claim and persist it in your Prisma Data Platform project when ready.", + "main": "index.js", + "author": "", + "repository": { + "type": "git", + "url": "git+https://github.com/prisma/create-db.git" + }, + "bugs": { + "url": "https://github.com/prisma/create-db/issues" + }, + "homepage": "https://github.com/prisma/create-db#readme", + "keywords": [ + "prisma", + "postgres", + "cli", + "database", + "temporary" + ], + "license": "ISC", + "type": "module", + "bin": { + "create-pg": "../create-db/index.js" + }, + "dependencies": { + "@clack/prompts": "^0.11.0", + "chalk": "^4.1.2", + "clipboardy": "^4.0.0", + "dotenv": "^16.6.1", + "terminal-link": "^4.0.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "index.js", + "README.md" + ] +} diff --git a/create-postgres/.gitignore b/create-postgres/.gitignore new file mode 100644 index 0000000..941d536 --- /dev/null +++ b/create-postgres/.gitignore @@ -0,0 +1,3 @@ +.env +node_modules +package-lock.json \ No newline at end of file diff --git a/create-postgres/README.md b/create-postgres/README.md new file mode 100644 index 0000000..699ba80 --- /dev/null +++ b/create-postgres/README.md @@ -0,0 +1,50 @@ +# Create DB CLI + +CLI tool for creating temporary Prisma Postgres databases. + +## Usage + +```bash +npx create-db # Default region (us-east-1) +npx create-db --region eu-west-1 # Custom region +npx create-db --i # Interactive region selection +``` + +## Key Files + +- **Main Logic:** [`index.js`](index.js) - Argument parsing, API requests, and output +- **Configuration:** [`package.json`](package.json) - CLI entry point and dependencies +- **Environment:** `.env` - Worker endpoints configuration + +## Development + +```bash +npm install +``` + +Create `.env` for local development: + +```env +# LOCAL +CREATE_DB_WORKER_URL="http://127.0.0.1:8787" +CLAIM_DB_WORKER_URL="http://127.0.0.1:8787" + +# PROD +# CREATE_DB_WORKER_URL="https://create-db-worker.raycast-0ef.workers.dev" +# CLAIM_DB_WORKER_URL="https://claim-db-worker.raycast-0ef.workers.dev" +``` + +If running both workers locally, use a different port for one and update the URL: + +```env +CREATE_DB_WORKER_URL="http://127.0.0.1:9999" +CLAIM_DB_WORKER_URL="http://127.0.0.1:8787" +``` + +## Test Locally + +```bash +npx create-db +npx create-db --region eu-west-1 +npx create-db --i +``` diff --git a/create-postgres/package.json b/create-postgres/package.json new file mode 100644 index 0000000..be58451 --- /dev/null +++ b/create-postgres/package.json @@ -0,0 +1,41 @@ +{ + "name": "create-postgres", + "version": "0.0.1", + "description": "Instantly create a temporary Prisma Postgres database with one command, then claim and persist it in your Prisma Data Platform project when ready.", + "main": "index.js", + "author": "", + "repository": { + "type": "git", + "url": "git+https://github.com/prisma/create-db.git" + }, + "bugs": { + "url": "https://github.com/prisma/create-db/issues" + }, + "homepage": "https://github.com/prisma/create-db#readme", + "keywords": [ + "prisma", + "postgres", + "cli", + "database", + "temporary" + ], + "license": "ISC", + "type": "module", + "bin": { + "create-postgres": "../create-db/index.js" + }, + "dependencies": { + "@clack/prompts": "^0.11.0", + "chalk": "^4.1.2", + "clipboardy": "^4.0.0", + "dotenv": "^16.6.1", + "terminal-link": "^4.0.0" + }, + "publishConfig": { + "access": "public" + }, + "files": [ + "index.js", + "README.md" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4cb050c..d0a5372 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,42 @@ importers: specifier: ^4.22.0 version: 4.23.0 + create-pg: + dependencies: + '@clack/prompts': + specifier: ^0.11.0 + version: 0.11.0 + chalk: + specifier: ^4.1.2 + version: 4.1.2 + clipboardy: + specifier: ^4.0.0 + version: 4.0.0 + dotenv: + specifier: ^16.6.1 + version: 16.6.1 + terminal-link: + specifier: ^4.0.0 + version: 4.0.0 + + create-postgres: + dependencies: + '@clack/prompts': + specifier: ^0.11.0 + version: 0.11.0 + chalk: + specifier: ^4.1.2 + version: 4.1.2 + clipboardy: + specifier: ^4.0.0 + version: 4.0.0 + dotenv: + specifier: ^16.6.1 + version: 16.6.1 + terminal-link: + specifier: ^4.0.0 + version: 4.0.0 + packages: '@babel/code-frame@7.27.1': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9375401..7afaadf 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,5 @@ packages: - "create-db" - "create-db-worker" - "claim-db-worker" + - "create-pg" + - "create-postgres" From a2cc1e6323cc5258db5c01f7b2d9d5881a87fbba Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:42:14 +0600 Subject: [PATCH 13/16] fix: fix directories --- .github/workflows/publish-cli.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 1067b37..7ea5ed7 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -10,9 +10,9 @@ on: env: # relative paths to each CLI WORKSPACES: | - packages/create-db - packages/create-pg - packages/create-postgres + create-db + create-pg + create-postgres jobs: preview: From a5462430b664f4443f73e496947f5294be6531cc Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:46:05 +0600 Subject: [PATCH 14/16] fix: add unique prelease versions --- .github/workflows/publish-cli.yml | 34 +++++++++++++++++-------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 7ea5ed7..448e422 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -2,13 +2,18 @@ name: Preview & Publish all CLIs on: pull_request: - branches: [main] - types: [opened, reopened, synchronize] + branches: + - main + types: + - opened + - reopened + - synchronize push: - branches: [main] + branches: + - main env: - # relative paths to each CLI + # each folder under the repo root that contains one of your CLIs WORKSPACES: | create-db create-pg @@ -36,27 +41,25 @@ jobs: - name: 🔧 Install dependencies run: pnpm install - - name: ❌ Disable pnpm git‐checks + - name: ❌ Disable pnpm git-checks run: pnpm config set git-checks false - name: 🔑 Configure npm auth - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + run: | + echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - name: 🚀 Publish PR-tagged previews run: | - PRE_TAG="pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }}" + PRE_TAG="pr${{ github.event.number }}-${{ github.event.pull_request.head.ref }}-${{ github.run_id }}" for pkg in $WORKSPACES; do - echo "› publishing $pkg" + echo "› publishing $pkg@$PRE_TAG" cd $pkg - - # bump a unique prerelease + # bump to a unique prerelease npm version prerelease \ --preid "$PRE_TAG" \ --no-git-tag-version - - # publish under tag pr + # publish under dist-tag pr pnpm publish --access public --tag pr${{ github.event.number }} - cd - >/dev/null done @@ -86,7 +89,7 @@ jobs: - name: 🔧 Install dependencies run: pnpm install - - name: 🔄 Bump versions & changelogs + - name: 🔄 Bump versions & generate changelogs run: pnpm changeset version - name: 💾 Commit & push version bump @@ -97,7 +100,8 @@ jobs: git push origin main --follow-tags - name: 🔑 Configure npm auth - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + run: | + echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - name: 🚀 Publish all real releases run: | From 9cb25aed06664c5bbff97991bf12286f978de6c6 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 04:57:11 +0600 Subject: [PATCH 15/16] fix: add index.js files to packages --- .github/workflows/publish-cli.yml | 10 +++------- create-pg/index.js | 3 +++ create-pg/package.json | 8 ++------ create-postgres/package.json | 8 ++------ 4 files changed, 10 insertions(+), 19 deletions(-) create mode 100644 create-pg/index.js diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 448e422..bc472a9 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -41,12 +41,11 @@ jobs: - name: 🔧 Install dependencies run: pnpm install - - name: ❌ Disable pnpm git-checks + - name: 🔄 Disable pnpm git-checks run: pnpm config set git-checks false - name: 🔑 Configure npm auth - run: | - echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - name: 🚀 Publish PR-tagged previews run: | @@ -54,11 +53,9 @@ jobs: for pkg in $WORKSPACES; do echo "› publishing $pkg@$PRE_TAG" cd $pkg - # bump to a unique prerelease npm version prerelease \ --preid "$PRE_TAG" \ --no-git-tag-version - # publish under dist-tag pr pnpm publish --access public --tag pr${{ github.event.number }} cd - >/dev/null done @@ -100,8 +97,7 @@ jobs: git push origin main --follow-tags - name: 🔑 Configure npm auth - run: | - echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - name: 🚀 Publish all real releases run: | diff --git a/create-pg/index.js b/create-pg/index.js new file mode 100644 index 0000000..92c25fb --- /dev/null +++ b/create-pg/index.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node +import { main } from "create-db"; +main(); diff --git a/create-pg/package.json b/create-pg/package.json index a6e94dc..3a503f4 100644 --- a/create-pg/package.json +++ b/create-pg/package.json @@ -22,14 +22,10 @@ "license": "ISC", "type": "module", "bin": { - "create-pg": "../create-db/index.js" + "create-pg": "./index.js" }, "dependencies": { - "@clack/prompts": "^0.11.0", - "chalk": "^4.1.2", - "clipboardy": "^4.0.0", - "dotenv": "^16.6.1", - "terminal-link": "^4.0.0" + "create-db": "workspace:*" }, "publishConfig": { "access": "public" diff --git a/create-postgres/package.json b/create-postgres/package.json index be58451..0af17d4 100644 --- a/create-postgres/package.json +++ b/create-postgres/package.json @@ -22,14 +22,10 @@ "license": "ISC", "type": "module", "bin": { - "create-postgres": "../create-db/index.js" + "create-postgres": "./index.js" }, "dependencies": { - "@clack/prompts": "^0.11.0", - "chalk": "^4.1.2", - "clipboardy": "^4.0.0", - "dotenv": "^16.6.1", - "terminal-link": "^4.0.0" + "create-db": "workspace:*" }, "publishConfig": { "access": "public" From 6c8b75eaeff57b679b79175266b3ab202cf78446 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Sat, 19 Jul 2025 05:03:43 +0600 Subject: [PATCH 16/16] fix: add all scripts --- .github/workflows/publish-cli.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index bc472a9..3e9a4b0 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -8,6 +8,7 @@ on: - opened - reopened - synchronize + - closed push: branches: - main @@ -64,8 +65,10 @@ jobs: run: rm -f ~/.npmrc publish: - if: github.event_name == 'push' - needs: preview + if: > + github.event_name == 'pull_request' && + github.event.action == 'closed' && + github.event.pull_request.merged == true name: 🚀 Bump & publish real releases runs-on: ubuntu-latest steps: @@ -97,7 +100,8 @@ jobs: git push origin main --follow-tags - name: 🔑 Configure npm auth - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc + run: | + echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc - name: 🚀 Publish all real releases run: |