@nathapp/na-cli 1.0.1 → 1.0.2

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 CHANGED
@@ -1,26 +1,94 @@
1
- ## na-cli
1
+ # Nathapp CLI (na-cli) Documentation
2
2
 
3
- Command line for create a project with your own templates, and other template job
3
+ The Nathapp CLI is a development utility designed to scaffold projects from templates and manage environment variable conversions between `.env` and YAML formats.
4
4
 
5
- 1. Note: when `npm publish`, npm will ignore files inside .npmignore which will cause missing files on generated projects, so please rename .npmignore to .npmignore-rename, template engine will auto rename .npmignore-rename back .npmignore
5
+ ## Installation & Setup
6
6
 
7
- ## Template Generation Version 1.0.0
7
+ If installed as a global package:
8
+ ```bash
9
+ na --help
10
+ ```
8
11
 
9
- 1. ts-library template 1.0.0
10
- 2. mxw-base-api-express template 1.0.0
11
- 3. db-schema 1.0.0
12
- 4. k8s-deployments 1.0.0
13
- 5. nestjs-api 1.0.0
14
- - with nestjs ^10.0.0
15
- - with @nathapp/common ^0.1.13
16
- - with @nathapp/nestjs-app ^1.0.0-rc.10
17
- - with @nathapp/nestjs-auth ^1.0.0-rc.28
18
- - with @nathapp/nestjs-common ^1.0.1-rc.28
19
- - with @nathapp/nestjs-data ^1.0.0-rc.13
20
- - with @nathapp/nestjs-microservices ^1.0.0-rc.14
21
- 6. nestjs-library 1.0.0
22
- - with nestjs ^10.0.0
12
+ ## Commands
23
13
 
24
- ## Inspired by https://github.com/pongsatt/mycli
14
+ ### 1. Project Generation (`generate`, `gen`)
15
+ Scaffold a new project from a pre-defined template.
25
16
 
