xypriss 9.10.6 → 9.10.8
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 +29 -113
- 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 +25 -21
- 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 +29 -93
- 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 +25 -21
- 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,12 +72,12 @@ 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
|
-
if (config
|
|
77
|
+
if (config?.$vars) {
|
|
113
78
|
if (xhsc.__sys__) {
|
|
114
|
-
Logger.logger.debug("server", `ConfigLoader: Updating system variables with
|
|
115
|
-
xhsc.__sys__.vars.update(config
|
|
79
|
+
Logger.logger.debug("server", `ConfigLoader: Updating system variables with $vars: ${JSON.stringify(config.$vars)}`);
|
|
80
|
+
xhsc.__sys__.vars.update(config.$vars);
|
|
116
81
|
}
|
|
117
82
|
}
|
|
118
83
|
// Process internal configuration
|
|
@@ -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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"}
|
|
@@ -6,16 +6,16 @@ var getSysApi = require('../plugins/const/getSysApi.js');
|
|
|
6
6
|
* **Config Syntax Parser**
|
|
7
7
|
*
|
|
8
8
|
* Handles resolution of dynamic references in configuration files:
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
14
|
-
* -
|
|
9
|
+
* - `&(env).KEY` : Environment variables
|
|
10
|
+
* - `&(pkg).path` : package.json properties (dot-notation)
|
|
11
|
+
* - `&(this).KEY` : Properties from the currently parsed object
|
|
12
|
+
* - `&(const).KEY` : Build-time constants injected at construction
|
|
13
|
+
* - `&(date).FMT` : Current date/time helpers (ISO, YEAR, MONTH, DAY, TS)
|
|
14
|
+
* - `&(file).path` : Synchronous file content (use for secrets, certs, etc.)
|
|
15
15
|
*/
|
|
16
16
|
// Valid reference types — extend here when adding new syntax.
|
|
17
17
|
const VALID_TYPES = new Set(["env", "pkg", "this", "const", "date", "file"]);
|
|
18
|
-
// Date format tokens supported by
|
|
18
|
+
// Date format tokens supported by &(date).TOKEN
|
|
19
19
|
const DATE_TOKENS = {
|
|
20
20
|
ISO: () => new Date().toISOString(),
|
|
21
21
|
YEAR: () => String(new Date().getFullYear()),
|
|
@@ -68,19 +68,20 @@ class ConfigSyntaxParser {
|
|
|
68
68
|
* Resolves dynamic references in a string, supporting chained || fallbacks.
|
|
69
69
|
*/
|
|
70
70
|
resolveString(value, rootObj) {
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
//
|
|
74
|
-
// Group
|
|
75
|
-
// Group
|
|
76
|
-
|
|
71
|
+
// Validate before any resolution to catch syntax errors even in unused fallbacks
|
|
72
|
+
this.validateSyntax(value);
|
|
73
|
+
// Matches: &(type).key || &(type).key || literal-fallback
|
|
74
|
+
// Group 1 — type
|
|
75
|
+
// Group 2 — key/path
|
|
76
|
+
// Group 3 — remainder of the || chain
|
|
77
|
+
const chainRegex = /&\(([\w]+)\)\.([\w\d_./-]+)((?:\s*\|\|\s*(?:&\((?:[\w]+)\)\.[\w\d_./-]+|[^|,]+))*)/g;
|
|
77
78
|
let result = value;
|
|
78
79
|
let passes = 0;
|
|
79
80
|
while (passes++ < this.maxPasses) {
|
|
80
81
|
const prev = result;
|
|
81
82
|
// Reset regex before each pass (global flag keeps lastIndex)
|
|
82
83
|
chainRegex.lastIndex = 0;
|
|
83
|
-
result = result.replace(chainRegex, (_match,
|
|
84
|
+
result = result.replace(chainRegex, (_match, type, key, chain) => {
|
|
84
85
|
const val = this.getValue(type, key, rootObj);
|
|
85
86
|
if (val !== undefined)
|
|
86
87
|
return val;
|
|
@@ -199,26 +200,29 @@ class ConfigSyntaxParser {
|
|
|
199
200
|
* Validates that no unresolved or malformed markers remain in the string.
|
|
200
201
|
*/
|
|
201
202
|
validateSyntax(value) {
|
|
202
|
-
if (
|
|
203
|
+
if (!/&\(/.test(value))
|
|
203
204
|
return;
|
|
204
|
-
const malformedRegex =
|
|
205
|
+
const malformedRegex = /&\(([^)]*)\)(\.?)([\w\d_./-]*)/g;
|
|
205
206
|
let match;
|
|
206
207
|
while ((match = malformedRegex.exec(value)) !== null) {
|
|
207
|
-
const [full,
|
|
208
|
+
const [full, type, dot, key] = match;
|
|
208
209
|
if (!VALID_TYPES.has(type)) {
|
|
209
210
|
throw new Error(`ESYNC: Invalid reference type "(${type})" in "${full}". ` +
|
|
210
|
-
`Valid types: ${[...VALID_TYPES].join(", ")}. ` +
|
|
211
|
+
// `Valid types: ${[...VALID_TYPES].join(", ")}. ` +
|
|
211
212
|
`See https://github.com/Nehonix-Team/XyPriss/blob/master/docs/config/configuration.md`);
|
|
212
213
|
}
|
|
213
214
|
if (dot !== ".") {
|
|
214
|
-
throw new Error(`ESYNC: Malformed syntax "${full}". Missing dot separator after type (e.g.,
|
|
215
|
+
throw new Error(`ESYNC: Malformed syntax "${full}". Missing dot separator after type (e.g., &(env).KEY).`);
|
|
215
216
|
}
|
|
216
217
|
if (!key) {
|
|
217
218
|
throw new Error(`ESYNC: Malformed syntax "${full}". Missing key or property path.`);
|
|
218
219
|
}
|
|
219
220
|
}
|
|
220
|
-
// Catch
|
|
221
|
-
|
|
221
|
+
// Catch any `&(` that didn't even loosely match the malformedRegex
|
|
222
|
+
const stripped = value.replace(malformedRegex, "");
|
|
223
|
+
if (/&\(/.test(stripped)) {
|
|
224
|
+
throw new Error(`ESYNC: Invalid or malformed injection syntax detected in "${value}".`);
|
|
225
|
+
}
|
|
222
226
|
}
|
|
223
227
|
// -------------------------------------------------------------------------
|
|
224
228
|
// Error formatting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":["getSysApi"],"mappings":";;;;AAAA;;;;;;;;;;AAUG;AAoBH;AACA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E;AACA,MAAM,WAAW,GAAiC;IAC9C,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnC,IAAA,IAAI,EAAE,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC/D,IAAA,GAAG,EAAE,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACxD,EAAE,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC5B,IAAA,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACtD;AAED;AACA;AACA;MAEa,kBAAkB,CAAA;IAU3B,WAAA,CACqB,WAAA,GAAuB,IAAI,EAC3B,WAAA,GAAkC,IAAI,EACtC,SAAA,GAAoC,EAAE,EACvD,OAAA,GAAqC,EAAE,EAAA;QAHtB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,SAAS,GAAT,SAAS;;AARb,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAG1C;QAQC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE;QACzD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE;IAC5C;;;;AAMA;;;AAGG;IACI,OAAO,CAAC,GAAY,EAAE,OAAiB,EAAA;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,GAAG,GAAG;QAExC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;AACpE,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAClB,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YACzC,MAAM,QAAQ,GAA4B,EAAE;YAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,EAAE;AAC1C,gBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACtD,gBAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAC/B,GAA+B,CAAC,GAAG,CAAC,EACrC,OAAO,CACV;YACL;AACA,YAAA,OAAO,QAAQ;QACnB;QAEA,OAAO,GAAG,CAAC;IACf;;;;AAMA;;AAEG;IACK,aAAa,CAAC,KAAa,EAAE,OAAgB,EAAA
|
|
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":";;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AASjF;;;;;;AAMG;MACU,OAAO,CAAA;AAChB;;;AAGG;AACH,IAAA,WAAA,CAAsB,MAAqB,EAAA;QAArB,IAAA,CAAA,MAAM,GAAN,MAAM;IAAkB;AACjD;AAED;;;;;;;;;;;;;;;AAeG;AACG,MAAO,OAAQ,SAAQ,OAAO,CAAA;AAApC,IAAA,WAAA,GAAA;;AACI;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,GAAG,KAAe,KAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;AAEjD;;;;;;;;;;;;;;;AAeG;AACI,QAAA,IAAA,CAAA,IAAI,GAAG,CAAC,GAAG,KAAe,KAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;AAE9C;;;;;;;;;;;;;AAaG;QACI,IAAA,CAAA,OAAO,GAAG,CAAC,CAAS,KACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;AAoBG;AACI,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAS,EAAE,MAAe,KACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEvE;;;;;;;;;;;;;;;;;AAiBG;QACI,IAAA,CAAA,OAAO,GAAG,CAAC,CAAS,KACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;AAeG;QACI,IAAA,CAAA,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAU,KACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;AAcG;QACI,IAAA,CAAA,SAAS,GAAG,CAAC,CAAS,KACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAEjD;;;;;;;;;;AAUG;QACI,IAAA,CAAA,OAAO,GAAG,CAAC,MAAc,EAAE,KAAa,KAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE5D;;;;;;;;;;AAUG;QACI,IAAA,CAAA,UAAU,GAAG,CAAC,IAAY,EAAE,GAAG,QAAkB,KACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;AAEnE;;;;;;;;AAQG;QACI,IAAA,CAAA,QAAQ,GAAG,CACd,CAAS,KAOR,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAEjD;;;;;;;;AAQG;QACI,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAS,KAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;AAErD;;;;;;;;AAQG;QACI,IAAA,CAAA,mBAAmB,GAAG,CAAC,CAAS,KACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;AAE5D;;;;;;;AAOG;AACI,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,GAAG,KAAe,KACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC;AAErD;;;;;;;;AAQG;QACI,IAAA,CAAA,UAAU,GAAG,CAAC,CAAS,KAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;AAyBnD;;AAEG;QACI,IAAA,CAAA,OAAO,GAAG,MAAa;AAC1B,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACjC,QAAA,CAAC;AAuBD;;AAEG;AACI,QAAA,IAAA,CAAA,
|
|
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,12 +70,12 @@ 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
|
-
if (config
|
|
75
|
+
if (config?.$vars) {
|
|
91
76
|
if (__sys__) {
|
|
92
|
-
logger.debug("server", `ConfigLoader: Updating system variables with
|
|
93
|
-
__sys__.vars.update(config
|
|
77
|
+
logger.debug("server", `ConfigLoader: Updating system variables with $vars: ${JSON.stringify(config.$vars)}`);
|
|
78
|
+
__sys__.vars.update(config.$vars);
|
|
94
79
|
}
|
|
95
80
|
}
|
|
96
81
|
// Process internal configuration
|
|
@@ -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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"}
|
|
@@ -4,16 +4,16 @@ import { getSysApi } from '../plugins/const/getSysApi.js';
|
|
|
4
4
|
* **Config Syntax Parser**
|
|
5
5
|
*
|
|
6
6
|
* Handles resolution of dynamic references in configuration files:
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
7
|
+
* - `&(env).KEY` : Environment variables
|
|
8
|
+
* - `&(pkg).path` : package.json properties (dot-notation)
|
|
9
|
+
* - `&(this).KEY` : Properties from the currently parsed object
|
|
10
|
+
* - `&(const).KEY` : Build-time constants injected at construction
|
|
11
|
+
* - `&(date).FMT` : Current date/time helpers (ISO, YEAR, MONTH, DAY, TS)
|
|
12
|
+
* - `&(file).path` : Synchronous file content (use for secrets, certs, etc.)
|
|
13
13
|
*/
|
|
14
14
|
// Valid reference types — extend here when adding new syntax.
|
|
15
15
|
const VALID_TYPES = new Set(["env", "pkg", "this", "const", "date", "file"]);
|
|
16
|
-
// Date format tokens supported by
|
|
16
|
+
// Date format tokens supported by &(date).TOKEN
|
|
17
17
|
const DATE_TOKENS = {
|
|
18
18
|
ISO: () => new Date().toISOString(),
|
|
19
19
|
YEAR: () => String(new Date().getFullYear()),
|
|
@@ -66,19 +66,20 @@ class ConfigSyntaxParser {
|
|
|
66
66
|
* Resolves dynamic references in a string, supporting chained || fallbacks.
|
|
67
67
|
*/
|
|
68
68
|
resolveString(value, rootObj) {
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
//
|
|
72
|
-
// Group
|
|
73
|
-
// Group
|
|
74
|
-
|
|
69
|
+
// Validate before any resolution to catch syntax errors even in unused fallbacks
|
|
70
|
+
this.validateSyntax(value);
|
|
71
|
+
// Matches: &(type).key || &(type).key || literal-fallback
|
|
72
|
+
// Group 1 — type
|
|
73
|
+
// Group 2 — key/path
|
|
74
|
+
// Group 3 — remainder of the || chain
|
|
75
|
+
const chainRegex = /&\(([\w]+)\)\.([\w\d_./-]+)((?:\s*\|\|\s*(?:&\((?:[\w]+)\)\.[\w\d_./-]+|[^|,]+))*)/g;
|
|
75
76
|
let result = value;
|
|
76
77
|
let passes = 0;
|
|
77
78
|
while (passes++ < this.maxPasses) {
|
|
78
79
|
const prev = result;
|
|
79
80
|
// Reset regex before each pass (global flag keeps lastIndex)
|
|
80
81
|
chainRegex.lastIndex = 0;
|
|
81
|
-
result = result.replace(chainRegex, (_match,
|
|
82
|
+
result = result.replace(chainRegex, (_match, type, key, chain) => {
|
|
82
83
|
const val = this.getValue(type, key, rootObj);
|
|
83
84
|
if (val !== undefined)
|
|
84
85
|
return val;
|
|
@@ -197,26 +198,29 @@ class ConfigSyntaxParser {
|
|
|
197
198
|
* Validates that no unresolved or malformed markers remain in the string.
|
|
198
199
|
*/
|
|
199
200
|
validateSyntax(value) {
|
|
200
|
-
if (
|
|
201
|
+
if (!/&\(/.test(value))
|
|
201
202
|
return;
|
|
202
|
-
const malformedRegex =
|
|
203
|
+
const malformedRegex = /&\(([^)]*)\)(\.?)([\w\d_./-]*)/g;
|
|
203
204
|
let match;
|
|
204
205
|
while ((match = malformedRegex.exec(value)) !== null) {
|
|
205
|
-
const [full,
|
|
206
|
+
const [full, type, dot, key] = match;
|
|
206
207
|
if (!VALID_TYPES.has(type)) {
|
|
207
208
|
throw new Error(`ESYNC: Invalid reference type "(${type})" in "${full}". ` +
|
|
208
|
-
`Valid types: ${[...VALID_TYPES].join(", ")}. ` +
|
|
209
|
+
// `Valid types: ${[...VALID_TYPES].join(", ")}. ` +
|
|
209
210
|
`See https://github.com/Nehonix-Team/XyPriss/blob/master/docs/config/configuration.md`);
|
|
210
211
|
}
|
|
211
212
|
if (dot !== ".") {
|
|
212
|
-
throw new Error(`ESYNC: Malformed syntax "${full}". Missing dot separator after type (e.g.,
|
|
213
|
+
throw new Error(`ESYNC: Malformed syntax "${full}". Missing dot separator after type (e.g., &(env).KEY).`);
|
|
213
214
|
}
|
|
214
215
|
if (!key) {
|
|
215
216
|
throw new Error(`ESYNC: Malformed syntax "${full}". Missing key or property path.`);
|
|
216
217
|
}
|
|
217
218
|
}
|
|
218
|
-
// Catch
|
|
219
|
-
|
|
219
|
+
// Catch any `&(` that didn't even loosely match the malformedRegex
|
|
220
|
+
const stripped = value.replace(malformedRegex, "");
|
|
221
|
+
if (/&\(/.test(stripped)) {
|
|
222
|
+
throw new Error(`ESYNC: Invalid or malformed injection syntax detected in "${value}".`);
|
|
223
|
+
}
|
|
220
224
|
}
|
|
221
225
|
// -------------------------------------------------------------------------
|
|
222
226
|
// Error formatting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;;;;;AAUG;AAoBH;AACA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5E;AACA,MAAM,WAAW,GAAiC;IAC9C,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnC,IAAA,IAAI,EAAE,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC/D,IAAA,GAAG,EAAE,MAAM,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACxD,EAAE,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC5B,IAAA,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACtD;AAED;AACA;AACA;MAEa,kBAAkB,CAAA;IAU3B,WAAA,CACqB,WAAA,GAAuB,IAAI,EAC3B,WAAA,GAAkC,IAAI,EACtC,SAAA,GAAoC,EAAE,EACvD,OAAA,GAAqC,EAAE,EAAA;QAHtB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,SAAS,GAAT,SAAS;;AARb,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAG1C;QAQC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE;QACzD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE;IAC5C;;;;AAMA;;;AAGG;IACI,OAAO,CAAC,GAAY,EAAE,OAAiB,EAAA;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,GAAG,GAAG;QAExC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;AACpE,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAClB,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YACzC,MAAM,QAAQ,GAA4B,EAAE;YAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,EAAE;AAC1C,gBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACtD,gBAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAC/B,GAA+B,CAAC,GAAG,CAAC,EACrC,OAAO,CACV;YACL;AACA,YAAA,OAAO,QAAQ;QACnB;QAEA,OAAO,GAAG,CAAC;IACf;;;;AAMA;;AAEG;IACK,aAAa,CAAC,KAAa,EAAE,OAAgB,EAAA
|
|
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