@serverless-devs/s 2.0.95 → 2.0.96

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/docs/readme.md CHANGED
@@ -51,7 +51,7 @@ $ npm install @serverless-devs/s -g
51
51
 
52
52
  > 如果您想为 Serverless Devs 贡献 Package(包括组件和应用),您可以参考 [Package开发文档](zh/package_dev.md)
53
53
 
54
- > Serverless Devs 天然支持 Yaml 模式与 Cli 模式,关于两者的区别和试用场景,可以参考文档[ Yaml 模式 Cli 模式对比](./../yaml_and_cli.md)
54
+ > Serverless Devs 天然支持 Yaml 模式与 Cli 模式,关于两者的区别和试用场景,可以参考文档[ **Yaml 模式 Cli 模式对比**](./zh/yaml_and_cli.md);关于[**Exit Code 定义**](./zh/tool.md#exit-code-定义)、[**Yaml 文件优先级规范**](./zh/tool.md#yaml-文件优先级规范)、[**密钥使用顺序与规范**](./zh/tool.md#密钥使用顺序与规范)、[**通过环境变量设置密钥**](./zh/tool.md#通过环境变量设置密钥)更多关于项目设计的一些细节可以参考[**开发者工具设计文档**](./zh/tool.md)
55
55
 
56
56
  # 相关资源
57
57
 
@@ -67,6 +67,12 @@ $ npm install @serverless-devs/s -g
67
67
 
68
68
  > 🚀 除此之外 Serverless Devs 项目还拥有很多优秀的组件和应用,可以参考[Awesome](./zh/awesome.md)
69
69
 
70
+ # 项目期望
71
+
72
+ - Serverless Devs 希望可以为 Serverless 开发者们提供一款可以无厂商锁定的,可以在 Serverless 应用全生命周期发挥作用的 Serverless 开发者工具;
73
+ - Serverless Registry 希望可以为 Serverless 生态提供一套完整的包管理规范,与 Python 中的 pypi, Nodejs 中的 npm 等类似,将以此来开放和分享 Serverless Package,建设 Serverless 生态;
74
+ - Serverless Developer Meetup 希望可以打造最符合 Serverless 开发者的社区活动,通过这个活动,我们希望更多人可以一起和我们交流、学习 Serverless 相关的产品;
75
+
70
76
  # 项目贡献
71
77
 
72
78
  我们非常希望您可以和我们一起贡献这个项目。贡献内容包括不限于代码的维护、应用/组件的贡献、文档的完善等,更多详情可以参考[ 🏆 贡献指南](../CONTRIBUTING.md)。
@@ -91,4 +97,4 @@ Serverless Devs 遵循 [MIT License](../LICENSE) 开源许可。
91
97
 
92
98
  -----------
93
99
 
94
- > Serverless Devs 开发者工具遵循 [Serverless Devs Model](../spec/readme.md),更多模型/规范信息可以参考 [Serverless Registry Model](../spec/zh/0.0.1/serverless_registry_model/readme.md),[Serverless User Model](../spec/zh/0.0.1/serverless_user_model/readme.md) 以及 [Serverless Package Model](../spec/zh/0.0.1/serverless_pacakge_model/readme.md);另外,关于项目设计的一些细节可以参考[开发者工具设计文档](./zh/tool.md)
100
+ > Serverless Devs 开发者工具遵循 [Serverless Devs Model](../spec/readme.md),更多模型/规范信息可以参考 [Serverless Registry Model](../spec/zh/0.0.1/serverless_registry_model/readme.md),[Serverless User Model](../spec/zh/0.0.1/serverless_user_model/readme.md) 以及 [Serverless Package Model](../spec/zh/0.0.1/serverless_pacakge_model/readme.md)
@@ -60,7 +60,6 @@ $ s component
60
60
  Component Description Size Version
61
61
  fc 阿里云函数计算基础组件 100 MB 0.1.27
62
62
  devsapp/fc 阿里云函数计算基础组件 100 MB 0.1.27
63
- devsapp/fc 阿里云函数计算基础组件 100 MB 0.1.27
64
63
  fc-api 函数计算api操作组件 100 MB 0.0.44
65
64
 
66
65
  🔎 github registry [https://api.github.com/repos]
@@ -13,7 +13,8 @@
13
13
  - [参数解析](#参数解析-2)
14
14
  - [操作案例](#操作案例-2)
15
15
  - [注意事项](#注意事项)
16
- - [通过环境变量配置密钥信息](#通过环境变量配置密钥信息)
16
+ - [通过环境变量设置密钥](#通过环境变量设置密钥)
17
+ - [关于配置密钥的使用顺序](#关于配置密钥的使用顺序)
17
18
 
18
19
  ## 命令解析
19
20
 
@@ -166,7 +167,6 @@ google: PrivateKeyData
166
167
  > - [华为云](./../default_provider_config/huaweicloud.md)
167
168
  > - [腾讯云](./../default_provider_config/tencentcloud.md)
168
169
 
169
-
170
170
  ## config get 命令
171
171
 
172
172
  通过`config get`命令,您可以获得配置过的账号信息。
@@ -265,14 +265,10 @@ Key [test] has been successfully removed
265
265
 
266
266
  ## 注意事项
267
267
 
268
- ### 通过环境变量配置密钥信息
269
-
270
- 在某些时候,密钥是不方便直接进行配置到 Serverless Devs 工具中,此时可以考虑将密钥信息放在环境变量中。
268
+ ### 通过环境变量设置密钥
271
269
 
272
- 例如,此时需要配置的密钥名为`s_secrets`,就可以在环境变量中,增加:
270
+ 详情可以参考:[开发者工具设计文档](../tool.md) 中的 [通过环境变量设置密钥](../tool.md#通过环境变量设置密钥)
273
271
 
274
- ```text
275
- s_secrets="{\"Key1\":\"Value1\",\"Key2\":\"Value2\"}"
276
- ```
272
+ ### 关于配置密钥的使用顺序
277
273
 
278
- 此时就可以在使用是通过`${env(s_secrets)}`进行指定的环境变量密钥使用。
274
+ 详情可以参考:[开发者工具设计文档](../tool.md) 中的 [通过环境变量设置密钥](../tool.md#密钥使用顺序与规范)
@@ -67,30 +67,31 @@ $ s init
67
67
 
68
68
  ```shell script
69
69
  ? Please select an Serverless-Devs Application (Use arrow keys or type to search)
70
- fc-runtime-starter - 快速部署一个 FC 函数
71
- fc-custom-container-stater - 快速部署一个 custom-container 应用
72
- web-framework-stater - 快速部署一个 Web 框架
73
- static-website-stater - 快速部署一个静态网站
74
- serverless-best-practice - 快速体验 Serverless 最佳实践
70
+ Quick start [Deploy a Hello World function to FaaS]
71
+ Container example [Deploy function to FaaS with custom-container]
72
+ Web Framework [Deploy a web framework to FaaS]
73
+ Static website [Deploy a static website]
74
+ Best practice [Experience serverless project]
75
75
  ```
76
76
 
77
77
  此时可以继续选择某分类下的具体应用进行初始化,例如选择`fc-runtime-starter`之后,可以看到该分类下的具体模板应用:
78
78
 
79
79
  ```shell script
80
- ? Please select an templete (Use arrow keys or type to search)
81
- fc-http-nodejs - 快速部署一个 nodejs12 http函数
82
- fc-http-python - 快速部署一个 python3 http函数
83
- fc-http-php - 快速部署一个 php http函数
84
- fc-http-java - 快速部署一个 java8 http函数
85
- fc-event-nodejs - 快速部署一个 nodejs12 event函数
86
- fc-event-python - 快速部署一个 python3 event函数
87
- fc-event-php - 快速部署一个 php event函数
80
+ ? Which template do you like? (Use arrow keys or type to search)
81
+ [HTTP] Node.js 12
82
+ [HTTP] Python3
83
+ [HTTP] Java8
84
+ [HTTP] PHP7
85
+ [HTTP] C++ (custom)
86
+ [Event] Node.js 12
87
+ [Event] Python3
88
+ (Move up and down to reveal more choices)
88
89
  ```
89
90
 
90
91
  选择`fc-http-nodejs`即可完成创建:
91
92
 
92
93
  ```shell script
93
- jiangyu@ServerlessSecurity demo % s init
94
+ $ s init
94
95
 
95
96
  🚀 Serverless Awesome: https://github.com/Serverless-Devs/package-awesome
96
97
 
@@ -5,8 +5,8 @@
5
5
  - [命令解析](#命令解析)
6
6
  - [set registry 命令](#set-registry-命令)
7
7
  - [set locale 命令](#set-locale-命令)
8
- - [[FEATURE] set analysis 命令](#feature-set-analysis-命令)
9
- - [[FEATURE] set workspace 命令](#feature-set-workspace-命令)
8
+ - [set analysis 命令](#feature-set-analysis-命令)
9
+ - [set workspace 命令](#feature-set-workspace-命令)
10
10
 
11
11
  ## 命令解析
12
12
 
@@ -118,7 +118,7 @@ Options:
118
118
 
119
119
  > 🙊 注:系统默认的 locale 是:`zh`
120
120
 
121
- ## [FEATURE] set analysis 命令
121
+ ## set analysis 命令
122
122
 
123
123
  通过该命令,可以对 Serverless Devs 开发者工具的数据分析能力进行配置。
124
124
 
@@ -155,7 +155,7 @@ Options:
155
155
 
156
156
  > 🙊 注:系统默认的 analysis 是:`enable`
157
157
 
158
- ## [FEATURE] set workspace 命令
158
+ ## set workspace 命令
159
159
 
160
160
  通过该命令,可以对 Serverless Devs 开发者工具的默认路径进行配置。
161
161
 
package/docs/zh/readme.md CHANGED
@@ -68,7 +68,9 @@ Serverless Devs 的模型设计原则,是希望可以通过更加简单、科
68
68
  - 2021年6月,Serverless Devs 下载次数突破 10000
69
69
  - 2021年7月,Serverless Developer Meetup 在杭州召开,阿里云函数计算团队在会上正式发布端云联调、桌面客户端等功能
70
70
  - 2021年8月,Serverless Devs 下载次数突破 20000
71
- - 2021年10月,在***2021 OpenInfra Days China***会议上,Serverless Devs 带来了《Serverless Devs:Serverless全生命周期的工具链建设》的主题演讲
71
+ - 2021年10月,在 2021 OpenInfra Days China 会议上,Serverless Devs 带来了《Serverless Devs:Serverless全生命周期的工具链建设》的主题演讲
72
+ - 2021年12月,Serverless Developer Meetup 在深圳召开,并尝试性的对外展示了Serverless Devs Model
73
+
72
74
 
73
75
  ## 未来展望
74
76
 
@@ -77,7 +79,7 @@ Serverless Devs 将会在未来支持:
77
79
  - 将会开发和上线 Serverless Devs IDE Plugin;
78
80
  - 将会持续推动 Serverless 生态尤其是 Serverless 工具链生态的前进;
79
81
 
80
- 关于我们的 Roadmap,可以参考 [Github Projects](#https://github.com/Serverless-Devs/Serverless-Devs/projects) 。
82
+ 关于我们的 Roadmap,可以参考 [Github Projects](https://github.com/Serverless-Devs/Serverless-Devs/projects) 。
81
83
 
82
84
  ## 交流社群
83
85
 
package/docs/zh/tool.md CHANGED
@@ -6,6 +6,8 @@
6
6
  - [Yaml 文件优先级规范](#yaml-文件优先级规范)
7
7
  - [应用内服务部署顺序](#应用内服务部署顺序)
8
8
  - [密钥使用顺序与规范](#密钥使用顺序与规范)
9
+ - [通过环境变量设置密钥](#通过环境变量设置密钥)
10
+ - []
9
11
 
10
12
  ## Exit Code 定义
11
13
 
@@ -71,10 +73,29 @@ Serverless Devs 作为 Serverless 领域的开发者工具,其输出的标准
71
73
  ### 密钥使用顺序与规范
72
74
 
73
75
  - 通过`-a/--access`参数指定的密钥信息
74
- - 默认使用`default`密钥信息
75
- - 不实用密钥信息 / 进入密钥信息配置引导
76
+ - 使用已经配置的`default`密钥信息
77
+ - 使用通过环境变量配置的``default_serverless_devs_access`密钥信息
78
+ - 不使用密钥信息 / 进入密钥信息配置引导
76
79
 
77
80
  具体的流程图为:
78
81
 
79
82
  ![图片alt](https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635841483040_20211102082444588067.png)
80
83
 
84
+ ## 通过环境变量设置密钥
85
+
86
+ Serverless Devs可以比较容易的通过环境变量进行密钥信息的设定。通过环境变量配置密钥的方法有两种:
87
+
88
+ 1. 通过命令引入环境变量中的密钥:例如在环境变量中有`ALIBABA_CLOUD_ACCOUNT_ID`、`ALIBABA_CLOUD_ACCESS_KEY_ID`、`ALIBABA_CLOUD_ACCESS_KEY_SECRET`等相关内容,此时可以通过`s config add`命令进行添加:
89
+ ```shell script
90
+ s config add -a default-aliyun -kl AccountID,AccessKeyID,AccessKeySecret -il ${ALIBABA_CLOUD_ACCOUNT_ID},${ALIBABA_CLOUD_ACCESS_KEY_ID},${ALIBABA_CLOUD_ACCESS_KEY_SECRET}
91
+ ```
92
+ 2. 通过指定环境变量的名字进行配置:例如当前有阿里云密钥对:
93
+ - AccountID: temp_accountid
94
+ - AccessKeyID: temp_accesskeyid
95
+ - AccessKeySecret: temp_accesskeysecret
96
+ 此时可以在环境变量中可以命名key为`*********_serverless_devs_access`,例如`default_serverless_devs_access`,value为JSON字符串,例如:
97
+ - Key:`default_serverless_devs_access`
98
+ - Value:`{\"AccountID\":\"temp_accountid\",\"AccessKeyID\":\"temp_accesskeyid\",\"AccessKeySecret\":\"temp_accesskeysecret\"}`
99
+ 此时,可以在配置密钥的时候指定密钥`default_serverless_devs_access`,例如`${env(default_serverless_devs_access)}`
100
+
101
+ ##
package/docs/zh/yaml.md CHANGED
@@ -16,7 +16,7 @@
16
16
  - 拓展名可以是`.yaml`或`.yml`
17
17
  - 格式必须符合[Yaml规范](https://yaml.org/spec/1.2.2/)
18
18
 
19
- 对于需要通过描述文件进行环境隔离的项目,建议将文件命名为 `s-${ENV}.yaml` 或 `s-${ENV}.yml` 格式。 例如:`s-prod.yaml`。
19
+ > 👉 对于需要通过描述文件进行环境隔离的项目,建议将文件命名为 `s-${ENV}.yaml` 或 `s-${ENV}.yml` 格式。 例如:`s-prod.yaml`。
20
20
 
21
21
  在默认情况下,Serverless Devs 开发者工具会默认该描述文件的名称为`s.yaml`或`s.yml`,且`s.yaml`的优先级大于`s.yml`, 即在一个 Serverless 应用下,同时出现`s.yaml`与`s.yml`时,系统会优先识别和使用`s.yaml`。
22
22
 
@@ -42,7 +42,7 @@ function print() { __p += __j.call(arguments, '') }
42
42
  `)),console.log((0,No.bgRed)("ERROR:")+`
43
43
  `+s+`
44
44
  `),f!=="disable"&&console.log(on.gray("Please copy traceId: "+this.traceId+" and join Dingding group: 33947367 for consultation.")),console.log(on.gray("You can run 's clean --cache' to prune Serverless devs.")),console.log(on.gray(`And run again with the '--debug' option or 's -h' to get more logs.
45
- `))}return i.prototype.report=function(r){return pw(this,void 0,void 0,function(){return dw(this,function(s){return mw({type:"jsError",content:r.message+"||"+r.stack,traceId:this.traceId}),[2]})})},i}();te.HandleError=bw});var ih=T((oA,Cw)=>{Cw.exports={name:"@serverless-devs/s",version:"2.0.95",description:"Serverless devs tool, serverless developer tool, supports Alibaba cloud, AWS, azure, baidu cloud, Huawei cloud, Google cloud and Tencent cloud.",homepage:"https://www.serverless-devs.com",keywords:["serverless","alibaba","tencent","azure","baidu","huawei","google","function","faas","serverless-devs"],publishConfig:{access:"public",registry:"https://registry.npmjs.org"},license:"MIT",repository:{type:"git",url:"https://github.com/Serverless-Devs/Serverless-Devs"},bugs:{url:"https://github.com/Serverless-Devs/Serverless-Devs/issues"},scripts:{prewatch:"rm -rf lib/* && cp -r ./src/daemon ./lib",watch:"tsc -w",test:"npx jest",prebuild:"rm -rf lib/*",build:"tsc && cp -r ./src/daemon ./lib",postbuild:"./shell/postbuild.sh","test:cov":"jest --coverage",lint:"npm run typecheck && f2elint scan -i src",fix:"f2elint fix",typecheck:"npx tsc -p tsconfig.json --noEmit",update:"rm -rf yarn.lock && rm -rf package-lock.json && rm -rf node_modules && yarn",beta:"npm publish --tag=beta"},main:"./lib/index.js",bin:{s:"bin/s"},devDependencies:{"@types/jest":"^27.0.1","@types/lodash":"^4.14.168","@types/node":"^14.0.23","@typescript-eslint/eslint-plugin":"^4.14.1","@typescript-eslint/parser":"^4.14.1","babel-eslint":"^10.1.0",boxen:"^5.0.0",commander:"^6.0.0",dotenv:"^10.0.0",esbuild:"^0.13.6",eslint:"^7.7.0","eslint-config-prettier":"^7.2.0","eslint-plugin-import":"^2.20.1","eslint-plugin-prettier":"^3.1.2",husky:"^4.2.3",inquirer:"^8.2.0","inquirer-autocomplete-prompt":"^1.3.0",jest:"^27.1.0","latest-version":"^5.1.0","lint-staged":"^10.0.8",lodash:"^4.17.20","os-locale":"5.0.0",prettier:"^2.2.1",semver:"^7.3.5","semver-diff":"^3.1.1","ts-jest":"^27.0.1","ts-node":"^9.1.1","tty-table":"^4.1.5",typescript:"^4.1.3"},"lint-staged":{"**/*.{js,jsx,ts}":"f2elint exec eslint"},jest:{coverageDirectory:"coverage",testEnvironment:"node",coverageProvider:"v8",preset:"ts-jest",testMatch:["**/test/**/*test.[jt]s"],setupFilesAfterEnv:["./jest.setup.ts"]},dependencies:{"@serverless-devs/core":"latest"}}});var Ar=T(G=>{"use strict";var Tw=G&&G.__createBinding||(Object.create?function(i,r,s,u){u===void 0&&(u=s),Object.defineProperty(i,u,{enumerable:!0,get:function(){return r[s]}})}:function(i,r,s,u){u===void 0&&(u=s),i[u]=r[s]}),Lw=G&&G.__setModuleDefault||(Object.create?function(i,r){Object.defineProperty(i,"default",{enumerable:!0,value:r})}:function(i,r){i.default=r}),$w=G&&G.__importStar||function(i){if(i&&i.__esModule)return i;var r={};if(i!=null)for(var s in i)s!=="default"&&Object.prototype.hasOwnProperty.call(i,s)&&Tw(r,i,s);return Lw(r,i),r},sh=G&&G.__awaiter||function(i,r,s,u){function l(f){return f instanceof s?f:new s(function(_){_(f)})}return new(s||(s=Promise))(function(f,_){function y(S){try{d(u.next(S))}catch(b){_(b)}}function w(S){try{d(u.throw(S))}catch(b){_(b)}}function d(S){S.done?f(S.value):l(S.value).then(y,w)}d((u=u.apply(i,r||[])).next())})},oh=G&&G.__generator||function(i,r){var s={label:0,sent:function(){if(f[0]&1)throw f[1];return f[1]},trys:[],ops:[]},u,l,f,_;return _={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(_[Symbol.iterator]=function(){return this}),_;function y(d){return function(S){return w([d,S])}}function w(d){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,l&&(f=d[0]&2?l.return:d[0]?l.throw||((f=l.return)&&f.call(l),0):l.next)&&!(f=f.call(l,d[1])).done)return f;switch(l=0,f&&(d=[d[0]&2,f.value]),d[0]){case 0:case 1:f=d;break;case 4:return s.label++,{value:d[1],done:!1};case 5:s.label++,l=d[1],d=[0];continue;case 7:d=s.ops.pop(),s.trys.pop();continue;default:if(f=s.trys,!(f=f.length>0&&f[f.length-1])&&(d[0]===6||d[0]===2)){s=0;continue}if(d[0]===3&&(!f||d[1]>f[0]&&d[1]<f[3])){s.label=d[1];break}if(d[0]===6&&s.label<f[1]){s.label=f[1],f=d;break}if(f&&s.label<f[2]){s.label=f[2],s.ops.push(d);break}f[2]&&s.ops.pop(),s.trys.pop();continue}d=r.call(i,s)}catch(S){d=[6,S],l=0}finally{u=f=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},Hi=G&&G.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(G,"__esModule",{value:!0});G.emoji=G.mark=G.replaceTemplate=G.getTemplatekey=G.replaceFun=G.getLang=G.printn=G.checkTemplateFile=G.checkAndReturnTemplateFile=G.yamlLoad=G.getFolderSize=G.getVersion=G.bgRed=G.red=void 0;var de=Hi(require("path")),Me=Hi(require("fs")),Fo=Hi(Pc()),Dw=Hi(require("os")),Nw=rh(),Wi=$w(lt()),Mo=Wi.default.colors,qw=Wi.default.jsyaml,Gi=ih();G.red=Mo.hex("#fd5750");G.bgRed=Mo.hex("#000").bgHex("#fd5750");function Pw(){return(0,Wi.getCoreVersion)()?Gi.name+": "+Gi.version+", @serverless-devs/core: "+(0,Wi.getCoreVersion)()+", "+process.platform+"-"+process.arch+", node-"+process.version:Gi.name+": "+Gi.version+", "+process.platform+"-"+process.arch+", node-"+process.version}G.getVersion=Pw;function Fw(i){return sh(this,void 0,void 0,function(){function r(l){return sh(this,void 0,void 0,function(){var f,_;return oh(this,function(y){switch(y.label){case 0:return f=Me.default.lstatSync(l),typeof f!="object"?[2]:(s.set(f.ino,f.size),f.isDirectory()?(_=Me.default.readdirSync(l),typeof _!="object"?[2]:[4,Promise.all(_.map(function(w){return r(de.default.join(l,w))}))]):[3,2]);case 1:y.sent(),y.label=2;case 2:return[2]}})})}var s,u;return oh(this,function(l){switch(l.label){case 0:return s=new Map,[4,r(i)];case 1:return l.sent(),u=Array.from(s.values()).reduce(function(f,_){return f+_},0),[2,u]}})})}G.getFolderSize=Fw;function uh(i){var r=Me.default.readFileSync(i,"utf8");try{return qw.load(r)}catch{if(["-h","--help"].includes(process.argv[2]))return;var s=de.default.basename(i);new Nw.HumanError({errorMessage:s+" format is incorrect",tips:"Please check the configuration of "+s+", Serverless Devs' Yaml specification document can refer to\uFF1A"+Mo.underline("https://github.com/Serverless-Devs/Serverless-Devs/blob/master/docs/zh/yaml.md")}),process.exit(1)}}G.yamlLoad=uh;function Or(i,r){r===void 0&&(r=!1);var s=Me.default.readFileSync(i,"utf8"),u=r?JSON.parse(s):uh(i);if(!u)return!1;for(var l in u)if(u[l].Component&&u[l].Provider&&u[l].Properties)return!0;return u.hasOwnProperty("edition")}function ah(){if(process.env.serverless_devs_temp_template)return process.env.serverless_devs_temp_template;var i=process.cwd(),r=process.argv.includes("-t")?"-t":process.argv.includes("--template")?"--template":null,s=r?process.argv.indexOf(r):-1;if(s!==-1){var u=s+1,l=process.argv[u];if(l&&(l.endsWith(".yaml")||l.endsWith(".yml")||l.endsWith(".json"))){var f=!!l.endsWith(".json");if(Me.default.existsSync(de.default.join(i,l))&&Or(de.default.join(i,l),f)){process.argv.splice(s,2);var _=JSON.parse(process.env.serverless_devs_temp_argv);return _.splice(_.indexOf(r),2),process.env.serverless_devs_temp_argv=JSON.stringify(_),process.env.serverless_devs_temp_template=de.default.join(i,l),de.default.join(i,l)}else if(Me.default.existsSync(l)&&Or(l,f)){process.argv.splice(s,2);var _=JSON.parse(process.env.serverless_devs_temp_argv);return _.splice(_.indexOf(r),2),process.env.serverless_devs_temp_argv=JSON.stringify(_),process.env.serverless_devs_temp_template=l,l}}}return Me.default.existsSync(de.default.join(i,"s.yaml"))&&Or(de.default.join(i,"s.yaml"))?(process.env.serverless_devs_temp_template=de.default.join(i,"s.yaml"),de.default.join(i,"s.yaml")):Me.default.existsSync(de.default.join(i,"s.yml"))&&Or(de.default.join(i,"s.yml"))?(process.env.serverless_devs_temp_template=de.default.join(i,"s.yml"),de.default.join(i,"s.yml")):Me.default.existsSync(de.default.join(i,"s.json"))&&Or(de.default.join(i,"s.json"),!0)?(process.env.serverless_devs_temp_template=de.default.join(i,"s.json"),de.default.join(i,"s.json")):null}G.checkAndReturnTemplateFile=ah;function lh(i){return Me.default.existsSync(i)?i:null}G.checkTemplateFile=lh;function fh(i,r){r===void 0&&(r=" ");for(var s="",u=0;u<i;u++)s=s+r;return s}G.printn=fh;function ch(){return"en"}G.getLang=ch;function Ho(i,r){var s=/\{\{(.*?)\}\}/g,u=i.match(s);if(u)for(var l=0;l<u.length;l++){var f=u[l].replace(/{{|}}/g,""),_=Fo.default.trim(f.split("|")[0]);r[_]&&(i=i.replace(u[l],r[_]))}return i}G.replaceFun=Ho;function hh(i){var r=/\{\{(.*?)\}\}/g,s=i.match(r);return s?s.filter(function(u){return u}).map(function(u){var l=u.replace(/{{|}}/g,""),f=l.split("|");return{name:Fo.default.trim(f[0]),desc:Fo.default.trim(f[1])}}):[]}G.getTemplatekey=hh;function ph(i,r){i.forEach(function(s){if(Me.default.existsSync(s)){var u=Me.default.readFileSync(s,"utf-8"),l=Ho(u,r);Me.default.writeFileSync(s,l,"utf-8")}})}G.replaceTemplate=ph;function dh(i){if(!i)return i;var r=i.slice(-4);return"***********"+r}G.mark=dh;function Mw(i){return Dw.default.platform()==="win32"?"":i}G.emoji=Mw;G.default={checkAndReturnTemplateFile:ah,checkTemplateFile:lh,printn:fh,mark:dh,getLang:ch,replaceTemplate:ph,replaceFun:Ho,getTemplatekey:hh}});var gh=T(Wo=>{"use strict";Object.defineProperty(Wo,"__esModule",{value:!0});Wo.default={clean_up_the_environment:"\u6E05\u7406\u73AF\u5883",display_help_for_command:"\u663E\u793A\u547D\u4EE4\u5E2E\u52A9",remove_components:"\u5220\u9664\u7EC4\u4EF6",delete_the_file_under_the_cache:"\u5220\u9664\u7F13\u5B58\u91CC\u7684\u7684<dirname>\u6587\u4EF6",record_your_log_information:"\u662F\u5426\u8BB0\u5F55\u60A8\u7684\u65E5\u5FD7\u4FE1\u606F\uFF1F",init_pproject_deploy_tip:"\u662F\u5426\u7ACB\u5373\u90E8\u7F72\u8BE5\u9879\u76EE\uFF1F",tip_for_a_serverless_project:"\u68C0\u6D4B\u5230\u5F53\u524D\u76EE\u5F55\u4E0B\u5DF2\u5B58\u5728\u4E00\u4E2AServerless-Devs\u9879\u76EE\uFF0C\u8BF7\u901A\u8FC7 's deploy' \u8FDB\u884C\u90E8\u7F72\u6216\u901A\u8FC7 's -h' \u83B7\u53D6\u66F4\u591A\u4FE1\u606F",create_a_new_project:"\u672A\u68C0\u6D4B\u5230 Serverless-Devs \u9879\u76EE\uFF0C\u662F\u5426\u65B0\u5EFA\u4E00\u4E2A\u9879\u76EE\uFF1F",en:"English (en)",zh:"\u4E2D\u6587 (zh)",select_current_language:"\u8BF7\u9009\u62E9\u5F53\u524D\u8BED\u8A00","app-tip":"\u8BF7\u9009\u62E9\u60A8\u5E0C\u671B\u521B\u5EFA\u7684 Serverless-Devs \u5E94\u7528","template-tip":"\u8BF7\u9009\u62E9\u60A8\u559C\u6B22\u7684\u6A21\u7248","fc-runtime-starter":"fc-runtime-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A FC \u51FD\u6570","fc-custom-container-stater":"fc-custom-container-stater - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A custom-container \u5E94\u7528",web:"web-framework-stater - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A Web \u6846\u67B6","static-site":"static-website-stater - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u9759\u6001\u7F51\u7AD9","best-practice":"serverless-best-practice - \u5FEB\u901F\u4F53\u9A8C Serverless \u6700\u4F73\u5B9E\u8DF5","devs-template":"Serverless Devs \u5F00\u53D1\u6A21\u677F","fc-http-nodejs":"fc-http-nodejs - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A nodejs12 \u51FD\u6570","fc-http-python":"fc-http-python - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A python3 \u51FD\u6570","fc-http-java":"fc-http-java - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A java8 \u51FD\u6570","fc-custom-container-event-python3":"fc-custom-container-event-python3 - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7\u4E8B\u4EF6\u89E6\u53D1\u7684 python3 \u5E94\u7528","fc-custom-container-event-cpp":"fc-custom-container-event-cpp - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7\u4E8B\u4EF6\u89E6\u53D1\u7684 cpp \u5E94\u7528","fc-custom-container-http-springboot":"fc-custom-container-http-springboot - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7 HTTP \u8BF7\u6C42\u89E6\u53D1\u7684 springboot \u5E94\u7528","fc-custom-container-http-aspdotnetcore":"fc-custom-container-http-aspdotnetcore - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7 HTTP \u8BF7\u6C42\u89E6\u53D1\u7684 aspdotnetcore \u5E94\u7528","express-starter":"express-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A express \u57FA\u7840\u5E94\u7528","koa-starter":"koa-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A koa \u57FA\u7840\u5E94\u7528","nuxtjs-starter":"nuxtjs-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A nuxtjs \u57FA\u7840\u5E94\u7528","eggjs-starter":"eggjs-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A eggjs \u57FA\u7840\u5E94\u7528","flask-starter":"flask-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A flask \u57FA\u7840\u5E94\u7528","SpringBoot-starter":"SpringBoot-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A SpringBoot \u57FA\u7840\u5E94\u7528","Zblog-starter":"Zblog-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A Zblog \u57FA\u7840\u5E94\u7528","website-starter":"website-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u9759\u6001\u7F51\u7AD9","react-starter":"react-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A React.js \u5E94\u7528","vue-starter":"vue-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A Vue.js \u5E94\u7528",puppeteer:"puppeteer - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u57FA\u4E8E puppeteer \u622A\u56FE\u7684 Web \u5E94\u7528",ffmpeg:"ffmpeg - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u57FA\u4E8E ffmpeg \u5B9E\u73B0\u97F3\u89C6\u9891\u5904\u7406\u5E94\u7528",pdf2Img:"pdf2Img - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A pdf \u8F6C\u56FE\u7247\u5E94\u7528",tensorflow:"tensorflow - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A tensorflow \u5E94\u7528",todoList:"todoList - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u57FA\u4E8E nodejs \u7684\u7F51\u9875 TodoList \u5E94\u7528"}});var _h=T(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.default={clean_up_the_environment:"Clean up the environment",display_help_for_command:"Display help for command",remove_components:"Remove component (like: fc, fc@0.0.1)",delete_the_file_under_the_cache:"Delete the <dirname> file in the cache",record_your_log_information:"Do you record your log information?",init_pproject_deploy_tip:"Do you want to deploy the project immediately?",tip_for_a_serverless_project:"A Serverless-Devs project is detected in the current directory, please deploy via 's deploy' or get more information via 's -h'",create_a_new_project:"No Serverless-Devs project is currently detected. Do you want to create a new project?",en:"English (en)",zh:"Chinese (zh)",select_current_language:"Please select current language","app-tip":"Hello, serverlesser. Which template do you like?","template-tip":"Which template do you like?","fc-runtime-starter":"fc-runtime-starter - Deploy FC function in 5 minutes","fc-custom-container-stater":"fc-custom-container-stater - Deploy FC function with custom-container",web:"web-framework-stater-Quickly deploy a web framework","static-site":"static-website-stater-Quickly deploy a static website","best-practice":"serverless-best-practice-Quickly experience serverless best practices","devs-template":"Serverless Develop scaffold","fc-http-nodejs":"fc-http-nodejs - Deploy FC nodejs12 runtime function","fc-http-python":"fc-http-python - Deploy FC python3 runtime function","fc-http-java":"fc-http-java - Deploy FC java8 runtime function","fc-custom-container-event-python3":"fc-custom-container-event-python3 - Deploy python3 event-triggered application","fc-custom-container-event-cpp":"fc-custom-container-event-cpp - Deploy cpp event-triggered application","fc-custom-container-http-springboot":"fc-custom-container-http-springboot - Deploy springboot HTTP Request-triggered application","fc-custom-container-http-aspdotnetcore":"fc-custom-container-http-aspdotnetcore - Deploy dotnetcore HTTP Request-triggered application","express-starter":"express-starter - Deploy express application","koa-starter":"koa-starter - Deploy koa application","nuxtjs-starter":"nuxtjs-starter - Deploy nuxtjs application","eggjs-starter":"eggjs-starter - Deploy eggjs application","flask-starter":"flask-starter - Deploy flask application","SpringBoot-starter":"SpringBoot-starter - Deploy SpringBoot application","Zblog-starter":"Zblog-starter - Deploy Zblog application","website-starter":"website-starter - Deploy static website","react-starter":"react-starter - Deploy React.js application","vue-starter":"vue-starter - Deploy Vue.js application",puppeteer:"puppeteer - Deploy screenshot application base on puppeteer + fc",ffmpeg:"ffmpeg - Deploy audio and video processing application base on ffmpeg + fc",pdf2Img:"pdf2Img - Deploy pdf to images application",tensorflow:"tensorflow - Deploy tensorflow application",todoList:"todoList - Deploy todoList application"}});var vh=T(Sr=>{"use strict";var mh=Sr&&Sr.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Sr,"__esModule",{value:!0});var Hw=Ar(),Ww=mh(gh()),Gw=mh(_h()),Uo={en:Gw.default,zh:Ww.default},Uw=function(i){var r=(0,Hw.getLang)(),s=Uo[r]?Uo[r][i]:Uo.en[i];return s||i};Sr.default=Uw});var Eh=T(Rr=>{"use strict";var Bw=Rr&&Rr.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Rr,"__esModule",{value:!0});var yh=Bw(lt()),jw=yh.default.Logger,Xw=yh.default.spinner,un=new jw("S-CLI"),zw=function(){function i(){}return i.log=function(r){un.log(r)},i.info=function(r){un.info(r)},i.debug=function(r){un.debug(r)},i.error=function(r){un.error(r)},i.warning=function(r){un.warn(r)},i.success=function(r){un.log(r,"green")},i.spinner=function(r){return Xw(r)},i.output=function(r){return un.output(r)},i}();Rr.default=zw});"use strict";var Ir=exports&&exports.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0});var Vw=Ir($l()),br=Ir(lt()),Ui=Ir(vh()),ht=Ir(require("path")),Fn=Ir(Eh()),Yw=Do(),Kw=Ar(),Mn=br.default.rimraf,Zw=br.default.minimist,Bo=br.default.fse,kw=br.default.colors,Jw=br.default.getRootHome,Qw=`Clean up the cache related functions of serverless devs. You can clean up the environment, unused dependent packages and related cache contents through this command.
45
+ `))}return i.prototype.report=function(r){return pw(this,void 0,void 0,function(){return dw(this,function(s){return mw({type:"jsError",content:r.message+"||"+r.stack,traceId:this.traceId}),[2]})})},i}();te.HandleError=bw});var ih=T((oA,Cw)=>{Cw.exports={name:"@serverless-devs/s",version:"2.0.96",description:"Serverless devs tool, serverless developer tool, supports Alibaba cloud, AWS, azure, baidu cloud, Huawei cloud, Google cloud and Tencent cloud.",homepage:"https://www.serverless-devs.com",keywords:["serverless","alibaba","tencent","azure","baidu","huawei","google","function","faas","serverless-devs"],publishConfig:{access:"public",registry:"https://registry.npmjs.org"},license:"MIT",repository:{type:"git",url:"https://github.com/Serverless-Devs/Serverless-Devs"},bugs:{url:"https://github.com/Serverless-Devs/Serverless-Devs/issues"},scripts:{prewatch:"rm -rf lib/* && cp -r ./src/daemon ./lib",watch:"tsc -w",test:"npx jest",prebuild:"rm -rf lib/*",build:"tsc && cp -r ./src/daemon ./lib",postbuild:"./shell/postbuild.sh","test:cov":"jest --coverage",lint:"npm run typecheck && f2elint scan -i src",fix:"f2elint fix",typecheck:"npx tsc -p tsconfig.json --noEmit",update:"rm -rf yarn.lock && rm -rf package-lock.json && rm -rf node_modules && yarn",beta:"npm publish --tag=beta"},main:"./lib/index.js",bin:{s:"bin/s"},devDependencies:{"@types/jest":"^27.0.1","@types/lodash":"^4.14.168","@types/node":"^14.0.23","@typescript-eslint/eslint-plugin":"^4.14.1","@typescript-eslint/parser":"^4.14.1","babel-eslint":"^10.1.0",boxen:"^5.0.0",commander:"^6.0.0",dotenv:"^10.0.0",esbuild:"^0.13.6",eslint:"^7.7.0","eslint-config-prettier":"^7.2.0","eslint-plugin-import":"^2.20.1","eslint-plugin-prettier":"^3.1.2",husky:"^4.2.3",inquirer:"^8.2.0","inquirer-autocomplete-prompt":"^1.3.0",jest:"^27.1.0","latest-version":"^5.1.0","lint-staged":"^10.0.8",lodash:"^4.17.20","os-locale":"5.0.0",prettier:"^2.2.1",semver:"^7.3.5","semver-diff":"^3.1.1","ts-jest":"^27.0.1","ts-node":"^9.1.1","tty-table":"^4.1.5",typescript:"^4.1.3"},"lint-staged":{"**/*.{js,jsx,ts}":"f2elint exec eslint"},jest:{coverageDirectory:"coverage",testEnvironment:"node",coverageProvider:"v8",preset:"ts-jest",testMatch:["**/test/**/*test.[jt]s"],setupFilesAfterEnv:["./jest.setup.ts"]},dependencies:{"@serverless-devs/core":"latest"}}});var Ar=T(G=>{"use strict";var Tw=G&&G.__createBinding||(Object.create?function(i,r,s,u){u===void 0&&(u=s),Object.defineProperty(i,u,{enumerable:!0,get:function(){return r[s]}})}:function(i,r,s,u){u===void 0&&(u=s),i[u]=r[s]}),Lw=G&&G.__setModuleDefault||(Object.create?function(i,r){Object.defineProperty(i,"default",{enumerable:!0,value:r})}:function(i,r){i.default=r}),$w=G&&G.__importStar||function(i){if(i&&i.__esModule)return i;var r={};if(i!=null)for(var s in i)s!=="default"&&Object.prototype.hasOwnProperty.call(i,s)&&Tw(r,i,s);return Lw(r,i),r},sh=G&&G.__awaiter||function(i,r,s,u){function l(f){return f instanceof s?f:new s(function(_){_(f)})}return new(s||(s=Promise))(function(f,_){function y(S){try{d(u.next(S))}catch(b){_(b)}}function w(S){try{d(u.throw(S))}catch(b){_(b)}}function d(S){S.done?f(S.value):l(S.value).then(y,w)}d((u=u.apply(i,r||[])).next())})},oh=G&&G.__generator||function(i,r){var s={label:0,sent:function(){if(f[0]&1)throw f[1];return f[1]},trys:[],ops:[]},u,l,f,_;return _={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(_[Symbol.iterator]=function(){return this}),_;function y(d){return function(S){return w([d,S])}}function w(d){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,l&&(f=d[0]&2?l.return:d[0]?l.throw||((f=l.return)&&f.call(l),0):l.next)&&!(f=f.call(l,d[1])).done)return f;switch(l=0,f&&(d=[d[0]&2,f.value]),d[0]){case 0:case 1:f=d;break;case 4:return s.label++,{value:d[1],done:!1};case 5:s.label++,l=d[1],d=[0];continue;case 7:d=s.ops.pop(),s.trys.pop();continue;default:if(f=s.trys,!(f=f.length>0&&f[f.length-1])&&(d[0]===6||d[0]===2)){s=0;continue}if(d[0]===3&&(!f||d[1]>f[0]&&d[1]<f[3])){s.label=d[1];break}if(d[0]===6&&s.label<f[1]){s.label=f[1],f=d;break}if(f&&s.label<f[2]){s.label=f[2],s.ops.push(d);break}f[2]&&s.ops.pop(),s.trys.pop();continue}d=r.call(i,s)}catch(S){d=[6,S],l=0}finally{u=f=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}},Hi=G&&G.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(G,"__esModule",{value:!0});G.emoji=G.mark=G.replaceTemplate=G.getTemplatekey=G.replaceFun=G.getLang=G.printn=G.checkTemplateFile=G.checkAndReturnTemplateFile=G.yamlLoad=G.getFolderSize=G.getVersion=G.bgRed=G.red=void 0;var de=Hi(require("path")),Me=Hi(require("fs")),Fo=Hi(Pc()),Dw=Hi(require("os")),Nw=rh(),Wi=$w(lt()),Mo=Wi.default.colors,qw=Wi.default.jsyaml,Gi=ih();G.red=Mo.hex("#fd5750");G.bgRed=Mo.hex("#000").bgHex("#fd5750");function Pw(){return(0,Wi.getCoreVersion)()?Gi.name+": "+Gi.version+", @serverless-devs/core: "+(0,Wi.getCoreVersion)()+", "+process.platform+"-"+process.arch+", node-"+process.version:Gi.name+": "+Gi.version+", "+process.platform+"-"+process.arch+", node-"+process.version}G.getVersion=Pw;function Fw(i){return sh(this,void 0,void 0,function(){function r(l){return sh(this,void 0,void 0,function(){var f,_;return oh(this,function(y){switch(y.label){case 0:return f=Me.default.lstatSync(l),typeof f!="object"?[2]:(s.set(f.ino,f.size),f.isDirectory()?(_=Me.default.readdirSync(l),typeof _!="object"?[2]:[4,Promise.all(_.map(function(w){return r(de.default.join(l,w))}))]):[3,2]);case 1:y.sent(),y.label=2;case 2:return[2]}})})}var s,u;return oh(this,function(l){switch(l.label){case 0:return s=new Map,[4,r(i)];case 1:return l.sent(),u=Array.from(s.values()).reduce(function(f,_){return f+_},0),[2,u]}})})}G.getFolderSize=Fw;function uh(i){var r=Me.default.readFileSync(i,"utf8");try{return qw.load(r)}catch{if(["-h","--help"].includes(process.argv[2]))return;var s=de.default.basename(i);new Nw.HumanError({errorMessage:s+" format is incorrect",tips:"Please check the configuration of "+s+", Serverless Devs' Yaml specification document can refer to\uFF1A"+Mo.underline("https://github.com/Serverless-Devs/Serverless-Devs/blob/master/docs/zh/yaml.md")}),process.exit(1)}}G.yamlLoad=uh;function Or(i,r){r===void 0&&(r=!1);var s=Me.default.readFileSync(i,"utf8"),u=r?JSON.parse(s):uh(i);if(!u)return!1;for(var l in u)if(u[l].Component&&u[l].Provider&&u[l].Properties)return!0;return u.hasOwnProperty("edition")}function ah(){if(process.env.serverless_devs_temp_template)return process.env.serverless_devs_temp_template;var i=process.cwd(),r=process.argv.includes("-t")?"-t":process.argv.includes("--template")?"--template":null,s=r?process.argv.indexOf(r):-1;if(s!==-1){var u=s+1,l=process.argv[u];if(l&&(l.endsWith(".yaml")||l.endsWith(".yml")||l.endsWith(".json"))){var f=!!l.endsWith(".json");if(Me.default.existsSync(de.default.join(i,l))&&Or(de.default.join(i,l),f)){process.argv.splice(s,2);var _=JSON.parse(process.env.serverless_devs_temp_argv);return _.splice(_.indexOf(r),2),process.env.serverless_devs_temp_argv=JSON.stringify(_),process.env.serverless_devs_temp_template=de.default.join(i,l),de.default.join(i,l)}else if(Me.default.existsSync(l)&&Or(l,f)){process.argv.splice(s,2);var _=JSON.parse(process.env.serverless_devs_temp_argv);return _.splice(_.indexOf(r),2),process.env.serverless_devs_temp_argv=JSON.stringify(_),process.env.serverless_devs_temp_template=l,l}}}return Me.default.existsSync(de.default.join(i,"s.yaml"))&&Or(de.default.join(i,"s.yaml"))?(process.env.serverless_devs_temp_template=de.default.join(i,"s.yaml"),de.default.join(i,"s.yaml")):Me.default.existsSync(de.default.join(i,"s.yml"))&&Or(de.default.join(i,"s.yml"))?(process.env.serverless_devs_temp_template=de.default.join(i,"s.yml"),de.default.join(i,"s.yml")):Me.default.existsSync(de.default.join(i,"s.json"))&&Or(de.default.join(i,"s.json"),!0)?(process.env.serverless_devs_temp_template=de.default.join(i,"s.json"),de.default.join(i,"s.json")):null}G.checkAndReturnTemplateFile=ah;function lh(i){return Me.default.existsSync(i)?i:null}G.checkTemplateFile=lh;function fh(i,r){r===void 0&&(r=" ");for(var s="",u=0;u<i;u++)s=s+r;return s}G.printn=fh;function ch(){return"en"}G.getLang=ch;function Ho(i,r){var s=/\{\{(.*?)\}\}/g,u=i.match(s);if(u)for(var l=0;l<u.length;l++){var f=u[l].replace(/{{|}}/g,""),_=Fo.default.trim(f.split("|")[0]);r[_]&&(i=i.replace(u[l],r[_]))}return i}G.replaceFun=Ho;function hh(i){var r=/\{\{(.*?)\}\}/g,s=i.match(r);return s?s.filter(function(u){return u}).map(function(u){var l=u.replace(/{{|}}/g,""),f=l.split("|");return{name:Fo.default.trim(f[0]),desc:Fo.default.trim(f[1])}}):[]}G.getTemplatekey=hh;function ph(i,r){i.forEach(function(s){if(Me.default.existsSync(s)){var u=Me.default.readFileSync(s,"utf-8"),l=Ho(u,r);Me.default.writeFileSync(s,l,"utf-8")}})}G.replaceTemplate=ph;function dh(i){if(!i)return i;var r=i.slice(-4);return"***********"+r}G.mark=dh;function Mw(i){return Dw.default.platform()==="win32"?"":i}G.emoji=Mw;G.default={checkAndReturnTemplateFile:ah,checkTemplateFile:lh,printn:fh,mark:dh,getLang:ch,replaceTemplate:ph,replaceFun:Ho,getTemplatekey:hh}});var gh=T(Wo=>{"use strict";Object.defineProperty(Wo,"__esModule",{value:!0});Wo.default={clean_up_the_environment:"\u6E05\u7406\u73AF\u5883",display_help_for_command:"\u663E\u793A\u547D\u4EE4\u5E2E\u52A9",remove_components:"\u5220\u9664\u7EC4\u4EF6",delete_the_file_under_the_cache:"\u5220\u9664\u7F13\u5B58\u91CC\u7684\u7684<dirname>\u6587\u4EF6",record_your_log_information:"\u662F\u5426\u8BB0\u5F55\u60A8\u7684\u65E5\u5FD7\u4FE1\u606F\uFF1F",init_pproject_deploy_tip:"\u662F\u5426\u7ACB\u5373\u90E8\u7F72\u8BE5\u9879\u76EE\uFF1F",tip_for_a_serverless_project:"\u68C0\u6D4B\u5230\u5F53\u524D\u76EE\u5F55\u4E0B\u5DF2\u5B58\u5728\u4E00\u4E2AServerless-Devs\u9879\u76EE\uFF0C\u8BF7\u901A\u8FC7 's deploy' \u8FDB\u884C\u90E8\u7F72\u6216\u901A\u8FC7 's -h' \u83B7\u53D6\u66F4\u591A\u4FE1\u606F",create_a_new_project:"\u672A\u68C0\u6D4B\u5230 Serverless-Devs \u9879\u76EE\uFF0C\u662F\u5426\u65B0\u5EFA\u4E00\u4E2A\u9879\u76EE\uFF1F",en:"English (en)",zh:"\u4E2D\u6587 (zh)",select_current_language:"\u8BF7\u9009\u62E9\u5F53\u524D\u8BED\u8A00","app-tip":"\u8BF7\u9009\u62E9\u60A8\u5E0C\u671B\u521B\u5EFA\u7684 Serverless-Devs \u5E94\u7528","template-tip":"\u8BF7\u9009\u62E9\u60A8\u559C\u6B22\u7684\u6A21\u7248","fc-runtime-starter":"fc-runtime-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A FC \u51FD\u6570","fc-custom-container-stater":"fc-custom-container-stater - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A custom-container \u5E94\u7528",web:"web-framework-stater - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A Web \u6846\u67B6","static-site":"static-website-stater - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u9759\u6001\u7F51\u7AD9","best-practice":"serverless-best-practice - \u5FEB\u901F\u4F53\u9A8C Serverless \u6700\u4F73\u5B9E\u8DF5","devs-template":"Serverless Devs \u5F00\u53D1\u6A21\u677F","fc-http-nodejs":"fc-http-nodejs - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A nodejs12 \u51FD\u6570","fc-http-python":"fc-http-python - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A python3 \u51FD\u6570","fc-http-java":"fc-http-java - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A java8 \u51FD\u6570","fc-custom-container-event-python3":"fc-custom-container-event-python3 - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7\u4E8B\u4EF6\u89E6\u53D1\u7684 python3 \u5E94\u7528","fc-custom-container-event-cpp":"fc-custom-container-event-cpp - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7\u4E8B\u4EF6\u89E6\u53D1\u7684 cpp \u5E94\u7528","fc-custom-container-http-springboot":"fc-custom-container-http-springboot - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7 HTTP \u8BF7\u6C42\u89E6\u53D1\u7684 springboot \u5E94\u7528","fc-custom-container-http-aspdotnetcore":"fc-custom-container-http-aspdotnetcore - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u901A\u8FC7 HTTP \u8BF7\u6C42\u89E6\u53D1\u7684 aspdotnetcore \u5E94\u7528","express-starter":"express-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A express \u57FA\u7840\u5E94\u7528","koa-starter":"koa-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A koa \u57FA\u7840\u5E94\u7528","nuxtjs-starter":"nuxtjs-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A nuxtjs \u57FA\u7840\u5E94\u7528","eggjs-starter":"eggjs-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A eggjs \u57FA\u7840\u5E94\u7528","flask-starter":"flask-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A flask \u57FA\u7840\u5E94\u7528","SpringBoot-starter":"SpringBoot-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A SpringBoot \u57FA\u7840\u5E94\u7528","Zblog-starter":"Zblog-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A Zblog \u57FA\u7840\u5E94\u7528","website-starter":"website-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u9759\u6001\u7F51\u7AD9","react-starter":"react-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A React.js \u5E94\u7528","vue-starter":"vue-starter - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A Vue.js \u5E94\u7528",puppeteer:"puppeteer - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u57FA\u4E8E puppeteer \u622A\u56FE\u7684 Web \u5E94\u7528",ffmpeg:"ffmpeg - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u57FA\u4E8E ffmpeg \u5B9E\u73B0\u97F3\u89C6\u9891\u5904\u7406\u5E94\u7528",pdf2Img:"pdf2Img - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A pdf \u8F6C\u56FE\u7247\u5E94\u7528",tensorflow:"tensorflow - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A tensorflow \u5E94\u7528",todoList:"todoList - \u5FEB\u901F\u90E8\u7F72\u4E00\u4E2A\u57FA\u4E8E nodejs \u7684\u7F51\u9875 TodoList \u5E94\u7528"}});var _h=T(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.default={clean_up_the_environment:"Clean up the environment",display_help_for_command:"Display help for command",remove_components:"Remove component (like: fc, fc@0.0.1)",delete_the_file_under_the_cache:"Delete the <dirname> file in the cache",record_your_log_information:"Do you record your log information?",init_pproject_deploy_tip:"Do you want to deploy the project immediately?",tip_for_a_serverless_project:"A Serverless-Devs project is detected in the current directory, please deploy via 's deploy' or get more information via 's -h'",create_a_new_project:"No Serverless-Devs project is currently detected. Do you want to create a new project?",en:"English (en)",zh:"Chinese (zh)",select_current_language:"Please select current language","app-tip":"Hello, serverlesser. Which template do you like?","template-tip":"Which template do you like?","fc-runtime-starter":"fc-runtime-starter - Deploy FC function in 5 minutes","fc-custom-container-stater":"fc-custom-container-stater - Deploy FC function with custom-container",web:"web-framework-stater-Quickly deploy a web framework","static-site":"static-website-stater-Quickly deploy a static website","best-practice":"serverless-best-practice-Quickly experience serverless best practices","devs-template":"Serverless Develop scaffold","fc-http-nodejs":"fc-http-nodejs - Deploy FC nodejs12 runtime function","fc-http-python":"fc-http-python - Deploy FC python3 runtime function","fc-http-java":"fc-http-java - Deploy FC java8 runtime function","fc-custom-container-event-python3":"fc-custom-container-event-python3 - Deploy python3 event-triggered application","fc-custom-container-event-cpp":"fc-custom-container-event-cpp - Deploy cpp event-triggered application","fc-custom-container-http-springboot":"fc-custom-container-http-springboot - Deploy springboot HTTP Request-triggered application","fc-custom-container-http-aspdotnetcore":"fc-custom-container-http-aspdotnetcore - Deploy dotnetcore HTTP Request-triggered application","express-starter":"express-starter - Deploy express application","koa-starter":"koa-starter - Deploy koa application","nuxtjs-starter":"nuxtjs-starter - Deploy nuxtjs application","eggjs-starter":"eggjs-starter - Deploy eggjs application","flask-starter":"flask-starter - Deploy flask application","SpringBoot-starter":"SpringBoot-starter - Deploy SpringBoot application","Zblog-starter":"Zblog-starter - Deploy Zblog application","website-starter":"website-starter - Deploy static website","react-starter":"react-starter - Deploy React.js application","vue-starter":"vue-starter - Deploy Vue.js application",puppeteer:"puppeteer - Deploy screenshot application base on puppeteer + fc",ffmpeg:"ffmpeg - Deploy audio and video processing application base on ffmpeg + fc",pdf2Img:"pdf2Img - Deploy pdf to images application",tensorflow:"tensorflow - Deploy tensorflow application",todoList:"todoList - Deploy todoList application"}});var vh=T(Sr=>{"use strict";var mh=Sr&&Sr.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Sr,"__esModule",{value:!0});var Hw=Ar(),Ww=mh(gh()),Gw=mh(_h()),Uo={en:Gw.default,zh:Ww.default},Uw=function(i){var r=(0,Hw.getLang)(),s=Uo[r]?Uo[r][i]:Uo.en[i];return s||i};Sr.default=Uw});var Eh=T(Rr=>{"use strict";var Bw=Rr&&Rr.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Rr,"__esModule",{value:!0});var yh=Bw(lt()),jw=yh.default.Logger,Xw=yh.default.spinner,un=new jw("S-CLI"),zw=function(){function i(){}return i.log=function(r){un.log(r)},i.info=function(r){un.info(r)},i.debug=function(r){un.debug(r)},i.error=function(r){un.error(r)},i.warning=function(r){un.warn(r)},i.success=function(r){un.log(r,"green")},i.spinner=function(r){return Xw(r)},i.output=function(r){return un.output(r)},i}();Rr.default=zw});"use strict";var Ir=exports&&exports.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0});var Vw=Ir($l()),br=Ir(lt()),Ui=Ir(vh()),ht=Ir(require("path")),Fn=Ir(Eh()),Yw=Do(),Kw=Ar(),Mn=br.default.rimraf,Zw=br.default.minimist,Bo=br.default.fse,kw=br.default.colors,Jw=br.default.getRootHome,Qw=`Clean up the cache related functions of serverless devs. You can clean up the environment, unused dependent packages and related cache contents through this command.
46
46
 
47
47
  Example:
48
48
  $ s clean --component fc-api