26
- chatbot: 1
17
+ #### Interactive Mode (Default)
18
+ Simply run the command and follow the prompts:
19
+ ```bash
20
+ na gen
21
+ ```
22
+
23
+ #### Non-Interactive / Flag Mode
24
+ You can provide answers directly via command-line flags. If both `--template` and `--name` are provided, the CLI enters **Silent Mode**, suppressing all interactive prompts and using professional defaults for missing values.
25
+
26
+ **Common Flags:**
27
+ - `-t, --template`: Name of the template (e.g., `nestjs-api`, `k8s-helm-chart`).
28
+ - `-n, --name`: The name of the new project folder/package.
29
+ - `--author`: Project author name (defaults to `na-cli`).
30
+ - `-i, --install`: (Boolean) Run `npm install` after generation. No value needed (default: `false`).
31
+
32
+ **Template-Specific Flags:**
33
+
34
+ * **NestJS API (`nestjs-api`):**
35
+ - `--nestjs_api_platform`: Choose `express` or `fastify` (default: `fastify`).
36
+ * **Database Schema (`db-schema`):**
37
+ - `--db_master`: The master database name (default: `master`).
38
+ * **K8s Helm Chart (`k8s-helm-chart`):**
39
+ - `--k8s_chart_registry_host`: `aliyun`, `aws`, `dockerhub`, or `custom`.
40
+ - `--k8s_image_name`: Full image name (default: `bitnami/kafka`).
41
+ - `--k8s_image_version`: Version tag (default: `1.0.0`).
42
+ - `--k8s_chart_kind`: `Deployment`, `StatefulSet`, or `CronJob` (default: `Deployment`).
43
+ - `--k8s_chart_registry_region`: (For Aliyun/AWS) default: `ap-southeast-3`.
44
+ - `--k8s_chart_aws_account_id`: (For AWS) default: `123456789`.
45
+
46
+ **Example:**
47
+ ```bash
48
+ na gen -t nestjs-api -n my-backend -i
49
+ ```
50
+
51
+ ---
52
+
53
+ ### 2. Smart Pathing (K8s)
54
+
55
+ The CLI understands the relationship between infrastructure projects and services. When generating a `k8s-helm-chart` inside a directory created by `k8s-deployment`, it will automatically detect and nest the new chart in the appropriate sub-folder:
56
+
57
+ 1. `services/charts/[name]` (Highest priority)
58
+ 2. `resources/charts/[name]`
59
+ 3. `services/[name]`
60
+ 4. `resources/[name]`
61
+
62
+ This allows you to manage modular services within a master deployment project without manually navigating to sub-folders.
63
+
64
+ ---
65
+
66
+ ### 3. Environment Variable Conversion
67
+
68
+ #### `.env` to YAML (`env-yml`)
69
+ Convert a standard dotenv file into a Nathapp-compatible YAML configuration.
70
+ ```bash
71
+ na env-yml -i .env -o config.yaml
72
+ ```
73
+ - `-i, --input`: Input path (default: `.env`).
74
+ - `-o, --output`: Output path (default: `config.yaml`).
75
+
76
+ #### YAML to `.env` (`yml-env`)
77
+ Convert a YAML configuration back into a standard dotenv file.
78
+ ```bash
79
+ na yml-env -i config.yaml -o .env
80
+ ```
81
+ - `-i, --input`: Input path (default: `config.yaml`).
82
+ - `-o, --output`: Output path (default: `.env`).
83
+
84
+ ---
85
+
86
+ ## Available Templates
87
+ The CLI currently supports the following project types:
88
+ - `db-schema`: Database migration and schema projects.
89
+ - `k8s-deployment`: Basic Kubernetes manifests.
90
+ - `k8s-helm-chart`: Comprehensive Helm chart bootstrapping.
91
+ - `mxw-base-api-express`: Express-based API boilerplate.
92
+ - `ts-library`: TypeScript library project.
93
+ - `nestjs-api`: Professional NestJS setup with platform choices.
94
+ - `vuexy-portal`: Frontend portal based on the Vuexy template.
package/dist/index.js CHANGED
@@ -56,14 +56,48 @@ yargs.version(version).help().alias("help", "h").showHelpOnFail(true)
56
56
  .command({
57
57
  command: 'generate',
58
58
  describe: 'generate project template',
59
- builder: function (yargs) { return yargs.options({}); },
59
+ builder: function (yargs) { return yargs.options({
60
+ template: {
61
+ alias: 't',
62
+ describe: 'template name',
63
+ type: 'string'
64
+ },
65
+ name: {
66
+ alias: 'n',
67
+ describe: 'project name',
68
+ type: 'string'
69
+ },
70
+ install: {
71
+ alias: 'i',
72
+ describe: 'run npm install after generation',
73
+ type: 'boolean',
74
+ default: false
75
+ }
76
+ }); },
60
77
  handler: function (argv) {
61
78
  return runGenerateTemplate();
62
79
  }
63
80
  }).command({
64
81
  command: 'gen',
65
82
  describe: 'generate project template, "generate" command alias',
66
- builder: function (yargs) { return yargs.options({}); },
83
+ builder: function (yargs) { return yargs.options({
84
+ template: {
85
+ alias: 't',
86
+ describe: 'template name',
87
+ type: 'string'
88
+ },
89
+ name: {
90
+ alias: 'n',
91
+ describe: 'project name',
92
+ type: 'string'
93
+ },
94
+ install: {
95
+ alias: 'i',
96
+ describe: 'run npm install after generation',
97
+ type: 'boolean',
98
+ default: false
99
+ }
100
+ }); },
67
101
  handler: function (argv) {
68
102
  return runGenerateTemplate();
69
103
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,16 +6,17 @@
6
6
  "private": true,
7
7
  "license": "UNLICENSED",
8
8
  "scripts": {
9
+ "clean": "rimraf dist/ .turbo/",
9
10
  "build": "nest build",
10
11
  "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
11
- "start": "dotenvx run --env-file=.env.local --env-file=.env -- nest start",
12
- "start:dev": "dotenvx run --env-file=.env.local --env-file=.env -- nest start --watch",
13
- "start:debug": "dotenvx run --env-file=.env.local --env-file=.env -- nest start --debug --watch",
14
- "start:prod": "ENV_NAME=production node dist/main",
12
+ "start": "nest start --env-file=.env --env-file=.env.local",
13
+ "start:dev": "nest start --env-file=.env --env-file=.env.local --watch",
14
+ "start:debug": "nest start --env-file=.env --env-file=.env.local --debug --watch",
15
+ "start:prod": "ENV_NAME=production bun dist/main",
15
16
  "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
16
- "test": "jest",
17
- "test:watch": "jest --watch",
18
- "test:cov": "jest --coverage",
17
+ "test": "jest --config ./test/jest-test.json",
18
+ "test:cov": "jest --config ./test/jest-test.json --coverage",
19
+ "test:watch": "jest --config ./test/jest-test.json --watch",
19
20
  "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
20
21
  "test:e2e": "jest --config ./test/jest-e2e.json",
21
22
  "typeorm": "ts-node ./node_modules/typeorm/cli",
@@ -29,17 +30,18 @@
29
30
  <%if (isFastify) { -%>"@fastify/helmet": "^11.1.1",<% }-%>
30
31
  <%if (isFastify) { -%>"@fastify/static": "^6.11.2",<% }-%>
31
32
  "@nathapp/common": "^0.1.14",
32
- "@nathapp/nestjs-app": "^1.0.1-rc.2",
33
- "@nathapp/nestjs-auth": "^1.0.1-rc.4",
34
- "@nathapp/nestjs-common": "^1.0.2-rc.0",
35
- "@nathapp/nestjs-data": "^1.0.1-rc.1",
36
- "@nathapp/nestjs-microservices": "^1.0.1-rc.2",
37
- "@nestjs/common": "^10.0.0",
38
- "@nestjs/config": "^3.0.0",
39
- "@nestjs/core": "^10.0.0",
40
- "@nestjs/passport": "^10.0.0",
41
- "@nestjs/platform-<%= nestjsPlatform %>": "^10.0.0",
42
- "@nestjs/swagger": "^7.0.0",
33
+ "@nathapp/nestjs-app": "^2.0.3",
34
+ "@nathapp/nestjs-auth": "^2.0.3",
35
+ "@nathapp/nestjs-common": "^2.0.3",
36
+ "@nathapp/nestjs-data": "^2.0.3",
37
+ "@nathapp/nestjs-logging": "^2.0.3",
38
+ "@nathapp/nestjs-microservices": "^2.0.3",
39
+ "@nestjs/common": "^11.0.0",
40
+ "@nestjs/config": "^4.0.0",
41
+ "@nestjs/core": "^11.0.0",
42
+ "@nestjs/passport": "^11.0.0",
43
+ "@nestjs/platform-<%= nestjsPlatform %>": "^11.0.0",
44
+ "@nestjs/swagger": "^11.0.0",
43
45
  "class-transformer": "^0.5.1",
44
46
  "class-validator": "^0.14.0",
45
47
  <%if (!isFastify) { -%>"helmet": "^7.1.0",<% }-%>
@@ -49,24 +51,23 @@
49
51
  "rxjs": "^7.2.0"
50
52
  },
51
53
  "devDependencies": {
52
- "@dotenvx/dotenvx": "^0.37.0",
53
- "@golevelup/ts-jest": "^0.4.0",
54
- "@nestjs/cli": "^10.0.0",
55
- "@nestjs/schematics": "^10.0.0",
56
- "@nestjs/testing": "^10.0.0",
57
- <%if (!isFastify) { -%>"@types/express": "^4.17.13",<% }-%>
58
- "@types/jest": "29.2.4",
59
- "@types/node": "18.11.18",
54
+ "@golevelup/ts-jest": "^0.6.2",
55
+ "@nestjs/cli": "^11.0.0",
56
+ "@nestjs/schematics": "^11.0.0",
57
+ "@nestjs/testing": "^11.0.0",
58
+ <%if (!isFastify) { -%>"@types/express": "^4.17.13",<% }-%>
59
+ "@types/jest": "^29.5.2",
60
+ "@types/node": "^22.0.0",
60
61
  "@types/supertest": "^2.0.11",
61
- "@typescript-eslint/eslint-plugin": "^5.0.0",
62
- "@typescript-eslint/parser": "^5.0.0",
63
- "eslint": "^8.0.1",
64
- "eslint-config-prettier": "^8.3.0",
65
- "eslint-plugin-prettier": "^4.0.0",
66
- "jest": "29.3.1",
67
- "prettier": "^2.3.2",
62
+ "@typescript-eslint/eslint-plugin": "^7.1.0",
63
+ "@typescript-eslint/parser": "^7.1.0",
64
+ "eslint": "^8.57.0",
65
+ "eslint-config-prettier": "^8.10.2",
66
+ "eslint-plugin-prettier": "^4.2.5",
67
+ "jest": "^29.5.0",
68
+ "prettier": "^3.2.5",
68
69
  "source-map-support": "^0.5.20",
69
- "supertest": "^6.1.3",
70
+ "supertest": "^6.3.3",
70
71
  "ts-jest": "^29.1.0",
71
72
  "ts-loader": "^9.2.3",
72
73
  "ts-node": "^10.0.0",
@@ -0,0 +1,26 @@
1
+ {
2
+ "moduleFileExtensions": [
3
+ "js",
4
+ "json",
5
+ "ts",
6
+ "d.ts"
7
+ ],
8
+ "rootDir": "../",
9
+ "testEnvironment": "node",
10
+ "testRegex": ".spec.ts$",
11
+ "transform": {
12
+ "^.+\\.(t)s$": [
13
+ "ts-jest",
14
+ {
15
+ "diagnostics": true
16
+ }
17
+ ]
18
+ },
19
+ "collectCoverageFrom": [
20
+ "lib/**/*.ts",
21
+ "!**/node_modules/**"
22
+ ],
23
+ "moduleNameMapper": {
24
+ "^@/(.*)$": "<rootDir>/src/$1"
25
+ }
26
+ }
@@ -16,10 +16,10 @@
16
16
  "node": ">=16"
17
17
  },
18
18
  "devDependencies": {
19
- "@golevelup/ts-jest": "^0.3.7",
20
- "@nestjs/platform-express": "^10.0.0",
21
- "@nestjs/platform-fastify": "^10.0.0",
22
- "@nestjs/testing": "^10.0.0",
19
+ "@golevelup/ts-jest": "^0.6.2",
20
+ "@nestjs/platform-express": "^11.0.0",
21
+ "@nestjs/platform-fastify": "^11.0.0",
22
+ "@nestjs/testing": "^11.0.0",
23
23
  "@types/jest": "^29.5.2",
24
24
  "@types/node": "18.11.18",
25
25
  "@types/supertest": "^2.0.12",
@@ -41,8 +41,8 @@
41
41
  },
42
42
  "dependencies": {},
43
43
  "peerDependencies": {
44
- "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0",
45
- "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0",
44
+ "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
45
+ "@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
46
46
  "class-transformer": "*",
47
47
  "class-validator": "*",
48
48
  "rxjs": "*"
@@ -101,7 +101,7 @@ function render(content, data) {
101
101
  exports.render = render;
102
102
  function generateTemplate(templateDir, targetDirectory) {
103
103
  return __awaiter(this, void 0, void 0, function () {
104
- var templateChoices, template_specific, should_ask_install, should_ask_author, QUESTIONS;
104
+ var templateChoices, template_specific, should_ask_install, should_ask_author, QUESTIONS, inputAnswers;
105
105
  return __generator(this, function (_a) {
106
106
  templateChoices = fs.readdirSync(templateDir);
107
107
  template_specific = function (answer, templateName) {
@@ -114,9 +114,13 @@ function generateTemplate(templateDir, targetDirectory) {
114
114
  projectChoice !== TEMPLATE_NAME.K8S_DEPLOYMENT &&
115
115
  projectChoice !== TEMPLATE_NAME.K8S_DEPLOY_CHART;
116
116
  };
117
- should_ask_author = function (answer) {
118
- var projectChoice = answer["template"];
119
- return !yargs.argv['author'] && projectChoice !== TEMPLATE_NAME.DB_SCHEMA
117
+ should_ask_author = function (answers) {
118
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
119
+ if (isNonInteractive)
120
+ return false;
121
+ var projectChoice = answers["template"] || yargs.argv['template'];
122
+ var authorArg = yargs.argv['author'];
123
+ return !authorArg && projectChoice !== TEMPLATE_NAME.DB_SCHEMA
120
124
  && projectChoice !== TEMPLATE_NAME.K8S_DEPLOYMENT &&
121
125
  projectChoice !== TEMPLATE_NAME.K8S_DEPLOY_CHART;
122
126
  };
@@ -126,13 +130,13 @@ function generateTemplate(templateDir, targetDirectory) {
126
130
  type: 'list',
127
131
  message: 'What project template would you like to generate?',
128
132
  choices: templateChoices,
129
- when: function () { return !yargs.argv['template']; }
133
+ when: function (answers) { return !answers['template'] && !yargs.argv['template']; }
130
134
  },
131
135
  {
132
136
  name: 'name',
133
137
  type: 'input',
134
138
  message: 'Project name:',
135
- when: function () { return !yargs.argv['name']; },
139
+ when: function (answers) { return !answers['name'] && !yargs.argv['name']; },
136
140
  validate: function (input) {
137
141
  if (/^([A-Za-z\-\_\d])+$/.test(input))
138
142
  return true;
@@ -144,26 +148,41 @@ function generateTemplate(templateDir, targetDirectory) {
144
148
  name: 'author',
145
149
  type: 'input',
146
150
  message: 'Author:',
147
- when: function (answer) { return should_ask_author(answer); }
151
+ when: function (answers) { return !answers['author'] && should_ask_author(answers); }
148
152
  },
149
153
  {
150
154
  name: "nestjs_api_platform",
151
155
  type: "list",
152
156
  message: "what is the nestjs-api platform?",
153
157
  choices: [NESTJS_API_PLATFORM.FASTIFY, NESTJS_API_PLATFORM.EXPRESS],
154
- when: function (answer) { return template_specific(answer, TEMPLATE_NAME.NESTJS_API); }
158
+ when: function (answers) {
159
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
160
+ if (isNonInteractive)
161
+ return false;
162
+ return !answers['nestjs_api_platform'] && template_specific(answers, TEMPLATE_NAME.NESTJS_API);
163
+ }
155
164
  },
156
165
  {
157
166
  name: "run_install",
158
167
  type: "confirm",
159
168
  message: "Do you want to run npm install after template created?",
160
- when: function (answer) { return should_ask_install(answer); }
169
+ when: function (answers) {
170
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
171
+ if (isNonInteractive)
172
+ return false;
173
+ return !answers['run_install'] && yargs.argv['install'] === undefined && should_ask_install(answers);
174
+ }
161
175
  },
162
176
  {
163
177
  name: "db_master",
164
178
  type: "input",
165
179
  message: "what is the master database name?",
166
- when: function (answer) { return template_specific(answer, TEMPLATE_NAME.DB_SCHEMA); }
180
+ when: function (answers) {
181
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
182
+ if (isNonInteractive)
183
+ return false;
184
+ return !answers['db_master'] && template_specific(answers, TEMPLATE_NAME.DB_SCHEMA);
185
+ }
167
186
  },
168
187
  /** TEMPLATE_NAME.K8S_DEPLOY_CHART */
169
188
  {
@@ -171,56 +190,77 @@ function generateTemplate(templateDir, targetDirectory) {
171
190
  type: "list",
172
191
  message: "what is the registry host?",
173
192
  choices: [K8S_REGISTRY_HOST.ALIYUN, K8S_REGISTRY_HOST.AWS, K8S_REGISTRY_HOST.DOCKER_HUB, K8S_REGISTRY_HOST.CUSTOM],
174
- when: function (answer) { return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
193
+ when: function (answers) { return !answers['k8s_chart_registry_host'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
175
194
  },
176
195
  {
177
196
  name: "k8s_chart_aws_account_id",
178
197
  type: "input",
179
198
  message: "please enter AWS Account ID?",
180
- when: function (answer) {
181
- var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
182
- return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART) && registryHost == K8S_REGISTRY_HOST.AWS;
199
+ default: "123456789",
200
+ when: function (answers) {
201
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
202
+ if (isNonInteractive)
203
+ return false;
204
+ var registryHost = (answers === null || answers === void 0 ? void 0 : answers.k8s_chart_registry_host) || yargs.argv['k8s_chart_registry_host'];
205
+ return !answers['k8s_chart_aws_account_id'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART) && registryHost == K8S_REGISTRY_HOST.AWS;
183
206
  }
184
207
  },
185
208
  {
186
209
  name: "k8s_chart_custom_registry_host",
187
210
  type: "input",
188
211
  message: "please enter custom registry host",
189
- when: function (answer) {
190
- var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
191
- return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART) && registryHost == K8S_REGISTRY_HOST.CUSTOM;
212
+ when: function (answers) {
213
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
214
+ if (isNonInteractive)
215
+ return false;
216
+ var registryHost = (answers === null || answers === void 0 ? void 0 : answers.k8s_chart_registry_host) || yargs.argv['k8s_chart_registry_host'];
217
+ return !answers['k8s_chart_custom_registry_host'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART) && registryHost == K8S_REGISTRY_HOST.CUSTOM;
192
218
  }
193
219
  },
194
220
  {
195
221
  name: "k8s_chart_registry_region",
196
222
  type: "list",
197
223
  message: "what is the registry region?",
198
- choices: function (answer) {
199
- var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
224
+ default: "ap-southeast-3",
225
+ choices: function (answers) {
226
+ var registryHost = (answers === null || answers === void 0 ? void 0 : answers.k8s_chart_registry_host) || yargs.argv['k8s_chart_registry_host'];
200
227
  if (registryHost == K8S_REGISTRY_HOST.ALIYUN)
201
228
  return ALIYUN_REGION;
202
229
  else if (registryHost == K8S_REGISTRY_HOST.AWS)
203
230
  return AWS_REGION;
204
231
  return ["none"];
205
232
  },
206
- when: function (answer) {
207
- var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
208
- return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART) && (registryHost == K8S_REGISTRY_HOST.ALIYUN || registryHost == K8S_REGISTRY_HOST.AWS);
233
+ when: function (answers) {
234
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
235
+ if (isNonInteractive)
236
+ return false;
237
+ var registryHost = (answers === null || answers === void 0 ? void 0 : answers.k8s_chart_registry_host) || yargs.argv['k8s_chart_registry_host'];
238
+ return !answers['k8s_chart_registry_region'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART) && (registryHost == K8S_REGISTRY_HOST.ALIYUN || registryHost == K8S_REGISTRY_HOST.AWS);
209
239
  }
210
240
  },
211
241
  {
212
242
  name: "k8s_image_name",
213
243
  type: "input",
214
244
  message: "what is the image name include namespace (eg: bitnami/kafka)?",
215
- when: function (answer) {
216
- return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART);
245
+ default: "bitnami/kafka",
246
+ when: function (answers) {
247
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
248
+ if (isNonInteractive)
249
+ return false;
250
+ return !answers['k8s_image_name'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART);
217
251
  }
218
252
  },
219
253
  {
220
254
  name: "k8s_image_version",
221
255
  type: "input",
222
256
  message: "what is the image version?",
223
- when: function (answer) { return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
257
+ default: "1.0.0",
258
+ when: function (answers) {
259
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
260
+ if (isNonInteractive)
261
+ return false;
262
+ return !answers['k8s_image_version'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART);
263
+ }
224
264
  },
225
265
  {
226
266
  name: "k8s_chart_kind",
@@ -228,12 +268,18 @@ function generateTemplate(templateDir, targetDirectory) {
228
268
  message: "what is the chart kind?",
229
269
  choices: ["Deployment", "StatefulSet", "CronJob"],
230
270
  default: "Deployment",
231
- when: function (answer) { return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
271
+ when: function (answers) {
272
+ var isNonInteractive = !!(yargs.argv['template'] && yargs.argv['name']);
273
+ if (isNonInteractive)
274
+ return false;
275
+ return !answers['k8s_chart_kind'] && template_specific(answers, TEMPLATE_NAME.K8S_DEPLOY_CHART);
276
+ }
232
277
  },
233
278
  /** END TEMPLATE_NAME.K8S_DEPLOY_CHART */
234
279
  ];
235
280
  console.log("Welcome to ".concat(name, " version ").concat(version));
236
- return [2 /*return*/, inquirer.prompt(QUESTIONS)
281
+ inputAnswers = Object.assign({}, yargs.argv);
282
+ return [2 /*return*/, inquirer.prompt(QUESTIONS, inputAnswers)
237
283
  .then(function (answers) {
238
284
  answers = Object.assign({}, answers, yargs.argv);
239
285
  // @ts-ignore
@@ -241,16 +287,35 @@ function generateTemplate(templateDir, targetDirectory) {
241
287
  // @ts-ignore
242
288
  var projectName = answers['name'];
243
289
  // @ts-ignore
244
- var author = answers['author'];
290
+ var author = answers['author'] || yargs.argv['author'] || "na-cli";
245
291
  // @ts-ignore
246
- var runInstall = answers['run_install'] || false;
247
- var masterDbName = answers['db_master'] || "master";
292
+ var runInstall = answers['run_install'] || yargs.argv['install'] || false;
293
+ var masterDbName = answers['db_master'] || yargs.argv['db_master'] || "master";
248
294
  var templatePath = path.join(templateDir, projectChoice);
249
- var targetPath = path.join(targetDirectory, projectName);
295
+ var finalTargetDirectory = targetDirectory;
296
+ if (projectChoice === TEMPLATE_NAME.K8S_DEPLOY_CHART) {
297
+ var servicesChartsPath = path.join(targetDirectory, 'services', 'charts');
298
+ var resourcesChartsPath = path.join(targetDirectory, 'resources', 'charts');
299
+ var servicesPath = path.join(targetDirectory, 'services');
300
+ var resourcesPath = path.join(targetDirectory, 'resources');
301
+ if (fs.existsSync(servicesChartsPath)) {
302
+ finalTargetDirectory = servicesChartsPath;
303
+ }
304
+ else if (fs.existsSync(resourcesChartsPath)) {
305
+ finalTargetDirectory = resourcesChartsPath;
306
+ }
307
+ else if (fs.existsSync(servicesPath)) {
308
+ finalTargetDirectory = servicesPath;
309
+ }
310
+ else if (fs.existsSync(resourcesPath)) {
311
+ finalTargetDirectory = resourcesPath;
312
+ }
313
+ }
314
+ var targetPath = path.join(finalTargetDirectory, projectName);
250
315
  var templateConfig = getTemplateConfig(templatePath);
251
316
  var k8sChartParams = getK8sDeployChartParams(answers);
252
317
  var nestjsApiParams = getNestJsApiParams(answers);
253
- var params = __assign(__assign({ masterDbName: masterDbName }, k8sChartParams), nestjsApiParams);
318
+ var params = __assign(__assign(__assign({ masterDbName: masterDbName }, k8sChartParams), nestjsApiParams), { k8s_image_name: answers['k8s_image_name'] || yargs.argv['k8s_image_name'] || "bitnami/kafka", k8s_image_version: answers['k8s_image_version'] || yargs.argv['k8s_image_version'] || "1.0.0", k8s_chart_kind: answers['k8s_chart_kind'] || yargs.argv['k8s_chart_kind'] || "Deployment", k8s_chart_registry_region: answers['k8s_chart_registry_region'] || yargs.argv['k8s_chart_registry_region'] || "ap-southeast-3", k8s_chart_aws_account_id: answers['k8s_chart_aws_account_id'] || yargs.argv['k8s_chart_aws_account_id'] || "123456789" });
254
319
  var options = {
255
320
  projectName: projectName,
256
321
  templateName: projectChoice,
@@ -261,7 +326,7 @@ function generateTemplate(templateDir, targetDirectory) {
261
326
  if (!createProject(targetPath)) {
262
327
  return;
263
328
  }
264
- createDirectoryContents(targetDirectory, templatePath, projectName, templateConfig, author, params);
329
+ createDirectoryContents(finalTargetDirectory, templatePath, projectName, templateConfig, author, params);
265
330
  if (runInstall && !postProcess(options)) {
266
331
  return;
267
332
  }
@@ -364,32 +429,41 @@ function createDirectoryContents(targetDirectory, projectTemplatePath, projectNa
364
429
  function getK8sDeployChartParams(answer) {
365
430
  var params = {};
366
431
  // @ts-ignore
367
- var projectChoice = answer['template'];
368
- if (projectChoice != TEMPLATE_NAME.K8S_DEPLOY_CHART || !answer) {
432
+ var projectChoice = answer['template'] || yargs.argv['template'];
433
+ if (projectChoice != TEMPLATE_NAME.K8S_DEPLOY_CHART) {
369
434
  return params;
370
435
  }
371
- if (answer.k8s_chart_registry_host == K8S_REGISTRY_HOST.ALIYUN) {
372
- params.containerRegistry = "registry-intl.".concat(answer.k8s_chart_registry_region, ".aliyuncs.com/").concat(answer.k8s_image_name);
436
+ var registryHost = answer['k8s_chart_registry_host'] || yargs.argv['k8s_chart_registry_host'];
437
+ var region = answer['k8s_chart_registry_region'] || yargs.argv['k8s_chart_registry_region'] || "ap-southeast-3";
438
+ var imageName = answer['k8s_image_name'] || yargs.argv['k8s_image_name'] || "bitnami/kafka";
439
+ var awsId = answer['k8s_chart_aws_account_id'] || yargs.argv['k8s_chart_aws_account_id'] || "123456789";
440
+ var customHost = answer['k8s_chart_custom_registry_host'] || yargs.argv['k8s_chart_custom_registry_host'];
441
+ if (registryHost == K8S_REGISTRY_HOST.ALIYUN) {
442
+ params.containerRegistry = "registry-intl.".concat(region, ".aliyuncs.com/").concat(imageName);
373
443
  }
374
- else if (answer.k8s_chart_registry_host == K8S_REGISTRY_HOST.AWS) {
375
- params.containerRegistry = "".concat(answer.k8s_chart_aws_account_id.replace("-", ""), ".dkr.ecr.").concat(answer.k8s_chart_registry_region, ".amazonaws.com/").concat(answer.k8s_image_name);
444
+ else if (registryHost == K8S_REGISTRY_HOST.AWS) {
445
+ params.containerRegistry = "".concat(awsId.replace("-", ""), ".dkr.ecr.").concat(region, ".amazonaws.com/").concat(imageName);
376
446
  }
377
- else if (answer.k8s_chart_registry_host == K8S_REGISTRY_HOST.CUSTOM) {
378
- params.containerRegistry = "".concat(answer.k8s_chart_custom_registry_host, "/").concat(answer.k8s_image_name);
447
+ else if (registryHost == K8S_REGISTRY_HOST.CUSTOM) {
448
+ params.containerRegistry = "".concat(customHost, "/").concat(imageName);
449
+ }
450
+ else {
451
+ // Fallback for Dockerhub or unspecified
452
+ params.containerRegistry = imageName;
379
453
  }
380
- params.chartName = answer.name;
381
- params.containerVersion = answer.k8s_image_version;
382
- params.chartKind = answer.k8s_chart_kind;
454
+ params.chartName = answer.name || yargs.argv['name'];
455
+ params.containerVersion = answer.k8s_image_version || yargs.argv['k8s_image_version'] || "1.0.0";
456
+ params.chartKind = answer.k8s_chart_kind || yargs.argv['k8s_chart_kind'] || "Deployment";
383
457
  return params;
384
458
  }
385
459
  function getNestJsApiParams(answer) {
386
460
  var params = {};
387
461
  // @ts-ignore
388
- var projectChoice = answer['template'];
389
- if (projectChoice != TEMPLATE_NAME.NESTJS_API || !answer) {
462
+ var projectChoice = answer['template'] || yargs.argv['template'];
463
+ if (projectChoice != TEMPLATE_NAME.NESTJS_API) {
390
464
  return params;
391
465
  }
392
- params.nestjsPlatform = answer.nestjs_api_platform;
466
+ params.nestjsPlatform = answer.nestjs_api_platform || yargs.argv['nestjs_api_platform'] || NESTJS_API_PLATFORM.FASTIFY;
393
467
  var isFastify = params.nestjsPlatform == NESTJS_API_PLATFORM.FASTIFY;
394
468
  params.isFastify = isFastify;
395
469
  return params;
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA2B;AAC3B,uBAAyB;AACzB,mCAAqC;AACrC,+BAAiC;AACjC,+BAA0B;AAC1B,6BAA+B;AAC/B,2BAA6B;AAEvB,IAAA,KAAoB,OAAO,CAAC,oBAAoB,CAAC,EAA/C,IAAI,UAAA,EAAE,OAAO,aAAkC,CAAC;AAoBxD,wBAAwB;AACxB,IAAY,aAQX;AARD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,kDAAiC,CAAA;IACjC,oDAAmC,CAAA;IACnC,sDAAqC,CAAA;IACrC,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;AACjC,CAAC,EARW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAQxB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACvB,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAED,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,sCAAiB,CAAA;IACjB,gCAAW,CAAA;IACX,6CAAwB,CAAA;IACxB,sCAAiB,CAAA;AACrB,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B;AAED,IAAM,aAAa,GAAG,CAAC;QACnB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,WAAW;KACpB;IACD;QACI,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,cAAc;KACvB,CAAC,CAAA;AAEF,IAAM,UAAU,GAAG,CAAC;QAChB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,QAAQ;KACjB,CAAC,CAAA;AAEF,SAAgB,MAAM,CAAC,OAAe,EAAE,IAAkB;IACtD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAFD,wBAEC;AAED,SAAsB,gBAAgB,CAAC,WAAmB,EAAE,eAAuB;;;;YAEzE,eAAe,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE9C,iBAAiB,GAAG,UAAC,MAAW,EAAE,YAAoB;gBACxD,IAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;gBACxC,OAAO,aAAa,IAAI,YAAY,CAAA;YACxC,CAAC,CAAA;YAEK,kBAAkB,GAAG,UAAC,MAAW;gBACnC,IAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;gBACxC,OAAO,aAAa,KAAK,aAAa,CAAC,SAAS;oBAC5C,aAAa,KAAK,aAAa,CAAC,cAAc;oBAC9C,aAAa,KAAK,aAAa,CAAC,gBAAgB,CAAA;YACxD,CAAC,CAAA;YAEK,iBAAiB,GAAG,UAAC,OAAY;gBACnC,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1E,IAAI,gBAAgB;oBAAE,OAAO,KAAK,CAAC;gBAEnC,IAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACpE,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,SAAS,IAAI,aAAa,KAAK,aAAa,CAAC,SAAS;uBACvD,aAAa,KAAK,aAAa,CAAC,cAAc;oBACjD,aAAa,KAAK,aAAa,CAAC,gBAAgB,CAAA;YACxD,CAAC,CAAA;YAEK,SAAS,GAAG;gBACd;oBACI,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,mDAAmD;oBAC5D,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,UAAC,OAAY,IAAK,OAAA,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAA/C,CAA+C;iBAC1E;gBACD;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,UAAC,OAAY,IAAK,OAAA,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAvC,CAAuC;oBAC/D,QAAQ,EAAE,UAAC,KAAa;wBACpB,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;4BAAE,OAAO,IAAI,CAAC;;4BAC9C,OAAO,yEAAyE,CAAC;oBAC1F,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,UAAC,OAAY,IAAK,OAAA,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAhD,CAAgD;iBAC3E;gBACD;oBACI,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,kCAAkC;oBAC3C,OAAO,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;oBACnE,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;oBAClG,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,wDAAwD;oBACjE,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACzG,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,mCAAmC;oBAC5C,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;oBACvF,CAAC;iBACJ;gBAGD,qCAAqC;gBACrC;oBACI,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,4BAA4B;oBACrC,OAAO,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC;oBAClH,IAAI,EAAE,UAAC,OAAY,IAAK,OAAA,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAAjG,CAAiG;iBAC5H;gBACD;oBACI,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,8BAA8B;oBACvC,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,IAAM,YAAY,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,KAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBAC/F,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,IAAI,YAAY,IAAI,iBAAiB,CAAC,GAAG,CAAA;oBACtJ,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,gCAAgC;oBACtC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,mCAAmC;oBAC5C,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,IAAM,YAAY,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,KAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBAC/F,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,IAAI,YAAY,IAAI,iBAAiB,CAAC,MAAM,CAAA;oBAC/J,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,2BAA2B;oBACjC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,8BAA8B;oBACvC,OAAO,EAAE,gBAAgB;oBACzB,OAAO,EAAE,UAAC,OAAY;wBAClB,IAAM,YAAY,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,KAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBAC/F,IAAI,YAAY,IAAI,iBAAiB,CAAC,MAAM;4BACxC,OAAO,aAAa,CAAA;6BACnB,IAAI,YAAY,IAAI,iBAAiB,CAAC,GAAG;4BAC1C,OAAO,UAAU,CAAA;wBACrB,OAAO,CAAC,MAAM,CAAC,CAAA;oBACnB,CAAC;oBACD,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,IAAM,YAAY,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,KAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBAC/F,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,MAAM,IAAI,YAAY,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAA;oBACrM,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,+DAA+D;oBACxE,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;oBACnG,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,4BAA4B;oBACrC,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;oBACtG,CAAC;iBACJ;gBACD;oBACI,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,yBAAyB;oBAClC,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC;oBACjD,OAAO,EAAE,YAAY;oBACrB,IAAI,EAAE,UAAC,OAAY;wBACf,IAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1E,IAAI,gBAAgB;4BAAE,OAAO,KAAK,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;oBACnG,CAAC;iBACJ;gBACD,yCAAyC;aAC5C,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,qBAAc,IAAI,sBAAY,OAAO,CAAE,CAAC,CAAC;YAE/C,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAQ,CAAC;YAE1D,sBAAQ,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAS;qBACnD,IAAI,CAAC,UAAC,OAAY;oBACf,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjD,aAAa;oBACb,IAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1C,aAAa;oBACb,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpC,aAAa;oBACb,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;oBACrE,aAAa;oBACb,IAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;oBAC5E,IAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC;oBACjF,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;oBAE3D,IAAI,oBAAoB,GAAG,eAAe,CAAC;oBAC3C,IAAI,aAAa,KAAK,aAAa,CAAC,gBAAgB,EAAE;wBAClD,IAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;wBAC5E,IAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;wBAC9E,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;wBAC5D,IAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;wBAE9D,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;4BACnC,oBAAoB,GAAG,kBAAkB,CAAC;yBAC7C;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;4BAC3C,oBAAoB,GAAG,mBAAmB,CAAC;yBAC9C;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;4BACpC,oBAAoB,GAAG,YAAY,CAAC;yBACvC;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;4BACrC,oBAAoB,GAAG,aAAa,CAAC;yBACxC;qBACJ;oBAED,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;oBAChE,IAAM,cAAc,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;oBAEvD,IAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;oBACxD,IAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAEpD,IAAM,MAAM,gCACR,YAAY,cAAA,IACT,cAAc,GACd,eAAe,KAClB,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,eAAe,EAC5F,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,OAAO,EAC7F,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,YAAY,EACzF,yBAAyB,EAAE,OAAO,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,gBAAgB,EAC9H,wBAAwB,EAAE,OAAO,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,WAAW,GACzH,CAAA;oBAED,IAAM,OAAO,GAAe;wBACxB,WAAW,aAAA;wBACX,YAAY,EAAE,aAAa;wBAC3B,YAAY,cAAA;wBACZ,UAAU,EAAE,UAAU;wBACtB,MAAM,EAAE,cAAc;qBACzB,CAAA;oBAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;wBAC5B,OAAO;qBACV;oBAED,uBAAuB,CAAC,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBAEzG,IAAI,UAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;wBACrC,OAAO;qBACV;oBAED,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC,CAAC,EAAC;;;CACV;AArPD,4CAqPC;AAID,SAAS,WAAW,CAAC,OAAmB;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAA2B,OAAO,CAAC,WAAW,CAAE,CAAC,CAAC,CAAC;IAE3E,IAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;IAE3C,IAAI,OAAO,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACnB;AAEL,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAoB;IAC3C,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,IAAM,qBAAqB,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAE1D,IAAI,qBAAqB,EAAE;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;KACvD;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iBAAU,WAAW,yCAAsC,CAAC,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;KAChB;IAED,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB;IACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IACxD,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;QACjB,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;KACnC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,OAAmB;IAC/B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB;IACxC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE7B,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB;;;;;;MAME;IACE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACpB,GAAG,GAAG,aAAa,CAAC;KACvB;IAED,IAAI,GAAG,EAAE;QACL,IAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;KACJ;SAAM;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;KAC5E;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,IAAM,UAAU,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAEtD,SAAS,uBAAuB,CAAC,eAAuB,EAAE,mBAA2B,EAAE,WAAmB,EAAE,MAAsB,EAAE,MAAe,EAAE,MAAY;IAC7J,IAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAE1D,aAAa,CAAC,OAAO,CAAC,UAAA,IAAI;QACtB,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAE1D,mCAAmC;QACnC,IAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QAE1C,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAChB,IAAI,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAErD,IAAI,IAAI,KAAK,mBAAmB;gBAAE,IAAI,GAAG,YAAY,CAAC;YACtD,IAAI,IAAI,KAAK,mBAAmB;gBAAE,IAAI,GAAG,YAAY,CAAC;YAGtD,QAAQ,GAAG,MAAM,CAAC,QAAQ,wBAAO,MAAM,KAAE,WAAW,aAAA,EAAE,MAAM,QAAA,IAAG,CAAC;YAEhE,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAChE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjD;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YAC5B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;YAE5D,iBAAiB;YACjB,uBAAuB,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SACxI;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAGD,SAAS,uBAAuB,CAAC,MAAW;IACxC,IAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,aAAa;IACb,IAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,aAAa,IAAI,aAAa,CAAC,gBAAgB,EAAE;QACjD,OAAO,MAAM,CAAC;KACjB;IAED,IAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAChG,IAAM,MAAM,GAAG,MAAM,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,gBAAgB,CAAC;IAClH,IAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,eAAe,CAAC;IAC9F,IAAM,KAAK,GAAG,MAAM,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,WAAW,CAAC;IAC1G,IAAM,UAAU,GAAG,MAAM,CAAC,gCAAgC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAE5G,IAAI,YAAY,IAAI,iBAAiB,CAAC,MAAM,EAAE;QAC1C,MAAM,CAAC,iBAAiB,GAAG,wBAAiB,MAAM,2BAAiB,SAAS,CAAE,CAAA;KACjF;SAAM,IAAI,YAAY,IAAI,iBAAiB,CAAC,GAAG,EAAE;QAC9C,MAAM,CAAC,iBAAiB,GAAG,UAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAY,MAAM,4BAAkB,SAAS,CAAE,CAAA;KACtG;SAAM,IAAI,YAAY,IAAI,iBAAiB,CAAC,MAAM,EAAE;QACjD,MAAM,CAAC,iBAAiB,GAAG,UAAG,UAAU,cAAI,SAAS,CAAE,CAAA;KAC1D;SAAM;QACH,wCAAwC;QACxC,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAAC;KACxC;IAED,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC;IACjG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC;IACzF,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAW;IACnC,IAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,aAAa;IACb,IAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE;QAC3C,OAAO,MAAM,CAAC;KACjB;IACD,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC;IACvH,IAAM,SAAS,GAAG,MAAM,CAAC,cAAc,IAAI,mBAAmB,CAAC,OAAO,CAAC;IACvE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,OAAO,MAAM,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathapp/na-cli",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "start": "npm run build && node dist/index.js",
@@ -1,3 +0,0 @@
1
- node_modules/
2
- dist/
3
- .DS_Store
@@ -1,14 +0,0 @@
1
- FROM node:14.15.5-buster as builder
2
- WORKDIR /backend/
3
- ADD ./package.json /backend/
4
- ADD ./package-lock.json /backend/
5
- ADD ./tsconfig.json /backend/
6
- ADD ./src /backend/src
7
- RUN npm ci --production && npm cache clean --force
8
- RUN npm run build
9
-
10
- FROM node:14.15.5-alpine3.13
11
- WORKDIR /backend/
12
- COPY --chown=node:node --from=builder /backend /backend/
13
- USER node
14
- CMD [ "node", "dist/server.js" ]
@@ -1,71 +0,0 @@
1
- # <%= projectName %>
2
-
3
- ### Getting Started
4
-
5
- The <%= projectName %> API endpoints.
6
-
7
- ### How to setup environment?
8
-
9
- 1. Clone this repository.
10
-
11
- 2. Change directory to the repository.
12
-
13
- 3. Install package dependencies.
14
- ```
15
- npm install
16
- ```
17
- 4. Allow `direnv` to populate environment variables from the `.envrc` file. The `direnv` command is required to be installed.
18
- ```
19
- direnv allow .
20
- ```
21
-
22
- ### How to run unit-test?
23
-
24
- 1. Write test cases in a `*.test.ts` file under the same folder with the actual module file. For example, module file `src/app-service.ts`, unit-test file `src/app-service.test.ts`.
25
-
26
- 2. Run unit-test command.
27
-
28
- - To run single module unit-test.
29
-
30
- ```
31
- npm run test-this src/app-service.test.ts
32
- ```
33
-
34
- - To run all unit-test.
35
- ```
36
- npm run test
37
- ```
38
-
39
- ### How to debug?
40
-
41
- Please use unit-test method for debugging.
42
-
43
- 1. Set breakpoint on the source code by pressing `F9` key.
44
-
45
- 2. Run unit-test command with debugging.
46
-
47
- ```
48
- npm run debug-this src/app-service.test.ts
49
- ```
50
-
51
- 3. Start debugging by pressing `F5` key.
52
-
53
- ### How to release version?
54
-
55
- Git pipeline will perform unit-test, build container image and push to the container registry.
56
-
57
- - Bump a `prerelease` version (E.g. `1.0.0-rc.0`).
58
-
59
- - Write commit message that contain `run-prerelease` keyword to `feature` branch.
60
-
61
- - Bump a `release` version (E.g. `1.0.0`).
62
-
63
- - Merge into `default` branch (main/master) with any commit message.
64
-
65
- > Note: **Code review** process should be perform before merge into `default` branch or release version.
66
-
67
- ### Merge into default branch without trigger pipeline
68
-
69
- If you want to merge into `default` branch without triggering the pipeline, write commit message that contain `run-without-release`.
70
-
71
- chatbot: 0
@@ -1,55 +0,0 @@
1
- {
2
- "name": "<%= projectName %>",
3
- "version": "1.0.0-rc.0",
4
- "description": "API Description",
5
- "repository": {},
6
- "devDependencies": {
7
- "@types/chai": "^4.3.0",
8
- "@types/sinon": "^10.0.6",
9
- "chai": "^4.3.4",
10
- "dotenv": "^8.2.0",
11
- "mocha": "^9.1.3",
12
- "sinon": "^12.0.1",
13
- "ts-node": "^10.4.0",
14
- "tsconfig-paths": "^3.12.0"
15
- },
16
- "dependencies": {
17
- "@types/body-parser": "^1.19.2",
18
- "@types/cors": "^2.8.12",
19
- "@types/express": "^4.17.13",
20
- "@types/jsonwebtoken": "^9.0.0",
21
- "@types/multer": "^1.4.7",
22
- "@types/node": "^14.18.2",
23
- "@types/response-time": "^2.3.5",
24
- "body-parser": "^1.19.1",
25
- "cors": "^2.8.5",
26
- "express": "^4.17.2",
27
- "form-data": "^3.0.1",
28
- "jsonwebtoken": "^9.0.0",
29
- "multer": "1.4.4-lts.1",
30
- "mxw-libs-api-token": "^1.0.13",
31
- "mxw-libs-clogger": "^1.0.0",
32
- "mxw-libs-database": "^1.0.19",
33
- "mxw-libs-email-notify": "^1.0.6",
34
- "mxw-libs-errors": "^1.0.5",
35
- "mxw-libs-push-notify": "^1.0.5",
36
- "mxw-libs-utils": "^1.0.35",
37
- "process": "^0.11.10",
38
- "response-time": "^2.3.2",
39
- "streamifier": "^0.1.1",
40
- "typescript": "^4.5.4"
41
- },
42
- "scripts": {
43
- "build": "npm run build-ts",
44
- "build-ts": "tsc",
45
- "dev": "npm run build && NODE_ENV=local node dist/server.js",
46
- "start": "node dist/server.js",
47
- "test": "mocha --recursive --timeout 30000 -r tsconfig-paths/register -r ts-node/register src/**/*.test.ts src/**/**/*.test.ts src/**/**/**/*.test.ts",
48
- "test-this": "mocha --recursive --timeout 30000 -r tsconfig-paths/register -r ts-node/register",
49
- "debug": "tsc && node --inspect-brk=0.0.0.0:9229 dist/server.js",
50
- "debug-this": "npm run build && mocha --inspect-brk=0.0.0.0:9229 --timeout 3000000 -r ts-node/register"
51
- },
52
- "keywords": [],
53
- "author": "",
54
- "license": "ISC"
55
- }