xypriss 9.6.97 → 9.7.0
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/README.md +55 -22
- package/dist/cjs/src/index.js +0 -19
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +4 -4
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/security/HoneypotTarpit.js +510 -0
- package/dist/cjs/src/middleware/built-in/security/HoneypotTarpit.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/SQLInjectionDetector.js +113 -34
- package/dist/cjs/src/middleware/built-in/security/SQLInjectionDetector.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/security/UriNormalizer.js +413 -0
- package/dist/cjs/src/middleware/built-in/security/UriNormalizer.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/XyPrissCors.js +98 -0
- package/dist/cjs/src/middleware/built-in/security/XyPrissCors.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/security/XyPrissHPP.js +52 -0
- package/dist/cjs/src/middleware/built-in/security/XyPrissHPP.js.map +1 -0
- package/dist/cjs/src/middleware/safe-json-middleware.js +0 -82
- package/dist/cjs/src/middleware/safe-json-middleware.js.map +1 -1
- package/dist/cjs/src/middleware/security-middleware.js +7 -4
- package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
- package/dist/cjs/src/plugins/builtin/xems/XemsBuiltinPlugin.js +33 -10
- package/dist/cjs/src/plugins/builtin/xems/XemsBuiltinPlugin.js.map +1 -1
- package/dist/cjs/src/plugins/builtin/xems/XemsPlugin.js +34 -3
- package/dist/cjs/src/plugins/builtin/xems/XemsPlugin.js.map +1 -1
- package/dist/cjs/src/plugins/const/OFFICIAL_PLUGINS.js +1 -1
- package/dist/cjs/src/plugins/const/OFFICIAL_PLUGINS.js.map +1 -1
- package/dist/cjs/src/plugins/const/XyprissTempDir.js +72 -9
- package/dist/cjs/src/plugins/const/XyprissTempDir.js.map +1 -1
- package/dist/cjs/src/plugins/core/manager/PluginLoader.js +8 -0
- package/dist/cjs/src/plugins/core/manager/PluginLoader.js.map +1 -1
- package/dist/cjs/src/plugins/core/manager/PluginSecurity.js +87 -0
- package/dist/cjs/src/plugins/core/manager/PluginSecurity.js.map +1 -1
- package/dist/cjs/src/server/FastServer/index.js +5 -0
- package/dist/cjs/src/server/FastServer/index.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +8 -13
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/RedirectManager.js +8 -58
- package/dist/cjs/src/server/components/fastapi/RedirectManager.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/upload/FileUploadManager.js +1 -1
- package/dist/cjs/src/server/components/fastapi/upload/FileUploadManager.js.map +1 -1
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js +9 -1
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js.map +1 -1
- package/dist/cjs/src/server/core/HttpServer.js +22 -0
- package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/EngineManager.js +33 -2
- package/dist/cjs/src/server/core/XHSCBridge/EngineManager.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/cmd/buildSecurityArgs.js +1 -1
- package/dist/cjs/src/server/core/XHSCBridge/cmd/buildSecurityArgs.js.map +1 -1
- package/dist/cjs/src/server/core/XyServerCreator.js +1 -0
- package/dist/cjs/src/server/core/XyServerCreator.js.map +1 -1
- package/dist/cjs/src/shared/logger/quickLogger.js +162 -0
- package/dist/cjs/src/shared/logger/quickLogger.js.map +1 -0
- package/dist/cjs/src/xhsc/PathApi.js +44 -3
- package/dist/cjs/src/xhsc/PathApi.js.map +1 -1
- package/dist/cjs/src/xhsc/System.js +2 -0
- package/dist/cjs/src/xhsc/System.js.map +1 -1
- package/dist/cjs/src/xhsc/UtilsApi.js +52 -0
- package/dist/cjs/src/xhsc/UtilsApi.js.map +1 -0
- package/dist/cjs/src/xhsc/XyPrissRunner.js +30 -2
- package/dist/cjs/src/xhsc/XyPrissRunner.js.map +1 -1
- package/dist/cjs/src/xhsc/fs/FSCore.js +148 -0
- package/dist/cjs/src/xhsc/fs/FSCore.js.map +1 -1
- package/dist/cjs/src/xhsc/fs/FileHandle.js +112 -0
- package/dist/cjs/src/xhsc/fs/FileHandle.js.map +1 -0
- package/dist/cjs/src/xhsc/ipc/XHSCDirectIPC.js +134 -0
- package/dist/cjs/src/xhsc/ipc/XHSCDirectIPC.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/ArrayUtils.js +67 -0
- package/dist/cjs/src/xhsc/utils/ArrayUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/AsyncUtils.js +582 -0
- package/dist/cjs/src/xhsc/utils/AsyncUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/DateUtils.js +959 -0
- package/dist/cjs/src/xhsc/utils/DateUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/FunctionUtils.js +29 -0
- package/dist/cjs/src/xhsc/utils/FunctionUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/IdUtils.js +22 -0
- package/dist/cjs/src/xhsc/utils/IdUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/NumberUtils.js +79 -0
- package/dist/cjs/src/xhsc/utils/NumberUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/ObjectUtils.js +141 -0
- package/dist/cjs/src/xhsc/utils/ObjectUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/StringUtils.js +145 -0
- package/dist/cjs/src/xhsc/utils/StringUtils.js.map +1 -0
- package/dist/cjs/src/xhsc/utils/ValidationUtils.js +49 -0
- package/dist/cjs/src/xhsc/utils/ValidationUtils.js.map +1 -0
- package/dist/cjs/src/xhsc.js +5 -3
- package/dist/cjs/src/xhsc.js.map +1 -1
- package/dist/esm/src/index.js +0 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +4 -4
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
- package/dist/esm/src/middleware/built-in/security/HoneypotTarpit.js +508 -0
- package/dist/esm/src/middleware/built-in/security/HoneypotTarpit.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/SQLInjectionDetector.js +113 -34
- package/dist/esm/src/middleware/built-in/security/SQLInjectionDetector.js.map +1 -1
- package/dist/esm/src/middleware/built-in/security/UriNormalizer.js +391 -0
- package/dist/esm/src/middleware/built-in/security/UriNormalizer.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/XyPrissCors.js +96 -0
- package/dist/esm/src/middleware/built-in/security/XyPrissCors.js.map +1 -0
- package/dist/esm/src/middleware/built-in/security/XyPrissHPP.js +50 -0
- package/dist/esm/src/middleware/built-in/security/XyPrissHPP.js.map +1 -0
- package/dist/esm/src/middleware/safe-json-middleware.js +1 -79
- package/dist/esm/src/middleware/safe-json-middleware.js.map +1 -1
- package/dist/esm/src/middleware/security-middleware.js +7 -4
- package/dist/esm/src/middleware/security-middleware.js.map +1 -1
- package/dist/esm/src/plugins/builtin/xems/XemsBuiltinPlugin.js +33 -10
- package/dist/esm/src/plugins/builtin/xems/XemsBuiltinPlugin.js.map +1 -1
- package/dist/esm/src/plugins/builtin/xems/XemsPlugin.js +34 -3
- package/dist/esm/src/plugins/builtin/xems/XemsPlugin.js.map +1 -1
- package/dist/esm/src/plugins/const/OFFICIAL_PLUGINS.js +1 -1
- package/dist/esm/src/plugins/const/OFFICIAL_PLUGINS.js.map +1 -1
- package/dist/esm/src/plugins/const/XyprissTempDir.js +70 -9
- package/dist/esm/src/plugins/const/XyprissTempDir.js.map +1 -1
- package/dist/esm/src/plugins/core/manager/PluginLoader.js +8 -0
- package/dist/esm/src/plugins/core/manager/PluginLoader.js.map +1 -1
- package/dist/esm/src/plugins/core/manager/PluginSecurity.js +87 -0
- package/dist/esm/src/plugins/core/manager/PluginSecurity.js.map +1 -1
- package/dist/esm/src/server/FastServer/index.js +5 -0
- package/dist/esm/src/server/FastServer/index.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +8 -1
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/RedirectManager.js +8 -58
- package/dist/esm/src/server/components/fastapi/RedirectManager.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/upload/FileUploadManager.js +1 -1
- package/dist/esm/src/server/components/fastapi/upload/FileUploadManager.js.map +1 -1
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js +9 -1
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js.map +1 -1
- package/dist/esm/src/server/core/HttpServer.js +22 -0
- package/dist/esm/src/server/core/HttpServer.js.map +1 -1
- package/dist/esm/src/server/core/XHSCBridge/EngineManager.js +33 -2
- package/dist/esm/src/server/core/XHSCBridge/EngineManager.js.map +1 -1
- package/dist/esm/src/server/core/XHSCBridge/cmd/buildSecurityArgs.js +1 -1
- package/dist/esm/src/server/core/XHSCBridge/cmd/buildSecurityArgs.js.map +1 -1
- package/dist/esm/src/server/core/XyServerCreator.js +1 -0
- package/dist/esm/src/server/core/XyServerCreator.js.map +1 -1
- package/dist/esm/src/shared/logger/quickLogger.js +160 -0
- package/dist/esm/src/shared/logger/quickLogger.js.map +1 -0
- package/dist/esm/src/xhsc/PathApi.js +44 -3
- package/dist/esm/src/xhsc/PathApi.js.map +1 -1
- package/dist/esm/src/xhsc/System.js +2 -0
- package/dist/esm/src/xhsc/System.js.map +1 -1
- package/dist/esm/src/xhsc/UtilsApi.js +50 -0
- package/dist/esm/src/xhsc/UtilsApi.js.map +1 -0
- package/dist/esm/src/xhsc/XyPrissRunner.js +30 -2
- package/dist/esm/src/xhsc/XyPrissRunner.js.map +1 -1
- package/dist/esm/src/xhsc/fs/FSCore.js +148 -0
- package/dist/esm/src/xhsc/fs/FSCore.js.map +1 -1
- package/dist/esm/src/xhsc/fs/FileHandle.js +110 -0
- package/dist/esm/src/xhsc/fs/FileHandle.js.map +1 -0
- package/dist/esm/src/xhsc/ipc/XHSCDirectIPC.js +113 -0
- package/dist/esm/src/xhsc/ipc/XHSCDirectIPC.js.map +1 -0
- package/dist/esm/src/xhsc/utils/ArrayUtils.js +65 -0
- package/dist/esm/src/xhsc/utils/ArrayUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/AsyncUtils.js +580 -0
- package/dist/esm/src/xhsc/utils/AsyncUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/DateUtils.js +957 -0
- package/dist/esm/src/xhsc/utils/DateUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/FunctionUtils.js +27 -0
- package/dist/esm/src/xhsc/utils/FunctionUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/IdUtils.js +20 -0
- package/dist/esm/src/xhsc/utils/IdUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/NumberUtils.js +77 -0
- package/dist/esm/src/xhsc/utils/NumberUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/ObjectUtils.js +139 -0
- package/dist/esm/src/xhsc/utils/ObjectUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/StringUtils.js +143 -0
- package/dist/esm/src/xhsc/utils/StringUtils.js.map +1 -0
- package/dist/esm/src/xhsc/utils/ValidationUtils.js +47 -0
- package/dist/esm/src/xhsc/utils/ValidationUtils.js.map +1 -0
- package/dist/esm/src/xhsc.js +6 -5
- package/dist/esm/src/xhsc.js.map +1 -1
- package/dist/index.d.ts +1872 -234
- package/package.json +119 -137
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateUtils.js","sources":["../../../../../src/xhsc/utils/DateUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **FunctionUtils — Functional Programming Helpers**
|
|
3
|
+
*/
|
|
4
|
+
class FunctionUtils {
|
|
5
|
+
/**
|
|
6
|
+
* **memo**
|
|
7
|
+
*
|
|
8
|
+
* Returns a memoized version of a function that caches its results based on input parameters.
|
|
9
|
+
*
|
|
10
|
+
* @param fn The function to memoize.
|
|
11
|
+
* @returns The memoized function.
|
|
12
|
+
*/
|
|
13
|
+
memo(fn) {
|
|
14
|
+
const cache = new Map();
|
|
15
|
+
return ((...args) => {
|
|
16
|
+
const key = JSON.stringify(args);
|
|
17
|
+
if (cache.has(key))
|
|
18
|
+
return cache.get(key);
|
|
19
|
+
const result = fn(...args);
|
|
20
|
+
cache.set(key, result);
|
|
21
|
+
return result;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { FunctionUtils };
|
|
27
|
+
//# sourceMappingURL=FunctionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionUtils.js","sources":["../../../../../src/xhsc/utils/FunctionUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;AAEG;MACU,aAAa,CAAA;AACtB;;;;;;;AAOG;AACI,IAAA,IAAI,CAAoC,EAAK,EAAA;AAChD,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe;AACpC,QAAA,QAAQ,CAAC,GAAG,IAAW,KAAI;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChC,YAAA,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACzC,YAAA,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AAC1B,YAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AACtB,YAAA,OAAO,MAAM;AACjB,QAAA,CAAC;IACL;AACH;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ID } from 'nehoid';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* **IdUtils — Identity Primitives**
|
|
5
|
+
*/
|
|
6
|
+
class IdUtils {
|
|
7
|
+
/**
|
|
8
|
+
* **uuid**
|
|
9
|
+
*
|
|
10
|
+
* Generates a RFC-compliant UUID v4 using the `nehoid` engine.
|
|
11
|
+
*
|
|
12
|
+
* @returns A random UUID string.
|
|
13
|
+
*/
|
|
14
|
+
uuid() {
|
|
15
|
+
return ID.uuid();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { IdUtils };
|
|
20
|
+
//# sourceMappingURL=IdUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdUtils.js","sources":["../../../../../src/xhsc/utils/IdUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;AAEG;MACU,OAAO,CAAA;AAChB;;;;;;AAMG;IACI,IAAI,GAAA;AACP,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE;IACpB;AACH;;;;"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **NumberUtils — XyPriss Number & Math Utilities**
|
|
3
|
+
*/
|
|
4
|
+
class NumberUtils {
|
|
5
|
+
/**
|
|
6
|
+
* **Clamp a Value**
|
|
7
|
+
*
|
|
8
|
+
* Restricts a numeric value to a defined range [min, max].
|
|
9
|
+
*
|
|
10
|
+
* @param value - The value to clamp.
|
|
11
|
+
* @param min - The lower bound.
|
|
12
|
+
* @param max - The upper bound.
|
|
13
|
+
* @returns The clamped value.
|
|
14
|
+
*/
|
|
15
|
+
clamp(value, min, max) {
|
|
16
|
+
return Math.min(Math.max(value, min), max);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* **Linear Interpolation (LERP)**
|
|
20
|
+
*
|
|
21
|
+
* Returns the linear interpolation between `start` and `end` for a factor `t`.
|
|
22
|
+
*
|
|
23
|
+
* @param start - The start value.
|
|
24
|
+
* @param end - The end value.
|
|
25
|
+
* @param t - The interpolation factor (0.0 to 1.0).
|
|
26
|
+
* @returns The interpolated value.
|
|
27
|
+
*/
|
|
28
|
+
lerp(start, end, t) {
|
|
29
|
+
return start * (1 - t) + end * t;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* **Get a Random Integer**
|
|
33
|
+
*
|
|
34
|
+
* Returns a random integer between min (inclusive) and max (inclusive).
|
|
35
|
+
*
|
|
36
|
+
* @param min - Minimum value.
|
|
37
|
+
* @param max - Maximum value.
|
|
38
|
+
* @returns A random integer.
|
|
39
|
+
*/
|
|
40
|
+
randomInt(min, max) {
|
|
41
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* **Format Number**
|
|
45
|
+
*
|
|
46
|
+
* Locale-aware number formatting.
|
|
47
|
+
*
|
|
48
|
+
* @param value - The number to format.
|
|
49
|
+
* @param locale - Optional locale (default: `en-US`).
|
|
50
|
+
* @param options - Intl.NumberFormatOptions.
|
|
51
|
+
* @returns A localized string.
|
|
52
|
+
*/
|
|
53
|
+
formatNumber(value, locale = "en-US", options) {
|
|
54
|
+
return new Intl.NumberFormat(locale, options).format(value);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* **Format Bytes**
|
|
58
|
+
*
|
|
59
|
+
* Converts raw bytes into a human-readable size string (KB, MB, GB, etc.).
|
|
60
|
+
*
|
|
61
|
+
* @param bytes - The number of bytes.
|
|
62
|
+
* @param decimals - Decimal precision.
|
|
63
|
+
* @returns A human-readable size string.
|
|
64
|
+
*/
|
|
65
|
+
formatBytes(bytes, decimals = 2) {
|
|
66
|
+
if (bytes === 0)
|
|
67
|
+
return "0 Bytes";
|
|
68
|
+
const k = 1024;
|
|
69
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
70
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
71
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
72
|
+
return (parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { NumberUtils };
|
|
77
|
+
//# sourceMappingURL=NumberUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberUtils.js","sources":["../../../../../src/xhsc/utils/NumberUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;AAEG;MACU,WAAW,CAAA;AACpB;;;;;;;;;AASG;AACI,IAAA,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAC9C;AAEA;;;;;;;;;AASG;AACI,IAAA,IAAI,CAAC,KAAa,EAAE,GAAW,EAAE,CAAS,EAAA;QAC7C,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACpC;AAEA;;;;;;;;AAQG;IACI,SAAS,CAAC,GAAW,EAAE,GAAW,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;IAC5D;AAEA;;;;;;;;;AASG;AACI,IAAA,YAAY,CACf,KAAa,EACb,MAAA,GAAiB,OAAO,EACxB,OAAkC,EAAA;AAElC,QAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/D;AAEA;;;;;;;;AAQG;AACI,IAAA,WAAW,CAAC,KAAa,EAAE,QAAA,GAAmB,CAAC,EAAA;QAClD,IAAI,KAAK,KAAK,CAAC;AAAE,YAAA,OAAO,SAAS;QACjC,MAAM,CAAC,GAAG,IAAI;AACd,QAAA,MAAM,EAAE,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ;QACtC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACvE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnD,QAAA,QACI,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAEzE;AACH;;;;"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { XStringify } from 'xypriss-security';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* **ObjectUtils — XyPriss Object Utilities**
|
|
5
|
+
*/
|
|
6
|
+
class ObjectUtils {
|
|
7
|
+
/**
|
|
8
|
+
* **Deep Clone an Object**
|
|
9
|
+
*
|
|
10
|
+
* Creates a deep copy of `obj` using `XStringify` for serialization,
|
|
11
|
+
* which handles cyclic references and offers better performance
|
|
12
|
+
* than the native `JSON.stringify` in complex object graphs.
|
|
13
|
+
*
|
|
14
|
+
* @param obj - The object to clone. Must be serializable.
|
|
15
|
+
* @returns A completely independent deep copy of the input object.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const original = { a: 1, nested: { b: 2 } };
|
|
20
|
+
* const clone = utils.deepClone(original);
|
|
21
|
+
* clone.nested.b = 99;
|
|
22
|
+
* // original.nested.b is still 2
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
deepClone(obj) {
|
|
26
|
+
return JSON.parse(XStringify(obj));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* **Pick Specific Keys from an Object**
|
|
30
|
+
*
|
|
31
|
+
* Returns a new object containing only the key-value pairs whose
|
|
32
|
+
* keys appear in the `keys` array. Non-existent keys are silently ignored.
|
|
33
|
+
*
|
|
34
|
+
* @param obj - The source object.
|
|
35
|
+
* @param keys - Array of keys to extract.
|
|
36
|
+
* @returns A new object with only the specified keys.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* utils.pick({ a: 1, b: 2, c: 3 }, ["a", "c"]); // { a: 1, c: 3 }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
pick(obj, keys) {
|
|
44
|
+
return keys.reduce((acc, key) => {
|
|
45
|
+
if (key in obj)
|
|
46
|
+
acc[key] = obj[key];
|
|
47
|
+
return acc;
|
|
48
|
+
}, {});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* **Omit Specific Keys from an Object**
|
|
52
|
+
*
|
|
53
|
+
* Returns a new object that is a shallow copy of `obj` with the
|
|
54
|
+
* specified keys removed.
|
|
55
|
+
*
|
|
56
|
+
* @param obj - The source object.
|
|
57
|
+
* @param keys - Array of keys to exclude.
|
|
58
|
+
* @returns A new object without the specified keys.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* utils.omit({ a: 1, b: 2, c: 3 }, ["b"]); // { a: 1, c: 3 }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
omit(obj, keys) {
|
|
66
|
+
const result = { ...obj };
|
|
67
|
+
keys.forEach((key) => delete result[key]);
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* **Check if an Object is Empty**
|
|
72
|
+
*
|
|
73
|
+
* Returns `true` if the object has no own enumerable keys.
|
|
74
|
+
* Works correctly with objects created via `Object.create(null)`.
|
|
75
|
+
*
|
|
76
|
+
* @param obj - The object to inspect.
|
|
77
|
+
* @returns `true` if the object has no own keys, `false` otherwise.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* utils.isEmpty({}); // true
|
|
82
|
+
* utils.isEmpty({ a: 1 }); // false
|
|
83
|
+
* utils.isEmpty(Object.create(null)); // true
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
isEmpty(obj) {
|
|
87
|
+
return Object.keys(obj).length === 0;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* **flattenObject**
|
|
91
|
+
*
|
|
92
|
+
* Collapses nested objects into flat dot-notation (or custom) keys.
|
|
93
|
+
* Useful for configuration mapping or CSV generation.
|
|
94
|
+
*
|
|
95
|
+
* @param obj - The object to flatten.
|
|
96
|
+
* @param separator - Optional path separator (default: `"."`).
|
|
97
|
+
* @returns A shallow object with path-based keys.
|
|
98
|
+
*/
|
|
99
|
+
flattenObject(obj, separator = ".") {
|
|
100
|
+
const result = {};
|
|
101
|
+
const recurse = (current, path = "") => {
|
|
102
|
+
for (const [key, value] of Object.entries(current)) {
|
|
103
|
+
const newPath = path ? `${path}${separator}${key}` : key;
|
|
104
|
+
if (value &&
|
|
105
|
+
typeof value === "object" &&
|
|
106
|
+
!Array.isArray(value) &&
|
|
107
|
+
Object.keys(value).length > 0) {
|
|
108
|
+
recurse(value, newPath);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
result[newPath] = value;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
recurse(obj);
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* **parse**
|
|
120
|
+
*
|
|
121
|
+
* Safely parses a JSON string. If the parsing fails, the provided fallback
|
|
122
|
+
* value is returned instead of throwing an exception.
|
|
123
|
+
*
|
|
124
|
+
* @param json The JSON string to parse.
|
|
125
|
+
* @param fallback The fallback value to return on failure.
|
|
126
|
+
* @returns The parsed object or the fallback value.
|
|
127
|
+
*/
|
|
128
|
+
parse(json, fallback = null) {
|
|
129
|
+
try {
|
|
130
|
+
return JSON.parse(json);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return fallback;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export { ObjectUtils };
|
|
139
|
+
//# sourceMappingURL=ObjectUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectUtils.js","sources":["../../../../../src/xhsc/utils/ObjectUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;AAEG;MACU,WAAW,CAAA;AACpB;;;;;;;;;;;;;;;;;AAiBG;AACI,IAAA,SAAS,CAAI,GAAM,EAAA;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtC;AAEA;;;;;;;;;;;;;;AAcG;IACI,IAAI,CACP,GAAM,EACN,IAAS,EAAA;QAET,OAAO,IAAI,CAAC,MAAM,CACd,CAAC,GAAG,EAAE,GAAG,KAAI;YACT,IAAI,GAAG,IAAI,GAAG;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACnC,YAAA,OAAO,GAAG;QACd,CAAC,EACD,EAAgB,CACnB;IACL;AAEA;;;;;;;;;;;;;;AAcG;IACI,IAAI,CACP,GAAM,EACN,IAAS,EAAA;AAET,QAAA,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,OAAO,MAAoB;IAC/B;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,OAAO,CAAC,GAAW,EAAA;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;IACxC;AAEA;;;;;;;;;AASG;AACI,IAAA,aAAa,CAChB,GAA4B,EAC5B,SAAA,GAAoB,GAAG,EAAA;QAEvB,MAAM,MAAM,GAA4B,EAAE;QAE1C,MAAM,OAAO,GAAG,CAAC,OAAY,EAAE,IAAA,GAAe,EAAE,KAAI;AAChD,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChD,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAA,EAAG,IAAI,CAAA,EAAG,SAAS,GAAG,GAAG,CAAA,CAAE,GAAG,GAAG;AACxD,gBAAA,IACI,KAAK;oBACL,OAAO,KAAK,KAAK,QAAQ;AACzB,oBAAA,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAC/B;AACE,oBAAA,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC3B;qBAAO;AACH,oBAAA,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK;gBAC3B;YACJ;AACJ,QAAA,CAAC;QAED,OAAO,CAAC,GAAG,CAAC;AACZ,QAAA,OAAO,MAAM;IACjB;AAEA;;;;;;;;;AASG;AACI,IAAA,KAAK,CAAI,IAAY,EAAE,QAAA,GAAqB,IAAI,EAAA;AACnD,QAAA,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B;AAAE,QAAA,MAAM;AACJ,YAAA,OAAO,QAAQ;QACnB;IACJ;AACH;;;;"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **StringUtils — XyPriss String Utilities**
|
|
3
|
+
*/
|
|
4
|
+
class StringUtils {
|
|
5
|
+
/**
|
|
6
|
+
* **Generate a Random String**
|
|
7
|
+
*
|
|
8
|
+
* Generates a pseudo-random character sequence of a specified length.
|
|
9
|
+
* Uses alphanumeric characters (A-Z, a-z, 0-9).
|
|
10
|
+
*
|
|
11
|
+
* @param length - The desired length of the string (default: `10`).
|
|
12
|
+
* @returns A random alphanumeric string.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* utils.randomString(8); // "a7B2k9Xz"
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
randomString(length = 10) {
|
|
20
|
+
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
21
|
+
let result = "";
|
|
22
|
+
for (let i = 0; i < length; i++) {
|
|
23
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* **Slugify a String**
|
|
29
|
+
*
|
|
30
|
+
* Converts a string into a URL-friendly "slug" by lowering case,
|
|
31
|
+
* removing non-alphanumeric characters, and replacing spaces with hyphens.
|
|
32
|
+
*
|
|
33
|
+
* @param text - The string to slugify.
|
|
34
|
+
* @returns The URL-friendly slug.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* utils.slugify("Hello World!"); // "hello-world"
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
slugify(text) {
|
|
42
|
+
return text
|
|
43
|
+
.toLowerCase()
|
|
44
|
+
.trim()
|
|
45
|
+
.replace(/[^\w\s-]/g, "")
|
|
46
|
+
.replace(/[\s_-]+/g, "-")
|
|
47
|
+
.replace(/^-+|-+$/g, "");
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* **Truncate a String**
|
|
51
|
+
*
|
|
52
|
+
* Shortens a string to a specified length and appends a suffix (default: `...`)
|
|
53
|
+
* if the original string was longer than the limit.
|
|
54
|
+
*
|
|
55
|
+
* @param text - The string to truncate.
|
|
56
|
+
* @param maxLength - Maximum length including the suffix.
|
|
57
|
+
* @param suffix - The string to append (default: `"..."`).
|
|
58
|
+
* @returns The truncated string.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* utils.truncate("Very long sentence", 10); // "Very lo..."
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
truncate(text, maxLength, suffix = "...") {
|
|
66
|
+
if (text.length <= maxLength)
|
|
67
|
+
return text;
|
|
68
|
+
return text.substring(0, maxLength - suffix.length) + suffix;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* **Capitalize a String**
|
|
72
|
+
*
|
|
73
|
+
* Uppercases the first character of the string.
|
|
74
|
+
*
|
|
75
|
+
* @param text - The string to capitalize.
|
|
76
|
+
* @returns The capitalized string.
|
|
77
|
+
*/
|
|
78
|
+
capitalize(text) {
|
|
79
|
+
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* **Convert to camelCase**
|
|
83
|
+
*
|
|
84
|
+
* Converts hyphen-separated, underscore-separated, or space-separated
|
|
85
|
+
* strings into camelCase.
|
|
86
|
+
*
|
|
87
|
+
* @param text - The string to convert.
|
|
88
|
+
* @returns The camelCase string.
|
|
89
|
+
*/
|
|
90
|
+
toCamelCase(text) {
|
|
91
|
+
return text
|
|
92
|
+
.replace(/([-_ ][a-z])/gi, ($1) => $1.toUpperCase().replace(/[-_ ]/g, ""))
|
|
93
|
+
.replace(/^[A-Z]/, (first) => first.toLowerCase());
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* **Pad a String**
|
|
97
|
+
*
|
|
98
|
+
* Adds padding characters to the start or end of a string until it
|
|
99
|
+
* reaches the target length.
|
|
100
|
+
*
|
|
101
|
+
* @param text - The source string.
|
|
102
|
+
* @param length - Target length.
|
|
103
|
+
* @param char - Padding character (default: `" "`).
|
|
104
|
+
* @param position - Whether to pad at `"start"` or `"end"`.
|
|
105
|
+
* @returns The padded string.
|
|
106
|
+
*/
|
|
107
|
+
pad(text, length, char = " ", position = "start") {
|
|
108
|
+
return position === "start"
|
|
109
|
+
? text.padStart(length, char)
|
|
110
|
+
: text.padEnd(length, char);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* **Count Word/Substring Occurrences**
|
|
114
|
+
*
|
|
115
|
+
* Returns the number of times a specific word or substring appears.
|
|
116
|
+
*
|
|
117
|
+
* @param text - The body of text to search.
|
|
118
|
+
* @param word - The substring to look for.
|
|
119
|
+
* @param caseSensitive - Whether to respect case (default: `false`).
|
|
120
|
+
* @returns The number of occurrences.
|
|
121
|
+
*/
|
|
122
|
+
countOccurrences(text, word, caseSensitive = false) {
|
|
123
|
+
const flags = caseSensitive ? "g" : "gi";
|
|
124
|
+
const escaped = word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
125
|
+
return (text.match(new RegExp(escaped, flags)) || []).length;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* **toQueryString**
|
|
129
|
+
*
|
|
130
|
+
* Serializes a flat record into a URL-encoded query string format.
|
|
131
|
+
*
|
|
132
|
+
* @param params The object to serialize.
|
|
133
|
+
* @returns The query string.
|
|
134
|
+
*/
|
|
135
|
+
toQueryString(params) {
|
|
136
|
+
return Object.entries(params)
|
|
137
|
+
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
|
|
138
|
+
.join("&");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export { StringUtils };
|
|
143
|
+
//# sourceMappingURL=StringUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringUtils.js","sources":["../../../../../src/xhsc/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;AAEG;MACU,WAAW,CAAA;AACpB;;;;;;;;;;;;;AAaG;IACI,YAAY,CAAC,SAAiB,EAAE,EAAA;QACnC,MAAM,KAAK,GACP,gEAAgE;QACpE,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE;AACA,QAAA,OAAO,MAAM;IACjB;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,OAAO,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO;AACF,aAAA,WAAW;AACX,aAAA,IAAI;AACJ,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE;AACvB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG;AACvB,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IAChC;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,QAAQ,CACX,IAAY,EACZ,SAAiB,EACjB,SAAiB,KAAK,EAAA;AAEtB,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI;AACzC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM;IAChE;AAEA;;;;;;;AAOG;AACI,IAAA,UAAU,CAAC,IAAY,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD;AAEA;;;;;;;;AAQG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;AAC3B,QAAA,OAAO;AACF,aAAA,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAC1B,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAEzC,aAAA,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D;AAEA;;;;;;;;;;;AAWG;IACI,GAAG,CACN,IAAY,EACZ,MAAc,EACd,IAAA,GAAe,GAAG,EAClB,QAAA,GAA4B,OAAO,EAAA;QAEnC,OAAO,QAAQ,KAAK;cACd,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;cAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IACnC;AAEA;;;;;;;;;AASG;AACI,IAAA,gBAAgB,CACnB,IAAY,EACZ,IAAY,EACZ,gBAAyB,KAAK,EAAA;QAE9B,MAAM,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AAC3D,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;IAChE;AAEA;;;;;;;AAOG;AACI,IAAA,aAAa,CAAC,MAA+B,EAAA;AAChD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM;aACvB,GAAG,CACA,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACT,CAAA,EAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE;aAExE,IAAI,CAAC,GAAG,CAAC;IAClB;AACH;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **ValidationUtils — XyPriss Validation Utilities**
|
|
3
|
+
*/
|
|
4
|
+
class ValidationUtils {
|
|
5
|
+
/**
|
|
6
|
+
* **email**
|
|
7
|
+
*
|
|
8
|
+
* Performs semantic validation on an email address string.
|
|
9
|
+
*
|
|
10
|
+
* @param email The email string to validate.
|
|
11
|
+
* @returns `true` if valid, `false` otherwise.
|
|
12
|
+
*/
|
|
13
|
+
email(email) {
|
|
14
|
+
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* **url**
|
|
18
|
+
*
|
|
19
|
+
* Validates a URL string using the `strulink` RFC-compliant URI parser.
|
|
20
|
+
*
|
|
21
|
+
* @param url The URL string to validate.
|
|
22
|
+
* @returns `true` if valid, `false` otherwise.
|
|
23
|
+
*/
|
|
24
|
+
url(url) {
|
|
25
|
+
try {
|
|
26
|
+
new URL(String(url));
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* **nullish**
|
|
35
|
+
*
|
|
36
|
+
* A type guard that determines if a value is either `null` or `undefined`.
|
|
37
|
+
*
|
|
38
|
+
* @param value The value to check.
|
|
39
|
+
* @returns `true` if null or undefined.
|
|
40
|
+
*/
|
|
41
|
+
nullish(value) {
|
|
42
|
+
return value === null || value === undefined;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { ValidationUtils };
|
|
47
|
+
//# sourceMappingURL=ValidationUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationUtils.js","sources":["../../../../../src/xhsc/utils/ValidationUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;AAEG;MACU,eAAe,CAAA;AACxB;;;;;;;AAOG;AACI,IAAA,KAAK,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;IACnD;AAEA;;;;;;;AAOG;AACI,IAAA,GAAG,CAAC,GAAiB,EAAA;AACxB,QAAA,IAAI;AACA,YAAA,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,YAAA,OAAO,IAAI;QACf;AAAE,QAAA,MAAM;AACJ,YAAA,OAAO,KAAK;QAChB;IACJ;AAEA;;;;;;;AAOG;AACI,IAAA,OAAO,CAAC,KAAc,EAAA;AACzB,QAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;IAChD;AACH;;;;"}
|
package/dist/esm/src/xhsc.js
CHANGED
|
@@ -5,8 +5,9 @@ import { DotEnvLoader } from './utils/DotEnvLoader.js';
|
|
|
5
5
|
import { XY_ENV_STORE_KEY, XY_XHSC_REGISTER_FS } from './xhsc/api/env/env.js';
|
|
6
6
|
import { isProjectRoot, getCallerProjectRoot, loadXyConfig } from './utils/ProjectDiscovery.js';
|
|
7
7
|
import { logger } from './shared/logger/Logger.js';
|
|
8
|
-
import {
|
|
8
|
+
import { generateXUserTmpDir } from './plugins/const/XyprissTempDir.js';
|
|
9
9
|
|
|
10
|
+
// import { XyprissTempDir } from "./plugins/const/XyprissTempDir";
|
|
10
11
|
/**
|
|
11
12
|
* **XyPriss System Variables (`__sys__`)**
|
|
12
13
|
*
|
|
@@ -85,9 +86,9 @@ class XyPrissXHSC extends XyPrissFS {
|
|
|
85
86
|
return instance;
|
|
86
87
|
}
|
|
87
88
|
else {
|
|
88
|
-
//
|
|
89
|
-
const voidPath = path__default.join(
|
|
90
|
-
this.fs.
|
|
89
|
+
// Void Sandbox — plugin non autorisé dans la config
|
|
90
|
+
const voidPath = path__default.join(generateXUserTmpDir(), "void", "sandbox", pluginId.replace(/[^a-zA-Z0-9-]/g, "_"));
|
|
91
|
+
this.fs.mkdir(voidPath, { parents: true });
|
|
91
92
|
logger.warn("security", `Plugin ${pluginId} requested workspace but was not explicitly authorized in config. Assigned implicit Void Sandbox (${voidPath}).`);
|
|
92
93
|
return undefined;
|
|
93
94
|
}
|
|
@@ -227,5 +228,5 @@ if (typeof globalThis !== "undefined") {
|
|
|
227
228
|
/** Global singleton instance of the system. */
|
|
228
229
|
const __sys__ = globalThis.__sys__;
|
|
229
230
|
|
|
230
|
-
export { XyPrissXHSC, __sys__ };
|
|
231
|
+
export { XyPrissXHSC, __sys__, __sys__ as localSysApi };
|
|
231
232
|
//# sourceMappingURL=xhsc.js.map
|
package/dist/esm/src/xhsc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhsc.js","sources":["../../../src/xhsc.ts"],"sourcesContent":[null],"names":["fs","path"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"xhsc.js","sources":["../../../src/xhsc.ts"],"sourcesContent":[null],"names":["fs","path"],"mappings":"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"}
|