xypriss 4.5.0 → 4.6.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 +3 -0
- package/dist/cjs/src/config.js +18 -0
- package/dist/cjs/src/config.js.map +1 -1
- package/dist/cjs/src/const.js +310 -0
- package/dist/cjs/src/const.js.map +1 -0
- package/dist/cjs/src/index.js +8 -13
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/sys.js +16 -0
- package/dist/cjs/src/sys.js.map +1 -1
- package/dist/esm/src/config.js +18 -1
- package/dist/esm/src/config.js.map +1 -1
- package/dist/esm/src/const.js +307 -0
- package/dist/esm/src/const.js.map +1 -0
- package/dist/esm/src/index.js +4 -12
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/sys.js +16 -1
- package/dist/esm/src/sys.js.map +1 -1
- package/dist/index.d.ts +347 -138
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -109,6 +109,9 @@ server.start(() => {
|
|
|
109
109
|
|
|
110
110
|
- **[Routing](./docs/ROUTING.md)** - Routes, parameters, wildcards, and middleware
|
|
111
111
|
- **[XJson API](./docs/XJSON_API.md)** - Advanced JSON serialization for BigInt and large data
|
|
112
|
+
- **[Global APIs](./docs/GLOBAL_APIS.md)** - Runtime globals overview
|
|
113
|
+
- **[Configuration API (**cfg**)](./docs/CFG_API.md)** - Deep dive into the configuration manager
|
|
114
|
+
- **[Immutability API (**const**)](./docs/CONST_API.md)** - Deep dive into the immutability engine
|
|
112
115
|
- **[File Upload](./docs/FILE_UPLOAD_GUIDE.md)** - Complete file upload guide with runtime compatibility
|
|
113
116
|
- **[Security](./docs/SECURITY.md)** - CORS, CSRF, rate limiting, and security best practices
|
|
114
117
|
- **[Multi-Server](./docs/MULTI_SERVER.md)** - Running multiple server instances
|
package/dist/cjs/src/config.js
CHANGED
|
@@ -142,7 +142,14 @@ class ConfigurationManager {
|
|
|
142
142
|
*/
|
|
143
143
|
static merge(config) {
|
|
144
144
|
const instance = ConfigurationManager.getInstance();
|
|
145
|
+
// Check if the incoming config is marked as immutable
|
|
146
|
+
const shouldBeImmutable = config?.__isXyPrissImmutable;
|
|
145
147
|
instance.config = ConfigurationManager.deepMerge(instance.config, config);
|
|
148
|
+
// If it should be immutable, wrap it using the global __const__.$make
|
|
149
|
+
if (shouldBeImmutable &&
|
|
150
|
+
typeof globalThis.__const__ !== "undefined") {
|
|
151
|
+
instance.config = globalThis.__const__.$make(instance.config, "Configs");
|
|
152
|
+
}
|
|
146
153
|
instance.initialized = true;
|
|
147
154
|
}
|
|
148
155
|
/**
|
|
@@ -190,7 +197,18 @@ class ConfigurationManager {
|
|
|
190
197
|
delete instance.config[key];
|
|
191
198
|
}
|
|
192
199
|
}
|
|
200
|
+
// Self-register global __cfg__ if in a global environment
|
|
201
|
+
if (typeof globalThis !== "undefined") {
|
|
202
|
+
globalThis.__cfg__ =
|
|
203
|
+
globalThis.__cfg__ || ConfigurationManager;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Default instance for easy access
|
|
207
|
+
*/
|
|
208
|
+
const __cfg__ = globalThis
|
|
209
|
+
.__cfg__;
|
|
193
210
|
|
|
194
211
|
exports.CM = ConfigurationManager;
|
|
195
212
|
exports.Configs = ConfigurationManager;
|
|
213
|
+
exports.__cfg__ = __cfg__;
|
|
196
214
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS"],"mappings":"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"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**************************************************************************************************************************************************************
|
|
4
|
+
* This code contains proprietary source code from NEHONIX
|
|
5
|
+
*
|
|
6
|
+
* @author Nehonix
|
|
7
|
+
* @license NOSL
|
|
8
|
+
* @version v1.0
|
|
9
|
+
* @see {@link https://dll.nehonix.com/licenses/NOSL}
|
|
10
|
+
*
|
|
11
|
+
* Copyright (c) 2025 Nehonix. All rights reserved.
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
* This License governs the use, modification, and distribution of software provided by NEHONIX under its open source projects.
|
|
15
|
+
* NEHONIX is committed to fostering collaborative innovation while strictly protecting its intellectual property rights.
|
|
16
|
+
* Violation of any term of this License will result in immediate termination of all granted rights and may subject the violator to legal action.
|
|
17
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
|
19
|
+
* IN NO EVENT SHALL NEHONIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE
|
|
20
|
+
* OR INABILITY TO USE THE SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
21
|
+
************************************************************************************************************************************************************** */
|
|
22
|
+
/**
|
|
23
|
+
* XyPriss Constant Variables Class
|
|
24
|
+
*
|
|
25
|
+
* Provides a mechanism to store immutable values that cannot be changed once set.
|
|
26
|
+
* This is useful for protecting critical application constants from being
|
|
27
|
+
* modified by plugins or other modules at runtime.
|
|
28
|
+
*
|
|
29
|
+
* @class XyPrissConst
|
|
30
|
+
* @version 2.0.0
|
|
31
|
+
*/
|
|
32
|
+
class XyPrissConst {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.constants = new Map();
|
|
35
|
+
this.immutableCache = new WeakMap();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Make a value deeply immutable using Proxy protection.
|
|
39
|
+
* This ACTIVELY blocks any modification attempts with clear error messages.
|
|
40
|
+
* Works with objects, arrays, Maps, Sets, and nested structures.
|
|
41
|
+
*
|
|
42
|
+
* @template T - Type of the value to freeze
|
|
43
|
+
* @param {T} value - The value to make immutable
|
|
44
|
+
* @param {string} [path] - Internal path tracking for error messages
|
|
45
|
+
* @returns {T} The deeply protected immutable value
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const config = __const__.$make({
|
|
50
|
+
* server: { port: 8080, host: 'localhost' },
|
|
51
|
+
* features: ['auth', 'logging']
|
|
52
|
+
* });
|
|
53
|
+
* config.server.port = 9000; // ❌ THROWS ERROR IMMEDIATELY
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
$make(value, path = "root") {
|
|
57
|
+
if (value === null || value === undefined) {
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
const type = typeof value;
|
|
61
|
+
// Primitives are immutable by nature
|
|
62
|
+
if (type !== "object" && type !== "function") {
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
// Check if it's already one of our immutable proxies
|
|
66
|
+
if (value?.__isXyPrissImmutable) {
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
// Check cache to avoid re-wrapping
|
|
70
|
+
if (this.immutableCache.has(value)) {
|
|
71
|
+
return this.immutableCache.get(value);
|
|
72
|
+
}
|
|
73
|
+
// Freeze the original object
|
|
74
|
+
Object.freeze(value);
|
|
75
|
+
let proxied;
|
|
76
|
+
// Handle arrays
|
|
77
|
+
if (Array.isArray(value)) {
|
|
78
|
+
const frozenArray = value.map((item, index) => this.$make(item, `${path}[${index}]`));
|
|
79
|
+
proxied = new Proxy(frozenArray, {
|
|
80
|
+
get: (target, prop) => {
|
|
81
|
+
if (prop === "__isXyPrissImmutable")
|
|
82
|
+
return true;
|
|
83
|
+
return target[prop];
|
|
84
|
+
},
|
|
85
|
+
set: (target, prop, val) => {
|
|
86
|
+
throw new Error(`[XyPrissConst] Cannot modify immutable array at "${path}.${String(prop)}". ` +
|
|
87
|
+
`Attempted to set value: ${JSON.stringify(val)}`);
|
|
88
|
+
},
|
|
89
|
+
deleteProperty: (target, prop) => {
|
|
90
|
+
throw new Error(`[XyPrissConst] Cannot delete property "${String(prop)}" from immutable array at "${path}"`);
|
|
91
|
+
},
|
|
92
|
+
defineProperty: (target, prop) => {
|
|
93
|
+
throw new Error(`[XyPrissConst] Cannot define property "${String(prop)}" on immutable array at "${path}"`);
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
this.immutableCache.set(value, proxied);
|
|
97
|
+
return proxied;
|
|
98
|
+
}
|
|
99
|
+
// Handle Maps
|
|
100
|
+
if (value instanceof Map) {
|
|
101
|
+
const frozenMap = new Map();
|
|
102
|
+
value.forEach((v, k) => {
|
|
103
|
+
frozenMap.set(this.$make(k, `${path}<key>`), this.$make(v, `${path}.get("${k}")`));
|
|
104
|
+
});
|
|
105
|
+
proxied = new Proxy(frozenMap, {
|
|
106
|
+
get: (target, prop) => {
|
|
107
|
+
if (prop === "__isXyPrissImmutable")
|
|
108
|
+
return true;
|
|
109
|
+
if (prop === "set" ||
|
|
110
|
+
prop === "delete" ||
|
|
111
|
+
prop === "clear") {
|
|
112
|
+
return () => {
|
|
113
|
+
throw new Error(`[XyPrissConst] Cannot call Map.${String(prop)}() on immutable Map at "${path}"`);
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return target[prop];
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
this.immutableCache.set(value, proxied);
|
|
120
|
+
return proxied;
|
|
121
|
+
}
|
|
122
|
+
// Handle Sets
|
|
123
|
+
if (value instanceof Set) {
|
|
124
|
+
const frozenSet = new Set();
|
|
125
|
+
value.forEach((item) => {
|
|
126
|
+
frozenSet.add(this.$make(item, `${path}<item>`));
|
|
127
|
+
});
|
|
128
|
+
proxied = new Proxy(frozenSet, {
|
|
129
|
+
get: (target, prop) => {
|
|
130
|
+
if (prop === "__isXyPrissImmutable")
|
|
131
|
+
return true;
|
|
132
|
+
if (prop === "add" ||
|
|
133
|
+
prop === "delete" ||
|
|
134
|
+
prop === "clear") {
|
|
135
|
+
return () => {
|
|
136
|
+
throw new Error(`[XyPrissConst] Cannot call Set.${String(prop)}() on immutable Set at "${path}"`);
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return target[prop];
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
this.immutableCache.set(value, proxied);
|
|
143
|
+
return proxied;
|
|
144
|
+
}
|
|
145
|
+
// Handle Dates - return as is (already immutable)
|
|
146
|
+
if (value instanceof Date) {
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
// Handle regular objects and class instances
|
|
150
|
+
const frozenObj = {};
|
|
151
|
+
const proto = Object.getPrototypeOf(value);
|
|
152
|
+
// Copy all properties recursively
|
|
153
|
+
Object.getOwnPropertyNames(value).forEach((prop) => {
|
|
154
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, prop);
|
|
155
|
+
if (descriptor && descriptor.value !== undefined) {
|
|
156
|
+
if (typeof descriptor.value === "function") {
|
|
157
|
+
// Keep methods as-is
|
|
158
|
+
frozenObj[prop] = descriptor.value;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// Recursively protect nested values
|
|
162
|
+
frozenObj[prop] = this.$make(descriptor.value, `${path}.${prop}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
// Copy symbol properties
|
|
167
|
+
Object.getOwnPropertySymbols(value).forEach((sym) => {
|
|
168
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, sym);
|
|
169
|
+
if (descriptor && descriptor.value !== undefined) {
|
|
170
|
+
if (typeof descriptor.value !== "function") {
|
|
171
|
+
frozenObj[sym] = this.$make(descriptor.value, `${path}[Symbol]`);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
frozenObj[sym] = descriptor.value;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
// Set the prototype
|
|
179
|
+
Object.setPrototypeOf(frozenObj, proto);
|
|
180
|
+
Object.freeze(frozenObj);
|
|
181
|
+
// Wrap in Proxy for active protection
|
|
182
|
+
proxied = new Proxy(frozenObj, {
|
|
183
|
+
get: (target, prop) => {
|
|
184
|
+
if (prop === "__isXyPrissImmutable")
|
|
185
|
+
return true;
|
|
186
|
+
return target[prop];
|
|
187
|
+
},
|
|
188
|
+
set: (target, prop, val) => {
|
|
189
|
+
const errorMsg = `[XyPrissConst] Cannot modify immutable property "${path}.${String(prop)}". ` + `Attempted to set value: ${JSON.stringify(val)}`;
|
|
190
|
+
throw new Error(errorMsg);
|
|
191
|
+
},
|
|
192
|
+
deleteProperty: (target, prop) => {
|
|
193
|
+
throw new Error(`[XyPrissConst] Cannot delete immutable property "${path}.${String(prop)}"`);
|
|
194
|
+
},
|
|
195
|
+
defineProperty: (target, prop) => {
|
|
196
|
+
throw new Error(`[XyPrissConst] Cannot define property "${String(prop)}" on immutable object at "${path}"`);
|
|
197
|
+
},
|
|
198
|
+
setPrototypeOf: () => {
|
|
199
|
+
throw new Error(`[XyPrissConst] Cannot change prototype of immutable object at "${path}"`);
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
this.immutableCache.set(value, proxied);
|
|
203
|
+
return proxied;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Define a new constant.
|
|
207
|
+
* Throws an error if the constant is already defined.
|
|
208
|
+
* Automatically makes the value deeply immutable.
|
|
209
|
+
*
|
|
210
|
+
* @param {string} key - The unique identifier for the constant
|
|
211
|
+
* @param {any} value - The value to store (will be made immutable)
|
|
212
|
+
* @throws {Error} If the key already exists
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* __const__.$set('APP_CONFIG', {
|
|
217
|
+
* database: { host: 'localhost', port: 5432 }
|
|
218
|
+
* });
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
$set(key, value) {
|
|
222
|
+
if (this.constants.has(key)) {
|
|
223
|
+
throw new Error(`[XyPrissConst] Cannot redefine constant "${key}". Constants are immutable.`);
|
|
224
|
+
}
|
|
225
|
+
// Make the value deeply immutable before storing
|
|
226
|
+
const immutableValue = this.$make(value, key);
|
|
227
|
+
this.constants.set(key, immutableValue);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Retrieve a constant value.
|
|
231
|
+
*
|
|
232
|
+
* @template T - Expected type of the constant
|
|
233
|
+
* @param {string} key - The identifier of the constant
|
|
234
|
+
* @param {T} [defaultValue] - Optional fallback value if not found
|
|
235
|
+
* @returns {T} The constant value or default
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* const appId = __const__.$get('APP_ID');
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
$get(key, defaultValue) {
|
|
243
|
+
return (this.constants.has(key) ? this.constants.get(key) : defaultValue);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Check if a constant is defined.
|
|
247
|
+
*
|
|
248
|
+
* @param {string} key - The identifier to check
|
|
249
|
+
* @returns {boolean} True if the constant exists
|
|
250
|
+
*/
|
|
251
|
+
$has(key) {
|
|
252
|
+
return this.constants.has(key);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Export all constants as a plain object.
|
|
256
|
+
* Note: Returns a frozen snapshot, not the proxy-protected originals.
|
|
257
|
+
*
|
|
258
|
+
* @returns {Record<string, any>}
|
|
259
|
+
*/
|
|
260
|
+
$toJSON() {
|
|
261
|
+
const obj = Object.fromEntries(this.constants);
|
|
262
|
+
return Object.freeze(obj);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Delete a constant (use with extreme caution).
|
|
266
|
+
* This is primarily for testing purposes.
|
|
267
|
+
*
|
|
268
|
+
* @param {string} key - The identifier to delete
|
|
269
|
+
* @returns {boolean} True if the constant was deleted
|
|
270
|
+
*/
|
|
271
|
+
$delete(key) {
|
|
272
|
+
return this.constants.delete(key);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Clear all constants (use with extreme caution).
|
|
276
|
+
* This is primarily for testing purposes.
|
|
277
|
+
*/
|
|
278
|
+
$clear() {
|
|
279
|
+
this.constants.clear();
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get the total number of constants stored.
|
|
283
|
+
*
|
|
284
|
+
* @returns {number} The count of constants
|
|
285
|
+
*/
|
|
286
|
+
$size() {
|
|
287
|
+
return this.constants.size;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* List all constant keys.
|
|
291
|
+
*
|
|
292
|
+
* @returns {string[]} Array of all constant keys
|
|
293
|
+
*/
|
|
294
|
+
$keys() {
|
|
295
|
+
return Array.from(this.constants.keys());
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// Self-register global __const__ if in a global environment
|
|
299
|
+
if (typeof globalThis !== "undefined") {
|
|
300
|
+
globalThis.__const__ =
|
|
301
|
+
globalThis.__const__ || new XyPrissConst();
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Default instance for easy access
|
|
305
|
+
*/
|
|
306
|
+
const __const__ = globalThis.__const__;
|
|
307
|
+
|
|
308
|
+
exports.XyPrissConst = XyPrissConst;
|
|
309
|
+
exports.__const__ = __const__;
|
|
310
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sources":["../../../src/const.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/cjs/src/index.js
CHANGED
|
@@ -4,12 +4,13 @@ var fileUpload = require('./file-upload.js');
|
|
|
4
4
|
var Router$1 = require('./server/routing/Router.js');
|
|
5
5
|
var ConfigLoader = require('./server/utils/ConfigLoader.js');
|
|
6
6
|
var sys = require('./sys.js');
|
|
7
|
+
var config = require('./config.js');
|
|
8
|
+
var _const = require('./const.js');
|
|
7
9
|
var ServerFactory = require('./server/ServerFactory.js');
|
|
8
10
|
var smartRoutes = require('./server/components/fastapi/smart-routes.js');
|
|
9
11
|
var CacheFactory = require('./cache/CacheFactory.js');
|
|
10
12
|
var securityMiddleware = require('./middleware/security-middleware.js');
|
|
11
13
|
var performanceMonitor = require('./server/optimization/performance-monitor.js');
|
|
12
|
-
var config = require('./config.js');
|
|
13
14
|
var XJsonResponseHandler = require('./middleware/XJsonResponseHandler.js');
|
|
14
15
|
var index = require('./plugins/modules/index.js');
|
|
15
16
|
var PluginAPI = require('./plugins/api/PluginAPI.js');
|
|
@@ -62,18 +63,9 @@ var NetworkPluginUtils = require('./plugins/modules/network/utils/NetworkPluginU
|
|
|
62
63
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
63
64
|
* SOFTWARE.
|
|
64
65
|
***************************************************************************** */
|
|
65
|
-
//
|
|
66
|
+
// Load and apply system configuration from xypriss.config.json
|
|
66
67
|
if (typeof globalThis !== "undefined") {
|
|
67
|
-
// Load and apply system configuration from xypriss.config.json
|
|
68
68
|
ConfigLoader.configLoader.loadAndApplySysConfig();
|
|
69
|
-
const defaultPort = parseInt(process.env["PORT"] || "3000");
|
|
70
|
-
globalThis.__sys__ =
|
|
71
|
-
globalThis.__sys__ ||
|
|
72
|
-
new sys.XyPrissSys({
|
|
73
|
-
__port__: defaultPort,
|
|
74
|
-
__PORT__: defaultPort,
|
|
75
|
-
__env__: process.env["NODE_ENV"] || "development",
|
|
76
|
-
});
|
|
77
69
|
}
|
|
78
70
|
/**
|
|
79
71
|
* Default router instance for quick start
|
|
@@ -90,6 +82,11 @@ exports.FLA = fileUpload.FileUploadAPI;
|
|
|
90
82
|
exports.FileUploadAPI = fileUpload.FileUploadAPI;
|
|
91
83
|
exports.Upload = fileUpload.Upload;
|
|
92
84
|
exports.XyPrissRouter = Router$1.XyPrissRouter;
|
|
85
|
+
exports.__sys__ = sys.__sys__;
|
|
86
|
+
exports.CM = config.Configs;
|
|
87
|
+
exports.Configs = config.Configs;
|
|
88
|
+
exports.__cfg__ = config.__cfg__;
|
|
89
|
+
exports.__const__ = _const.__const__;
|
|
93
90
|
exports.createCacheMiddleware = ServerFactory.createCacheMiddleware;
|
|
94
91
|
exports.createServer = ServerFactory.createServer;
|
|
95
92
|
exports.createServerInstance = ServerFactory.createServerInstance;
|
|
@@ -97,8 +94,6 @@ exports.Route = smartRoutes.Route;
|
|
|
97
94
|
exports.createOptimalCache = CacheFactory.createOptimalCache;
|
|
98
95
|
exports.SecurityMiddleware = securityMiddleware.SecurityMiddleware;
|
|
99
96
|
exports.PerformanceMonitor = performanceMonitor.PerformanceMonitor;
|
|
100
|
-
exports.CM = config.Configs;
|
|
101
|
-
exports.Configs = config.Configs;
|
|
102
97
|
exports.XJsonResponseHandler = XJsonResponseHandler.XJsonResponseHandler;
|
|
103
98
|
exports.DEFAULT_PLUGIN_CONFIG = index.DEFAULT_PLUGIN_CONFIG;
|
|
104
99
|
exports.PERFORMANCE_TARGETS = index.PERFORMANCE_TARGETS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["configLoader","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["configLoader","XyPrissRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBiF;AAWjF;AACA,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;IACnCA,yBAAY,CAAC,qBAAqB,EAAE,CAAC;AACzC,CAAC;AA4CD;;AAEG;SACa,MAAM,GAAA;IAClB,OAAO,IAAIC,sBAAa,CAAC;AACrB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/src/sys.js
CHANGED
|
@@ -608,6 +608,22 @@ class XyPrissSys {
|
|
|
608
608
|
return new XyPrissSys(this.$toJSON());
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
|
+
// Self-register global __sys__ if in a global environment
|
|
612
|
+
if (typeof globalThis !== "undefined") {
|
|
613
|
+
const defaultPort = parseInt(process.env["PORT"] || "3000");
|
|
614
|
+
globalThis.__sys__ =
|
|
615
|
+
globalThis.__sys__ ||
|
|
616
|
+
new XyPrissSys({
|
|
617
|
+
__port__: defaultPort,
|
|
618
|
+
__PORT__: defaultPort,
|
|
619
|
+
__env__: process.env["NODE_ENV"] || "development",
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Default instance for easy access
|
|
624
|
+
*/
|
|
625
|
+
const __sys__ = globalThis.__sys__;
|
|
611
626
|
|
|
612
627
|
exports.XyPrissSys = XyPrissSys;
|
|
628
|
+
exports.__sys__ = __sys__;
|
|
613
629
|
//# sourceMappingURL=sys.js.map
|
package/dist/cjs/src/sys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sys.js","sources":["../../../src/sys.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sys.js","sources":["../../../src/sys.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/src/config.js
CHANGED
|
@@ -140,7 +140,14 @@ class ConfigurationManager {
|
|
|
140
140
|
*/
|
|
141
141
|
static merge(config) {
|
|
142
142
|
const instance = ConfigurationManager.getInstance();
|
|
143
|
+
// Check if the incoming config is marked as immutable
|
|
144
|
+
const shouldBeImmutable = config?.__isXyPrissImmutable;
|
|
143
145
|
instance.config = ConfigurationManager.deepMerge(instance.config, config);
|
|
146
|
+
// If it should be immutable, wrap it using the global __const__.$make
|
|
147
|
+
if (shouldBeImmutable &&
|
|
148
|
+
typeof globalThis.__const__ !== "undefined") {
|
|
149
|
+
instance.config = globalThis.__const__.$make(instance.config, "Configs");
|
|
150
|
+
}
|
|
144
151
|
instance.initialized = true;
|
|
145
152
|
}
|
|
146
153
|
/**
|
|
@@ -188,6 +195,16 @@ class ConfigurationManager {
|
|
|
188
195
|
delete instance.config[key];
|
|
189
196
|
}
|
|
190
197
|
}
|
|
198
|
+
// Self-register global __cfg__ if in a global environment
|
|
199
|
+
if (typeof globalThis !== "undefined") {
|
|
200
|
+
globalThis.__cfg__ =
|
|
201
|
+
globalThis.__cfg__ || ConfigurationManager;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Default instance for easy access
|
|
205
|
+
*/
|
|
206
|
+
const __cfg__ = globalThis
|
|
207
|
+
.__cfg__;
|
|
191
208
|
|
|
192
|
-
export { ConfigurationManager as CM, ConfigurationManager as Configs };
|
|
209
|
+
export { ConfigurationManager as CM, ConfigurationManager as Configs, __cfg__ };
|
|
193
210
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|