@xylabs/object 5.0.83 → 5.0.84

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.
Files changed (42) hide show
  1. package/README.md +192 -0
  2. package/dist/neutral/AsObjectFactory.d.ts +1 -0
  3. package/dist/neutral/AsObjectFactory.d.ts.map +1 -1
  4. package/dist/neutral/AsTypeFactory.d.ts +4 -0
  5. package/dist/neutral/AsTypeFactory.d.ts.map +1 -1
  6. package/dist/neutral/IsObjectFactory.d.ts +8 -0
  7. package/dist/neutral/IsObjectFactory.d.ts.map +1 -1
  8. package/dist/neutral/JsonObject.d.ts +13 -0
  9. package/dist/neutral/JsonObject.d.ts.map +1 -1
  10. package/dist/neutral/ObjectWrapper.d.ts +1 -0
  11. package/dist/neutral/ObjectWrapper.d.ts.map +1 -1
  12. package/dist/neutral/OmitStartsWith.d.ts +4 -0
  13. package/dist/neutral/OmitStartsWith.d.ts.map +1 -1
  14. package/dist/neutral/Optional.d.ts +1 -0
  15. package/dist/neutral/Optional.d.ts.map +1 -1
  16. package/dist/neutral/Override.d.ts +1 -0
  17. package/dist/neutral/Override.d.ts.map +1 -1
  18. package/dist/neutral/PickStartsWith.d.ts +2 -0
  19. package/dist/neutral/PickStartsWith.d.ts.map +1 -1
  20. package/dist/neutral/Simplify.d.ts +1 -0
  21. package/dist/neutral/Simplify.d.ts.map +1 -1
  22. package/dist/neutral/StringKeyObject.d.ts +1 -0
  23. package/dist/neutral/StringKeyObject.d.ts.map +1 -1
  24. package/dist/neutral/Validator.d.ts +2 -0
  25. package/dist/neutral/Validator.d.ts.map +1 -1
  26. package/dist/neutral/WithAdditional.d.ts +1 -0
  27. package/dist/neutral/WithAdditional.d.ts.map +1 -1
  28. package/dist/neutral/asObject.d.ts +1 -0
  29. package/dist/neutral/asObject.d.ts.map +1 -1
  30. package/dist/neutral/index-un-deprecated.mjs +6 -0
  31. package/dist/neutral/index-un-deprecated.mjs.map +1 -1
  32. package/dist/neutral/index.mjs +6 -0
  33. package/dist/neutral/index.mjs.map +1 -1
  34. package/dist/neutral/omitBy.d.ts +15 -0
  35. package/dist/neutral/omitBy.d.ts.map +1 -1
  36. package/dist/neutral/pickBy.d.ts +15 -0
  37. package/dist/neutral/pickBy.d.ts.map +1 -1
  38. package/dist/neutral/removeFields.d.ts +6 -0
  39. package/dist/neutral/removeFields.d.ts.map +1 -1
  40. package/dist/neutral/toSafeJson.d.ts +34 -0
  41. package/dist/neutral/toSafeJson.d.ts.map +1 -1
  42. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"omitBy.d.ts","sourceRoot":"","sources":["../../src/omitBy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,OAAO,CAAA;AA+B3H,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAC1C,KAAK,CAAC,EACN,WAAW,eAAe,EAC1B,iBAAY,KACX,OAAO,CAAC,CAAC,CAMX,CAAA;AAOD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAc,KAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAEpI,CAAA"}
