@simitgroup/simpleapp-generator 2.0.2-i-alpha → 2.0.2-l-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 (46) hide show
  1. package/ReleaseNote.md +10 -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/package.json +3 -3
  7. package/templates/miniApi/src/constants/api-scopes.ts.eta +27 -0
  8. package/templates/nest/src/simple-app/_core/features/profile/profile.controller.ts.eta +2 -1
  9. package/templates/nest/src/simple-app/_core/features/profile/profile.service.ts.eta +14 -9
  10. package/templates/nest/src/simple-app/_core/features/user-context/user.context.ts.eta +100 -40
  11. package/dist/buildinschemas/message.d.ts +0 -3
  12. package/dist/buildinschemas/message.d.ts.map +0 -1
  13. package/dist/buildinschemas/message.js +0 -34
  14. package/dist/buildinschemas/message.js.map +0 -1
  15. package/dist/buildinschemas/webhookhistory.d.ts +0 -3
  16. package/dist/buildinschemas/webhookhistory.d.ts.map +0 -1
  17. package/dist/buildinschemas/webhookhistory.js +0 -44
  18. package/dist/buildinschemas/webhookhistory.js.map +0 -1
  19. package/dist/createproject.js +0 -138
  20. package/dist/createproject.js.map +0 -1
  21. package/dist/generate-allow-changebackend.js +0 -305
  22. package/dist/generate-allow-changebackend.js.map +0 -1
  23. package/dist/index2.js +0 -118
  24. package/dist/index2.js.map +0 -1
  25. package/dist/installdependency.js +0 -20
  26. package/dist/installdependency.js.map +0 -1
  27. package/dist/installnest.js +0 -2
  28. package/dist/installnest.js.map +0 -1
  29. package/dist/installnuxt.js +0 -2
  30. package/dist/installnuxt.js.map +0 -1
  31. package/dist/processors/groupsbuilder.js +0 -2
  32. package/dist/processors/groupsbuilder.js.map +0 -1
  33. package/dist/schematype/baseschema.js +0 -25
  34. package/dist/schematype/baseschema.js.map +0 -1
  35. package/dist/schematype/default.js +0 -2
  36. package/dist/schematype/default.js.map +0 -1
  37. package/dist/schematype/index.js +0 -12
  38. package/dist/schematype/index.js.map +0 -1
  39. package/dist/schematype/primarymasterdata.js +0 -38
  40. package/dist/schematype/primarymasterdata.js.map +0 -1
  41. package/dist/schematype/simple.js +0 -24
  42. package/dist/schematype/simple.js.map +0 -1
  43. package/dist/schematype/simplemasterdata.js +0 -31
  44. package/dist/schematype/simplemasterdata.js.map +0 -1
  45. package/dist/schematype/transaction.js +0 -74
  46. package/dist/schematype/transaction.js.map +0 -1
