@simitgroup/simpleapp-generator 2.0.1-y-alpha → 2.0.2-a-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.
Files changed (48) hide show
  1. package/ReleaseNote.md +12 -0
  2. package/dist/buildinschemas/autoincreament.js +1 -1
  3. package/dist/buildinschemas/docnoformat.js +1 -1
  4. package/dist/buildinschemas/docnoformat.js.map +1 -1
  5. package/dist/buildinschemas/documentevent.js +1 -1
  6. package/dist/buildinschemas/message.d.ts +3 -0
  7. package/dist/buildinschemas/message.d.ts.map +1 -0
  8. package/dist/buildinschemas/message.js +34 -0
  9. package/dist/buildinschemas/message.js.map +1 -0
  10. package/dist/buildinschemas/webhookhistory.d.ts +3 -0
  11. package/dist/buildinschemas/webhookhistory.d.ts.map +1 -0
  12. package/dist/buildinschemas/webhookhistory.js +44 -0
  13. package/dist/buildinschemas/webhookhistory.js.map +1 -0
  14. package/dist/createproject.js +138 -0
  15. package/dist/createproject.js.map +1 -0
  16. package/dist/generate-allow-changebackend.js +305 -0
  17. package/dist/generate-allow-changebackend.js.map +1 -0
  18. package/dist/index2.js +118 -0
  19. package/dist/index2.js.map +1 -0
  20. package/dist/installdependency.js +20 -0
  21. package/dist/installdependency.js.map +1 -0
  22. package/dist/installnest.js +2 -0
  23. package/dist/installnest.js.map +1 -0
  24. package/dist/installnuxt.js +2 -0
  25. package/dist/installnuxt.js.map +1 -0
  26. package/dist/processors/groupsbuilder.js +2 -0
  27. package/dist/processors/groupsbuilder.js.map +1 -0
  28. package/dist/schematype/baseschema.js +25 -0
  29. package/dist/schematype/baseschema.js.map +1 -0
  30. package/dist/schematype/default.js +2 -0
  31. package/dist/schematype/default.js.map +1 -0
  32. package/dist/schematype/index.js +12 -0
  33. package/dist/schematype/index.js.map +1 -0
  34. package/dist/schematype/primarymasterdata.js +38 -0
  35. package/dist/schematype/primarymasterdata.js.map +1 -0
  36. package/dist/schematype/simple.js +24 -0
  37. package/dist/schematype/simple.js.map +1 -0
  38. package/dist/schematype/simplemasterdata.js +31 -0
  39. package/dist/schematype/simplemasterdata.js.map +1 -0
  40. package/dist/schematype/transaction.js +74 -0
  41. package/dist/schematype/transaction.js.map +1 -0
  42. package/package.json +1 -1
  43. package/templates/basic/miniApi/resource.controller.ts.eta +3 -1
  44. package/templates/basic/nest/controller.ts.eta +1 -0
  45. package/templates/nest/src/simple-app/_core/features/document-no-format/document-no-format.service.ts.eta +19 -13
  46. package/templates/nest/src/simple-app/_core/features/user-context/user.context.ts.eta +1 -0
  47. package/templates/nest/src/simple-app/_core/framework/simple-app.interceptor.ts.eta +1 -1
  48. package/templates/nuxt/app.vue.eta +1 -1
package/ReleaseNote.md CHANGED
@@ -1,3 +1,15 @@
1
+ [2.0.2a-alpha]
2
+
3
+ 1. interceptor set await close session
4
+ 2. allow use env variable skip session in document numbering generator
5
+ 3. some partial type improvement
6
+ 4. fix some document no format
7
+
8
+
9
+ [2.0.1z-alpha]
10
+
11
+ 1. Handle whitelist confirm and void api
12
+
1
13
  [2.0.1y-alpha]
2
14
 
3
15
  1. Handle whitelist confirm and void api
