@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.
Files changed (106) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/commands/build.cjs +106 -150
  3. package/dist/commands/build.cjs.map +1 -1
  4. package/dist/commands/build.d.ts +15 -10
  5. package/dist/commands/build.js +101 -126
  6. package/dist/commands/build.js.map +1 -1
  7. package/dist/commands/check.cjs +32 -36
  8. package/dist/commands/check.cjs.map +1 -1
  9. package/dist/commands/check.d.ts +13 -8
  10. package/dist/commands/check.js +30 -33
  11. package/dist/commands/check.js.map +1 -1
  12. package/dist/commands/dump/artifacts.cjs +22 -22
  13. package/dist/commands/dump/artifacts.cjs.map +1 -1
  14. package/dist/commands/dump/artifacts.d.ts +13 -8
  15. package/dist/commands/dump/artifacts.js +20 -19
  16. package/dist/commands/dump/artifacts.js.map +1 -1
  17. package/dist/commands/dump/software.cjs +19 -21
  18. package/dist/commands/dump/software.cjs.map +1 -1
  19. package/dist/commands/dump/software.d.ts +12 -7
  20. package/dist/commands/dump/software.js +17 -18
  21. package/dist/commands/dump/software.js.map +1 -1
  22. package/dist/commands/test.cjs +32 -33
  23. package/dist/commands/test.cjs.map +1 -1
  24. package/dist/commands/test.d.ts +13 -8
  25. package/dist/commands/test.js +30 -30
  26. package/dist/commands/test.js.map +1 -1
  27. package/dist/compiler/artifactset.cjs +59 -68
  28. package/dist/compiler/artifactset.cjs.map +1 -1
  29. package/dist/compiler/artifactset.js +60 -66
  30. package/dist/compiler/artifactset.js.map +1 -1
  31. package/dist/compiler/compiler.cjs +241 -314
  32. package/dist/compiler/compiler.cjs.map +1 -1
  33. package/dist/compiler/compiler.js +241 -312
  34. package/dist/compiler/compiler.js.map +1 -1
  35. package/dist/compiler/compileroptions.cjs +16 -35
  36. package/dist/compiler/compileroptions.cjs.map +1 -1
  37. package/dist/compiler/compileroptions.js +17 -33
  38. package/dist/compiler/compileroptions.js.map +1 -1
  39. package/dist/compiler/main.cjs +258 -334
  40. package/dist/compiler/main.cjs.map +1 -1
  41. package/dist/compiler/main.js +256 -311
  42. package/dist/compiler/main.js.map +1 -1
  43. package/dist/compiler/package.cjs +21 -35
  44. package/dist/compiler/package.cjs.map +1 -1
  45. package/dist/compiler/package.js +21 -34
  46. package/dist/compiler/package.js.map +1 -1
  47. package/dist/compiler/source.cjs +239 -308
  48. package/dist/compiler/source.cjs.map +1 -1
  49. package/dist/compiler/source.js +239 -304
  50. package/dist/compiler/source.js.map +1 -1
  51. package/dist/compiler/template.cjs +30 -35
  52. package/dist/compiler/template.cjs.map +1 -1
  53. package/dist/compiler/template.js +29 -33
  54. package/dist/compiler/template.js.map +1 -1
  55. package/dist/compiler/util.cjs +40 -61
  56. package/dist/compiler/util.cjs.map +1 -1
  57. package/dist/compiler/util.js +36 -39
  58. package/dist/compiler/util.js.map +1 -1
  59. package/dist/index.cjs +14 -14
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.ts +15 -11
  62. package/dist/index.js +13 -12
  63. package/dist/index.js.map +1 -1
  64. package/dist/shared/basecmd.cjs +42 -33
  65. package/dist/shared/basecmd.cjs.map +1 -1
  66. package/dist/shared/basecmd.js +41 -31
  67. package/dist/shared/basecmd.js.map +1 -1
  68. package/dist/shared/dump.cjs +73 -107
  69. package/dist/shared/dump.cjs.map +1 -1
  70. package/dist/shared/dump.js +73 -105
  71. package/dist/shared/dump.js.map +1 -1
  72. package/dist/shared/proc.cjs +22 -18
  73. package/dist/shared/proc.cjs.map +1 -1
  74. package/dist/shared/proc.js +21 -16
  75. package/dist/shared/proc.js.map +1 -1
  76. package/package.json +8 -8
  77. package/dist/commands/build.d.ts.map +0 -1
  78. package/dist/commands/check.d.ts.map +0 -1
  79. package/dist/commands/dump/artifacts.d.ts.map +0 -1
  80. package/dist/commands/dump/software.d.ts.map +0 -1
  81. package/dist/commands/test.d.ts.map +0 -1
  82. package/dist/compiler/artifactset.d.ts +0 -24
  83. package/dist/compiler/artifactset.d.ts.map +0 -1
  84. package/dist/compiler/compiler.d.ts +0 -42
  85. package/dist/compiler/compiler.d.ts.map +0 -1
  86. package/dist/compiler/compileroptions.d.ts +0 -6
  87. package/dist/compiler/compileroptions.d.ts.map +0 -1
  88. package/dist/compiler/main.d.ts +0 -35
  89. package/dist/compiler/main.d.ts.map +0 -1
  90. package/dist/compiler/package.d.ts +0 -44
  91. package/dist/compiler/package.d.ts.map +0 -1
  92. package/dist/compiler/source.d.ts +0 -54
  93. package/dist/compiler/source.d.ts.map +0 -1
  94. package/dist/compiler/template.d.ts +0 -22
  95. package/dist/compiler/template.d.ts.map +0 -1
  96. package/dist/compiler/test.artifacts.d.ts +0 -47
  97. package/dist/compiler/test.artifacts.d.ts.map +0 -1
  98. package/dist/compiler/util.d.ts +0 -8
  99. package/dist/compiler/util.d.ts.map +0 -1
  100. package/dist/index.d.ts.map +0 -1
  101. package/dist/shared/basecmd.d.ts +0 -12
  102. package/dist/shared/basecmd.d.ts.map +0 -1
  103. package/dist/shared/dump.d.ts +0 -6
  104. package/dist/shared/dump.d.ts.map +0 -1
  105. package/dist/shared/proc.d.ts +0 -5
  106. package/dist/shared/proc.d.ts.map +0 -1
