valleyed 4.4.4 → 4.4.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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [4.4.6](https://github.com/kevinand11/valleyed/compare/v4.4.5...v4.4.6) (2025-05-22)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * return json type ([ae45c35](https://github.com/kevinand11/valleyed/commit/ae45c357c8040db94f81845c5b66a60ce5d119e2))
11
+
12
+ ### [4.4.5](https://github.com/kevinand11/valleyed/compare/v4.4.4...v4.4.5) (2025-05-21)
13
+
14
+
15
+ ### Features
16
+
17
+ * move ignore and toJson logic from equipped to here ([df4ef30](https://github.com/kevinand11/valleyed/commit/df4ef3071f9faf45bed2bb3666c3f0af0e465fdf))
18
+
5
19
  ### [4.4.4](https://github.com/kevinand11/valleyed/compare/v4.4.3...v4.4.4) (2025-05-17)
6
20
 
7
21
 
package/lib/index.d.ts CHANGED
@@ -5,4 +5,5 @@ export * from './utils/differ';
5
5
  export * from './utils/functions';
6
6
  export * from './utils/geohash';
7
7
  export * from './utils/rules';
8
+ export * from './utils/types';
8
9
  export { Validator } from './validators';
package/lib/index.js CHANGED
@@ -22,6 +22,7 @@ __exportStar(require("./utils/differ"), exports);
22
22
  __exportStar(require("./utils/functions"), exports);
23
23
  __exportStar(require("./utils/geohash"), exports);
24
24
  __exportStar(require("./utils/rules"), exports);
25
+ __exportStar(require("./utils/types"), exports);
25
26
  var validators_1 = require("./validators");
26
27
  Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return validators_1.Validator; } });
27
28
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,0CAAuB;AACvB,kDAA+B;AAC/B,iDAA8B;AAC9B,oDAAiC;AACjC,kDAA+B;AAC/B,gDAA6B;AAC7B,2CAAwC;AAA/B,uGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,0CAAuB;AACvB,kDAA+B;AAC/B,iDAA8B;AAC9B,oDAAiC;AACjC,kDAA+B;AAC/B,gDAA6B;AAC7B,gDAA6B;AAC7B,2CAAwC;AAA/B,uGAAA,SAAS,OAAA"}
@@ -1,15 +1,17 @@
1
+ import { DeepOmit, JSONValue } from './types';
1
2
  declare const customInspectSymbol: unique symbol;
2
3
  type Accessor<Keys extends Record<string, any>> = {
3
4
  get: <Key extends keyof Keys>(key: Key, keysObj: Keys) => Keys[Key];
4
5
  set: <Key extends keyof Keys>(key: Key, value: Keys[Key], keysObj: Keys) => void;
5
6
  };