@@ -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: 'Autoincreament',
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: '[Docnoformat]',
20
+ responseType: '[DocumentNoFormat]',
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,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"}
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,oBAAoB;gBAClC,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"}
@@ -42,7 +42,7 @@ exports.documentevent = {
42
42
  ],
43
43
  examples: ['create', 'delete']
44
44
  },
45
- eventdata: {}
45
+ eventData: {}
46
46
  }
47
47
  };
48
48
  //# sourceMappingURL=documentevent.js.map
@@ -0,0 +1,3 @@
1
+ import { SchemaType } from '../type';
2
+ export declare const docnoformat: SchemaType;
3
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,34 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ import { SchemaType } from '../type';
2
+ export declare const webhookhistory: SchemaType;
3
+ //# sourceMappingURL=webhookhistory.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,44 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,138 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createproject.js","sourceRoot":"","sources":["../src/createproject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA4C;AAC5C,2BAA2C;AAC3C,sDAAuC;AACvC,iCAAwC;AACxC,MAAM,GAAG,GAAoB,IAAI,cAAM,EAAE,CAAC;AAG1C,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAE/B,MAAO,WAAW,GAAE,CAAC,QAAQ,EAAC,EAAE;IAC5B,OAAQ,IAAA,oBAAI,EAAC,QAAQ,EAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;QAC3C,IAAG,KAAK,EAAC;YACL,MAAM,CAAC,mBAAmB,CAAC,CAAA;SAC9B;aAAI;YACD,QAAQ,EAAE,CAAA;SACb;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAC,EAAE;IAC7B,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACnC,OAAQ,IAAA,oBAAI,EAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;QAC5C,IAAG,KAAK,EAAC;YACL,OAAQ,IAAA,oBAAI,EAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;gBAC1D,QAAQ,EAAE,CAAA;YACd,CAAC,CAAC,CAAA;SACL;aAAI;YACD,QAAQ,EAAE,CAAA;SACb;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IACxC,GAAG,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAA;IACxG,OAAO,MAAM,IAAA,oBAAI,EAAC,0EAA0E,CAAC,CAAA;AACjG,CAAC,CAAA;AAHY,QAAA,iBAAiB,qBAG7B;AACM,MAAM,UAAU,GAAE,CAAC,YAAmB,EAAC,QAAQ,EAAC,EAAE;IACrD,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IAEpD,GAAG,CAAC,IAAI,CAAC,0BAA0B,YAAY,8BAA8B,CAAC,CAAA;IAC9E,IAAA,oBAAI,EAAC,MAAM,YAAY,yHAAyH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;QAC3K,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAA,oBAAI,EAAC,MAAM,YAAY,uMAAuM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;YACzP,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAElC,IAAA,cAAS,EAAC,GAAG,YAAY,cAAc,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;YACzD,IAAA,cAAS,EAAC,GAAG,YAAY,UAAU,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;YACrD,IAAA,cAAS,EAAC,GAAG,YAAY,aAAa,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;YACxD,IAAA,cAAS,EAAC,GAAG,YAAY,aAAa,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;YACxD,IAAA,cAAS,EAAC,GAAG,YAAY,QAAQ,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;YACnD,IAAA,cAAS,EAAC,GAAG,YAAY,UAAU,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;YACrD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,SAAS,CAAC,WAAW,OAAO,EAAC,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAC,EAAE,CAAA;YAClB,MAAM,MAAM,GAAG;gBACX,eAAe,EAAC,SAAS;gBACzB,mCAAmC,EAAC,6BAA6B;gBACjE,4BAA4B,EAAC,sBAAsB;gBACnD,iCAAiC,EAAC,2BAA2B;gBAC7D,mCAAmC,EAAC,kCAAkC;gBACtE,2BAA2B,EAAC,qBAAqB;gBACjD,qBAAqB,EAAC,qBAAqB;gBAC3C,sBAAsB,EAAC,gBAAgB;gBACvC,uBAAuB,EAAC,iBAAiB;gBACzC,4BAA4B,EAAC,sBAAsB;gBACnD,0BAA0B,EAAC,oBAAoB;gBAC/C,oBAAoB,EAAC,yBAAyB;gBAC9C,WAAW,EAAC,MAAM;aACrB,CAAA;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;YACpD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACjC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAE,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAA;gBACzC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,CAAA;gBACzB,IAAA,kBAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAC5B;YAED,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YAClC,QAAQ,EAAE,CAAA;QACV,CAAC,CAAC,CAAA;IAEN,CAAC,CAAC,CAAA;AAEN,CAAC,CAAA;AAlDY,QAAA,UAAU,cAkDtB;AAEM,MAAM,UAAU,GAAE,CAAC,YAAmB,EAAC,QAAQ,EAAC,EAAE;IACzD,2CAA2C;IAEvC,GAAG,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAA;IACpD,IAAA,oBAAI,EAAC,MAAM,YAAY,gGAAgG,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;QACnJ,mCAAmC;QACnC,IAAG,CAAC,KAAK,EAAC;YACN,IAAA,oBAAI,EAAC,gDAAgD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;gBAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAC,KAAK,EAAE,SAAS,CAAC,WAAW,EAAC,CAAC,CAAC;gBACpD,MAAM,SAAS,GAAC,EAAE,CAAA;gBAClB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBAEzD,IAAA,kBAAa,EAAC,GAAG,YAAY,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC9C,IAAA,kBAAa,EAAC,GAAG,YAAY,cAAc,EAAE,OAAO,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,GAAC,GAAG,GAAC,GAAG,YAAY,gBAAgB,CAAA;gBACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;gBACtC,QAAQ,CAAC,eAAe,CAAC,eAAe,GAAC,IAAI,CAAA;gBAC7C,QAAQ,CAAC,eAAe,CAAC,iBAAiB,GAAC,IAAI,CAAA;gBAC/C,IAAA,kBAAa,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEtD,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;gBAClC,QAAQ,EAAE,CAAA;YACd,CAAC,CAAC,CAAA;SACD;aAAK;YACN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACjB,MAAM,KAAK,CAAA;SACV;IACL,CAAC,CAAC,CAAA;IACF,GAAG;IACP,yBAAyB;AAEzB,CAAC,CAAA;AAhCY,QAAA,UAAU,cAgCtB"}
@@ -0,0 +1,305 @@
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.initialize = void 0;
27
+ // import { readFormBuilder } from './processors/formbuilder.tsa';
28
+ // import { readJsonSchemaBuilder } from './processors/jsonschemabuilder';
29
+ const constants = __importStar(require("./constant"));
30
+ const jsonschemabuilder_1 = require("./processors/jsonschemabuilder");
31
+ const storage_1 = require("./storage");
32
+ const tslog_1 = require("tslog");
33
+ const log = new tslog_1.Logger();
34
+ const clc = require("cli-color");
35
+ const path = require('path');
36
+ const fs_1 = require("fs");
37
+ const { Eta } = require('eta');
38
+ const { capitalizeFirstLetter } = require('./libs');
39
+ const X_DOCUMENT_TYPE = 'x-document-type';
40
+ const X_DOCUMENT_NAME = 'x-document-name';
41
+ const X_COLLECTION_NAME = 'x-collection-name';
42
+ const extFb = '.xfb.json';
43
+ const extHfb = '.xhfb.json';
44
+ const extjsonschema = '.jsonschema.json';
45
+ let jsonschemas = {};
46
+ const docs = [];
47
+ const initialize = async (defFolder, bpmnFolder, backendfolder, frontendfolder, callback) => {
48
+ prepareEnvironments(backendfolder, frontendfolder);
49
+ let activatemodules = [];
50
+ //
51
+ /*
52
+ load available bpmn into array
53
+ */
54
+ const files = (0, fs_1.readdirSync)(defFolder);
55
+ // log.warn("all schemas:",files)
56
+ // readdir(defFolder, (err, files) => {
57
+ // files.forEach((file) => {
58
+ for (let j = 0; j < files.length; j++) {
59
+ const file = files[j];
60
+ log.info(`Load ` + clc.green(file));
61
+ const filearr = file.split('.');
62
+ let rendertype = 'basic';
63
+ let docname = filearr[0].toLowerCase();
64
+ let doctype = filearr[1].toLowerCase();
65
+ const jsonstring = (0, fs_1.readFileSync)(defFolder + path.sep + file, 'utf-8');
66
+ let allmodels = {};
67
+ if (file.endsWith(extjsonschema)) {
68
+ const jsondata = JSON.parse(jsonstring);
69
+ rendertype = 'basic';
70
+ jsonschemas[docname] = jsondata;
71
+ // foreignkeys:
72
+ // tmpforeignkeys:TypeForeignKey
73
+ allmodels = await (0, jsonschemabuilder_1.readJsonSchemaBuilder)(doctype, docname, jsondata, storage_1.foreignkeys);
74
+ //foreignkeycatalogues
75
+ // foreignkeys
76
+ generate(docname, doctype, rendertype, allmodels, backendfolder, frontendfolder);
77
+ activatemodules.push({ doctype: doctype, docname: capitalizeFirstLetter(docname), api: jsondata['x-document-api'] });
78
+ }
79
+ else {
80
+ log.warn(`Load ` + clc.yellow(file) + ` but it is not supported`);
81
+ }
82
+ }
83
+ // log.warn("foreignkeys---",foreignkeys)
84
+ log.info("Activated backend modules: ", JSON.stringify(activatemodules));
85
+ // log.info(activatemodules)
86
+ finalize(activatemodules, backendfolder, frontendfolder);
87
+ callback();
88
+ };
89
+ exports.initialize = initialize;
90
+ const generate = (docname, doctype, rendertype, allmodels, backendfolder, frontendfolder) => {
91
+ const targetfolder = `${backendfolder}/src/docs/${doctype}`;
92
+ const frontendpagefolder = `${frontendfolder}/pages/[xorg]`;
93
+ try {
94
+ (0, fs_1.mkdirSync)(targetfolder, { recursive: true });
95
+ (0, fs_1.mkdirSync)(`${frontendfolder}/generate/docs/`, { recursive: true });
96
+ (0, fs_1.mkdirSync)(`${frontendfolder}/simpleapp`, { recursive: true });
97
+ (0, fs_1.mkdirSync)(frontendpagefolder, { recursive: true });
98
+ }
99
+ catch (err) {
100
+ //do nothing if folder exists
101
+ }
102
+ finally {
103
+ const templatefolder = `${constants.templatedir}/${rendertype}`;
104
+ log.info(`- Generate ${docname}, ${doctype}, ${templatefolder}`);
105
+ const eta = new Eta({
106
+ views: templatefolder,
107
+ functionHeader: 'const capitalizeFirstLetter = (str) => str.slice(0, 1).toUpperCase() + str.slice(1);' +
108
+ 'const initType=(str)=>{return ["string","number","boolean","array","object"].includes(str) ? capitalizeFirstLetter(str) : str;}',
109
+ });
110
+ const variables = {
111
+ name: docname,
112
+ doctype: doctype,
113
+ models: allmodels,
114
+ autocompletecode: allmodels[capitalizeFirstLetter(docname)].codeField,
115
+ autocompletename: allmodels[capitalizeFirstLetter(docname)].nameField,
116
+ moreAutoComplete: allmodels[capitalizeFirstLetter(docname)].moreAutoComplete,
117
+ schema: allmodels[capitalizeFirstLetter(docname)].model,
118
+ apiSchemaName: capitalizeFirstLetter(docname),
119
+ typename: capitalizeFirstLetter(docname),
120
+ fullApiSchemaName: doctype + 'apischema.' + capitalizeFirstLetter(docname),
121
+ fullTypeName: doctype + 'type.' + capitalizeFirstLetter(docname),
122
+ jsonschema: jsonschemas[docname],
123
+ bothEndCode: '',
124
+ frontEndCode: '',
125
+ backEndCode: '',
126
+ controllerCode: '',
127
+ apiSchemaCode: '',
128
+ docStatusSettings: allmodels[capitalizeFirstLetter(docname)].docStatusSettings,
129
+ apiSettings: allmodels[capitalizeFirstLetter(docname)].apiSettings,
130
+ requireautocomplete: allmodels[capitalizeFirstLetter(docname)].requireautocomplete,
131
+ isolationtype: allmodels[capitalizeFirstLetter(docname)].isolationtype
132
+ };
133
+ // console.log('generate 2', JSON.stringify(variables));
134
+ // // const txtUISchema = eta.render('./uischema', variables);
135
+ // console.log('generate 4');
136
+ // console.log('generate 2', variables);
137
+ const txtType = eta.render('./type', variables);
138
+ (0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.type.ts`, txtType);
139
+ // compile(jsonschemas[docname], docname).then((txtType: string) => {
140
+ // writeFileSync(`${targetfolder}/${doctype}.type.ts`, txtType);
141
+ // });
142
+ // generate jsonschema object, use for data validation
143
+ const txtJsonSchema = eta.render('./jsonschema', variables);
144
+ (0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.jsonschema.ts`, txtJsonSchema);
145
+ // generate before save source code, wont override after regenerate
146
+ // const customizefilename = `${targetfolder}/${doctype}.beforesave.ts`;
147
+ // if (!existsSync(customizefilename)) {
148
+ // const txtBeforeSave = eta.render('./beforesave', variables);
149
+ // writeFileSync(
150
+ // `${targetfolder}/${doctype}.beforesave.ts`,
151
+ // txtBeforeSave,
152
+ // );
153
+ // }
154
+ // write mongoose model file
155
+ const txtModel = eta.render('./model', variables);
156
+ (0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.model.ts`, txtModel);
157
+ // prepare openapi schema
158
+ const apischemafile = `${targetfolder}/${doctype}.apischema.ts`;
159
+ if ((0, fs_1.existsSync)(apischemafile)) {
160
+ const apischemaCode = (0, fs_1.readFileSync)(apischemafile).toString();
161
+ const regexapischema = /\/\/<begin-apischema-code>([\s\S]*?)\/\/<end-apischema-code>/g;
162
+ const apischemaresult = apischemaCode.match(regexapischema);
163
+ if (apischemaresult) {
164
+ variables.apiSchemaCode = apischemaresult[0];
165
+ }
166
+ else {
167
+ variables.apiSchemaCode = "//<begin-apischema-code>\n//<end-apischema-code>";
168
+ }
169
+ }
170
+ const txtApiSchema = eta.render('./apischema', variables);
171
+ (0, fs_1.writeFileSync)(apischemafile, txtApiSchema);
172
+ // prepare backend classes
173
+ // prepare frontend api client
174
+ const servicefile = `${targetfolder}/${doctype}.service.ts`;
175
+ let bothEndCode = '';
176
+ let backEndCode = '';
177
+ if ((0, fs_1.existsSync)(servicefile)) {
178
+ const servicecodes = (0, fs_1.readFileSync)(servicefile).toString();
179
+ /* extract string bothend and backend, put in back */
180
+ const regex1 = /\/\/<begin-bothend-code>([\s\S]*?)\/\/<end-bothend-code>/g;
181
+ const regex2 = /\/\/<begin-backend-code>([\s\S]*?)\/\/<end-backend-code>/g;
182
+ const bothendresult = servicecodes.match(regex1);
183
+ const backendresult = servicecodes.match(regex2);
184
+ console.log("bothendresult", bothendresult);
185
+ console.log("backendresult", backendresult);
186
+ if (bothendresult) {
187
+ variables.bothEndCode = bothendresult[0];
188
+ }
189
+ else {
190
+ variables.bothEndCode = "//<begin-bothend-code>\n//<end-bothend-code>";
191
+ }
192
+ if (backendresult) {
193
+ variables.backEndCode = backendresult[0];
194
+ }
195
+ else {
196
+ variables.backEndCode = "//<begin-backend-code>\n//<end-backend-code>";
197
+ }
198
+ }
199
+ const txtService = eta.render('./service', variables);
200
+ (0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.service.ts`, txtService);
201
+ // prepare api router, allow add more api and wont override after regenerate
202
+ const controllerfile = `${targetfolder}/${doctype}.controller.ts`;
203
+ let controllerCode = '';
204
+ if ((0, fs_1.existsSync)(controllerfile)) {
205
+ /* extract customized controller, put in back */
206
+ const controllersourcecodes = (0, fs_1.readFileSync)(controllerfile).toString();
207
+ const controllerregex = /\/\/<begin-controller-code>([\s\S]*?)\/\/<end-controller-code>/g;
208
+ const controllerresult = controllersourcecodes.match(controllerregex);
209
+ if (controllerresult) {
210
+ controllerCode = controllerresult[0];
211
+ }
212
+ }
213
+ variables.controllerCode = controllerCode != '' ? controllerCode : "\n//<begin-controller-code>\n//<end-controller-code>";
214
+ const txtController = eta.render('./controller', variables);
215
+ (0, fs_1.writeFileSync)(controllerfile, txtController);
216
+ // prepare module
217
+ const txtModule = eta.render('./module', variables);
218
+ (0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.module.ts`, txtModule);
219
+ // prepare readme
220
+ // const txtReadme = eta.render('./readme', variables);
221
+ // writeFileSync(`${targetfolder}/README.md`, txtReadme);
222
+ const frontendclient = `${frontendfolder}/generate/docs/${variables.typename}Client.ts`;
223
+ // let frontEndCode = '';
224
+ // if (existsSync(frontendfile)) {
225
+ // const clientcodes = readFileSync(frontendfile).toString();
226
+ /* extract string frontend code, put in back */
227
+ // const regex3 =
228
+ // /\/\/<begin-frontend-code>([\s\S]*?)\/\/<end-frontend-code>/g;
229
+ // const frontendresult = clientcodes.match(regex3);
230
+ // if (frontendresult) {
231
+ // frontEndCode = frontendresult[0];
232
+ // }
233
+ // }
234
+ // variables.frontEndCode = frontEndCode ?? '';
235
+ const txtClient = eta.render('./simpleappclient.eta', variables);
236
+ (0, fs_1.writeFileSync)(frontendclient, txtClient);
237
+ const frontenddoc = `${frontendfolder}/simpleapp/${variables.typename}Doc.ts`;
238
+ const txtDoc = eta.render('./simpleappdoc.eta', variables);
239
+ (0, fs_1.writeFileSync)(frontenddoc, txtDoc);
240
+ generateClientPage(variables, eta, frontendpagefolder);
241
+ log.info(`- write completed: ${doctype}`);
242
+ }
243
+ };
244
+ const generateClientPage = (variables, eta, frontendpagefolder) => {
245
+ const docname = variables.name;
246
+ const targetfolder = `${frontendpagefolder}/${docname}`;
247
+ const overridefilename = `${targetfolder}/delete-me-for-avoid-override`;
248
+ if (!(0, fs_1.existsSync)(targetfolder)) {
249
+ (0, fs_1.mkdirSync)(targetfolder);
250
+ (0, fs_1.writeFileSync)(overridefilename, 'delete this file to prevent override by generator');
251
+ }
252
+ if ((0, fs_1.existsSync)(overridefilename)) {
253
+ const txtIndex = eta.render('./pageindex.vue.eta', variables);
254
+ const txtIndexwithid = eta.render('./pageindexwithid.vue.eta', variables);
255
+ (0, fs_1.writeFileSync)(`${targetfolder}/index.vue`, txtIndex);
256
+ (0, fs_1.writeFileSync)(`${targetfolder}/[id].vue`, txtIndexwithid);
257
+ }
258
+ };
259
+ const prepareEnvironments = (backendfolder, frontendfolder) => {
260
+ const targetfolder = `${backendfolder}/src/class`;
261
+ const targetfrontendfolder = `${frontendfolder}/server/api`;
262
+ try {
263
+ (0, fs_1.mkdirSync)(targetfolder, { recursive: true });
264
+ (0, fs_1.mkdirSync)(targetfrontendfolder, { recursive: true });
265
+ }
266
+ catch (error) {
267
+ //do nothing
268
+ }
269
+ (0, fs_1.copyFileSync)(`${constants.templatedir}/nest/SimpleAppService.eta`, `${targetfolder}/SimpleAppService.ts`);
270
+ (0, fs_1.copyFileSync)(`${constants.templatedir}/nest/SimpleAppController.eta`, `${targetfolder}/SimpleAppController.ts`);
271
+ (0, fs_1.copyFileSync)(`${constants.templatedir}/nest/Workflow.eta`, `${targetfolder}/Workflow.ts`);
272
+ (0, fs_1.copyFileSync)(`${constants.templatedir}/nest/TenantMiddleware.eta`, `${targetfolder}/TenantMiddleware.ts`);
273
+ (0, fs_1.copyFileSync)(`${constants.templatedir}/nest/UserProvider.eta`, `${targetfolder}/UserProvider.ts`);
274
+ //copy over frontend apiabstract class
275
+ // copyFileSync(`${constants.templatedir}/nuxt.apigateway.eta`,`${targetfrontendfolder}/[...].ts`)
276
+ //prepare backend config.ts
277
+ //copy over frontend config.ts
278
+ };
279
+ const finalize = (modules, backendfolder, frontendfolder) => {
280
+ log.info("Finalizing");
281
+ (0, fs_1.mkdirSync)(`${backendfolder}/src/dicts/`, { recursive: true });
282
+ (0, fs_1.mkdirSync)(`${frontendfolder}/composables/`, { recursive: true });
283
+ const writefiles = {
284
+ './nest/app.module.eta': `${backendfolder}/src/app.module.ts`,
285
+ './nest/app.service.eta': `${backendfolder}/src/app.service.ts`,
286
+ './nest/app.controller.eta': `${backendfolder}/src/app.controller.ts`,
287
+ './nuxt/composables.getautocomplete.ts.eta': `${frontendfolder}/composables/getAutocomplete.ts`,
288
+ './nuxt/composables.getmenus.ts.eta': `${frontendfolder}/composables/getMenus.ts`,
289
+ './nuxt/composables.stringHelper.ts.eta': `${frontendfolder}/composables/stringHelper.ts`,
290
+ './nuxt/composables.gettenant.ts.eta': `${frontendfolder}/composables/getTenant.ts`,
291
+ './nuxt/plugins.50.simpleapp-client.ts.eta': `${frontendfolder}/plugins/50.simpleapp-client.ts`
292
+ };
293
+ const eta = new Eta({ views: constants.templatedir });
294
+ const sources = Object.getOwnPropertyNames(writefiles);
295
+ for (let i = 0; i < sources.length; i++) {
296
+ const templatename = sources[i];
297
+ const targetfile = writefiles[templatename];
298
+ log.info("write:", targetfile);
299
+ (0, fs_1.writeFileSync)(targetfile, eta.render(templatename, modules));
300
+ }
301
+ const foreignkeyfile = `${backendfolder}/src/dicts/foreignkeys.json`;
302
+ (0, fs_1.writeFileSync)(foreignkeyfile, JSON.stringify(storage_1.foreignkeys));
303
+ log.info("write to foreignkey file ", foreignkeyfile);
304
+ };
305
+ //# sourceMappingURL=generate-allow-changebackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-allow-changebackend.js","sourceRoot":"","sources":["../src/generate-allow-changebackend.ts"],"names":[],"mappings":"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"}