naro-cli 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -9
- package/dist/args.d.ts +2 -0
- package/dist/artifact-types.d.ts +1 -1
- package/dist/{chunk-RQJTCRKY.js → chunk-UJGDKNDM.js} +721 -978
- package/dist/deploy.d.ts +11 -2
- package/dist/deploy.js +7 -1
- package/dist/index.js +134 -60
- package/dist/user-adapter.d.ts +32 -0
- package/dist/working-tree.d.ts +1 -1
- package/package.json +5 -6
package/README.md
CHANGED
|
@@ -23,6 +23,18 @@ asks before opening a dotenv file to fill what is missing. Decline and it
|
|
|
23
23
|
prints the `naro env add` commands instead. With `--yes`, `--json` or outside
|
|
24
24
|
a TTY it never asks — it just lists what is missing and deploys.
|
|
25
25
|
|
|
26
|
+
An app whose `next.config` sets its own Next.js adapter (`adapterPath`, or
|
|
27
|
+
`experimental.adapterPath`) gets one question on the first deploy: replace it
|
|
28
|
+
with the Naro adapter on Naro's builders (recommended; your repository stays as
|
|
29
|
+
it is) or keep it, in which case Naro builds with vinext only. The answer is
|
|
30
|
+
saved on the project, so the deploy asks once. `--user-adapter replace|keep`
|
|
31
|
+
answers it without a prompt and saves it too; `naro project set --user-adapter
|
|
32
|
+
replace|keep` changes it later. With `--yes`, `--json` or outside a TTY and no
|
|
33
|
+
saved answer, the deploy only warns and builds as before (replace). When the
|
|
34
|
+
saved answer cannot be read, it asks nothing and warns that the setting could
|
|
35
|
+
not be read, since the saved answer may be keep. A local build has no Naro
|
|
36
|
+
adapter either way; the choice matters for Naro's remote builds.
|
|
37
|
+
|
|
26
38
|
When those names give away a service you are already running, the deploy says
|
|
27
39
|
so instead of leaving you with a list of names. An app that talks to an
|
|
28
40
|
existing Supabase project prints `Supabase — in that project's dashboard:` and
|
|
@@ -36,7 +48,7 @@ effectively your env credentials.
|
|
|
36
48
|
|
|
37
49
|
## Requirements
|
|
38
50
|
|
|
39
|
-
Next.js **
|
|
51
|
+
Next.js **16 or newer**. Next 15 and below are not supported — they stop at the
|
|
40
52
|
version gate right after install with `NEXT_VERSION_UNSUPPORTED`.
|
|
41
53
|
|
|
42
54
|
Vite, Create React App and plain static sites deploy too.
|
|
@@ -65,11 +77,12 @@ naro link | init Link this directory to a Naro project
|
|
|
65
77
|
naro unlink Remove the link
|
|
66
78
|
naro projects [--team <slug>] List projects
|
|
67
79
|
naro project inspect Show the linked project
|
|
68
|
-
naro usage Team usage this month: requests, builds and custom domains against the plan, then by project
|
|
80
|
+
naro usage Team usage this month: requests, builds and custom domains against the plan, then by project, then CPU by project and environment
|
|
69
81
|
naro usage --month 2026-09 --team acme Another UTC month, another team
|
|
70
82
|
|
|
71
83
|
naro deploy [--prod] Build locally and deploy
|
|
72
84
|
naro deploy --env qa Deploy to a named environment (<subdomain>--qa) instead of the preview; not with --prod
|
|
85
|
+
naro deploy --user-adapter keep Answer the Next.js adapter question up front (replace | keep); see the adapter paragraph above
|
|
73
86
|
naro deployments List deployments
|
|
74
87
|
naro inspect <deployment-id> One deployment + build logs
|
|
75
88
|
naro cancel <deployment-id> Stop a build that is still running
|
|
@@ -102,8 +115,6 @@ naro env remove DATABASE_URL The production, preview and all values; an en
|
|
|
102
115
|
naro env pull [.env.local] Preview's values by default; --env production, or --env qa for an environment
|
|
103
116
|
(its own value wins over all; an unknown name fails before anything is written,
|
|
104
117
|
and so does a value no dotenv line reads back)
|
|
105
|
-
naro supabase [list] The project's Supabase links, per target (connect in the dashboard)
|
|
106
|
-
naro supabase disconnect [target] Remove a target's link, or (no target or all) every link your role may change, with its env vars (asks first)
|
|
107
118
|
naro env import .env.qa qa Upload every variable in a dotenv file to one target (all by default; asks first,
|
|
108
119
|
--yes in CI; an unclosed quote, an invalid key, ASSETS or a value over 5 KB
|
|
109
120
|
stops it before any request, and so does a key a storage binding already uses
|
|
@@ -886,6 +897,41 @@ An `--update-check` you give replaces the default: without
|
|
|
886
897
|
|
|
887
898
|
## Release notes
|
|
888
899
|
|
|
900
|
+
### 0.28.0
|
|
901
|
+
|
|
902
|
+
- Next.js 15 and below are refused up front with `NEXT_VERSION_UNSUPPORTED`
|
|
903
|
+
(`Naro deploys Next.js 16 or newer.`); a newer major than Naro has a release
|
|
904
|
+
date for is no longer reported as too old.
|
|
905
|
+
- The OpenNext fallback is gone. Naro's builders try vinext, then the Naro
|
|
906
|
+
adapter (Next.js 16.2+); local builds try vinext only. An app nothing can
|
|
907
|
+
build or serve fails with `NO_DEPLOYMENT_STRATEGY`. An unreadable
|
|
908
|
+
`vinext check` report no longer stops the deploy; the build and the smoke
|
|
909
|
+
check still decide.
|
|
910
|
+
- `@opennextjs/cloudflare` is no longer a dependency of naro-cli.
|
|
911
|
+
- `naro deploy --user-adapter replace|keep` and `naro project set
|
|
912
|
+
--user-adapter replace|keep` choose what Naro's builders do with an app whose
|
|
913
|
+
`next.config` sets its own Next.js adapter. `naro deploy` asks once when the
|
|
914
|
+
project has no saved choice.
|
|
915
|
+
- With `naro project set --vinext off`, Naro's builders (git push,
|
|
916
|
+
`naro deployments create`) build a Next.js 16.2+ app with the Naro adapter.
|
|
917
|
+
Local builds (`naro deploy`) have no Naro adapter yet, so a server-rendered
|
|
918
|
+
Next.js app cannot deploy locally while vinext is off.
|
|
919
|
+
- `naro usage` adds CPU time by project and environment (observed, not
|
|
920
|
+
billed).
|
|
921
|
+
- naro-mcp 0.27.0 goes out with it: `update_project` and `deploy` take
|
|
922
|
+
`userAdapter`, `deploy` answers `needsAdapterChoice` when it has to ask, and
|
|
923
|
+
`get_team_usage` adds `hosting` (CPU time per project and environment).
|
|
924
|
+
|
|
925
|
+
### 0.27.0
|
|
926
|
+
|
|
927
|
+
- `naro supabase` and `naro supabase disconnect` are gone, with the
|
|
928
|
+
dashboard's Supabase card and its routes. A project reaches its Supabase
|
|
929
|
+
like anything else: `NEXT_PUBLIC_SUPABASE_URL` and its key with
|
|
930
|
+
`naro env add`. Variables the card set stay, as your own. Older versions
|
|
931
|
+
answer `NOT_FOUND` on `naro supabase`.
|
|
932
|
+
- naro-mcp 0.26.0 goes out with it: `list_supabase_links` and
|
|
933
|
+
`disconnect_supabase` are gone.
|
|
934
|
+
|
|
889
935
|
### 0.26.0
|
|
890
936
|
|
|
891
937
|
- `naro dashboard [<capability>]` prints the dashboard URL for what the CLI
|
|
@@ -913,7 +959,12 @@ browser or your own folder (the capability registry in
|
|
|
913
959
|
- Projects: `naro project set` (name, subdomain), `naro project check
|
|
914
960
|
<subdomain>`, `naro project access` (`grant`, `revoke`) and `naro project
|
|
915
961
|
delete`, which asks you to type the project's name (`--yes` only with
|
|
916
|
-
`--project`).
|
|
962
|
+
`--project`). `naro project set --vinext on|off` switches vinext for the
|
|
963
|
+
project. It governs Naro's build runner (git and dashboard deploys), where off
|
|
964
|
+
skips vinext and builds with the Naro adapter (Next.js 16.2 or newer). A local
|
|
965
|
+
`naro deploy` reads it too but has no Naro adapter, so while it is off
|
|
966
|
+
`naro deploy` cannot build a server-rendered Next.js app
|
|
967
|
+
(`NO_DEPLOYMENT_STRATEGY`); static exports (`output: "export"`) still build.
|
|
917
968
|
- The edge: `naro firewall` (`add`, `enable`, `disable`, `remove`), `naro flags`
|
|
918
969
|
(`add`, `on`, `off`, `remove`) and `naro bindings` (`add`, `remove` — removing
|
|
919
970
|
deletes the R2 bucket, KV namespace or D1 database with its data, and asks).
|
|
@@ -1887,10 +1938,9 @@ Next.js), `INSTALL_FAILED` (the dependency install), `ARTIFACT_INVALID` (static
|
|
|
1887
1938
|
output a deploy cannot take, like a symbolic link), `FRAMEWORK_DETECTION_FAILED`
|
|
1888
1939
|
(no framework found, or an Angular app without an output path) and
|
|
1889
1940
|
`BUILD_FAILED` (the app's own build, or a failure that carried no code). A
|
|
1890
|
-
Next.js app is built
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
what each strategy failed at.
|
|
1941
|
+
Next.js app (16 or newer) is built with vinext. Local builds use vinext only for
|
|
1942
|
+
now (no Naro adapter), so an app's own build error there still shows as
|
|
1943
|
+
`NO_DEPLOYMENT_STRATEGY`: read the message and the build log.
|
|
1894
1944
|
|
|
1895
1945
|
`--yes` (or `-y`) suppresses every prompt — destructive actions
|
|
1896
1946
|
(production rollback, promote to production or to an environment, env/domain/environment removal, `naro env import`, turning off an environment's protection, database reset, backend key
|
package/dist/args.d.ts
CHANGED
|
@@ -39,6 +39,8 @@ export interface GlobalFlags {
|
|
|
39
39
|
outputDir?: string | undefined;
|
|
40
40
|
/** `naro project set --vinext on|off`. */
|
|
41
41
|
vinext?: string | undefined;
|
|
42
|
+
/** `naro project set` and `naro deploy`: --user-adapter replace|keep. */
|
|
43
|
+
userAdapter?: string | undefined;
|
|
42
44
|
/** `naro storage sign --expires <seconds>`: 1-3600, an hour by default. */
|
|
43
45
|
expires?: string | undefined;
|
|
44
46
|
/** `naro storage sign --download`: the browser saves the file. */
|
package/dist/artifact-types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export type DeploymentStatus = "QUEUED" | "CLONING" | "INSTALLING" | "BUILDING" | "DEPLOYING" | "READY" | "FAILED";
|
|
3
3
|
/** Mirrors the artifact file shape from the internal build package. */
|
|
4
4
|
export interface ArtifactFile {
|
|
5
|
-
/** Module name relative to the
|
|
5
|
+
/** Module name relative to the build output root. */
|
|
6
6
|
name: string;
|
|
7
7
|
/** Immutable bytes retained after the isolated build workspace is removed. */
|
|
8
8
|
data: Uint8Array;
|