@codenotch/codenotch.cli 1.0.33 → 1.0.35
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/index.js +2 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/project/new.js +227 -1
- package/dist/commands/project/new.js.map +1 -1
- package/dist/commands/validation/ValidationUtils.d.ts +28 -0
- package/dist/commands/validation/ValidationUtils.js +182 -0
- package/dist/commands/validation/ValidationUtils.js.map +1 -0
- package/dist/commands/validation/files/AppManifestValidator.d.ts +6 -0
- package/dist/commands/validation/files/AppManifestValidator.js +93 -0
- package/dist/commands/validation/files/AppManifestValidator.js.map +1 -0
- package/dist/commands/validation/files/BpmnValidator.d.ts +5 -0
- package/dist/commands/validation/files/BpmnValidator.js +32 -0
- package/dist/commands/validation/files/BpmnValidator.js.map +1 -0
- package/dist/commands/validation/files/DbSchemaValidator.d.ts +5 -0
- package/dist/commands/validation/files/DbSchemaValidator.js +16 -0
- package/dist/commands/validation/files/DbSchemaValidator.js.map +1 -0
- package/dist/commands/validation/files/DocumentValidator.d.ts +5 -0
- package/dist/commands/validation/files/DocumentValidator.js +12 -0
- package/dist/commands/validation/files/DocumentValidator.js.map +1 -0
- package/dist/commands/validation/files/I18nValidator.d.ts +5 -0
- package/dist/commands/validation/files/I18nValidator.js +13 -0
- package/dist/commands/validation/files/I18nValidator.js.map +1 -0
- package/dist/commands/validation/files/JsonValidator.d.ts +5 -0
- package/dist/commands/validation/files/JsonValidator.js +13 -0
- package/dist/commands/validation/files/JsonValidator.js.map +1 -0
- package/dist/commands/validation/files/ManifestCacheValidator.d.ts +5 -0
- package/dist/commands/validation/files/ManifestCacheValidator.js +121 -0
- package/dist/commands/validation/files/ManifestCacheValidator.js.map +1 -0
- package/dist/commands/validation/files/ManifestValidator.d.ts +5 -0
- package/dist/commands/validation/files/ManifestValidator.js +14 -0
- package/dist/commands/validation/files/ManifestValidator.js.map +1 -0
- package/dist/commands/validation/files/ScriptValidator.d.ts +12 -0
- package/dist/commands/validation/files/ScriptValidator.js +128 -0
- package/dist/commands/validation/files/ScriptValidator.js.map +1 -0
- package/dist/commands/validation/files/TableValidator.d.ts +5 -0
- package/dist/commands/validation/files/TableValidator.js +19 -0
- package/dist/commands/validation/files/TableValidator.js.map +1 -0
- package/dist/commands/validation/validate.d.ts +2 -0
- package/dist/commands/validation/validate.js +245 -0
- package/dist/commands/validation/validate.js.map +1 -0
- package/dist/utils/BuildUtils.d.ts +23 -4
- package/dist/utils/BuildUtils.js +46 -16
- package/dist/utils/BuildUtils.js.map +1 -1
- package/dist/utils/FileUtils.d.ts +13 -0
- package/dist/utils/FileUtils.js +30 -0
- package/dist/utils/FileUtils.js.map +1 -1
- package/dist/utils/I18nUtils.js +0 -2
- package/dist/utils/I18nUtils.js.map +1 -1
- package/package.json +14 -6
- package/.github/copilot-instructions.md +0 -3
- package/bin/cli.js +0 -3
- package/docs/ARCHITECTURE.md +0 -179
- package/docs/TODO.md +0 -18
- package/src/bin/cli.ts +0 -4
- package/src/commands/index.ts +0 -13
- package/src/commands/project/compile.ts +0 -20
- package/src/commands/project/deploy.ts +0 -11
- package/src/commands/project/index.ts +0 -28
- package/src/commands/project/inspect.ts +0 -12
- package/src/commands/project/new.ts +0 -11
- package/src/commands/project/open.ts +0 -21
- package/src/commands/project/package.ts +0 -20
- package/src/commands/project/refresh.ts +0 -13
- package/src/commands/project/remove.ts +0 -12
- package/src/commands/project/shared.ts +0 -9
- package/src/commands/project/start.ts +0 -24
- package/src/commands/project/test.ts +0 -15
- package/src/commands/react/build.ts +0 -12
- package/src/commands/react/index.ts +0 -12
- package/src/commands/react/serve.ts +0 -13
- package/src/commands/runtime/clear.ts +0 -11
- package/src/commands/runtime/index.ts +0 -24
- package/src/commands/runtime/info.ts +0 -47
- package/src/commands/runtime/latest.ts +0 -18
- package/src/commands/runtime/portal.ts +0 -20
- package/src/commands/runtime/start.ts +0 -16
- package/src/commands/runtime/stop.ts +0 -13
- package/src/commands/runtime/update.ts +0 -12
- package/src/commands/system/index.ts +0 -9
- package/src/commands/system/info.ts +0 -23
- package/src/commands/system/read.ts +0 -25
- package/src/index.ts +0 -22
- package/src/models/Codenotch.ts +0 -361
- package/src/models/DbModels.ts +0 -428
- package/src/models/OpenApiModels.ts +0 -145
- package/src/utils/BuildUtils.ts +0 -739
- package/src/utils/ConsoleUtils.ts +0 -22
- package/src/utils/FileUtils.ts +0 -266
- package/src/utils/GitHubAuthUtils.ts +0 -83
- package/src/utils/I18nUtils.ts +0 -58
- package/src/utils/OpenAPIUtils.ts +0 -285
- package/src/utils/OsUtils.ts +0 -32
- package/src/utils/ProjectCompilationUtils.ts +0 -1002
- package/src/utils/ProjectUtils.ts +0 -151
- package/src/utils/RuntimeUtils.ts +0 -743
- package/src/utils/ServeUtils.ts +0 -175
- package/src/utils/ShellUtils.ts +0 -26
- package/src/utils/StringUtils.ts +0 -80
- package/tsconfig.json +0 -35
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
const codenotch_core_1 = require("@codenotch/codenotch.core");
|
|
7
|
+
const ValidationUtils_1 = __importDefault(require("../ValidationUtils"));
|
|
8
|
+
class DbSchemaValidator {
|
|
9
|
+
static async validate(context) {
|
|
10
|
+
const tables = (await ValidationUtils_1.default.loadProjectTables(context)).map(c => c.model);
|
|
11
|
+
const compiler = new codenotch_core_1.DbSchemaCompiler();
|
|
12
|
+
return await compiler.validate(context.content, { tables: tables });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.default = DbSchemaValidator;
|
|
16
|
+
//# sourceMappingURL=DbSchemaValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DbSchemaValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/DbSchemaValidator.ts"],"names":[],"mappings":";;;;;AAAA,8DAAkF;AAClF,yEAAwE;AAExE,MAA8B,iBAAiB;IAE3C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,MAAM,GAAG,CAAC,MAAM,yBAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,iCAAgB,EAAE,CAAC;QACxC,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;CACJ;AAPD,oCAOC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const codenotch_core_1 = require("@codenotch/codenotch.core");
|
|
4
|
+
class DocumentValidator {
|
|
5
|
+
static async validate(context) {
|
|
6
|
+
const compiler = new codenotch_core_1.DocumentCompiler();
|
|
7
|
+
const obj = compiler.deserialize(context.content);
|
|
8
|
+
return await compiler.validate(obj);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.default = DocumentValidator;
|
|
12
|
+
//# sourceMappingURL=DocumentValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/DocumentValidator.ts"],"names":[],"mappings":";;AAAA,8DAAkF;AAGlF,MAA8B,iBAAiB;IAE3C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,QAAQ,GAAG,IAAI,iCAAgB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;CACJ;AAPD,oCAOC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const codenotch_core_1 = require("@codenotch/codenotch.core");
|
|
4
|
+
class I18nValidator {
|
|
5
|
+
static async validate(context) {
|
|
6
|
+
const compiler = new codenotch_core_1.I18nCompiler();
|
|
7
|
+
return await compiler.validate(context.content, {
|
|
8
|
+
expectedLanguages: context.fullManifest?.languages ?? []
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = I18nValidator;
|
|
13
|
+
//# sourceMappingURL=I18nValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"I18nValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/I18nValidator.ts"],"names":[],"mappings":";;AAAA,8DAA8E;AAG9E,MAA8B,aAAa;IAEvC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,QAAQ,GAAG,IAAI,6BAAY,EAAE,CAAC;QACpC,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YAC5C,iBAAiB,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE;SAC3D,CAAC,CAAC;IACP,CAAC;CACJ;AARD,gCAQC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
const ValidationUtils_1 = __importDefault(require("../ValidationUtils"));
|
|
7
|
+
class JsonValidator {
|
|
8
|
+
static async validate(context) {
|
|
9
|
+
return ValidationUtils_1.default.validateJsonSyntax(context.content, context.filePath);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = JsonValidator;
|
|
13
|
+
//# sourceMappingURL=JsonValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/JsonValidator.ts"],"names":[],"mappings":";;;;;AACA,yEAAwE;AAExE,MAA8B,aAAa;IAEvC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,OAAO,yBAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;CACJ;AALD,gCAKC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const path_1 = __importStar(require("path"));
|
|
40
|
+
const fs_1 = require("fs");
|
|
41
|
+
const ValidationUtils_1 = __importDefault(require("../ValidationUtils"));
|
|
42
|
+
class ManifestCacheValidator {
|
|
43
|
+
static async validate(context) {
|
|
44
|
+
const messages = ValidationUtils_1.default.validateJsonSyntax(context.content, context.filePath);
|
|
45
|
+
const { manifestCache, projectPath } = context;
|
|
46
|
+
if (manifestCache === undefined || projectPath === undefined) {
|
|
47
|
+
// normally impossible (unreadable cache or file outside its project),
|
|
48
|
+
// the syntax messages and the command's earlier warnings already explain it
|
|
49
|
+
return messages;
|
|
50
|
+
}
|
|
51
|
+
const checkFilesExist = (entries, kind, getTarget) => {
|
|
52
|
+
for (const entry of entries ?? []) {
|
|
53
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(projectPath, entry.file)) === false) {
|
|
54
|
+
messages.push({
|
|
55
|
+
severity: 'error',
|
|
56
|
+
message: `The ${kind} file '${entry.file}' referenced by 'manifest.cache.json' does not exist.`,
|
|
57
|
+
target: getTarget(entry)
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
checkFilesExist(manifestCache.tableDataSources, 'table', e => e.name);
|
|
63
|
+
checkFilesExist(manifestCache.documentDataSources, 'document', e => e.name);
|
|
64
|
+
checkFilesExist(manifestCache.processes, 'process', e => e.processName);
|
|
65
|
+
checkFilesExist(manifestCache.reactApplications, 'react application', e => e.applicationName);
|
|
66
|
+
// APIs reference a process by name (api.bpmn = processName), not a file
|
|
67
|
+
for (const api of manifestCache.apis ?? []) {
|
|
68
|
+
const process = (manifestCache.processes ?? []).find(p => p.processName === api.bpmn);
|
|
69
|
+
if (process === undefined) {
|
|
70
|
+
messages.push({
|
|
71
|
+
severity: 'error',
|
|
72
|
+
message: `The API '${api.method} ${api.path}' references the process '${api.bpmn}' which is not declared in 'manifest.cache.json'.`,
|
|
73
|
+
target: api.path
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else if ((process.startEvents ?? []).some(s => s.nodeId === api.startNode) === false) {
|
|
77
|
+
messages.push({
|
|
78
|
+
severity: 'error',
|
|
79
|
+
message: `The API '${api.method} ${api.path}' references the start event '${api.startNode}' which does not exist in process '${api.bpmn}'.`,
|
|
80
|
+
target: api.path
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// The reverse check: files on disk the cache does not reference means the cache is out of date
|
|
85
|
+
const referenced = new Set();
|
|
86
|
+
const collectReferences = (entries) => {
|
|
87
|
+
for (const entry of entries ?? []) {
|
|
88
|
+
referenced.add(entry.file.replaceAll('\\', '/').toLowerCase());
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
collectReferences(manifestCache.processes);
|
|
92
|
+
collectReferences(manifestCache.tableDataSources);
|
|
93
|
+
collectReferences(manifestCache.documentDataSources);
|
|
94
|
+
collectReferences(manifestCache.reactApplications);
|
|
95
|
+
for (const file of ValidationUtils_1.default.listFilesRecursive(projectPath)) {
|
|
96
|
+
const ext = path_1.default.extname(file).toLowerCase();
|
|
97
|
+
let kind = ext === '.bpmn' ? 'process' :
|
|
98
|
+
ext === '.table' ? 'table' :
|
|
99
|
+
ext === '.jschema' ? 'document' :
|
|
100
|
+
undefined;
|
|
101
|
+
// A .tsx is a react application only when it has its own app manifest next to it
|
|
102
|
+
if (ext === '.tsx' && (0, fs_1.existsSync)(file.replace(/\.tsx$/i, '.manifest.json'))) {
|
|
103
|
+
kind = 'react application';
|
|
104
|
+
}
|
|
105
|
+
if (kind === undefined) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const relative = path_1.default.relative(projectPath, file).replaceAll('\\', '/');
|
|
109
|
+
if (referenced.has(relative.toLowerCase()) === false) {
|
|
110
|
+
messages.push({
|
|
111
|
+
severity: 'warning',
|
|
112
|
+
message: `The ${kind} file '${relative}' is not referenced by 'manifest.cache.json'. The cache may be out of date, run 'cn project compile' to regenerate it.`,
|
|
113
|
+
target: relative
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return messages;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.default = ManifestCacheValidator;
|
|
121
|
+
//# sourceMappingURL=ManifestCacheValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManifestCacheValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/ManifestCacheValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const codenotch_core_1 = require("@codenotch/codenotch.core");
|
|
4
|
+
class ManifestValidator {
|
|
5
|
+
static async validate(context) {
|
|
6
|
+
const compiler = new codenotch_core_1.ProjectManifestCompiler();
|
|
7
|
+
const obj = compiler.deserialize(context.content);
|
|
8
|
+
return await compiler.validate(obj, {
|
|
9
|
+
fullManifest: context.fullManifest
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = ManifestValidator;
|
|
14
|
+
//# sourceMappingURL=ManifestValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManifestValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/ManifestValidator.ts"],"names":[],"mappings":";;AAAA,8DAAyF;AAGzF,MAA8B,iBAAiB;IAE3C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,QAAQ,GAAG,IAAI,wCAAuB,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC,CAAC;IACP,CAAC;CACJ;AATD,oCASC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ICompilationMessage, ScriptCompiler, ScriptFile } from '@codenotch/codenotch.core';
|
|
2
|
+
import { ValidationContext } from '../ValidationUtils';
|
|
3
|
+
export default abstract class ScriptValidator {
|
|
4
|
+
static validate(context: ValidationContext): Promise<ICompilationMessage[]>;
|
|
5
|
+
/** Validates several scripts with a single TypeScript program, much faster than one program per file. */
|
|
6
|
+
static validateMany(filePaths: string[]): Promise<ICompilationMessage[]>;
|
|
7
|
+
}
|
|
8
|
+
export declare class CliScriptCompiler implements ScriptCompiler {
|
|
9
|
+
validate(files: ScriptFile[]): Promise<ICompilationMessage[]>;
|
|
10
|
+
serialize(files: ScriptFile[]): void;
|
|
11
|
+
deserialize(scripts: string): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.CliScriptCompiler = void 0;
|
|
40
|
+
const path_1 = __importStar(require("path"));
|
|
41
|
+
const fs_1 = require("fs");
|
|
42
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
43
|
+
const BuildUtils_1 = __importDefault(require("../../../utils/BuildUtils"));
|
|
44
|
+
const FileUtils_1 = __importDefault(require("../../../utils/FileUtils"));
|
|
45
|
+
const ValidationUtils_1 = __importDefault(require("../ValidationUtils"));
|
|
46
|
+
class ScriptValidator {
|
|
47
|
+
static async validate(context) {
|
|
48
|
+
const compiler = new CliScriptCompiler();
|
|
49
|
+
return await compiler.validate([{
|
|
50
|
+
content: context.content,
|
|
51
|
+
path: context.filePath
|
|
52
|
+
}]);
|
|
53
|
+
}
|
|
54
|
+
/** Validates several scripts with a single TypeScript program, much faster than one program per file. */
|
|
55
|
+
static async validateMany(filePaths) {
|
|
56
|
+
if (filePaths.length === 0) {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const files = [];
|
|
60
|
+
for (const filePath of filePaths) {
|
|
61
|
+
files.push({ path: filePath, content: await FileUtils_1.default.readFileAsync(filePath) });
|
|
62
|
+
}
|
|
63
|
+
const compiler = new CliScriptCompiler();
|
|
64
|
+
return await compiler.validate(files);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.default = ScriptValidator;
|
|
68
|
+
class CliScriptCompiler {
|
|
69
|
+
async validate(files) {
|
|
70
|
+
const messages = [];
|
|
71
|
+
const requestedFiles = files.map(f => (0, path_1.resolve)(f.path));
|
|
72
|
+
const rootFiles = [...requestedFiles];
|
|
73
|
+
const searchDir = path_1.default.dirname(requestedFiles[0]);
|
|
74
|
+
// Locate the node project root to warn when dependencies are not installed,
|
|
75
|
+
// otherwise every import would surface as a TS2307 without explanation.
|
|
76
|
+
const pkgPath = typescript_1.default.findConfigFile(searchDir, typescript_1.default.sys.fileExists, 'package.json');
|
|
77
|
+
if (pkgPath && (0, fs_1.existsSync)((0, path_1.join)(path_1.default.dirname(pkgPath), 'node_modules')) === false) {
|
|
78
|
+
messages.push({
|
|
79
|
+
severity: 'warning',
|
|
80
|
+
message: `No 'node_modules' found in '${path_1.default.dirname(pkgPath)}', imported modules will not resolve. Run 'npm install' first for a complete validation.`
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// Use the project tsconfig.json when there is one, else the same defaults as the build
|
|
84
|
+
const configPath = typescript_1.default.findConfigFile(searchDir, typescript_1.default.sys.fileExists, 'tsconfig.json');
|
|
85
|
+
let options;
|
|
86
|
+
let configDiagnostics = [];
|
|
87
|
+
if (configPath) {
|
|
88
|
+
const raw = typescript_1.default.readConfigFile(configPath, typescript_1.default.sys.readFile);
|
|
89
|
+
const parsed = typescript_1.default.parseJsonConfigFileContent(raw.config ?? {}, typescript_1.default.sys, path_1.default.dirname(configPath));
|
|
90
|
+
options = parsed.options;
|
|
91
|
+
configDiagnostics = [...(raw.error ? [raw.error] : []), ...parsed.errors];
|
|
92
|
+
// Ambient declarations included by the tsconfig must be part of the program
|
|
93
|
+
rootFiles.push(...parsed.fileNames.filter(f => f.endsWith('.d.ts')).map(f => (0, path_1.resolve)(f)));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const basePath = pkgPath ? path_1.default.dirname(pkgPath) : searchDir;
|
|
97
|
+
options = typescript_1.default.convertCompilerOptionsFromJson(BuildUtils_1.default.defaultCompilerOptions(), basePath).options;
|
|
98
|
+
}
|
|
99
|
+
options.noEmit = true;
|
|
100
|
+
// Codenotch auto-generated ambient typings (i18n.d.ts, process.d.ts)
|
|
101
|
+
const workspacePath = BuildUtils_1.default.findWorkspaceFromFile(requestedFiles[0]);
|
|
102
|
+
if (workspacePath) {
|
|
103
|
+
const typingsDir = (0, path_1.join)(workspacePath, 'typings');
|
|
104
|
+
if ((0, fs_1.existsSync)(typingsDir)) {
|
|
105
|
+
rootFiles.push(...(0, fs_1.readdirSync)(typingsDir).filter(f => f.endsWith('.d.ts')).map(f => (0, path_1.join)(typingsDir, f)));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const program = typescript_1.default.createProgram([...new Set(rootFiles)], options);
|
|
109
|
+
const diagnostics = [...configDiagnostics, ...typescript_1.default.getPreEmitDiagnostics(program)];
|
|
110
|
+
const isRequestedFile = (fileName) => requestedFiles.some(f => f.toLowerCase() === (0, path_1.resolve)(fileName).toLowerCase());
|
|
111
|
+
for (const diagnostic of diagnostics) {
|
|
112
|
+
// Keep global/options diagnostics, drop those of imported files
|
|
113
|
+
if (diagnostic.file && isRequestedFile(diagnostic.file.fileName) === false) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
messages.push(ValidationUtils_1.default.tsDiagnosticToMessage(diagnostic));
|
|
117
|
+
}
|
|
118
|
+
return messages;
|
|
119
|
+
}
|
|
120
|
+
serialize(files) {
|
|
121
|
+
throw new Error('No serialization possible with script files.');
|
|
122
|
+
}
|
|
123
|
+
deserialize(scripts) {
|
|
124
|
+
throw new Error('No deserialization possible with script files.');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.CliScriptCompiler = CliScriptCompiler;
|
|
128
|
+
//# sourceMappingURL=ScriptValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/ScriptValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
const codenotch_core_1 = require("@codenotch/codenotch.core");
|
|
7
|
+
const ValidationUtils_1 = __importDefault(require("../ValidationUtils"));
|
|
8
|
+
class TableValidator {
|
|
9
|
+
static async validate(context) {
|
|
10
|
+
const tables = (await ValidationUtils_1.default.loadProjectTables(context)).map(c => c.model);
|
|
11
|
+
const compiler = new codenotch_core_1.TableCompiler();
|
|
12
|
+
const obj = compiler.deserialize(context.content);
|
|
13
|
+
return await compiler.validate(obj, (tableName) => {
|
|
14
|
+
return tables.find(c => c.Name === tableName);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = TableValidator;
|
|
19
|
+
//# sourceMappingURL=TableValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableValidator.js","sourceRoot":"","sources":["../../../../src/commands/validation/files/TableValidator.ts"],"names":[],"mappings":";;;;;AAAA,8DAA+E;AAC/E,yEAAwE;AAExE,MAA8B,cAAc;IAExC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA0B;QAC5C,MAAM,MAAM,GAAG,CAAC,MAAM,yBAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,8BAAa,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE;YAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAVD,iCAUC"}
|