xypriss 9.10.7 → 9.10.9
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/cjs/src/server/utils/ConfigLoader.js +26 -110
- package/dist/cjs/src/server/utils/ConfigLoader.js.map +1 -1
- package/dist/cjs/src/server/utils/MetaConfigRunner.js +89 -0
- package/dist/cjs/src/server/utils/MetaConfigRunner.js.map +1 -0
- package/dist/cjs/src/utils/ConfigSyntaxParser.js +21 -25
- package/dist/cjs/src/utils/ConfigSyntaxParser.js.map +1 -1
- package/dist/cjs/src/xhsc/PathApi.js +7 -1
- package/dist/cjs/src/xhsc/PathApi.js.map +1 -1
- package/dist/esm/src/server/utils/ConfigLoader.js +26 -90
- package/dist/esm/src/server/utils/ConfigLoader.js.map +1 -1
- package/dist/esm/src/server/utils/MetaConfigRunner.js +87 -0
- package/dist/esm/src/server/utils/MetaConfigRunner.js.map +1 -0
- package/dist/esm/src/utils/ConfigSyntaxParser.js +21 -25
- package/dist/esm/src/utils/ConfigSyntaxParser.js.map +1 -1
- package/dist/esm/src/xhsc/PathApi.js +7 -1
- package/dist/esm/src/xhsc/PathApi.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/package.json +1 -1
|
@@ -1,33 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var path = require('path');
|
|
3
|
+
var getSysApi = require('../../plugins/const/getSysApi.js');
|
|
5
4
|
var Logger = require('../../shared/logger/Logger.js');
|
|
6
5
|
var System = require('../../xhsc/System.js');
|
|
7
6
|
var xhsc = require('../../xhsc.js');
|
|
8
7
|
var env = require('../../xhsc/api/env/env.js');
|
|
9
8
|
var ProjectDiscovery = require('../../utils/ProjectDiscovery.js');
|
|
10
9
|
var ConfigSyntaxParser = require('../../utils/ConfigSyntaxParser.js');
|
|
11
|
-
|
|
12
|
-
function _interopNamespaceDefault(e) {
|
|
13
|
-
var n = Object.create(null);
|
|
14
|
-
if (e) {
|
|
15
|
-
Object.keys(e).forEach(function (k) {
|
|
16
|
-
if (k !== 'default') {
|
|
17
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
18
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () { return e[k]; }
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
n.default = e;
|
|
26
|
-
return Object.freeze(n);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
|
|
30
|
-
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
10
|
+
var MetaConfigRunner = require('./MetaConfigRunner.js');
|
|
31
11
|
|
|
32
12
|
/**
|
|
33
13
|
* XyPriss Configuration Loader
|
|
@@ -38,24 +18,9 @@ var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
|
38
18
|
class ConfigLoader {
|
|
39
19
|
constructor() {
|
|
40
20
|
this.isConfigApplied = false;
|
|
41
|
-
this.executedMetas = new Set();
|
|
42
21
|
this.packageJson = null;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* Find the project root by searching for package.json or node_modules
|
|
46
|
-
* @param startDir - Directory to start searching from
|
|
47
|
-
*/
|
|
48
|
-
findProjectRoot(startDir) {
|
|
49
|
-
let currentDir = path__namespace.resolve(startDir);
|
|
50
|
-
const root = path__namespace.parse(currentDir).root;
|
|
51
|
-
while (currentDir !== root) {
|
|
52
|
-
if (fs__namespace.existsSync(path__namespace.join(currentDir, "package.json")) ||
|
|
53
|
-
fs__namespace.existsSync(path__namespace.join(currentDir, "node_modules"))) {
|
|
54
|
-
return currentDir;
|
|
55
|
-
}
|
|
56
|
-
currentDir = path__namespace.dirname(currentDir);
|
|
57
|
-
}
|
|
58
|
-
return startDir;
|
|
22
|
+
this.metaRunner = new MetaConfigRunner.MetaConfigRunner();
|
|
23
|
+
this.sys = getSysApi.getSysApi();
|
|
59
24
|
}
|
|
60
25
|
/**
|
|
61
26
|
* Load all xypriss.config.json files found in the project and apply configurations
|
|
@@ -69,8 +34,8 @@ class ConfigLoader {
|
|
|
69
34
|
const configFiles = [];
|
|
70
35
|
// Only look for config at the absolute project root (preferring .jsonc)
|
|
71
36
|
for (const name of ["xypriss.config.jsonc", "xypriss.config.json"]) {
|
|
72
|
-
const potentialConfig =
|
|
73
|
-
if (
|
|
37
|
+
const potentialConfig = this.sys.path.join(root, name);
|
|
38
|
+
if (this.sys.fs.exist(potentialConfig)) {
|
|
74
39
|
Logger.logger.debug("server", `ConfigLoader: Found configuration file: ${potentialConfig}`);
|
|
75
40
|
configFiles.push(potentialConfig);
|
|
76
41
|
break; // Stop after first match in root
|
|
@@ -84,21 +49,21 @@ class ConfigLoader {
|
|
|
84
49
|
this.applyConfigFromFile(configPath, root);
|
|
85
50
|
}
|
|
86
51
|
// Final meta search from root
|
|
87
|
-
this.executeMetaConfig(root);
|
|
52
|
+
this.metaRunner.executeMetaConfig(root);
|
|
88
53
|
}
|
|
89
54
|
/**
|
|
90
55
|
* Apply configuration from a specific file
|
|
91
56
|
*/
|
|
92
57
|
applyConfigFromFile(configPath, projectRoot) {
|
|
93
|
-
const configDir =
|
|
94
|
-
if (!
|
|
58
|
+
const configDir = this.sys.path.dirname(configPath);
|
|
59
|
+
if (!this.sys.fs.exist(configPath))
|
|
95
60
|
return;
|
|
96
|
-
const rawContent =
|
|
61
|
+
const rawContent = this.sys.fs.readSync(configPath);
|
|
97
62
|
const cleanContent = this.stripComments(rawContent);
|
|
98
63
|
const rawConfig = JSON.parse(cleanContent);
|
|
99
64
|
// Load package.json if not already loaded
|
|
100
65
|
this.loadPackageJson(projectRoot);
|
|
101
|
-
Logger.logger.debug("server", `ConfigLoader: Resolving references for ${
|
|
66
|
+
Logger.logger.debug("server", `ConfigLoader: Resolving references for ${this.sys.path.basename(configPath)}`);
|
|
102
67
|
if (xhsc.__sys__?.__env__) {
|
|
103
68
|
const envSnapshot = xhsc.__sys__.__env__.all();
|
|
104
69
|
Logger.logger.debug("server", `ConfigLoader: Env keys available in store for ${projectRoot}: ${Object.keys(envSnapshot).join(", ")}`);
|
|
@@ -107,7 +72,7 @@ class ConfigLoader {
|
|
|
107
72
|
const config = this.resolveRefs(rawConfig);
|
|
108
73
|
if (!config)
|
|
109
74
|
return;
|
|
110
|
-
Logger.logger.debug("server", `ConfigLoader: Applied configuration from: ${
|
|
75
|
+
Logger.logger.debug("server", `ConfigLoader: Applied configuration from: ${this.sys.path.relative(projectRoot, configPath)}`);
|
|
111
76
|
// Apply __sys__ config if present
|
|
112
77
|
if (config?.$vars) {
|
|
113
78
|
if (xhsc.__sys__) {
|
|
@@ -136,7 +101,8 @@ class ConfigLoader {
|
|
|
136
101
|
if (config.__xfs__ && config.__xfs__.path) {
|
|
137
102
|
const rawPath = config.__xfs__.path;
|
|
138
103
|
const resolvedFsPath = this.resolvePath(rawPath, projectRoot, configDir);
|
|
139
|
-
if (resolvedFsPath &&
|
|
104
|
+
if (resolvedFsPath &&
|
|
105
|
+
this.sys.fs.exist(resolvedFsPath)) {
|
|
140
106
|
const specializedFS = new System.XyPrissFS({
|
|
141
107
|
__root__: resolvedFsPath,
|
|
142
108
|
__mode__: xhsc.__sys__.__env__.mode,
|
|
@@ -149,12 +115,13 @@ class ConfigLoader {
|
|
|
149
115
|
if (config.__meta__ && config.__meta__.path) {
|
|
150
116
|
const rawPath = config.__meta__.path;
|
|
151
117
|
const resolvedMetaPath = this.resolvePath(rawPath, projectRoot, configDir);
|
|
152
|
-
if (resolvedMetaPath &&
|
|
153
|
-
|
|
154
|
-
|
|
118
|
+
if (resolvedMetaPath &&
|
|
119
|
+
this.sys.fs.exist(resolvedMetaPath)) {
|
|
120
|
+
if (this.sys.fs.stats(resolvedMetaPath).is_dir) {
|
|
121
|
+
this.metaRunner.executeMetaConfig(resolvedMetaPath);
|
|
155
122
|
}
|
|
156
123
|
else {
|
|
157
|
-
this.runMetaFile(resolvedMetaPath);
|
|
124
|
+
this.metaRunner.runMetaFile(resolvedMetaPath);
|
|
158
125
|
}
|
|
159
126
|
}
|
|
160
127
|
}
|
|
@@ -181,69 +148,21 @@ class ConfigLoader {
|
|
|
181
148
|
// 1. Project Root Anchors: ROOT://
|
|
182
149
|
const rootMatch = cleanedPath.match(/^ROOT:\/\/(.*)$/i);
|
|
183
150
|
if (rootMatch) {
|
|
184
|
-
return
|
|
151
|
+
return this.sys.path.resolve(projectRoot, rootMatch[1].replace(/^\//, ""));
|
|
185
152
|
}
|
|
186
153
|
// 2. CWD Anchors: CWD://
|
|
187
154
|
const cwdMatch = cleanedPath.match(/^CWD:\/\/(.*)$/i);
|
|
188
155
|
if (cwdMatch) {
|
|
189
|
-
return
|
|
156
|
+
return this.sys.path.resolve(process.cwd(), cwdMatch[1].replace(/^\//, ""));
|
|
190
157
|
}
|
|
191
|
-
if (
|
|
158
|
+
if (this.sys.path.isAbsolute(cleanedPath))
|
|
192
159
|
return cleanedPath;
|
|
193
|
-
return
|
|
160
|
+
return this.sys.path.resolve(configDir, cleanedPath);
|
|
194
161
|
}
|
|
195
162
|
catch (error) {
|
|
196
163
|
return null;
|
|
197
164
|
}
|
|
198
165
|
}
|
|
199
|
-
runMetaFile(metaPath) {
|
|
200
|
-
const absolutePath = path__namespace.resolve(metaPath);
|
|
201
|
-
if (this.executedMetas.has(absolutePath))
|
|
202
|
-
return;
|
|
203
|
-
this.executedMetas.add(absolutePath);
|
|
204
|
-
try {
|
|
205
|
-
import(`file://${metaPath}`)
|
|
206
|
-
.then((module) => {
|
|
207
|
-
if (module && typeof module.run === "function") {
|
|
208
|
-
module.run();
|
|
209
|
-
}
|
|
210
|
-
Logger.logger.debug("server", `Executed meta file: ${metaPath}`);
|
|
211
|
-
})
|
|
212
|
-
.catch((error) => {
|
|
213
|
-
Logger.logger.warn("server", `Failed to execute meta file ${metaPath}: ${error.message}`);
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
catch (error) {
|
|
217
|
-
Logger.logger.warn("server", `Failed to initiate meta execution ${metaPath}: ${error.message}`);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
executeMetaConfig(searchDir) {
|
|
221
|
-
const root = searchDir || this.findProjectRoot(xhsc.__sys__.__root__);
|
|
222
|
-
const metaFiles = searchDir
|
|
223
|
-
? [
|
|
224
|
-
path__namespace.join(root, "+xypriss.meta.ts"),
|
|
225
|
-
path__namespace.join(root, "+xypriss.meta.js"),
|
|
226
|
-
path__namespace.join(root, ".meta", "+xypriss.meta.ts"),
|
|
227
|
-
path__namespace.join(root, ".meta", "+xypriss.meta.js"),
|
|
228
|
-
]
|
|
229
|
-
: [
|
|
230
|
-
path__namespace.join(root, "+xypriss.meta.ts"),
|
|
231
|
-
path__namespace.join(root, "+xypriss.meta.js"),
|
|
232
|
-
path__namespace.join(root, ".private", "+xypriss.meta.ts"),
|
|
233
|
-
path__namespace.join(root, ".private", "+xypriss.meta.js"),
|
|
234
|
-
path__namespace.join(root, ".meta", "+xypriss.meta.js"),
|
|
235
|
-
path__namespace.join(root, ".meta", "+xypriss.meta.ts"),
|
|
236
|
-
path__namespace.join(root, ".xypriss", "+xypriss.meta.ts"),
|
|
237
|
-
path__namespace.join(root, ".xypriss", "+xypriss.meta.js"),
|
|
238
|
-
];
|
|
239
|
-
for (const metaPath of metaFiles) {
|
|
240
|
-
if (fs__namespace.existsSync(metaPath)) {
|
|
241
|
-
this.runMetaFile(metaPath);
|
|
242
|
-
if (!searchDir)
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
166
|
stripComments(content) {
|
|
248
167
|
const noComments = content.replace(/("(?:[^"\\]|\\.)*")|\/\/.*|\/\*[\s\S]*?\*\//g, (match, group1) => (group1 ? group1 : ""));
|
|
249
168
|
return noComments.replace(/("(?:[^"\\]|\\.)*")|,\s*([}\]])/g, (match, group1, group2) => (group1 ? group1 : group2));
|
|
@@ -251,10 +170,10 @@ class ConfigLoader {
|
|
|
251
170
|
loadPackageJson(root) {
|
|
252
171
|
if (this.packageJson)
|
|
253
172
|
return;
|
|
254
|
-
const pkgPath =
|
|
255
|
-
if (
|
|
173
|
+
const pkgPath = this.sys.path.join(root, "package.json");
|
|
174
|
+
if (this.sys.fs.exist(pkgPath)) {
|
|
256
175
|
try {
|
|
257
|
-
this.packageJson = JSON.parse(
|
|
176
|
+
this.packageJson = JSON.parse(this.sys.fs.readSync(pkgPath));
|
|
258
177
|
}
|
|
259
178
|
catch (error) {
|
|
260
179
|
Logger.logger.warn("server", "Failed to parse package.json for configuration resolution");
|
|
@@ -265,9 +184,6 @@ class ConfigLoader {
|
|
|
265
184
|
const parser = new ConfigSyntaxParser.ConfigSyntaxParser(this.packageJson, xhsc.__sys__?.__env__);
|
|
266
185
|
return parser.resolve(obj);
|
|
267
186
|
}
|
|
268
|
-
resolveEnvRefs(obj) {
|
|
269
|
-
return this.resolveRefs(obj);
|
|
270
|
-
}
|
|
271
187
|
}
|
|
272
188
|
const configLoader = new ConfigLoader();
|
|
273
189
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":["MetaConfigRunner","getSysApi","getCallerProjectRoot","__sys__","logger","XyPrissFS","XY_XHSC_REGISTER_FS","ConfigSyntaxParser"],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Logger = require('../../shared/logger/Logger.js');
|
|
4
|
+
var xhsc = require('../../xhsc.js');
|
|
5
|
+
var getSysApi = require('../../plugins/const/getSysApi.js');
|
|
6
|
+
var ProjectDiscovery = require('../../utils/ProjectDiscovery.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* XyPriss Meta Configuration Runner
|
|
10
|
+
*
|
|
11
|
+
* Discovers and executes early initialization logic from meta files before
|
|
12
|
+
* the standard xypriss.config is fully processed.
|
|
13
|
+
*/
|
|
14
|
+
class MetaConfigRunner {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.executedMetas = new Set();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Executes a specific meta configuration file
|
|
20
|
+
*/
|
|
21
|
+
runMetaFile(metaPath) {
|
|
22
|
+
const sys = getSysApi.getSysApi();
|
|
23
|
+
const absolutePath = sys.path.resolve(metaPath);
|
|
24
|
+
if (this.executedMetas.has(absolutePath))
|
|
25
|
+
return;
|
|
26
|
+
this.executedMetas.add(absolutePath);
|
|
27
|
+
try {
|
|
28
|
+
import(`file://${metaPath}`)
|
|
29
|
+
.then((module) => {
|
|
30
|
+
if (module && typeof module.run === "function") {
|
|
31
|
+
// Allow synchronous or asynchronous run() functions
|
|
32
|
+
const result = module.run();
|
|
33
|
+
if (result instanceof Promise) {
|
|
34
|
+
result.catch(this.handleFatalError.bind(this, metaPath));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
Logger.logger.debug("server", `Executed meta file: ${metaPath}`);
|
|
38
|
+
})
|
|
39
|
+
.catch(this.handleFatalError.bind(this, metaPath));
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.handleFatalError(metaPath, error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Discovers and executes meta configuration files based on priority
|
|
47
|
+
*/
|
|
48
|
+
executeMetaConfig(searchDir) {
|
|
49
|
+
const sys = getSysApi.getSysApi();
|
|
50
|
+
const root = searchDir || ProjectDiscovery.getCallerProjectRoot() || xhsc.__sys__.__root__;
|
|
51
|
+
const metaFiles = searchDir
|
|
52
|
+
? [
|
|
53
|
+
sys.path.join(root, "+xypriss.meta.ts"),
|
|
54
|
+
sys.path.join(root, "+xypriss.meta.js"),
|
|
55
|
+
sys.path.join(root, ".meta", "+xypriss.meta.ts"),
|
|
56
|
+
sys.path.join(root, ".meta", "+xypriss.meta.js"),
|
|
57
|
+
]
|
|
58
|
+
: [
|
|
59
|
+
sys.path.join(root, "+xypriss.meta.ts"),
|
|
60
|
+
sys.path.join(root, "+xypriss.meta.js"),
|
|
61
|
+
sys.path.join(root, ".private", "+xypriss.meta.ts"),
|
|
62
|
+
sys.path.join(root, ".private", "+xypriss.meta.js"),
|
|
63
|
+
sys.path.join(root, ".meta", "+xypriss.meta.js"),
|
|
64
|
+
sys.path.join(root, ".meta", "+xypriss.meta.ts"),
|
|
65
|
+
sys.path.join(root, ".xypriss", "+xypriss.meta.ts"),
|
|
66
|
+
sys.path.join(root, ".xypriss", "+xypriss.meta.js"),
|
|
67
|
+
];
|
|
68
|
+
for (const metaPath of metaFiles) {
|
|
69
|
+
if (sys.fs.exist(metaPath)) {
|
|
70
|
+
this.runMetaFile(metaPath);
|
|
71
|
+
if (!searchDir)
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
handleFatalError(metaPath, error) {
|
|
77
|
+
Logger.logger.error("server", `FATAL: Failed to execute meta file ${metaPath}: ${error.message || error}`);
|
|
78
|
+
// Terminate process securely via system API
|
|
79
|
+
if (globalThis.__sys__ && typeof globalThis.__sys__.exit === "function") {
|
|
80
|
+
globalThis.__sys__.exit(1);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
exports.MetaConfigRunner = MetaConfigRunner;
|
|
89
|
+
//# sourceMappingURL=MetaConfigRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaConfigRunner.js","sources":["../../../../../src/server/utils/MetaConfigRunner.ts"],"sourcesContent":[null],"names":["getSysApi","logger","getCallerProjectRoot","__sys__"],"mappings":"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"}
|
|
@@ -13,8 +13,6 @@ var getSysApi = require('../plugins/const/getSysApi.js');
|
|
|
13
13
|
* - `&(date).FMT` : Current date/time helpers (ISO, YEAR, MONTH, DAY, TS)
|
|
14
14
|
* - `&(file).path` : Synchronous file content (use for secrets, certs, etc.)
|
|
15
15
|
*/
|
|
16
|
-
// Valid reference types — extend here when adding new syntax.
|
|
17
|
-
const VALID_TYPES = new Set(["env", "pkg", "this", "const", "date", "file"]);
|
|
18
16
|
// Date format tokens supported by &(date).TOKEN
|
|
19
17
|
const DATE_TOKENS = {
|
|
20
18
|
ISO: () => new Date().toISOString(),
|
|
@@ -74,14 +72,19 @@ class ConfigSyntaxParser {
|
|
|
74
72
|
// Group 1 — type
|
|
75
73
|
// Group 2 — key/path
|
|
76
74
|
// Group 3 — remainder of the || chain
|
|
77
|
-
|
|
75
|
+
// Separate simple types (env, const, date) from complex types (pkg, this, file)
|
|
76
|
+
// to prevent over-matching separators like '.' or '-' in strings.
|
|
77
|
+
const chainRegex = /&\((env|const|date)\)\.([\w\d_$]+)((?:\s*\|\|\s*(?:&\((?:[\w]+)\)\.[\w\d_./$]+(?:-[\w\d_./$]+)*|[^|,]+))*)|&\((pkg|this|file)\)\.([\w\d_/$][\w\d_./$]*(?:-[\w\d_./$]+)*)((?:\s*\|\|\s*(?:&\((?:[\w]+)\)\.[\w\d_./$]+(?:-[\w\d_./$]+)*|[^|,]+))*)/g;
|
|
78
78
|
let result = value;
|
|
79
79
|
let passes = 0;
|
|
80
80
|
while (passes++ < this.maxPasses) {
|
|
81
81
|
const prev = result;
|
|
82
82
|
// Reset regex before each pass (global flag keeps lastIndex)
|
|
83
83
|
chainRegex.lastIndex = 0;
|
|
84
|
-
result = result.replace(chainRegex, (_match,
|
|
84
|
+
result = result.replace(chainRegex, (_match, type1, key1, chain1, type2, key2, chain2) => {
|
|
85
|
+
const type = type1 || type2;
|
|
86
|
+
const key = key1 || key2;
|
|
87
|
+
const chain = chain1 || chain2;
|
|
85
88
|
const val = this.getValue(type, key, rootObj);
|
|
86
89
|
if (val !== undefined)
|
|
87
90
|
return val;
|
|
@@ -115,8 +118,6 @@ class ConfigSyntaxParser {
|
|
|
115
118
|
return this.getPkg(key);
|
|
116
119
|
case "this":
|
|
117
120
|
return this.getThis(key, rootObj);
|
|
118
|
-
case "const":
|
|
119
|
-
return this.getConst(key);
|
|
120
121
|
case "date":
|
|
121
122
|
return this.getDate(key);
|
|
122
123
|
case "file":
|
|
@@ -142,11 +143,6 @@ class ConfigSyntaxParser {
|
|
|
142
143
|
const val = this.getDeepValue(rootObj, key);
|
|
143
144
|
return val !== undefined ? String(val) : undefined;
|
|
144
145
|
}
|
|
145
|
-
getConst(key) {
|
|
146
|
-
return Object.prototype.hasOwnProperty.call(this.constants, key)
|
|
147
|
-
? this.constants[key]
|
|
148
|
-
: undefined;
|
|
149
|
-
}
|
|
150
146
|
getDate(token) {
|
|
151
147
|
const upper = token.toUpperCase();
|
|
152
148
|
return DATE_TOKENS[upper]?.();
|
|
@@ -155,10 +151,13 @@ class ConfigSyntaxParser {
|
|
|
155
151
|
getFile(filePath) {
|
|
156
152
|
try {
|
|
157
153
|
const sys = getSysApi.getSysApi();
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
154
|
+
// In XyPriss config, a leading / is often intended as project-root relative
|
|
155
|
+
// especially when the separator dot consumes the '.' of './path'
|
|
156
|
+
const cleanPath = filePath.startsWith("/") ? filePath.substring(1) : filePath;
|
|
157
|
+
const resolved = sys.path.isAbsolute(cleanPath)
|
|
158
|
+
? cleanPath
|
|
159
|
+
: sys.path.resolve(this.fileBasePath, cleanPath);
|
|
160
|
+
return sys.fs.readSync(resolved).trim();
|
|
162
161
|
}
|
|
163
162
|
catch {
|
|
164
163
|
return undefined; // triggers fallback chain or missing-key error
|
|
@@ -202,17 +201,15 @@ class ConfigSyntaxParser {
|
|
|
202
201
|
validateSyntax(value) {
|
|
203
202
|
if (!/&\(/.test(value))
|
|
204
203
|
return;
|
|
205
|
-
const malformedRegex = /&\((
|
|
204
|
+
const malformedRegex = /&\((env|const|date)\)\.([\w\d_$]+)?|&\((pkg|this|file)\)\.([\w\d_/$][\w\d_./$]*(?:-[\w\d_./$]+)*)?/g;
|
|
206
205
|
let match;
|
|
207
206
|
while ((match = malformedRegex.exec(value)) !== null) {
|
|
208
|
-
const [full,
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (dot !== ".") {
|
|
215
|
-
throw new Error(`ESYNC: Malformed syntax "${full}". Missing dot separator after type (e.g., &(env).KEY).`);
|
|
207
|
+
const [full, type1, key1, type2, key2] = match;
|
|
208
|
+
const type = type1 || type2;
|
|
209
|
+
const key = key1 || key2;
|
|
210
|
+
if (!type) {
|
|
211
|
+
// This shouldn't happen with the current regex, but safety first
|
|
212
|
+
throw new Error(`ESYNC: Invalid or malformed injection syntax detected in "${full}".`);
|
|
216
213
|
}
|
|
217
214
|
if (!key) {
|
|
218
215
|
throw new Error(`ESYNC: Malformed syntax "${full}". Missing key or property path.`);
|
|
@@ -232,7 +229,6 @@ class ConfigSyntaxParser {
|
|
|
232
229
|
env: `Environment variable "${key}"`,
|
|
233
230
|
pkg: `Property "${key}" in package.json`,
|
|
234
231
|
this: `Property "${key}" in current object`,
|
|
235
|
-
const: `Constant "${key}"`,
|
|
236
232
|
date: `Date token "${key}" (valid: ${Object.keys(DATE_TOKENS).join(", ")})`,
|
|
237
233
|
file: `File "${key}"`,
|
|
238
234
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":["getSysApi"],"mappings":";;;;AAAA;;;;;;;;;;AAUG;
|
|
1
|
+
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":["getSysApi"],"mappings":"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"}
|
|
@@ -278,7 +278,7 @@ class PathApi extends BaseApi {
|
|
|
278
278
|
/**
|
|
279
279
|
* **Check Existence**
|
|
280
280
|
*/
|
|
281
|
-
this.
|
|
281
|
+
this.exist = (p) => {
|
|
282
282
|
try {
|
|
283
283
|
const res = this.runner.runSync("fs", "check", [p]);
|
|
284
284
|
return res?.exists === true;
|
|
@@ -287,6 +287,12 @@ class PathApi extends BaseApi {
|
|
|
287
287
|
return false;
|
|
288
288
|
}
|
|
289
289
|
};
|
|
290
|
+
// for compatibility
|
|
291
|
+
/**
|
|
292
|
+
* **Check Existence**
|
|
293
|
+
* @deprecated use exist instead
|
|
294
|
+
*/
|
|
295
|
+
this.exists = (p) => this.exist(p);
|
|
290
296
|
/**
|
|
291
297
|
* **Check if Directory**
|
|
292
298
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathApi.js","sources":["../../../../src/xhsc/PathApi.ts"],"sourcesContent":[null],"names":["createXyprissTempDir","generateXUserTmpDir"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PathApi.js","sources":["../../../../src/xhsc/PathApi.ts"],"sourcesContent":[null],"names":["createXyprissTempDir","generateXUserTmpDir"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as path from 'path';
|
|
1
|
+
import { getSysApi } from '../../plugins/const/getSysApi.js';
|
|
3
2
|
import { logger } from '../../shared/logger/Logger.js';
|
|
4
3
|
import { XyPrissFS } from '../../xhsc/System.js';
|
|
5
4
|
import { __sys__ } from '../../xhsc.js';
|
|
6
5
|
import { XY_XHSC_REGISTER_FS } from '../../xhsc/api/env/env.js';
|
|
7
6
|
import { getCallerProjectRoot } from '../../utils/ProjectDiscovery.js';
|
|
8
7
|
import { ConfigSyntaxParser } from '../../utils/ConfigSyntaxParser.js';
|
|
8
|
+
import { MetaConfigRunner } from './MetaConfigRunner.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* XyPriss Configuration Loader
|
|
@@ -16,24 +16,9 @@ import { ConfigSyntaxParser } from '../../utils/ConfigSyntaxParser.js';
|
|
|
16
16
|
class ConfigLoader {
|
|
17
17
|
constructor() {
|
|
18
18
|
this.isConfigApplied = false;
|
|
19
|
-
this.executedMetas = new Set();
|
|
20
19
|
this.packageJson = null;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* Find the project root by searching for package.json or node_modules
|
|
24
|
-
* @param startDir - Directory to start searching from
|
|
25
|
-
*/
|
|
26
|
-
findProjectRoot(startDir) {
|
|
27
|
-
let currentDir = path.resolve(startDir);
|
|
28
|
-
const root = path.parse(currentDir).root;
|
|
29
|
-
while (currentDir !== root) {
|
|
30
|
-
if (fs.existsSync(path.join(currentDir, "package.json")) ||
|
|
31
|
-
fs.existsSync(path.join(currentDir, "node_modules"))) {
|
|
32
|
-
return currentDir;
|
|
33
|
-
}
|
|
34
|
-
currentDir = path.dirname(currentDir);
|
|
35
|
-
}
|
|
36
|
-
return startDir;
|
|
20
|
+
this.metaRunner = new MetaConfigRunner();
|
|
21
|
+
this.sys = getSysApi();
|
|
37
22
|
}
|
|
38
23
|
/**
|
|
39
24
|
* Load all xypriss.config.json files found in the project and apply configurations
|
|
@@ -47,8 +32,8 @@ class ConfigLoader {
|
|
|
47
32
|
const configFiles = [];
|
|
48
33
|
// Only look for config at the absolute project root (preferring .jsonc)
|
|
49
34
|
for (const name of ["xypriss.config.jsonc", "xypriss.config.json"]) {
|
|
50
|
-
const potentialConfig = path.join(root, name);
|
|
51
|
-
if (fs.
|
|
35
|
+
const potentialConfig = this.sys.path.join(root, name);
|
|
36
|
+
if (this.sys.fs.exist(potentialConfig)) {
|
|
52
37
|
logger.debug("server", `ConfigLoader: Found configuration file: ${potentialConfig}`);
|
|
53
38
|
configFiles.push(potentialConfig);
|
|
54
39
|
break; // Stop after first match in root
|
|
@@ -62,21 +47,21 @@ class ConfigLoader {
|
|
|
62
47
|
this.applyConfigFromFile(configPath, root);
|
|
63
48
|
}
|
|
64
49
|
// Final meta search from root
|
|
65
|
-
this.executeMetaConfig(root);
|
|
50
|
+
this.metaRunner.executeMetaConfig(root);
|
|
66
51
|
}
|
|
67
52
|
/**
|
|
68
53
|
* Apply configuration from a specific file
|
|
69
54
|
*/
|
|
70
55
|
applyConfigFromFile(configPath, projectRoot) {
|
|
71
|
-
const configDir = path.dirname(configPath);
|
|
72
|
-
if (!fs.
|
|
56
|
+
const configDir = this.sys.path.dirname(configPath);
|
|
57
|
+
if (!this.sys.fs.exist(configPath))
|
|
73
58
|
return;
|
|
74
|
-
const rawContent = fs.
|
|
59
|
+
const rawContent = this.sys.fs.readSync(configPath);
|
|
75
60
|
const cleanContent = this.stripComments(rawContent);
|
|
76
61
|
const rawConfig = JSON.parse(cleanContent);
|
|
77
62
|
// Load package.json if not already loaded
|
|
78
63
|
this.loadPackageJson(projectRoot);
|
|
79
|
-
logger.debug("server", `ConfigLoader: Resolving references for ${path.basename(configPath)}`);
|
|
64
|
+
logger.debug("server", `ConfigLoader: Resolving references for ${this.sys.path.basename(configPath)}`);
|
|
80
65
|
if (__sys__?.__env__) {
|
|
81
66
|
const envSnapshot = __sys__.__env__.all();
|
|
82
67
|
logger.debug("server", `ConfigLoader: Env keys available in store for ${projectRoot}: ${Object.keys(envSnapshot).join(", ")}`);
|
|
@@ -85,7 +70,7 @@ class ConfigLoader {
|
|
|
85
70
|
const config = this.resolveRefs(rawConfig);
|
|
86
71
|
if (!config)
|
|
87
72
|
return;
|
|
88
|
-
logger.debug("server", `ConfigLoader: Applied configuration from: ${path.relative(projectRoot, configPath)}`);
|
|
73
|
+
logger.debug("server", `ConfigLoader: Applied configuration from: ${this.sys.path.relative(projectRoot, configPath)}`);
|
|
89
74
|
// Apply __sys__ config if present
|
|
90
75
|
if (config?.$vars) {
|
|
91
76
|
if (__sys__) {
|
|
@@ -114,7 +99,8 @@ class ConfigLoader {
|
|
|
114
99
|
if (config.__xfs__ && config.__xfs__.path) {
|
|
115
100
|
const rawPath = config.__xfs__.path;
|
|
116
101
|
const resolvedFsPath = this.resolvePath(rawPath, projectRoot, configDir);
|
|
117
|
-
if (resolvedFsPath &&
|
|
102
|
+
if (resolvedFsPath &&
|
|
103
|
+
this.sys.fs.exist(resolvedFsPath)) {
|
|
118
104
|
const specializedFS = new XyPrissFS({
|
|
119
105
|
__root__: resolvedFsPath,
|
|
120
106
|
__mode__: __sys__.__env__.mode,
|
|
@@ -127,12 +113,13 @@ class ConfigLoader {
|
|
|
127
113
|
if (config.__meta__ && config.__meta__.path) {
|
|
128
114
|
const rawPath = config.__meta__.path;
|
|
129
115
|
const resolvedMetaPath = this.resolvePath(rawPath, projectRoot, configDir);
|
|
130
|
-
if (resolvedMetaPath &&
|
|
131
|
-
|
|
132
|
-
|
|
116
|
+
if (resolvedMetaPath &&
|
|
117
|
+
this.sys.fs.exist(resolvedMetaPath)) {
|
|
118
|
+
if (this.sys.fs.stats(resolvedMetaPath).is_dir) {
|
|
119
|
+
this.metaRunner.executeMetaConfig(resolvedMetaPath);
|
|
133
120
|
}
|
|
134
121
|
else {
|
|
135
|
-
this.runMetaFile(resolvedMetaPath);
|
|
122
|
+
this.metaRunner.runMetaFile(resolvedMetaPath);
|
|
136
123
|
}
|
|
137
124
|
}
|
|
138
125
|
}
|
|
@@ -159,69 +146,21 @@ class ConfigLoader {
|
|
|
159
146
|
// 1. Project Root Anchors: ROOT://
|
|
160
147
|
const rootMatch = cleanedPath.match(/^ROOT:\/\/(.*)$/i);
|
|
161
148
|
if (rootMatch) {
|
|
162
|
-
return path.resolve(projectRoot, rootMatch[1].replace(/^\//, ""));
|
|
149
|
+
return this.sys.path.resolve(projectRoot, rootMatch[1].replace(/^\//, ""));
|
|
163
150
|
}
|
|
164
151
|
// 2. CWD Anchors: CWD://
|
|
165
152
|
const cwdMatch = cleanedPath.match(/^CWD:\/\/(.*)$/i);
|
|
166
153
|
if (cwdMatch) {
|
|
167
|
-
return path.resolve(process.cwd(), cwdMatch[1].replace(/^\//, ""));
|
|
154
|
+
return this.sys.path.resolve(process.cwd(), cwdMatch[1].replace(/^\//, ""));
|
|
168
155
|
}
|
|
169
|
-
if (path.isAbsolute(cleanedPath))
|
|
156
|
+
if (this.sys.path.isAbsolute(cleanedPath))
|
|
170
157
|
return cleanedPath;
|
|
171
|
-
return path.resolve(configDir, cleanedPath);
|
|
158
|
+
return this.sys.path.resolve(configDir, cleanedPath);
|
|
172
159
|
}
|
|
173
160
|
catch (error) {
|
|
174
161
|
return null;
|
|
175
162
|
}
|
|
176
163
|
}
|
|
177
|
-
runMetaFile(metaPath) {
|
|
178
|
-
const absolutePath = path.resolve(metaPath);
|
|
179
|
-
if (this.executedMetas.has(absolutePath))
|
|
180
|
-
return;
|
|
181
|
-
this.executedMetas.add(absolutePath);
|
|
182
|
-
try {
|
|
183
|
-
import(`file://${metaPath}`)
|
|
184
|
-
.then((module) => {
|
|
185
|
-
if (module && typeof module.run === "function") {
|
|
186
|
-
module.run();
|
|
187
|
-
}
|
|
188
|
-
logger.debug("server", `Executed meta file: ${metaPath}`);
|
|
189
|
-
})
|
|
190
|
-
.catch((error) => {
|
|
191
|
-
logger.warn("server", `Failed to execute meta file ${metaPath}: ${error.message}`);
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
logger.warn("server", `Failed to initiate meta execution ${metaPath}: ${error.message}`);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
executeMetaConfig(searchDir) {
|
|
199
|
-
const root = searchDir || this.findProjectRoot(__sys__.__root__);
|
|
200
|
-
const metaFiles = searchDir
|
|
201
|
-
? [
|
|
202
|
-
path.join(root, "+xypriss.meta.ts"),
|
|
203
|
-
path.join(root, "+xypriss.meta.js"),
|
|
204
|
-
path.join(root, ".meta", "+xypriss.meta.ts"),
|
|
205
|
-
path.join(root, ".meta", "+xypriss.meta.js"),
|
|
206
|
-
]
|
|
207
|
-
: [
|
|
208
|
-
path.join(root, "+xypriss.meta.ts"),
|
|
209
|
-
path.join(root, "+xypriss.meta.js"),
|
|
210
|
-
path.join(root, ".private", "+xypriss.meta.ts"),
|
|
211
|
-
path.join(root, ".private", "+xypriss.meta.js"),
|
|
212
|
-
path.join(root, ".meta", "+xypriss.meta.js"),
|
|
213
|
-
path.join(root, ".meta", "+xypriss.meta.ts"),
|
|
214
|
-
path.join(root, ".xypriss", "+xypriss.meta.ts"),
|
|
215
|
-
path.join(root, ".xypriss", "+xypriss.meta.js"),
|
|
216
|
-
];
|
|
217
|
-
for (const metaPath of metaFiles) {
|
|
218
|
-
if (fs.existsSync(metaPath)) {
|
|
219
|
-
this.runMetaFile(metaPath);
|
|
220
|
-
if (!searchDir)
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
164
|
stripComments(content) {
|
|
226
165
|
const noComments = content.replace(/("(?:[^"\\]|\\.)*")|\/\/.*|\/\*[\s\S]*?\*\//g, (match, group1) => (group1 ? group1 : ""));
|
|
227
166
|
return noComments.replace(/("(?:[^"\\]|\\.)*")|,\s*([}\]])/g, (match, group1, group2) => (group1 ? group1 : group2));
|
|
@@ -229,10 +168,10 @@ class ConfigLoader {
|
|
|
229
168
|
loadPackageJson(root) {
|
|
230
169
|
if (this.packageJson)
|
|
231
170
|
return;
|
|
232
|
-
const pkgPath = path.join(root, "package.json");
|
|
233
|
-
if (fs.
|
|
171
|
+
const pkgPath = this.sys.path.join(root, "package.json");
|
|
172
|
+
if (this.sys.fs.exist(pkgPath)) {
|
|
234
173
|
try {
|
|
235
|
-
this.packageJson = JSON.parse(fs.
|
|
174
|
+
this.packageJson = JSON.parse(this.sys.fs.readSync(pkgPath));
|
|
236
175
|
}
|
|
237
176
|
catch (error) {
|
|
238
177
|
logger.warn("server", "Failed to parse package.json for configuration resolution");
|
|
@@ -243,9 +182,6 @@ class ConfigLoader {
|
|
|
243
182
|
const parser = new ConfigSyntaxParser(this.packageJson, __sys__?.__env__);
|
|
244
183
|
return parser.resolve(obj);
|
|
245
184
|
}
|
|
246
|
-
resolveEnvRefs(obj) {
|
|
247
|
-
return this.resolveRefs(obj);
|
|
248
|
-
}
|
|
249
185
|
}
|
|
250
186
|
const configLoader = new ConfigLoader();
|
|
251
187
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AASA;;;;;AAKG;MACU,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;QACY,IAAA,CAAA,eAAe,GAAG,KAAK;
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { logger } from '../../shared/logger/Logger.js';
|
|
2
|
+
import { __sys__ } from '../../xhsc.js';
|
|
3
|
+
import { getSysApi } from '../../plugins/const/getSysApi.js';
|
|
4
|
+
import { getCallerProjectRoot } from '../../utils/ProjectDiscovery.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* XyPriss Meta Configuration Runner
|
|
8
|
+
*
|
|
9
|
+
* Discovers and executes early initialization logic from meta files before
|
|
10
|
+
* the standard xypriss.config is fully processed.
|
|
11
|
+
*/
|
|
12
|
+
class MetaConfigRunner {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.executedMetas = new Set();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Executes a specific meta configuration file
|
|
18
|
+
*/
|
|
19
|
+
runMetaFile(metaPath) {
|
|
20
|
+
const sys = getSysApi();
|
|
21
|
+
const absolutePath = sys.path.resolve(metaPath);
|
|
22
|
+
if (this.executedMetas.has(absolutePath))
|
|
23
|
+
return;
|
|
24
|
+
this.executedMetas.add(absolutePath);
|
|
25
|
+
try {
|
|
26
|
+
import(`file://${metaPath}`)
|
|
27
|
+
.then((module) => {
|
|
28
|
+
if (module && typeof module.run === "function") {
|
|
29
|
+
// Allow synchronous or asynchronous run() functions
|
|
30
|
+
const result = module.run();
|
|
31
|
+
if (result instanceof Promise) {
|
|
32
|
+
result.catch(this.handleFatalError.bind(this, metaPath));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
logger.debug("server", `Executed meta file: ${metaPath}`);
|
|
36
|
+
})
|
|
37
|
+
.catch(this.handleFatalError.bind(this, metaPath));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
this.handleFatalError(metaPath, error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Discovers and executes meta configuration files based on priority
|
|
45
|
+
*/
|
|
46
|
+
executeMetaConfig(searchDir) {
|
|
47
|
+
const sys = getSysApi();
|
|
48
|
+
const root = searchDir || getCallerProjectRoot() || __sys__.__root__;
|
|
49
|
+
const metaFiles = searchDir
|
|
50
|
+
? [
|
|
51
|
+
sys.path.join(root, "+xypriss.meta.ts"),
|
|
52
|
+
sys.path.join(root, "+xypriss.meta.js"),
|
|
53
|
+
sys.path.join(root, ".meta", "+xypriss.meta.ts"),
|
|
54
|
+
sys.path.join(root, ".meta", "+xypriss.meta.js"),
|
|
55
|
+
]
|
|
56
|
+
: [
|
|
57
|
+
sys.path.join(root, "+xypriss.meta.ts"),
|
|
58
|
+
sys.path.join(root, "+xypriss.meta.js"),
|
|
59
|
+
sys.path.join(root, ".private", "+xypriss.meta.ts"),
|
|
60
|
+
sys.path.join(root, ".private", "+xypriss.meta.js"),
|
|
61
|
+
sys.path.join(root, ".meta", "+xypriss.meta.js"),
|
|
62
|
+
sys.path.join(root, ".meta", "+xypriss.meta.ts"),
|
|
63
|
+
sys.path.join(root, ".xypriss", "+xypriss.meta.ts"),
|
|
64
|
+
sys.path.join(root, ".xypriss", "+xypriss.meta.js"),
|
|
65
|
+
];
|
|
66
|
+
for (const metaPath of metaFiles) {
|
|
67
|
+
if (sys.fs.exist(metaPath)) {
|
|
68
|
+
this.runMetaFile(metaPath);
|
|
69
|
+
if (!searchDir)
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
handleFatalError(metaPath, error) {
|
|
75
|
+
logger.error("server", `FATAL: Failed to execute meta file ${metaPath}: ${error.message || error}`);
|
|
76
|
+
// Terminate process securely via system API
|
|
77
|
+
if (globalThis.__sys__ && typeof globalThis.__sys__.exit === "function") {
|
|
78
|
+
globalThis.__sys__.exit(1);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export { MetaConfigRunner };
|
|
87
|
+
//# sourceMappingURL=MetaConfigRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaConfigRunner.js","sources":["../../../../../src/server/utils/MetaConfigRunner.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,6 @@ import { getSysApi } from '../plugins/const/getSysApi.js';
|
|
|
11
11
|
* - `&(date).FMT` : Current date/time helpers (ISO, YEAR, MONTH, DAY, TS)
|
|
12
12
|
* - `&(file).path` : Synchronous file content (use for secrets, certs, etc.)
|
|
13
13
|
*/
|
|
14
|
-
// Valid reference types — extend here when adding new syntax.
|
|
15
|
-
const VALID_TYPES = new Set(["env", "pkg", "this", "const", "date", "file"]);
|
|
16
14
|
// Date format tokens supported by &(date).TOKEN
|
|
17
15
|
const DATE_TOKENS = {
|
|
18
16
|
ISO: () => new Date().toISOString(),
|
|
@@ -72,14 +70,19 @@ class ConfigSyntaxParser {
|
|
|
72
70
|
// Group 1 — type
|
|
73
71
|
// Group 2 — key/path
|
|
74
72
|
// Group 3 — remainder of the || chain
|
|
75
|
-
|
|
73
|
+
// Separate simple types (env, const, date) from complex types (pkg, this, file)
|
|
74
|
+
// to prevent over-matching separators like '.' or '-' in strings.
|
|
75
|
+
const chainRegex = /&\((env|const|date)\)\.([\w\d_$]+)((?:\s*\|\|\s*(?:&\((?:[\w]+)\)\.[\w\d_./$]+(?:-[\w\d_./$]+)*|[^|,]+))*)|&\((pkg|this|file)\)\.([\w\d_/$][\w\d_./$]*(?:-[\w\d_./$]+)*)((?:\s*\|\|\s*(?:&\((?:[\w]+)\)\.[\w\d_./$]+(?:-[\w\d_./$]+)*|[^|,]+))*)/g;
|
|
76
76
|
let result = value;
|
|
77
77
|
let passes = 0;
|
|
78
78
|
while (passes++ < this.maxPasses) {
|
|
79
79
|
const prev = result;
|
|
80
80
|
// Reset regex before each pass (global flag keeps lastIndex)
|
|
81
81
|
chainRegex.lastIndex = 0;
|
|
82
|
-
result = result.replace(chainRegex, (_match,
|
|
82
|
+
result = result.replace(chainRegex, (_match, type1, key1, chain1, type2, key2, chain2) => {
|
|
83
|
+
const type = type1 || type2;
|
|
84
|
+
const key = key1 || key2;
|
|
85
|
+
const chain = chain1 || chain2;
|
|
83
86
|
const val = this.getValue(type, key, rootObj);
|
|
84
87
|
if (val !== undefined)
|
|
85
88
|
return val;
|
|
@@ -113,8 +116,6 @@ class ConfigSyntaxParser {
|
|
|
113
116
|
return this.getPkg(key);
|
|
114
117
|
case "this":
|
|
115
118
|
return this.getThis(key, rootObj);
|
|
116
|
-
case "const":
|
|
117
|
-
return this.getConst(key);
|
|
118
119
|
case "date":
|
|
119
120
|
return this.getDate(key);
|
|
120
121
|
case "file":
|
|
@@ -140,11 +141,6 @@ class ConfigSyntaxParser {
|
|
|
140
141
|
const val = this.getDeepValue(rootObj, key);
|
|
141
142
|
return val !== undefined ? String(val) : undefined;
|
|
142
143
|
}
|
|
143
|
-
getConst(key) {
|
|
144
|
-
return Object.prototype.hasOwnProperty.call(this.constants, key)
|
|
145
|
-
? this.constants[key]
|
|
146
|
-
: undefined;
|
|
147
|
-
}
|
|
148
144
|
getDate(token) {
|
|
149
145
|
const upper = token.toUpperCase();
|
|
150
146
|
return DATE_TOKENS[upper]?.();
|
|
@@ -153,10 +149,13 @@ class ConfigSyntaxParser {
|
|
|
153
149
|
getFile(filePath) {
|
|
154
150
|
try {
|
|
155
151
|
const sys = getSysApi();
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
152
|
+
// In XyPriss config, a leading / is often intended as project-root relative
|
|
153
|
+
// especially when the separator dot consumes the '.' of './path'
|
|
154
|
+
const cleanPath = filePath.startsWith("/") ? filePath.substring(1) : filePath;
|
|
155
|
+
const resolved = sys.path.isAbsolute(cleanPath)
|
|
156
|
+
? cleanPath
|
|
157
|
+
: sys.path.resolve(this.fileBasePath, cleanPath);
|
|
158
|
+
return sys.fs.readSync(resolved).trim();
|
|
160
159
|
}
|
|
161
160
|
catch {
|
|
162
161
|
return undefined; // triggers fallback chain or missing-key error
|
|
@@ -200,17 +199,15 @@ class ConfigSyntaxParser {
|
|
|
200
199
|
validateSyntax(value) {
|
|
201
200
|
if (!/&\(/.test(value))
|
|
202
201
|
return;
|
|
203
|
-
const malformedRegex = /&\((
|
|
202
|
+
const malformedRegex = /&\((env|const|date)\)\.([\w\d_$]+)?|&\((pkg|this|file)\)\.([\w\d_/$][\w\d_./$]*(?:-[\w\d_./$]+)*)?/g;
|
|
204
203
|
let match;
|
|
205
204
|
while ((match = malformedRegex.exec(value)) !== null) {
|
|
206
|
-
const [full,
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
if (dot !== ".") {
|
|
213
|
-
throw new Error(`ESYNC: Malformed syntax "${full}". Missing dot separator after type (e.g., &(env).KEY).`);
|
|
205
|
+
const [full, type1, key1, type2, key2] = match;
|
|
206
|
+
const type = type1 || type2;
|
|
207
|
+
const key = key1 || key2;
|
|
208
|
+
if (!type) {
|
|
209
|
+
// This shouldn't happen with the current regex, but safety first
|
|
210
|
+
throw new Error(`ESYNC: Invalid or malformed injection syntax detected in "${full}".`);
|
|
214
211
|
}
|
|
215
212
|
if (!key) {
|
|
216
213
|
throw new Error(`ESYNC: Malformed syntax "${full}". Missing key or property path.`);
|
|
@@ -230,7 +227,6 @@ class ConfigSyntaxParser {
|
|
|
230
227
|
env: `Environment variable "${key}"`,
|
|
231
228
|
pkg: `Property "${key}" in package.json`,
|
|
232
229
|
this: `Property "${key}" in current object`,
|
|
233
|
-
const: `Constant "${key}"`,
|
|
234
230
|
date: `Date token "${key}" (valid: ${Object.keys(DATE_TOKENS).join(", ")})`,
|
|
235
231
|
file: `File "${key}"`,
|
|
236
232
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;;;;;AAUG;
|
|
1
|
+
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -276,7 +276,7 @@ class PathApi extends BaseApi {
|
|
|
276
276
|
/**
|
|
277
277
|
* **Check Existence**
|
|
278
278
|
*/
|
|
279
|
-
this.
|
|
279
|
+
this.exist = (p) => {
|
|
280
280
|
try {
|
|
281
281
|
const res = this.runner.runSync("fs", "check", [p]);
|
|
282
282
|
return res?.exists === true;
|
|
@@ -285,6 +285,12 @@ class PathApi extends BaseApi {
|
|
|
285
285
|
return false;
|
|
286
286
|
}
|
|
287
287
|
};
|
|
288
|
+
// for compatibility
|
|
289
|
+
/**
|
|
290
|
+
* **Check Existence**
|
|
291
|
+
* @deprecated use exist instead
|
|
292
|
+
*/
|
|
293
|
+
this.exists = (p) => this.exist(p);
|
|
288
294
|
/**
|
|
289
295
|
* **Check if Directory**
|
|
290
296
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathApi.js","sources":["../../../../src/xhsc/PathApi.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PathApi.js","sources":["../../../../src/xhsc/PathApi.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3147,6 +3147,11 @@ declare class PathApi extends BaseApi {
|
|
|
3147
3147
|
/**
|
|
3148
3148
|
* **Check Existence**
|
|
3149
3149
|
*/
|
|
3150
|
+
exist: (p: string) => boolean;
|
|
3151
|
+
/**
|
|
3152
|
+
* **Check Existence**
|
|
3153
|
+
* @deprecated use exist instead
|
|
3154
|
+
*/
|
|
3150
3155
|
exists: (p: string) => boolean;
|
|
3151
3156
|
/**
|
|
3152
3157
|
* **Check if Directory**
|
package/package.json
CHANGED