esa-cli 0.0.2-beta.2 → 0.0.2-beta.21

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.
Files changed (80) hide show
  1. package/dist/commands/commit/index.js +45 -117
  2. package/dist/commands/commit/prodBuild.js +2 -3
  3. package/dist/commands/common/constant.js +0 -19
  4. package/dist/commands/common/utils.js +419 -0
  5. package/dist/commands/config.js +1 -1
  6. package/dist/commands/deploy/helper.js +51 -72
  7. package/dist/commands/deploy/index.js +48 -187
  8. package/dist/commands/deployments/delete.js +32 -22
  9. package/dist/commands/deployments/index.js +3 -3
  10. package/dist/commands/deployments/list.js +22 -38
  11. package/dist/commands/dev/build.js +3 -3
  12. package/dist/commands/dev/doProcess.js +5 -5
  13. package/dist/commands/dev/ew2/cacheService.js +33 -0
  14. package/dist/commands/dev/ew2/devEntry.js +2 -1
  15. package/dist/commands/dev/ew2/devPack.js +30 -34
  16. package/dist/commands/dev/ew2/kvService.js +46 -0
  17. package/dist/commands/dev/ew2/mock/cache.js +99 -15
  18. package/dist/commands/dev/ew2/mock/kv.js +142 -21
  19. package/dist/commands/dev/ew2/server.js +165 -28
  20. package/dist/commands/dev/index.js +16 -16
  21. package/dist/commands/dev/mockWorker/devPack.js +32 -21
  22. package/dist/commands/dev/mockWorker/server.js +7 -6
  23. package/dist/commands/domain/add.js +3 -3
  24. package/dist/commands/domain/delete.js +7 -7
  25. package/dist/commands/domain/index.js +3 -3
  26. package/dist/commands/domain/list.js +10 -10
  27. package/dist/commands/init/helper.js +761 -0
  28. package/dist/commands/init/index.js +88 -220
  29. package/dist/commands/init/snippets/nextjs/next.config.mjs +6 -0
  30. package/dist/commands/init/snippets/nextjs/next.config.ts +7 -0
  31. package/dist/commands/init/snippets/react-router/react-router.config.ts +7 -0
  32. package/dist/commands/init/template.jsonc +84 -0
  33. package/dist/commands/init/types.js +1 -0
  34. package/dist/commands/lang.js +2 -2
  35. package/dist/commands/login/index.js +74 -34
  36. package/dist/commands/logout.js +6 -6
  37. package/dist/commands/route/add.js +138 -49
  38. package/dist/commands/route/delete.js +33 -27
  39. package/dist/commands/route/helper.js +124 -0
  40. package/dist/commands/route/index.js +3 -3
  41. package/dist/commands/route/list.js +56 -17
  42. package/dist/commands/routine/delete.js +2 -2
  43. package/dist/commands/routine/index.js +3 -3
  44. package/dist/commands/routine/list.js +9 -21
  45. package/dist/commands/site/index.js +2 -2
  46. package/dist/commands/site/list.js +6 -7
  47. package/dist/commands/utils.js +55 -19
  48. package/dist/components/descriptionInput.js +1 -1
  49. package/dist/components/mutiLevelSelect.js +43 -55
  50. package/dist/components/mutiSelectTable.js +1 -1
  51. package/dist/components/selectInput.js +2 -3
  52. package/dist/components/selectItem.js +1 -1
  53. package/dist/docs/Commands_en.md +142 -131
  54. package/dist/docs/Commands_zh_CN.md +139 -127
  55. package/dist/i18n/index.js +2 -2
  56. package/dist/i18n/locales.json +401 -21
  57. package/dist/index.js +27 -20
  58. package/dist/libs/api.js +32 -9
  59. package/dist/libs/apiService.js +262 -84
  60. package/dist/libs/git/index.js +86 -9
  61. package/dist/libs/interface.js +0 -1
  62. package/dist/libs/logger.js +162 -10
  63. package/dist/libs/service.js +2 -2
  64. package/dist/libs/templates/index.js +3 -2
  65. package/dist/utils/checkAssetsExist.js +80 -0
  66. package/dist/utils/checkDevPort.js +3 -17
  67. package/dist/utils/checkEntryFileExist.js +10 -0
  68. package/dist/utils/checkIsRoutineCreated.js +27 -26
  69. package/dist/utils/checkVersion.js +119 -1
  70. package/dist/utils/command.js +149 -0
  71. package/dist/utils/compress.js +136 -0
  72. package/dist/utils/download.js +182 -0
  73. package/dist/utils/fileMd5.js +1 -1
  74. package/dist/utils/fileUtils/base.js +1 -1
  75. package/dist/utils/fileUtils/index.js +69 -28
  76. package/dist/utils/installDeno.js +8 -8
  77. package/dist/utils/installEw2.js +7 -7
  78. package/dist/utils/openInBrowser.js +1 -1
  79. package/dist/utils/prompt.js +97 -0
  80. package/package.json +20 -12
