pwi-plata-type 0.3.18 → 0.4.1

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 (117) hide show
  1. package/__BUILD__/bin/extras/create-api-cli.js +96 -0
  2. package/__BUILD__/bin/extras/create-api-cli.js.map +1 -0
  3. package/__BUILD__/bin/extras/create-lib-cli.js +62 -0
  4. package/__BUILD__/bin/extras/create-lib-cli.js.map +1 -0
  5. package/__BUILD__/bin/extras/plata-create-tools.js +94 -0
  6. package/__BUILD__/bin/extras/plata-create-tools.js.map +1 -0
  7. package/__BUILD__/bin/plata-api.js +138 -0
  8. package/__BUILD__/bin/plata-api.js.map +1 -0
  9. package/__BUILD__/bin/plata-create.js +24 -0
  10. package/__BUILD__/bin/plata-create.js.map +1 -0
  11. package/__BUILD__/bin/plata-runtime.js +156 -0
  12. package/__BUILD__/bin/plata-runtime.js.map +1 -0
  13. package/__BUILD__/bin/plata-swagger.js +82 -0
  14. package/__BUILD__/bin/plata-swagger.js.map +1 -0
  15. package/__BUILD__/bin/runtime/_setupRuntime.js +43 -0
  16. package/__BUILD__/bin/runtime/_setupRuntime.js.map +1 -0
  17. package/__BUILD__/bin/runtime/class.js +18 -0
  18. package/__BUILD__/bin/runtime/class.js.map +1 -0
  19. package/__BUILD__/bin/runtime/dirs.js +16 -0
  20. package/__BUILD__/bin/runtime/dirs.js.map +1 -0
  21. package/__BUILD__/bin/runtime/promises.js +15 -0
  22. package/__BUILD__/bin/runtime/promises.js.map +1 -0
  23. package/__BUILD__/bin/runtime/require.js +88 -0
  24. package/__BUILD__/bin/runtime/require.js.map +1 -0
  25. package/__BUILD__/index.js +42 -0
  26. package/__BUILD__/index.js.map +1 -0
  27. package/__BUILD__/libs/axios.js +42 -0
  28. package/__BUILD__/libs/axios.js.map +1 -0
  29. package/__BUILD__/libs/cluster.js +160 -0
  30. package/__BUILD__/libs/cluster.js.map +1 -0
  31. package/__BUILD__/libs/fs.js +206 -0
  32. package/__BUILD__/libs/fs.js.map +1 -0
  33. package/__BUILD__/libs/model-validations.js +356 -0
  34. package/__BUILD__/libs/model-validations.js.map +1 -0
  35. package/__BUILD__/libs/model.js +185 -0
  36. package/__BUILD__/libs/model.js.map +1 -0
  37. package/__BUILD__/libs/router.js +127 -0
  38. package/__BUILD__/libs/router.js.map +1 -0
  39. package/__BUILD__/libs/swagger.js +64 -0
  40. package/__BUILD__/libs/swagger.js.map +1 -0
  41. package/__BUILD__/libs/tasks.js +134 -0
  42. package/__BUILD__/libs/tasks.js.map +1 -0
  43. package/__BUILD__/libs/tools.js +231 -0
  44. package/__BUILD__/libs/tools.js.map +1 -0
  45. package/__BUILD__/scripts/post-install/api.js +25 -0
  46. package/__BUILD__/scripts/post-install/api.js.map +1 -0
  47. package/__BUILD__/scripts/post-install/lib.js +25 -0
  48. package/__BUILD__/scripts/post-install/lib.js.map +1 -0
  49. package/__BUILD__/scripts/post-install.js +65 -0
  50. package/__BUILD__/scripts/post-install.js.map +1 -0
  51. package/__BUILD__/scripts/pre-test.js +25 -0
  52. package/__BUILD__/scripts/pre-test.js.map +1 -0
  53. package/package.json +18 -16
  54. package/src/@types/cluster.actions.d.ts +7 -0
  55. package/src/@types/cluster.d.ts +33 -0
  56. package/src/@types/create-cli.d.ts +9 -0
  57. package/src/@types/exported.d.ts +24 -0
  58. package/src/@types/global.d.ts +69 -0
  59. package/src/@types/model.d.ts +69 -0
  60. package/src/@types/router.d.ts +75 -0
  61. package/src/@types/swagger.d.ts +23 -0
  62. package/{bin/extras/plata-create-api.ts → src/bin/extras/create-api-cli.ts} +5 -6
  63. package/{bin/extras/plata-create-lib.ts → src/bin/extras/create-lib-cli.ts} +3 -4
  64. package/{bin → src/bin}/extras/plata-create-tools.ts +4 -4
  65. package/src/bin/plata-api.ts +172 -0
  66. package/src/bin/plata-create.ts +21 -0
  67. package/src/bin/plata-runtime.ts +188 -0
  68. package/src/bin/plata-swagger.ts +100 -0
  69. package/src/bin/runtime/_setupRuntime.ts +49 -0
  70. package/src/bin/runtime/_types.d.ts +4 -0
  71. package/src/bin/runtime/class.ts +21 -0
  72. package/src/bin/runtime/dirs.ts +26 -0
  73. package/src/bin/runtime/promises.ts +15 -0
  74. package/src/bin/runtime/require.ts +104 -0
  75. package/{index.ts → src/index.ts} +2 -4
  76. package/{libs → src/libs}/axios.ts +0 -0
  77. package/src/libs/cluster.ts +189 -0
  78. package/src/libs/fs.ts +382 -0
  79. package/{libs/model.ts → src/libs/model-validations.ts} +28 -262
  80. package/src/libs/model.ts +233 -0
  81. package/src/libs/router.ts +147 -0
  82. package/src/libs/swagger.ts +81 -0
  83. package/{libs → src/libs}/tasks.ts +0 -0
  84. package/{libs → src/libs}/tools.ts +3 -18
  85. package/src/scripts/post-install/api.ts +32 -0
  86. package/src/scripts/post-install/lib.ts +30 -0
  87. package/src/scripts/post-install.ts +65 -0
  88. package/src/scripts/pre-test.ts +34 -0
  89. package/src/tests/assets/config/test.txt +1 -0
  90. package/src/tests/config.test.ts +13 -0
  91. package/src/tests/model.test.ts +115 -0
  92. package/templates/create-cli/cluster.ts +7 -9
  93. package/templates/create-cli/config.ts +2 -8
  94. package/templates/create-cli/lib.ts +7 -17
  95. package/templates/create-cli/model.ts +10 -21
  96. package/templates/create-cli/route.ts +1 -3
  97. package/templates/postinstall/api/configs/env.ts +2 -8
  98. package/templates/postinstall/api/tsconfig.json +20 -37
  99. package/templates/postinstall/lib/postinstall-tools.mjs +1 -1
  100. package/templates/postinstall/lib/postinstall.js +1 -0
  101. package/templates/postinstall/lib/tsconfig.json +21 -38
  102. package/tsconfig.json +25 -37
  103. package/Dockerfile +0 -13
  104. package/bin/extras/plata-build-tool.ts +0 -151
  105. package/bin/plata-build.ts +0 -144
  106. package/bin/plata-create.ts +0 -28
  107. package/bin/plata-reload.ts +0 -13
  108. package/bin/plata-swagger-gen.ts +0 -183
  109. package/bin/plata.ts +0 -122
  110. package/libs/cluster.ts +0 -219
  111. package/libs/env.ts +0 -28
  112. package/libs/routes.ts +0 -275
  113. package/libs/swagger.ts +0 -79
  114. package/postinstall-tools.mjs +0 -115
  115. package/postinstall.mjs +0 -42
  116. package/templates/postinstall/api/_install.mjs +0 -34
  117. package/templates/postinstall/lib/_install.mjs +0 -30
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.cli = void 0;
7
+ const plata_create_tools_1 = require("./plata-create-tools");
8
+ const commander_1 = require("commander");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const program = new commander_1.Command();
11
+ program.name('Plata Create cli');
12
+ program.description('CLI usada para criar rotas, libs, models e muito mais na plata');
13
+ program.version(Plata.PlataJson.version);
14
+ program.command('route <routes...>')
15
+ .description('Cria uma rota utilizando o templete da plata')
16
+ .action(async (routes) => {
17
+ if (!Array.isArray(routes)) {
18
+ return;
19
+ }
20
+ const promises = [];
21
+ const plataName = Plata.ProjectJson.plata_name;
22
+ for (const route of routes) {
23
+ const r = `${route}/`.replace(/:(.*?)(?:\/|$)/g, (_, parm) => {
24
+ return parm[parm.length - 1] !== '?' ? `{${parm}}/` : `[${parm.slice(0, -1)}]/`;
25
+ });
26
+ const routeArg = r.slice(0, -1).split('/');
27
+ const routeFileName = routeArg[routeArg.length - 1] === '' ? 'index' : routeArg.pop();
28
+ const routeFilePath = node_path_1.default.join('routes', ...routeArg.filter(v => v !== ''));
29
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject(routeFilePath, 'route', `${routeFileName}.ts`, { PlataName: `${plataName}` }).finally(() => console.log(`Rota ${routeFilePath}/${routeFileName === 'index' ? '' : routeFileName} criada`)));
30
+ }
31
+ await Promise.all(promises);
32
+ });
33
+ program.command('lib <libs...>')
34
+ .description('Cria uma config com e uma lib utilizando o templete da plata')
35
+ .action(async (libs) => {
36
+ if (!Array.isArray(libs)) {
37
+ return;
38
+ }
39
+ const promises = [];
40
+ for (const lib of libs) {
41
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('configs', 'config', `${lib}.ts`.toLowerCase(), { Name: `${lib}`, name: `${lib}`.toLowerCase() }).finally(() => console.log(`Config ${lib} criada`)));
42
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('libs', 'lib', `${lib}.ts`.toLowerCase(), { Name: `${lib}`, name: `${lib}`.toLowerCase() }).finally(() => console.log(`Lib ${lib} criada`)));
43
+ }
44
+ await Promise.all(promises);
45
+ });
46
+ program.command('config <configs...>')
47
+ .description('Cria uma config utilizando o templete da plata')
48
+ .action(async (configs) => {
49
+ if (!Array.isArray(configs)) {
50
+ return;
51
+ }
52
+ const promises = [];
53
+ for (const config of configs) {
54
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('configs', 'config', `${config}.ts`.toLowerCase(), { Name: `${config}`, name: `${config}`.toLowerCase() }).finally(() => console.log(`Config ${config} criada`)));
55
+ }
56
+ await Promise.all(promises);
57
+ });
58
+ program.command('model <models...>')
59
+ .description('Cria um model utilizando o templete da plata')
60
+ .action(async (models) => {
61
+ if (!Array.isArray(models)) {
62
+ return;
63
+ }
64
+ const promises = [];
65
+ const plataName = Plata.ProjectJson.plata_name;
66
+ for (const model of models) {
67
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('models', 'model', `${model}.ts`.toLowerCase(), { Name: `${model}`, PlataName: `${plataName}` }).finally(() => console.log(`Model ${model} criada`)));
68
+ }
69
+ await Promise.all(promises);
70
+ });
71
+ program.command('task <tasks...>')
72
+ .description('Cria uma task utilizando o templete da plata')
73
+ .action(async (tasks) => {
74
+ if (!Array.isArray(tasks)) {
75
+ return;
76
+ }
77
+ const promises = [];
78
+ const plataName = Plata.ProjectJson.plata_name;
79
+ for (const task of tasks) {
80
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('tasks', 'task', `${task}.ts`.toLowerCase(), { Name: `${task}`, PlataName: `${plataName}` }).finally(() => console.log(`Task ${tasks} criada`)));
81
+ }
82
+ await Promise.all(promises);
83
+ });
84
+ program.command('cluster <clusters...>')
85
+ .description('Cria o arquivo do worker utilizando o templete da plata')
86
+ .action(async (clusters) => {
87
+ if (!Array.isArray(clusters))
88
+ return;
89
+ const promises = [];
90
+ const plataName = Plata.ProjectJson.plata_name;
91
+ for (const cluster of clusters) {
92
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('clusters', 'cluster', `${cluster}.ts`.toLowerCase(), { Name: `${cluster}`, PlataName: `${plataName}` }).finally(() => console.log(`Worker ${cluster} criada`)));
93
+ }
94
+ });
95
+ exports.cli = program;
96
+ //# sourceMappingURL=create-api-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-api-cli.js","sourceRoot":"","sources":["../../../src/bin/extras/create-api-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cli = void 0;
4
+ const plata_create_tools_1 = require("./plata-create-tools");
5
+ const commander_1 = require("commander");
6
+ const program = new commander_1.Command();
7
+ program.name('Plata Create cli');
8
+ program.description('CLI usada para criar rotas, libs, models e muito mais na plata');
9
+ program.version(Plata.PlataJson.version);
10
+ program.command('lib <libs...>')
11
+ .description('Cria uma config com e uma lib utilizando o templete da plata')
12
+ .action(async (libs) => {
13
+ if (!Array.isArray(libs)) {
14
+ return;
15
+ }
16
+ const promises = [];
17
+ for (const lib of libs) {
18
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('configs', 'config', `${lib}.ts`.toLowerCase(), { Name: `${lib}`, name: `${lib}`.toLowerCase() }).finally(() => console.log(`Config ${lib} criada`)));
19
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('libs', 'lib', `${lib}.ts`.toLowerCase(), { Name: `${lib}`, name: `${lib}`.toLowerCase() }).finally(() => console.log(`Lib ${lib} criada`)));
20
+ }
21
+ await Promise.all(promises);
22
+ });
23
+ program.command('config <configs...>')
24
+ .description('Cria uma config utilizando o templete da plata')
25
+ .action(async (configs) => {
26
+ if (!Array.isArray(configs)) {
27
+ return;
28
+ }
29
+ const promises = [];
30
+ for (const config of configs) {
31
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('configs', 'config', `${config}.ts`.toLowerCase(), { Name: `${config}`, name: `${config}`.toLowerCase() }).finally(() => console.log(`Config ${config} criada`)));
32
+ }
33
+ await Promise.all(promises);
34
+ });
35
+ program.command('model <models...>')
36
+ .description('Cria um model utilizando o templete da plata')
37
+ .action(async (models) => {
38
+ if (!Array.isArray(models)) {
39
+ return;
40
+ }
41
+ const promises = [];
42
+ const plataName = Plata.ProjectJson.plata_name;
43
+ for (const model of models) {
44
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('models', 'model', `${model}.ts`.toLowerCase(), { Name: `${model}`, PlataName: `${plataName}` }).finally(() => console.log(`Model ${model} criada`)));
45
+ }
46
+ await Promise.all(promises);
47
+ });
48
+ program.command('task <tasks...>')
49
+ .description('Cria uma task utilizando o templete da plata')
50
+ .action(async (tasks) => {
51
+ if (!Array.isArray(tasks)) {
52
+ return;
53
+ }
54
+ const promises = [];
55
+ const plataName = Plata.ProjectJson.plata_name;
56
+ for (const task of tasks) {
57
+ promises.push(plata_create_tools_1.tools.files.deployFileToProject('tasks', 'task', `${task}.ts`.toLowerCase(), { Name: `${task}`, PlataName: `${plataName}` }).finally(() => console.log(`Task ${tasks} criada`)));
58
+ }
59
+ await Promise.all(promises);
60
+ });
61
+ exports.cli = program;
62
+ //# sourceMappingURL=create-lib-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-lib-cli.js","sourceRoot":"","sources":["../../../src/bin/extras/create-lib-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.tools = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const tools_1 = require("../../libs/tools");
10
+ var tools;
11
+ (function (tools) {
12
+ let files;
13
+ (function (files) {
14
+ async function mkdirIfNotExists(dir) {
15
+ try {
16
+ const p = node_path_1.default.resolve(dir);
17
+ if (!node_fs_1.default.existsSync(p)) {
18
+ node_fs_1.default.mkdirSync(p, { recursive: true });
19
+ }
20
+ }
21
+ catch (err) {
22
+ console.error(err);
23
+ process.exit(1);
24
+ }
25
+ }
26
+ files.mkdirIfNotExists = mkdirIfNotExists;
27
+ async function copyFileIfNotExists(source, destination) {
28
+ try {
29
+ const s = node_path_1.default.resolve(source);
30
+ const d = node_path_1.default.resolve(destination);
31
+ if (!node_fs_1.default.existsSync(d)) {
32
+ node_fs_1.default.copyFileSync(s, d);
33
+ }
34
+ }
35
+ catch (err) {
36
+ console.error(err);
37
+ process.exit(1);
38
+ }
39
+ }
40
+ files.copyFileIfNotExists = copyFileIfNotExists;
41
+ async function copyFileToProject(projectFolder, templateFile, fileName) {
42
+ const s = node_path_1.default.resolve(tools_1.PlataDirs.getPlataTempleteDir('create-cli', `${templateFile}.ts`));
43
+ let d = node_path_1.default.resolve(Plata.ProjectDir, projectFolder);
44
+ await mkdirIfNotExists(d);
45
+ d = node_path_1.default.join(d, fileName);
46
+ await copyFileIfNotExists(s, d);
47
+ return d;
48
+ }
49
+ files.copyFileToProject = copyFileToProject;
50
+ async function deployFileToProject(projectFolder, templateFile, fileName, args) {
51
+ const fileInProject = await copyFileToProject(projectFolder, templateFile, fileName);
52
+ const content = await tools_1.PlataFiles.readFileSync(fileInProject, (line) => {
53
+ if (line === '//@ts-nocheck') {
54
+ return '';
55
+ }
56
+ if (line === '') {
57
+ return '';
58
+ }
59
+ let lastIndex = 0;
60
+ while (lastIndex !== -1) {
61
+ lastIndex = line.indexOf('$__', lastIndex);
62
+ if (lastIndex !== -1) {
63
+ const pIndex = line.indexOf('__$', lastIndex);
64
+ const param = line.slice(lastIndex + 3, pIndex);
65
+ line = line.replace(new RegExp(`\\$__${param}__\\$`, 'g'), args[param]);
66
+ }
67
+ }
68
+ return line;
69
+ });
70
+ if (content.err !== undefined) {
71
+ console.log(content.err);
72
+ process.exit(1);
73
+ }
74
+ else {
75
+ node_fs_1.default.writeFileSync(fileInProject, content);
76
+ }
77
+ }
78
+ files.deployFileToProject = deployFileToProject;
79
+ })(files = tools.files || (tools.files = {}));
80
+ let args;
81
+ (function (args_1) {
82
+ async function forEachArg(callback) {
83
+ let args = process.argv.slice(process.argv.indexOf('--') + 1);
84
+ while (args.length !== 0) {
85
+ const command = args.shift();
86
+ if (command !== undefined) {
87
+ args = await callback(command, args);
88
+ }
89
+ }
90
+ }
91
+ args_1.forEachArg = forEachArg;
92
+ })(args = tools.args || (tools.args = {}));
93
+ })(tools = exports.tools || (exports.tools = {}));
94
+ //# sourceMappingURL=plata-create-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plata-create-tools.js","sourceRoot":"","sources":["../../../src/bin/extras/plata-create-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.main = void 0;
7
+ const express_1 = __importDefault(require("express"));
8
+ const cluster_1 = require("++/libs/cluster");
9
+ const node_https_1 = require("node:https");
10
+ const promises_1 = __importDefault(require("node:fs/promises"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const router_1 = require("++/libs/router");
13
+ const main = async () => {
14
+ const cluster = new cluster_1.PlataClusterManager();
15
+ if (cluster.isPrimary()) {
16
+ let workers = undefined;
17
+ if (Plata.config._PLATA_API_WORKERS !== undefined) {
18
+ workers = +Plata.config._PLATA_API_WORKERS || undefined;
19
+ }
20
+ const clustersPromise = require("@@/clusters/*.*");
21
+ cluster.startCluster({
22
+ name: '__PLATA_EXPRESS__',
23
+ env: Plata.config.ENV ?? 'prod',
24
+ onStart: async () => { },
25
+ workers: workers,
26
+ });
27
+ const clusters = await clustersPromise;
28
+ if (clusters.errorID !== undefined) {
29
+ console.log(clusters);
30
+ process.exit(0);
31
+ }
32
+ {
33
+ const promises = [];
34
+ clusters.forEach(c => {
35
+ const config = c.exports.default;
36
+ promises.push(cluster.startCluster(config).then(r => {
37
+ if (r !== null) {
38
+ console.log(r);
39
+ process.exit(0);
40
+ }
41
+ }));
42
+ });
43
+ await promises;
44
+ }
45
+ }
46
+ else {
47
+ if (Plata.config._PLATA_WORKER_NAME === '__PLATA_EXPRESS__') {
48
+ const projectRoutesPromise = Plata.FastPromise(() => (0, router_1.loadRoutesFromProject)());
49
+ const app = (0, express_1.default)();
50
+ app.disable('x-powered-by');
51
+ const apiRoots = Plata.config._PLATA_API_ROOT ?? '/api';
52
+ app.use(express_1.default.json({ limit: Plata.config._PLATA_API_JSON_SIZE ?? '100kb' }));
53
+ const requiredRoutes = await projectRoutesPromise;
54
+ if (requiredRoutes.errorID !== undefined) {
55
+ console.log(requiredRoutes);
56
+ await cluster.send({
57
+ action: 'KILL',
58
+ msg: 'Erro enquanto carregava as rotas'
59
+ });
60
+ return;
61
+ }
62
+ {
63
+ const result = await (0, router_1.buildExpressRouter)(requiredRoutes);
64
+ if (result.errorID !== undefined) {
65
+ console.log(result);
66
+ await cluster.send({
67
+ action: 'KILL',
68
+ msg: 'Erro enquanto carregava as rotas'
69
+ });
70
+ return;
71
+ }
72
+ app.use(apiRoots.split(','), result);
73
+ }
74
+ app.use((err, _req, res, _next) => {
75
+ return res.status(500).json({
76
+ errorID: 'PRAPI0001',
77
+ error: 'Erro interno inesperado',
78
+ msg: err.message
79
+ });
80
+ });
81
+ app.all('*', (req, res) => {
82
+ return res.status(404).json({
83
+ errorID: 'PRAPI0002',
84
+ error: 'Rota não encontrada',
85
+ msg: req.path
86
+ });
87
+ });
88
+ const port = process.env.PORT ?? 3050;
89
+ if (!Plata.config._PLATA_API_SSL_KEY || !Plata.config._PLATA_API_SSL_CERT) {
90
+ console.log(`Nenhum certificado configurado na env ${process.env.ENV}:`);
91
+ console.log(`_PLATA_API_SSL_KEY: ${process.env._PLATA_API_SSL_KEY}`);
92
+ console.log(`_PLATA_API_SSL_CERT: ${process.env._PLATA_API_SSL_CERT}`);
93
+ app.listen(port, () => {
94
+ console.log(`Iniciando Worker Express na porta ${port}`);
95
+ setTimeout(() => process.removeAllListeners('exit'), 500);
96
+ });
97
+ }
98
+ else {
99
+ console.log('Iniciando a Plata com ssl usando os arquivos:');
100
+ console.log(`key: ${process.env._PLATA_API_SSL_KEY}`);
101
+ console.log(`cert: ${process.env._PLATA_API_SSL_CERT}`);
102
+ const [cert, key] = await Promise.all([
103
+ promises_1.default.readFile(node_path_1.default.normalize(node_path_1.default.join(Plata.ProjectDir, Plata.config._PLATA_API_SSL_CERT))),
104
+ promises_1.default.readFile(node_path_1.default.normalize(node_path_1.default.join(Plata.ProjectDir, Plata.config._PLATA_API_SSL_KEY)))
105
+ ]).catch(err => {
106
+ console.log({
107
+ errorID: 'PRAPI0003',
108
+ msg: 'Erro ao ler o certifica e chave ssl',
109
+ error: err
110
+ });
111
+ process.exit(1);
112
+ });
113
+ const https = (0, node_https_1.createServer)({
114
+ cert,
115
+ key,
116
+ passphrase: process.env._PLATA_API_SSL_PASS
117
+ }, app);
118
+ https.listen(port, () => {
119
+ console.log(`Iniciando Worker Express na porta ${port} com SSL`);
120
+ setTimeout(() => process.removeAllListeners('exit'), 500);
121
+ });
122
+ }
123
+ }
124
+ else {
125
+ if (Plata.config._PLATA_WORKER_NAME === undefined) {
126
+ await cluster.send({
127
+ action: 'KILL',
128
+ msg: 'tried to start a Worker without _PLATA_WORKER_NAME'
129
+ });
130
+ return;
131
+ }
132
+ const c = require(`@@/clusters/${Plata.config._PLATA_WORKER_NAME}`);
133
+ await c.default.onStart();
134
+ }
135
+ }
136
+ };
137
+ exports.main = main;
138
+ //# sourceMappingURL=plata-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plata-api.js","sourceRoot":"","sources":["../../src/bin/plata-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ const main = async () => {
5
+ if (Plata.ProjectJson.plata_no_setup !== undefined) {
6
+ console.log('Plata not configurated remove plata_no_setup from package.json');
7
+ process.exit(0);
8
+ }
9
+ const args = process.argv.slice(process.argv.indexOf('+'));
10
+ switch (Plata.ProjectJson.plata_type ?? 'api') {
11
+ case 'api':
12
+ await require('++/bin/extras/create-api-cli').cli.parseAsync(args);
13
+ break;
14
+ case 'lib':
15
+ await require('++/bin/extras/create-lib-cli').cli.parseAsync(args);
16
+ break;
17
+ default:
18
+ console.log(`${Plata.ProjectJson.plata_type} not supported`);
19
+ process.exit(0);
20
+ break;
21
+ }
22
+ };
23
+ exports.main = main;
24
+ //# sourceMappingURL=plata-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plata-create.js","sourceRoot":"","sources":["../../src/bin/plata-create.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IAC3B,IAAI,KAAK,CAAC,WAAW,CAAC,cAAc,KAAK,SAAS,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAE1D,QAAQ,KAAK,CAAC,WAAW,CAAC,UAAU,IAAI,KAAK,EAAE;QAC3C,KAAK,KAAK;YACN,MAAO,OAAO,CAAC,8BAA8B,CAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACvG,MAAK;QACL,KAAK,KAAK;YACN,MAAO,OAAO,CAAC,8BAA8B,CAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACvG,MAAK;QACL;YACI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,gBAAgB,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,MAAK;KACR;AACL,CAAC,CAAA;AApBY,QAAA,IAAI,QAoBhB"}
@@ -0,0 +1,156 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.compile = void 0;
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_assert_1 = require("node:assert");
11
+ const node_readline_1 = __importDefault(require("node:readline"));
12
+ const node_cluster_1 = __importDefault(require("node:cluster"));
13
+ const tsc_prog_1 = require("tsc-prog");
14
+ const glob_1 = __importDefault(require("glob"));
15
+ const _setupRuntime_1 = require("./runtime/_setupRuntime");
16
+ function compile() {
17
+ if (!node_cluster_1.default.isPrimary)
18
+ return;
19
+ (0, tsc_prog_1.build)({
20
+ basePath: Plata.ProjectDir,
21
+ configFilePath: 'tsconfig.json',
22
+ compilerOptions: {
23
+ newLine: 'LF',
24
+ rootDir: '.'
25
+ },
26
+ include: [
27
+ './**/*'
28
+ ],
29
+ exclude: [
30
+ './__BUILD__',
31
+ './node_modules',
32
+ './.vscode'
33
+ ],
34
+ copyOtherToOutDir: true,
35
+ clean: {
36
+ outDir: true,
37
+ declarationDir: true,
38
+ outFile: true
39
+ },
40
+ });
41
+ }
42
+ exports.compile = compile;
43
+ const main = async () => {
44
+ const g = global;
45
+ g.Plata = await (0, _setupRuntime_1.loadRuntimeLibs)();
46
+ g.Plata.files = new Object(null);
47
+ g.Plata.files.ReadFileSync = (file, callback) => {
48
+ return new Promise(resolve => {
49
+ try {
50
+ const content = [];
51
+ const stream = node_readline_1.default.createInterface({
52
+ input: node_fs_1.default.createReadStream(file),
53
+ crlfDelay: Infinity
54
+ });
55
+ stream.on('close', () => {
56
+ resolve(content.join('\n'));
57
+ });
58
+ stream.on('line', (line) => {
59
+ content.push(callback(line));
60
+ });
61
+ }
62
+ catch (e) {
63
+ resolve({
64
+ errorID: 'PLTRF0004',
65
+ msg: `Error while reading file: ${file}`,
66
+ error: e
67
+ });
68
+ }
69
+ });
70
+ };
71
+ g.Plata.files.ReadFileAsync = async (file, callback) => {
72
+ return new Promise(resolve => {
73
+ try {
74
+ const promises = [];
75
+ const stream = node_readline_1.default.createInterface({
76
+ input: node_fs_1.default.createReadStream(file),
77
+ crlfDelay: Infinity
78
+ });
79
+ stream.on('close', () => {
80
+ Promise.all(promises).then(() => resolve(null), e => resolve({
81
+ errorID: 'PPFRFA0002',
82
+ msg: `Unexpected error while reading file: ${file}`,
83
+ error: e
84
+ }));
85
+ });
86
+ stream.on('line', line => {
87
+ promises.push(Plata.FastPromise(() => callback(line)));
88
+ });
89
+ }
90
+ catch (e) {
91
+ return resolve({
92
+ errorID: 'PPFRFA0001',
93
+ msg: `Unexpected error while reading file: ${file}`,
94
+ error: e
95
+ });
96
+ }
97
+ });
98
+ };
99
+ g.Plata.files.FindFiles = async (folders, file) => {
100
+ const files = [];
101
+ for (const folder of folders) {
102
+ files.push(...glob_1.default.sync(`${folder.replace(/\\/g, '/')}/**/${file}`));
103
+ }
104
+ return files;
105
+ };
106
+ compile();
107
+ module.constructor.prototype.require = function (pathRequire) {
108
+ const self = this;
109
+ (0, node_assert_1.ok)(typeof pathRequire === 'string', 'path must be a string');
110
+ (0, node_assert_1.ok)(pathRequire, 'missing path');
111
+ try {
112
+ switch (pathRequire.slice(0, 2)) {
113
+ case '@@':
114
+ pathRequire = pathRequire.replace('@@', `${Plata.ProjectDir}/__BUILD__`);
115
+ break;
116
+ case '++':
117
+ pathRequire = pathRequire.replace('++', `${Plata.PlataDir}/__BUILD__`);
118
+ break;
119
+ }
120
+ pathRequire = pathRequire.replace(/\\/g, '/');
121
+ switch (node_path_1.default.extname(pathRequire)) {
122
+ case '.env':
123
+ return Plata.FastPromise(() => Plata.ReadEnvFileToPromise(pathRequire));
124
+ break;
125
+ case '.*':
126
+ return Plata.FastPromise(() => Plata.RequireFolder(node_path_1.default.dirname(pathRequire)));
127
+ break;
128
+ default:
129
+ return self.constructor._load(pathRequire, self);
130
+ break;
131
+ }
132
+ }
133
+ catch (err) {
134
+ if (err.code === 'MODULE_NOT_FOUND') {
135
+ throw err;
136
+ }
137
+ pathRequire = node_path_1.default.resolve(__dirname, pathRequire);
138
+ console.log('Error in file: ' + pathRequire);
139
+ }
140
+ };
141
+ g.Plata.config = new Object(null);
142
+ const configEnv = require('@@/configs/env').envConfig;
143
+ const envFilePromise = require(`@@/envs/${configEnv.env}.env`);
144
+ for (const key in process.env) {
145
+ g.Plata.config[key] = process.env[key];
146
+ }
147
+ const envFile = await envFilePromise;
148
+ for (const key in envFile) {
149
+ g.Plata.config[key] = envFile[key];
150
+ }
151
+ const run = process.argv[process.argv.indexOf('+') + 1];
152
+ const app = require(`++/bin/${run}`);
153
+ await app.main();
154
+ };
155
+ main();
156
+ //# sourceMappingURL=plata-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plata-runtime.js","sourceRoot":"","sources":["../../src/bin/plata-runtime.ts"],"names":[],"mappings":"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"}