diff --git a/.changeset/config-package-sites.md b/.changeset/config-package-sites.md deleted file mode 100644 index 671472ae..00000000 --- a/.changeset/config-package-sites.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/config": patch ---- - -rename `@bunny.net/app-config` to `@bunny.net/config` and add a top-level `sites` block (`name`, `dir`, `build`) to the bunny.jsonc schema; the root `BunnyConfigSchema` makes `app` and `sites` optional so app-only, sites-only, and combined files all validate against the generated JSON Schema diff --git a/.changeset/sites-ci-init-respects-config.md b/.changeset/sites-ci-init-respects-config.md deleted file mode 100644 index 18152617..00000000 --- a/.changeset/sites-ci-init-respects-config.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `ci init` now writes `sites.dir` and `sites.build` from `bunny.jsonc` into the generated workflow, so CI stops deploying the framework preset's directory while a local `sites deploy` uses the configured one; a `bunny.jsonc` below the repo root also gets a job working directory, a prefixed deploy directory, and its own lockfile as the cache path diff --git a/.changeset/sites-confirm-non-interactive.md b/.changeset/sites-confirm-non-interactive.md deleted file mode 100644 index d1bebdb9..00000000 --- a/.changeset/sites-confirm-non-interactive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `delete`, `deployments publish/prune` and `domains remove` now error with a `--force` hint when there's no TTY to answer their confirmation, instead of hanging on a prompt (and writing it to stdout ahead of `--output json`) diff --git a/.changeset/sites-create-config-name.md b/.changeset/sites-create-config-name.md deleted file mode 100644 index c449deab..00000000 --- a/.changeset/sites-create-config-name.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `create` falls back to `sites.name` from `bunny.jsonc` like every other sites command, instead of failing with "Site name is required." in a configured project when it can't prompt diff --git a/.changeset/sites-force-picker.md b/.changeset/sites-force-picker.md deleted file mode 100644 index a169e4c2..00000000 --- a/.changeset/sites-force-picker.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `--force` on `delete`, `deployments publish/prune` and `domains remove` now errors without an explicit or linked site instead of opening the picker, so a highlighted site can't be acted on with the confirmation already skipped diff --git a/.changeset/sites-link-flag-scope.md b/.changeset/sites-link-flag-scope.md deleted file mode 100644 index 889af790..00000000 --- a/.changeset/sites-link-flag-scope.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `--link` is now only accepted by the commands that can act on it (`deploy`, `show`, `deployments list/publish`, `upgrade-router`, `ci init`), where an explicit `--link` also links a site resolved from `--site` or `bunny.jsonc`, including under `--output json`; `open`, `ssl`, `delete` and `deployments prune` no longer advertise a flag they ignored diff --git a/.changeset/sites-namespace.md b/.changeset/sites-namespace.md deleted file mode 100644 index 10ee47f1..00000000 --- a/.changeset/sites-namespace.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": minor ---- - -feat(sites): new `bunny sites` namespace for static-site hosting. `sites create` provisions a storage zone + pull zone + middleware router per site (zones are named `sites--` so globally-taken names can't block the create; commands take the clean site name), prompting for the name (directory-name suggestion) and a custom domain when run interactively (Bunny DNS record, nameserver guidance, DNS wait + SSL); `sites deploy` uploads immutable deploys (git-sha or content-hash IDs, no-op when unchanged) to preview URLs, and `--production`/`--prod` publishes the live site by flipping the router's `CURRENT_DEPLOY` env var + purging the cache; `sites deployments list/publish/prune` cover rollback and cleanup; `sites domains` attaches custom domains plus a `*.preview.` wildcard for per-deploy preview URLs; `sites ci init` (also offered by `sites create` on GitHub repos) scaffolds a GitHub Actions workflow with framework detection: previews on PRs, production on merges to main; `sites link/unlink/show/upgrade/delete` round out the lifecycle. Concurrent deploys merge remote state records instead of overwriting. Site state lives at `_bunny/site.json` inside the storage zone (403-blocked by the router). The shared hostnames factory gains optional `onAdded`/`onRemoved` hooks. diff --git a/.changeset/sites-prune-keep-validation.md b/.changeset/sites-prune-keep-validation.md deleted file mode 100644 index a6750380..00000000 --- a/.changeset/sites-prune-keep-validation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `deployments prune --keep` now rejects non-integer and negative counts up front; `--keep abc` reached the pruner as NaN and deleted every deploy except the live and previous ones diff --git a/.changeset/sites-prune-site-positional.md b/.changeset/sites-prune-site-positional.md deleted file mode 100644 index 147a53fe..00000000 --- a/.changeset/sites-prune-site-positional.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(sites): `deployments prune` takes the site as a positional (`prune my-site`) like its sibling subcommands, instead of rejecting it as an unknown argument; `--site` keeps working diff --git a/.changeset/storage-behavioral-consistency.md b/.changeset/storage-behavioral-consistency.md deleted file mode 100644 index 2ec24141..00000000 --- a/.changeset/storage-behavioral-consistency.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(storage): shared TTY detection, non-interactive guard and cancel handling for zones update, aligned --force semantics, and linked-zone fallback for domains commands diff --git a/.changeset/storage-convention-parity.md b/.changeset/storage-convention-parity.md deleted file mode 100644 index 6054f330..00000000 --- a/.changeset/storage-convention-parity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(storage): type-to-confirm zone deletion, new storage unlink command, offer-to-link from the zone picker, and the replication confirmation now defaults to no diff --git a/.changeset/storage-force-picker.md b/.changeset/storage-force-picker.md deleted file mode 100644 index b6b6d22e..00000000 --- a/.changeset/storage-force-picker.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -storage: `--force` on `zones remove` and `files remove` now errors without an explicit or linked zone instead of opening the picker diff --git a/.changeset/storage-wording-polish.md b/.changeset/storage-wording-polish.md deleted file mode 100644 index b96dda09..00000000 --- a/.changeset/storage-wording-polish.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@bunny.net/cli": patch ---- - -fix(storage): canonical plural command paths in hints, consistent decline handling in zones add, and --custom-404-path "" now clears the custom 404 diff --git a/packages/cli-darwin-arm64/CHANGELOG.md b/packages/cli-darwin-arm64/CHANGELOG.md index 8bd354ca..8bfc80a0 100644 --- a/packages/cli-darwin-arm64/CHANGELOG.md +++ b/packages/cli-darwin-arm64/CHANGELOG.md @@ -1,5 +1,7 @@ # @bunny.net/cli-darwin-arm64 +## 0.11.0 + ## 0.10.1 ## 0.10.0 diff --git a/packages/cli-darwin-arm64/package.json b/packages/cli-darwin-arm64/package.json index 4d9a219f..db5f702f 100644 --- a/packages/cli-darwin-arm64/package.json +++ b/packages/cli-darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/cli-darwin-arm64", - "version": "0.10.1", + "version": "0.11.0", "description": "bunny.net CLI binary for macOS arm64", "os": [ "darwin" diff --git a/packages/cli-darwin-x64/CHANGELOG.md b/packages/cli-darwin-x64/CHANGELOG.md index eab03dc7..b3567d3d 100644 --- a/packages/cli-darwin-x64/CHANGELOG.md +++ b/packages/cli-darwin-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @bunny.net/cli-darwin-x64 +## 0.11.0 + ## 0.10.1 ## 0.10.0 diff --git a/packages/cli-darwin-x64/package.json b/packages/cli-darwin-x64/package.json index 0e51815c..7163a13c 100644 --- a/packages/cli-darwin-x64/package.json +++ b/packages/cli-darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/cli-darwin-x64", - "version": "0.10.1", + "version": "0.11.0", "description": "bunny.net CLI binary for macOS x64", "os": [ "darwin" diff --git a/packages/cli-linux-arm64/CHANGELOG.md b/packages/cli-linux-arm64/CHANGELOG.md index 02aebc1d..2d6136a9 100644 --- a/packages/cli-linux-arm64/CHANGELOG.md +++ b/packages/cli-linux-arm64/CHANGELOG.md @@ -1,5 +1,7 @@ # @bunny.net/cli-linux-arm64 +## 0.11.0 + ## 0.10.1 ## 0.10.0 diff --git a/packages/cli-linux-arm64/package.json b/packages/cli-linux-arm64/package.json index bce3dcd6..b1f00fba 100644 --- a/packages/cli-linux-arm64/package.json +++ b/packages/cli-linux-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/cli-linux-arm64", - "version": "0.10.1", + "version": "0.11.0", "description": "bunny.net CLI binary for Linux arm64", "os": [ "linux" diff --git a/packages/cli-linux-x64/CHANGELOG.md b/packages/cli-linux-x64/CHANGELOG.md index e3775f81..45866368 100644 --- a/packages/cli-linux-x64/CHANGELOG.md +++ b/packages/cli-linux-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @bunny.net/cli-linux-x64 +## 0.11.0 + ## 0.10.1 ## 0.10.0 diff --git a/packages/cli-linux-x64/package.json b/packages/cli-linux-x64/package.json index c1dcb73b..5436e752 100644 --- a/packages/cli-linux-x64/package.json +++ b/packages/cli-linux-x64/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/cli-linux-x64", - "version": "0.10.1", + "version": "0.11.0", "description": "bunny.net CLI binary for Linux x64", "os": [ "linux" diff --git a/packages/cli-windows-x64/CHANGELOG.md b/packages/cli-windows-x64/CHANGELOG.md index 8908905a..a7a5c50c 100644 --- a/packages/cli-windows-x64/CHANGELOG.md +++ b/packages/cli-windows-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @bunny.net/cli-windows-x64 +## 0.11.0 + ## 0.10.1 ## 0.10.0 diff --git a/packages/cli-windows-x64/package.json b/packages/cli-windows-x64/package.json index 1242e0ee..33d033fc 100644 --- a/packages/cli-windows-x64/package.json +++ b/packages/cli-windows-x64/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/cli-windows-x64", - "version": "0.10.1", + "version": "0.11.0", "description": "bunny.net CLI binary for Windows x64", "os": [ "win32" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index cbbf7460..b012aedb 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,35 @@ # @bunny.net/cli +## 0.11.0 + +### Minor Changes + +- [#125](https://github.com/BunnyWay/cli/pull/125) [`9696434`](https://github.com/BunnyWay/cli/commit/96964348d630df5b8344087deac50bb6da4a5734) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - feat(sites): new `bunny sites` namespace for static-site hosting. `sites create` provisions a storage zone + pull zone + middleware router per site (zones are named `sites--` so globally-taken names can't block the create; commands take the clean site name), prompting for the name (directory-name suggestion) and a custom domain when run interactively (Bunny DNS record, nameserver guidance, DNS wait + SSL); `sites deploy` uploads immutable deploys (git-sha or content-hash IDs, no-op when unchanged) to preview URLs, and `--production`/`--prod` publishes the live site by flipping the router's `CURRENT_DEPLOY` env var + purging the cache; `sites deployments list/publish/prune` cover rollback and cleanup; `sites domains` attaches custom domains plus a `*.preview.` wildcard for per-deploy preview URLs; `sites ci init` (also offered by `sites create` on GitHub repos) scaffolds a GitHub Actions workflow with framework detection: previews on PRs, production on merges to main; `sites link/unlink/show/upgrade/delete` round out the lifecycle. Concurrent deploys merge remote state records instead of overwriting. Site state lives at `_bunny/site.json` inside the storage zone (403-blocked by the router). The shared hostnames factory gains optional `onAdded`/`onRemoved` hooks. + +### Patch Changes + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `ci init` now writes `sites.dir` and `sites.build` from `bunny.jsonc` into the generated workflow, so CI stops deploying the framework preset's directory while a local `sites deploy` uses the configured one; a `bunny.jsonc` below the repo root also gets a job working directory, a prefixed deploy directory, and its own lockfile as the cache path + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `delete`, `deployments publish/prune` and `domains remove` now error with a `--force` hint when there's no TTY to answer their confirmation, instead of hanging on a prompt (and writing it to stdout ahead of `--output json`) + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `create` falls back to `sites.name` from `bunny.jsonc` like every other sites command, instead of failing with "Site name is required." in a configured project when it can't prompt + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `--force` on `delete`, `deployments publish/prune` and `domains remove` now errors without an explicit or linked site instead of opening the picker, so a highlighted site can't be acted on with the confirmation already skipped + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `--link` is now only accepted by the commands that can act on it (`deploy`, `show`, `deployments list/publish`, `upgrade-router`, `ci init`), where an explicit `--link` also links a site resolved from `--site` or `bunny.jsonc`, including under `--output json`; `open`, `ssl`, `delete` and `deployments prune` no longer advertise a flag they ignored + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `deployments prune --keep` now rejects non-integer and negative counts up front; `--keep abc` reached the pruner as NaN and deleted every deploy except the live and previous ones + +- [#135](https://github.com/BunnyWay/cli/pull/135) [`009d9e8`](https://github.com/BunnyWay/cli/commit/009d9e812fe7f1f9088f1feb24743002cdf317ef) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(sites): `deployments prune` takes the site as a positional (`prune my-site`) like its sibling subcommands, instead of rejecting it as an unknown argument; `--site` keeps working + +- [#120](https://github.com/BunnyWay/cli/pull/120) [`3c3373a`](https://github.com/BunnyWay/cli/commit/3c3373a0dff5a0e730f7a6c3b5a23fb17727a14e) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(storage): shared TTY detection, non-interactive guard and cancel handling for zones update, aligned --force semantics, and linked-zone fallback for domains commands + +- [#120](https://github.com/BunnyWay/cli/pull/120) [`3c3373a`](https://github.com/BunnyWay/cli/commit/3c3373a0dff5a0e730f7a6c3b5a23fb17727a14e) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(storage): type-to-confirm zone deletion, new storage unlink command, offer-to-link from the zone picker, and the replication confirmation now defaults to no + +- [#134](https://github.com/BunnyWay/cli/pull/134) [`ac867d5`](https://github.com/BunnyWay/cli/commit/ac867d58f329575f89c52fa1d789c10501c4ef5b) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - storage: `--force` on `zones remove` and `files remove` now errors without an explicit or linked zone instead of opening the picker + +- [#120](https://github.com/BunnyWay/cli/pull/120) [`3c3373a`](https://github.com/BunnyWay/cli/commit/3c3373a0dff5a0e730f7a6c3b5a23fb17727a14e) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - fix(storage): canonical plural command paths in hints, consistent decline handling in zones add, and --custom-404-path "" now clears the custom 404 + ## 0.10.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 3a6a928f..b396db57 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/cli", - "version": "0.10.1", + "version": "0.11.0", "type": "module", "module": "src/index.ts", "bin": { @@ -29,11 +29,11 @@ "zod": "^4.3.6" }, "optionalDependencies": { - "@bunny.net/cli-linux-x64": "0.10.1", - "@bunny.net/cli-linux-arm64": "0.10.1", - "@bunny.net/cli-darwin-x64": "0.10.1", - "@bunny.net/cli-darwin-arm64": "0.10.1", - "@bunny.net/cli-windows-x64": "0.10.1" + "@bunny.net/cli-linux-x64": "0.11.0", + "@bunny.net/cli-linux-arm64": "0.11.0", + "@bunny.net/cli-darwin-x64": "0.11.0", + "@bunny.net/cli-darwin-arm64": "0.11.0", + "@bunny.net/cli-windows-x64": "0.11.0" }, "publishConfig": { "access": "public" diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md index 2fca2d32..fd252010 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,5 +1,11 @@ # @bunny.net/config +## 0.1.3 + +### Patch Changes + +- [#125](https://github.com/BunnyWay/cli/pull/125) [`9696434`](https://github.com/BunnyWay/cli/commit/96964348d630df5b8344087deac50bb6da4a5734) Thanks [@jamie-at-bunny](https://github.com/jamie-at-bunny)! - rename `@bunny.net/app-config` to `@bunny.net/config` and add a top-level `sites` block (`name`, `dir`, `build`) to the bunny.jsonc schema; the root `BunnyConfigSchema` makes `app` and `sites` optional so app-only, sites-only, and combined files all validate against the generated JSON Schema + ## 0.1.2 ### Patch Changes diff --git a/packages/config/package.json b/packages/config/package.json index 17014103..e7b10ccd 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,6 +1,6 @@ { "name": "@bunny.net/config", - "version": "0.1.2", + "version": "0.1.3", "private": true, "type": "module", "module": "src/index.ts",