@@ -1,386 +1,310 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var fs = require('node:fs');
5
- var util = require('./util.cjs');
6
- var compiler = require('./compiler.cjs');
7
- var source = require('./source.cjs');
8
- var _package = require('./package.cjs');
9
- var template = require('./template.cjs');
10
- var resolveHelper = require('@milaboratories/resolve-helper');
11
- var plModelBackend = require('@milaboratories/pl-model-backend');
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 = [srcLibSuffix, srcTplSuffix, srcSoftwareSuffix, srcAssetSuffix];
24
+ const compilableSuffixes = [
25
+ srcLibSuffix,
26
+ srcTplSuffix,
27
+ srcSoftwareSuffix,
28
+ srcAssetSuffix
29
+ ];
46
30
  /**
47
- * Resolves path to package.json file of the given dependency package.
48
- */
31
+ * Resolves path to package.json file of the given dependency package.
32
+ */
49
33
  function resolvePackageJsonPackage(root, depPackageName) {
50
- if (!path__namespace.isAbsolute(root)) {
51
- throw new Error(`Root path must be absolute: ${root}`);
52
- }
53
- // First approach: resolving package's main entry point and try to find package.json
54
- // in dir tree upwards.
55
- let resolved = resolveHelper.tryResolve(root, depPackageName);
56
- if (resolved) {
57
- let depth = 0;
58
- do {
59
- const p = path__namespace.join(resolved, "package.json");
60
- if (util.pathType(p) === "file")
61
- return p;
62
- depth++;
63
- resolved = path__namespace.dirname(resolved);
64
- } while (depth < 7 && path__namespace.basename(resolved) !== "node_modules");
65
- }
66
- // Second approach: trying to find package.json in the package dir.
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
- if (!path__namespace.isAbsolute(root)) {
78
- throw new Error(`Root path must be absolute: ${root}`);
79
- }
80
- const p = path__namespace.join(root, "package.json");
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
- * Get package info from package.json and all dependencies.
87
- */
59
+ * Get package info from package.json and all dependencies.
60
+ */
88
61
  function getPackageInfo(root, logger, context = "root") {
89
- const packageJsonPath = resolvePackageJsonRoot(root);
90
- const packageJson = JSON.parse(fs__namespace.readFileSync(packageJsonPath).toString());
91
- // resolving dependencies
92
- const depInfos = [];
93
- if (packageJson.dependencies && context !== "devDependency") {
94
- for (const dep of Object.keys(packageJson.dependencies)) {
95
- const depPackageJson = resolvePackageJsonPackage(root, dep);
96
- if (depPackageJson === undefined)
97
- throw new Error(`Can't resolve package.json for dependency ${dep} of ${root}`);
98
- const depRoot = path__namespace.dirname(depPackageJson);
99
- depInfos.push(getPackageInfo(depRoot, logger, "dependency"));
100
- }
101
- }
102
- if (packageJson.devDependencies && context === "root") {
103
- for (const dep of Object.keys(packageJson.devDependencies)) {
104
- const depPackageJson = resolvePackageJsonPackage(root, dep);
105
- if (depPackageJson === undefined) {
106
- logger.warn(`Can't resolve package.json for dev dependency ${dep} of ${root}`);
107
- // tolerating not-exported package.json for dev dependencies
108
- continue;
109
- }
110
- const depRoot = path__namespace.dirname(depPackageJson);
111
- depInfos.push(getPackageInfo(depRoot, logger, "devDependency"));
112
- }
113
- }
114
- return {
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
- return path__namespace.resolve(root, mode, "tengo", "lib");
90
+ return node_path.resolve(root, mode, "tengo", "lib");
125
91
  }
126
92
  function resolveTemplatesDst(mode, root) {
127
- return path__namespace.resolve(root, mode, "tengo", "tpl");
93
+ return node_path.resolve(root, mode, "tengo", "tpl");
128
94
  }
129
95
  function resolveSoftwareDst(mode, root) {
130
- return path__namespace.resolve(root, mode, "tengo", "software");
96
+ return node_path.resolve(root, mode, "tengo", "software");
131
97
  }
132
98
  function resolveAssetsDst(mode, root) {
133
- return path__namespace.resolve(root, mode, "tengo", "asset");
99
+ return node_path.resolve(root, mode, "tengo", "asset");
134
100
  }
135
101
  function loadDependencies(logger, compiler, packageInfo) {
136
- for (const dep of packageInfo.dependencies)
137
- loadDependencies(logger, compiler, dep);
138
- if (packageInfo.context === "root")
139
- // we are not reading compiled files for root package
140
- return;
141
- // we are in package folder
142
- const libDistFolder = resolveLibsDst("dist", packageInfo.root);
143
- const tplDistFolder = resolveTemplatesDst("dist", packageInfo.root);
144
- const softwareDistFolder = resolveSoftwareDst("dist", packageInfo.root);
145
- const assetDistFolder = resolveAssetsDst("dist", packageInfo.root);
146
- const libDistExists = util.pathType(libDistFolder) === "dir";
147
- const tplDistExists = util.pathType(tplDistFolder) === "dir";
148
- const softwareDistExists = util.pathType(softwareDistFolder) === "dir";
149
- const assetDistExists = util.pathType(assetDistFolder) === "dir";
150
- if (!libDistExists && !tplDistExists && !softwareDistExists && !assetDistExists)
151
- // if neither of tengo-specific folders detected, skipping package
152
- return;
153
- const packageId = { name: packageInfo.name, version: packageInfo.version };
154
- if (libDistExists) {
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
- for (const f of fs__namespace.readdirSync(folder)) {
169
- const file = path__namespace.resolve(folder, f);
170
- if (!f.endsWith(compiledLibSuffix))
171
- throw new Error(`unexpected file in 'lib' folder: ${file}`);
172
- const fullName = {
173
- type: "library",
174
- pkg: packageId.name,
175
- id: f.slice(0, f.length - compiledLibSuffix.length),
176
- version: packageId.version,
177
- };
178
- const src = source.parseSourceFile(logger, mode, file, fullName, true);
179
- compiler.addLib(src);
180
- logger.debug(`Adding dependency ${_package.fullNameToString(fullName)} from ${file}`);
181
- if (src.dependencies.length > 0) {
182
- logger.debug("Dependencies:");
183
- for (const dep of src.dependencies)
184
- logger.debug(` - ${_package.typedArtifactNameToString(dep)}`);
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
- // adding templates
190
- for (const f of fs__namespace.readdirSync(folder)) {
191
- const file = path__namespace.resolve(folder, f);
192
- if (!f.endsWith(compiledTplSuffix))
193
- throw new Error(`unexpected file in 'tpl' folder: ${file}`);
194
- const fullName = {
195
- type: "template",
196
- pkg: packageId.name,
197
- id: f.slice(0, f.length - compiledTplSuffix.length),
198
- version: packageId.version,
199
- };
200
- const tpl = template.newTemplateFromContent(mode, fullName, fs__namespace.readFileSync(file));
201
- compiler.addTemplate(template.templateToSource(tpl));
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
- for (const f of fs__namespace.readdirSync(folder)) {
207
- const file = path__namespace.resolve(folder, f);
208
- if (!f.endsWith(compiledSoftwareSuffix))
209
- throw new Error(`unexpected file in 'software' folder: ${file}`);
210
- const fullName = {
211
- type: "software",
212
- pkg: packageId.name,
213
- id: f.slice(0, f.length - compiledSoftwareSuffix.length),
214
- version: packageId.version,
215
- };
216
- const source$1 = fs__namespace.readFileSync(file).toString();
217
- const software = new source.ArtifactSource(mode, fullName, source.getSha256(source$1), source$1, file, [], []);
218
- logger.debug(`Adding dependency ${_package.fullNameToString(fullName)} from ${file}`);
219
- compiler.addSoftware(software);
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
- for (const f of fs__namespace.readdirSync(folder)) {
224
- const file = path__namespace.resolve(folder, f);
225
- if (!f.endsWith(compiledAssetSuffix))
226
- throw new Error(`unexpected file in 'asset' folder: ${file}`);
227
- const fullName = {
228
- type: "asset",
229
- pkg: packageId.name,
230
- id: f.slice(0, f.length - compiledAssetSuffix.length),
231
- version: packageId.version,
232
- };
233
- const source$1 = fs__namespace.readFileSync(file).toString();
234
- const asset = new source.ArtifactSource(mode, fullName, source.getSha256(source$1), source$1, file, [], []);
235
- logger.debug(`Adding dependency ${_package.fullNameToString(fullName)} from ${file}`);
236
- compiler.addAsset(asset);
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
- const sources = [];
241
- for (const f of fs__namespace.readdirSync(path__namespace.join(root, subdir))) {
242
- const inRootPath = path__namespace.join(subdir, f); // path to item inside given <root>
243
- const fullPath = path__namespace.join(root, inRootPath); // full path to item from CWD (or abs path, if <root> is abs path)
244
- if (util.pathType(fullPath) === "dir") {
245
- const nested = parseSources(logger, packageId, mode, root, inRootPath);
246
- sources.push(...nested);
247
- continue;
248
- }
249
- // Handling index.lib.tengo files: rename them to <package-name>.lib.tengo
250
- const artifactName = f === "index.lib.tengo" ? `${path__namespace.dirname(inRootPath)}.lib.tengo` : inRootPath;
251
- const fullName = fullNameFromFileName(packageId, artifactName.replaceAll(path__namespace.sep, "."));
252
- if (!fullName) {
253
- logger.info(`Skipping unknown file type: ${artifactName}`);
254
- continue; // skip unknown file types
255
- }
256
- // if (subdir != '') {
257
- // throw new Error(`Templates and libraries should reside only inside '${root}' dir.
258
- // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,
259
- // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);
260
- // }
261
- const file = path__namespace.resolve(root, inRootPath);
262
- logger.debug(`Parsing ${_package.fullNameToString(fullName)} from ${file}`);
263
- const newSrc = source.parseSourceFile(logger, mode, file, fullName, true);
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
- const compiler$1 = new compiler.TengoTemplateCompiler(mode);
275
- // collect all data (templates, libs and software) from dependency tree
276
- loadDependencies(logger, compiler$1, packageInfo);
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
- const pkgAndVersion = { pkg: packageId.name, version: packageId.version };
281
- if (artifactName.endsWith(srcLibSuffix)) {
282
- return {
283
- ...pkgAndVersion,
284
- id: artifactName.substring(0, artifactName.length - srcLibSuffix.length),
285
- type: "library",
286
- };
287
- }
288
- if (artifactName.endsWith(srcTplSuffix)) {
289
- return {
290
- ...pkgAndVersion,
291
- id: artifactName.substring(0, artifactName.length - srcTplSuffix.length),
292
- type: "template",
293
- };
294
- }
295
- if (artifactName.endsWith(srcSoftwareSuffix)) {
296
- return {
297
- ...pkgAndVersion,
298
- id: artifactName.substring(0, artifactName.length - srcSoftwareSuffix.length),
299
- type: "software",
300
- };
301
- }
302
- if (artifactName.endsWith(srcAssetSuffix)) {
303
- return {
304
- ...pkgAndVersion,
305
- id: artifactName.substring(0, artifactName.length - srcAssetSuffix.length),
306
- type: "asset",
307
- };
308
- }
309
- if (artifactName.endsWith(srcTestSuffix)) {
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
- const compiler = newCompiler(logger, packageInfo, mode);
320
- const sources = parseSources(logger, packageInfo, mode, "src", "");
321
- // checking that we have something to do
322
- if (sources.length === 0) {
323
- const lookFor = [];
324
- for (const suffix of compilableSuffixes) {
325
- lookFor.push(`*${suffix}`);
326
- }
327
- logger.error(`Nothing to compile. Looked for ${lookFor.join(", ")}`);
328
- process.exit(1);
329
- }
330
- // compilation
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
- // writing libs
338
- if (compiled.libs.length > 0) {
339
- const libOutput = resolveLibsDst(mode, ".");
340
- fs__namespace.mkdirSync(libOutput, { recursive: true });
341
- for (const lib of compiled.libs) {
342
- const file = path__namespace.resolve(libOutput, lib.fullName.id + compiledLibSuffix);
343
- logger.info(` - writing ${file}`);
344
- fs__namespace.writeFileSync(file, lib.src);
345
- }
346
- }
347
- // writing templates
348
- if (compiled.templates.length > 0) {
349
- const tplOutput = resolveTemplatesDst(mode, ".");
350
- fs__namespace.mkdirSync(tplOutput, { recursive: true });
351
- for (const tpl of compiled.templates) {
352
- const file = path__namespace.resolve(tplOutput, tpl.fullName.id + compiledTplSuffix);
353
- logger.info(` - writing ${file}`);
354
- fs__namespace.writeFileSync(file, plModelBackend.serializeTemplate(tpl.data));
355
- }
356
- }
357
- // writing software
358
- if (compiled.software.length > 0) {
359
- const swOutput = resolveSoftwareDst(mode, ".");
360
- fs__namespace.mkdirSync(swOutput, { recursive: true });
361
- for (const sw of compiled.software) {
362
- const file = path__namespace.resolve(swOutput, sw.fullName.id + compiledSoftwareSuffix);
363
- logger.info(` - writing ${file}`);
364
- fs__namespace.writeFileSync(file, sw.src);
365
- }
366
- }
367
- // writing assets
368
- if (compiled.assets.length > 0) {
369
- const swOutput = resolveAssetsDst(mode, ".");
370
- fs__namespace.mkdirSync(swOutput, { recursive: true });
371
- for (const sw of compiled.software) {
372
- const file = path__namespace.resolve(swOutput, sw.fullName.id + compiledAssetSuffix);
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