@@ -1,224 +1,236 @@
1
- # Commands
1
+ ## 命令一览
2
2
 
3
- ### init
3
+ ### esa init [name]
4
4
 
5
- 选择模版初始化项目。
5
+ 初始化一个边缘函数项目(支持框架或模板)。
6
6
 
7
7
  ```bash
8
- $ esa init [OPTIONS]
8
+ esa init [name]
9
9
  ```
10
10
 
11
- - -c, --config `boolean` `optional`
12
- - 在您的项目中生成一个esa.toml配置文件。
11
+ - 位置参数:
12
+ - name:项目名
13
13
 
14
- ### routine [script]
14
+ - 选项:
15
+ - -f, --framework string:选择前端框架(react/vue/nextjs...)
16
+ - -l, --language string:选择语言(typescript/javascript)。可选:typescript | javascript
17
+ - -t, --template string:指定模板名称
18
+ - -y, --yes boolean:对所有交互询问选择“是”(默认 false),模版采用helloworld
19
+ - --git boolean:在项目中初始化 git
20
+ - --deploy boolean:初始化完成后自动部署
15
21
 
16
- 管理边缘函数。
22
+ ---
17
23
 
18
- #### delete <routineName>
24
+ ### esa dev [entry]
19
25
 
20
- 删除一个边缘函数。
26
+ 启动本地开发服务器。
21
27
 
22
28
  ```bash
23
- $ esa routine delete <routineName>
29
+ esa dev [entry]
24
30
  ```
25
31
 
26
- - routineName `string` `required`
27
- - 要删除的边缘函数名称。
28
-
29
- #### list
30
-
31
- 查看所有边缘函数。
32
+ - 位置参数:
33
+ - entry:边缘函数入口文件
32
34
 
33
- ```bash
34
- $ esa routine list
35
- ```
35
+ - 选项:
36
+ - -p, --port number:监听端口
37
+ - -m, --minify boolean:开发模式下压缩代码(默认 false)
38
+ - --refresh-command string:保存自动刷新前执行的命令
39
+ - --local-upstream string:在本地开发中作为源站的主机
40
+ - --debug boolean:输出调试日志(默认 false)
36
41
 
37
- ### route [script]
42
+ ---
38
43
 
39
- 管理绑定到边缘函数的路由。
44
+ ### esa commit [entry]
40
45
 
41
- #### add [route] [site]
42
-
43
- 将路由绑定到边缘函数。
46
+ 提交代码并保存为新版本。
44
47
 
45
48
  ```bash
46
- $ esa route add [route] [site]
49
+ esa commit [entry]
47
50
  ```
48
51
 
49
- #### delete <route>
50
-
51
- 删除一个绑定路由。
52
+ - 选项:
53
+ - -m, --minify boolean:提交前压缩代码(默认 false)
54
+ - -a, --assets string:静态资源目录
55
+ - -d, --description string:版本/例程描述(跳过交互输入)
56
+ - -n, --name string:边缘函数名称
52
57
 
53
- ```bash
54
- $ esa route delete <route>
55
- ```
58
+ ---
56
59
 
57
- - route `string` `required`
58
- - 要删除的路由名称。
60
+ ### esa deploy [entry]
59
61
 
60
- #### list
61
-
62
- 查看所有绑定路由。
62
+ 部署项目。
63
63
 
64
64
  ```bash
65
- $ esa route list
65
+ esa deploy [entry]
66
66
  ```
67
67
 
68
- ### login
69
-
70
- 登录。
68
+ - 选项:
69
+ - entry 可选参数,默认以`esa.jsonc`中entry配置为准
70
+ - -v, --version string:指定要部署的版本(跳过交互选择)
71
+ - -e, --environment string:部署环境。可选:staging | production
72
+ - -n, --name string:边缘函数名称
73
+ - -a, --assets string:静态资源目录(例如:./dist)
74
+ - -d, --description string:版本描述
75
+ - -m, --minify boolean:是否压缩代码
71
76
 
