@adep/cli 0.4.0 → 0.4.4
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 +40 -7
- package/dist/index.js +20798 -20336
- package/dist/vite.js +168 -42
- package/dist/worker-entry.js +136 -39
- package/package.json +7 -7
- package/templates/app-mobile/plugins/adep-bridge/Package.swift +48 -0
- package/templates/app-mobile/plugins/adep-bridge/ios/AdepBridge.podspec +6 -3
package/README.md
CHANGED
|
@@ -126,7 +126,7 @@ adep --json whoami
|
|
|
126
126
|
```bash
|
|
127
127
|
adep login # 打开浏览器;终端会同时打印验证码与链接
|
|
128
128
|
adep login --no-browser # 不开浏览器:手工访问打印出来的链接(SSH / 无桌面)
|
|
129
|
-
adep login -s <url> # 指定平台(缺省 ADEP_SERVER,再缺省 https://adep.
|
|
129
|
+
adep login -s <url> # 指定平台(缺省 ADEP_SERVER,再缺省 https://adep.top)
|
|
130
130
|
adep login -e <邮箱> -p <密码> # 邮箱密码直登,不发起浏览器流程(CI / 老平台)
|
|
131
131
|
adep whoami # 查看当前身份(读凭据并向平台确认会话仍有效)
|
|
132
132
|
adep logout # 通知平台注销并清除本地凭据
|
|
@@ -279,6 +279,7 @@ adep serve --db sqlite --db-file var/local.sqlite # 指定库文件
|
|
|
279
279
|
adep publish # 缺省全栈:函数 deploy + 前端平台侧构建托管
|
|
280
280
|
adep publish --only functions # 只发布云函数
|
|
281
281
|
adep publish --only frontend # 只发布前端(vite 工程平台侧构建;纯静态站直通托管通道)
|
|
282
|
+
adep publish --only frontend --env dev # 前端发到**开发站点**(site-dev/ + dev- 子域 + 独立版本序列)
|
|
282
283
|
adep publish -p my-app # 显式指定目标 slug
|
|
283
284
|
```
|
|
284
285
|
|
|
@@ -305,6 +306,11 @@ hello v1 https://my-app.platform.example.com/api/hello
|
|
|
305
306
|
|
|
306
307
|
- `--json` 输出统一信封 `{ ok, command, data: { scope, functions?, frontend? } }`。
|
|
307
308
|
|
|
309
|
+
- **`--env dev` 只影响前端**:产物写 `site-dev/`、版本走独立序列(dev v1.. / prod v1..)、地址是
|
|
310
|
+
`dev-<子域>`,与线上站点完全隔离。**函数部署不受影响**——网关恒读生产库,不存在「部署一个读开发库的
|
|
311
|
+
函数」,输出里会显式说明。纯静态站(无 `scripts.build`、无待编译源码)传 `--env dev` 直接 fail loud
|
|
312
|
+
(`STATIC_DEV_UNSUPPORTED`):该通道直传 `site/`,会覆盖线上站点。
|
|
313
|
+
|
|
308
314
|
> 兼容别名:`adep deploy` / `adep functions deploy` / `adep hosting deploy` 保留原行为,
|
|
309
315
|
> 仅在 stderr 打印 deprecation 提示指向本命令(见下文)。
|
|
310
316
|
|
|
@@ -318,8 +324,13 @@ hello v1 https://my-app.platform.example.com/api/hello
|
|
|
318
324
|
```bash
|
|
319
325
|
adep deploy # 项目 slug 取 adep.config.ts 的 name
|
|
320
326
|
adep deploy -p my-app # 显式指定目标 slug
|
|
327
|
+
adep deploy --worker -p <id|slug> # 按 **wrangler 项目**部署(CF-063,见下)
|
|
321
328
|
```
|
|
322
329
|
|
|
330
|
+
- **`--worker` 是另一条链**:当前目录当作 wrangler 项目根,读 `wrangler.jsonc` 直传构建产物——它不是
|
|
331
|
+
「部署 adep 函数」,输入 / 产物 / 成败判据都不同(因此 `-p` 必填,缺省即 `WORKER_PROJECT_REQUIRED`)。
|
|
332
|
+
失败始终非零退出(`WORKER_DEPLOY_FAILED`):CI 里「部署失败但退出码 0」是最坏的一种静默。
|
|
333
|
+
|
|
323
334
|
- 本地 `functions/<name>.ts` 对应平台函数 `<name>`(入口文件固定为 `index.ts`)。
|
|
324
335
|
目录形态 `functions/<name>/index.ts` **等价**:目录内其余文件是该函数的私有文件,随草稿整组上传
|
|
325
336
|
(默认模板生成扁平形态;两种形态不可同名并存 —— 并存时命令非零退出并列出冲突路径)。
|
|
@@ -421,6 +432,10 @@ adep db start # 启动项目数据库(已存在则重
|
|
|
421
432
|
adep db status # 查询状态与用量(体积 / 表数 / 行数)
|
|
422
433
|
adep db stop # 停止数据库(连接关闭并标记;文件保留)
|
|
423
434
|
|
|
435
|
+
# 列当前环境的表与行数;--table 看单表结构(字段 / 索引 / 建表 DDL)
|
|
436
|
+
adep db tables
|
|
437
|
+
adep db tables --table users
|
|
438
|
+
|
|
424
439
|
# 执行单条 SQL;写 / 破坏性语句需 --confirm-table 二次确认目标表名
|
|
425
440
|
adep db exec --sql "SELECT * FROM users"
|
|
426
441
|
adep db exec --sql "DELETE FROM users WHERE id = 1" --confirm-table users
|
|
@@ -436,6 +451,12 @@ adep db rollback --to 2026-01-01T00:00:00.000Z
|
|
|
436
451
|
|
|
437
452
|
`db exec` 人读模式下返回对齐文本表(结果行截断时会提示),`--json` 输出结构化结果。
|
|
438
453
|
|
|
454
|
+
- **环境(`--env`)**:`exec` / `migrate` / `tables` 按全局 `--env dev|prod` 选库,优先级
|
|
455
|
+
`--env` > `ADEP_ENV` > `adep.config.ts` 的 `db_environment` > `prod`;每条命令都打印生效环境**及来源**。
|
|
456
|
+
服务端一直支持 `?environment=`,CLI 之前不传 ⇒ `exec` 恒打生产库,开发者在 dev 建的表用 CLI 一查
|
|
457
|
+
就「不存在」——同一类事故的 CLI 版。
|
|
458
|
+
- `start` / `status` / `stop` 与快照类**不分环境**:它们管理的是「项目数据库」这一资源本身。
|
|
459
|
+
|
|
439
460
|
### `adep storage`
|
|
440
461
|
|
|
441
462
|
云存储 / 文件存储子命令组:上传 / 下载 / 列表 / 删除。
|
|
@@ -453,6 +474,7 @@ adep storage rm avatars/a.png
|
|
|
453
474
|
- **下载**:先列表解析出服务端生成的 URL(public 直连 / private 15 分钟签名),再取回内容——private 文件无需 CLI 自行签发签名。
|
|
454
475
|
|
|
455
476
|
- 所有命令都支持 `-p <slug>` 指定项目。
|
|
477
|
+
- 四个子命令都跟随全局 `--env`:dev 走 `.env-dev/` 键空间(dev 传的文件在 prod `ls` 里看不到,反之亦然),输出会标明当前环境。上传走 multipart 的 `environment` 字段,其余走 `?environment=`。
|
|
456
478
|
|
|
457
479
|
### `adep hosting`(deprecated)
|
|
458
480
|
|
|
@@ -533,6 +555,10 @@ adep app build --platform ios # xcodebuild archive(
|
|
|
533
555
|
- 骨架含 `plugins/adep-bridge` **原生桥**(iOS Swift / Android Kotlin)与 host-side 门控镜像
|
|
534
556
|
`bridge/gate.mjs`:权限门控做在**原生侧**,未在 `adep.permissions.json` 声明的权限一律
|
|
535
557
|
`PERMISSION_DENIED` + 设备侧审计日志;`ownerKey` 只存 Keychain / Keystore。
|
|
558
|
+
- iOS 侧原生桥是**双形态并存**(APP-015):`Package.swift`(SPM)与 `ios/AdepBridge.podspec`
|
|
559
|
+
(CocoaPods)各管一条消费路径。自 Capacitor 8 起 `cap add ios` 默认建 SPM 工程,缺 SPM 清单的
|
|
560
|
+
插件会被**静默跳过**(运行时才报 "plugin is not implemented"),所以两者都别删;包名 / product 名
|
|
561
|
+
(`AdepBridge`)、目录布局(清单在 npm 包根、源码平铺 `ios/Sources`)与 iOS 下限(14.0)两形态必须一致。
|
|
536
562
|
- 移动平台**必须显式指定** `--platform ios|android`;产物是 **unsigned** 的 `.xcarchive` / APK。
|
|
537
563
|
- 签名 / 公证 / 上架由开发者自担,逐步指引见仓库 `docs/mobile-shell-signing.md`。
|
|
538
564
|
|
|
@@ -552,18 +578,21 @@ adep app build --offline # 消费服务端 .adepack:离线
|
|
|
552
578
|
|
|
553
579
|
### 环境变量
|
|
554
580
|
|
|
555
|
-
| 变量 | 说明 | 缺省
|
|
556
|
-
| ----------------- | --------------------------------- |
|
|
557
|
-
| `ADEP_SERVER` | 平台地址(CLI 请求的默认 server) | `https://adep.
|
|
558
|
-
| `ADEP_HOME` | 凭据目录(测试隔离用) | `~/.adep`
|
|
559
|
-
| `ADEP_NO_BROWSER` | `1` = `adep login` 不打开浏览器 | 未设置(TTY 下自动打开)
|
|
581
|
+
| 变量 | 说明 | 缺省 |
|
|
582
|
+
| ----------------- | --------------------------------- | -------------------------------------------- |
|
|
583
|
+
| `ADEP_SERVER` | 平台地址(CLI 请求的默认 server) | `https://adep.top` |
|
|
584
|
+
| `ADEP_HOME` | 凭据目录(测试隔离用) | `~/.adep` |
|
|
585
|
+
| `ADEP_NO_BROWSER` | `1` = `adep login` 不打开浏览器 | 未设置(TTY 下自动打开) |
|
|
586
|
+
| `ADEP_ENV` | 数据面默认环境(`dev` / `prod`) | 未设置(再读 `db_environment`,最后 `prod`) |
|
|
560
587
|
|
|
561
588
|
```bash
|
|
562
589
|
export ADEP_SERVER=https://platform.example.com
|
|
563
590
|
export ADEP_HOME=~/.adep
|
|
591
|
+
export ADEP_ENV=dev # 等价于每条命令都带 --env dev(db exec / migrate / tables、storage、publish 前端)
|
|
564
592
|
```
|
|
565
593
|
|
|
566
|
-
> 也可通过 `-s` / `-e` / `-p`
|
|
594
|
+
> 也可通过 `-s` / `-e` / `-p` 等子命令参数覆盖。全局旗标 `--env <dev|prod>` 优先级最高:
|
|
595
|
+
> `--env` > `ADEP_ENV` > `adep.config.ts` 的 `db_environment` > `prod`。
|
|
567
596
|
|
|
568
597
|
### `adep.config.ts`
|
|
569
598
|
|
|
@@ -576,6 +605,7 @@ export default {
|
|
|
576
605
|
template: 'fullstack', // 模板:empty | function | fullstack
|
|
577
606
|
functionsDir: 'functions', // 云函数目录
|
|
578
607
|
functions_prefix: '/api', // 云函数路由前缀(默认 /api,与线上 /api/{fn} 对齐)
|
|
608
|
+
db_environment: 'dev', // 数据面默认环境(dev | prod,2026-10-18)
|
|
579
609
|
}
|
|
580
610
|
```
|
|
581
611
|
|
|
@@ -583,6 +613,9 @@ export default {
|
|
|
583
613
|
- `functions_prefix`:**影响本地路由与 vite 插件代理前缀**(见上方 `adep init` 产物结构说明)——
|
|
584
614
|
默认 `/api`:`adep dev` 访问 `/{prefix}/{fnName}`、`adep serve` 访问 `/api/{prefix}/{fnName}`、
|
|
585
615
|
vite 插件按 `/{prefix}/*` 代理;函数互调与线上部署路径不随前缀变化。
|
|
616
|
+
- `db_environment`:不带 `--env` 也不设 `ADEP_ENV` 时数据面命令的默认环境。⚠️ **不能复用**
|
|
617
|
+
`environment`——那个键是「注入函数运行时的变量表」(`Record<string, string>`),同名会让解析拿到
|
|
618
|
+
对象、判成非法值。
|
|
586
619
|
|
|
587
620
|
---
|
|
588
621
|
|