xypriss 9.12.49 → 9.12.52

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.
@@ -1,464 +1,6 @@
1
1
  import { XStringify } from 'xypriss-security';
2
+ import { ObjectWrapper } from './ObjectWrapper.js';
2
3
 
3
- // ---------------------------------------------------------------------------
4
- class ObjectWrapper {
5
- constructor(obj) {
6
- this.current = obj;
7
- }
8
- /**
9
- * **value**
10
- *
11
- * Unwraps and returns the underlying plain object held by this wrapper.
12
- * Call this at the end of a chain to get back a normal object.
13
- *
14
- * @returns The current wrapped object.
15
- *
16
- * @example
17
- * ```ts
18
- * const obj = __sys__.utils.obj.of({ a: 1 });
19
- * obj.value(); // { a: 1 }
20
- * ```
21
- */
22
- value() {
23
- return this.current;
24
- }
25
- /**
26
- * **raw**
27
- *
28
- * Alias for {@link value}. Useful when `value` reads awkwardly in context.
29
- *
30
- * @returns The current wrapped object.
31
- */
32
- raw() {
33
- return this.current;
34
- }
35
- /**
36
- * **clone**
37
- *
38
- * Deep-clones the wrapped object (via `XStringify`) and continues
39
- * the chain on the cloned copy, leaving the original untouched.
40
- *
41
- * @returns `this`, now wrapping a deep copy of the previous value.
42
- *
43
- * @example
44
- * ```ts
45
- * const source = { nested: { count: 1 } };
46
- * const obj = __sys__.utils.obj.of(source).clone();
47
- * obj.value().nested.count = 99;
48
- * // source.nested.count is still 1
49
- * ```
50
- */
51
- clone() {
52
- this.current = JSON.parse(XStringify(this.current));
53
- return this;
54
- }
55
- /**
56
- * **pick**
57
- *
58
- * Narrows the wrapped object down to only the given keys.
59
- *
60
- * @param keys - The keys to keep.
61
- * @returns `this`, now wrapping only the picked keys.
62
- *
63
- * @example
64
- * ```ts
65
- * __sys__.utils.obj.of({ a: 1, b: 2, c: 3 }).pick(["a", "c"]).value();
66
- * // { a: 1, c: 3 }
67
- * ```
68
- */
69
- pick(keys) {
70
- const result = keys.reduce((acc, key) => {
71
- if (key in this.current)
72
- acc[key] = this.current[key];
73
- return acc;
74
- }, {});
75
- return new ObjectWrapper(result);
76
- }
77
- /**
78
- * **deepPick**
79
- *
80
- * Extracts a subset of the wrapped object using dot-notation paths,
81
- * preserving the original nested structure. Paths that do not exist
82
- * in the object are silently ignored.
83
- *
84
- * @param paths - Dot-notation paths to extract (e.g. `"a.b.c"`).
85
- * @param separator - Path separator (default: `"."`)
86
- * @returns A new wrapper around the extracted nested object.
87
- *
88
- * @example
89
- * ```ts
90
- * const data = {
91
- * user: { name: "Alice", age: 30, password: "secret" },
92
- * meta: { created: "2024-01-01", version: 2 },
93
- * };
94
- *
95
- * __sys__.utils.obj
96
- * .of(data)
97
- * .deepPick(["user.name", "user.age", "meta.version"])
98
- * .value();
99
- * // { user: { name: "Alice", age: 30 }, meta: { version: 2 } }
100
- * ```
101
- */
102
- deepPick(paths, separator) {
103
- const sep = separator ?? ".";
104
- const result = {};
105
- for (const path of paths) {
106
- const parts = path.split(sep);
107
- let src = this.current;
108
- let dst = result;
109
- for (let i = 0; i < parts.length; i++) {
110
- const part = parts[i];
111
- if (src === null || src === undefined || !(part in src)) {
112
- break;
113
- }
114
- if (i === parts.length - 1) {
115
- dst[part] = src[part];
116
- }
117
- else {
118
- if (typeof dst[part] !== "object" ||
119
- dst[part] === null ||
120
- Array.isArray(dst[part])) {
121
- dst[part] = {};
122
- }
123
- dst = dst[part];
124
- src = src[part];
125
- }
126
- }
127
- }
128
- return new ObjectWrapper(result);
129
- }
130
- /**
131
- * **omit**
132
- *
133
- * Removes the given keys from the wrapped object.
134
- *
135
- * @param keys - The keys to remove.
136
- * @returns `this`, now wrapping the object without those keys.
137
- *
138
- * @example
139
- * ```ts
140
- * __sys__.utils.obj.of({ a: 1, b: 2, c: 3 }).omit(["b"]).value();
141
- * // { a: 1, c: 3 }
142
- * ```
143
- */
144
- omit(keys) {
145
- const result = { ...this.current };
146
- keys.forEach((key) => delete result[key]);
147
- return new ObjectWrapper(result);
148
- }
149
- /**
150
- * **isEmpty**
151
- *
152
- * Checks whether the wrapped object has no own enumerable keys.
153
- * This is a terminal read (does not return the wrapper), since it
154
- * yields a boolean rather than an object.
155
- *
156
- * @returns `true` if the object has no own keys.
157
- *
158
- * @example
159
- * ```ts
160
- * __sys__.utils.obj.of({}).isEmpty(); // true
161
- * ```
162
- */
163
- isEmpty() {
164
- return Object.keys(this.current).length === 0;
165
- }
166
- /**
167
- * **flatten**
168
- *
169
- * Collapses the wrapped object's nested structure into flat
170
- * dot-notation (or custom separator) keys.
171
- *
172
- * @param separator - Path separator (default: `"."`).
173
- * @returns A new wrapper around the flattened object.
174
- *
175
- * @example
176
- * ```ts
177
- * __sys__.utils.obj.of({ a: { b: 1 } }).flatten().value();
178
- * // { "a.b": 1 }
179
- * ```
180
- */
181
- flatten(separator = ".") {
182
- const result = {};
183
- const recurse = (current, path = "") => {
184
- for (const [key, val] of Object.entries(current)) {
185
- const newPath = path ? `${path}${separator}${key}` : key;
186
- if (val &&
187
- typeof val === "object" &&
188
- !Array.isArray(val) &&
189
- Object.keys(val).length > 0) {
190
- recurse(val, newPath);
191
- }
192
- else {
193
- result[newPath] = val;
194
- }
195
- }
196
- };
197
- recurse(this.current);
198
- return new ObjectWrapper(result);
199
- }
200
- /**
201
- * **unflatten**
202
- *
203
- * Reverses {@link flatten}, expanding dot-notation (or custom
204
- * separator) keys back into a nested object.
205
- *
206
- * @param separator - Path separator used in the flat keys (default: `"."`).
207
- * @returns A new wrapper around the nested object.
208
- *
209
- * @example
210
- * ```ts
211
- * __sys__.utils.obj.of({ "a.b": 1, "a.c": 2 }).unflatten().value();
212
- * // { a: { b: 1, c: 2 } }
213
- * ```
214
- */
215
- unflatten(separator = ".") {
216
- const result = {};
217
- for (const [flatKey, val] of Object.entries(this.current)) {
218
- const parts = flatKey.split(separator);
219
- let cursor = result;
220
- parts.forEach((part, i) => {
221
- if (i === parts.length - 1) {
222
- cursor[part] = val;
223
- }
224
- else {
225
- if (typeof cursor[part] !== "object" ||
226
- cursor[part] === null) {
227
- cursor[part] = {};
228
- }
229
- cursor = cursor[part];
230
- }
231
- });
232
- }
233
- return new ObjectWrapper(result);
234
- }
235
- /**
236
- * **merge**
237
- *
238
- * Deep-merges one or more source objects into the wrapped object.
239
- * Plain object values are merged recursively; arrays and primitives
240
- * are overwritten by the last source that defines them.
241
- *
242
- * @param sources - One or more partial objects to merge in.
243
- * @returns `this`, now wrapping the merged result.
244
- *
245
- * @example
246
- * ```ts
247
- * __sys__.utils.obj.of({ a: 1, nested: { x: 1 } })
248
- * .merge({ nested: { y: 2 } })
249
- * .value();
250
- * // { a: 1, nested: { x: 1, y: 2 } }
251
- * ```
252
- */
253
- merge(...sources) {
254
- const isPlainObject = (val) => !!val && typeof val === "object" && !Array.isArray(val);
255
- const deepMerge = (target, source) => {
256
- for (const key of Object.keys(source)) {
257
- if (isPlainObject(source[key]) && isPlainObject(target[key])) {
258
- deepMerge(target[key], source[key]);
259
- }
260
- else {
261
- target[key] = source[key];
262
- }
263
- }
264
- return target;
265
- };
266
- this.current = sources.reduce((acc, src) => deepMerge(acc, src), this.current);
267
- return this;
268
- }
269
- /**
270
- * **mapValues**
271
- *
272
- * Transforms every value of the wrapped object using `fn`, keeping
273
- * the same keys.
274
- *
275
- * @param fn - Mapping function receiving `(value, key)`.
276
- * @returns A new wrapper around the transformed object.
277
- *
278
- * @example
279
- * ```ts
280
- * __sys__.utils.obj.of({ a: 1, b: 2 }).mapValues((v) => v * 10).value();
281
- * // { a: 10, b: 20 }
282
- * ```
283
- */
284
- mapValues(fn) {
285
- const result = {};
286
- for (const key of Object.keys(this.current)) {
287
- result[key] = fn(this.current[key], key);
288
- }
289
- return new ObjectWrapper(result);
290
- }
291
- /**
292
- * **mapKeys**
293
- *
294
- * Transforms every key of the wrapped object using `fn`, keeping
295
- * the same values.
296
- *
297
- * @param fn - Mapping function receiving `(key, value)`. Must return a string.
298
- * @returns A new wrapper around the object with renamed keys.
299
- *
300
- * @example
301
- * ```ts
302
- * __sys__.utils.obj.of({ a: 1, b: 2 })
303
- * .mapKeys((k) => k.toUpperCase())
304
- * .value();
305
- * // { A: 1, B: 2 }
306
- * ```
307
- */
308
- mapKeys(fn) {
309
- const result = {};
310
- for (const key of Object.keys(this.current)) {
311
- result[fn(key, this.current[key])] = this.current[key];
312
- }
313
- return new ObjectWrapper(result);
314
- }
315
- /**
316
- * **filter**
317
- *
318
- * Keeps only the key-value pairs for which `predicate` returns `true`.
319
- *
320
- * @param predicate - Function receiving `(value, key)`.
321
- * @returns A new wrapper around the filtered object.
322
- *
323
- * @example
324
- * ```ts
325
- * __sys__.utils.obj.of({ a: 1, b: 2, c: 3 })
326
- * .filter((v) => v > 1)
327
- * .value();
328
- * // { b: 2, c: 3 }
329
- * ```
330
- */
331
- filter(predicate) {
332
- const result = {};
333
- for (const key of Object.keys(this.current)) {
334
- if (predicate(this.current[key], key)) {
335
- result[key] = this.current[key];
336
- }
337
- }
338
- return new ObjectWrapper(result);
339
- }
340
- /**
341
- * **keys**
342
- *
343
- * Returns the own enumerable keys of the wrapped object.
344
- * This is a terminal read.
345
- *
346
- * @returns Array of keys.
347
- */
348
- keys() {
349
- return Object.keys(this.current);
350
- }
351
- /**
352
- * **values**
353
- *
354
- * Returns the own enumerable values of the wrapped object.
355
- * This is a terminal read.
356
- *
357
- * @returns Array of values.
358
- */
359
- values() {
360
- return Object.values(this.current);
361
- }
362
- /**
363
- * **entries**
364
- *
365
- * Returns the own enumerable `[key, value]` pairs of the wrapped object.
366
- * This is a terminal read.
367
- *
368
- * @returns Array of `[key, value]` tuples.
369
- */
370
- entries() {
371
- return Object.entries(this.current);
372
- }
373
- /**
374
- * **has**
375
- *
376
- * Checks whether the wrapped object has the given own key.
377
- * This is a terminal read.
378
- *
379
- * @param key - The key to check.
380
- * @returns `true` if the key exists on the object.
381
- */
382
- has(key) {
383
- return Object.prototype.hasOwnProperty.call(this.current, key);
384
- }
385
- /**
386
- * **get**
387
- *
388
- * Safely reads a possibly-nested value using dot-notation path,
389
- * returning `fallback` if any part of the path is missing.
390
- * This is a terminal read.
391
- *
392
- * @param path - Dot-notation path (e.g. `"a.b.c"`).
393
- * @param fallback - Value returned if the path can't be resolved.
394
- * @returns The resolved value or the fallback.
395
- *
396
- * @example
397
- * ```ts
398
- * __sys__.utils.obj.of({ a: { b: { c: 42 } } }).get("a.b.c"); // 42
399
- * __sys__.utils.obj.of({ a: {} }).get("a.b.c", "missing"); // "missing"
400
- * ```
401
- */
402
- get(path, fallback = undefined) {
403
- const parts = path.split(".");
404
- let cursor = this.current;
405
- for (const part of parts) {
406
- if (cursor === null || cursor === undefined)
407
- return fallback;
408
- cursor = cursor[part];
409
- }
410
- return cursor === undefined ? fallback : cursor;
411
- }
412
- /**
413
- * **set**
414
- *
415
- * Sets a possibly-nested value using dot-notation path, creating
416
- * intermediate objects as needed.
417
- *
418
- * @param path - Dot-notation path (e.g. `"a.b.c"`).
419
- * @param value - The value to set.
420
- * @returns `this`, with the value set at the given path.
421
- *
422
- * @example
423
- * ```ts
424
- * __sys__.utils.obj.of<any>({}).set("a.b.c", 42).value();
425
- * // { a: { b: { c: 42 } } }
426
- * ```
427
- */
428
- set(path, value) {
429
- const parts = path.split(".");
430
- let cursor = this.current;
431
- parts.forEach((part, i) => {
432
- if (i === parts.length - 1) {
433
- cursor[part] = value;
434
- }
435
- else {
436
- if (typeof cursor[part] !== "object" || cursor[part] === null) {
437
- cursor[part] = {};
438
- }
439
- cursor = cursor[part];
440
- }
441
- });
442
- return this;
443
- }
444
- /**
445
- * **equals**
446
- *
447
- * Performs a deep structural equality check between the wrapped
448
- * object and `other`. This is a terminal read.
449
- *
450
- * @param other - The object to compare against.
451
- * @returns `true` if both objects are deeply equal.
452
- *
453
- * @example
454
- * ```ts
455
- * __sys__.utils.obj.of({ a: { b: 1 } }).equals({ a: { b: 1 } }); // true
456
- * ```
457
- */
458
- equals(other) {
459
- return __sys__.utils.obj.deepEqual(this.current, other);
460
- }
461
- }
462
4
  /**
463
5
  * **ObjectUtils — XyPriss Object Utilities**
464
6
  *
@@ -627,6 +169,150 @@ class ObjectUtils {
627
169
  isEmpty(obj) {
628
170
  return Object.keys(obj).length === 0;
629
171
  }
172
+ /**
173
+ * **Check if an Object has Any Empty Values**
174
+ *
175
+ * Returns `true` if at least one property value in the object is `undefined`, `null`,
176
+ * an empty string `""` (or whitespace-only if trim: true), empty array `[]`, or empty object `{}`.
177
+ *
178
+ * @param obj - The object to inspect.
179
+ * @param keys - Optional specific keys to check.
180
+ * @param options - Optional configuration (e.g. `trim: boolean`).
181
+ * @returns `true` if at least one value is empty/undefined.
182
+ *
183
+ * @example
184
+ * ```ts
185
+ * utils.hasEmpty({ name: "Alice", phone: undefined }); // true
186
+ * utils.hasEmpty({ name: "Alice", phone: "+22501020304" }); // false
187
+ * ```
188
+ */
189
+ hasEmpty(obj, keys, options = { trim: true }) {
190
+ return new ObjectWrapper(obj).hasEmpty(keys, options);
191
+ }
192
+ /**
193
+ * **hasAnyEmpty**
194
+ *
195
+ * Alias for {@link hasEmpty}. Returns `true` if at least one property is empty.
196
+ */
197
+ hasAnyEmpty(obj, keys, options) {
198
+ return this.hasEmpty(obj, keys, options);
199
+ }
200
+ /**
201
+ * **Check if All Object Values are Empty**
202
+ *
203
+ * Returns `true` if ALL property values in the object are `undefined`, `null`,
204
+ * empty string `""`, empty array `[]`, or empty object `{}` (or if the object has 0 keys).
205
+ *
206
+ * @param obj - The object to inspect.
207
+ * @param keys - Optional specific keys to check.
208
+ * @param options - Optional configuration (e.g. `trim: boolean`).
209
+ * @returns `true` if all values are empty.
210
+ *
211
+ * @example
212
+ * ```ts
213
+ * utils.isAllEmpty({ name: undefined, phone: "", email: null }); // true
214
+ * utils.isAllEmpty({ name: "Alice", phone: "" }); // false
215
+ * ```
216
+ */
217
+ isAllEmpty(obj, keys, options = { trim: true }) {
218
+ return new ObjectWrapper(obj).isAllEmpty(keys, options);
219
+ }
220
+ /**
221
+ * **Check if an Object has Any Filled/Non-Empty Values**
222
+ *
223
+ * Returns `true` if AT LEAST ONE property value in the object is present and non-empty
224
+ * (not `undefined`, not `null`, not `""` empty string, not empty `[]`, and not empty `{}`).
225
+ *
226
+ * This is the exact inverse of {@link isAllEmpty}.
227
+ *
228
+ * @param obj - The object to inspect.
229
+ * @param keys - Optional specific keys to check.
230
+ * @param options - Optional configuration (e.g. `trim: boolean`).
231
+ * @returns `true` if at least one value is non-empty.
232
+ *
233
+ * @example
234
+ * ```ts
235
+ * utils.hasAny({ name: undefined, phone: "+22501020304" }); // true
236
+ * utils.hasAny({ name: undefined, phone: "", email: null }); // false
237
+ * ```
238
+ */
239
+ hasAny(obj, keys, options = { trim: true }) {
240
+ return new ObjectWrapper(obj).hasAny(keys, options);
241
+ }
242
+ /**
243
+ * **hasAnyValue**
244
+ *
245
+ * Alias for {@link hasAny}. Returns `true` if at least one property is non-empty.
246
+ */
247
+ hasAnyValue(obj, keys, options) {
248
+ return this.hasAny(obj, keys, options);
249
+ }
250
+ /**
251
+ * **Check if an Object contains Non-Null Values**
252
+ *
253
+ * Returns `true` if AT LEAST ONE property value in the object is not `null` and not `undefined`.
254
+ *
255
+ * @param obj - The object to inspect.
256
+ * @param keys - Optional specific keys to check.
257
+ * @returns `true` if at least one value is not null and not undefined.
258
+ *
259
+ * @example
260
+ * ```ts
261
+ * utils.hasNonNull({ a: undefined, b: null, c: "" }); // true (c is "")
262
+ * utils.hasNonNull({ a: undefined, b: null }); // false
263
+ * ```
264
+ */
265
+ hasNonNull(obj, keys) {
266
+ return new ObjectWrapper(obj).hasNonNull(keys);
267
+ }
268
+ /**
269
+ * **Check if All Properties in an Object are Non-Null**
270
+ *
271
+ * Returns `true` if ALL property values in the object are not `null` and not `undefined`.
272
+ *
273
+ * @param obj - The object to inspect.
274
+ * @param keys - Optional specific keys to check.
275
+ * @returns `true` if all values are not null and not undefined.
276
+ */
277
+ isAllNonNull(obj, keys) {
278
+ return new ObjectWrapper(obj).isAllNonNull(keys);
279
+ }
280
+ /**
281
+ * **Check if an Object contains Undefined Values**
282
+ *
283
+ * Returns `true` if at least one property value in the object is strictly `undefined`.
284
+ *
285
+ * @param obj - The object to inspect.
286
+ * @param keys - Optional specific keys to check.
287
+ * @returns `true` if at least one value is undefined.
288
+ *
289
+ * @example
290
+ * ```ts
291
+ * utils.hasUndefined({ name: "Alice", phone: undefined }); // true
292
+ * utils.hasUndefined({ name: "Alice", phone: null }); // false
293
+ * ```
294
+ */
295
+ hasUndefined(obj, keys) {
296
+ return new ObjectWrapper(obj).hasUndefined(keys);
297
+ }
298
+ /**
299
+ * **Compact Object**
300
+ *
301
+ * Returns a new plain object with all `undefined`, `null`, and empty string properties removed.
302
+ *
303
+ * @param obj - The object to clean.
304
+ * @param options - Optional configuration (e.g. `trim: boolean`).
305
+ * @returns A new cleaned object without empty properties.
306
+ *
307
+ * @example
308
+ * ```ts
309
+ * utils.compact({ name: "Alice", phone: undefined, email: "" });
310
+ * // { name: "Alice" }
311
+ * ```
312
+ */
313
+ compact(obj, options = { trim: true }) {
314
+ return new ObjectWrapper(obj).compact(options).value();
315
+ }
630
316
  /**
631
317
  * **flattenObject**
632
318
  *
@@ -1010,31 +696,6 @@ class ObjectUtils {
1010
696
  }
1011
697
  return result;
1012
698
  }
1013
- /**
1014
- * **compact**
1015
- *
1016
- * Returns a new object with all keys whose value is `null` or
1017
- * `undefined` removed.
1018
- *
1019
- * @param obj - The source object.
1020
- * @returns A new object without null/undefined values.
1021
- *
1022
- * @example
1023
- * ```ts
1024
- * utils.compact({ a: 1, b: null, c: undefined, d: 0 });
1025
- * // { a: 1, d: 0 }
1026
- * ```
1027
- */
1028
- compact(obj) {
1029
- const result = {};
1030
- for (const key of Object.keys(obj)) {
1031
- const val = obj[key];
1032
- if (val !== null && val !== undefined) {
1033
- result[key] = val;
1034
- }
1035
- }
1036
- return result;
1037
- }
1038
699
  /**
1039
700
  * **isPlainObject**
1040
701
  *
@@ -1061,5 +722,5 @@ class ObjectUtils {
1061
722
  }
1062
723
  }
1063
724
 
1064
- export { ObjectUtils, ObjectWrapper };
725
+ export { ObjectUtils };
1065
726
  //# sourceMappingURL=ObjectUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectUtils.js","sources":["../../../../../src/xhsc/utils/ObjectUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObjectUtils.js","sources":["../../../../../src/xhsc/utils/ObjectUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}