6
- declare class __Wrapped<Keys extends Record<string, any>> {
7
+ declare class __Wrapped<Keys extends Record<string, any>, Ignored extends string = never> {
8
+ readonly __ignoreInJSON: Ignored[];
7
9
  constructor(keys: Keys, access?: Accessor<Keys>);
8
10
  [customInspectSymbol](_: any, options: any, inspect: any): string;
9
- toJSON(): Record<string, any>;
10
- toString(): string;
11
+ toJSON(includeIgnored?: boolean): JSONValue<DeepOmit<this, Ignored, '__ignoreInJSON'>>;
12
+ toString(includeIgnored?: boolean): string;
11
13
  }
12
- declare const ClassPropertiesWrapper_base: new <Keys_1 extends Record<string, any>>(keys: Keys_1, access?: Accessor<Keys_1>) => __Wrapped<any> & Keys_1;
13
- export declare class ClassPropertiesWrapper<Keys extends Record<string, any>> extends ClassPropertiesWrapper_base<Keys> {
14
+ declare const ClassPropertiesWrapper_base: new <Keys_1 extends Record<string, any>, Ignored_1 extends string = never>(keys: Keys_1, access?: Accessor<Keys_1>) => __Wrapped<Keys_1, Ignored_1> & Keys_1;
15
+ export declare class ClassPropertiesWrapper<Keys extends Record<string, any>, Ignored extends string = never> extends ClassPropertiesWrapper_base<Keys, Ignored> {
14
16
  }
15
17
  export {};
@@ -12,6 +12,7 @@ if (util_1.default?.inspect?.defaultOptions) {
12
12
  }
13
13
  const customInspectSymbol = Symbol.for('nodejs.util.inspect.custom');
14
14
  class __Wrapped {
15
+ __ignoreInJSON = [];
15
16
  constructor(keys, access = {
16
17
  get: (key, keys) => keys[key],
17
18
  set: (key, value, keys) => {
@@ -35,18 +36,22 @@ class __Wrapped {
35
36
  options.depth = Number.MAX_SAFE_INTEGER;
36
37
  return options.stylize(this.constructor.name, options) + ' ' + inspect(this.toJSON(), options);
37
38
  }
38
- toJSON() {
39
- const json = Object.assign({}, this);
40
- Object.getOwnPropertyNames(Object.getPrototypeOf(this))
41
- .filter((k) => k !== 'constructor')
39
+ toJSON(includeIgnored = false) {
40
+ const json = {};
41
+ Object.keys(this)
42
+ .concat(Object.getOwnPropertyNames(Object.getPrototypeOf(this)))
42
43
  .forEach((key) => {
43
44
  const value = this[key];
44
- json[key] = value?.toJSON?.() ?? value;
45
+ if (typeof value === 'function' || value === undefined)
46
+ return;
47
+ json[key] = value?.toJSON?.(includeIgnored) ?? clone(value);
45
48
  });
49
+ const keysToDelete = ['__ignoreInJSON', '__keys'].concat(...(includeIgnored !== true ? this.__ignoreInJSON : []));
50
+ keysToDelete.forEach((k) => deleteKeyFromObject(json, k.split('.')));
46
51
  return json;
47
52
  }
48
- toString() {
49
- return JSON.stringify(this.toJSON());
53
+ toString(includeIgnored = false) {
54
+ return JSON.stringify(this.toJSON(includeIgnored));
50
55
  }
51
56
  }
52
57
  function WrapWithProperties() {
@@ -55,4 +60,22 @@ function WrapWithProperties() {
55
60
  class ClassPropertiesWrapper extends WrapWithProperties() {
56
61
  }
57
62
  exports.ClassPropertiesWrapper = ClassPropertiesWrapper;
63
+ function clone(value) {
64
+ try {
65
+ return structuredClone(value);
66
+ }
67
+ catch {
68
+ return value;
69
+ }
70
+ }
71
+ const deleteKeyFromObject = (obj, keys) => {
72
+ if (obj === undefined || obj === null)
73
+ return;
74
+ const isArray = Array.isArray(obj);
75
+ if (keys.length === 1 && !isArray)
76
+ return delete obj[keys[0]];
77
+ if (isArray)
78
+ return obj.map((v) => deleteKeyFromObject(v, keys));
79
+ return deleteKeyFromObject(obj[keys[0]], keys.slice(1));
80
+ };
58
81
  //# sourceMappingURL=classes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../src/utils/classes.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAEvB,IAAI,cAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACnC,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAA;IAC3D,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAA;IAC1C,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAA;AACpD,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAOpE,MAAM,SAAS;IACd,YACC,IAAU,EACV,SAAyB;QACxB,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7B,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAClB,CAAC;KACD;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAiB,EAAE,IAAI,CAAC;gBAC9C,GAAG,EAAE,CAAC,KAAU,EAAE,EAAE;oBACnB,MAAM,CAAC,GAAG,CAAC,GAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC3C,CAAC;gBACD,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aAClB,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO;QACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QACtB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC/B,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAA;QACvC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;IAC/F,CAAC;IAED,MAAM;QACL,MAAM,IAAI,GAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACzD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC;aAClC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,KAAK,CAAA;QACvC,CAAC,CAAC,CAAA;QACH,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACrC,CAAC;CACD;AAED,SAAS,kBAAkB;IAC1B,OAAO,SAAgB,CAAA;AACxB,CAAC;AAGD,MAAa,sBAAyD,SAAQ,kBAAkB,EAAQ;CAAG;AAA3G,wDAA2G"}
1
+ {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../src/utils/classes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type DeepOmit<T, K, A = never> = T extends any[] ? DeepOmit<T[number], K, A>[] : T extends (...args: any[]) => any ? never : T extends Array<infer U> ? DeepOmit<U, K, A>[] : {
2
+ [P in keyof T as P extends K | A ? never : P]: DeepOmit<T[P], K extends `${Exclude<P, symbol>}.${infer R}` ? R : never, A>;
3
+ };
4
+ export type JSONPrimitives = string | number | boolean | null;
5
+ export type JSONValue<T> = T extends JSONPrimitives ? T : T extends Array<infer U> ? JSONValue<U>[] : T extends Function ? never : T extends object ? {
6
+ [K in keyof T as JSONValue<T[K]> extends never ? never : JSONValue<T[K]> extends undefined ? never : K]: JSONValue<T[K]>;
7
+ } : never;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valleyed",
3
- "version": "4.4.4",
3
+ "version": "4.4.6",
4
4
  "description": "A lightweight package with definitions for various validation rules, and helper services to consume said rules.",
5
5
  "main": "lib/index.js",
6
6
  "type": "commonjs",