@simitgroup/simpleapp-generator 2.0.1-p-alpha → 2.0.1-r-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 +8 -3
- 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/framework/base/simple-app.service.ts.eta +69 -12
- package/templates/nuxt/components/simpleApp/SimpleAppAutocomplete.vue.eta +6 -10
- 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,14 +1,19 @@
|
|
|
1
|
-
[2.0.
|
|
1
|
+
[2.0.1r-alpha]
|
|
2
2
|
|
|
3
|
-
1.
|
|
3
|
+
1. Add findIdThenUnsetField
|
|
4
4
|
|
|
5
|
+
[2.0.1q-alpha]
|
|
5
6
|
|
|
7
|
+
1. fixagain delete record cant work in transactions, sharded env
|
|
8
|
+
|
|
9
|
+
[2.0.1p-alpha]
|
|
10
|
+
|
|
11
|
+
1. fix delete record cant work in transactions, sharded env
|
|
6
12
|
|
|
7
13
|
[2.0.1o-alpha]
|
|
8
14
|
|
|
9
15
|
1. fetch branch image url, and fix maintenance mode data
|
|
10
16
|
|
|
11
|
-
|
|
12
17
|
[2.0.1n-alpha]
|
|
13
18
|
|
|
14
19
|
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
|
@@ -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
|
|
|
@@ -559,7 +559,7 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
559
559
|
|
|
560
560
|
// if (this.hooks.beforeDelete) await this.hooks.beforeDelete(appuser, id, deletedata);
|
|
561
561
|
this.logger.debug('delete record', this.documentName, id);
|
|
562
|
-
await this.
|
|
562
|
+
dependency = await this.getRelatedRecords(appuser, id);
|
|
563
563
|
if (!dependency) {
|
|
564
564
|
const filterIsolation = this.getIsolationFilter(appuser);
|
|
565
565
|
this.polishIsolationFilter(filterIsolation);
|
|
@@ -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
|
|
@@ -780,21 +835,20 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
780
835
|
throw new InternalServerErrorException(err.message);
|
|
781
836
|
}
|
|
782
837
|
};
|
|
783
|
-
async deleteMany(appUser:UserContext, filter: FilterQuery<T>){
|
|
838
|
+
async deleteMany(appUser: UserContext, filter: FilterQuery<T>) {
|
|
784
839
|
const dbsession = appUser.getDBSession();
|
|
785
840
|
if (dbsession && !dbsession.inTransaction()) {
|
|
786
841
|
dbsession.startTransaction({ readConcern: { level: 'snapshot' }, writeConcern: { w: 'majority' }, readPreference: 'primary' });
|
|
787
842
|
}
|
|
788
|
-
const searchResult = await this.search(appUser,filter,[])
|
|
789
|
-
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)
|
|
792
|
-
for(const id of ids){
|
|
793
|
-
appUser.addDeletedRecordId(this.documentName,id)
|
|
843
|
+
const searchResult = await this.search(appUser, filter, []);
|
|
844
|
+
const ids = searchResult.map((row) => row._id);
|
|
845
|
+
const result = await this.doc.deleteMany({ _id: { $in: ids } }, { session: dbsession });
|
|
846
|
+
// console.log(`Delete ${this.documentName} ids`, ids, result);
|
|
847
|
+
for (const id of ids) {
|
|
848
|
+
appUser.addDeletedRecordId(this.documentName, id);
|
|
794
849
|
}
|
|
795
|
-
return result
|
|
850
|
+
return result;
|
|
796
851
|
//updateMany(isolationFilter, { $set: patch }, { session: dbsession });
|
|
797
|
-
|
|
798
852
|
}
|
|
799
853
|
async patchMany<T>(appuser: UserContext, data: PatchManyRequest<T>) {
|
|
800
854
|
// filter = {
|
|
@@ -849,10 +903,13 @@ export class SimpleAppService<T extends SchemaFields> {
|
|
|
849
903
|
//not deleted in current session, check from database
|
|
850
904
|
const filter = {};
|
|
851
905
|
filter[fkey] = id;
|
|
852
|
-
const result = await collection.findOne(filter, {
|
|
906
|
+
const result: any = await collection.findOne(filter, {
|
|
853
907
|
session: appuser.getDBSession(),
|
|
854
908
|
});
|
|
855
909
|
if (result) {
|
|
910
|
+
//record deleted but not yet commit, safely ignore
|
|
911
|
+
if (appuser.searchDeletedRecordId(collectionname, result._id)) continue;
|
|
912
|
+
|
|
856
913
|
this.logger.error(result, `related result found in ${collectionname} ${fkey} = ${id}`);
|
|
857
914
|
return result;
|
|
858
915
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<button
|
|
7
7
|
type="button"
|
|
8
8
|
:readonly="readonly"
|
|
9
|
-
class="cursor-pointer text-primary-600"
|
|
9
|
+
class="cursor-pointer text-primary-600 line-clamp-1 text-left w-full"
|
|
10
10
|
tabindex="0"
|
|
11
11
|
@click="openViewer(true)"
|
|
12
12
|
>
|
|
@@ -22,15 +22,13 @@
|
|
|
22
22
|
:id="inputId"
|
|
23
23
|
ref="autocompleteinput"
|
|
24
24
|
type="button"
|
|
25
|
-
class="cursor-pointer text-primary-600 flex-1 text-left"
|
|
25
|
+
class="cursor-pointer text-primary-600 flex-1 text-left line-clamp-1"
|
|
26
26
|
@click="openViewer(false)"
|
|
27
27
|
>
|
|
28
28
|
{{ modelValue && modelValue.label ? modelValue.label : "-" }}
|
|
29
29
|
</button>
|
|
30
30
|
|
|
31
|
-
<div
|
|
32
|
-
class="text-right text-white align-middle"
|
|
33
|
-
>
|
|
31
|
+
<div class="text-right text-white align-middle">
|
|
34
32
|
<button
|
|
35
33
|
type="button"
|
|
36
34
|
class="pi pi-times rounded-full bg-slate-500 p-1 cursor-pointer text-xs"
|
|
@@ -78,9 +76,7 @@
|
|
|
78
76
|
>
|
|
79
77
|
<template #header>
|
|
80
78
|
<slot name="header">
|
|
81
|
-
<div
|
|
82
|
-
class="flex flex-row font font-semibold text-sm gap-2 p-2"
|
|
83
|
-
>
|
|
79
|
+
<div class="flex flex-row font font-semibold text-sm gap-2 p-2">
|
|
84
80
|
<div class="w w-1/3 line-clamp-1">
|
|
85
81
|
{{ t(codefield) ?? t("code") }}
|
|
86
82
|
</div>
|
|
@@ -128,14 +124,14 @@
|
|
|
128
124
|
<mobile-toolbar>
|
|
129
125
|
<template #start>
|
|
130
126
|
<ButtonText @click="mobileVisible = false">
|
|
131
|
-
<i class="pi pi-times"/>
|
|
127
|
+
<i class="pi pi-times" />
|
|
132
128
|
</ButtonText>
|
|
133
129
|
</template>
|
|
134
130
|
<template #center>
|
|
135
131
|
<TextTitle class="text-white">{{ t(docname) }}</TextTitle>
|
|
136
132
|
</template>
|
|
137
133
|
<template #end>
|
|
138
|
-
<div/>
|
|
134
|
+
<div />
|
|
139
135
|
<!-- <ButtonText @click="openViewer(false)">
|
|
140
136
|
<i class="pi pi-plus"></i>
|
|
141
137
|
</ButtonText> -->
|
|
@@ -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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"}
|