@simitgroup/simpleapp-generator 2.0.0-z-alpha → 2.0.1-b-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ReleaseNote.md +10 -0
- package/dist/buildinschemas/autoincreament.js +1 -1
- package/dist/buildinschemas/docnoformat.js +1 -1
- package/dist/buildinschemas/docnoformat.js.map +1 -1
- package/dist/buildinschemas/documentevent.js +1 -1
- package/package.json +1 -1
- package/templates/nuxt/composables/getMenus.generate.ts.eta +86 -0
- package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +43 -49
- package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppPageIframe.vue.eta +1 -0
- package/dist/buildinschemas/message.d.ts +0 -3
- package/dist/buildinschemas/message.d.ts.map +0 -1
- package/dist/buildinschemas/message.js +0 -34
- package/dist/buildinschemas/message.js.map +0 -1
- package/dist/buildinschemas/webhookhistory.d.ts +0 -3
- package/dist/buildinschemas/webhookhistory.d.ts.map +0 -1
- package/dist/buildinschemas/webhookhistory.js +0 -44
- package/dist/buildinschemas/webhookhistory.js.map +0 -1
- package/dist/createproject.js +0 -138
- package/dist/createproject.js.map +0 -1
- package/dist/generate-allow-changebackend.js +0 -305
- package/dist/generate-allow-changebackend.js.map +0 -1
- package/dist/index2.js +0 -118
- package/dist/index2.js.map +0 -1
- package/dist/installdependency.js +0 -20
- package/dist/installdependency.js.map +0 -1
- package/dist/installnest.js +0 -2
- package/dist/installnest.js.map +0 -1
- package/dist/installnuxt.js +0 -2
- package/dist/installnuxt.js.map +0 -1
- package/dist/processors/groupsbuilder.js +0 -2
- package/dist/processors/groupsbuilder.js.map +0 -1
- package/dist/schematype/baseschema.js +0 -25
- package/dist/schematype/baseschema.js.map +0 -1
- package/dist/schematype/default.js +0 -2
- package/dist/schematype/default.js.map +0 -1
- package/dist/schematype/index.js +0 -12
- package/dist/schematype/index.js.map +0 -1
- package/dist/schematype/primarymasterdata.js +0 -38
- package/dist/schematype/primarymasterdata.js.map +0 -1
- package/dist/schematype/simple.js +0 -24
- package/dist/schematype/simple.js.map +0 -1
- package/dist/schematype/simplemasterdata.js +0 -31
- package/dist/schematype/simplemasterdata.js.map +0 -1
- package/dist/schematype/transaction.js +0 -74
- package/dist/schematype/transaction.js.map +0 -1
package/ReleaseNote.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
[2.0.1b-alpha]
|
|
2
|
+
|
|
3
|
+
1. Update menu permission
|
|
4
|
+
|
|
5
|
+
[2.0.1a-alpha]
|
|
6
|
+
|
|
7
|
+
1. Add allow clipboard-write for mini app iframe
|
|
8
|
+
|
|
1
9
|
[2.0.0z-alpha]
|
|
10
|
+
|
|
2
11
|
1. add more roles like support, billings
|
|
3
12
|
2. environment allow add more type of users
|
|
4
13
|
3. user context can obtain environment collection value
|
|
@@ -6,6 +15,7 @@
|
|
|
6
15
|
5. improve frontend userstore get xorg method
|
|
7
16
|
|
|
8
17
|
[2.0.0y-alpha]
|
|
18
|
+
|
|
9
19
|
1. Allow mini app adjust built in schema
|
|
10
20
|
|
|
11
21
|
[2.0.0x-alpha]
|
|
@@ -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
|
@@ -67,4 +67,90 @@ export const getMenustFromPageMeta =() =>{
|
|
|
67
67
|
|
|
68
68
|
return allmenus.sort((one:string, two:string) => (one > two ? -1 : 1))
|
|
69
69
|
|
|
70
|
+
}
|
|
71
|
+
export const hasAccessByPageMeta = (pageName: string): boolean => {
|
|
72
|
+
const userGroups = getUserStore().groups || []
|
|
73
|
+
const userRoles = getUserStore().roles || []
|
|
74
|
+
|
|
75
|
+
if (
|
|
76
|
+
userRoles.includes('superadmin') ||
|
|
77
|
+
userRoles.includes('tenantowner') ||
|
|
78
|
+
userRoles.includes('superuser')
|
|
79
|
+
) {
|
|
80
|
+
return true
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const routes = useRouter().getRoutes()
|
|
84
|
+
const route = routes.find((r) => {
|
|
85
|
+
const menuPath = r.meta?.menuPath as string | undefined
|
|
86
|
+
return menuPath && menuPath.endsWith(`/${pageName}`)
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
if (!route || !route.meta) {
|
|
90
|
+
return false
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const requiredGroups = route.meta.requiredGroups as string[] | undefined
|
|
94
|
+
|
|
95
|
+
if (!requiredGroups || requiredGroups.length === 0) {
|
|
96
|
+
return false
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return requiredGroups.some((group) => userGroups.includes(group))
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const getMenusWithPageMetaAccess = (xorg: string): MenuData[] => {
|
|
103
|
+
const routes = useRouter().getRoutes()
|
|
104
|
+
const allowedMenus: MenuData[] = []
|
|
105
|
+
const { getDescription, getIcon, getIconColor } = useSettingsMenu()
|
|
106
|
+
|
|
107
|
+
const menuRoutes = routes.filter((route) => route.meta && route.meta.menuPath)
|
|
108
|
+
|
|
109
|
+
for (const route of menuRoutes) {
|
|
110
|
+
const menuPath = route.meta.menuPath as string
|
|
111
|
+
const requiredGroups = route.meta.requiredGroups as string[] | undefined
|
|
112
|
+
|
|
113
|
+
const pathParts = menuPath.split('/')
|
|
114
|
+
const pageName = pathParts[pathParts.length - 1]
|
|
115
|
+
|
|
116
|
+
if (hasAccessByPageMeta(pageName)) {
|
|
117
|
+
const icon = getIcon(pageName)
|
|
118
|
+
const iconClass = getIconColor(pageName)
|
|
119
|
+
|
|
120
|
+
const menuItem: MenuData = {
|
|
121
|
+
label: t(pageName),
|
|
122
|
+
url: `/${xorg}/${pageName}`,
|
|
123
|
+
isolationType: 'none',
|
|
124
|
+
icon: typeof icon === 'string' ? icon : '',
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
allowedMenus.push(menuItem)
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return allowedMenus
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export const getMenuMetadata = (pageName: string) => {
|
|
135
|
+
const routes = useRouter().getRoutes()
|
|
136
|
+
const route = routes.find((r) => {
|
|
137
|
+
const menuPath = r.meta?.menuPath as string | undefined
|
|
138
|
+
return menuPath && menuPath.endsWith(`/${pageName}`)
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
if (route?.meta) {
|
|
142
|
+
return {
|
|
143
|
+
description: route.meta.description ? t(route.meta.description as string) : t(pageName),
|
|
144
|
+
icon: route.meta.icon || '',
|
|
145
|
+
colorClass: route.meta.colorClass || '',
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const { getDescription, getIcon, getIconColor } = useSettingsMenu()
|
|
150
|
+
|
|
151
|
+
return {
|
|
152
|
+
description: t(getDescription(pageName)),
|
|
153
|
+
icon: getIcon(pageName),
|
|
154
|
+
colorClass: getIconColor(pageName),
|
|
155
|
+
}
|
|
70
156
|
}
|
|
@@ -180,59 +180,57 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
180
180
|
this.roles.includes(permission),
|
|
181
181
|
);
|
|
182
182
|
},
|
|
183
|
-
canPerform(resourcename: string, action: string): boolean {
|
|
183
|
+
canPerform(resourcename: string, action: string): boolean {
|
|
184
|
+
const normalizedResource = resourcename.toLowerCase();
|
|
185
|
+
|
|
184
186
|
if (
|
|
185
187
|
this.roles.includes("superadmin") ||
|
|
186
188
|
this.roles.includes("tenantowner") ||
|
|
187
189
|
this.roles.includes("superuser")
|
|
188
190
|
) {
|
|
189
191
|
return true;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
} else if (resourcename == "Upgradelevel") {
|
|
207
|
-
if (
|
|
208
|
-
this.roles.includes("admin") ||
|
|
209
|
-
this.roles.includes("manager") ||
|
|
210
|
-
this.roles.includes("executive")
|
|
211
|
-
) {
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
} else if (resourcename == "Appintegration") {
|
|
215
|
-
if (this.roles.includes("admin") || this.roles.includes("manager")) {
|
|
216
|
-
return true;
|
|
217
|
-
}
|
|
218
|
-
} else if (resourcename == "Postingtosimbiz") {
|
|
219
|
-
if (this.roles.includes("admin")) {
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const specialCases: Record<string, string[]> = {
|
|
195
|
+
// paymentverify: ["admin", "manager"],
|
|
196
|
+
// reminder: ["admin", "manager"],
|
|
197
|
+
// generateinvoice: ["admin", "manager", "executive"],
|
|
198
|
+
// upgradelevel: ["admin", "manager", "executive"],
|
|
199
|
+
appintegration: ["admin", "manager"],
|
|
200
|
+
miniapp: ["admin", "manager"],
|
|
201
|
+
studentdescription: ["admin", "manager", "executive"],
|
|
202
|
+
miniappinstallation: ["admin", "manager"],
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
if (specialCases[normalizedResource]) {
|
|
206
|
+
const requiredGroups = specialCases[normalizedResource];
|
|
207
|
+
if (requiredGroups.some((group) => this.roles.includes(group))) {
|
|
220
208
|
return true;
|
|
221
209
|
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
try {
|
|
213
|
+
const routes = useRouter().getRoutes();
|
|
214
|
+
const route = routes.find((r) => {
|
|
215
|
+
const menuPath = r.meta?.menuPath as string | undefined;
|
|
216
|
+
return menuPath && menuPath.endsWith(`/${normalizedResource}`);
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
if (route?.meta?.requiredGroups) {
|
|
220
|
+
const requiredGroups = route.meta.requiredGroups as string[];
|
|
221
|
+
const userGroups = this.groups || [];
|
|
222
|
+
|
|
223
|
+
if (requiredGroups.some((group) => userGroups.includes(group))) {
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
229
226
|
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// console.log("verify",checkstr)
|
|
233
|
-
return this.roles.includes(checkstr);
|
|
227
|
+
} catch (e) {
|
|
228
|
+
console.error(e)
|
|
234
229
|
}
|
|
235
|
-
|
|
230
|
+
|
|
231
|
+
const checkstr = `${normalizedResource}:${action}`;
|
|
232
|
+
const checkstrOriginal = `${resourcename}:${action}`;
|
|
233
|
+
return this.roles.includes(checkstr) || this.roles.includes(checkstrOriginal);
|
|
236
234
|
},
|
|
237
235
|
haveAccess(resourcename: string) {
|
|
238
236
|
//super admin always full access right
|
|
@@ -244,11 +242,7 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
244
242
|
this.roles.includes("superuser")
|
|
245
243
|
) {
|
|
246
244
|
return true;
|
|
247
|
-
}
|
|
248
|
-
if (this.roles.includes("admin") || this.roles.includes("manager")) {
|
|
249
|
-
return true;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
245
|
+
}
|
|
252
246
|
for (let i = 0; i < this.roles.length; i++) {
|
|
253
247
|
const role: string = this.roles[i];
|
|
254
248
|
if (role.includes(resourcename)) {
|
|
@@ -339,7 +333,7 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
339
333
|
},
|
|
340
334
|
};
|
|
341
335
|
}
|
|
342
|
-
}
|
|
336
|
+
}
|
|
343
337
|
// else
|
|
344
338
|
//
|
|
345
339
|
}
|
package/templates/nuxt/simpleapp/generate/features/miniApp/app/components/MiniAppPageIframe.vue.eta
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"
|
|
13
13
|
:title="pageInfo.title || t('miniAppLang.content')"
|
|
14
14
|
sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-modals"
|
|
15
|
+
allow="clipboard-write"
|
|
15
16
|
referrerpolicy="origin"
|
|
16
17
|
loading="lazy"
|
|
17
18
|
@error="handleError"
|
|
@@ -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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"}
|