@contentrail/cli 0.1.0 → 0.2.1
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 +27 -21
- package/dist/cli.d.ts +9 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +255 -32
- package/dist/cli.js.map +1 -1
- package/dist/cloudflare/pages-client.d.ts +52 -0
- package/dist/cloudflare/pages-client.d.ts.map +1 -0
- package/dist/cloudflare/pages-client.js +118 -0
- package/dist/cloudflare/pages-client.js.map +1 -0
- package/dist/commands/connect.d.ts +15 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +132 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/deploy.d.ts +19 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +136 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +4 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +31 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +33 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/import.d.ts +10 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +87 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +206 -15
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pages.d.ts +2 -0
- package/dist/commands/pages.d.ts.map +1 -0
- package/dist/commands/pages.js +2 -0
- package/dist/commands/pages.js.map +1 -0
- package/dist/commands/publish.d.ts +15 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +105 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/config/save.d.ts +4 -0
- package/dist/config/save.d.ts.map +1 -0
- package/dist/config/save.js +22 -0
- package/dist/config/save.js.map +1 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +62 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +24 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/detect/framework.d.ts +1 -1
- package/dist/detect/framework.d.ts.map +1 -1
- package/dist/detect/framework.js +9 -2
- package/dist/detect/framework.js.map +1 -1
- package/dist/editor/validate-config.d.ts.map +1 -1
- package/dist/editor/validate-config.js +16 -2
- package/dist/editor/validate-config.js.map +1 -1
- package/dist/git/remote.d.ts +8 -0
- package/dist/git/remote.d.ts.map +1 -0
- package/dist/git/remote.js +32 -0
- package/dist/git/remote.js.map +1 -0
- package/dist/import/csv.d.ts +6 -0
- package/dist/import/csv.d.ts.map +1 -0
- package/dist/import/csv.js +78 -0
- package/dist/import/csv.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Node.js CLI for ContentRail local development (ADR 020).
|
|
4
4
|
|
|
5
|
-
Requires **Node.js ≥ 22**.
|
|
6
|
-
|
|
7
|
-
Node ≥ **22.12**).
|
|
5
|
+
Requires **Node.js ≥ 22**. Init works on any static site (`framework: "static"`).
|
|
6
|
+
Astro and Vite have extra helpers (Astro **7.3.8**, Vite **8.3.5**;
|
|
7
|
+
`@contentrail/astro` needs Node ≥ **22.12**).
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
> is authorized (`docs/PUBLISHING.md`).
|
|
13
|
-
|
|
14
|
-
### Monorepo (current)
|
|
11
|
+
### Monorepo
|
|
15
12
|
|
|
16
13
|
```sh
|
|
17
14
|
pnpm install
|
|
@@ -19,24 +16,32 @@ pnpm --filter @contentrail/cli build
|
|
|
19
16
|
pnpm exec contentrail --help
|
|
20
17
|
```
|
|
21
18
|
|
|
22
|
-
###
|
|
19
|
+
### From npm (`0.2.1`)
|
|
23
20
|
|
|
24
21
|
```sh
|
|
25
|
-
pnpm add -D @contentrail/cli
|
|
22
|
+
pnpm add -D @contentrail/cli@0.2.1
|
|
26
23
|
pnpm exec contentrail --help
|
|
27
24
|
```
|
|
28
25
|
|
|
29
|
-
|
|
26
|
+
CLI version tracks `@contentrail/cli` (`contentrail --version`). Collection
|
|
27
|
+
schemas use Zod **`^4.6.7`** via `@contentrail/core`.
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
| ---------------------- | ----------------------------------------------- |
|
|
33
|
-
| `contentrail init` | Scaffold config, sample collection, sample JSON |
|
|
34
|
-
| `contentrail validate` | Validate config + local JSON content |
|
|
35
|
-
| `contentrail build` | Validate, then run `package.json` build script |
|
|
36
|
-
| `contentrail doctor` | Diagnose setup (no secret values printed) |
|
|
37
|
-
| `contentrail status` | Summarize local readiness |
|
|
29
|
+
## Commands
|
|
38
30
|
|
|
39
|
-
|
|
31
|
+
| Command | Purpose |
|
|
32
|
+
| --------------------------- | --------------------------------------------------------------------------------- |
|
|
33
|
+
| `contentrail init` | Scaffold config, sample collection, sample JSON (`--with-functions`, `--dry-run`) |
|
|
34
|
+
| `contentrail validate` | Validate config + local JSON content |
|
|
35
|
+
| `contentrail build` | Validate, then run `package.json` build script |
|
|
36
|
+
| `contentrail doctor` | Diagnose setup (no secret values printed) |
|
|
37
|
+
| `contentrail status` | Summarize local readiness |
|
|
38
|
+
| `contentrail dev` | Run `package.json` `dev` |
|
|
39
|
+
| `contentrail import` | CSV → validated JSON for a registered collection |
|
|
40
|
+
| `contentrail publish` | POST local JSON to `publishApiUrl` (env token) |
|
|
41
|
+
| `contentrail deploy status` | Pages deployment status (`CF_API_TOKEN`) |
|
|
42
|
+
| `contentrail pages setup` | Print Cloudflare automation capabilities |
|
|
43
|
+
|
|
44
|
+
`rollback` is API-only. `publish` never sends GitHub tokens (ADR 020). See `docs/CONFIGURATION.md`.
|
|
40
45
|
|
|
41
46
|
### Exit codes
|
|
42
47
|
|
|
@@ -73,10 +78,11 @@ pnpm exec contentrail --help
|
|
|
73
78
|
4. Edit collections / JSON under `content/`
|
|
74
79
|
5. `pnpm exec contentrail validate`
|
|
75
80
|
6. Framework `dev` / `contentrail build`
|
|
76
|
-
7. `
|
|
81
|
+
7. For `/admin`, add `@contentrail/editor` + `preact` and the admin plugin (`docs/ADMIN.md`)
|
|
82
|
+
8. `contentrail doctor` when something fails
|
|
77
83
|
|
|
78
84
|
## Limitations
|
|
79
85
|
|
|
80
|
-
-
|
|
86
|
+
- CLI publish talks only to `publishApiUrl` with `CONTENTRAIL_PUBLISH_TOKEN`. GitHub write tokens stay on the Worker/Pages Functions (ADR 020/027).
|
|
87
|
+
- `pages setup` does not create Cloudflare resources.
|
|
81
88
|
- Collection TypeScript modules are loaded via **jiti**.
|
|
82
|
-
- Lint/format tooling remains a separate monorepo gap.
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { ExitCode } from "./exit-codes.js";
|
|
2
|
-
export
|
|
3
|
-
cwd?: string;
|
|
4
|
-
stdout?: NodeJS.WritableStream;
|
|
5
|
-
stderr?: NodeJS.WritableStream;
|
|
6
|
-
|
|
2
|
+
export interface RunCliOptions {
|
|
3
|
+
readonly cwd?: string;
|
|
4
|
+
readonly stdout?: NodeJS.WritableStream;
|
|
5
|
+
readonly stderr?: NodeJS.WritableStream;
|
|
6
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
7
|
+
readonly fetchImpl?: typeof fetch;
|
|
8
|
+
readonly gitRemoteUrl?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function runCli(argv: readonly string[], options?: RunCliOptions): Promise<ExitCode>;
|
|
7
11
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAoI3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,QAAQ,CAAC,CA+MnB"}
|
package/dist/cli.js
CHANGED
|
@@ -1,37 +1,74 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { runBuild } from "./commands/build.js";
|
|
4
|
+
import { runConnect } from "./commands/connect.js";
|
|
5
|
+
import { runDeploy, runDeployStatus } from "./commands/deploy.js";
|
|
6
|
+
import { runDev } from "./commands/dev.js";
|
|
3
7
|
import { runDoctor } from "./commands/doctor.js";
|
|
8
|
+
import { runImport } from "./commands/import.js";
|
|
4
9
|
import { runInit } from "./commands/init.js";
|
|
10
|
+
import { runPublish } from "./commands/publish.js";
|
|
5
11
|
import { runStatus } from "./commands/status.js";
|
|
6
12
|
import { runValidate } from "./commands/validate.js";
|
|
7
13
|
import { loadProject } from "./config/load.js";
|
|
8
14
|
import { ExitCode } from "./exit-codes.js";
|
|
9
15
|
import { createLogger } from "./util/print.js";
|
|
10
16
|
import { findProjectRoot } from "./util/paths.js";
|
|
11
|
-
const VERSION = "
|
|
17
|
+
const VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
|
|
12
18
|
const HELP = `ContentRail CLI — local developer tooling
|
|
13
19
|
|
|
14
20
|
Usage:
|
|
15
21
|
contentrail <command> [options]
|
|
16
22
|
|
|
17
23
|
Commands:
|
|
18
|
-
init
|
|
19
|
-
validate
|
|
20
|
-
build
|
|
21
|
-
doctor
|
|
22
|
-
status
|
|
24
|
+
init Add ContentRail to an existing static site (any framework)
|
|
25
|
+
validate Validate configuration and local JSON content
|
|
26
|
+
build Validate then run the project build script
|
|
27
|
+
doctor Diagnose common setup problems
|
|
28
|
+
status Summarize local project state
|
|
29
|
+
dev Run the project's package.json "dev" script
|
|
30
|
+
import Import a local CSV file into a registered collection
|
|
31
|
+
publish POST local JSON to the configured publish API (needs token)
|
|
32
|
+
connect Record GitHub origin + create/patch their Cloudflare Pages project
|
|
33
|
+
deploy Build and deploy to their Cloudflare Pages project
|
|
34
|
+
deploy status Fetch Cloudflare Pages deployment status
|
|
35
|
+
pages setup Alias for connect
|
|
23
36
|
|
|
24
37
|
Global options:
|
|
25
38
|
-h, --help Show help
|
|
26
39
|
-V, --version Show version
|
|
27
40
|
-C, --cwd <dir> Project directory (default: current working directory)
|
|
41
|
+
--dry-run Print planned actions without writing or calling APIs
|
|
28
42
|
|
|
29
43
|
init options:
|
|
30
|
-
--framework <astro|vite> Force framework (default: auto-detect)
|
|
44
|
+
--framework <astro|vite|next|static> Force framework (default: auto-detect)
|
|
31
45
|
--force Overwrite existing generated files
|
|
32
|
-
--
|
|
46
|
+
--no-editor Skip contentrail.editor.json
|
|
47
|
+
--no-functions Skip Pages Functions templates
|
|
33
48
|
-y, --yes Non-interactive; accept defaults
|
|
34
49
|
|
|
50
|
+
connect / deploy:
|
|
51
|
+
--confirm --yes Required to create or change Pages projects
|
|
52
|
+
--account-id --project Cloudflare account and Pages project name
|
|
53
|
+
--skip-build Deploy without running the site build
|
|
54
|
+
|
|
55
|
+
import options:
|
|
56
|
+
--collection <name> Registered collection name
|
|
57
|
+
--file <path> Local CSV path
|
|
58
|
+
--force Overwrite existing JSON entry files
|
|
59
|
+
|
|
60
|
+
publish options:
|
|
61
|
+
--collection <name>
|
|
62
|
+
--expected-version <sha-or-version|null>
|
|
63
|
+
|
|
64
|
+
deploy status options:
|
|
65
|
+
--account-id <id>
|
|
66
|
+
--project <pages-project-name>
|
|
67
|
+
|
|
68
|
+
pages setup options:
|
|
69
|
+
--confirm Required before any Cloudflare mutation (still blocked in CLI)
|
|
70
|
+
-y, --yes Non-interactive confirmation
|
|
71
|
+
|
|
35
72
|
Exit codes:
|
|
36
73
|
0 success
|
|
37
74
|
1 failure (validation/build/doctor)
|
|
@@ -39,17 +76,17 @@ Exit codes:
|
|
|
39
76
|
3 configuration error
|
|
40
77
|
|
|
41
78
|
Notes:
|
|
42
|
-
|
|
43
|
-
|
|
79
|
+
rollback is not a CLI command. Use the authenticated Worker/Pages API.
|
|
80
|
+
CLI publish never sends GitHub tokens; it uses CONTENTRAIL_PUBLISH_TOKEN.
|
|
44
81
|
`;
|
|
45
82
|
function printCommandHelp(command) {
|
|
46
83
|
switch (command) {
|
|
47
84
|
case "init":
|
|
48
|
-
return `Usage: contentrail init [--framework astro|vite] [--force] [--with-editor] [-y]
|
|
85
|
+
return `Usage: contentrail init [--framework astro|vite|static] [--force] [--with-editor] [--with-functions] [--dry-run] [-y]
|
|
49
86
|
|
|
50
87
|
Creates contentrail.config.json, a sample collection module, and sample JSON.
|
|
51
|
-
|
|
52
|
-
|
|
88
|
+
Works on Next.js, React, vanilla, Astro, and Vite sites. Does not generate the public site.
|
|
89
|
+
Never overwrites existing files unless --force is set.`;
|
|
53
90
|
case "validate":
|
|
54
91
|
return `Usage: contentrail validate
|
|
55
92
|
|
|
@@ -62,13 +99,38 @@ Runs validate, then the package.json script named by buildScript (default: build
|
|
|
62
99
|
case "doctor":
|
|
63
100
|
return `Usage: contentrail doctor
|
|
64
101
|
|
|
65
|
-
Checks Node version, framework deps, config, content, validation,
|
|
66
|
-
remote env var *names* are set (values never printed).`;
|
|
102
|
+
Checks Node version, framework deps, config, content, validation, git, Pages
|
|
103
|
+
Functions files, and whether remote env var *names* are set (values never printed).`;
|
|
67
104
|
case "status":
|
|
68
105
|
return `Usage: contentrail status
|
|
69
106
|
|
|
70
107
|
Reports framework, collections, validation, build readiness, and whether a
|
|
71
108
|
publishApiUrl is configured (does not probe live deployment health).`;
|
|
109
|
+
case "dev":
|
|
110
|
+
return `Usage: contentrail dev
|
|
111
|
+
|
|
112
|
+
Runs the package.json "dev" script via the detected package manager.`;
|
|
113
|
+
case "import":
|
|
114
|
+
return `Usage: contentrail import --collection <name> --file <file.csv> [--dry-run] [--force]
|
|
115
|
+
|
|
116
|
+
Parses CSV locally, validates rows against the registered collection, writes JSON.`;
|
|
117
|
+
case "publish":
|
|
118
|
+
return `Usage: contentrail publish --collection <name> [--expected-version <value>] [--dry-run]
|
|
119
|
+
|
|
120
|
+
POSTs local JSON to publishApiUrl. Requires CONTENTRAIL_PUBLISH_TOKEN and CONTENTRAIL_SITE_ID.`;
|
|
121
|
+
case "connect":
|
|
122
|
+
return `Usage: contentrail connect [--confirm --yes] [--account-id <id>] [--project <name>] [--dry-run]
|
|
123
|
+
|
|
124
|
+
Reads git origin, lists Cloudflare accounts, creates or patches the Pages project.`;
|
|
125
|
+
case "deploy":
|
|
126
|
+
return `Usage: contentrail deploy [--skip-build] [--dry-run]
|
|
127
|
+
contentrail deploy status [--account-id <id>] [--project <name>]
|
|
128
|
+
|
|
129
|
+
Reads Cloudflare Pages deployment status. Requires CF_API_TOKEN.`;
|
|
130
|
+
case "pages":
|
|
131
|
+
return `Usage: contentrail pages setup [--dry-run] [--confirm] [-y]
|
|
132
|
+
|
|
133
|
+
Prints the Cloudflare automation capability map. Does not mutate production.`;
|
|
72
134
|
default:
|
|
73
135
|
return HELP;
|
|
74
136
|
}
|
|
@@ -77,7 +139,7 @@ export async function runCli(argv, options) {
|
|
|
77
139
|
const log = createLogger(options?.stdout, options?.stderr);
|
|
78
140
|
const baseCwd = options?.cwd ?? process.cwd();
|
|
79
141
|
try {
|
|
80
|
-
const { command, flags, cwd } = parseArgv(argv, baseCwd);
|
|
142
|
+
const { command, subcommand, flags, cwd } = parseArgv(argv, baseCwd);
|
|
81
143
|
if (flags.version) {
|
|
82
144
|
log.info(VERSION);
|
|
83
145
|
return ExitCode.Success;
|
|
@@ -89,13 +151,16 @@ export async function runCli(argv, options) {
|
|
|
89
151
|
return ExitCode.Success;
|
|
90
152
|
}
|
|
91
153
|
const projectRoot = findProjectRoot(cwd);
|
|
154
|
+
const env = options?.env ?? process.env;
|
|
92
155
|
switch (command) {
|
|
93
156
|
case "init": {
|
|
94
157
|
const framework = flags.framework;
|
|
95
158
|
if (framework !== undefined &&
|
|
96
159
|
framework !== "astro" &&
|
|
97
|
-
framework !== "vite"
|
|
98
|
-
|
|
160
|
+
framework !== "vite" &&
|
|
161
|
+
framework !== "static" &&
|
|
162
|
+
framework !== "next") {
|
|
163
|
+
log.error('--framework must be "astro", "vite", "next", or "static".');
|
|
99
164
|
return ExitCode.Usage;
|
|
100
165
|
}
|
|
101
166
|
return runInit({
|
|
@@ -103,6 +168,8 @@ export async function runCli(argv, options) {
|
|
|
103
168
|
...(framework !== undefined ? { framework } : {}),
|
|
104
169
|
force: flags.force,
|
|
105
170
|
withEditor: flags.withEditor,
|
|
171
|
+
withFunctions: flags.withFunctions,
|
|
172
|
+
dryRun: flags.dryRun,
|
|
106
173
|
yes: flags.yes,
|
|
107
174
|
}, log);
|
|
108
175
|
}
|
|
@@ -118,9 +185,107 @@ export async function runCli(argv, options) {
|
|
|
118
185
|
return runDoctor(projectRoot, log);
|
|
119
186
|
case "status":
|
|
120
187
|
return runStatus(projectRoot, log);
|
|
121
|
-
case "
|
|
188
|
+
case "dev":
|
|
189
|
+
return runDev(projectRoot, log);
|
|
190
|
+
case "import": {
|
|
191
|
+
if (flags.collection === undefined || flags.file === undefined) {
|
|
192
|
+
log.error("import requires --collection and --file.");
|
|
193
|
+
return ExitCode.Usage;
|
|
194
|
+
}
|
|
195
|
+
return runImport({
|
|
196
|
+
projectRoot,
|
|
197
|
+
collection: flags.collection,
|
|
198
|
+
file: flags.file,
|
|
199
|
+
dryRun: flags.dryRun,
|
|
200
|
+
force: flags.force,
|
|
201
|
+
}, log);
|
|
202
|
+
}
|
|
203
|
+
case "publish": {
|
|
204
|
+
if (flags.collection === undefined) {
|
|
205
|
+
log.error("publish requires --collection.");
|
|
206
|
+
return ExitCode.Usage;
|
|
207
|
+
}
|
|
208
|
+
return runPublish({
|
|
209
|
+
projectRoot,
|
|
210
|
+
collection: flags.collection,
|
|
211
|
+
dryRun: flags.dryRun,
|
|
212
|
+
env,
|
|
213
|
+
...(flags.expectedVersion !== undefined
|
|
214
|
+
? {
|
|
215
|
+
expectedVersion: flags.expectedVersion === "null"
|
|
216
|
+
? null
|
|
217
|
+
: flags.expectedVersion,
|
|
218
|
+
}
|
|
219
|
+
: {}),
|
|
220
|
+
...(options?.fetchImpl !== undefined
|
|
221
|
+
? { fetchImpl: options.fetchImpl }
|
|
222
|
+
: {}),
|
|
223
|
+
}, log);
|
|
224
|
+
}
|
|
225
|
+
case "connect":
|
|
226
|
+
case "pages": {
|
|
227
|
+
if (command === "pages" && subcommand !== "setup") {
|
|
228
|
+
log.error("Use `contentrail pages setup` or `contentrail connect`.");
|
|
229
|
+
return ExitCode.Usage;
|
|
230
|
+
}
|
|
231
|
+
return runConnect({
|
|
232
|
+
projectRoot,
|
|
233
|
+
dryRun: flags.dryRun,
|
|
234
|
+
confirm: flags.confirm,
|
|
235
|
+
yes: flags.yes,
|
|
236
|
+
env,
|
|
237
|
+
...(flags.accountId !== undefined
|
|
238
|
+
? { accountId: flags.accountId }
|
|
239
|
+
: {}),
|
|
240
|
+
...(flags.project !== undefined
|
|
241
|
+
? { projectName: flags.project }
|
|
242
|
+
: {}),
|
|
243
|
+
...(options?.fetchImpl !== undefined
|
|
244
|
+
? { fetchImpl: options.fetchImpl }
|
|
245
|
+
: {}),
|
|
246
|
+
...(options?.gitRemoteUrl !== undefined
|
|
247
|
+
? { gitRemoteUrl: options.gitRemoteUrl }
|
|
248
|
+
: {}),
|
|
249
|
+
}, log);
|
|
250
|
+
}
|
|
251
|
+
case "deploy": {
|
|
252
|
+
if (subcommand === "status") {
|
|
253
|
+
return runDeployStatus({
|
|
254
|
+
projectRoot,
|
|
255
|
+
env,
|
|
256
|
+
...(flags.accountId !== undefined
|
|
257
|
+
? { accountId: flags.accountId }
|
|
258
|
+
: {}),
|
|
259
|
+
...(flags.project !== undefined
|
|
260
|
+
? { projectName: flags.project }
|
|
261
|
+
: {}),
|
|
262
|
+
...(options?.fetchImpl !== undefined
|
|
263
|
+
? { fetchImpl: options.fetchImpl }
|
|
264
|
+
: {}),
|
|
265
|
+
}, log);
|
|
266
|
+
}
|
|
267
|
+
if (subcommand !== undefined) {
|
|
268
|
+
log.error("Use `contentrail deploy` or `contentrail deploy status`.");
|
|
269
|
+
return ExitCode.Usage;
|
|
270
|
+
}
|
|
271
|
+
return runDeploy({
|
|
272
|
+
projectRoot,
|
|
273
|
+
env,
|
|
274
|
+
skipBuild: flags.skipBuild,
|
|
275
|
+
dryRun: flags.dryRun,
|
|
276
|
+
...(flags.accountId !== undefined
|
|
277
|
+
? { accountId: flags.accountId }
|
|
278
|
+
: {}),
|
|
279
|
+
...(flags.project !== undefined
|
|
280
|
+
? { projectName: flags.project }
|
|
281
|
+
: {}),
|
|
282
|
+
...(options?.fetchImpl !== undefined
|
|
283
|
+
? { fetchImpl: options.fetchImpl }
|
|
284
|
+
: {}),
|
|
285
|
+
}, log);
|
|
286
|
+
}
|
|
122
287
|
case "rollback":
|
|
123
|
-
log.error(
|
|
288
|
+
log.error('Command "rollback" is not implemented in the CLI. Use the authenticated Worker or Pages API.');
|
|
124
289
|
return ExitCode.Usage;
|
|
125
290
|
default:
|
|
126
291
|
log.error(`Unknown command "${command}". Run contentrail --help.`);
|
|
@@ -141,13 +306,25 @@ export async function runCli(argv, options) {
|
|
|
141
306
|
}
|
|
142
307
|
function parseArgv(argv, baseCwd) {
|
|
143
308
|
let command;
|
|
309
|
+
let subcommand;
|
|
144
310
|
let cwd = baseCwd;
|
|
145
311
|
const flags = {
|
|
146
312
|
help: false,
|
|
147
313
|
version: false,
|
|
148
314
|
force: false,
|
|
149
|
-
withEditor:
|
|
315
|
+
withEditor: true,
|
|
316
|
+
withFunctions: true,
|
|
150
317
|
yes: false,
|
|
318
|
+
dryRun: false,
|
|
319
|
+
confirm: false,
|
|
320
|
+
skipBuild: false,
|
|
321
|
+
};
|
|
322
|
+
const take = (index, flag) => {
|
|
323
|
+
const value = argv[index];
|
|
324
|
+
if (value === undefined || value.startsWith("-")) {
|
|
325
|
+
throw new Error(`${flag} requires a value.`);
|
|
326
|
+
}
|
|
327
|
+
return value;
|
|
151
328
|
};
|
|
152
329
|
for (let i = 0; i < argv.length; i += 1) {
|
|
153
330
|
const arg = argv[i];
|
|
@@ -167,25 +344,66 @@ function parseArgv(argv, baseCwd) {
|
|
|
167
344
|
flags.withEditor = true;
|
|
168
345
|
continue;
|
|
169
346
|
}
|
|
347
|
+
if (arg === "--with-functions") {
|
|
348
|
+
flags.withFunctions = true;
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
if (arg === "--no-editor") {
|
|
352
|
+
flags.withEditor = false;
|
|
353
|
+
continue;
|
|
354
|
+
}
|
|
355
|
+
if (arg === "--no-functions") {
|
|
356
|
+
flags.withFunctions = false;
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
if (arg === "--skip-build") {
|
|
360
|
+
flags.skipBuild = true;
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
170
363
|
if (arg === "--yes" || arg === "-y") {
|
|
171
364
|
flags.yes = true;
|
|
172
365
|
continue;
|
|
173
366
|
}
|
|
367
|
+
if (arg === "--dry-run") {
|
|
368
|
+
flags.dryRun = true;
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
if (arg === "--confirm") {
|
|
372
|
+
flags.confirm = true;
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
174
375
|
if (arg === "--framework") {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
376
|
+
flags.framework = take(i + 1, "--framework");
|
|
377
|
+
i += 1;
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
if (arg === "--collection") {
|
|
381
|
+
flags.collection = take(i + 1, "--collection");
|
|
382
|
+
i += 1;
|
|
383
|
+
continue;
|
|
384
|
+
}
|
|
385
|
+
if (arg === "--file") {
|
|
386
|
+
flags.file = take(i + 1, "--file");
|
|
387
|
+
i += 1;
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
if (arg === "--expected-version") {
|
|
391
|
+
flags.expectedVersion = take(i + 1, "--expected-version");
|
|
392
|
+
i += 1;
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
if (arg === "--account-id") {
|
|
396
|
+
flags.accountId = take(i + 1, "--account-id");
|
|
397
|
+
i += 1;
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
if (arg === "--project") {
|
|
401
|
+
flags.project = take(i + 1, "--project");
|
|
180
402
|
i += 1;
|
|
181
403
|
continue;
|
|
182
404
|
}
|
|
183
405
|
if (arg === "--cwd" || arg === "-C") {
|
|
184
|
-
|
|
185
|
-
if (value === undefined || value.startsWith("-")) {
|
|
186
|
-
throw new Error(`${arg} requires a directory path.`);
|
|
187
|
-
}
|
|
188
|
-
cwd = path.resolve(baseCwd, value);
|
|
406
|
+
cwd = path.resolve(baseCwd, take(i + 1, arg));
|
|
189
407
|
i += 1;
|
|
190
408
|
continue;
|
|
191
409
|
}
|
|
@@ -196,8 +414,13 @@ function parseArgv(argv, baseCwd) {
|
|
|
196
414
|
command = arg;
|
|
197
415
|
continue;
|
|
198
416
|
}
|
|
417
|
+
if (subcommand === undefined &&
|
|
418
|
+
(command === "deploy" || command === "pages")) {
|
|
419
|
+
subcommand = arg;
|
|
420
|
+
continue;
|
|
421
|
+
}
|
|
199
422
|
throw new Error(`Unexpected argument "${arg}"`);
|
|
200
423
|
}
|
|
201
|
-
return { command, cwd, flags };
|
|
424
|
+
return { command, subcommand, cwd, flags };
|
|
202
425
|
}
|
|
203
426
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pages REST client for the CLI (Node-only). Token never logged.
|
|
3
|
+
*/
|
|
4
|
+
export interface PagesProjectInput {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly productionBranch: string;
|
|
7
|
+
readonly buildCommand: string;
|
|
8
|
+
readonly destinationDir: string;
|
|
9
|
+
readonly rootDir?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface PlannedPagesAction {
|
|
12
|
+
readonly kind: "create" | "update" | "skip" | "manual";
|
|
13
|
+
readonly summary: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class CloudflareApiError extends Error {
|
|
16
|
+
readonly status: number;
|
|
17
|
+
readonly errors: unknown;
|
|
18
|
+
constructor(message: string, status: number, errors: unknown);
|
|
19
|
+
}
|
|
20
|
+
export declare function createCliPagesClient(options: {
|
|
21
|
+
readonly token: string;
|
|
22
|
+
readonly fetchImpl?: typeof fetch;
|
|
23
|
+
readonly apiBase?: string;
|
|
24
|
+
}): {
|
|
25
|
+
listAccounts(): Promise<{
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
}[]>;
|
|
29
|
+
getProject: (accountId: string, name: string) => Promise<Record<string, unknown>>;
|
|
30
|
+
listDeployments(accountId: string, projectName: string): Promise<{
|
|
31
|
+
id: string;
|
|
32
|
+
url?: string;
|
|
33
|
+
latest_stage?: {
|
|
34
|
+
name?: string;
|
|
35
|
+
status?: string;
|
|
36
|
+
};
|
|
37
|
+
}[]>;
|
|
38
|
+
planProject: (accountId: string, input: PagesProjectInput) => Promise<PlannedPagesAction[]>;
|
|
39
|
+
applyProjectPlan(accountId: string, input: PagesProjectInput, apply: {
|
|
40
|
+
confirm: boolean;
|
|
41
|
+
dryRun: boolean;
|
|
42
|
+
}): Promise<{
|
|
43
|
+
applied: boolean;
|
|
44
|
+
actions: PlannedPagesAction[];
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Asks Cloudflare to create a new deployment for a Git-connected project.
|
|
48
|
+
* Direct-upload (no Git source) is a different API and is handled by wrangler.
|
|
49
|
+
*/
|
|
50
|
+
triggerGitDeployment(accountId: string, projectName: string, productionBranch: string): Promise<Record<string, unknown>>;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=pages-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages-client.d.ts","sourceRoot":"","sources":["../../src/cloudflare/pages-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;CAM7D;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;;YA8EgC,MAAM;cAAQ,MAAM;;4BAvCd,MAAM,QAAQ,MAAM;+BA4C5B,MAAM,eAAe,MAAM;YAG5C,MAAM;cACJ,MAAM;uBACG;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE;;6BA1CnB,MAAM,SAAS,iBAAiB;gCAqDvD,MAAM,SACV,iBAAiB,SACjB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAC3C,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAkC/D;;;OAGG;oCAEU,MAAM,eACJ,MAAM,oBACD,MAAM;EAS7B"}
|