xypriss 9.9.5 → 9.9.6
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 +3 -44
- package/dist/cjs/src/server/utils/ConfigLoader.js.map +1 -1
- package/dist/cjs/src/utils/ConfigSyntaxParser.js +80 -0
- package/dist/cjs/src/utils/ConfigSyntaxParser.js.map +1 -0
- package/dist/cjs/src/utils/ProjectDiscovery.js +15 -1
- package/dist/cjs/src/utils/ProjectDiscovery.js.map +1 -1
- package/dist/esm/src/server/utils/ConfigLoader.js +3 -44
- package/dist/esm/src/server/utils/ConfigLoader.js.map +1 -1
- package/dist/esm/src/utils/ConfigSyntaxParser.js +78 -0
- package/dist/esm/src/utils/ConfigSyntaxParser.js.map +1 -0
- package/dist/esm/src/utils/ProjectDiscovery.js +15 -1
- package/dist/esm/src/utils/ProjectDiscovery.js.map +1 -1
- package/dist/index.d.ts +0 -6
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ var System = require('../../xhsc/System.js');
|
|
|
7
7
|
var xhsc = require('../../xhsc.js');
|
|
8
8
|
var env = require('../../xhsc/api/env/env.js');
|
|
9
9
|
var ProjectDiscovery = require('../../utils/ProjectDiscovery.js');
|
|
10
|
+
var ConfigSyntaxParser = require('../../utils/ConfigSyntaxParser.js');
|
|
10
11
|
|
|
11
12
|
function _interopNamespaceDefault(e) {
|
|
12
13
|
var n = Object.create(null);
|
|
@@ -254,51 +255,9 @@ class ConfigLoader {
|
|
|
254
255
|
}
|
|
255
256
|
}
|
|
256
257
|
}
|
|
257
|
-
getDeepValue(obj, path) {
|
|
258
|
-
if (!obj)
|
|
259
|
-
return undefined;
|
|
260
|
-
const parts = path.split(".");
|
|
261
|
-
let current = obj;
|
|
262
|
-
for (const part of parts) {
|
|
263
|
-
if (current === null || typeof current !== "object")
|
|
264
|
-
return undefined;
|
|
265
|
-
current = current[part];
|
|
266
|
-
}
|
|
267
|
-
return current;
|
|
268
|
-
}
|
|
269
258
|
resolveRefs(obj) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
let resolved = obj.replace(/([\$\&])\(env\)\.([\w\d_.-]+)/g, (match, prefix, key) => {
|
|
273
|
-
if (!xhsc.__sys__.__env__.has(key)) {
|
|
274
|
-
throw new Error(`Dynamic configuration error: Environment variable "${key}" not found`);
|
|
275
|
-
}
|
|
276
|
-
return xhsc.__sys__.__env__.get(key);
|
|
277
|
-
});
|
|
278
|
-
// 2. Resolve $(pkg).path or &(pkg).path
|
|
279
|
-
resolved = resolved.replace(/([\$\&])\(pkg\)\.([\w\d_.-]+)/g, (match, prefix, propPath) => {
|
|
280
|
-
if (!this.packageJson)
|
|
281
|
-
return match;
|
|
282
|
-
const val = this.getDeepValue(this.packageJson, propPath);
|
|
283
|
-
if (val === undefined) {
|
|
284
|
-
throw new Error(`Dynamic configuration error: Property "${propPath}" not found in package.json`);
|
|
285
|
-
}
|
|
286
|
-
return String(val);
|
|
287
|
-
});
|
|
288
|
-
return resolved;
|
|
289
|
-
}
|
|
290
|
-
else if (Array.isArray(obj)) {
|
|
291
|
-
return obj.map((item) => this.resolveRefs(item));
|
|
292
|
-
}
|
|
293
|
-
else if (typeof obj === "object" && obj !== null) {
|
|
294
|
-
const resolved = {};
|
|
295
|
-
for (const key in obj) {
|
|
296
|
-
const resolvedKey = this.resolveRefs(key);
|
|
297
|
-
resolved[resolvedKey] = this.resolveRefs(obj[key]);
|
|
298
|
-
}
|
|
299
|
-
return resolved;
|
|
300
|
-
}
|
|
301
|
-
return obj;
|
|
259
|
+
const parser = new ConfigSyntaxParser.ConfigSyntaxParser(this.packageJson, xhsc.__sys__?.__env__);
|
|
260
|
+
return parser.resolve(obj);
|
|
302
261
|
}
|
|
303
262
|
resolveEnvRefs(obj) {
|
|
304
263
|
return this.resolveRefs(obj);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":["path","fs","getCallerProjectRoot","__sys__","logger","XyPrissFS","XY_XHSC_REGISTER_FS"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":["path","fs","getCallerProjectRoot","__sys__","logger","XyPrissFS","XY_XHSC_REGISTER_FS","ConfigSyntaxParser"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* **Config Syntax Parser**
|
|
5
|
+
*
|
|
6
|
+
* Handles resolution of dynamic references in configuration files:
|
|
7
|
+
* - `$(env).KEY` / `&(env).KEY` : Environment variables
|
|
8
|
+
* - `$(pkg).path` / `&(pkg).path` : package.json properties
|
|
9
|
+
*/
|
|
10
|
+
class ConfigSyntaxParser {
|
|
11
|
+
constructor(packageJson = null, envProvider = null) {
|
|
12
|
+
this.packageJson = packageJson;
|
|
13
|
+
this.envProvider = envProvider;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolves all dynamic references in a configuration object or string.
|
|
17
|
+
*/
|
|
18
|
+
resolve(obj) {
|
|
19
|
+
if (typeof obj === "string") {
|
|
20
|
+
return this.resolveString(obj);
|
|
21
|
+
}
|
|
22
|
+
else if (Array.isArray(obj)) {
|
|
23
|
+
return obj.map((item) => this.resolve(item));
|
|
24
|
+
}
|
|
25
|
+
else if (typeof obj === "object" && obj !== null) {
|
|
26
|
+
const resolved = {};
|
|
27
|
+
for (const key in obj) {
|
|
28
|
+
const resolvedKey = this.resolve(key);
|
|
29
|
+
resolved[resolvedKey] = this.resolve(obj[key]);
|
|
30
|
+
}
|
|
31
|
+
return resolved;
|
|
32
|
+
}
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resolves dynamic references in a string.
|
|
37
|
+
*/
|
|
38
|
+
resolveString(value) {
|
|
39
|
+
let resolved = value;
|
|
40
|
+
// 1. Resolve $(env).KEY or &(env).KEY
|
|
41
|
+
resolved = resolved.replace(/([\$\&])\(env\)\.([\w\d_.-]+)/g, (match, _prefix, key) => {
|
|
42
|
+
const env = this.envProvider;
|
|
43
|
+
if (!env)
|
|
44
|
+
return match; // Fallback to original if no env provider
|
|
45
|
+
if (!env.has(key)) {
|
|
46
|
+
throw new Error(`Dynamic configuration error: Environment variable "${key}" not found`);
|
|
47
|
+
}
|
|
48
|
+
return env.get(key);
|
|
49
|
+
});
|
|
50
|
+
// 2. Resolve $(pkg).path or &(pkg).path
|
|
51
|
+
resolved = resolved.replace(/([\$\&])\(pkg\)\.([\w\d_.-]+)/g, (_match, _prefix, propPath) => {
|
|
52
|
+
if (!this.packageJson)
|
|
53
|
+
return _match;
|
|
54
|
+
const val = this.getDeepValue(this.packageJson, propPath);
|
|
55
|
+
if (val === undefined) {
|
|
56
|
+
throw new Error(`Dynamic configuration error: Property "${propPath}" not found in package.json`);
|
|
57
|
+
}
|
|
58
|
+
return String(val);
|
|
59
|
+
});
|
|
60
|
+
return resolved;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieves a value from a nested object using dot notation.
|
|
64
|
+
*/
|
|
65
|
+
getDeepValue(obj, path) {
|
|
66
|
+
if (!obj)
|
|
67
|
+
return undefined;
|
|
68
|
+
const parts = path.split(".");
|
|
69
|
+
let current = obj;
|
|
70
|
+
for (const part of parts) {
|
|
71
|
+
if (current === null || typeof current !== "object")
|
|
72
|
+
return undefined;
|
|
73
|
+
current = current[part];
|
|
74
|
+
}
|
|
75
|
+
return current;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
exports.ConfigSyntaxParser = ConfigSyntaxParser;
|
|
80
|
+
//# sourceMappingURL=ConfigSyntaxParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;;AAMG;MACU,kBAAkB,CAAA;AAC3B,IAAA,WAAA,CACqB,WAAA,GAAmB,IAAI,EACvB,WAAA,GAA0F,IAAI,EAAA;QAD9F,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,WAAW,GAAX,WAAW;IAC7B;AAEH;;AAEG;AACI,IAAA,OAAO,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAClC;AAAO,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD;aAAO,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YAChD,MAAM,QAAQ,GAAQ,EAAE;AACxB,YAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;gBACnB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,gBAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD;AACA,YAAA,OAAO,QAAQ;QACnB;AACA,QAAA,OAAO,GAAG;IACd;AAEA;;AAEG;AACK,IAAA,aAAa,CAAC,KAAa,EAAA;QAC/B,IAAI,QAAQ,GAAG,KAAK;;AAGpB,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACvB,gCAAgC,EAChC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAI;AACpB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW;AAC5B,YAAA,IAAI,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACf,gBAAA,MAAM,IAAI,KAAK,CACX,sDAAsD,GAAG,CAAA,WAAA,CAAa,CACzE;YACL;AACA,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE;AACxB,QAAA,CAAC,CACJ;;AAGD,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACvB,gCAAgC,EAChC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAI;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW;AAAE,gBAAA,OAAO,MAAM;AACpC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AACzD,YAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CACX,0CAA0C,QAAQ,CAAA,2BAAA,CAA6B,CAClF;YACL;AACA,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC;AACtB,QAAA,CAAC,CACJ;AAED,QAAA,OAAO,QAAQ;IACnB;AAEA;;AAEG;IACK,YAAY,CAAC,GAAQ,EAAE,IAAY,EAAA;AACvC,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,SAAS;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,IAAI,OAAO,GAAG,GAAG;AACjB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;AAAE,gBAAA,OAAO,SAAS;AACrE,YAAA,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B;AACA,QAAA,OAAO,OAAO;IAClB;AACH;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var fs = require('fs');
|
|
4
4
|
var path = require('path');
|
|
5
|
+
var ConfigSyntaxParser = require('./ConfigSyntaxParser.js');
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Checks if a directory is a "Real Project" root based on hierarchical criteria.
|
|
@@ -158,7 +159,20 @@ function loadXyConfig(projectRoot) {
|
|
|
158
159
|
const clean = raw
|
|
159
160
|
.replace(/("(?:[^"\\]|\\.)*")|\/\/.*|\/\*[\s\S]*?\*\//g, (m, g) => (g ? g : ""))
|
|
160
161
|
.replace(/("(?:[^"\\]|\\.)*")|,\s*([}\]])/g, (m, g1, g2) => g1 ? g1 : g2);
|
|
161
|
-
|
|
162
|
+
const rawJson = JSON.parse(clean);
|
|
163
|
+
// Load package.json from the same directory for resolution
|
|
164
|
+
let pkgJson = null;
|
|
165
|
+
const pkgPath = path.join(projectRoot, "package.json");
|
|
166
|
+
if (fs.existsSync(pkgPath)) {
|
|
167
|
+
try {
|
|
168
|
+
pkgJson = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
169
|
+
}
|
|
170
|
+
catch { /* ignore */ }
|
|
171
|
+
}
|
|
172
|
+
// Resolve references $(pkg), $(env), etc.
|
|
173
|
+
const sys = globalThis.__sys__;
|
|
174
|
+
const parser = new ConfigSyntaxParser.ConfigSyntaxParser(pkgJson, sys?.__env__);
|
|
175
|
+
return parser.resolve(rawJson);
|
|
162
176
|
}
|
|
163
177
|
catch (e) {
|
|
164
178
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectDiscovery.js","sources":["../../../../src/utils/ProjectDiscovery.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ProjectDiscovery.js","sources":["../../../../src/utils/ProjectDiscovery.ts"],"sourcesContent":[null],"names":["ConfigSyntaxParser"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { XyPrissFS } from '../../xhsc/System.js';
|
|
|
5
5
|
import { __sys__ } from '../../xhsc.js';
|
|
6
6
|
import { XY_XHSC_REGISTER_FS } from '../../xhsc/api/env/env.js';
|
|
7
7
|
import { getCallerProjectRoot } from '../../utils/ProjectDiscovery.js';
|
|
8
|
+
import { ConfigSyntaxParser } from '../../utils/ConfigSyntaxParser.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* XyPriss Configuration Loader
|
|
@@ -232,51 +233,9 @@ class ConfigLoader {
|
|
|
232
233
|
}
|
|
233
234
|
}
|
|
234
235
|
}
|
|
235
|
-
getDeepValue(obj, path) {
|
|
236
|
-
if (!obj)
|
|
237
|
-
return undefined;
|
|
238
|
-
const parts = path.split(".");
|
|
239
|
-
let current = obj;
|
|
240
|
-
for (const part of parts) {
|
|
241
|
-
if (current === null || typeof current !== "object")
|
|
242
|
-
return undefined;
|
|
243
|
-
current = current[part];
|
|
244
|
-
}
|
|
245
|
-
return current;
|
|
246
|
-
}
|
|
247
236
|
resolveRefs(obj) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
let resolved = obj.replace(/([\$\&])\(env\)\.([\w\d_.-]+)/g, (match, prefix, key) => {
|
|
251
|
-
if (!__sys__.__env__.has(key)) {
|
|
252
|
-
throw new Error(`Dynamic configuration error: Environment variable "${key}" not found`);
|
|
253
|
-
}
|
|
254
|
-
return __sys__.__env__.get(key);
|
|
255
|
-
});
|
|
256
|
-
// 2. Resolve $(pkg).path or &(pkg).path
|
|
257
|
-
resolved = resolved.replace(/([\$\&])\(pkg\)\.([\w\d_.-]+)/g, (match, prefix, propPath) => {
|
|
258
|
-
if (!this.packageJson)
|
|
259
|
-
return match;
|
|
260
|
-
const val = this.getDeepValue(this.packageJson, propPath);
|
|
261
|
-
if (val === undefined) {
|
|
262
|
-
throw new Error(`Dynamic configuration error: Property "${propPath}" not found in package.json`);
|
|
263
|
-
}
|
|
264
|
-
return String(val);
|
|
265
|
-
});
|
|
266
|
-
return resolved;
|
|
267
|
-
}
|
|
268
|
-
else if (Array.isArray(obj)) {
|
|
269
|
-
return obj.map((item) => this.resolveRefs(item));
|
|
270
|
-
}
|
|
271
|
-
else if (typeof obj === "object" && obj !== null) {
|
|
272
|
-
const resolved = {};
|
|
273
|
-
for (const key in obj) {
|
|
274
|
-
const resolvedKey = this.resolveRefs(key);
|
|
275
|
-
resolved[resolvedKey] = this.resolveRefs(obj[key]);
|
|
276
|
-
}
|
|
277
|
-
return resolved;
|
|
278
|
-
}
|
|
279
|
-
return obj;
|
|
237
|
+
const parser = new ConfigSyntaxParser(this.packageJson, __sys__?.__env__);
|
|
238
|
+
return parser.resolve(obj);
|
|
280
239
|
}
|
|
281
240
|
resolveEnvRefs(obj) {
|
|
282
241
|
return this.resolveRefs(obj);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sources":["../../../../../src/server/utils/ConfigLoader.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Config Syntax Parser**
|
|
3
|
+
*
|
|
4
|
+
* Handles resolution of dynamic references in configuration files:
|
|
5
|
+
* - `$(env).KEY` / `&(env).KEY` : Environment variables
|
|
6
|
+
* - `$(pkg).path` / `&(pkg).path` : package.json properties
|
|
7
|
+
*/
|
|
8
|
+
class ConfigSyntaxParser {
|
|
9
|
+
constructor(packageJson = null, envProvider = null) {
|
|
10
|
+
this.packageJson = packageJson;
|
|
11
|
+
this.envProvider = envProvider;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolves all dynamic references in a configuration object or string.
|
|
15
|
+
*/
|
|
16
|
+
resolve(obj) {
|
|
17
|
+
if (typeof obj === "string") {
|
|
18
|
+
return this.resolveString(obj);
|
|
19
|
+
}
|
|
20
|
+
else if (Array.isArray(obj)) {
|
|
21
|
+
return obj.map((item) => this.resolve(item));
|
|
22
|
+
}
|
|
23
|
+
else if (typeof obj === "object" && obj !== null) {
|
|
24
|
+
const resolved = {};
|
|
25
|
+
for (const key in obj) {
|
|
26
|
+
const resolvedKey = this.resolve(key);
|
|
27
|
+
resolved[resolvedKey] = this.resolve(obj[key]);
|
|
28
|
+
}
|
|
29
|
+
return resolved;
|
|
30
|
+
}
|
|
31
|
+
return obj;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolves dynamic references in a string.
|
|
35
|
+
*/
|
|
36
|
+
resolveString(value) {
|
|
37
|
+
let resolved = value;
|
|
38
|
+
// 1. Resolve $(env).KEY or &(env).KEY
|
|
39
|
+
resolved = resolved.replace(/([\$\&])\(env\)\.([\w\d_.-]+)/g, (match, _prefix, key) => {
|
|
40
|
+
const env = this.envProvider;
|
|
41
|
+
if (!env)
|
|
42
|
+
return match; // Fallback to original if no env provider
|
|
43
|
+
if (!env.has(key)) {
|
|
44
|
+
throw new Error(`Dynamic configuration error: Environment variable "${key}" not found`);
|
|
45
|
+
}
|
|
46
|
+
return env.get(key);
|
|
47
|
+
});
|
|
48
|
+
// 2. Resolve $(pkg).path or &(pkg).path
|
|
49
|
+
resolved = resolved.replace(/([\$\&])\(pkg\)\.([\w\d_.-]+)/g, (_match, _prefix, propPath) => {
|
|
50
|
+
if (!this.packageJson)
|
|
51
|
+
return _match;
|
|
52
|
+
const val = this.getDeepValue(this.packageJson, propPath);
|
|
53
|
+
if (val === undefined) {
|
|
54
|
+
throw new Error(`Dynamic configuration error: Property "${propPath}" not found in package.json`);
|
|
55
|
+
}
|
|
56
|
+
return String(val);
|
|
57
|
+
});
|
|
58
|
+
return resolved;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Retrieves a value from a nested object using dot notation.
|
|
62
|
+
*/
|
|
63
|
+
getDeepValue(obj, path) {
|
|
64
|
+
if (!obj)
|
|
65
|
+
return undefined;
|
|
66
|
+
const parts = path.split(".");
|
|
67
|
+
let current = obj;
|
|
68
|
+
for (const part of parts) {
|
|
69
|
+
if (current === null || typeof current !== "object")
|
|
70
|
+
return undefined;
|
|
71
|
+
current = current[part];
|
|
72
|
+
}
|
|
73
|
+
return current;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { ConfigSyntaxParser };
|
|
78
|
+
//# sourceMappingURL=ConfigSyntaxParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigSyntaxParser.js","sources":["../../../../src/utils/ConfigSyntaxParser.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;AAMG;MACU,kBAAkB,CAAA;AAC3B,IAAA,WAAA,CACqB,WAAA,GAAmB,IAAI,EACvB,WAAA,GAA0F,IAAI,EAAA;QAD9F,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,WAAW,GAAX,WAAW;IAC7B;AAEH;;AAEG;AACI,IAAA,OAAO,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAClC;AAAO,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD;aAAO,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YAChD,MAAM,QAAQ,GAAQ,EAAE;AACxB,YAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;gBACnB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,gBAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD;AACA,YAAA,OAAO,QAAQ;QACnB;AACA,QAAA,OAAO,GAAG;IACd;AAEA;;AAEG;AACK,IAAA,aAAa,CAAC,KAAa,EAAA;QAC/B,IAAI,QAAQ,GAAG,KAAK;;AAGpB,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACvB,gCAAgC,EAChC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAI;AACpB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW;AAC5B,YAAA,IAAI,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACf,gBAAA,MAAM,IAAI,KAAK,CACX,sDAAsD,GAAG,CAAA,WAAA,CAAa,CACzE;YACL;AACA,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE;AACxB,QAAA,CAAC,CACJ;;AAGD,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACvB,gCAAgC,EAChC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAI;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW;AAAE,gBAAA,OAAO,MAAM;AACpC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AACzD,YAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CACX,0CAA0C,QAAQ,CAAA,2BAAA,CAA6B,CAClF;YACL;AACA,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC;AACtB,QAAA,CAAC,CACJ;AAED,QAAA,OAAO,QAAQ;IACnB;AAEA;;AAEG;IACK,YAAY,CAAC,GAAQ,EAAE,IAAY,EAAA;AACvC,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,SAAS;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,IAAI,OAAO,GAAG,GAAG;AACjB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;AAAE,gBAAA,OAAO,SAAS;AACrE,YAAA,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B;AACA,QAAA,OAAO,OAAO;IAClB;AACH;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs__default from 'fs';
|
|
2
2
|
import path__default from 'path';
|
|
3
|
+
import { ConfigSyntaxParser } from './ConfigSyntaxParser.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Checks if a directory is a "Real Project" root based on hierarchical criteria.
|
|
@@ -156,7 +157,20 @@ function loadXyConfig(projectRoot) {
|
|
|
156
157
|
const clean = raw
|
|
157
158
|
.replace(/("(?:[^"\\]|\\.)*")|\/\/.*|\/\*[\s\S]*?\*\//g, (m, g) => (g ? g : ""))
|
|
158
159
|
.replace(/("(?:[^"\\]|\\.)*")|,\s*([}\]])/g, (m, g1, g2) => g1 ? g1 : g2);
|
|
159
|
-
|
|
160
|
+
const rawJson = JSON.parse(clean);
|
|
161
|
+
// Load package.json from the same directory for resolution
|
|
162
|
+
let pkgJson = null;
|
|
163
|
+
const pkgPath = path__default.join(projectRoot, "package.json");
|
|
164
|
+
if (fs__default.existsSync(pkgPath)) {
|
|
165
|
+
try {
|
|
166
|
+
pkgJson = JSON.parse(fs__default.readFileSync(pkgPath, "utf-8"));
|
|
167
|
+
}
|
|
168
|
+
catch { /* ignore */ }
|
|
169
|
+
}
|
|
170
|
+
// Resolve references $(pkg), $(env), etc.
|
|
171
|
+
const sys = globalThis.__sys__;
|
|
172
|
+
const parser = new ConfigSyntaxParser(pkgJson, sys?.__env__);
|
|
173
|
+
return parser.resolve(rawJson);
|
|
160
174
|
}
|
|
161
175
|
catch (e) {
|
|
162
176
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectDiscovery.js","sources":["../../../../src/utils/ProjectDiscovery.ts"],"sourcesContent":[null],"names":["path","fs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProjectDiscovery.js","sources":["../../../../src/utils/ProjectDiscovery.ts"],"sourcesContent":[null],"names":["path","fs"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8414,12 +8414,6 @@ interface XyApp {
|
|
|
8414
8414
|
connect(path: string, ...handlers: RequestHandler[]): void;
|
|
8415
8415
|
trace(path: string, ...handlers: RequestHandler[]): void;
|
|
8416
8416
|
all(path: string, ...handlers: RequestHandler[]): void;
|
|
8417
|
-
/**
|
|
8418
|
-
* Map a path to a static directory.
|
|
8419
|
-
* @param path - URL prefix
|
|
8420
|
-
* @param filePath - Local directory path
|
|
8421
|
-
*/
|
|
8422
|
-
static(path: string, filePath: string): void;
|
|
8423
8417
|
/**
|
|
8424
8418
|
* Register a route-level redirect from one path to another path or external URL.
|
|
8425
8419
|
*
|
package/package.json
CHANGED