@simitgroup/simpleapp-generator 2.0.0-q-alpha → 2.0.0-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.
Files changed (51) hide show
  1. package/ReleaseNote.md +6 -3
  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/generate.js +1 -0
  19. package/dist/generate.js.map +1 -1
  20. package/dist/index2.js +118 -0
  21. package/dist/index2.js.map +1 -0
  22. package/dist/installdependency.js +20 -0
  23. package/dist/installdependency.js.map +1 -0
  24. package/dist/installnest.js +2 -0
  25. package/dist/installnest.js.map +1 -0
  26. package/dist/installnuxt.js +2 -0
  27. package/dist/installnuxt.js.map +1 -0
  28. package/dist/processors/groupsbuilder.js +2 -0
  29. package/dist/processors/groupsbuilder.js.map +1 -0
  30. package/dist/schematype/baseschema.js +25 -0
  31. package/dist/schematype/baseschema.js.map +1 -0
  32. package/dist/schematype/default.js +2 -0
  33. package/dist/schematype/default.js.map +1 -0
  34. package/dist/schematype/index.js +12 -0
  35. package/dist/schematype/index.js.map +1 -0
  36. package/dist/schematype/primarymasterdata.js +38 -0
  37. package/dist/schematype/primarymasterdata.js.map +1 -0
  38. package/dist/schematype/simple.js +24 -0
  39. package/dist/schematype/simple.js.map +1 -0
  40. package/dist/schematype/simplemasterdata.js +31 -0
  41. package/dist/schematype/simplemasterdata.js.map +1 -0
  42. package/dist/schematype/transaction.js +74 -0
  43. package/dist/schematype/transaction.js.map +1 -0
  44. package/package.json +1 -1
  45. package/src/generate.ts +1 -0
  46. package/templates/basic/miniApi/resource.controller.ts.eta +16 -12
  47. package/templates/basic/miniApi/resource.service.ts.eta +12 -8
  48. package/templates/nest/src/simple-app/_core/features/mini-app/developer-portal/developer-portal.service.ts.eta +27 -11
  49. package/templates/nest/src/simple-app/_core/features/mini-app/mini-app.module.ts.eta +32 -4
  50. package/templates/nest/src/simple-app/_core/features/user-context/user.context.ts.eta +56 -35
  51. package/templates/nest/src/simple-app/simple-app.module.ts.eta +8 -3
package/ReleaseNote.md CHANGED
@@ -1,13 +1,16 @@
1
- [2.0.0q-alpha]
1
+ [2.0.0r-alpha]
2
+ 1. Fix Developer Portal
2
3
 
4
+ [2.0.0q-alpha]
3
5
  1. Fixed ts log version
4
6
 
5
7
  [2.0.0p-alpha]
6
-
7
8
  1. Test
8
9
 
9
- [2.0.0o-alpha]
10
+ [2.0.0p-alpha]
11
+ 1. auto add imageUrl for those schema have uploadPhoto
10
12
 
13
+ [2.0.0o-alpha]
11
14
  1. Fix create many bugs
12
15
  2. support request multiple number
13
16
 
@@ -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