1
+ {"version":3,"file":"omitBy.d.ts","sourceRoot":"","sources":["../../src/omitBy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,sFAAsF;AACtF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,OAAO,CAAA;AA+B3H;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAC1C,KAAK,CAAC,EACN,WAAW,eAAe,EAC1B,iBAAY,KACX,OAAO,CAAC,CAAC,CAMX,CAAA;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAc,KAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAEpI,CAAA"}
@@ -1,6 +1,21 @@
1
1
  import type { EmptyObject } from './EmptyObject.ts';
2
2
  import type { DeepPickStartsWith } from './PickStartsWith.ts';
3
+ /** A predicate function used to determine which properties to pick from an object. */
3
4
  export type PickByPredicate<T extends EmptyObject = Record<string, unknown>> = (value: T[keyof T], key: keyof T) => boolean;
5
+ /**
6
+ * Creates a new object containing only the properties that satisfy the predicate, with optional recursive depth.
7
+ * @param obj - The source object to pick properties from.
8
+ * @param predicate - A function that returns true for properties to include.
9
+ * @param maxDepth - Maximum recursion depth for nested objects.
10
+ * @returns A partial copy of the object with only matching properties.
11
+ */
4
12
  export declare const pickBy: <T extends EmptyObject>(obj: T, predicate: PickByPredicate, maxDepth?: number) => Partial<T>;
13
+ /**
14
+ * Picks all properties whose keys start with the given prefix, recursively through nested objects.
15
+ * @param payload - The source object.
16
+ * @param prefix - The string prefix to match keys against.
17
+ * @param maxDepth - Maximum recursion depth.
18
+ * @returns A new object containing only properties with matching prefixed keys.
19
+ */
5
20
  export declare const pickByPrefix: <T extends EmptyObject, P extends string>(payload: T, prefix: P, maxDepth?: number) => DeepPickStartsWith<T, P>;
6
21
  //# sourceMappingURL=pickBy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pickBy.d.ts","sourceRoot":"","sources":["../../src/pickBy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,OAAO,CAAA;AA+B3H,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAC1C,KAAK,CAAC,EACN,WAAW,eAAe,EAC1B,iBAAY,KACX,OAAO,CAAC,CAAC,CAMX,CAAA;AAOD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAc,KAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAEpI,CAAA"}
1
+ {"version":3,"file":"pickBy.d.ts","sourceRoot":"","sources":["../../src/pickBy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,sFAAsF;AACtF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,OAAO,CAAA;AA+B3H;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAC1C,KAAK,CAAC,EACN,WAAW,eAAe,EAC1B,iBAAY,KACX,OAAO,CAAC,CAAC,CAMX,CAAA;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAc,KAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAEpI,CAAA"}
@@ -1,3 +1,9 @@
1
1
  import type { EmptyObject } from './EmptyObject.ts';
2
+ /**
3
+ * Returns a shallow copy of the object with the specified fields removed.
4
+ * @param obj - The source object.
5
+ * @param fields - An array of keys to remove.
6
+ * @returns A new object without the specified fields.
7
+ */
2
8
  export declare const removeFields: <T extends EmptyObject, K extends keyof T>(obj: T, fields: K[]) => Omit<T, K>;
3
9
  //# sourceMappingURL=removeFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeFields.d.ts","sourceRoot":"","sources":["../../src/removeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAMrG,CAAA"}
1
+ {"version":3,"file":"removeFields.d.ts","sourceRoot":"","sources":["../../src/removeFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAMrG,CAAA"}
@@ -1,7 +1,41 @@
1
1
  import type { JsonArray, JsonObject, JsonValue } from './JsonObject.ts';
2
+ /**
3
+ * Converts an array to a JSON-safe array, handling circular references and depth limits.
4
+ * @param value - The array to convert.
5
+ * @param cycleList - Tracks visited objects to detect circular references.
6
+ * @param maxDepth - Maximum recursion depth before truncating.
7
+ * @returns A JSON-safe array representation.
8
+ */
2
9
  export declare const toSafeJsonArray: (value: unknown[], cycleList?: unknown[], maxDepth?: number) => JsonArray;
10
+ /**
11
+ * Converts an object to a JSON-safe object, handling circular references and depth limits.
12
+ * @param value - The object to convert.
13
+ * @param cycleList - Tracks visited objects to detect circular references.
14
+ * @param maxDepth - Maximum recursion depth before truncating.
15
+ * @returns A JSON-safe object representation.
16
+ */
3
17
  export declare const toSafeJsonObject: (value: object, cycleList?: unknown[], maxDepth?: number) => JsonObject;
18
+ /**
19
+ * Converts an unknown value to a JSON-safe value, replacing circular references with '[Circular]' and
20
+ * non-JSON types with descriptive placeholder strings.
21
+ * @param value - The value to convert.
22
+ * @param cycleList - Tracks visited objects to detect circular references.
23
+ * @param maxDepth - Maximum recursion depth before truncating with '[MaxDepth]'.
24
+ * @returns A JSON-safe representation of the value.
25
+ */
4
26
  export declare const toSafeJsonValue: (value: unknown, cycleList?: unknown[], maxDepth?: number) => JsonValue;
27
+ /**
28
+ * Converts a value to a pretty-printed JSON string, safely handling circular references and non-JSON types.
29
+ * @param value - The value to serialize.
30
+ * @param maxDepth - Maximum recursion depth.
31
+ * @returns A formatted JSON string.
32
+ */
5
33
  export declare const toSafeJsonString: (value: unknown, maxDepth?: number) => string;
34
+ /**
35
+ * Converts a value to a JSON-safe representation, handling circular references and non-serializable types.
36
+ * @param value - The value to convert.
37
+ * @param maxDepth - Maximum recursion depth.
38
+ * @returns A JSON-safe value.
39
+ */
6
40
  export declare const toSafeJson: (value: unknown, maxDepth?: number) => JsonValue;
7
41
  //# sourceMappingURL=toSafeJson.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toSafeJson.d.ts","sourceRoot":"","sources":["../../src/toSafeJson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAAE,UAAU,EAAE,SAAS,EACjC,MAAM,iBAAiB,CAAA;AAExB,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,EAAE,EAAE,YAAY,OAAO,EAAE,EAAE,iBAAY,KAAG,SAEvF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,YAAY,OAAO,EAAE,EAAE,iBAAY,KAAG,UAMrF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,EAAE,YAAY,OAAO,EAAE,EAAE,iBAAY,KAAG,SAyBrF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,iBAAY,WAE5D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,EAAE,iBAAY,KAAG,SAEzD,CAAA"}
1
+ {"version":3,"file":"toSafeJson.d.ts","sourceRoot":"","sources":["../../src/toSafeJson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAAE,UAAU,EAAE,SAAS,EACjC,MAAM,iBAAiB,CAAA;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,EAAE,EAAE,YAAY,OAAO,EAAE,EAAE,iBAAY,KAAG,SAEvF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,YAAY,OAAO,EAAE,EAAE,iBAAY,KAAG,UAMrF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,EAAE,YAAY,OAAO,EAAE,EAAE,iBAAY,KAAG,SAyBrF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,EAAE,iBAAY,WAE5D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,EAAE,iBAAY,KAAG,SAEzD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/object",
3
- "version": "5.0.83",
3
+ "version": "5.0.84",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -39,15 +39,15 @@
39
39
  "!**/*.test.*"
40
40
  ],
41
41
  "dependencies": {
42
- "@xylabs/assert": "~5.0.83",
43
- "@xylabs/object-model": "~5.0.83",
44
- "@xylabs/promise": "~5.0.83",
45
- "@xylabs/typeof": "~5.0.83",
46
- "@xylabs/zod": "~5.0.83"
42
+ "@xylabs/assert": "~5.0.84",
43
+ "@xylabs/object-model": "~5.0.84",
44
+ "@xylabs/promise": "~5.0.84",
45
+ "@xylabs/typeof": "~5.0.84",
46
+ "@xylabs/zod": "~5.0.84"
47
47
  },
48
48
  "devDependencies": {
49
- "@xylabs/ts-scripts-yarn3": "~7.4.11",
50
- "@xylabs/tsconfig": "~7.4.11",
49
+ "@xylabs/ts-scripts-yarn3": "~7.4.13",
50
+ "@xylabs/tsconfig": "~7.4.13",
51
51
  "typescript": "~5.9.3",
52
52
  "vitest": "~4.0.18",
53
53
  "zod": "^4.3.6"