@simitgroup/simpleapp-generator 2.0.1-q-alpha → 2.0.1-s-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 +9 -5
- 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/nest/src/simple-app/_core/features/user-context/robot-user.service.ts.eta +10 -10
- package/templates/nest/src/simple-app/_core/features/user-context/user.context.ts.eta +1 -1
- package/templates/nest/src/simple-app/_core/framework/base/simple-app.service.ts.eta +60 -6
- 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/templates/nest/src/simple-app/{cron/cron.module.ts.eta → crons/cron.module.ts._eta} +0 -0
package/ReleaseNote.md
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
[2.0.
|
|
1
|
+
[2.0.1s-alpha]
|
|
2
2
|
|
|
3
|
-
1.
|
|
3
|
+
1. Fix cron set xorg failed. undefined-undefined-undefined
|
|
4
|
+
2. Fix findInstalledMiniAppCode
|
|
4
5
|
|
|
6
|
+
[2.0.1r-alpha]
|
|
5
7
|
|
|
8
|
+
1. Add findIdThenUnsetField
|
|
6
9
|
|
|
7
|
-
[2.0.
|
|
10
|
+
[2.0.1q-alpha]
|
|
8
11
|
|
|
9
|
-
1.
|
|
12
|
+
1. fixagain delete record cant work in transactions, sharded env
|
|
10
13
|
|
|
14
|
+
[2.0.1p-alpha]
|
|
11
15
|
|
|
16
|
+
1. fix delete record cant work in transactions, sharded env
|
|
12
17
|
|
|
13
18
|
[2.0.1o-alpha]
|
|
14
19
|
|
|
15
20
|
1. fetch branch image url, and fix maintenance mode data
|
|
16
21
|
|
|
17
|
-
|
|
18
22
|
[2.0.1n-alpha]
|
|
19
23
|
|
|
20
24
|
1. Add debug for invalid xorg
|
|
@@ -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
|
@@ -21,12 +21,12 @@ export class SimpleAppRobotUserService {
|
|
|
21
21
|
logger = new Logger();
|
|
22
22
|
|
|
23
23
|
constructor(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
) {
|
|
24
|
+
@InjectModel('User') private readonly userModel: Model<User>,
|
|
25
|
+
@InjectModel('Permission') private readonly permModel: Model<Permission>,
|
|
26
|
+
// @InjectModel('Appintegration') private readonly appmodel: Model<Appintegration>;
|
|
27
|
+
@InjectModel('MiniAppInstallation') private readonly miniAppInstallationModel: Model<MiniAppInstallation>,
|
|
28
|
+
@InjectModel('Environment') private envModel: Model<Environment>,
|
|
29
|
+
) {
|
|
30
30
|
this.init();
|
|
31
31
|
// console.log('init SimpleAppRobotUserService');
|
|
32
32
|
}
|
|
@@ -94,10 +94,10 @@ export class SimpleAppRobotUserService {
|
|
|
94
94
|
|
|
95
95
|
async createDumyAppUser(userContext: BaseUserContext) {
|
|
96
96
|
const envs = await this.envModel.find();
|
|
97
|
-
|
|
98
|
-
const appUser = new UserContext(this.userModel, this.permModel, this.miniAppInstallationModel,envs[0]);
|
|
97
|
+
|
|
98
|
+
const appUser = new UserContext(this.userModel, this.permModel, this.miniAppInstallationModel, envs[0]);
|
|
99
99
|
const user = userContext;
|
|
100
|
-
const xorg = appUser.generateXOrg(user.tenantId, user.orgId, user.branchId);
|
|
100
|
+
const xorg = appUser.generateXOrg(user.tenantId ?? 0, user.orgId ?? 0, user.branchId ?? 0);
|
|
101
101
|
|
|
102
102
|
await appUser.setAsStaticUser(user.uid ?? '00000000-0000-0000-0000-000000000000', user.uname ?? 'robot', user.fullName ?? 'Robot', user.email ?? 'robot@a.org', xorg);
|
|
103
103
|
appUser.setTimeZone(user.timeZone ?? this.defaultTimeZone);
|
|
@@ -110,7 +110,7 @@ export class SimpleAppRobotUserService {
|
|
|
110
110
|
const envs = await this.envModel.find();
|
|
111
111
|
// console.log('prepareAppUserprepareAppUser');
|
|
112
112
|
// this.appmodel,
|
|
113
|
-
const appuser = new UserContext(this.userModel, this.permModel, this.miniAppInstallationModel,envs[0]);
|
|
113
|
+
const appuser = new UserContext(this.userModel, this.permModel, this.miniAppInstallationModel, envs[0]);
|
|
114
114
|
await appuser.setAsStaticUser('00000000-0000-0000-0000-000000000000', 'robot', 'Robot', 'robot@a.org', Base64URL.encodeText('0-0-0'));
|
|
115
115
|
|
|
116
116
|
const tenantId = data?.tenantId ?? 0;
|
|
@@ -1069,7 +1069,7 @@ export class UserContext extends UserContextInfo {
|
|
|
1069
1069
|
orgId: this.orgId,
|
|
1070
1070
|
branchId: this.branchId,
|
|
1071
1071
|
});
|
|
1072
|
-
return miniAppInstallation.miniApp;
|
|
1072
|
+
return miniAppInstallation ? miniAppInstallation.miniApp : null;
|
|
1073
1073
|
}
|
|
1074
1074
|
|
|
1075
1075
|
async setUserProfileFromDB() {
|
|
@@ -13,7 +13,7 @@ import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
|
13
13
|
import Ajv from 'ajv';
|
|
14
14
|
import addErrors from 'ajv-errors';
|
|
15
15
|
import addFormats from 'ajv-formats';
|
|
16
|
-
import { FilterQuery, Model, PipelineStage, mongo } from 'mongoose';
|
|
16
|
+
import { AnyKeys, AnyObject, FilterQuery, Model, PipelineStage, mongo } from 'mongoose';
|
|
17
17
|
// import { CloudApiService } from 'src/cloudapi/cloudapi.service';
|
|
18
18
|
import { foreignkeys } from '../../features/foreign-key/foreignkeys.dict';
|
|
19
19
|
|
|
@@ -601,6 +601,61 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
601
601
|
// this.doc.updateOne(data);
|
|
602
602
|
// };
|
|
603
603
|
|
|
604
|
+
findIdThenUnsetField = async (appuser: UserContext, id: string, data: AnyKeys<T> & AnyObject, noStartTransaction: boolean = false) => {
|
|
605
|
+
try {
|
|
606
|
+
// Check is record exist
|
|
607
|
+
const existingdata = await this.findById(appuser, id);
|
|
608
|
+
if (!existingdata) throw new NotFoundException(`${this.documentName} findIdThenUpdate: _id:${id} not found`, 'not found');
|
|
609
|
+
|
|
610
|
+
this.logger.debug('update id: ' + id, this.documentName + ' findIdThenRemoveField');
|
|
611
|
+
if (typeof data.__v == 'number' && data.__v != existingdata.__v) {
|
|
612
|
+
throw new BadRequestException(`You submit older version data "v${data.__v}"" but latest version = "v${existingdata.__v}"`);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
// Prepare update audit data
|
|
616
|
+
const auditData = {
|
|
617
|
+
...appuser.getUpdateFilter(),
|
|
618
|
+
__v: existingdata.__v + 1,
|
|
619
|
+
};
|
|
620
|
+
|
|
621
|
+
// Start transaction
|
|
622
|
+
const dbsession = appuser.getDBSession();
|
|
623
|
+
if (dbsession && !dbsession.inTransaction() && !noStartTransaction) {
|
|
624
|
+
dbsession.startTransaction({ readConcern: { level: 'snapshot' }, writeConcern: { w: 'majority' }, readPreference: 'primary' });
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
// Isolation filter
|
|
628
|
+
const isolationFilter = { ...this.getIsolationFilter(appuser) };
|
|
629
|
+
this.polishIsolationFilter(isolationFilter);
|
|
630
|
+
isolationFilter['_id'] = id;
|
|
631
|
+
|
|
632
|
+
// Prevent unset _id
|
|
633
|
+
delete data['_id'];
|
|
634
|
+
|
|
635
|
+
const result = await this.doc.findOneAndUpdate(
|
|
636
|
+
isolationFilter,
|
|
637
|
+
{
|
|
638
|
+
$unset: data,
|
|
639
|
+
$set: auditData,
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
session: dbsession,
|
|
643
|
+
new: true,
|
|
644
|
+
},
|
|
645
|
+
);
|
|
646
|
+
|
|
647
|
+
// Add audit event
|
|
648
|
+
await this.addAuditEvent(appuser, this.documentName, id, 'update', data);
|
|
649
|
+
|
|
650
|
+
appuser.addUpdatedRecordId(this.documentName, data._id);
|
|
651
|
+
|
|
652
|
+
return result;
|
|
653
|
+
} catch (err) {
|
|
654
|
+
this.logger.error(err);
|
|
655
|
+
throw new InternalServerErrorException(err.message);
|
|
656
|
+
}
|
|
657
|
+
};
|
|
658
|
+
|
|
604
659
|
findIdThenUpdate = async (appuser: UserContext, id: string, data: T, noStartTransaction: boolean = false) => {
|
|
605
660
|
try {
|
|
606
661
|
//version exists, need ensure different only 1
|
|
@@ -787,8 +842,8 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
787
842
|
}
|
|
788
843
|
const searchResult = await this.search(appUser, filter, []);
|
|
789
844
|
const ids = searchResult.map((row) => row._id);
|
|
790
|
-
const result = await this.doc.deleteMany({ _id: { $in: ids } });
|
|
791
|
-
console.log(`Delete ${this.documentName} ids`, ids, result);
|
|
845
|
+
const result = await this.doc.deleteMany({ _id: { $in: ids } }, { session: dbsession });
|
|
846
|
+
// console.log(`Delete ${this.documentName} ids`, ids, result);
|
|
792
847
|
for (const id of ids) {
|
|
793
848
|
appUser.addDeletedRecordId(this.documentName, id);
|
|
794
849
|
}
|
|
@@ -848,13 +903,12 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
848
903
|
//not deleted in current session, check from database
|
|
849
904
|
const filter = {};
|
|
850
905
|
filter[fkey] = id;
|
|
851
|
-
const result:any = await collection.findOne(filter, {
|
|
906
|
+
const result: any = await collection.findOne(filter, {
|
|
852
907
|
session: appuser.getDBSession(),
|
|
853
908
|
});
|
|
854
909
|
if (result) {
|
|
855
910
|
//record deleted but not yet commit, safely ignore
|
|
856
|
-
if(appuser.searchDeletedRecordId(collectionname, result._id))continue;
|
|
857
|
-
|
|
911
|
+
if (appuser.searchDeletedRecordId(collectionname, result._id)) continue;
|
|
858
912
|
|
|
859
913
|
this.logger.error(result, `related result found in ${collectionname} ${fkey} = ${id}`);
|
|
860
914
|
return result;
|
|
@@ -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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"}
|