@codenotch/codenotch.cli 1.0.35 → 1.0.36
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/dist/commands/generate/index.d.ts +3 -0
- package/dist/commands/generate/index.js +42 -0
- package/dist/commands/generate/index.js.map +1 -0
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/project/new.js +32 -124
- package/dist/commands/project/new.js.map +1 -1
- package/dist/commands/system/info.js +0 -7
- package/dist/commands/system/info.js.map +1 -1
- package/dist/commands/validation/ValidationUtils.d.ts +3 -13
- package/dist/commands/validation/ValidationUtils.js +2 -58
- package/dist/commands/validation/ValidationUtils.js.map +1 -1
- package/dist/commands/validation/files/AppManifestValidator.js +5 -20
- package/dist/commands/validation/files/AppManifestValidator.js.map +1 -1
- package/dist/commands/validation/files/ScriptValidator.d.ts +6 -2
- package/dist/commands/validation/files/ScriptValidator.js.map +1 -1
- package/dist/commands/validation/validate.js +8 -44
- package/dist/commands/validation/validate.js.map +1 -1
- package/dist/models/Codenotch.d.ts +0 -205
- package/dist/models/Codenotch.js +0 -211
- package/dist/models/Codenotch.js.map +1 -1
- package/dist/utils/BuildUtils.d.ts +5 -21
- package/dist/utils/BuildUtils.js +4 -109
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/ConsoleUtils.d.ts +5 -0
- package/dist/utils/ConsoleUtils.js +25 -0
- package/dist/utils/ConsoleUtils.js.map +1 -1
- package/dist/utils/GitHubAuthUtils.js.map +1 -1
- package/dist/utils/ManifestUtils.d.ts +24 -0
- package/dist/utils/ManifestUtils.js +53 -0
- package/dist/utils/ManifestUtils.js.map +1 -0
- package/dist/utils/ProjectCompilationUtils.d.ts +4 -30
- package/dist/utils/ProjectCompilationUtils.js +64 -750
- package/dist/utils/ProjectCompilationUtils.js.map +1 -1
- package/dist/utils/ProjectUtils.d.ts +2 -2
- package/dist/utils/ProjectUtils.js +0 -29
- package/dist/utils/ProjectUtils.js.map +1 -1
- package/dist/utils/ServeUtils.d.ts +0 -1
- package/dist/utils/ServeUtils.js +1 -24
- package/dist/utils/ServeUtils.js.map +1 -1
- package/dist/utils/ShellUtils.js.map +1 -1
- package/package.json +2 -3
- package/dist/commands/validation/files/BpmnValidator.d.ts +0 -5
- package/dist/commands/validation/files/BpmnValidator.js +0 -32
- package/dist/commands/validation/files/BpmnValidator.js.map +0 -1
- package/dist/commands/validation/files/DbSchemaValidator.d.ts +0 -5
- package/dist/commands/validation/files/DbSchemaValidator.js +0 -16
- package/dist/commands/validation/files/DbSchemaValidator.js.map +0 -1
- package/dist/commands/validation/files/DocumentValidator.d.ts +0 -5
- package/dist/commands/validation/files/DocumentValidator.js +0 -12
- package/dist/commands/validation/files/DocumentValidator.js.map +0 -1
- package/dist/commands/validation/files/I18nValidator.d.ts +0 -5
- package/dist/commands/validation/files/I18nValidator.js +0 -13
- package/dist/commands/validation/files/I18nValidator.js.map +0 -1
- package/dist/commands/validation/files/ManifestCacheValidator.d.ts +0 -5
- package/dist/commands/validation/files/ManifestCacheValidator.js +0 -121
- package/dist/commands/validation/files/ManifestCacheValidator.js.map +0 -1
- package/dist/commands/validation/files/ManifestValidator.d.ts +0 -5
- package/dist/commands/validation/files/ManifestValidator.js +0 -14
- package/dist/commands/validation/files/ManifestValidator.js.map +0 -1
- package/dist/commands/validation/files/TableValidator.d.ts +0 -5
- package/dist/commands/validation/files/TableValidator.js +0 -19
- package/dist/commands/validation/files/TableValidator.js.map +0 -1
- package/dist/models/DbModels.d.ts +0 -221
- package/dist/models/DbModels.js +0 -130
- package/dist/models/DbModels.js.map +0 -1
- package/dist/models/OpenApiModels.d.ts +0 -115
- package/dist/models/OpenApiModels.js +0 -103
- package/dist/models/OpenApiModels.js.map +0 -1
- package/dist/utils/I18nUtils.d.ts +0 -9
- package/dist/utils/I18nUtils.js +0 -54
- package/dist/utils/I18nUtils.js.map +0 -1
- package/dist/utils/OpenAPIUtils.d.ts +0 -33
- package/dist/utils/OpenAPIUtils.js +0 -279
- package/dist/utils/OpenAPIUtils.js.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
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.registerGenerateCommands = registerGenerateCommands;
|
|
7
|
+
exports.registerGenerateManifest = registerGenerateManifest;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
11
|
+
const ConsoleUtils_1 = __importDefault(require("../../utils/ConsoleUtils"));
|
|
12
|
+
const ManifestUtils_1 = __importDefault(require("../../utils/ManifestUtils"));
|
|
13
|
+
function registerGenerateCommands(program) {
|
|
14
|
+
const generate = program
|
|
15
|
+
.command('generate')
|
|
16
|
+
.description('Generate Codenotch project files (manifest, ...)');
|
|
17
|
+
registerGenerateManifest(generate);
|
|
18
|
+
}
|
|
19
|
+
function registerGenerateManifest(generate) {
|
|
20
|
+
generate
|
|
21
|
+
.command('manifest')
|
|
22
|
+
.description('Generate the manifest.json of a Codenotch project in the current directory')
|
|
23
|
+
.action(async () => {
|
|
24
|
+
const projectPath = process.cwd();
|
|
25
|
+
const filePath = (0, path_1.join)(projectPath, 'manifest.json');
|
|
26
|
+
if (await FileUtils_1.default.exists(filePath)) {
|
|
27
|
+
const overwrite = await ConsoleUtils_1.default.confirm(`'${filePath}' already exists. Overwrite it?`, false);
|
|
28
|
+
if (!overwrite) {
|
|
29
|
+
console.error(chalk_1.default.yellow(`Aborted: '${filePath}' already exists, use --force to overwrite it.`));
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const manifest = ManifestUtils_1.default.createManifest('');
|
|
35
|
+
if (!FileUtils_1.default.writeFileSync(filePath, ManifestUtils_1.default.serialize(manifest))) {
|
|
36
|
+
process.exitCode = 1;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
ConsoleUtils_1.default.check(`manifest.json generated at ${chalk_1.default.green(filePath)}`);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":";;;;;AAOA,4DAMC;AAED,4DA2BC;AAzCD,kDAA0B;AAC1B,+BAA4B;AAC5B,sEAA8C;AAC9C,4EAAoD;AACpD,8EAAsD;AAEtD,SAAgB,wBAAwB,CAAC,OAAgB;IACrD,MAAM,QAAQ,GAAG,OAAO;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kDAAkD,CAAC,CAAC;IAErE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,wBAAwB,CAAC,QAAiB;IACtD,QAAQ;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,KAAK,IAAI,EAAE;QAEf,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEpD,IAAI,MAAM,mBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,sBAAY,CAAC,OAAO,CAAC,IAAI,QAAQ,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACnG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,aAAa,QAAQ,gDAAgD,CAAC,CAAC,CAAC;gBACnG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACX,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,uBAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,mBAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,uBAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,sBAAY,CAAC,KAAK,CAAC,8BAA8B,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACX,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const react_1 = require("./react");
|
|
|
6
6
|
const runtime_1 = require("./runtime");
|
|
7
7
|
const project_1 = require("./project");
|
|
8
8
|
const validate_1 = require("./validation/validate");
|
|
9
|
+
const generate_1 = require("./generate");
|
|
9
10
|
// Registration order defines the order in `--help`
|
|
10
11
|
function registerAllCommands(program) {
|
|
11
12
|
(0, system_1.registerSystemCommands)(program);
|
|
@@ -13,5 +14,6 @@ function registerAllCommands(program) {
|
|
|
13
14
|
(0, runtime_1.registerRuntimeCommands)(program);
|
|
14
15
|
(0, project_1.registerProjectCommands)(program);
|
|
15
16
|
(0, validate_1.registerValidate)(program);
|
|
17
|
+
(0, generate_1.registerGenerateCommands)(program);
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;AASA,kDAOC;AAfD,qCAAkD;AAClD,mCAAgD;AAChD,uCAAoD;AACpD,uCAAoD;AACpD,oDAAyD;AACzD,yCAAsD;AAEtD,mDAAmD;AACnD,SAAgB,mBAAmB,CAAC,OAAgB;IAChD,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;IAChC,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IAC/B,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;IACjC,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAC;IAC1B,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -8,8 +8,8 @@ const shared_1 = require("./shared");
|
|
|
8
8
|
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
9
9
|
const fs_extra_1 = require("fs-extra");
|
|
10
10
|
const path_1 = require("path");
|
|
11
|
+
const ManifestUtils_1 = __importDefault(require("../../utils/ManifestUtils"));
|
|
11
12
|
const BuildUtils_1 = __importDefault(require("../../utils/BuildUtils"));
|
|
12
|
-
const os_1 = require("os");
|
|
13
13
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
14
|
function registerNew(project) {
|
|
15
15
|
(0, shared_1.withProjectPathOption)(project
|
|
@@ -40,7 +40,7 @@ function registerNew(project) {
|
|
|
40
40
|
}
|
|
41
41
|
(0, fs_extra_1.ensureDirSync)(finalFolder);
|
|
42
42
|
const projectName = FileUtils_1.default.getNameFromPath(finalFolder);
|
|
43
|
-
const serviceName =
|
|
43
|
+
const serviceName = ManifestUtils_1.default.toServiceName(projectName);
|
|
44
44
|
const folders = [
|
|
45
45
|
(0, path_1.join)(finalFolder, 'processes'),
|
|
46
46
|
(0, path_1.join)(finalFolder, 'apps'),
|
|
@@ -49,13 +49,14 @@ function registerNew(project) {
|
|
|
49
49
|
(0, path_1.join)(finalFolder, 'tables'),
|
|
50
50
|
];
|
|
51
51
|
const files = [
|
|
52
|
-
{ path: (0, path_1.join)(finalFolder, 'manifest.json'), content:
|
|
52
|
+
{ path: (0, path_1.join)(finalFolder, 'manifest.json'), content: ManifestUtils_1.default.serialize(ManifestUtils_1.default.createManifest(projectName, { serviceName })) },
|
|
53
53
|
{ path: (0, path_1.join)(finalFolder, 'readme.md'), content: getReadmeMd(projectName, serviceName) },
|
|
54
54
|
{ path: (0, path_1.join)(finalFolder, '.gitignore'), content: ['manifest.cache.json', 'package-lock.json', '/.codenotch', '/node_modules', '/typings'].join('\n') },
|
|
55
55
|
{ path: (0, path_1.join)(finalFolder, 'package.json'), content: JSON.stringify(getDefaultPkgJson(serviceName), null, 4) },
|
|
56
56
|
{ path: (0, path_1.join)(finalFolder, 'apps/index.manifest.json'), content: JSON.stringify(getDefaultAppManifest(), null, 4) },
|
|
57
57
|
{ path: (0, path_1.join)(finalFolder, 'apps/index.tsx'), content: getDefaultApp() },
|
|
58
58
|
];
|
|
59
|
+
// TODO: one sample process, table, document, i18n, etc then generate db-schema, and others things
|
|
59
60
|
for (const folder of folders) {
|
|
60
61
|
(0, fs_extra_1.ensureDirSync)(folder);
|
|
61
62
|
}
|
|
@@ -67,44 +68,33 @@ function registerNew(project) {
|
|
|
67
68
|
console.log(``);
|
|
68
69
|
console.log(`You can now execute:`);
|
|
69
70
|
console.log(chalk_1.default.green(`cd '${finalFolder}'`));
|
|
70
|
-
console.log(``);
|
|
71
|
-
console.log(`Or open ${chalk_1.default.blueBright('Codenotch IDE')}`);
|
|
72
|
-
const downloads = {
|
|
73
|
-
"win": "https://codenotchide.blob.core.windows.net/release-desktop-win/Codenotch%20Latest.exe?sv=2023-01-03&ss=btqf&srt=sco&spr=https%2Chttp&st=2025-08-28T12%3A46%3A05Z&se=2039-06-23T15%3A46%3A00Z&sp=rlp&sig=7ivKIFM4nANK4VzdKp20bzaNZhaZZ51YIvzriUacxBw%3D",
|
|
74
|
-
"linux": "https://codenotchide.blob.core.windows.net/release-desktop-linux/codenotch-ide_latest_amd64.deb?sv=2023-01-03&ss=btqf&srt=sco&spr=https%2Chttp&st=2025-08-28T12%3A46%3A05Z&se=2039-06-23T15%3A46%3A00Z&sp=rlp&sig=7ivKIFM4nANK4VzdKp20bzaNZhaZZ51YIvzriUacxBw%3D",
|
|
75
|
-
};
|
|
76
|
-
const url = downloads[(0, os_1.platform)()];
|
|
77
|
-
if (url) {
|
|
78
|
-
console.log(`Download link:`);
|
|
79
|
-
console.log(chalk_1.default.green(url));
|
|
80
|
-
}
|
|
81
71
|
});
|
|
82
72
|
}
|
|
83
73
|
function getDefaultAppManifest() {
|
|
84
74
|
const m = {
|
|
85
|
-
|
|
86
|
-
|
|
75
|
+
app: {
|
|
76
|
+
name: "index"
|
|
87
77
|
},
|
|
88
|
-
|
|
89
|
-
|
|
78
|
+
html: {
|
|
79
|
+
title: "index"
|
|
90
80
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
81
|
+
pwa: {
|
|
82
|
+
name: "index",
|
|
83
|
+
display: "standalone",
|
|
84
|
+
display_override: [
|
|
95
85
|
"window-controls-overlay"
|
|
96
86
|
],
|
|
97
|
-
|
|
98
|
-
|
|
87
|
+
start_url: "./",
|
|
88
|
+
icons: [
|
|
99
89
|
{
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
90
|
+
src: "logo512.png",
|
|
91
|
+
sizes: "512x512",
|
|
92
|
+
type: "image/png"
|
|
103
93
|
},
|
|
104
94
|
{
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
95
|
+
src: "logo192.png",
|
|
96
|
+
sizes: "192x192",
|
|
97
|
+
type: "image/png"
|
|
108
98
|
}
|
|
109
99
|
]
|
|
110
100
|
}
|
|
@@ -127,96 +117,26 @@ const index: React.FC<{}> = () => {
|
|
|
127
117
|
export default index;`;
|
|
128
118
|
}
|
|
129
119
|
function getReadmeMd(projectName, serviceName) {
|
|
120
|
+
// TODO : md that explain how codenotch works
|
|
130
121
|
return `
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
A [Codenotch](https://codenotch.com/) project. Codenotch is a full-stack platform for building and deploying business applications: the backend is made of BPMN workflows, data is stored in SQL tables and NoSQL documents, and the (optional) UI is written in React/TypeScript.
|
|
134
|
-
|
|
135
|
-
## Project structure
|
|
136
|
-
|
|
137
|
-
| Path | Purpose |
|
|
138
|
-
| --- | --- |
|
|
139
|
-
| \`manifest.json\` | Project metadata (name, service name, languages, roles…). |
|
|
140
|
-
| \`processes/\` | \`.bpmn\` workflows: server-side logic, API endpoints, data persistence. |
|
|
141
|
-
| \`tables/\` | \`.table\` SQL table definitions. |
|
|
142
|
-
| \`documents/\` | \`.jschema\` NoSQL document schemas. |
|
|
143
|
-
| \`apps/\` | \`.tsx\` React apps and components. |
|
|
144
|
-
| \`typings/\` | Auto-generated TypeScript typings (never edit by hand). |
|
|
145
|
-
| \`*.i18n.csv\` | Translations. |
|
|
146
|
-
|
|
147
|
-
The service name of this project is \`${serviceName}\`. It is part of the project URL and referenced throughout the project files, so avoid changing it afterwards.
|
|
148
|
-
|
|
149
|
-
## Getting started
|
|
150
|
-
|
|
151
|
-
1. Install the dependencies (required before building any React app):
|
|
152
|
-
|
|
153
|
-
\`\`\`sh
|
|
154
|
-
npm install
|
|
155
|
-
\`\`\`
|
|
156
|
-
|
|
157
|
-
2. Make sure the Codenotch CLI and runtime are available:
|
|
158
|
-
|
|
159
|
-
\`\`\`sh
|
|
160
|
-
npm install -g @codenotch/codenotch.cli
|
|
161
|
-
cn runtime update
|
|
162
|
-
cn runtime start
|
|
163
|
-
\`\`\`
|
|
164
|
-
|
|
165
|
-
3. Build, deploy and open the project on the local runtime:
|
|
166
|
-
|
|
167
|
-
\`\`\`sh
|
|
168
|
-
cn project start
|
|
169
|
-
\`\`\`
|
|
170
|
-
|
|
171
|
-
## Useful commands
|
|
172
|
-
|
|
173
|
-
| Command | Description |
|
|
174
|
-
| --- | --- |
|
|
175
|
-
| \`cn project start\` | Build, deploy and start the project locally. |
|
|
176
|
-
| \`cn project refresh\` | Re-sync the running project after changes. |
|
|
177
|
-
| \`cn project inspect\` | Validate the project and print diagnostics. |
|
|
178
|
-
| \`cn project test\` | Run the project tests. |
|
|
179
|
-
| \`cn project package\` | Build a deployable zip. |
|
|
180
|
-
| \`cn project deploy <service> <zip>\` | Deploy a packaged zip to a service. |
|
|
181
|
-
| \`cn runtime portal\` | Open the local runtime portal. |
|
|
182
|
-
|
|
183
|
-
Run \`cn --help\` for the full list of commands. You can also open this project in the Codenotch IDE.
|
|
184
|
-
`.trim() + '\n';
|
|
185
|
-
}
|
|
186
|
-
function getServiceName(projectName) {
|
|
187
|
-
let serviceName = projectName
|
|
188
|
-
// 1. Normalise et supprime les accents (ex: "é" -> "e", "ç" -> "c")
|
|
189
|
-
.normalize("NFD")
|
|
190
|
-
.replace(/[\u0300-\u036f]/g, "")
|
|
191
|
-
// 2. Remplace les espaces, tabulations et tirets (-) par des tirets bas (_)
|
|
192
|
-
.replace(/[-\s]+/g, '_')
|
|
193
|
-
// 3. Supprime les caractères spéciaux restants qui ne correspondent pas à [\w.]
|
|
194
|
-
.replace(/[^\w.]/g, '')
|
|
195
|
-
// 4. Nettoie les éventuels tirets bas ou points consécutifs (ex: "__" ou ".." -> "_")
|
|
196
|
-
.replace(/__+/g, '_')
|
|
197
|
-
.replace(/\.\.+/g, '.');
|
|
198
|
-
// Validation finale de sécurité
|
|
199
|
-
if (!serviceName || !/[\w.]+/.test(serviceName)) {
|
|
200
|
-
serviceName = '';
|
|
201
|
-
}
|
|
202
|
-
return serviceName;
|
|
122
|
+
todo`.trim() + '\n';
|
|
203
123
|
}
|
|
204
124
|
function getDefaultPkgJson(serviceName) {
|
|
205
125
|
return {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
126
|
+
name: serviceName,
|
|
127
|
+
version: "0.0.0",
|
|
128
|
+
description: "New Codenotch Project",
|
|
129
|
+
main: "index.js",
|
|
130
|
+
scripts: {},
|
|
131
|
+
keywords: [],
|
|
132
|
+
author: "",
|
|
133
|
+
license: "MIT",
|
|
134
|
+
dependencies: {
|
|
215
135
|
"react": "^19.2.8",
|
|
216
136
|
"react-dom": "^19.2.8",
|
|
217
137
|
"@codenotch/codenotch.react": BuildUtils_1.default.CN_REACT_VERSION
|
|
218
138
|
},
|
|
219
|
-
|
|
139
|
+
devDependencies: {
|
|
220
140
|
"@types/react": "^19.2.18",
|
|
221
141
|
"@types/react-dom": "^19.2.4",
|
|
222
142
|
"@vitejs/plugin-react": "^6.0.5",
|
|
@@ -224,16 +144,4 @@ function getDefaultPkgJson(serviceName) {
|
|
|
224
144
|
}
|
|
225
145
|
};
|
|
226
146
|
}
|
|
227
|
-
function getDefaultCodenotchManifest(projectName, serviceName) {
|
|
228
|
-
return {
|
|
229
|
-
packages: {},
|
|
230
|
-
projectName: projectName,
|
|
231
|
-
serviceName: serviceName,
|
|
232
|
-
languages: ['en', 'de', 'fr'],
|
|
233
|
-
roles: [],
|
|
234
|
-
version: '0.0.0',
|
|
235
|
-
dependencies: [],
|
|
236
|
-
postInstallationProcesses: []
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
147
|
//# sourceMappingURL=new.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/project/new.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/commands/project/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerInfo = registerInfo;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const os_1 = require("os");
|
|
9
8
|
function registerInfo(program) {
|
|
10
9
|
program
|
|
11
10
|
.command('info')
|
|
@@ -17,12 +16,6 @@ function registerInfo(program) {
|
|
|
17
16
|
console.log(`- Architecture: ${chalk_1.default.yellow(process.arch)}`);
|
|
18
17
|
console.log(`- Nvm version: ${chalk_1.default.yellow(process.env.NVM_BIN ? 'nvm detected' : 'nvm not detected')}`);
|
|
19
18
|
console.log(`- Current directory: ${chalk_1.default.yellow(process.cwd())}`);
|
|
20
|
-
if ((0, os_1.platform)() === 'win32') {
|
|
21
|
-
console.log(`- Download Ide: https://codenotchide.blob.core.windows.net/release-win/Codenotch%20Latest.exe?sv=2023-01-03&ss=btqf&srt=sco&spr=https%2Chttp&st=2025-08-28T12%3A46%3A05Z&se=2039-06-23T15%3A46%3A00Z&sp=rlp&sig=7ivKIFM4nANK4VzdKp20bzaNZhaZZ51YIvzriUacxBw%3D`);
|
|
22
|
-
}
|
|
23
|
-
else if ((0, os_1.platform)() === 'linux') {
|
|
24
|
-
console.log(`- Download Ide: https://codenotchide.blob.core.windows.net/release-linux/codenotch-ide_latest_amd64.deb?sv=2023-01-03&ss=btqf&srt=sco&spr=https%2Chttp&st=2025-08-28T12%3A46%3A05Z&se=2039-06-23T15%3A46%3A00Z&sp=rlp&sig=7ivKIFM4nANK4VzdKp20bzaNZhaZZ51YIvzriUacxBw%3D`);
|
|
25
|
-
}
|
|
26
19
|
});
|
|
27
20
|
}
|
|
28
21
|
//# sourceMappingURL=info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/system/info.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/system/info.ts"],"names":[],"mappings":";;;;;AAGA,oCAYC;AAdD,kDAA0B;AAE1B,SAAgB,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,GAAG,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAe,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,kBAAkB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,wBAAwB,eAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export type KnownFiles = 'bpmn' | 'manifest' | 'table' | 'document' | 'dbschema' | 'i18n' | 'script' | 'json' | 'manifest-cache' | 'app-manifest';
|
|
2
|
+
import { ICodenotchProjectManifest, ICompilationMessage } from '@codenotch/codenotch.core';
|
|
3
|
+
export type KnownFiles = 'manifest' | 'script' | 'json' | 'app-manifest';
|
|
5
4
|
/** Everything a file validator may need: the file itself and the surrounding Codenotch project when one was found. */
|
|
6
5
|
export interface ValidationContext {
|
|
7
6
|
filePath: string;
|
|
8
7
|
content: string;
|
|
9
8
|
projectPath?: string;
|
|
10
|
-
|
|
11
|
-
manifestCache?: IWorkspaceCache;
|
|
9
|
+
manifest?: ICodenotchProjectManifest;
|
|
12
10
|
}
|
|
13
11
|
export default abstract class ValidationUtils {
|
|
14
12
|
static determineFileType(filePath: string): KnownFiles | undefined;
|
|
@@ -17,12 +15,4 @@ export default abstract class ValidationUtils {
|
|
|
17
15
|
static validateJsonSyntax(content: string, filePath: string): ICompilationMessage[];
|
|
18
16
|
/** Lists all files under a folder, skipping dot-folders and generated/vendored directories. */
|
|
19
17
|
static listFilesRecursive(folderPath: string): string[];
|
|
20
|
-
static loadProjectTables(context: ValidationContext): Promise<{
|
|
21
|
-
service: string;
|
|
22
|
-
model: TableDefinition;
|
|
23
|
-
}[]>;
|
|
24
|
-
static loadProjectDocuments(context: ValidationContext): Promise<{
|
|
25
|
-
service: string;
|
|
26
|
-
model: AbstractRecordContainer;
|
|
27
|
-
}[]>;
|
|
28
18
|
}
|
|
@@ -7,36 +7,18 @@ const path_1 = __importDefault(require("path"));
|
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const typescript_1 = __importDefault(require("typescript"));
|
|
9
9
|
const FileUtils_1 = __importDefault(require("../../utils/FileUtils"));
|
|
10
|
-
const codenotch_core_1 = require("@codenotch/codenotch.core");
|
|
11
10
|
class ValidationUtils {
|
|
12
11
|
static determineFileType(filePath) {
|
|
13
12
|
const name = FileUtils_1.default.getNameFromPath(filePath);
|
|
14
13
|
const ext = FileUtils_1.default.getExtensionFromPath(filePath).toLowerCase();
|
|
15
|
-
if (
|
|
16
|
-
return 'bpmn';
|
|
17
|
-
}
|
|
18
|
-
else if (ext === 'jschema') {
|
|
19
|
-
return 'document';
|
|
20
|
-
}
|
|
21
|
-
else if (ext === 'table') {
|
|
22
|
-
return 'table';
|
|
23
|
-
}
|
|
24
|
-
else if (ext === 'csv' && name.endsWith('.i18n.csv')) {
|
|
25
|
-
return 'i18n';
|
|
26
|
-
}
|
|
27
|
-
else if (name === 'db-schema.xml') {
|
|
28
|
-
return 'dbschema';
|
|
29
|
-
}
|
|
30
|
-
else if (name === 'manifest.json') {
|
|
14
|
+
if (name === 'manifest.json') {
|
|
31
15
|
return 'manifest';
|
|
32
16
|
}
|
|
33
|
-
else if (name === 'manifest.cache.json') {
|
|
34
|
-
return 'manifest-cache';
|
|
35
|
-
}
|
|
36
17
|
else if (name.endsWith('.manifest.json')) {
|
|
37
18
|
return 'app-manifest';
|
|
38
19
|
}
|
|
39
20
|
else if (['ts', 'tsx', 'js', 'jsx', 'cjs', 'mjs', 'cts', 'mts'].includes(ext)) {
|
|
21
|
+
// Table, process, documents, etc
|
|
40
22
|
return 'script';
|
|
41
23
|
}
|
|
42
24
|
else if (ext === 'json') {
|
|
@@ -139,44 +121,6 @@ class ValidationUtils {
|
|
|
139
121
|
visit(folderPath);
|
|
140
122
|
return files;
|
|
141
123
|
}
|
|
142
|
-
static async loadProjectTables(context) {
|
|
143
|
-
const { fullManifest, projectPath } = context;
|
|
144
|
-
if (fullManifest === undefined || projectPath === undefined) {
|
|
145
|
-
return [];
|
|
146
|
-
}
|
|
147
|
-
const tables = [];
|
|
148
|
-
for (const manifestTable of fullManifest.tableDataSources) {
|
|
149
|
-
try {
|
|
150
|
-
const tablePath = path_1.default.join(projectPath, manifestTable.file);
|
|
151
|
-
const tableJson = await FileUtils_1.default.readFileAsync(tablePath);
|
|
152
|
-
const table = (new codenotch_core_1.TableCompiler()).deserialize(tableJson);
|
|
153
|
-
tables.push({ service: fullManifest.serviceName, model: table });
|
|
154
|
-
}
|
|
155
|
-
catch {
|
|
156
|
-
// Fail silently
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return tables;
|
|
160
|
-
}
|
|
161
|
-
static async loadProjectDocuments(context) {
|
|
162
|
-
const { fullManifest, projectPath } = context;
|
|
163
|
-
if (fullManifest === undefined || projectPath === undefined) {
|
|
164
|
-
return [];
|
|
165
|
-
}
|
|
166
|
-
const documents = [];
|
|
167
|
-
for (const manifestDoc of fullManifest.documentDataSources) {
|
|
168
|
-
try {
|
|
169
|
-
const docPath = path_1.default.join(projectPath, manifestDoc.file);
|
|
170
|
-
const docJson = await FileUtils_1.default.readFileAsync(docPath);
|
|
171
|
-
const doc = (new codenotch_core_1.DocumentCompiler()).deserialize(docJson);
|
|
172
|
-
documents.push({ service: fullManifest.serviceName, model: doc });
|
|
173
|
-
}
|
|
174
|
-
catch {
|
|
175
|
-
// Fail silently
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return documents;
|
|
179
|
-
}
|
|
180
124
|
}
|
|
181
125
|
exports.default = ValidationUtils;
|
|
182
126
|
//# sourceMappingURL=ValidationUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/commands/validation/ValidationUtils.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,2BAAiC;AACjC,4DAA4B;AAC5B,sEAA8C;
|
|
1
|
+
{"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/commands/validation/ValidationUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ class AppManifestValidator {
|
|
|
51
51
|
// The application file must live next to its manifest (App.manifest.json -> App.tsx)
|
|
52
52
|
const folder = path_1.default.dirname(context.filePath);
|
|
53
53
|
const baseName = path_1.default.basename(context.filePath).replace(/\.manifest\.json$/i, '');
|
|
54
|
-
const appFile = ['.tsx', '.jsx'
|
|
54
|
+
const appFile = ['.tsx', '.jsx'].map(ext => (0, path_1.join)(folder, baseName + ext)).find(f => (0, fs_1.existsSync)(f));
|
|
55
55
|
if (appFile === undefined) {
|
|
56
56
|
messages.push({
|
|
57
57
|
severity: 'error',
|
|
@@ -59,33 +59,18 @@ class AppManifestValidator {
|
|
|
59
59
|
target: baseName
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
if (`${manifest.
|
|
62
|
+
if (`${manifest.app?.name ?? ''}`.trim() === '') {
|
|
63
63
|
messages.push({
|
|
64
64
|
severity: 'error',
|
|
65
|
-
message: `The app manifest must define '
|
|
66
|
-
target: 'auml.name'
|
|
65
|
+
message: `The app manifest must define 'app.name', it is used as the application name by the build.`
|
|
67
66
|
});
|
|
68
67
|
}
|
|
69
|
-
if (manifest.
|
|
68
|
+
if (manifest.app?.scope !== undefined && APP_SCOPES.includes(manifest.app.scope) === false) {
|
|
70
69
|
messages.push({
|
|
71
70
|
severity: 'error',
|
|
72
|
-
message: `Invalid scope '${manifest.
|
|
73
|
-
target: 'auml.scope'
|
|
71
|
+
message: `Invalid scope '${manifest.app.scope}', expected one of: ${APP_SCOPES.join(', ')}.`
|
|
74
72
|
});
|
|
75
73
|
}
|
|
76
|
-
// Roles must be declared in the project manifest
|
|
77
|
-
if (context.fullManifest) {
|
|
78
|
-
const knownRoles = (context.fullManifest.roles ?? []).map(r => r.name);
|
|
79
|
-
for (const role of manifest.auml?.roles ?? []) {
|
|
80
|
-
if (knownRoles.includes(role) === false) {
|
|
81
|
-
messages.push({
|
|
82
|
-
severity: 'error',
|
|
83
|
-
message: `The role '${role}' is not declared in the project 'manifest.json' (known roles: ${knownRoles.length > 0 ? knownRoles.join(', ') : 'none'}).`,
|
|
84
|
-
target: 'auml.roles'
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
74
|
return messages;
|
|
90
75
|
}
|
|
91
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppManifestValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/AppManifestValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAkC;AAClC,2BAAgC;
|
|
1
|
+
{"version":3,"file":"AppManifestValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/AppManifestValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAkC;AAClC,2BAAgC;AAEhC,yEAAwE;AAExE,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAEtD,uGAAuG;AACvG,MAA8B,oBAAoB;IAE9C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,QAAQ,GAAG,yBAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE3D,qFAAqF;QACrF,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,WAAI,EAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,eAAU,EAAC,CAAC,CAAC,CAAC,CAAC;QACnG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,yBAAyB,QAAQ,yCAAyC;gBACnF,MAAM,EAAE,QAAQ;aACnB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,2FAA2F;aACvG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YACzF,QAAQ,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,kBAAkB,QAAQ,CAAC,GAAG,CAAC,KAAK,uBAAuB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC/F,CAAC,CAAC;QACP,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAtCD,uCAsCC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { ICompilationMessage
|
|
1
|
+
import { ICompilationMessage } from '@codenotch/codenotch.core';
|
|
2
2
|
import { ValidationContext } from '../ValidationUtils';
|
|
3
3
|
export default abstract class ScriptValidator {
|
|
4
4
|
static validate(context: ValidationContext): Promise<ICompilationMessage[]>;
|
|
5
5
|
/** Validates several scripts with a single TypeScript program, much faster than one program per file. */
|
|
6
6
|
static validateMany(filePaths: string[]): Promise<ICompilationMessage[]>;
|
|
7
7
|
}
|
|
8
|
-
export
|
|
8
|
+
export interface ScriptFile {
|
|
9
|
+
path: string;
|
|
10
|
+
content: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class CliScriptCompiler {
|
|
9
13
|
validate(files: ScriptFile[]): Promise<ICompilationMessage[]>;
|
|
10
14
|
serialize(files: ScriptFile[]): void;
|
|
11
15
|
deserialize(scripts: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/ScriptValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,2BAA6C;AAC7C,4DAA4B;AAE5B,2EAAmD;AACnD,yEAAiD;AACjD,yEAAwE;AAExE,MAA8B,eAAe;IAEzC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,QAAQ;aACzB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,yGAAyG;IACzG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAmB;QACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACJ;AAtBD,kCAsBC;
|
|
1
|
+
{"version":3,"file":"ScriptValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/ScriptValidator.ts"],"names":[],"mappings":"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"}
|