@platforma-sdk/tengo-builder 2.4.25 → 2.4.26
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/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/commands/build.cjs +106 -150
- package/dist/commands/build.cjs.map +1 -1
- package/dist/commands/build.d.ts +15 -10
- package/dist/commands/build.js +101 -126
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/check.cjs +32 -36
- package/dist/commands/check.cjs.map +1 -1
- package/dist/commands/check.d.ts +13 -8
- package/dist/commands/check.js +30 -33
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dump/artifacts.cjs +22 -22
- package/dist/commands/dump/artifacts.cjs.map +1 -1
- package/dist/commands/dump/artifacts.d.ts +13 -8
- package/dist/commands/dump/artifacts.js +20 -19
- package/dist/commands/dump/artifacts.js.map +1 -1
- package/dist/commands/dump/software.cjs +19 -21
- package/dist/commands/dump/software.cjs.map +1 -1
- package/dist/commands/dump/software.d.ts +12 -7
- package/dist/commands/dump/software.js +17 -18
- package/dist/commands/dump/software.js.map +1 -1
- package/dist/commands/test.cjs +32 -33
- package/dist/commands/test.cjs.map +1 -1
- package/dist/commands/test.d.ts +13 -8
- package/dist/commands/test.js +30 -30
- package/dist/commands/test.js.map +1 -1
- package/dist/compiler/artifactset.cjs +59 -68
- package/dist/compiler/artifactset.cjs.map +1 -1
- package/dist/compiler/artifactset.js +60 -66
- package/dist/compiler/artifactset.js.map +1 -1
- package/dist/compiler/compiler.cjs +241 -314
- package/dist/compiler/compiler.cjs.map +1 -1
- package/dist/compiler/compiler.js +241 -312
- package/dist/compiler/compiler.js.map +1 -1
- package/dist/compiler/compileroptions.cjs +16 -35
- package/dist/compiler/compileroptions.cjs.map +1 -1
- package/dist/compiler/compileroptions.js +17 -33
- package/dist/compiler/compileroptions.js.map +1 -1
- package/dist/compiler/main.cjs +258 -334
- package/dist/compiler/main.cjs.map +1 -1
- package/dist/compiler/main.js +256 -311
- package/dist/compiler/main.js.map +1 -1
- package/dist/compiler/package.cjs +21 -35
- package/dist/compiler/package.cjs.map +1 -1
- package/dist/compiler/package.js +21 -34
- package/dist/compiler/package.js.map +1 -1
- package/dist/compiler/source.cjs +239 -308
- package/dist/compiler/source.cjs.map +1 -1
- package/dist/compiler/source.js +239 -304
- package/dist/compiler/source.js.map +1 -1
- package/dist/compiler/template.cjs +30 -35
- package/dist/compiler/template.cjs.map +1 -1
- package/dist/compiler/template.js +29 -33
- package/dist/compiler/template.js.map +1 -1
- package/dist/compiler/util.cjs +40 -61
- package/dist/compiler/util.cjs.map +1 -1
- package/dist/compiler/util.js +36 -39
- package/dist/compiler/util.js.map +1 -1
- package/dist/index.cjs +14 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +15 -11
- package/dist/index.js +13 -12
- package/dist/index.js.map +1 -1
- package/dist/shared/basecmd.cjs +42 -33
- package/dist/shared/basecmd.cjs.map +1 -1
- package/dist/shared/basecmd.js +41 -31
- package/dist/shared/basecmd.js.map +1 -1
- package/dist/shared/dump.cjs +73 -107
- package/dist/shared/dump.cjs.map +1 -1
- package/dist/shared/dump.js +73 -105
- package/dist/shared/dump.js.map +1 -1
- package/dist/shared/proc.cjs +22 -18
- package/dist/shared/proc.cjs.map +1 -1
- package/dist/shared/proc.js +21 -16
- package/dist/shared/proc.js.map +1 -1
- package/package.json +8 -8
- package/dist/commands/build.d.ts.map +0 -1
- package/dist/commands/check.d.ts.map +0 -1
- package/dist/commands/dump/artifacts.d.ts.map +0 -1
- package/dist/commands/dump/software.d.ts.map +0 -1
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/compiler/artifactset.d.ts +0 -24
- package/dist/compiler/artifactset.d.ts.map +0 -1
- package/dist/compiler/compiler.d.ts +0 -42
- package/dist/compiler/compiler.d.ts.map +0 -1
- package/dist/compiler/compileroptions.d.ts +0 -6
- package/dist/compiler/compileroptions.d.ts.map +0 -1
- package/dist/compiler/main.d.ts +0 -35
- package/dist/compiler/main.d.ts.map +0 -1
- package/dist/compiler/package.d.ts +0 -44
- package/dist/compiler/package.d.ts.map +0 -1
- package/dist/compiler/source.d.ts +0 -54
- package/dist/compiler/source.d.ts.map +0 -1
- package/dist/compiler/template.d.ts +0 -22
- package/dist/compiler/template.d.ts.map +0 -1
- package/dist/compiler/test.artifacts.d.ts +0 -47
- package/dist/compiler/test.artifacts.d.ts.map +0 -1
- package/dist/compiler/util.d.ts +0 -8
- package/dist/compiler/util.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/shared/basecmd.d.ts +0 -12
- package/dist/shared/basecmd.d.ts.map +0 -1
- package/dist/shared/dump.d.ts +0 -6
- package/dist/shared/dump.d.ts.map +0 -1
- package/dist/shared/proc.d.ts +0 -5
- package/dist/shared/proc.d.ts.map +0 -1
package/dist/compiler/main.cjs
CHANGED
|
@@ -1,386 +1,310 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function _interopNamespaceDefault(e) {
|
|
14
|
-
var n = Object.create(null);
|
|
15
|
-
if (e) {
|
|
16
|
-
Object.keys(e).forEach(function (k) {
|
|
17
|
-
if (k !== 'default') {
|
|
18
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
19
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function () { return e[k]; }
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
n.default = e;
|
|
27
|
-
return Object.freeze(n);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
31
|
-
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
1
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
2
|
+
const require_util = require('./util.cjs');
|
|
3
|
+
const require_package = require('./package.cjs');
|
|
4
|
+
const require_template = require('./template.cjs');
|
|
5
|
+
const require_compiler = require('./compiler.cjs');
|
|
6
|
+
const require_source = require('./source.cjs');
|
|
7
|
+
let node_path = require("node:path");
|
|
8
|
+
node_path = require_runtime.__toESM(node_path);
|
|
9
|
+
let node_fs = require("node:fs");
|
|
10
|
+
node_fs = require_runtime.__toESM(node_fs);
|
|
11
|
+
let _milaboratories_pl_model_backend = require("@milaboratories/pl-model-backend");
|
|
12
|
+
let _milaboratories_resolve_helper = require("@milaboratories/resolve-helper");
|
|
32
13
|
|
|
14
|
+
//#region src/compiler/main.ts
|
|
33
15
|
const compiledTplSuffix = ".plj.gz";
|
|
34
16
|
const compiledLibSuffix = ".lib.tengo";
|
|
35
17
|
const compiledSoftwareSuffix = ".sw.json";
|
|
36
18
|
const compiledAssetSuffix = ".as.json";
|
|
37
|
-
// We need to keep track of dependencies for correct tgo-test CLI utility configuraiton.
|
|
38
|
-
// It is much simpler to do this here, than duplicate all tle logic regarding dependencies
|
|
39
|
-
// in go code.
|
|
40
19
|
const srcTestSuffix = ".test.tengo";
|
|
41
20
|
const srcTplSuffix = ".tpl.tengo";
|
|
42
21
|
const srcLibSuffix = ".lib.tengo";
|
|
43
22
|
const srcSoftwareSuffix = ".sw.json";
|
|
44
23
|
const srcAssetSuffix = ".as.json";
|
|
45
|
-
const compilableSuffixes = [
|
|
24
|
+
const compilableSuffixes = [
|
|
25
|
+
srcLibSuffix,
|
|
26
|
+
srcTplSuffix,
|
|
27
|
+
srcSoftwareSuffix,
|
|
28
|
+
srcAssetSuffix
|
|
29
|
+
];
|
|
46
30
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
31
|
+
* Resolves path to package.json file of the given dependency package.
|
|
32
|
+
*/
|
|
49
33
|
function resolvePackageJsonPackage(root, depPackageName) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const resolved2 = resolveHelper.tryResolveOrError(root, `${depPackageName}/package.json`);
|
|
68
|
-
if (resolved2.result === undefined) {
|
|
69
|
-
if (resolved2.err === "ERR_PACKAGE_PATH_NOT_EXPORTED")
|
|
70
|
-
// tolerating not-exported package.json for dev dependencies
|
|
71
|
-
return undefined;
|
|
72
|
-
throw new Error(`Can't resolve package.json for package ${depPackageName ?? "."} relative to ${root}`);
|
|
73
|
-
}
|
|
74
|
-
return resolved2.result;
|
|
34
|
+
if (!node_path.isAbsolute(root)) throw new Error(`Root path must be absolute: ${root}`);
|
|
35
|
+
let resolved = (0, _milaboratories_resolve_helper.tryResolve)(root, depPackageName);
|
|
36
|
+
if (resolved) {
|
|
37
|
+
let depth = 0;
|
|
38
|
+
do {
|
|
39
|
+
const p = node_path.join(resolved, "package.json");
|
|
40
|
+
if (require_util.pathType(p) === "file") return p;
|
|
41
|
+
depth++;
|
|
42
|
+
resolved = node_path.dirname(resolved);
|
|
43
|
+
} while (depth < 7 && node_path.basename(resolved) !== "node_modules");
|
|
44
|
+
}
|
|
45
|
+
const resolved2 = (0, _milaboratories_resolve_helper.tryResolveOrError)(root, `${depPackageName}/package.json`);
|
|
46
|
+
if (resolved2.result === void 0) {
|
|
47
|
+
if (resolved2.err === "ERR_PACKAGE_PATH_NOT_EXPORTED") return void 0;
|
|
48
|
+
throw new Error(`Can't resolve package.json for package ${depPackageName ?? "."} relative to ${root}`);
|
|
49
|
+
}
|
|
50
|
+
return resolved2.result;
|
|
75
51
|
}
|
|
76
52
|
function resolvePackageJsonRoot(root) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (util.pathType(p) === "file")
|
|
82
|
-
return p;
|
|
83
|
-
throw new Error(`Can't resolve package.json in ${root}`);
|
|
53
|
+
if (!node_path.isAbsolute(root)) throw new Error(`Root path must be absolute: ${root}`);
|
|
54
|
+
const p = node_path.join(root, "package.json");
|
|
55
|
+
if (require_util.pathType(p) === "file") return p;
|
|
56
|
+
throw new Error(`Can't resolve package.json in ${root}`);
|
|
84
57
|
}
|
|
85
58
|
/**
|
|
86
|
-
|
|
87
|
-
|
|
59
|
+
* Get package info from package.json and all dependencies.
|
|
60
|
+
*/
|
|
88
61
|
function getPackageInfo(root, logger, context = "root") {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
name: packageJson.name,
|
|
116
|
-
version: packageJson.version,
|
|
117
|
-
type: packageJson.type,
|
|
118
|
-
dependencies: depInfos,
|
|
119
|
-
root,
|
|
120
|
-
context,
|
|
121
|
-
};
|
|
62
|
+
const packageJsonPath = resolvePackageJsonRoot(root);
|
|
63
|
+
const packageJson = JSON.parse(node_fs.readFileSync(packageJsonPath).toString());
|
|
64
|
+
const depInfos = [];
|
|
65
|
+
if (packageJson.dependencies && context !== "devDependency") for (const dep of Object.keys(packageJson.dependencies)) {
|
|
66
|
+
const depPackageJson = resolvePackageJsonPackage(root, dep);
|
|
67
|
+
if (depPackageJson === void 0) throw new Error(`Can't resolve package.json for dependency ${dep} of ${root}`);
|
|
68
|
+
const depRoot = node_path.dirname(depPackageJson);
|
|
69
|
+
depInfos.push(getPackageInfo(depRoot, logger, "dependency"));
|
|
70
|
+
}
|
|
71
|
+
if (packageJson.devDependencies && context === "root") for (const dep of Object.keys(packageJson.devDependencies)) {
|
|
72
|
+
const depPackageJson = resolvePackageJsonPackage(root, dep);
|
|
73
|
+
if (depPackageJson === void 0) {
|
|
74
|
+
logger.warn(`Can't resolve package.json for dev dependency ${dep} of ${root}`);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const depRoot = node_path.dirname(depPackageJson);
|
|
78
|
+
depInfos.push(getPackageInfo(depRoot, logger, "devDependency"));
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
name: packageJson.name,
|
|
82
|
+
version: packageJson.version,
|
|
83
|
+
type: packageJson.type,
|
|
84
|
+
dependencies: depInfos,
|
|
85
|
+
root,
|
|
86
|
+
context
|
|
87
|
+
};
|
|
122
88
|
}
|
|
123
89
|
function resolveLibsDst(mode, root) {
|
|
124
|
-
|
|
90
|
+
return node_path.resolve(root, mode, "tengo", "lib");
|
|
125
91
|
}
|
|
126
92
|
function resolveTemplatesDst(mode, root) {
|
|
127
|
-
|
|
93
|
+
return node_path.resolve(root, mode, "tengo", "tpl");
|
|
128
94
|
}
|
|
129
95
|
function resolveSoftwareDst(mode, root) {
|
|
130
|
-
|
|
96
|
+
return node_path.resolve(root, mode, "tengo", "software");
|
|
131
97
|
}
|
|
132
98
|
function resolveAssetsDst(mode, root) {
|
|
133
|
-
|
|
99
|
+
return node_path.resolve(root, mode, "tengo", "asset");
|
|
134
100
|
}
|
|
135
101
|
function loadDependencies(logger, compiler, packageInfo) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
loadLibsFromDir(logger, packageId, "dist", libDistFolder, compiler);
|
|
156
|
-
}
|
|
157
|
-
if (tplDistExists) {
|
|
158
|
-
loadTemplatesFromDir(logger, packageId, "dist", tplDistFolder, compiler);
|
|
159
|
-
}
|
|
160
|
-
if (softwareDistExists) {
|
|
161
|
-
loadSoftwareFromDir(logger, packageId, "dist", softwareDistFolder, compiler);
|
|
162
|
-
}
|
|
163
|
-
if (assetDistExists) {
|
|
164
|
-
loadAssetsFromDir(logger, packageId, "dist", assetDistFolder, compiler);
|
|
165
|
-
}
|
|
102
|
+
for (const dep of packageInfo.dependencies) loadDependencies(logger, compiler, dep);
|
|
103
|
+
if (packageInfo.context === "root") return;
|
|
104
|
+
const libDistFolder = resolveLibsDst("dist", packageInfo.root);
|
|
105
|
+
const tplDistFolder = resolveTemplatesDst("dist", packageInfo.root);
|
|
106
|
+
const softwareDistFolder = resolveSoftwareDst("dist", packageInfo.root);
|
|
107
|
+
const assetDistFolder = resolveAssetsDst("dist", packageInfo.root);
|
|
108
|
+
const libDistExists = require_util.pathType(libDistFolder) === "dir";
|
|
109
|
+
const tplDistExists = require_util.pathType(tplDistFolder) === "dir";
|
|
110
|
+
const softwareDistExists = require_util.pathType(softwareDistFolder) === "dir";
|
|
111
|
+
const assetDistExists = require_util.pathType(assetDistFolder) === "dir";
|
|
112
|
+
if (!libDistExists && !tplDistExists && !softwareDistExists && !assetDistExists) return;
|
|
113
|
+
const packageId = {
|
|
114
|
+
name: packageInfo.name,
|
|
115
|
+
version: packageInfo.version
|
|
116
|
+
};
|
|
117
|
+
if (libDistExists) loadLibsFromDir(logger, packageId, "dist", libDistFolder, compiler);
|
|
118
|
+
if (tplDistExists) loadTemplatesFromDir(logger, packageId, "dist", tplDistFolder, compiler);
|
|
119
|
+
if (softwareDistExists) loadSoftwareFromDir(logger, packageId, "dist", softwareDistFolder, compiler);
|
|
120
|
+
if (assetDistExists) loadAssetsFromDir(logger, packageId, "dist", assetDistFolder, compiler);
|
|
166
121
|
}
|
|
167
122
|
function loadLibsFromDir(logger, packageId, mode, folder, compiler) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
}
|
|
123
|
+
for (const f of node_fs.readdirSync(folder)) {
|
|
124
|
+
const file = node_path.resolve(folder, f);
|
|
125
|
+
if (!f.endsWith(compiledLibSuffix)) throw new Error(`unexpected file in 'lib' folder: ${file}`);
|
|
126
|
+
const fullName = {
|
|
127
|
+
type: "library",
|
|
128
|
+
pkg: packageId.name,
|
|
129
|
+
id: f.slice(0, f.length - 10),
|
|
130
|
+
version: packageId.version
|
|
131
|
+
};
|
|
132
|
+
const src = require_source.parseSourceFile(logger, mode, file, fullName, true);
|
|
133
|
+
compiler.addLib(src);
|
|
134
|
+
logger.debug(`Adding dependency ${require_package.fullNameToString(fullName)} from ${file}`);
|
|
135
|
+
if (src.dependencies.length > 0) {
|
|
136
|
+
logger.debug("Dependencies:");
|
|
137
|
+
for (const dep of src.dependencies) logger.debug(` - ${require_package.typedArtifactNameToString(dep)}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
187
140
|
}
|
|
188
141
|
function loadTemplatesFromDir(logger, packageId, mode, folder, compiler) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
logger.debug(`Adding dependency ${_package.fullNameToString(fullName)} from ${file}`);
|
|
203
|
-
}
|
|
142
|
+
for (const f of node_fs.readdirSync(folder)) {
|
|
143
|
+
const file = node_path.resolve(folder, f);
|
|
144
|
+
if (!f.endsWith(compiledTplSuffix)) throw new Error(`unexpected file in 'tpl' folder: ${file}`);
|
|
145
|
+
const fullName = {
|
|
146
|
+
type: "template",
|
|
147
|
+
pkg: packageId.name,
|
|
148
|
+
id: f.slice(0, f.length - 7),
|
|
149
|
+
version: packageId.version
|
|
150
|
+
};
|
|
151
|
+
const tpl = require_template.newTemplateFromContent(mode, fullName, node_fs.readFileSync(file));
|
|
152
|
+
compiler.addTemplate(require_template.templateToSource(tpl));
|
|
153
|
+
logger.debug(`Adding dependency ${require_package.fullNameToString(fullName)} from ${file}`);
|
|
154
|
+
}
|
|
204
155
|
}
|
|
205
156
|
function loadSoftwareFromDir(logger, packageId, mode, folder, compiler) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
157
|
+
for (const f of node_fs.readdirSync(folder)) {
|
|
158
|
+
const file = node_path.resolve(folder, f);
|
|
159
|
+
if (!f.endsWith(compiledSoftwareSuffix)) throw new Error(`unexpected file in 'software' folder: ${file}`);
|
|
160
|
+
const fullName = {
|
|
161
|
+
type: "software",
|
|
162
|
+
pkg: packageId.name,
|
|
163
|
+
id: f.slice(0, f.length - 8),
|
|
164
|
+
version: packageId.version
|
|
165
|
+
};
|
|
166
|
+
const source = node_fs.readFileSync(file).toString();
|
|
167
|
+
const software = new require_source.ArtifactSource(mode, fullName, require_source.getSha256(source), source, file, [], []);
|
|
168
|
+
logger.debug(`Adding dependency ${require_package.fullNameToString(fullName)} from ${file}`);
|
|
169
|
+
compiler.addSoftware(software);
|
|
170
|
+
}
|
|
221
171
|
}
|
|
222
172
|
function loadAssetsFromDir(logger, packageId, mode, folder, compiler) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}
|
|
173
|
+
for (const f of node_fs.readdirSync(folder)) {
|
|
174
|
+
const file = node_path.resolve(folder, f);
|
|
175
|
+
if (!f.endsWith(compiledAssetSuffix)) throw new Error(`unexpected file in 'asset' folder: ${file}`);
|
|
176
|
+
const fullName = {
|
|
177
|
+
type: "asset",
|
|
178
|
+
pkg: packageId.name,
|
|
179
|
+
id: f.slice(0, f.length - 8),
|
|
180
|
+
version: packageId.version
|
|
181
|
+
};
|
|
182
|
+
const source = node_fs.readFileSync(file).toString();
|
|
183
|
+
const asset = new require_source.ArtifactSource(mode, fullName, require_source.getSha256(source), source, file, [], []);
|
|
184
|
+
logger.debug(`Adding dependency ${require_package.fullNameToString(fullName)} from ${file}`);
|
|
185
|
+
compiler.addAsset(asset);
|
|
186
|
+
}
|
|
238
187
|
}
|
|
239
188
|
function parseSources(logger, packageId, mode, root, subdir) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
if (newSrc.dependencies.length > 0) {
|
|
265
|
-
logger.debug("Detected dependencies:");
|
|
266
|
-
for (const dep of newSrc.dependencies)
|
|
267
|
-
logger.debug(` - ${_package.typedArtifactNameToString(dep)}`);
|
|
268
|
-
}
|
|
269
|
-
sources.push(newSrc);
|
|
270
|
-
}
|
|
271
|
-
return sources;
|
|
189
|
+
const sources = [];
|
|
190
|
+
for (const f of node_fs.readdirSync(node_path.join(root, subdir))) {
|
|
191
|
+
const inRootPath = node_path.join(subdir, f);
|
|
192
|
+
if (require_util.pathType(node_path.join(root, inRootPath)) === "dir") {
|
|
193
|
+
const nested = parseSources(logger, packageId, mode, root, inRootPath);
|
|
194
|
+
sources.push(...nested);
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
const artifactName = f === "index.lib.tengo" ? `${node_path.dirname(inRootPath)}.lib.tengo` : inRootPath;
|
|
198
|
+
const fullName = fullNameFromFileName(packageId, artifactName.replaceAll(node_path.sep, "."));
|
|
199
|
+
if (!fullName) {
|
|
200
|
+
logger.info(`Skipping unknown file type: ${artifactName}`);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const file = node_path.resolve(root, inRootPath);
|
|
204
|
+
logger.debug(`Parsing ${require_package.fullNameToString(fullName)} from ${file}`);
|
|
205
|
+
const newSrc = require_source.parseSourceFile(logger, mode, file, fullName, true);
|
|
206
|
+
if (newSrc.dependencies.length > 0) {
|
|
207
|
+
logger.debug("Detected dependencies:");
|
|
208
|
+
for (const dep of newSrc.dependencies) logger.debug(` - ${require_package.typedArtifactNameToString(dep)}`);
|
|
209
|
+
}
|
|
210
|
+
sources.push(newSrc);
|
|
211
|
+
}
|
|
212
|
+
return sources;
|
|
272
213
|
}
|
|
273
214
|
function newCompiler(logger, packageInfo, mode) {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
return compiler$1;
|
|
215
|
+
const compiler = new require_compiler.TengoTemplateCompiler(mode);
|
|
216
|
+
loadDependencies(logger, compiler, packageInfo);
|
|
217
|
+
return compiler;
|
|
278
218
|
}
|
|
279
219
|
function fullNameFromFileName(packageId, artifactName) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
return {
|
|
311
|
-
...pkgAndVersion,
|
|
312
|
-
id: artifactName.substring(0, artifactName.length - srcTestSuffix.length),
|
|
313
|
-
type: "test",
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
return null;
|
|
220
|
+
const pkgAndVersion = {
|
|
221
|
+
pkg: packageId.name,
|
|
222
|
+
version: packageId.version
|
|
223
|
+
};
|
|
224
|
+
if (artifactName.endsWith(srcLibSuffix)) return {
|
|
225
|
+
...pkgAndVersion,
|
|
226
|
+
id: artifactName.substring(0, artifactName.length - 10),
|
|
227
|
+
type: "library"
|
|
228
|
+
};
|
|
229
|
+
if (artifactName.endsWith(srcTplSuffix)) return {
|
|
230
|
+
...pkgAndVersion,
|
|
231
|
+
id: artifactName.substring(0, artifactName.length - 10),
|
|
232
|
+
type: "template"
|
|
233
|
+
};
|
|
234
|
+
if (artifactName.endsWith(srcSoftwareSuffix)) return {
|
|
235
|
+
...pkgAndVersion,
|
|
236
|
+
id: artifactName.substring(0, artifactName.length - 8),
|
|
237
|
+
type: "software"
|
|
238
|
+
};
|
|
239
|
+
if (artifactName.endsWith(srcAssetSuffix)) return {
|
|
240
|
+
...pkgAndVersion,
|
|
241
|
+
id: artifactName.substring(0, artifactName.length - 8),
|
|
242
|
+
type: "asset"
|
|
243
|
+
};
|
|
244
|
+
if (artifactName.endsWith(srcTestSuffix)) return {
|
|
245
|
+
...pkgAndVersion,
|
|
246
|
+
id: artifactName.substring(0, artifactName.length - 11),
|
|
247
|
+
type: "test"
|
|
248
|
+
};
|
|
249
|
+
return null;
|
|
317
250
|
}
|
|
318
251
|
function compile(logger, packageInfo, mode) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
logger.info(`Compiling '${mode}'...`);
|
|
332
|
-
const compiled = compiler.compileAndAdd(sources);
|
|
333
|
-
logger.debug(`Done.`);
|
|
334
|
-
return compiled;
|
|
252
|
+
const compiler = newCompiler(logger, packageInfo, mode);
|
|
253
|
+
const sources = parseSources(logger, packageInfo, mode, "src", "");
|
|
254
|
+
if (sources.length === 0) {
|
|
255
|
+
const lookFor = [];
|
|
256
|
+
for (const suffix of compilableSuffixes) lookFor.push(`*${suffix}`);
|
|
257
|
+
logger.error(`Nothing to compile. Looked for ${lookFor.join(", ")}`);
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
logger.info(`Compiling '${mode}'...`);
|
|
261
|
+
const compiled = compiler.compileAndAdd(sources);
|
|
262
|
+
logger.debug(`Done.`);
|
|
263
|
+
return compiled;
|
|
335
264
|
}
|
|
336
265
|
function savePacks(logger, compiled, mode) {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
logger.info(` - writing ${file}`);
|
|
374
|
-
fs__namespace.writeFileSync(file, sw.src);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
266
|
+
if (compiled.libs.length > 0) {
|
|
267
|
+
const libOutput = resolveLibsDst(mode, ".");
|
|
268
|
+
node_fs.mkdirSync(libOutput, { recursive: true });
|
|
269
|
+
for (const lib of compiled.libs) {
|
|
270
|
+
const file = node_path.resolve(libOutput, lib.fullName.id + compiledLibSuffix);
|
|
271
|
+
logger.info(` - writing ${file}`);
|
|
272
|
+
node_fs.writeFileSync(file, lib.src);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
if (compiled.templates.length > 0) {
|
|
276
|
+
const tplOutput = resolveTemplatesDst(mode, ".");
|
|
277
|
+
node_fs.mkdirSync(tplOutput, { recursive: true });
|
|
278
|
+
for (const tpl of compiled.templates) {
|
|
279
|
+
const file = node_path.resolve(tplOutput, tpl.fullName.id + compiledTplSuffix);
|
|
280
|
+
logger.info(` - writing ${file}`);
|
|
281
|
+
node_fs.writeFileSync(file, (0, _milaboratories_pl_model_backend.serializeTemplate)(tpl.data));
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (compiled.software.length > 0) {
|
|
285
|
+
const swOutput = resolveSoftwareDst(mode, ".");
|
|
286
|
+
node_fs.mkdirSync(swOutput, { recursive: true });
|
|
287
|
+
for (const sw of compiled.software) {
|
|
288
|
+
const file = node_path.resolve(swOutput, sw.fullName.id + compiledSoftwareSuffix);
|
|
289
|
+
logger.info(` - writing ${file}`);
|
|
290
|
+
node_fs.writeFileSync(file, sw.src);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (compiled.assets.length > 0) {
|
|
294
|
+
const swOutput = resolveAssetsDst(mode, ".");
|
|
295
|
+
node_fs.mkdirSync(swOutput, { recursive: true });
|
|
296
|
+
for (const sw of compiled.software) {
|
|
297
|
+
const file = node_path.resolve(swOutput, sw.fullName.id + compiledAssetSuffix);
|
|
298
|
+
logger.info(` - writing ${file}`);
|
|
299
|
+
node_fs.writeFileSync(file, sw.src);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
377
302
|
}
|
|
378
303
|
|
|
304
|
+
//#endregion
|
|
379
305
|
exports.compile = compile;
|
|
380
|
-
exports.fullNameFromFileName = fullNameFromFileName;
|
|
381
306
|
exports.getPackageInfo = getPackageInfo;
|
|
382
307
|
exports.newCompiler = newCompiler;
|
|
383
308
|
exports.parseSources = parseSources;
|
|
384
|
-
exports.resolvePackageJsonRoot = resolvePackageJsonRoot;
|
|
385
309
|
exports.savePacks = savePacks;
|
|
386
|
-
//# sourceMappingURL=main.cjs.map
|
|
310
|
+
//# sourceMappingURL=main.cjs.map
|