72
- ```bash
73
- $ esa login
74
- ```
77
+ ---
75
78
 
76
- ### dev [entry]
79
+ ### esa deployments [list | delete]
77
80
 
78
- 启动本地调试。
81
+ 管理部署版本。
79
82
 
80
83
  ```bash
81
- $ esa dev [entry] [OPTIONS]
84
+ esa deployments list
85
+ esa deployments delete [deploymentId...]
82
86
  ```
83
87
 
84
- - entry `string` `optional`
85
- - 入口文件路径。
86
-
87
- - -port, --p `number` `optional`
88
- - 监听端口。
89
-
90
- - --inspect-port `number` `optional`
91
- - 用于 Chrome inspect 调试工具的端口。
92
-
93
- - -minify, --m `boolean` `optional`
94
- - 开发打包时压缩代码。
88
+ - 子命令:
89
+ - list:列出所有部署
90
+ - delete [deploymentId...]:删除一个或多个部署版本
95
91
 
96
- - --local-upstream `string` `optional`
97
- - 在开发时作为源站的域名。
92
+ ---
98
93
 
99
- - --refresh-command `string` `optional`
100
- - 提供一个在保存自动刷新前执行的命令。
94
+ ### esa routine [list | delete]
101
95
 
102
- ### deploy [entry]
103
-
104
- 部署您的项目。
96
+ 管理边缘函数。
105
97
 
106
98
  ```bash
107
- $ esa deploy [entry]
99
+ esa routine list
100
+ esa routine delete <routineName>
108
101
  ```
109
102
 
110
- - entry `string` `optional`
111
- - 入口文件路径。
112
-
113
- ### domain [script]
103
+ - 子命令:
104
+ - list:列出所有边缘函数
105
+ - delete `<routineName>`:删除指定边缘函数
114
106
 
115
- 管理绑定到边缘函数的域名。
107
+ ---
116
108
 
117
- #### add <domain>
109
+ ### esa site [list]
118
110
 
119
- 绑定域名到边缘函数。
111
+ 管理站点。
120
112
 
121
113
  ```bash
122
- $ esa domain add <domain>
114
+ esa site list
123
115
  ```
124
116
 
125
- - domain `string` `required`
126
- - 需要添加的域名。
127
-
128
- #### delete <domain>
129
-
130
- 删除一个绑定域名。
131
-
132
- ```bash
133
- $ esa domain delete <domain>
134
- ```
117
+ - 子命令:
118
+ - list:列出所有已激活站点
135
119
 
136
- - domains `string` `required`
137
- - 要删除的绑定域名。
120
+ ---
138
121
 
139
- #### list
122
+ ### esa domain <add | list | delete>
140
123
 
141
- 查看所有绑定域名。
124
+ 管理与边缘函数绑定的域名。
142
125
 
143
126
  ```bash
144
- $ esa domain list
127
+ esa domain add <domain>
128
+ esa domain list
129
+ esa domain delete <domain>
145
130
  ```
146
131
 
147
- ### deployments [script]
132
+ - 子命令:
133
+ - add `<domain>`:绑定域名
134
+ - list:查看所有已绑定域名
135
+ - delete `<domain>`:删除已绑定域名
148
136
 
149
- 管理您的部署。
137
+ ---
150
138
 
151
- #### delete <deploymentId>
139
+ ### esa route <add | list | delete>
152
140
 
153
- 删除一个部署版本。
141
+ 管理与边缘函数绑定的路由。
154
142
 
155
143
  ```bash
156
- $ esa deployments delete <deploymentId>
144
+ esa route add
145
+ esa route list
146
+ esa route delete <routeName>
157
147
  ```
158
148
 
159
- - deploymentId `string` `required`
160
- - 要删除的部署版本ID。
149
+ - 子命令:
150
+ - add:绑定路由
151
+ - list:查看所有已绑定路由
152
+ - delete `<routeName>`:删除已绑定路由
161
153
 
162
- #### list
154
+ #### esa route add
163
155
 
164
- 查看所有部署。
156
+ 为当前边缘函数绑定一个路由。
165
157
 
166
158
  ```bash
167
- $ esa deployments list
159
+ esa route add [route] [site] [--alias <routeName>] [--route <route>] [--site <site>]
168
160
  ```