@@ -1,305 +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.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
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-allow-changebackend.js","sourceRoot":"","sources":["../src/generate-allow-changebackend.ts"],"names":[],"mappings":"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"}
package/dist/index2.js DELETED
@@ -1,118 +0,0 @@
1
- #! /usr/bin/env node
2
- "use strict";
3
- var _a, _b, _c, _d;
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- const console_1 = require("console");
6
- const program = require("commander"); // add this line
7
- const Fieldtypes = require('./type');
8
- const generator = require('./generate');
9
- const fs = require('fs');
10
- const createproject = require('./createproject');
11
- const { exec } = require("child_process");
12
- const capitalizeFirstLetter = require('./libs');
13
- const { Logger, ILogObj } = require("tslog");
14
- const log = new Logger();
15
- const figlet = require("figlet");
16
- // const program = new Command();
17
- const pj = require('../package.json');
18
- let version = pj.version;
19
- program
20
- .version(version)
21
- .description("An simpleapp CLI tool for generate frontend (vuejs) and backend(nestjs) codes")
22
- .option("-c, --config-file <value>", 'configuration file content such as:{"definationsFolder":"./definations", "backendFolder":"./nestproject/src/docs", "frontendFolder":"./nuxt/server"}')
23
- // .option("-s, --definations-folder <value>", "load defination files from which folder")
24
- // .option("-b, --backend-folder <value>", "Create backend code at which folder")
25
- // .option("-f, --frontend-folder <value>", "Create frontend code at which folder")
26
- // .option("-i, --openapi3-yaml <value>", 'openapi3.yaml generated by backend server')
27
- .parse(process.argv);
28
- const options = program.opts();
29
- console.log(figlet.textSync(`SimpleApp Generator ${version}`));
30
- // console.log(options)
31
- let path = '';
32
- if (!options.configFile) {
33
- log.error("Config file parameter is required. Example: simpleapp-generator -c ./config.json");
34
- throw "Undefine configuration file";
35
- }
36
- else if (options.configFile && options.configFile[0] == '/') {
37
- path = options.configFile;
38
- }
39
- else if (options.configFile) {
40
- path = process.cwd() + '/' + options.configFile;
41
- }
42
- else {
43
- log.error("undefine configuration file, use command simpleapp-generator -c <configfilename.json>");
44
- throw console_1.error;
45
- }
46
- const configs = require(path);
47
- console.log("configurations: ", configs);
48
- const definationsFolder = (_a = configs.definationsFolder) !== null && _a !== void 0 ? _a : options.definationsFolder;
49
- const backendFolder = (_b = configs.backendFolder) !== null && _b !== void 0 ? _b : options.backendFolder;
50
- const frontendFolder = (_c = configs.frontendFolder) !== null && _c !== void 0 ? _c : options.frontendFolder;
51
- const openapi3Yaml = (_d = configs.openapi3Yaml) !== null && _d !== void 0 ? _d : options.openapi3Yaml;
52
- const runGenNext = async (callback) => {
53
- let isnestready = false;
54
- if (!fs.existsSync(backendFolder)) {
55
- console.log("Nest does not exists, begin install nodejs environment tools: [pnpm, @nestjs/cli, @openapitools/openapi-generator-cli, nuxi]");
56
- isnestready = await exec("npm install -g pnpm @nestjs/cli @openapitools/openapi-generator-cli nuxi", async (a, b, c) => {
57
- console.log("result of environment tools:", a, b, c);
58
- console.log(`Install new nest backend: 'nest new -p pnpm ${backendFolder}'`);
59
- return await exec(`nest new -p pnpm ${backendFolder}`, (a, b, c) => {
60
- console.log("new nest result", a, b, c);
61
- return true;
62
- });
63
- });
64
- }
65
- else {
66
- isnestready = true;
67
- }
68
- if (isnestready) {
69
- if (!fs.existsSync(`${backendFolder}/.env`)) {
70
- log.info(`initial nest configuratoin for simpleapp generator`);
71
- await createNest(backendFolder, callback);
72
- }
73
- else {
74
- log.warn(`.env file exists, skip nest initialization`);
75
- callback();
76
- }
77
- }
78
- else {
79
- log.error('nest not ready, which shouldnot continue');
80
- throw console_1.error;
81
- }
82
- };
83
- const runGenNuxt = async (callback) => {
84
- if (!fs.existsSync(frontendFolder)) {
85
- log.error(`${frontendFolder} does not exists, please run "npx nuxi@latest init ${frontendFolder}"`);
86
- }
87
- else if (!fs.existsSync(`${frontendFolder}/.env`)) {
88
- log.info(`initial nuxt configuratoin for simpleapp generator`);
89
- createNuxt(frontendFolder, callback);
90
- }
91
- else {
92
- log.warn(`.env file exists, skip nuxt initialization`);
93
- callback();
94
- }
95
- };
96
- const generateCode = async () => {
97
- await runGenNext(async () => {
98
- log.info("runGenNext (backen) done");
99
- await runGenNuxt(async () => {
100
- log.info("runGenNuxt (frontend) done");
101
- generator.initialize(definationsFolder, backendFolder, frontendFolder);
102
- exec(`cd ${frontendFolder};npx prettier --write "./pages/**/*.vue" "./simpleapp/**/*" `);
103
- exec(`cd ${backendFolder};npx run format `);
104
- if (openapi3Yaml != '') {
105
- exec(`openapi-generator-cli generate -i ${openapi3Yaml} -o ${frontendFolder}/simpleapp/openapi -g typescript-axios --skip-validate-spec`, (error, stdout, stderr) => {
106
- if (error) {
107
- log.error(stderr);
108
- }
109
- });
110
- }
111
- });
112
- });
113
- };
114
- log.info("generate code: ");
115
- generateCode();
116
- // pnpm exec prettier ./src/docs --write
117
- // pnpm exec prettier ./apiclients --write
118
- //# sourceMappingURL=index2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index2.js","sourceRoot":"","sources":["../src/index2.ts"],"names":[],"mappings":";;;;AAEA,qCAA+B;AAE/B,MAAM,OAAO,GAAI,OAAO,CAAC,WAAW,CAAC,CAAA,CAAC,gBAAgB;AACtD,MAAM,UAAU,GAAE,OAAO,CAAE,QAAQ,CAAC,CAAA;AACpC,MAAM,SAAS,GAAE,OAAO,CAAE,YAAY,CAAC,CAAA;AACvC,MAAM,EAAE,GAAG,OAAO,CAAE,IAAI,CAAC,CAAA;AACzB,MAAO,aAAa,GAAE,OAAO,CAAE,iBAAiB,CAAC,CAAA;AACjD,MAAM,EAAC,IAAI,EAAC,GAAI,OAAO,CAAE,eAAe,CAAC,CAAA;AAEzC,MAAM,qBAAqB,GAAE,OAAO,CAAE,QAAQ,CAAC,CAAA;AAC/C,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,OAAO,CAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,GAAG,GAAiB,IAAI,MAAM,EAAE,CAAC;AAEvC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,iCAAiC;AACjC,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAErC,IAAI,OAAO,GAAC,EAAE,CAAC,OAAO,CAAA;AACtB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,2BAA2B,EAAE,sJAAsJ,CAAC;IAC5L,yFAAyF;IACzF,iFAAiF;IACjF,mFAAmF;IACnF,wFAAwF;KACvF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAGvB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;AAC/D,uBAAuB;AACvB,IAAI,IAAI,GAAC,EAAE,CAAA;AACX,IAAG,CAAC,OAAO,CAAC,UAAU,EAAC;IACrB,GAAG,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAA;IAC7F,MAAM,6BAA6B,CAAA;CACpC;KACI,IAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAE,GAAG,EAAC;IACvD,IAAI,GAAC,OAAO,CAAC,UAAU,CAAA;CACxB;KACI,IAAG,OAAO,CAAC,UAAU,EAAC;IACzB,IAAI,GAAC,OAAO,CAAC,GAAG,EAAE,GAAC,GAAG,GAAC,OAAO,CAAC,UAAU,CAAA;CAC1C;KAAI;IACH,GAAG,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAA;IAClG,MAAM,eAAK,CAAA;CACZ;AACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAC,OAAO,CAAC,CAAA;AACvC,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,iBAAiB,mCAAI,OAAO,CAAC,iBAAiB,CAAA;AAChF,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,aAAa,mCAAI,OAAO,CAAC,aAAa,CAAA;AACpE,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,OAAO,CAAC,cAAc,CAAA;AACvE,MAAM,YAAY,GAAU,MAAA,OAAO,CAAC,YAAY,mCAAI,OAAO,CAAC,YAAY,CAAA;AAExE,MAAM,UAAU,GAAG,KAAK,EAAE,QAAQ,EAAC,EAAE;IACnC,IAAI,WAAW,GAAC,KAAK,CAAA;IACrB,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,8HAA8H,CAAC,CAAA;QAC3I,WAAW,GAAG,MAAM,IAAI,CAAC,0EAA0E,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;YACjH,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA;YACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,aAAa,GAAG,CAAC,CAAA;YAC5E,OAAO,MAAM,IAAI,CAAC,oBAAoB,aAAa,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;gBAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA;gBACpC,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;KACH;SAAI;QACH,WAAW,GAAC,IAAI,CAAA;KACjB;IAID,IAAG,WAAW,EAAC;QACb,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,aAAa,OAAO,CAAC,EAAC;YACzC,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;YAC9D,MAAM,UAAU,CAAC,aAAa,EAAC,QAAQ,CAAC,CAAA;SACzC;aAAI;YACH,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;YACtD,QAAQ,EAAE,CAAA;SACX;KACF;SAAI;QACH,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACrD,MAAM,eAAK,CAAA;KAEZ;AAEH,CAAC,CAAA;AACD,MAAM,UAAU,GAAG,KAAK,EAAE,QAAQ,EAAC,EAAE;IAEnC,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAC;QAChC,GAAG,CAAC,KAAK,CAAC,GAAG,cAAc,sDAAsD,cAAc,GAAG,CAAC,CAAA;KACpG;SAAK,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,cAAc,OAAO,CAAC,EAAC;QAChD,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;QAC9D,UAAU,CAAC,cAAc,EAAC,QAAQ,CAAC,CAAA;KACpC;SAAI;QACH,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QACtD,QAAQ,EAAE,CAAA;KACX;AACH,CAAC,CAAA;AAGD,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;IAE9B,MAAM,UAAU,CAAC,KAAK,IAAG,EAAE;QACzB,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACrC,MAAM,UAAU,CAAE,KAAK,IAAG,EAAE;YACzB,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;YACtC,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAC,aAAa,EAAC,cAAc,CAAC,CAAA;YACpE,IAAI,CAAC,MAAM,cAAc,8DAA8D,CAAC,CAAA;YACxF,IAAI,CAAC,MAAM,aAAa,kBAAkB,CAAC,CAAA;YAC3C,IAAG,YAAY,IAAG,EAAE,EAAC;gBAEnB,IAAI,CAAC,qCAAqC,YAAY,OAAO,cAAc,6DAA6D,EAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;oBAC9J,IAAG,KAAK,EAAC;wBACP,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;qBACnB;gBACH,CAAC,CAAC,CAAC;aACN;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAED,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAC3B,YAAY,EAAE,CAAA;AAId,yCAAyC;AACzC,4CAA4C"}
@@ -1,20 +0,0 @@
1
- #!/bin/bash
2
- "use strict";
3
- npm;
4
- install - g;
5
- pnpm;
6
- /cli @openapitools/openapi - generator - cli;
7
- nuxi;
8
- nest;
9
- new - p;
10
- pnpm;
11
- $backendFolder;
12
- npx;
13
- nuxi;
14
- init;
15
- $;
16
- {
17
- frontendFolder;
18
- }
19
- ";
20
- //# sourceMappingURL=installdependency.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installdependency.js","sourceRoot":"","sources":["../src/installdependency.ts"],"names":[],"mappings":";;AACA,GAAG,CAAA;AAAC,OAAO,GAAE,CAAC,CAAA;AAAC,IAAI,CAAA;AAAQ,0BAA0B,GAAC,SAAS,GAAC,GAAG,CAAA;AAAC,IAAI,CAAA;AACxE,IAAI,CAAA;AAAC,IAAI,AAAD,GAAE,CAAC,CAAA;AAAC,IAAI,CAAA;AAAC,cAAc,CAAA;AAC/B,GAAG,CAAA;AAAC,IAAI,CAAA;AAAQ,IAAI,CAAA;AAAC,CAAC,CAAA;AAAA;IAAC,cAAc,CAAA;CAAC;AAAA,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=installnest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installnest.js","sourceRoot":"","sources":["../src/installnest.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=installnuxt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installnuxt.js","sourceRoot":"","sources":["../src/installnuxt.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=groupsbuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"groupsbuilder.js","sourceRoot":"","sources":["../../src/processors/groupsbuilder.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.baseschema = void 0;
4
- const type_1 = require("../type");
5
- exports.baseschema = {
6
- 'type': 'object',
7
- 'x-simpleapp-config': {
8
- isolationType: type_1.IsolationType.org,
9
- schemaType: type_1.SupportedSchemaType.baseschema,
10
- documentType: '',
11
- documentName: ''
12
- },
13
- properties: {
14
- _id: { type: 'string', description: "system field" },
15
- tenantId: { type: 'integer', default: 1, description: "system field" },
16
- orgId: { type: 'integer', default: 1, description: "system field" },
17
- branchId: { type: 'integer', default: 1, description: "system field" },
18
- created: { type: 'string', description: "system field" },
19
- updated: { type: 'string', description: "system field" },
20
- createdby: { type: 'string', description: "system field" },
21
- updatedby: { type: 'string', description: "system field" },
22
- },
23
- definitions: {}
24
- };
25
- //# sourceMappingURL=baseschema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseschema.js","sourceRoot":"","sources":["../../src/schematype/baseschema.ts"],"names":[],"mappings":";;;AAAA,kCAAoE;AACvD,QAAA,UAAU,GAAc;IACjC,MAAM,EAAC,QAAQ;IACf,oBAAoB,EAAC;QACnB,aAAa,EAAE,oBAAa,CAAC,GAAG;QAChC,UAAU,EAAE,0BAAmB,CAAC,UAAU;QAC1C,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;KACjB;IACD,UAAU,EAAC;QACP,GAAG,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QAC9C,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,cAAc,EAAC;QAC9D,KAAK,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,cAAc,EAAC;QAC3D,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,cAAc,EAAC;QAC9D,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QAClD,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QAClD,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QACpD,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;KACvD;IACD,WAAW,EAAC,EAAE;CACf,CAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=default.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/schematype/default.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transaction = exports.baseschema = exports.primarymasterdata = exports.simplemasterdata = void 0;
4
- var simplemasterdata_1 = require("./simplemasterdata");
5
- Object.defineProperty(exports, "simplemasterdata", { enumerable: true, get: function () { return simplemasterdata_1.simplemasterdata; } });
6
- var primarymasterdata_1 = require("./primarymasterdata");
7
- Object.defineProperty(exports, "primarymasterdata", { enumerable: true, get: function () { return primarymasterdata_1.primarymasterdata; } });
8
- var baseschema_1 = require("./baseschema");
9
- Object.defineProperty(exports, "baseschema", { enumerable: true, get: function () { return baseschema_1.baseschema; } });
10
- var transaction_1 = require("./transaction");
11
- Object.defineProperty(exports, "transaction", { enumerable: true, get: function () { return transaction_1.transaction; } });
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schematype/index.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AAA3C,oHAAA,gBAAgB,OAAA;AACxB,yDAAqD;AAA7C,sHAAA,iBAAiB,OAAA;AACzB,2CAAuC;AAA/B,wGAAA,UAAU,OAAA;AAClB,6CAAyC;AAAjC,0GAAA,WAAW,OAAA"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.primarymasterdata = void 0;
4
- const type_1 = require("../type");
5
- exports.primarymasterdata = {
6
- type: "object",
7
- "x-simpleapp-config": {
8
- isolationType: type_1.IsolationType.org,
9
- pageType: "crud",
10
- generateDocumentNumber: true,
11
- schemaType: type_1.SupportedSchemaType.primarymasterdata,
12
- documentType: '',
13
- documentName: '',
14
- },
15
- properties: {
16
- _id: { type: 'string', description: "system field" },
17
- tenantId: { type: 'integer', default: 1, description: "system field" },
18
- orgId: { type: 'integer', default: 1, description: "system field" },
19
- branchId: { type: 'integer', default: 1, description: "system field" },
20
- created: { type: 'string', description: "system field" },
21
- updated: { type: 'string', description: "system field" },
22
- createdby: { type: 'string', description: "system field" },
23
- updatedby: { type: 'string', description: "system field" },
24
- docNoFormat: {
25
- type: "object",
26
- "x-foreignkey": "docnoformat",
27
- properties: { _id: { "type": "string" }, label: { "type": "string" } },
28
- description: "system field"
29
- },
30
- },
31
- definitions: {
32
- foreignkey: {
33
- type: "object",
34
- properties: { _id: { "type": "string" }, label: { "type": "string" }, code: { "type": "string" } }
35
- }
36
- },
37
- };
38
- //# sourceMappingURL=primarymasterdata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primarymasterdata.js","sourceRoot":"","sources":["../../src/schematype/primarymasterdata.ts"],"names":[],"mappings":";;;AAAA,kCAAoE;AACvD,QAAA,iBAAiB,GAAc;IACxC,IAAI,EAAC,QAAQ;IACb,oBAAoB,EAAC;QACnB,aAAa,EAAE,oBAAa,CAAC,GAAG;QAChC,QAAQ,EAAC,MAAM;QACf,sBAAsB,EAAC,IAAI;QAC3B,UAAU,EAAE,0BAAmB,CAAC,iBAAiB;QACjD,YAAY,EAAC,EAAE;QACf,YAAY,EAAC,EAAE;KAChB;IACD,UAAU,EAAC;QACP,GAAG,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QAC9C,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,cAAc,EAAC;QAC9D,KAAK,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,cAAc,EAAC;QAC3D,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC,WAAW,EAAC,cAAc,EAAC;QAC9D,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QAClD,OAAO,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QAClD,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QACpD,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,cAAc,EAAC;QACpD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,cAAc,EAAC,aAAa;YAC5B,UAAU,EAAE,EAAC,GAAG,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAC;YAC/D,WAAW,EAAC,cAAc;SAC3B;KACH;IACD,WAAW,EAAC;QACX,UAAU,EAAE;YACV,IAAI,EAAC,QAAQ;YACb,UAAU,EAAE,EAAC,GAAG,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAC,IAAI,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAC;SACzF;KACF;CACF,CAAA"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.simpleschema = void 0;
4
- exports.simpleschema = {
5
- 'type': 'object',
6
- 'x-simpleapp-config': {
7
- isolationType: 'org',
8
- schemaType: 'simple',
9
- documentType: '',
10
- documentName: '',
11
- foreignKeys: {}
12
- },
13
- "properties": {
14
- _id: { type: 'string' },
15
- tenantId: { type: 'integer', default: 1 },
16
- orgId: { type: 'integer', default: 1 },
17
- branchId: { type: 'integer', default: 1 },
18
- created: { type: 'string' },
19
- updated: { type: 'string' },
20
- createdby: { type: 'string' },
21
- updatedby: { type: 'string' },
22
- }
23
- };
24
- //# sourceMappingURL=simple.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../src/schematype/simple.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IACxB,MAAM,EAAC,QAAQ;IACf,oBAAoB,EAAC;QACnB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAC,EAAE;KACf;IACD,YAAY,EAAC;QACT,GAAG,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC;QACnB,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC;QACnC,KAAK,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC;QAChC,QAAQ,EAAC,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,CAAC,EAAC;QACnC,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;KAC5B;CACF,CAAA"}