@simitgroup/simpleapp-generator 2.0.1-w-alpha → 2.0.1-y-alpha
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/ReleaseNote.md +10 -0
- package/dist/buildinschemas/autoincreament.js +1 -1
- package/dist/buildinschemas/docnoformat.js +1 -1
- package/dist/buildinschemas/docnoformat.js.map +1 -1
- package/dist/buildinschemas/documentevent.js +1 -1
- package/package.json +1 -1
- package/templates/basic/miniApi/resource.controller.ts.eta +28 -0
- package/templates/basic/miniApi/resource.service.ts.eta +13 -0
- package/templates/miniApi/src/constants/api-scopes.ts.eta +10 -0
- package/templates/nest/src/simple-app/_core/features/cron/cron-system/cron-system.service.ts.eta +8 -8
- package/templates/nest/src/simple-app/_core/framework/base/simple-app.service.ts.eta +15 -18
- package/templates/nest/src/simple-app/_core/framework/schemas/simple-app.schema.ts.eta +1 -0
- package/dist/buildinschemas/message.d.ts +0 -3
- package/dist/buildinschemas/message.d.ts.map +0 -1
- package/dist/buildinschemas/message.js +0 -34
- package/dist/buildinschemas/message.js.map +0 -1
- package/dist/buildinschemas/webhookhistory.d.ts +0 -3
- package/dist/buildinschemas/webhookhistory.d.ts.map +0 -1
- package/dist/buildinschemas/webhookhistory.js +0 -44
- package/dist/buildinschemas/webhookhistory.js.map +0 -1
- package/dist/createproject.js +0 -138
- package/dist/createproject.js.map +0 -1
- package/dist/generate-allow-changebackend.js +0 -305
- package/dist/generate-allow-changebackend.js.map +0 -1
- package/dist/index2.js +0 -118
- package/dist/index2.js.map +0 -1
- package/dist/installdependency.js +0 -20
- package/dist/installdependency.js.map +0 -1
- package/dist/installnest.js +0 -2
- package/dist/installnest.js.map +0 -1
- package/dist/installnuxt.js +0 -2
- package/dist/installnuxt.js.map +0 -1
- package/dist/processors/groupsbuilder.js +0 -2
- package/dist/processors/groupsbuilder.js.map +0 -1
- package/dist/schematype/baseschema.js +0 -25
- package/dist/schematype/baseschema.js.map +0 -1
- package/dist/schematype/default.js +0 -2
- package/dist/schematype/default.js.map +0 -1
- package/dist/schematype/index.js +0 -12
- package/dist/schematype/index.js.map +0 -1
- package/dist/schematype/primarymasterdata.js +0 -38
- package/dist/schematype/primarymasterdata.js.map +0 -1
- package/dist/schematype/simple.js +0 -24
- package/dist/schematype/simple.js.map +0 -1
- package/dist/schematype/simplemasterdata.js +0 -31
- package/dist/schematype/simplemasterdata.js.map +0 -1
- package/dist/schematype/transaction.js +0 -74
- package/dist/schematype/transaction.js.map +0 -1
package/ReleaseNote.md
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
[2.0.1y-alpha]
|
|
2
|
+
|
|
3
|
+
1. Handle whitelist confirm and void api
|
|
4
|
+
|
|
5
|
+
[2.0.1x-alpha]
|
|
6
|
+
|
|
7
|
+
1. disable system cron auto run
|
|
8
|
+
2. fix search text syntax mess up
|
|
9
|
+
|
|
1
10
|
[2.0.1w-alpha]
|
|
11
|
+
|
|
2
12
|
1. touch up abit debugger in simple-app.service
|
|
3
13
|
2. add default queue job option code
|
|
4
14
|
|
|
@@ -15,7 +15,7 @@ exports.autoincreament = {
|
|
|
15
15
|
entryPoint: 'gennextno/:collection/:field',
|
|
16
16
|
requiredRole: ['User'],
|
|
17
17
|
method: type_1.RESTMethods.get,
|
|
18
|
-
responseType: '
|
|
18
|
+
responseType: 'Autoincreament',
|
|
19
19
|
description: 'Get next no and trigger increase nextno'
|
|
20
20
|
}
|
|
21
21
|
],
|
|
@@ -17,7 +17,7 @@ exports.docnoformat = {
|
|
|
17
17
|
action: 'listDocFormats',
|
|
18
18
|
entryPoint: '/listdocformats/:doctype',
|
|
19
19
|
requiredRole: ['User'],
|
|
20
|
-
responseType: '[
|
|
20
|
+
responseType: '[Docnoformat]',
|
|
21
21
|
method: type_1.RESTMethods.get,
|
|
22
22
|
description: 'get list of document format for 1 doctype'
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docnoformat.js","sourceRoot":"","sources":["../../src/buildinschemas/docnoformat.ts"],"names":[],"mappings":";;;AAAA,kCAAiE;AAEpD,QAAA,WAAW,GAAe;IACrC,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE;QACpB,aAAa,EAAE,oBAAa,CAAC,GAAG;QAChC,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,aAAa;QAC3B,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,eAAe;QAC1B,aAAa,EAAE,iBAAiB;QAChC,4BAA4B,EAAE,CAAC,SAAS,CAAC;QACzC,cAAc,EAAE;YACd;gBACE,MAAM,EAAE,gBAAgB;gBACxB,UAAU,EAAE,0BAA0B;gBACtC,YAAY,EAAE,CAAC,MAAM,CAAC;gBACtB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"docnoformat.js","sourceRoot":"","sources":["../../src/buildinschemas/docnoformat.ts"],"names":[],"mappings":";;;AAAA,kCAAiE;AAEpD,QAAA,WAAW,GAAe;IACrC,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE;QACpB,aAAa,EAAE,oBAAa,CAAC,GAAG;QAChC,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,aAAa;QAC3B,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,eAAe;QAC1B,aAAa,EAAE,iBAAiB;QAChC,4BAA4B,EAAE,CAAC,SAAS,CAAC;QACzC,cAAc,EAAE;YACd;gBACE,MAAM,EAAE,gBAAgB;gBACxB,UAAU,EAAE,0BAA0B;gBACtC,YAAY,EAAE,CAAC,MAAM,CAAC;gBACtB,YAAY,EAAE,eAAe;gBAC7B,MAAM,EAAE,kBAAW,CAAC,GAAG;gBACvB,WAAW,EAAE,2CAA2C;aACzD;SACF;QACD,YAAY,EAAE,kBAAkB;KACjC;IACD,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QACrD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QAClD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QACrD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC9B;SACF;QACD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;QACpD,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE;QACzE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5D,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;QAC7D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QACrD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;YAC9C,WAAW,EAAE,iCAAiC;SAC/C;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;KAC5C;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -164,6 +164,34 @@ export class <%= pascalName %>Controller {
|
|
|
164
164
|
return await this.<%= serviceVariable %>.autocomplete(headers, query, filter);
|
|
165
165
|
}
|
|
166
166
|
<% } else if(action === 'current') { %>
|
|
167
|
+
<% } else if(action === 'confirm') { %>
|
|
168
|
+
@Post(':id/confirm')
|
|
169
|
+
@ApiOperation({ operationId: 'confirm' })
|
|
170
|
+
@ApiBody({ type: <%= schemaName %>, required: true })
|
|
171
|
+
@ApiResponse({ status: 200, description: 'Success', type: <%= schemaName %> })
|
|
172
|
+
@ApiResponse({ status: 400, description: 'Bad Request' })
|
|
173
|
+
@ApiResponse({ status: 500, description: 'Internal Error' })
|
|
174
|
+
async confirm(
|
|
175
|
+
@Headers() headers: ApiHeader,
|
|
176
|
+
@Param('id') id: string,
|
|
177
|
+
@Body() resourceDto: any,
|
|
178
|
+
) {
|
|
179
|
+
return await this.<%= serviceVariable %>.confirm(headers, id, resourceDto);
|
|
180
|
+
}
|
|
181
|
+
<% } else if(action === 'void') { %>
|
|
182
|
+
@Post(':id/void')
|
|
183
|
+
@ApiOperation({ operationId: 'void' })
|
|
184
|
+
@ApiBody({ type: <%= schemaName %>, required: true })
|
|
185
|
+
@ApiResponse({ status: 200, description: 'Success', type: <%= schemaName %> })
|
|
186
|
+
@ApiResponse({ status: 400, description: 'Bad Request' })
|
|
187
|
+
@ApiResponse({ status: 500, description: 'Internal Error' })
|
|
188
|
+
async void(
|
|
189
|
+
@Headers() headers: ApiHeader,
|
|
190
|
+
@Param('id') id: string,
|
|
191
|
+
@Body() resourceDto: any,
|
|
192
|
+
) {
|
|
193
|
+
return await this.<%= serviceVariable %>.void(headers, id, resourceDto);
|
|
194
|
+
}
|
|
167
195
|
<% } else { %>
|
|
168
196
|
<% const api = it.apiSettings.find(item => item.action === action); %>
|
|
169
197
|
<% if (api) { %>
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
const uglyName = upperFirstCase(it.name ?? '');
|
|
5
5
|
const schemaName = `SimtrainSchema.${pascalName}Dto`;
|
|
6
6
|
const schemaAutoCompleteName = `SimtrainSchema.${pascalName}AutoCompleteDto`;
|
|
7
|
+
const resourceName = it.resourceName;
|
|
7
8
|
|
|
8
9
|
const getTypeName = (typeName) => {
|
|
9
10
|
const systemTypes = ['boolean', 'string', 'number', 'object', 'integer'];
|
|
@@ -105,6 +106,18 @@ export class <%= pascalName %>Service {
|
|
|
105
106
|
return resp.data;
|
|
106
107
|
}
|
|
107
108
|
<% } else if(action === 'current') { %>
|
|
109
|
+
<% } else if(action === 'confirm') { %>
|
|
110
|
+
async confirm(headers: ApiHeader, id: string, resourceDto: any) {
|
|
111
|
+
const api = this.getApi(headers);
|
|
112
|
+
const resp = await api.<%= resourceName %>ControllerSetStatusConfirm(id, resourceDto);
|
|
113
|
+
return resp.data;
|
|
114
|
+
}
|
|
115
|
+
<% } else if(action === 'void') { %>
|
|
116
|
+
async void(headers: ApiHeader, id: string, resourceDto: any) {
|
|
117
|
+
const api = this.getApi(headers);
|
|
118
|
+
const resp = await api.<%= resourceName %>ControllerSetStatusVoid(id, resourceDto);
|
|
119
|
+
return resp.data;
|
|
120
|
+
}
|
|
108
121
|
<% } else { %>
|
|
109
122
|
<% const api = it.apiSettings.find(item => item.action === action); %>
|
|
110
123
|
<% if (api) { %>
|
|
@@ -59,6 +59,16 @@
|
|
|
59
59
|
case 'current':
|
|
60
60
|
return;
|
|
61
61
|
|
|
62
|
+
case 'confirm':
|
|
63
|
+
method = 'post';
|
|
64
|
+
description = `Confirm and finalize the specified ${resourceTitleName}.`;
|
|
65
|
+
break;
|
|
66
|
+
|
|
67
|
+
case 'void':
|
|
68
|
+
method = 'post';
|
|
69
|
+
description = `Invalidate and mark the specified ${resourceTitleName} as void.`;
|
|
70
|
+
break;
|
|
71
|
+
|
|
62
72
|
default:
|
|
63
73
|
const additionalApiConfig = (additionalApis ?? []).find(item => item.action === action);
|
|
64
74
|
method = additionalApiConfig?.method ?? '';
|
package/templates/nest/src/simple-app/_core/features/cron/cron-system/cron-system.service.ts.eta
CHANGED
|
@@ -15,25 +15,25 @@ export class CronSystemService extends SimpleAppCronBaseClass {
|
|
|
15
15
|
super(robotUserService);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
//@Cron('0 1 * * *')
|
|
19
19
|
async deleteApiLog() {
|
|
20
|
-
if (process.env.ON_CRONTAB == 'true') {
|
|
21
|
-
this.logger.debug('run CronSystemService.deleteApiLog
|
|
20
|
+
//if (process.env.ON_CRONTAB == 'true') {
|
|
21
|
+
this.logger.debug('run CronSystemService.deleteApiLog')
|
|
22
22
|
const today = new Date();
|
|
23
23
|
const newDate = new Date(today.getTime());
|
|
24
24
|
const cutoffdate = new Date(newDate.setDate(newDate.getDate() - 90)).toISOString();
|
|
25
25
|
await this.apiEventModel.deleteMany({ created: { $lte: cutoffdate } });
|
|
26
|
-
}
|
|
26
|
+
//}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
//@Cron('30 0 * * *')
|
|
30
30
|
async deleteQueueJob() {
|
|
31
|
-
if (process.env.ON_CRONTAB == 'true') {
|
|
32
|
-
this.logger.debug('run deleteQueueJob.deleteApiLog
|
|
31
|
+
//if (process.env.ON_CRONTAB == 'true') {
|
|
32
|
+
this.logger.debug('run deleteQueueJob.deleteApiLog')
|
|
33
33
|
const today = new Date();
|
|
34
34
|
const newDate = new Date(today.getTime());
|
|
35
35
|
const cutoffdate = new Date(newDate.setDate(newDate.getDate() - 90)).toISOString();
|
|
36
36
|
await this.queueJobModel.deleteMany({ created: { $lte: cutoffdate } });
|
|
37
|
-
}
|
|
37
|
+
//}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -286,27 +286,24 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
286
286
|
|
|
287
287
|
async fullTextSearch(appuser: UserContext, body: TextSearchBody) {
|
|
288
288
|
try {
|
|
289
|
+
//{filters:string[],fields:string[]}
|
|
289
290
|
const isolationFilter = { ...this.getIsolationFilter(appuser) };
|
|
290
291
|
this.polishIsolationFilter(isolationFilter);
|
|
291
292
|
const keyword = body.keyword;
|
|
292
|
-
|
|
293
|
+
// console.log("bodybody",body)
|
|
293
294
|
// Prepare regex filter
|
|
294
295
|
const orConditions: any[] = [];
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
296
|
+
const regex = new RegExp(keyword, 'i')
|
|
297
|
+
|
|
298
|
+
if (body.filters && body.filters.length > 0) {
|
|
299
|
+
body.filters.forEach((field: string) => {
|
|
298
300
|
orConditions.push({
|
|
299
|
-
[field]: { $regex:
|
|
300
|
-
});
|
|
301
|
-
} else {
|
|
302
|
-
if (!isNaN(Number(keyword)) && (field == 'defaultPrice' || field == 'amount')) {
|
|
303
|
-
orConditions.push({
|
|
304
|
-
[field]: { $gte: keyword },
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
}
|
|
301
|
+
[field]: { $regex: regex },
|
|
302
|
+
});
|
|
308
303
|
});
|
|
309
304
|
}
|
|
305
|
+
|
|
306
|
+
|
|
310
307
|
const filter = {
|
|
311
308
|
$or: orConditions,
|
|
312
309
|
};
|
|
@@ -318,7 +315,7 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
318
315
|
|
|
319
316
|
const fields = body.fields || {};
|
|
320
317
|
const sorts = body.sorts || {};
|
|
321
|
-
|
|
318
|
+
// console.log("newfilters",JSON.stringify(newfilters),fields)
|
|
322
319
|
// Ensure `this.doc` is a Mongoose model or similar
|
|
323
320
|
const results = await this.doc.find(newfilters, fields).sort(sorts).exec();
|
|
324
321
|
|
|
@@ -499,7 +496,7 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
499
496
|
errormsg.push(this.errorlist[i].message);
|
|
500
497
|
}
|
|
501
498
|
|
|
502
|
-
throw new BadRequestException(errormsg as HttpExceptionOptions,'Before validation hook failed');
|
|
499
|
+
throw new BadRequestException(errormsg as HttpExceptionOptions, 'Before validation hook failed');
|
|
503
500
|
}
|
|
504
501
|
|
|
505
502
|
let validate;
|
|
@@ -513,7 +510,7 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
513
510
|
if (!valid) {
|
|
514
511
|
this.logger.error(JSON.stringify(data));
|
|
515
512
|
this.logger.error(JSON.stringify(validate.errors), 'validate errors:');
|
|
516
|
-
throw new BadRequestException(validate.errors as HttpExceptionOptions,'Data validation failed');
|
|
513
|
+
throw new BadRequestException(validate.errors as HttpExceptionOptions, 'Data validation failed');
|
|
517
514
|
}
|
|
518
515
|
}
|
|
519
516
|
|
|
@@ -1089,7 +1086,7 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
1089
1086
|
|
|
1090
1087
|
if (!unionresult) {
|
|
1091
1088
|
this.logger.error('foreign key control failed ', 'identifyForeignKeys');
|
|
1092
|
-
throw new InternalServerErrorException(pipelines as HttpExceptionOptions,'Foreignkey check execution error');
|
|
1089
|
+
throw new InternalServerErrorException(pipelines as HttpExceptionOptions, 'Foreignkey check execution error');
|
|
1093
1090
|
} else {
|
|
1094
1091
|
const searchresult: any = {};
|
|
1095
1092
|
unionresult.forEach((item) => {
|
|
@@ -1099,7 +1096,7 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
1099
1096
|
searchresult[item.collection] = [item._id];
|
|
1100
1097
|
}
|
|
1101
1098
|
});
|
|
1102
|
-
this.logger.debug(
|
|
1099
|
+
this.logger.debug(this.documentType + ' search Result', unionresult);
|
|
1103
1100
|
|
|
1104
1101
|
//search is it all foreign key exists in db
|
|
1105
1102
|
for (let i = 0; i < collections.length; i++) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/buildinschemas/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,SAAS,CAAA;AAE5D,eAAO,MAAM,WAAW,EAAC,UA6BtB,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.docnoformat = void 0;
|
|
4
|
-
const type_1 = require("../type");
|
|
5
|
-
exports.docnoformat = {
|
|
6
|
-
"type": "object",
|
|
7
|
-
"x-simpleapp-config": {
|
|
8
|
-
"documentType": "msg",
|
|
9
|
-
"documentName": "message",
|
|
10
|
-
"isolationType": type_1.IsolationType.tenant,
|
|
11
|
-
"documentTitle": "messageTitle"
|
|
12
|
-
},
|
|
13
|
-
"properties": {
|
|
14
|
-
"_id": { "type": "string" },
|
|
15
|
-
"created": { "type": "string" },
|
|
16
|
-
"updated": { "type": "string" },
|
|
17
|
-
"createdBy": { "type": "string" },
|
|
18
|
-
"updatedBy": { "type": "string" },
|
|
19
|
-
"tenantId": { "type": "integer", "default": 1 },
|
|
20
|
-
"orgId": { "type": "integer", "default": 1 },
|
|
21
|
-
"branchId": { "type": "integer", "default": 1 },
|
|
22
|
-
"messageTitle": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"minLength": 3
|
|
25
|
-
},
|
|
26
|
-
"read": { "type": "boolean", "default": false },
|
|
27
|
-
"url": { "type": "string" },
|
|
28
|
-
"description": {
|
|
29
|
-
"type": "string",
|
|
30
|
-
"format": "text"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=message.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/buildinschemas/message.ts"],"names":[],"mappings":";;;AAAA,kCAA4D;AAE/C,QAAA,WAAW,GACxB;IACI,MAAM,EAAE,QAAQ;IAChB,oBAAoB,EAAE;QACpB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,SAAS;QACzB,eAAe,EAAE,oBAAa,CAAC,MAAM;QACrC,eAAe,EAAE,cAAc;KAChC;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC/B,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QACjC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QACjC,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE;QAC/C,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE;QAC5C,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE;QAC/C,cAAc,EAAE;YACd,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,CAAC;SACf;QACD,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAC;QAC9C,KAAK,EAAC,EAAE,MAAM,EAAE,QAAQ,EAAC;QACzB,aAAa,EAAE;YACb,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM;SACjB;KACF;CACF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webhookhistory.d.ts","sourceRoot":"","sources":["../../src/buildinschemas/webhookhistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAA2B,MAAM,SAAS,CAAA;AAE5D,eAAO,MAAM,cAAc,EAAC,UAsC3B,CAAA"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.webhookhistory = void 0;
|
|
4
|
-
const type_1 = require("../type");
|
|
5
|
-
exports.webhookhistory = {
|
|
6
|
-
type: "object",
|
|
7
|
-
"x-simpleapp-config": {
|
|
8
|
-
documentType: 'webhookhistory',
|
|
9
|
-
documentName: 'webhookhistory',
|
|
10
|
-
isolationType: type_1.IsolationType.tenant,
|
|
11
|
-
// uniqueKey:'documentName',
|
|
12
|
-
// documentTitle:'documentName'
|
|
13
|
-
// pageType:"crud",
|
|
14
|
-
},
|
|
15
|
-
required: ["documentName", "url"],
|
|
16
|
-
properties: {
|
|
17
|
-
_id: { type: 'string' },
|
|
18
|
-
created: { type: 'string' },
|
|
19
|
-
updated: { type: 'string' },
|
|
20
|
-
createdBy: { type: 'string' },
|
|
21
|
-
updatedBy: { type: 'string' },
|
|
22
|
-
tenantId: { type: 'integer', default: 1, minimum: 0 },
|
|
23
|
-
orgId: { type: 'integer', default: 1, minimum: 0 },
|
|
24
|
-
branchId: { type: 'integer', default: 1, minimum: 0 },
|
|
25
|
-
webHookId: { type: "string", format: "uuid" },
|
|
26
|
-
url: { type: "string", format: 'uri' },
|
|
27
|
-
authentication: { type: "string" },
|
|
28
|
-
headers: {
|
|
29
|
-
type: "array",
|
|
30
|
-
items: {
|
|
31
|
-
type: "object",
|
|
32
|
-
description: "http headers",
|
|
33
|
-
properties: {
|
|
34
|
-
name: { type: 'string' },
|
|
35
|
-
value: { type: 'string' }
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
description: { type: "string", format: "text" },
|
|
40
|
-
setting: { type: "string", format: "text" },
|
|
41
|
-
result: { type: "string" }
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=webhookhistory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webhookhistory.js","sourceRoot":"","sources":["../../src/buildinschemas/webhookhistory.ts"],"names":[],"mappings":";;;AAAA,kCAA4D;AAE/C,QAAA,cAAc,GAAc;IACrC,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAC;QACnB,YAAY,EAAC,gBAAgB;QAC7B,YAAY,EAAC,gBAAgB;QAC7B,aAAa,EAAC,oBAAa,CAAC,MAAM;QAClC,4BAA4B;QAC5B,+BAA+B;QAC/B,yBAAyB;KAC1B;IACD,QAAQ,EAAC,CAAC,cAAc,EAAC,KAAK,CAAC;IAC/B,UAAU,EAAE;QACV,GAAG,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;QACnB,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;QACvB,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;QACvB,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;QACzB,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;QACzB,QAAQ,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAE;QAC/C,KAAK,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAE;QAC5C,QAAQ,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,EAAE;QAC/C,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC;QACvC,GAAG,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAC,KAAK,EAAC;QACnC,cAAc,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,KAAK,EAAC;gBACJ,IAAI,EAAC,QAAQ;gBACb,WAAW,EAAC,cAAc;gBAC1B,UAAU,EAAC;oBACT,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;oBACpB,KAAK,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;iBACtB;aACF;SACF;QACD,WAAW,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC;QAC3C,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC;QACrC,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;KACvB;CACJ,CAAA"}
|
package/dist/createproject.js
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.createNest = exports.createNuxt = exports.installDependency = void 0;
|
|
27
|
-
const child_process_1 = require("child_process");
|
|
28
|
-
const fs_1 = require("fs");
|
|
29
|
-
const constants = __importStar(require("./constant"));
|
|
30
|
-
const tslog_1 = require("tslog");
|
|
31
|
-
const log = new tslog_1.Logger();
|
|
32
|
-
const { Eta } = require('eta');
|
|
33
|
-
const checkNodeJS = (callback) => {
|
|
34
|
-
return (0, child_process_1.exec)(`npx -v`, (error, stdout, stderr) => {
|
|
35
|
-
if (error) {
|
|
36
|
-
throw ("Nodejs not exists");
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
callback();
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
const checkNestCli = (callback) => {
|
|
44
|
-
log.info("setting up nest backend");
|
|
45
|
-
return (0, child_process_1.exec)(`npx -v`, (error, stdout, stderr) => {
|
|
46
|
-
if (error) {
|
|
47
|
-
return (0, child_process_1.exec)(`npm i -g @nestjs/cli`, (error, stdout, stderr) => {
|
|
48
|
-
callback();
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
callback();
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
const installDependency = async () => {
|
|
57
|
-
log.info("installDependency 'npm install -g pnpm @nestjs/cli @openapitools/openapi-generator-cli nuxi'");
|
|
58
|
-
return await (0, child_process_1.exec)("npm install -g pnpm @nestjs/cli @openapitools/openapi-generator-cli nuxi");
|
|
59
|
-
};
|
|
60
|
-
exports.installDependency = installDependency;
|
|
61
|
-
const createNuxt = (targetfolder, callback) => {
|
|
62
|
-
log.info("setting up nuxt frontend ${targetfolder}");
|
|
63
|
-
log.info(`frontend nuxt project "${targetfolder}" created, installing module`);
|
|
64
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install;pnpm install -D @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core nuxt-security prettier @nuxt/ui`, (error, stdout, stderr) => {
|
|
65
|
-
//;pnpm install
|
|
66
|
-
console.log(error, stdout, stderr);
|
|
67
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save ajv dotenv @fullcalendar/core @fullcalendar/vue3 quill uuid ajv-formats primeflex primeicons prettier primevue axios json-schema mitt @simitgroup/simpleapp-vue-component@latest`, (error, stdout, stderr) => {
|
|
68
|
-
console.log(error, stdout, stderr);
|
|
69
|
-
(0, fs_1.mkdirSync)(`${targetfolder}/assets/css/`, { recursive: true });
|
|
70
|
-
(0, fs_1.mkdirSync)(`${targetfolder}/layouts`, { recursive: true });
|
|
71
|
-
(0, fs_1.mkdirSync)(`${targetfolder}/components`, { recursive: true });
|
|
72
|
-
(0, fs_1.mkdirSync)(`${targetfolder}/server/api`, { recursive: true });
|
|
73
|
-
(0, fs_1.mkdirSync)(`${targetfolder}/pages`, { recursive: true });
|
|
74
|
-
(0, fs_1.mkdirSync)(`${targetfolder}/plugins`, { recursive: true });
|
|
75
|
-
const eta = new Eta({ views: `${constants.templatedir}/nuxt` });
|
|
76
|
-
const variables = [];
|
|
77
|
-
const writes = {
|
|
78
|
-
'./app.vue.eta': 'app.vue',
|
|
79
|
-
'./components.eventmonitor.vue.eta': 'components/EventMonitor.vue',
|
|
80
|
-
'./components.menus.vue.eta': 'components/Menus.vue',
|
|
81
|
-
'./components.crudsimple.vue.eta': 'components/CrudSimple.vue',
|
|
82
|
-
'./components.debugdocdata.vue.eta': 'components/DebugDocumentData.vue',
|
|
83
|
-
'./layouts.default.vue.eta': 'layouts/default.vue',
|
|
84
|
-
'./server.api.ts.eta': 'server/api/[...].ts',
|
|
85
|
-
'./nuxt.config.ts.eta': 'nuxt.config.ts',
|
|
86
|
-
'./pages.index.vue.eta': 'pages/index.vue',
|
|
87
|
-
'./plugins.simpleapp.ts.eta': 'plugins/simpleapp.ts',
|
|
88
|
-
'./tailwind.config.ts.eta': 'tailwind.config.ts',
|
|
89
|
-
'./tailwind.css.eta': 'assets/css/tailwind.css',
|
|
90
|
-
'./env.eta': '.env',
|
|
91
|
-
};
|
|
92
|
-
const templates = Object.getOwnPropertyNames(writes);
|
|
93
|
-
for (let i = 0; i < templates.length; i++) {
|
|
94
|
-
const template = templates[i];
|
|
95
|
-
const filename = writes[template];
|
|
96
|
-
const txt = eta.render(template, variables);
|
|
97
|
-
const file = `${targetfolder}/${filename}`;
|
|
98
|
-
log.info("writing ", file);
|
|
99
|
-
(0, fs_1.writeFileSync)(file, txt);
|
|
100
|
-
}
|
|
101
|
-
log.info("nuxt project completed");
|
|
102
|
-
callback();
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
exports.createNuxt = createNuxt;
|
|
107
|
-
const createNest = (targetfolder, callback) => {
|
|
108
|
-
// checkNestCli(()=>{
|
|
109
|
-
log.info(`creating backend project ${targetfolder}`);
|
|
110
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save @nestjs/swagger @nestjs/mongoose mongoose ajv ajv-formats @nestjs/config`, async (error, stdout, stderr) => {
|
|
111
|
-
// log.info(`dependency installed`)
|
|
112
|
-
if (!error) {
|
|
113
|
-
(0, child_process_1.exec)(`pnpm install ajv ajv-formats axios json-schema`, (error, stdout, stderr) => {
|
|
114
|
-
const eta = new Eta({ views: constants.templatedir });
|
|
115
|
-
const variables = [];
|
|
116
|
-
const txtEnv = eta.render('./nest.env.eta', variables);
|
|
117
|
-
const txtMain = eta.render('./nest.main.eta', variables);
|
|
118
|
-
(0, fs_1.writeFileSync)(`${targetfolder}/.env`, txtEnv);
|
|
119
|
-
(0, fs_1.writeFileSync)(`${targetfolder}/src/main.ts`, txtMain);
|
|
120
|
-
const tsconfigpath = process.cwd() + '/' + `${targetfolder}/tsconfig.json`;
|
|
121
|
-
const tsconfig = require(tsconfigpath);
|
|
122
|
-
tsconfig.compilerOptions.esModuleInterop = true;
|
|
123
|
-
tsconfig.compilerOptions.resolveJsonModule = true;
|
|
124
|
-
(0, fs_1.writeFileSync)(tsconfigpath, JSON.stringify(tsconfig));
|
|
125
|
-
log.info("nest project completed");
|
|
126
|
-
callback();
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
log.error(stderr);
|
|
131
|
-
throw error;
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
//
|
|
135
|
-
// })
|
|
136
|
-
};
|
|
137
|
-
exports.createNest = createNest;
|
|
138
|
-
//# sourceMappingURL=createproject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createproject.js","sourceRoot":"","sources":["../src/createproject.ts"],"names":[],"mappings":"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"}
|