169
161
 
170
- ### commit [entry]
162
+ - 位置参数(可选):
163
+ - route:路由值,例如:example.com/_ 或 _.example.com/\*
164
+ - site:站点名称,例如:example.com
171
165
 
172
- 提交代码,保存为一个版本。
166
+ - 选项:
167
+ - -r, --route string:路由值,例如:example.com/\*
168
+ - 主机名支持以 `*` 开头表示后缀匹配(如:`*.example.com`)
169
+ - 路径支持以 `*` 结尾表示前缀匹配(如:`/api/*`)
170
+ - -s, --site string:站点名称(需为已激活站点)
171
+ - -a, --alias string:路由名称(别名)
173
172
 
174
- ```bash
175
- $ esa commit [entry] [OPTIONS]
176
- ```
173
+ - 交互提示:
174
+ - 未提供 `--alias` 时,会提示输入路由名称
175
+ - 未提供 `--site` 时,会列出账号下已激活站点供选择
176
+ - 未提供 `--route` 时,会提示输入路由值
177
177
 
178
- - entry `string` `optional`
179
- - 入口文件路径。
178
+ - 路由匹配说明:
179
+ - host 支持前缀 `*`:`*.example.com` 表示匹配所有以 `.example.com` 结尾的域名
180
+ - path 支持后缀 `*`:`/api/*` 表示匹配以 `/api/` 开头的路径
181
+ - 示例:`example.com/*`、`*.example.com/`、`*.example.com/api/*`
180
182
 
181
- - -m, --minify `boolean` `optional`
182
- - 上传前压缩代码。
183
+ - 示例:
184
+ - `esa route add -a home -s example.com -r example.com/*`
185
+ - `esa route add example.com/* example.com -a home`
183
186
 
184
- ### logout
187
+ ---
185
188
 
186
- 注销登录。
189
+ ### esa login
190
+
191
+ 登录。
187
192
 
188
193
  ```bash
189
- $ esa logout
194
+ esa login
190
195
  ```
191
196
 
192
- ### config
197
+ - 选项:
198
+ - --access-key-id, --ak string:AccessKey ID (AK)
199
+ - --access-key-secret, --sk string:AccessKey Secret (SK)
200
+ - 从环境变量中读取process.env
201
+ - ESA_ACCESS_KEY_ID
202
+ - ESA_ACCESS_KEY_SECRET
193
203
 
194
- 使用 -l 或 -g 修改本地或全局配置。
204
+ ---
205
+
206
+ ### esa logout
207
+
208
+ 退出登录。
195
209
 
196
210
  ```bash
197
- $ esa config [OPTIONS]
211
+ esa logout
198
212
  ```
199
213
 
200
- - -g, --global `boolean` `optional`
201
- - 编辑全局配置文件。
214
+ ---
202
215
 
203
- - -l, --local `boolean` `optional`
204
- - 编辑本地配置文件。
216
+ ### esa config [-l | -g]
205
217
 
206
- ### lang
207
-
208
- 选择语言。
218
+ 修改本地或全局配置。
209
219
 
210
220
  ```bash
211
- $ esa lang
221
+ esa config [--local] [--global]
212
222
  ```
213
223
 
214
- ### site [script]
224
+ - 选项:
225
+ - -l, --local boolean:编辑本地配置文件(默认 false)
226
+ - -g, --global boolean:编辑全局配置文件(默认 false)
215
227
 
216
- 管理站点。
228
+ ---
217
229
 
218
- #### list
230
+ ### esa lang
219
231
 
220
- 列出站点。
232
+ 设置 CLI 语言。
221
233
 
222
234
  ```bash
223
- $ esa site list
235
+ esa lang
224
236
  ```
@@ -1,8 +1,8 @@
1
1
  import { resolve } from 'path';
2
- import { getCliConfig } from '../utils/fileUtils/index.js';
3
2
  import logger from '../libs/logger.js';
4
- import { readJson } from '../utils/readJson.js';
5
3
  import { getDirName } from '../utils/fileUtils/base.js';
4
+ import { getCliConfig } from '../utils/fileUtils/index.js';
5
+ import { readJson } from '../utils/readJson.js';
6
6
  const localesJson = readJson(resolve(getDirName(import.meta.url), './locales.json'));
7
7
  const t = (key, variables) => {
8
8
  var _a;