From f5703af9f43af98d7076a9c5c2dfe8c5c23aa7aa Mon Sep 17 00:00:00 2001 From: Ayo Date: Sun, 5 Jul 2026 12:01:58 +0200 Subject: [PATCH] chore: add release script --- package.json | 6 +- pnpm-lock.yaml | 174 +++++++++++++++++++++++++++++++------------- pnpm-workspace.yaml | 2 + scripts/release.js | 30 ++++++++ 4 files changed, 159 insertions(+), 53 deletions(-) create mode 100644 scripts/release.js diff --git a/package.json b/package.json index 8e10359..175746e 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,7 @@ "size-limit": "pnpm run build && size-limit", "clean": "rm -rf dist", "copy:source": "esbuild --minify --bundle ./src/*.js ./src/utils/* --outdir=\"./dist\" --format=\"esm\"", - "pub": "pnpm run clean && pnpm run build && npm publish", - "pub:patch": "npm version patch && pnpm run pub", - "pub:minor": "npm version minor && pnpm run pub", - "pub:major": "npm version major && pnpm run pub", + "release": "bumpp & node ./scripts/release.js", "format": "prettier . --write", "lint": "eslint . --config eslint.config.mjs", "prepare": "husky" @@ -64,6 +61,7 @@ "@eslint/js": "^9.39.2", "@size-limit/preset-small-lib": "^12.0.0", "@vitest/coverage-v8": "4.0.18", + "bumpp": "^11.1.0", "esbuild": "^0.27.2", "eslint": "^9.39.2", "eslint-plugin-jsdoc": "^62.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dcf3e72..843d8e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,15 +17,18 @@ importers: '@vitest/coverage-v8': specifier: 4.0.18 version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.8.0)(@types/node@25.0.10)(happy-dom@20.3.7)(jiti@2.6.1)(terser@5.39.0)(yaml@2.8.2)) + bumpp: + specifier: ^11.1.0 + version: 11.1.0 esbuild: specifier: ^0.27.2 version: 0.27.2 eslint: specifier: ^9.39.2 - version: 9.39.2(jiti@2.6.1) + version: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) eslint-plugin-jsdoc: specifier: ^62.4.1 - version: 62.4.1(eslint@9.39.2(jiti@2.6.1)) + version: 62.4.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) globals: specifier: ^17.1.0 version: 17.1.0 @@ -37,13 +40,13 @@ importers: version: 9.1.7 netlify-cli: specifier: ^23.13.5 - version: 23.13.5(@types/node@25.0.10)(db0@0.3.1)(ioredis@5.6.0)(picomatch@4.0.3)(rollup@4.60.3) + version: 23.13.5(@types/node@25.0.10)(db0@0.3.1)(ioredis@5.6.0)(picomatch@4.0.3)(rollup@4.60.3)(supports-color@10.2.2) prettier: specifier: ^3.8.1 version: 3.8.1 release-it: specifier: ^19.2.4 - version: 19.2.4(@types/node@25.0.10)(magicast@0.5.2) + version: 19.2.4(@types/node@25.0.10)(magicast@0.5.2)(supports-color@10.2.2) simple-server: specifier: ^1.1.1 version: 1.1.1 @@ -1469,6 +1472,9 @@ packages: resolution: {integrity: sha512-bWLDlHsBlgKY/05wDN/V3ETcn5G2SV/SiA2ZmNvKGGlmVX4G5li7GRDhHcgYvHJHyJ8TUStqg2xtHmCs0UbAbg==} engines: {node: '>=18'} + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} @@ -2234,6 +2240,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + args-tokenizer@0.3.0: + resolution: {integrity: sha512-xXAd7G2Mll5W8uo37GETpQ2VrE84M181Z7ugHFGQnJZ50M2mbOv0osSZ9VsSgPfJQ+LVG0prSi0th+ELMsno7Q==} + args@4.0.0: resolution: {integrity: sha512-4b7lVF58nlo7sNtq8s2OueroOY/UHn0Nt/NVjsx9zn28u6yDVb9bQ/uy/5jKtHCbUDil4MlMyDLF5+OHEgnTug==} engines: {node: '> 4.0.0'} @@ -2335,6 +2344,7 @@ packages: basic-ftp@5.1.0: resolution: {integrity: sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==} engines: {node: '>=10.0.0'} + deprecated: Security vulnerability fixed in 5.2.1, please upgrade bcp-47-match@2.0.3: resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} @@ -2404,6 +2414,11 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bumpp@11.1.0: + resolution: {integrity: sha512-jdwOGMyX8JIqpQ0N2RMRR87DHZaoJnUtui5lU9LqFfFK5JC0H8qY9uWqXoa+dEWt/K7rOmmsoyiZB8RBM7RPBQ==} + engines: {node: '>=20.19.0'} + hasBin: true + bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -2432,6 +2447,10 @@ packages: magicast: optional: true + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} + cacheable-lookup@7.0.0: resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} engines: {node: '>=14.16'} @@ -3668,6 +3687,7 @@ packages: glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true global-directory@4.0.1: @@ -5420,6 +5440,9 @@ packages: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6134,6 +6157,7 @@ packages: tar@7.5.6: resolution: {integrity: sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me term-size@1.2.0: resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==} @@ -6322,6 +6346,12 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + + unconfig@7.5.0: + resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==} + uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -6873,6 +6903,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -7304,14 +7339,14 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))': dependencies: - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.21.1': + '@eslint/config-array@0.21.1(supports-color@10.2.2)': dependencies: '@eslint/object-schema': 2.1.7 debug: 4.4.3(supports-color@10.2.2) @@ -7327,7 +7362,7 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.3': + '@eslint/eslintrc@3.3.3(supports-color@10.2.2)': dependencies: ajv: 6.12.6 debug: 4.4.3(supports-color@10.2.2) @@ -7703,7 +7738,7 @@ snapshots: https-proxy-agent: 7.0.6(supports-color@10.2.2) node-fetch: 2.7.0 nopt: 8.1.0 - semver: 7.7.2 + semver: 7.7.4 tar: 7.5.6 transitivePeerDependencies: - encoding @@ -7890,7 +7925,7 @@ snapshots: image-size: 2.0.2 js-image-generator: 1.0.4 parse-gitignore: 2.0.0 - semver: 7.7.2 + semver: 7.7.4 tmp-promise: 3.0.3 uuid: 11.1.0 write-file-atomic: 5.0.1 @@ -7926,7 +7961,7 @@ snapshots: image-size: 2.0.2 js-image-generator: 1.0.4 parse-gitignore: 2.0.0 - semver: 7.7.2 + semver: 7.7.4 tmp-promise: 3.0.3 uuid: 13.0.0 write-file-atomic: 5.0.1 @@ -8140,7 +8175,7 @@ snapshots: precinct: 12.2.0(supports-color@10.2.2) require-package-name: 2.0.1 resolve: 2.0.0-next.5 - semver: 7.7.2 + semver: 7.7.4 tmp-promise: 3.0.3 toml: 3.0.0 unixify: 1.0.0 @@ -8310,7 +8345,7 @@ snapshots: '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - semver: 7.7.2 + semver: 7.7.4 '@opentelemetry/semantic-conventions@1.28.0': {} @@ -8372,7 +8407,7 @@ snapshots: '@parcel/watcher-wasm@2.5.6': dependencies: is-glob: 4.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 '@parcel/watcher-win32-arm64@2.5.6': optional: true @@ -8388,7 +8423,7 @@ snapshots: detect-libc: 2.1.2 is-glob: 4.0.3 node-addon-api: 7.1.1 - picomatch: 4.0.3 + picomatch: 4.0.4 optionalDependencies: '@parcel/watcher-android-arm64': 2.5.6 '@parcel/watcher-darwin-arm64': 2.5.6 @@ -8423,7 +8458,7 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@pnpm/tabtab@0.5.4': + '@pnpm/tabtab@0.5.4(supports-color@10.2.2)': dependencies: debug: 4.4.3(supports-color@10.2.2) enquirer: 2.4.1 @@ -8432,6 +8467,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + '@rollup/pluginutils@5.3.0(rollup@4.60.3)': dependencies: '@types/estree': 1.0.8 @@ -8791,8 +8830,8 @@ snapshots: '@typescript-eslint/visitor-keys': 8.53.1 debug: 4.4.3(supports-color@10.2.2) minimatch: 9.0.5 - semver: 7.7.3 - tinyglobby: 0.2.15 + semver: 7.7.4 + tinyglobby: 0.2.16 ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -8817,7 +8856,7 @@ snapshots: glob: 10.5.0 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.3 + picomatch: 4.0.4 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -9008,6 +9047,10 @@ snapshots: dependencies: acorn: 8.15.0 + acorn-import-attributes@1.9.5(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -9140,6 +9183,8 @@ snapshots: argparse@2.0.1: {} + args-tokenizer@0.3.0: {} + args@4.0.0: dependencies: camelcase: 5.0.0 @@ -9418,6 +9463,18 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + bumpp@11.1.0: + dependencies: + args-tokenizer: 0.3.0 + cac: 7.0.0 + jsonc-parser: 3.3.1 + package-manager-detector: 1.6.0 + semver: 7.7.4 + tinyexec: 1.1.2 + tinyglobby: 0.2.16 + unconfig: 7.5.0 + yaml: 2.9.0 + bundle-name@4.1.0: dependencies: run-applescript: 7.1.0 @@ -9447,6 +9504,8 @@ snapshots: optionalDependencies: magicast: 0.5.2 + cac@7.0.0: {} + cacheable-lookup@7.0.0: {} cacheable-request@10.2.14: @@ -10159,7 +10218,7 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-jsdoc@62.4.1(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-jsdoc@62.4.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2): dependencies: '@es-joy/jsdoccomment': 0.83.0 '@es-joy/resolve.exports': 1.2.0 @@ -10167,7 +10226,7 @@ snapshots: comment-parser: 1.4.5 debug: 4.4.3(supports-color@10.2.2) escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) espree: 11.1.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -10190,14 +10249,14 @@ snapshots: eslint-visitor-keys@5.0.0: {} - eslint@9.39.2(jiti@2.6.1): + eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1 + '@eslint/config-array': 0.21.1(supports-color@10.2.2) '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.3 + '@eslint/eslintrc': 3.3.3(supports-color@10.2.2) '@eslint/js': 9.39.2 '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 @@ -10410,7 +10469,7 @@ snapshots: extend@3.0.2: {} - extract-zip@2.0.1: + extract-zip@2.0.1(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) get-stream: 5.2.0 @@ -10604,7 +10663,7 @@ snapshots: dependencies: from2: 2.3.0 - follow-redirects@1.15.11(debug@4.4.3): + follow-redirects@1.15.11(debug@4.4.3(supports-color@10.2.2)): optionalDependencies: debug: 4.4.3(supports-color@10.2.2) @@ -10701,7 +10760,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.5: + get-uri@6.0.5(supports-color@10.2.2): dependencies: basic-ftp: 5.1.0 data-uri-to-buffer: 6.0.2 @@ -11111,20 +11170,20 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.9(debug@4.4.3): + http-proxy-middleware@2.0.9(debug@4.4.3(supports-color@10.2.2)): dependencies: '@types/http-proxy': 1.17.17 - http-proxy: 1.18.1(debug@4.4.3) + http-proxy: 1.18.1(debug@4.4.3(supports-color@10.2.2)) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.8 transitivePeerDependencies: - debug - http-proxy@1.18.1(debug@4.4.3): + http-proxy@1.18.1(debug@4.4.3(supports-color@10.2.2)): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.11(debug@4.4.3) + follow-redirects: 1.15.11(debug@4.4.3(supports-color@10.2.2)) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -11184,8 +11243,8 @@ snapshots: import-in-the-middle@1.15.0: dependencies: - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 @@ -11712,7 +11771,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 make-error@1.3.6: {} @@ -12349,7 +12408,7 @@ snapshots: neotraverse@0.6.18: {} - netlify-cli@23.13.5(@types/node@25.0.10)(db0@0.3.1)(ioredis@5.6.0)(picomatch@4.0.3)(rollup@4.60.3): + netlify-cli@23.13.5(@types/node@25.0.10)(db0@0.3.1)(ioredis@5.6.0)(picomatch@4.0.3)(rollup@4.60.3)(supports-color@10.2.2): dependencies: '@fastify/static': 7.0.4 '@netlify/ai': 0.3.4(@netlify/api@14.0.12) @@ -12368,7 +12427,7 @@ snapshots: '@netlify/zip-it-and-ship-it': 14.2.0(rollup@4.60.3)(supports-color@10.2.2) '@octokit/rest': 22.0.0 '@opentelemetry/api': 1.8.0 - '@pnpm/tabtab': 0.5.4 + '@pnpm/tabtab': 0.5.4(supports-color@10.2.2) ansi-escapes: 7.1.1 ansi-to-html: 0.7.2 ascii-table: 0.0.9 @@ -12393,7 +12452,7 @@ snapshots: execa: 5.1.1 express: 4.22.1 express-logging: 1.1.1 - extract-zip: 2.0.1 + extract-zip: 2.0.1(supports-color@10.2.2) fastest-levenshtein: 1.0.16 fastify: 4.29.1 find-up: 7.0.0 @@ -12403,8 +12462,8 @@ snapshots: gh-release-fetch: 4.0.3 git-repo-info: 2.1.1 gitconfiglocal: 2.1.0 - http-proxy: 1.18.1(debug@4.4.3) - http-proxy-middleware: 2.0.9(debug@4.4.3) + http-proxy: 1.18.1(debug@4.4.3(supports-color@10.2.2)) + http-proxy-middleware: 2.0.9(debug@4.4.3(supports-color@10.2.2)) https-proxy-agent: 7.0.6(supports-color@10.2.2) inquirer: 8.2.7(@types/node@25.0.10) inquirer-autocomplete-prompt: 1.4.0(inquirer@8.2.7(@types/node@25.0.10)) @@ -12531,7 +12590,7 @@ snapshots: normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-package-data@7.0.1: @@ -12568,7 +12627,7 @@ snapshots: dependencies: citty: 0.2.0 pathe: 2.0.3 - tinyexec: 1.0.2 + tinyexec: 1.1.2 object-deep-merge@2.0.0: {} @@ -12743,12 +12802,12 @@ snapshots: dependencies: p-timeout: 6.1.4 - pac-proxy-agent@7.2.0: + pac-proxy-agent@7.2.0(supports-color@10.2.2): dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 debug: 4.4.3(supports-color@10.2.2) - get-uri: 6.0.5 + get-uri: 6.0.5(supports-color@10.2.2) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6(supports-color@10.2.2) pac-resolver: 7.0.1 @@ -12772,7 +12831,7 @@ snapshots: ky: 1.14.3 registry-auth-token: 5.1.1 registry-url: 6.0.1 - semver: 7.7.2 + semver: 7.7.4 package-manager-detector@1.6.0: {} @@ -13021,14 +13080,14 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.5.0: + proxy-agent@6.5.0(supports-color@10.2.2): dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@10.2.2) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6(supports-color@10.2.2) lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0 + pac-proxy-agent: 7.2.0(supports-color@10.2.2) proxy-from-env: 1.1.0 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -13060,6 +13119,8 @@ snapshots: dependencies: side-channel: 1.1.0 + quansync@1.0.0: {} + queue-microtask@1.2.3: {} quick-format-unescaped@4.0.4: {} @@ -13265,7 +13326,7 @@ snapshots: rehype-stringify: 10.0.1 unified: 11.0.5 - release-it@19.2.4(@types/node@25.0.10)(magicast@0.5.2): + release-it@19.2.4(@types/node@25.0.10)(magicast@0.5.2)(supports-color@10.2.2): dependencies: '@nodeutils/defaults-deep': 1.1.0 '@octokit/rest': 22.0.1 @@ -13283,7 +13344,7 @@ snapshots: open: 10.2.0 ora: 9.0.0 os-name: 6.1.0 - proxy-agent: 6.5.0 + proxy-agent: 6.5.0(supports-color@10.2.2) semver: 7.7.3 tinyglobby: 0.2.15 undici: 6.23.0 @@ -14182,6 +14243,19 @@ snapshots: buffer: 5.7.1 through: 2.3.8 + unconfig-core@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + quansync: 1.0.0 + + unconfig@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + defu: 6.1.7 + jiti: 2.6.1 + quansync: 1.0.0 + unconfig-core: 7.5.0 + uncrypto@0.1.3: {} undici-types@7.16.0: {} @@ -14581,6 +14655,8 @@ snapshots: yaml@2.8.2: {} + yaml@2.9.0: {} + yargs-parser@21.1.1: {} yargs-parser@22.0.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f7e0f48..a553da6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,5 @@ packages: # include packages in subfolders (e.g. apps/ and packages/) - 'docs/' +allowBuilds: + netlify-cli: false diff --git a/scripts/release.js b/scripts/release.js new file mode 100644 index 0000000..9d343b4 --- /dev/null +++ b/scripts/release.js @@ -0,0 +1,30 @@ +// forked from https://github.com/elk-zone/elk/blob/main/scripts/release.ts +import { simpleGit } from 'simple-git' + +const git = simpleGit() +const hash = await git.revparse(['main']) +const remote = 'gh' + +console.log('Fetch remote gh repo') +await git.fetch(remote) + +console.log('Checkout release branch') +await git.checkout(['-b', 'release', '--track', 'gh/release']) + +console.log(`Reset to main branch (${hash})`) +await git.reset(['--hard', hash]) + +console.log('Push to release branch') +await git.push(['--force', remote]) + +console.log('Checkout main branch') +await git.checkout('main') + +console.log('Deleting local release branch') +await git.branch(['-D', 'release']) + +// TODO: handle multiple remotes with a data structure +console.log('Push tags') +await git.push(['--tags']) +await git.push(['--tags', remote]) +await git.push(['--tags', 'sh'])