@sorrell/utilities 1.2.2 → 1.2.4

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 (37) hide show
  1. package/Distribution/PackageExports.Generated.json +10 -0
  2. package/Distribution/Types/Math/Math.Types.d.cts +6 -0
  3. package/Distribution/Types/Math/Math.Types.d.cts.map +1 -1
  4. package/Distribution/Types/Math/Math.Types.d.mts +6 -0
  5. package/Distribution/Types/Math/Math.Types.d.mts.map +1 -1
  6. package/Distribution/Types/Math/Math.Types.d.ts +6 -0
  7. package/Distribution/Types/Math/Math.Types.d.ts.map +1 -1
  8. package/Distribution/Types/Record/Record.Internal.Types.d.cts +32 -0
  9. package/Distribution/Types/Record/Record.Internal.Types.d.cts.map +10 -0
  10. package/Distribution/Types/Record/Record.Internal.Types.d.mts +32 -0
  11. package/Distribution/Types/Record/Record.Internal.Types.d.mts.map +10 -0
  12. package/Distribution/Types/Record/Record.Internal.Types.d.ts +32 -0
  13. package/Distribution/Types/Record/Record.Internal.Types.d.ts.map +1 -0
  14. package/Distribution/Types/Record/Record.Types.d.cts +78 -0
  15. package/Distribution/Types/Record/Record.Types.d.cts.map +10 -0
  16. package/Distribution/Types/Record/Record.Types.d.mts +78 -0
  17. package/Distribution/Types/Record/Record.Types.d.mts.map +10 -0
  18. package/Distribution/Types/Record/Record.Types.d.ts +78 -0
  19. package/Distribution/Types/Record/Record.Types.d.ts.map +1 -0
  20. package/Distribution/Types/Record/Record.d.cts +63 -0
  21. package/Distribution/Types/Record/Record.d.cts.map +10 -0
  22. package/Distribution/Types/Record/Record.d.mts +63 -0
  23. package/Distribution/Types/Record/Record.d.mts.map +10 -0
  24. package/Distribution/Types/Record/Record.d.ts +63 -0
  25. package/Distribution/Types/Record/Record.d.ts.map +1 -0
  26. package/Distribution/Types/Record/index.d.cts +9 -0
  27. package/Distribution/Types/Record/index.d.cts.map +10 -0
  28. package/Distribution/Types/Record/index.d.mts +9 -0
  29. package/Distribution/Types/Record/index.d.mts.map +10 -0
  30. package/Distribution/Types/Record/index.d.ts +9 -0
  31. package/Distribution/Types/Record/index.d.ts.map +1 -0
  32. package/Distribution/record.cjs +116 -0
  33. package/Distribution/record.cjs.map +7 -0
  34. package/Distribution/record.js +93 -0
  35. package/Distribution/record.js.map +7 -0
  36. package/ReadMe.md +4 -0
  37. package/package.json +11 -1
@@ -118,5 +118,15 @@
118
118
  "default": "./Distribution/path.cjs",
119
119
  "types": "./Distribution/path.d.cts"
120
120
  }
121
+ },
122
+ "./record": {
123
+ "import": {
124
+ "default": "./Distribution/record.js",
125
+ "types": "./Distribution/record.d.mts"
126
+ },
127
+ "require": {
128
+ "default": "./Distribution/record.cjs",
129
+ "types": "./Distribution/record.d.cts"
130
+ }
121
131
  }
122
132
  }
@@ -88,5 +88,11 @@ export declare namespace Permutations {
88
88
  */
89
89
  type Two<OneType, TwoType> = InternalTypes.Two<OneType, TwoType>;
90
90
  }
91
+ /**
92
+ * The union of integers from {@link StartValue} to {@link EndValue}, inclusive.
93
+ *
94
+ * @template StartValue - The least value in the range.
95
+ * @template EndValue - The greatest value in the range.
96
+ */
91
97
  export type TIntegralRange<StartValue extends number, EndValue extends number> = number extends StartValue ? never : number extends EndValue ? never : TIsNonNegativeInteger<StartValue> extends true ? TIsNonNegativeInteger<EndValue> extends true ? TIsLessThanOrEqual<StartValue, EndValue> extends true ? TInclusiveRangeFromTuple<TBuildTuple<StartValue>, EndValue> : never : never : never;
92
98
  //# sourceMappingURL=Math.Types.d.cts.map
@@ -6,5 +6,5 @@
6
6
  "../../../Source/Math/Math.Types.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACvD,GAAI,UAAW,EAAE,SAAS,IAAK,MAAO,EAAE,GAClC,KAAK,GACL,GAAI,UAAW,EAAE,SAAS,GAAI,MAAO,EAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEpB,yBAAiB,QAAQ,CACzB;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,yBAAiB,YAAY,CAC7B;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,CACtB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,MAAM,IAEvB,MAAM,SAAS,UAAU,GACnB,KAAK,GACL,MAAM,SAAS,QAAQ,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,IAAI,GACjD,wBAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAC3D,KAAK,GACT,KAAK,GACT,KAAK,CAAC"
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACvD,GAAI,UAAW,EAAE,SAAS,IAAK,MAAO,EAAE,GAClC,KAAK,GACL,GAAI,UAAW,EAAE,SAAS,GAAI,MAAO,EAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEpB,yBAAiB,QAAQ,CACzB;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,yBAAiB,YAAY,CAC7B;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CACtB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,MAAM,IAEvB,MAAM,SAAS,UAAU,GACnB,KAAK,GACL,MAAM,SAAS,QAAQ,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,IAAI,GACjD,wBAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAC3D,KAAK,GACT,KAAK,GACT,KAAK,CAAC"
10
10
  }
@@ -88,5 +88,11 @@ export declare namespace Permutations {
88
88
  */
89
89
  type Two<OneType, TwoType> = InternalTypes.Two<OneType, TwoType>;
90
90
  }
91
+ /**
92
+ * The union of integers from {@link StartValue} to {@link EndValue}, inclusive.
93
+ *
94
+ * @template StartValue - The least value in the range.
95
+ * @template EndValue - The greatest value in the range.
96
+ */
91
97
  export type TIntegralRange<StartValue extends number, EndValue extends number> = number extends StartValue ? never : number extends EndValue ? never : TIsNonNegativeInteger<StartValue> extends true ? TIsNonNegativeInteger<EndValue> extends true ? TIsLessThanOrEqual<StartValue, EndValue> extends true ? TInclusiveRangeFromTuple<TBuildTuple<StartValue>, EndValue> : never : never : never;
92
98
  //# sourceMappingURL=Math.Types.d.mts.map
@@ -6,5 +6,5 @@
6
6
  "../../../Source/Math/Math.Types.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACvD,GAAI,UAAW,EAAE,SAAS,IAAK,MAAO,EAAE,GAClC,KAAK,GACL,GAAI,UAAW,EAAE,SAAS,GAAI,MAAO,EAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEpB,yBAAiB,QAAQ,CACzB;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,yBAAiB,YAAY,CAC7B;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,CACtB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,MAAM,IAEvB,MAAM,SAAS,UAAU,GACnB,KAAK,GACL,MAAM,SAAS,QAAQ,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,IAAI,GACjD,wBAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAC3D,KAAK,GACT,KAAK,GACT,KAAK,CAAC"
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACvD,GAAI,UAAW,EAAE,SAAS,IAAK,MAAO,EAAE,GAClC,KAAK,GACL,GAAI,UAAW,EAAE,SAAS,GAAI,MAAO,EAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEpB,yBAAiB,QAAQ,CACzB;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,yBAAiB,YAAY,CAC7B;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CACtB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,MAAM,IAEvB,MAAM,SAAS,UAAU,GACnB,KAAK,GACL,MAAM,SAAS,QAAQ,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,IAAI,GACjD,wBAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAC3D,KAAK,GACT,KAAK,GACT,KAAK,CAAC"
10
10
  }
@@ -88,5 +88,11 @@ export declare namespace Permutations {
88
88
  */
89
89
  type Two<OneType, TwoType> = InternalTypes.Two<OneType, TwoType>;
90
90
  }
91
+ /**
92
+ * The union of integers from {@link StartValue} to {@link EndValue}, inclusive.
93
+ *
94
+ * @template StartValue - The least value in the range.
95
+ * @template EndValue - The greatest value in the range.
96
+ */
91
97
  export type TIntegralRange<StartValue extends number, EndValue extends number> = number extends StartValue ? never : number extends EndValue ? never : TIsNonNegativeInteger<StartValue> extends true ? TIsNonNegativeInteger<EndValue> extends true ? TIsLessThanOrEqual<StartValue, EndValue> extends true ? TInclusiveRangeFromTuple<TBuildTuple<StartValue>, EndValue> : never : never : never;
92
98
  //# sourceMappingURL=Math.Types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Math.Types.d.ts","sourceRoot":"","sources":["../../../Source/Math/Math.Types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACvD,GAAI,UAAW,EAAE,SAAS,IAAK,MAAO,EAAE,GAClC,KAAK,GACL,GAAI,UAAW,EAAE,SAAS,GAAI,MAAO,EAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEpB,yBAAiB,QAAQ,CACzB;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,yBAAiB,YAAY,CAC7B;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,CACtB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,MAAM,IAEvB,MAAM,SAAS,UAAU,GACnB,KAAK,GACL,MAAM,SAAS,QAAQ,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,IAAI,GACjD,wBAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAC3D,KAAK,GACT,KAAK,GACT,KAAK,CAAC"}
1
+ {"version":3,"file":"Math.Types.d.ts","sourceRoot":"","sources":["../../../Source/Math/Math.Types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1G;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACvD,GAAI,UAAW,EAAE,SAAS,IAAK,MAAO,EAAE,GAClC,KAAK,GACL,GAAI,UAAW,EAAE,SAAS,GAAI,MAAO,EAAE,GACnC,IAAI,GACJ,KAAK,CAAC;AAEpB,yBAAiB,QAAQ,CACzB;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,yBAAiB,YAAY,CAC7B;IACI;;;;;;;;OAQG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAC5D,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,KAAY,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,IAClD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,KAAY,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,IACzC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAErD;;;;;OAKG;IACH,KAAY,GAAG,CAAC,OAAO,EAAE,OAAO,IAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CACtB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,MAAM,IAEvB,MAAM,SAAS,UAAU,GACnB,KAAK,GACL,MAAM,SAAS,QAAQ,GACnB,KAAK,GACL,qBAAqB,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,IAAI,GACxC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,IAAI,GACjD,wBAAwB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAC3D,KAAK,GACT,KAAK,GACT,KAAK,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @file Record.Internal.Types.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TPath } from "./Record.Types.cjs";
8
+ type FDepthMap = {
9
+ 3: 2;
10
+ 2: 1;
11
+ 1: 0;
12
+ };
13
+ type FDepth = keyof FDepthMap | 0;
14
+ type FValidDepth = keyof FDepthMap;
15
+ type TDepthMinusOne<DepthType extends FDepth> = DepthType extends FValidDepth ? FDepthMap[DepthType] : 0;
16
+ export type TFromPathInternal<RecordType, PathType extends TPath<RecordType>, DepthType extends FDepth = 3> = DepthType extends FValidDepth ? PathType extends `${infer HeadType}.${infer RemainingPathType}` ? HeadType extends keyof RecordType ? RemainingPathType extends keyof RecordType[HeadType] ? TFromPathInternal<RecordType[HeadType], Extract<RemainingPathType, string>, TDepthMinusOne<DepthType>> : never : never : PathType extends keyof RecordType ? RecordType[PathType] : never : PathType extends keyof RecordType ? RecordType[PathType] : never;
17
+ /**
18
+ * @template RecordType - The {@link Record} type from which this path is constructed.
19
+ *
20
+ * @template ParentKey - The use of this parameter--for reasons that I do not
21
+ * understand--prevent an error regarding stack depth when evaluating this type.
22
+ */
23
+ export type TPathInternal<RecordType, ParentKey extends string | undefined = undefined> = (ParentKey extends string ? `${ParentKey}.${Extract<keyof RecordType, string>}` : Extract<keyof RecordType, string>) | (TMapToPath<RecordType>[keyof TMapToPath<RecordType>]);
24
+ type TGetRecordProperties<RecordType> = {
25
+ [Key in keyof RecordType as RecordType[Extract<Key, string>] extends Record<PropertyKey, unknown> ? Key : never]: RecordType[Key];
26
+ };
27
+ type TGetRecordKeys<RecordType> = keyof TGetRecordProperties<RecordType>;
28
+ type TMapToPath<RecordType> = {
29
+ [Key in Extract<TGetRecordKeys<RecordType>, string>]: `${Key}.${TPathInternal<TGetRecordProperties<RecordType>[Key]>}`;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=Record.Internal.Types.d.cts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Record.Internal.Types.d.cts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/Record.Internal.Types.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,KAAK,SAAS,GACV;IACI,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;CACR,CAAC;AAEN,KAAK,MAAM,GAAG,MAAM,SAAS,GAAG,CAAC,CAAC;AAClC,KAAK,WAAW,GAAG,MAAM,SAAS,CAAC;AAEnC,KAAK,cAAc,CAAC,SAAS,SAAS,MAAM,IAAI,SAAS,SAAS,WAAW,GACvE,SAAS,CAAC,SAAS,CAAC,GACpB,CAAC,CAAC;AAIR,MAAM,MAAM,iBAAiB,CACzB,UAAU,EACV,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAClC,SAAS,SAAS,MAAM,GAAG,CAAC,IAE5B,SAAS,SAAS,WAAW,GACvB,QAAQ,SAAS,GAAI,MAAM,QAAS,IAAK,MAAM,iBAAkB,EAAE,GAC/D,QAAQ,SAAS,MAAM,UAAU,GAC7B,iBAAiB,SAAS,MAAM,UAAU,CAAC,QAAQ,CAAC,GAChD,iBAAiB,CACf,UAAU,CAAC,QAAQ,CAAC,EACpB,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAClC,cAAc,CAAC,SAAS,CAAC,CAC5B,GACC,KAAK,GACT,KAAK,GACT,QAAQ,SAAS,MAAM,UAAU,GAC7B,UAAU,CAAC,QAAQ,CAAC,GACpB,KAAK,GACb,QAAQ,SAAS,MAAM,UAAU,GAC7B,UAAU,CAAC,QAAQ,CAAC,GACpB,KAAK,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CACrB,UAAU,EACV,SAAS,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAE9C,CACE,SAAS,SAAS,MAAM,GAClB,GAAI,SAAU,IAAK,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAE,EAAE,GACvD,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAC,CAC1C,GACC,CACE,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CACvD,CAAC;AAEN,KAAK,oBAAoB,CAAC,UAAU,IAChC;KAEI,GAAG,IAAI,MAAM,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC1F,GAAG,GACH,KAAK,GACR,UAAU,CAAC,GAAG,CAAC;CACrB,CAAC;AAEN,KAAK,cAAc,CAAC,UAAU,IAAI,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAEzE,KAAK,UAAU,CAAC,UAAU,IACtB;KACM,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GACpD,GAAI,GAAI,IAAK,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE;CACvE,CAAC"
10
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @file Record.Internal.Types.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TPath } from "./Record.Types.mjs";
8
+ type FDepthMap = {
9
+ 3: 2;
10
+ 2: 1;
11
+ 1: 0;
12
+ };
13
+ type FDepth = keyof FDepthMap | 0;
14
+ type FValidDepth = keyof FDepthMap;
15
+ type TDepthMinusOne<DepthType extends FDepth> = DepthType extends FValidDepth ? FDepthMap[DepthType] : 0;
16
+ export type TFromPathInternal<RecordType, PathType extends TPath<RecordType>, DepthType extends FDepth = 3> = DepthType extends FValidDepth ? PathType extends `${infer HeadType}.${infer RemainingPathType}` ? HeadType extends keyof RecordType ? RemainingPathType extends keyof RecordType[HeadType] ? TFromPathInternal<RecordType[HeadType], Extract<RemainingPathType, string>, TDepthMinusOne<DepthType>> : never : never : PathType extends keyof RecordType ? RecordType[PathType] : never : PathType extends keyof RecordType ? RecordType[PathType] : never;
17
+ /**
18
+ * @template RecordType - The {@link Record} type from which this path is constructed.
19
+ *
20
+ * @template ParentKey - The use of this parameter--for reasons that I do not
21
+ * understand--prevent an error regarding stack depth when evaluating this type.
22
+ */
23
+ export type TPathInternal<RecordType, ParentKey extends string | undefined = undefined> = (ParentKey extends string ? `${ParentKey}.${Extract<keyof RecordType, string>}` : Extract<keyof RecordType, string>) | (TMapToPath<RecordType>[keyof TMapToPath<RecordType>]);
24
+ type TGetRecordProperties<RecordType> = {
25
+ [Key in keyof RecordType as RecordType[Extract<Key, string>] extends Record<PropertyKey, unknown> ? Key : never]: RecordType[Key];
26
+ };
27
+ type TGetRecordKeys<RecordType> = keyof TGetRecordProperties<RecordType>;
28
+ type TMapToPath<RecordType> = {
29
+ [Key in Extract<TGetRecordKeys<RecordType>, string>]: `${Key}.${TPathInternal<TGetRecordProperties<RecordType>[Key]>}`;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=Record.Internal.Types.d.mts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Record.Internal.Types.d.mts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/Record.Internal.Types.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,KAAK,SAAS,GACV;IACI,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;CACR,CAAC;AAEN,KAAK,MAAM,GAAG,MAAM,SAAS,GAAG,CAAC,CAAC;AAClC,KAAK,WAAW,GAAG,MAAM,SAAS,CAAC;AAEnC,KAAK,cAAc,CAAC,SAAS,SAAS,MAAM,IAAI,SAAS,SAAS,WAAW,GACvE,SAAS,CAAC,SAAS,CAAC,GACpB,CAAC,CAAC;AAIR,MAAM,MAAM,iBAAiB,CACzB,UAAU,EACV,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAClC,SAAS,SAAS,MAAM,GAAG,CAAC,IAE5B,SAAS,SAAS,WAAW,GACvB,QAAQ,SAAS,GAAI,MAAM,QAAS,IAAK,MAAM,iBAAkB,EAAE,GAC/D,QAAQ,SAAS,MAAM,UAAU,GAC7B,iBAAiB,SAAS,MAAM,UAAU,CAAC,QAAQ,CAAC,GAChD,iBAAiB,CACf,UAAU,CAAC,QAAQ,CAAC,EACpB,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAClC,cAAc,CAAC,SAAS,CAAC,CAC5B,GACC,KAAK,GACT,KAAK,GACT,QAAQ,SAAS,MAAM,UAAU,GAC7B,UAAU,CAAC,QAAQ,CAAC,GACpB,KAAK,GACb,QAAQ,SAAS,MAAM,UAAU,GAC7B,UAAU,CAAC,QAAQ,CAAC,GACpB,KAAK,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CACrB,UAAU,EACV,SAAS,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAE9C,CACE,SAAS,SAAS,MAAM,GAClB,GAAI,SAAU,IAAK,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAE,EAAE,GACvD,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAC,CAC1C,GACC,CACE,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CACvD,CAAC;AAEN,KAAK,oBAAoB,CAAC,UAAU,IAChC;KAEI,GAAG,IAAI,MAAM,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC1F,GAAG,GACH,KAAK,GACR,UAAU,CAAC,GAAG,CAAC;CACrB,CAAC;AAEN,KAAK,cAAc,CAAC,UAAU,IAAI,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAEzE,KAAK,UAAU,CAAC,UAAU,IACtB;KACM,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GACpD,GAAI,GAAI,IAAK,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE;CACvE,CAAC"
10
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @file Record.Internal.Types.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TPath } from "./Record.Types.ts";
8
+ type FDepthMap = {
9
+ 3: 2;
10
+ 2: 1;
11
+ 1: 0;
12
+ };
13
+ type FDepth = keyof FDepthMap | 0;
14
+ type FValidDepth = keyof FDepthMap;
15
+ type TDepthMinusOne<DepthType extends FDepth> = DepthType extends FValidDepth ? FDepthMap[DepthType] : 0;
16
+ export type TFromPathInternal<RecordType, PathType extends TPath<RecordType>, DepthType extends FDepth = 3> = DepthType extends FValidDepth ? PathType extends `${infer HeadType}.${infer RemainingPathType}` ? HeadType extends keyof RecordType ? RemainingPathType extends keyof RecordType[HeadType] ? TFromPathInternal<RecordType[HeadType], Extract<RemainingPathType, string>, TDepthMinusOne<DepthType>> : never : never : PathType extends keyof RecordType ? RecordType[PathType] : never : PathType extends keyof RecordType ? RecordType[PathType] : never;
17
+ /**
18
+ * @template RecordType - The {@link Record} type from which this path is constructed.
19
+ *
20
+ * @template ParentKey - The use of this parameter--for reasons that I do not
21
+ * understand--prevent an error regarding stack depth when evaluating this type.
22
+ */
23
+ export type TPathInternal<RecordType, ParentKey extends string | undefined = undefined> = (ParentKey extends string ? `${ParentKey}.${Extract<keyof RecordType, string>}` : Extract<keyof RecordType, string>) | (TMapToPath<RecordType>[keyof TMapToPath<RecordType>]);
24
+ type TGetRecordProperties<RecordType> = {
25
+ [Key in keyof RecordType as RecordType[Extract<Key, string>] extends Record<PropertyKey, unknown> ? Key : never]: RecordType[Key];
26
+ };
27
+ type TGetRecordKeys<RecordType> = keyof TGetRecordProperties<RecordType>;
28
+ type TMapToPath<RecordType> = {
29
+ [Key in Extract<TGetRecordKeys<RecordType>, string>]: `${Key}.${TPathInternal<TGetRecordProperties<RecordType>[Key]>}`;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=Record.Internal.Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Record.Internal.Types.d.ts","sourceRoot":"","sources":["../../../Source/Record/Record.Internal.Types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,KAAK,SAAS,GACV;IACI,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;CACR,CAAC;AAEN,KAAK,MAAM,GAAG,MAAM,SAAS,GAAG,CAAC,CAAC;AAClC,KAAK,WAAW,GAAG,MAAM,SAAS,CAAC;AAEnC,KAAK,cAAc,CAAC,SAAS,SAAS,MAAM,IAAI,SAAS,SAAS,WAAW,GACvE,SAAS,CAAC,SAAS,CAAC,GACpB,CAAC,CAAC;AAIR,MAAM,MAAM,iBAAiB,CACzB,UAAU,EACV,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAClC,SAAS,SAAS,MAAM,GAAG,CAAC,IAE5B,SAAS,SAAS,WAAW,GACvB,QAAQ,SAAS,GAAI,MAAM,QAAS,IAAK,MAAM,iBAAkB,EAAE,GAC/D,QAAQ,SAAS,MAAM,UAAU,GAC7B,iBAAiB,SAAS,MAAM,UAAU,CAAC,QAAQ,CAAC,GAChD,iBAAiB,CACf,UAAU,CAAC,QAAQ,CAAC,EACpB,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAClC,cAAc,CAAC,SAAS,CAAC,CAC5B,GACC,KAAK,GACT,KAAK,GACT,QAAQ,SAAS,MAAM,UAAU,GAC7B,UAAU,CAAC,QAAQ,CAAC,GACpB,KAAK,GACb,QAAQ,SAAS,MAAM,UAAU,GAC7B,UAAU,CAAC,QAAQ,CAAC,GACpB,KAAK,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CACrB,UAAU,EACV,SAAS,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAE9C,CACE,SAAS,SAAS,MAAM,GAClB,GAAI,SAAU,IAAK,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAE,EAAE,GACvD,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,CAAC,CAC1C,GACC,CACE,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,CACvD,CAAC;AAEN,KAAK,oBAAoB,CAAC,UAAU,IAChC;KAEI,GAAG,IAAI,MAAM,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAC1F,GAAG,GACH,KAAK,GACR,UAAU,CAAC,GAAG,CAAC;CACrB,CAAC;AAEN,KAAK,cAAc,CAAC,UAAU,IAAI,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAEzE,KAAK,UAAU,CAAC,UAAU,IACtB;KACM,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GACpD,GAAI,GAAI,IAAK,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE;CACvE,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @file Record.Types.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TFromPathInternal, TPathInternal } from "./Record.Internal.Types.cjs";
8
+ import type { TMaybeArray } from "../Array/index.cjs";
9
+ /**
10
+ * Given a {@link RecordType} and a {@link PathType} of the given {@link RecordType},
11
+ * this type evaluates to the type of the property given by the {@link PathType} of
12
+ * the given {@link RecordType}.
13
+ *
14
+ * @template RecordType - The {@link Record} type to which the given {@link PathType}
15
+ * will be applied.
16
+ *
17
+ * @template PathType - The {@link TPath} type that describes the property within the
18
+ * given {@link RecordType} whose type to which this will evaluate.
19
+ */
20
+ export type TFromPath<RecordType, PathType extends TPath<RecordType>> = TFromPathInternal<RecordType, PathType, 3>;
21
+ /**
22
+ * Given a {@link RecordType}, this type is the union of `.`-delimited paths to properties
23
+ * with the {@link RecordType}. Nested properties are supported.
24
+ *
25
+ * @template RecordType - The {@link Record} type to which the given {@link PathType}
26
+ * will be applied.
27
+ */
28
+ export type TPath<RecordType> = TPathInternal<RecordType>;
29
+ /**
30
+ * A simple wrapper to allow passing primitives to functions by-reference.
31
+ *
32
+ * @template Type - The type of the value wrapped by this.
33
+ */
34
+ export type TRef<Type> = {
35
+ Ref: Type | undefined;
36
+ };
37
+ /**
38
+ * The function that maps a {@link Record} to an {@link Array} via {@link MapRecord}.
39
+ *
40
+ * @template KeyType - The type of the keys of the {@link Record} that is transformed by this.
41
+ * @template PropertyType - The type of the values of the properties in the {@link Record}
42
+ * that is transformed by this.
43
+ * @template ElementType - The type of the elements in the {@link Array} that is returned by this.
44
+ */
45
+ export type TMapRecordTransformer<KeyType extends PropertyKey, PropertyType, ElementType> = {
46
+ /**
47
+ * The function that maps a {@link Record} to an {@link Array} via {@link MapRecord}.
48
+ *
49
+ * @param Key - The key of the property that is being mapped.
50
+ * @param Property - The value of the property that is being mapped.
51
+ * @param Index - The index at which this property appears in the {@link Record}
52
+ * that is transformed by this.
53
+ */
54
+ (Key: KeyType, Property: PropertyType, Index: number): ElementType;
55
+ };
56
+ /**
57
+ * The function that maps a {@link Record} to an {@link Array} via {@link FlatMapRecord}.
58
+ *
59
+ * @template KeyType - The type of the keys of the {@link Record} that is transformed by this.
60
+ * @template PropertyType - The type of the values of the properties in the {@link Record}
61
+ * that is transformed by this.
62
+ * @template ElementType - The type of the elements in the {@link Array} that is returned by this.
63
+ */
64
+ export type TFlatMapRecordTransformer<KeyType extends PropertyKey, PropertyType, ElementType> = {
65
+ /**
66
+ * The function that maps a {@link Record} to an {@link Array} via {@link FlatMapRecord}.
67
+ *
68
+ * @param Key - The key of the property that is being mapped.
69
+ * @param Property - The value of the property that is being mapped.
70
+ * @param Index - The index at which this property appears in the {@link Record}
71
+ * that is transformed by this.
72
+ *
73
+ * @returns {TMaybeArray<ElementType>} A single element, or an {@link Array} that resulted
74
+ * from the given property being transformed.
75
+ */
76
+ (Key: KeyType, Property: PropertyType, Index: number): TMaybeArray<ElementType>;
77
+ };
78
+ //# sourceMappingURL=Record.Types.d.cts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Record.Types.d.cts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/Record.Types.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CACjB,UAAU,EACV,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,IAClC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,CAAC,UAAU,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,IAAI,IAAI;IAAE,GAAG,EAAE,IAAI,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,CAC7B,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,IAEX;IACI;;;;;;;OAOG;IACH,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;CACtE,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,CACjC,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,IAEX;IACI;;;;;;;;;;OAUG;IACH,CACI,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,GACd,WAAW,CAAC,WAAW,CAAC,CAAC;CAC/B,CAAC"
10
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @file Record.Types.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TFromPathInternal, TPathInternal } from "./Record.Internal.Types.mjs";
8
+ import type { TMaybeArray } from "../Array/index.mjs";
9
+ /**
10
+ * Given a {@link RecordType} and a {@link PathType} of the given {@link RecordType},
11
+ * this type evaluates to the type of the property given by the {@link PathType} of
12
+ * the given {@link RecordType}.
13
+ *
14
+ * @template RecordType - The {@link Record} type to which the given {@link PathType}
15
+ * will be applied.
16
+ *
17
+ * @template PathType - The {@link TPath} type that describes the property within the
18
+ * given {@link RecordType} whose type to which this will evaluate.
19
+ */
20
+ export type TFromPath<RecordType, PathType extends TPath<RecordType>> = TFromPathInternal<RecordType, PathType, 3>;
21
+ /**
22
+ * Given a {@link RecordType}, this type is the union of `.`-delimited paths to properties
23
+ * with the {@link RecordType}. Nested properties are supported.
24
+ *
25
+ * @template RecordType - The {@link Record} type to which the given {@link PathType}
26
+ * will be applied.
27
+ */
28
+ export type TPath<RecordType> = TPathInternal<RecordType>;
29
+ /**
30
+ * A simple wrapper to allow passing primitives to functions by-reference.
31
+ *
32
+ * @template Type - The type of the value wrapped by this.
33
+ */
34
+ export type TRef<Type> = {
35
+ Ref: Type | undefined;
36
+ };
37
+ /**
38
+ * The function that maps a {@link Record} to an {@link Array} via {@link MapRecord}.
39
+ *
40
+ * @template KeyType - The type of the keys of the {@link Record} that is transformed by this.
41
+ * @template PropertyType - The type of the values of the properties in the {@link Record}
42
+ * that is transformed by this.
43
+ * @template ElementType - The type of the elements in the {@link Array} that is returned by this.
44
+ */
45
+ export type TMapRecordTransformer<KeyType extends PropertyKey, PropertyType, ElementType> = {
46
+ /**
47
+ * The function that maps a {@link Record} to an {@link Array} via {@link MapRecord}.
48
+ *
49
+ * @param Key - The key of the property that is being mapped.
50
+ * @param Property - The value of the property that is being mapped.
51
+ * @param Index - The index at which this property appears in the {@link Record}
52
+ * that is transformed by this.
53
+ */
54
+ (Key: KeyType, Property: PropertyType, Index: number): ElementType;
55
+ };
56
+ /**
57
+ * The function that maps a {@link Record} to an {@link Array} via {@link FlatMapRecord}.
58
+ *
59
+ * @template KeyType - The type of the keys of the {@link Record} that is transformed by this.
60
+ * @template PropertyType - The type of the values of the properties in the {@link Record}
61
+ * that is transformed by this.
62
+ * @template ElementType - The type of the elements in the {@link Array} that is returned by this.
63
+ */
64
+ export type TFlatMapRecordTransformer<KeyType extends PropertyKey, PropertyType, ElementType> = {
65
+ /**
66
+ * The function that maps a {@link Record} to an {@link Array} via {@link FlatMapRecord}.
67
+ *
68
+ * @param Key - The key of the property that is being mapped.
69
+ * @param Property - The value of the property that is being mapped.
70
+ * @param Index - The index at which this property appears in the {@link Record}
71
+ * that is transformed by this.
72
+ *
73
+ * @returns {TMaybeArray<ElementType>} A single element, or an {@link Array} that resulted
74
+ * from the given property being transformed.
75
+ */
76
+ (Key: KeyType, Property: PropertyType, Index: number): TMaybeArray<ElementType>;
77
+ };
78
+ //# sourceMappingURL=Record.Types.d.mts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Record.Types.d.mts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/Record.Types.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CACjB,UAAU,EACV,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,IAClC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,CAAC,UAAU,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,IAAI,IAAI;IAAE,GAAG,EAAE,IAAI,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,CAC7B,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,IAEX;IACI;;;;;;;OAOG;IACH,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;CACtE,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,CACjC,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,IAEX;IACI;;;;;;;;;;OAUG;IACH,CACI,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,GACd,WAAW,CAAC,WAAW,CAAC,CAAC;CAC/B,CAAC"
10
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @file Record.Types.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TFromPathInternal, TPathInternal } from "./Record.Internal.Types.ts";
8
+ import type { TMaybeArray } from "../Array/index.ts";
9
+ /**
10
+ * Given a {@link RecordType} and a {@link PathType} of the given {@link RecordType},
11
+ * this type evaluates to the type of the property given by the {@link PathType} of
12
+ * the given {@link RecordType}.
13
+ *
14
+ * @template RecordType - The {@link Record} type to which the given {@link PathType}
15
+ * will be applied.
16
+ *
17
+ * @template PathType - The {@link TPath} type that describes the property within the
18
+ * given {@link RecordType} whose type to which this will evaluate.
19
+ */
20
+ export type TFromPath<RecordType, PathType extends TPath<RecordType>> = TFromPathInternal<RecordType, PathType, 3>;
21
+ /**
22
+ * Given a {@link RecordType}, this type is the union of `.`-delimited paths to properties
23
+ * with the {@link RecordType}. Nested properties are supported.
24
+ *
25
+ * @template RecordType - The {@link Record} type to which the given {@link PathType}
26
+ * will be applied.
27
+ */
28
+ export type TPath<RecordType> = TPathInternal<RecordType>;
29
+ /**
30
+ * A simple wrapper to allow passing primitives to functions by-reference.
31
+ *
32
+ * @template Type - The type of the value wrapped by this.
33
+ */
34
+ export type TRef<Type> = {
35
+ Ref: Type | undefined;
36
+ };
37
+ /**
38
+ * The function that maps a {@link Record} to an {@link Array} via {@link MapRecord}.
39
+ *
40
+ * @template KeyType - The type of the keys of the {@link Record} that is transformed by this.
41
+ * @template PropertyType - The type of the values of the properties in the {@link Record}
42
+ * that is transformed by this.
43
+ * @template ElementType - The type of the elements in the {@link Array} that is returned by this.
44
+ */
45
+ export type TMapRecordTransformer<KeyType extends PropertyKey, PropertyType, ElementType> = {
46
+ /**
47
+ * The function that maps a {@link Record} to an {@link Array} via {@link MapRecord}.
48
+ *
49
+ * @param Key - The key of the property that is being mapped.
50
+ * @param Property - The value of the property that is being mapped.
51
+ * @param Index - The index at which this property appears in the {@link Record}
52
+ * that is transformed by this.
53
+ */
54
+ (Key: KeyType, Property: PropertyType, Index: number): ElementType;
55
+ };
56
+ /**
57
+ * The function that maps a {@link Record} to an {@link Array} via {@link FlatMapRecord}.
58
+ *
59
+ * @template KeyType - The type of the keys of the {@link Record} that is transformed by this.
60
+ * @template PropertyType - The type of the values of the properties in the {@link Record}
61
+ * that is transformed by this.
62
+ * @template ElementType - The type of the elements in the {@link Array} that is returned by this.
63
+ */
64
+ export type TFlatMapRecordTransformer<KeyType extends PropertyKey, PropertyType, ElementType> = {
65
+ /**
66
+ * The function that maps a {@link Record} to an {@link Array} via {@link FlatMapRecord}.
67
+ *
68
+ * @param Key - The key of the property that is being mapped.
69
+ * @param Property - The value of the property that is being mapped.
70
+ * @param Index - The index at which this property appears in the {@link Record}
71
+ * that is transformed by this.
72
+ *
73
+ * @returns {TMaybeArray<ElementType>} A single element, or an {@link Array} that resulted
74
+ * from the given property being transformed.
75
+ */
76
+ (Key: KeyType, Property: PropertyType, Index: number): TMaybeArray<ElementType>;
77
+ };
78
+ //# sourceMappingURL=Record.Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Record.Types.d.ts","sourceRoot":"","sources":["../../../Source/Record/Record.Types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CACjB,UAAU,EACV,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,IAClC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,CAAC,UAAU,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,IAAI,CAAC,IAAI,IAAI;IAAE,GAAG,EAAE,IAAI,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,CAC7B,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,IAEX;IACI;;;;;;;OAOG;IACH,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;CACtE,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,CACjC,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,IAEX;IACI;;;;;;;;;;OAUG;IACH,CACI,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,GACd,WAAW,CAAC,WAAW,CAAC,CAAC;CAC/B,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @file Record.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TFlatMapRecordTransformer, TFromPath, TMapRecordTransformer, TPath, TRef } from "./Record.Types.cjs";
8
+ /**
9
+ * Set a value within a given {@link InRecord | Record} at a given {@link Path} to be a given
10
+ * {@link Value}.
11
+ *
12
+ * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved
13
+ * by this function.
14
+ * @param Path - The {@link PathType} that describes the property to be retrieved by this.
15
+ * @param Value - The value to be set at the given {@link Path} of the given {@link InRecord | Record}.
16
+ *
17
+ * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a
18
+ * `.`-delimited `string`.
19
+ */
20
+ export declare function SetPropertyFromPath<RecordType extends Record<string | number, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType, Value: TFromPath<RecordType, PathType>): void;
21
+ /**
22
+ * Get a value within a given {@link InRecord | Record} at a given {@link Path}.
23
+ *
24
+ * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved
25
+ * by this function.
26
+ * @param Path - The {@link PathType} that describes the property to be retrieved by this.
27
+ *
28
+ * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a
29
+ * `.`-delimited `string`.
30
+ *
31
+ * @returns {TFromPath<RecordType, PathType>} The value in the {@link InRecord} at the given {@link Path}.
32
+ */
33
+ export declare function GetPropertyFromPath<RecordType extends Record<string, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType): TFromPath<RecordType, PathType>;
34
+ /**
35
+ * Creates a {@link TRef} of a given {@link Type}. Useful for passing
36
+ * primitives to functions by-reference.
37
+ *
38
+ * @template Type - The type of the value wrapped by the returned {@link TRef}.
39
+ *
40
+ * @returns {TRef<Type>} A {@link TRef} of the given {@link Type}.
41
+ */
42
+ export declare function MakeRef<Type>(): TRef<Type>;
43
+ /**
44
+ * Maps a {@link Record} to an {@link Array}.
45
+ *
46
+ * @param InRecord - The {@link Record} over which this function maps.
47
+ * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps
48
+ * the record to an {@link Array}.
49
+ *
50
+ * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.
51
+ */
52
+ export declare function MapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType>;
53
+ /**
54
+ * Maps a {@link Record} to an {@link Array}.
55
+ *
56
+ * @param InRecord - The {@link Record} over which this function maps.
57
+ * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps
58
+ * the record to an {@link Array}.
59
+ *
60
+ * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.
61
+ */
62
+ export declare function FlatMapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TFlatMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType>;
63
+ //# sourceMappingURL=Record.d.cts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Record.d.cts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/Record.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,yBAAyB,EACzB,SAAS,EACT,qBAAqB,EACrB,KAAK,EACL,IAAI,EACP,MAAM,mBAAmB,CAAC;AAK3B;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACnD,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAElC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,GACvC,IAAI,CAkDN;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAElC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,QAAQ,GACf,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAiCjC;AAID;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAK1C;AAKD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACrB,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,EAEX,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EACvC,UAAU,EAAE,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,GACtE,KAAK,CAAC,WAAW,CAAC,CAOpB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CACzB,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,EAEX,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EACvC,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,GAC1E,KAAK,CAAC,WAAW,CAAC,CAUpB"
10
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @file Record.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TFlatMapRecordTransformer, TFromPath, TMapRecordTransformer, TPath, TRef } from "./Record.Types.mjs";
8
+ /**
9
+ * Set a value within a given {@link InRecord | Record} at a given {@link Path} to be a given
10
+ * {@link Value}.
11
+ *
12
+ * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved
13
+ * by this function.
14
+ * @param Path - The {@link PathType} that describes the property to be retrieved by this.
15
+ * @param Value - The value to be set at the given {@link Path} of the given {@link InRecord | Record}.
16
+ *
17
+ * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a
18
+ * `.`-delimited `string`.
19
+ */
20
+ export declare function SetPropertyFromPath<RecordType extends Record<string | number, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType, Value: TFromPath<RecordType, PathType>): void;
21
+ /**
22
+ * Get a value within a given {@link InRecord | Record} at a given {@link Path}.
23
+ *
24
+ * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved
25
+ * by this function.
26
+ * @param Path - The {@link PathType} that describes the property to be retrieved by this.
27
+ *
28
+ * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a
29
+ * `.`-delimited `string`.
30
+ *
31
+ * @returns {TFromPath<RecordType, PathType>} The value in the {@link InRecord} at the given {@link Path}.
32
+ */
33
+ export declare function GetPropertyFromPath<RecordType extends Record<string, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType): TFromPath<RecordType, PathType>;
34
+ /**
35
+ * Creates a {@link TRef} of a given {@link Type}. Useful for passing
36
+ * primitives to functions by-reference.
37
+ *
38
+ * @template Type - The type of the value wrapped by the returned {@link TRef}.
39
+ *
40
+ * @returns {TRef<Type>} A {@link TRef} of the given {@link Type}.
41
+ */
42
+ export declare function MakeRef<Type>(): TRef<Type>;
43
+ /**
44
+ * Maps a {@link Record} to an {@link Array}.
45
+ *
46
+ * @param InRecord - The {@link Record} over which this function maps.
47
+ * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps
48
+ * the record to an {@link Array}.
49
+ *
50
+ * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.
51
+ */
52
+ export declare function MapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType>;
53
+ /**
54
+ * Maps a {@link Record} to an {@link Array}.
55
+ *
56
+ * @param InRecord - The {@link Record} over which this function maps.
57
+ * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps
58
+ * the record to an {@link Array}.
59
+ *
60
+ * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.
61
+ */
62
+ export declare function FlatMapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TFlatMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType>;
63
+ //# sourceMappingURL=Record.d.mts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Record.d.mts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/Record.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,yBAAyB,EACzB,SAAS,EACT,qBAAqB,EACrB,KAAK,EACL,IAAI,EACP,MAAM,mBAAmB,CAAC;AAK3B;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACnD,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAElC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,GACvC,IAAI,CAkDN;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAElC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,QAAQ,GACf,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAiCjC;AAID;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAK1C;AAKD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACrB,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,EAEX,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EACvC,UAAU,EAAE,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,GACtE,KAAK,CAAC,WAAW,CAAC,CAOpB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CACzB,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,EAEX,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EACvC,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,GAC1E,KAAK,CAAC,WAAW,CAAC,CAUpB"
10
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @file Record.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ import type { TFlatMapRecordTransformer, TFromPath, TMapRecordTransformer, TPath, TRef } from "./Record.Types.ts";
8
+ /**
9
+ * Set a value within a given {@link InRecord | Record} at a given {@link Path} to be a given
10
+ * {@link Value}.
11
+ *
12
+ * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved
13
+ * by this function.
14
+ * @param Path - The {@link PathType} that describes the property to be retrieved by this.
15
+ * @param Value - The value to be set at the given {@link Path} of the given {@link InRecord | Record}.
16
+ *
17
+ * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a
18
+ * `.`-delimited `string`.
19
+ */
20
+ export declare function SetPropertyFromPath<RecordType extends Record<string | number, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType, Value: TFromPath<RecordType, PathType>): void;
21
+ /**
22
+ * Get a value within a given {@link InRecord | Record} at a given {@link Path}.
23
+ *
24
+ * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved
25
+ * by this function.
26
+ * @param Path - The {@link PathType} that describes the property to be retrieved by this.
27
+ *
28
+ * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a
29
+ * `.`-delimited `string`.
30
+ *
31
+ * @returns {TFromPath<RecordType, PathType>} The value in the {@link InRecord} at the given {@link Path}.
32
+ */
33
+ export declare function GetPropertyFromPath<RecordType extends Record<string, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType): TFromPath<RecordType, PathType>;
34
+ /**
35
+ * Creates a {@link TRef} of a given {@link Type}. Useful for passing
36
+ * primitives to functions by-reference.
37
+ *
38
+ * @template Type - The type of the value wrapped by the returned {@link TRef}.
39
+ *
40
+ * @returns {TRef<Type>} A {@link TRef} of the given {@link Type}.
41
+ */
42
+ export declare function MakeRef<Type>(): TRef<Type>;
43
+ /**
44
+ * Maps a {@link Record} to an {@link Array}.
45
+ *
46
+ * @param InRecord - The {@link Record} over which this function maps.
47
+ * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps
48
+ * the record to an {@link Array}.
49
+ *
50
+ * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.
51
+ */
52
+ export declare function MapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType>;
53
+ /**
54
+ * Maps a {@link Record} to an {@link Array}.
55
+ *
56
+ * @param InRecord - The {@link Record} over which this function maps.
57
+ * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps
58
+ * the record to an {@link Array}.
59
+ *
60
+ * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.
61
+ */
62
+ export declare function FlatMapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TFlatMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType>;
63
+ //# sourceMappingURL=Record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Record.d.ts","sourceRoot":"","sources":["../../../Source/Record/Record.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,yBAAyB,EACzB,SAAS,EACT,qBAAqB,EACrB,KAAK,EACL,IAAI,EACP,MAAM,mBAAmB,CAAC;AAK3B;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACnD,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAElC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,GACvC,IAAI,CAkDN;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,QAAQ,SAAS,KAAK,CAAC,UAAU,CAAC,EAElC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,QAAQ,GACf,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAiCjC;AAID;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAK1C;AAKD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACrB,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,EAEX,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EACvC,UAAU,EAAE,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,GACtE,KAAK,CAAC,WAAW,CAAC,CAOpB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CACzB,OAAO,SAAS,WAAW,EAC3B,YAAY,EACZ,WAAW,EAEX,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EACvC,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,GAC1E,KAAK,CAAC,WAAW,CAAC,CAUpB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file index.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ export * from "./Record.cjs";
8
+ export * from "./Record.Types.cjs";
9
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "index.d.cts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/index.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"
10
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file index.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ export * from "./Record.mjs";
8
+ export * from "./Record.Types.mjs";
9
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "index.d.mts",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../Source/Record/index.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"
10
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file index.ts
3
+ * @author Gage Sorrell <gage@sorrell.sh>
4
+ * @copyright (c) 2026 Gage Sorrell
5
+ * @license MIT
6
+ */
7
+ export * from "./Record.ts";
8
+ export * from "./Record.Types.ts";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Source/Record/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // Source/Record/index.ts
21
+ var Record_exports = {};
22
+ __export(Record_exports, {
23
+ FlatMapRecord: () => FlatMapRecord,
24
+ GetPropertyFromPath: () => GetPropertyFromPath,
25
+ MakeRef: () => MakeRef,
26
+ MapRecord: () => MapRecord,
27
+ SetPropertyFromPath: () => SetPropertyFromPath
28
+ });
29
+ module.exports = __toCommonJS(Record_exports);
30
+
31
+ // Source/Record/Record.ts
32
+ function SetPropertyFromPath(InRecord, Path, Value) {
33
+ if (Array.isArray(Path)) {
34
+ throw new Error("SetPropertyFromPath does not support Array-based paths yet.");
35
+ }
36
+ const PathSplit = Path.split(".");
37
+ const Last = PathSplit.pop();
38
+ if (Last === void 0) {
39
+ return;
40
+ }
41
+ if (PathSplit.length === 0) {
42
+ if (!Array.isArray(Path)) {
43
+ InRecord.Ref[Path] = Value;
44
+ }
45
+ }
46
+ const Recurrence = (In) => {
47
+ const NextPropertyNameBase = PathSplit.shift();
48
+ if (NextPropertyNameBase !== void 0) {
49
+ const NextPropertyName = isNaN(parseInt(NextPropertyNameBase)) ? NextPropertyNameBase : parseInt(NextPropertyNameBase);
50
+ const Out = In[NextPropertyName];
51
+ return Recurrence(Out);
52
+ } else {
53
+ return In;
54
+ }
55
+ };
56
+ const PropertyRef = Recurrence(InRecord);
57
+ const LastTyped = isNaN(parseInt(Last)) ? Last : parseInt(Last);
58
+ PropertyRef.Ref[LastTyped] = Value;
59
+ }
60
+ function GetPropertyFromPath(InRecord, Path) {
61
+ if (Array.isArray(Path)) {
62
+ throw new Error("GetPropertyFromPath does not support Array-based paths yet.");
63
+ }
64
+ const PathSplit = Path.split(".");
65
+ const Recurrence = (In, Index = 0) => {
66
+ const Key = isNaN(parseInt(PathSplit[Index] || "")) ? PathSplit[Index] : parseInt(PathSplit[Index] || "");
67
+ if (Key !== void 0) {
68
+ const Next = In[Key];
69
+ if (Index !== PathSplit.length - 1) {
70
+ return Recurrence(Next, Index + 1);
71
+ } else {
72
+ return Next;
73
+ }
74
+ } else {
75
+ return void 0;
76
+ }
77
+ };
78
+ return Recurrence(InRecord);
79
+ }
80
+ function MakeRef() {
81
+ return {
82
+ Ref: void 0
83
+ };
84
+ }
85
+ function MapRecord(InRecord, InFunction) {
86
+ return Object.keys(InRecord).map((InKey, Index) => {
87
+ const Key = InKey;
88
+ return InFunction(Key, InRecord[Key], Index);
89
+ });
90
+ }
91
+ function FlatMapRecord(InRecord, InFunction) {
92
+ return Object.keys(InRecord).flatMap((InKey, Index) => {
93
+ const Key = InKey;
94
+ const Transform = InFunction(Key, InRecord[Key], Index);
95
+ return Array.isArray(Transform) ? Transform : [Transform];
96
+ });
97
+ }
98
+ /**
99
+ * @file Record.ts
100
+ * @author Gage Sorrell <gage@sorrell.sh>
101
+ * @copyright (c) 2026 Gage Sorrell
102
+ * @license MIT
103
+ */
104
+ /**
105
+ * @file Record.Types.ts
106
+ * @author Gage Sorrell <gage@sorrell.sh>
107
+ * @copyright (c) 2026 Gage Sorrell
108
+ * @license MIT
109
+ */
110
+ /**
111
+ * @file index.ts
112
+ * @author Gage Sorrell <gage@sorrell.sh>
113
+ * @copyright (c) 2026 Gage Sorrell
114
+ * @license MIT
115
+ */
116
+ //# sourceMappingURL=record.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../Source/Record/index.ts", "../Source/Record/Record.ts"],
4
+ "sourcesContent": ["/**\n * @file index.ts\n * @author Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license MIT\n */\nexport * from \"./Record.ts\";\nexport * from \"./Record.Types.ts\";\n", "/**\n * @file Record.ts\n * @author Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license MIT\n */\nimport type { TFlatMapRecordTransformer, TFromPath, TMapRecordTransformer, TPath, TRef } from \"./Record.Types.ts\";\n// @TODO Write example for `SetPropertyFromPath`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Set a value within a given {@link InRecord | Record} at a given {@link Path} to be a given\n * {@link Value}.\n *\n * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved\n * by this function.\n * @param Path - The {@link PathType} that describes the property to be retrieved by this.\n * @param Value - The value to be set at the given {@link Path} of the given {@link InRecord | Record}.\n *\n * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a\n * `.`-delimited `string`.\n */\nexport function SetPropertyFromPath<RecordType extends Record<string | number, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType, Value: TFromPath<RecordType, PathType>): void {\n type FProperty = TFromPath<RecordType, PathType>;\n if (Array.isArray(Path)) {\n throw new Error(\"SetPropertyFromPath does not support Array-based paths yet.\");\n }\n const PathSplit: Array<string> = Path.split(\".\");\n const Last: string | undefined = PathSplit.pop();\n if (Last === undefined) {\n return;\n }\n if (PathSplit.length === 0) {\n if (!Array.isArray(Path)) {\n ((InRecord.Ref as Record<string, unknown>)[(Path as string)]) = Value;\n }\n }\n const Recurrence = (In: unknown): unknown | undefined => {\n const NextPropertyNameBase: string | undefined = PathSplit.shift();\n if (NextPropertyNameBase !== undefined) {\n const NextPropertyName: string | number = isNaN(parseInt(NextPropertyNameBase))\n ? NextPropertyNameBase\n : parseInt(NextPropertyNameBase);\n const Out: unknown = (In as Record<string, unknown>)[NextPropertyName] as unknown;\n return Recurrence(Out);\n }\n else {\n return In;\n }\n };\n const PropertyRef: TRef<FProperty> = Recurrence(InRecord) as TRef<FProperty>;\n const LastTyped: string | number = isNaN(parseInt(Last))\n ? Last\n : parseInt(Last);\n (PropertyRef.Ref as Record<string, unknown>)[LastTyped] = Value;\n}\n;\n/* eslint-enable jsdoc/require-example */\n// @TODO Write example for `GetPropertyFromPath`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Get a value within a given {@link InRecord | Record} at a given {@link Path}.\n *\n * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved\n * by this function.\n * @param Path - The {@link PathType} that describes the property to be retrieved by this.\n *\n * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a\n * `.`-delimited `string`.\n *\n * @returns {TFromPath<RecordType, PathType>} The value in the {@link InRecord} at the given {@link Path}.\n */\nexport function GetPropertyFromPath<RecordType extends Record<string, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType): TFromPath<RecordType, PathType> {\n if (Array.isArray(Path)) {\n throw new Error(\"GetPropertyFromPath does not support Array-based paths yet.\");\n }\n const PathSplit: Array<string> = Path.split(\".\");\n const Recurrence = (In: unknown, Index: number = 0): unknown => {\n const Key: string | number | undefined = isNaN(parseInt(PathSplit[Index] || \"\"))\n ? PathSplit[Index]\n : parseInt(PathSplit[Index] || \"\");\n if (Key !== undefined) {\n const Next: unknown = (In as Record<string, unknown>)[Key];\n if (Index !== PathSplit.length - 1) {\n return Recurrence(Next, Index + 1);\n }\n else {\n return Next;\n }\n }\n else {\n return undefined;\n }\n };\n return Recurrence(InRecord) as TFromPath<RecordType, PathType>;\n}\n;\n/* eslint-enable jsdoc/require-example */\n/**\n * Creates a {@link TRef} of a given {@link Type}. Useful for passing\n * primitives to functions by-reference.\n *\n * @template Type - The type of the value wrapped by the returned {@link TRef}.\n *\n * @returns {TRef<Type>} A {@link TRef} of the given {@link Type}.\n */\nexport function MakeRef<Type>(): TRef<Type> {\n return {\n Ref: undefined\n } as TRef<Type>;\n}\n;\n// @TODO Write example for `MapRecord`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Maps a {@link Record} to an {@link Array}.\n *\n * @param InRecord - The {@link Record} over which this function maps.\n * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps\n * the record to an {@link Array}.\n *\n * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.\n */\nexport function MapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType> {\n return Object.keys(InRecord).map((InKey: string, Index: number): ElementType => {\n const Key: KeyType = InKey as KeyType;\n return InFunction(Key, InRecord[Key], Index);\n });\n}\n;\n/* eslint-enable jsdoc/require-example */\n// @TODO Write example for `FlatMapRecord`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Maps a {@link Record} to an {@link Array}.\n *\n * @param InRecord - The {@link Record} over which this function maps.\n * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps\n * the record to an {@link Array}.\n *\n * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.\n */\nexport function FlatMapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TFlatMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType> {\n return Object.keys(InRecord).flatMap((InKey: string, Index: number): Array<ElementType> => {\n const Key: KeyType = InKey as KeyType;\n const Transform: ElementType | Array<ElementType> = InFunction(Key, InRecord[Key], Index);\n return Array.isArray(Transform)\n ? Transform\n : [Transform];\n });\n}\n/* eslint-enable jsdoc/require-example */\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACqBO,SAAS,oBAA6G,UAAsB,MAAgB,OAA8C;AAE7M,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,UAAM,IAAI,MAAM,6DAA6D;AAAA,EACjF;AACA,QAAM,YAA2B,KAAK,MAAM,GAAG;AAC/C,QAAM,OAA2B,UAAU,IAAI;AAC/C,MAAI,SAAS,QAAW;AACpB;AAAA,EACJ;AACA,MAAI,UAAU,WAAW,GAAG;AACxB,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACtB,MAAE,SAAS,IAAiC,IAAe,IAAK;AAAA,IACpE;AAAA,EACJ;AACA,QAAM,aAAa,CAAC,OAAqC;AACrD,UAAM,uBAA2C,UAAU,MAAM;AACjE,QAAI,yBAAyB,QAAW;AACpC,YAAM,mBAAoC,MAAM,SAAS,oBAAoB,CAAC,IACxE,uBACA,SAAS,oBAAoB;AACnC,YAAM,MAAgB,GAA+B,gBAAgB;AACrE,aAAO,WAAW,GAAG;AAAA,IACzB,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACA,QAAM,cAA+B,WAAW,QAAQ;AACxD,QAAM,YAA6B,MAAM,SAAS,IAAI,CAAC,IACjD,OACA,SAAS,IAAI;AACnB,EAAC,YAAY,IAAgC,SAAS,IAAI;AAC9D;AAiBO,SAAS,oBAAoG,UAAsB,MAAiD;AACvL,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,UAAM,IAAI,MAAM,6DAA6D;AAAA,EACjF;AACA,QAAM,YAA2B,KAAK,MAAM,GAAG;AAC/C,QAAM,aAAa,CAAC,IAAa,QAAgB,MAAe;AAC5D,UAAM,MAAmC,MAAM,SAAS,UAAU,KAAK,KAAK,EAAE,CAAC,IACzE,UAAU,KAAK,IACf,SAAS,UAAU,KAAK,KAAK,EAAE;AACrC,QAAI,QAAQ,QAAW;AACnB,YAAM,OAAiB,GAA+B,GAAG;AACzD,UAAI,UAAU,UAAU,SAAS,GAAG;AAChC,eAAO,WAAW,MAAM,QAAQ,CAAC;AAAA,MACrC,OACK;AACD,eAAO;AAAA,MACX;AAAA,IACJ,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO,WAAW,QAAQ;AAC9B;AAWO,SAAS,UAA4B;AACxC,SAAO;AAAA,IACH,KAAK;AAAA,EACT;AACJ;AAaO,SAAS,UAAkE,UAAyC,YAA2F;AAClN,SAAO,OAAO,KAAK,QAAQ,EAAE,IAAI,CAAC,OAAe,UAA+B;AAC5E,UAAM,MAAe;AACrB,WAAO,WAAW,KAAK,SAAS,GAAG,GAAG,KAAK;AAAA,EAC/C,CAAC;AACL;AAcO,SAAS,cAAsE,UAAyC,YAA+F;AAC1N,SAAO,OAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,OAAe,UAAsC;AACvF,UAAM,MAAe;AACrB,UAAM,YAA8C,WAAW,KAAK,SAAS,GAAG,GAAG,KAAK;AACxF,WAAO,MAAM,QAAQ,SAAS,IACxB,YACA,CAAC,SAAS;AAAA,EACpB,CAAC;AACL;",
6
+ "names": []
7
+ }
@@ -0,0 +1,93 @@
1
+ // Source/Record/Record.ts
2
+ function SetPropertyFromPath(InRecord, Path, Value) {
3
+ if (Array.isArray(Path)) {
4
+ throw new Error("SetPropertyFromPath does not support Array-based paths yet.");
5
+ }
6
+ const PathSplit = Path.split(".");
7
+ const Last = PathSplit.pop();
8
+ if (Last === void 0) {
9
+ return;
10
+ }
11
+ if (PathSplit.length === 0) {
12
+ if (!Array.isArray(Path)) {
13
+ InRecord.Ref[Path] = Value;
14
+ }
15
+ }
16
+ const Recurrence = (In) => {
17
+ const NextPropertyNameBase = PathSplit.shift();
18
+ if (NextPropertyNameBase !== void 0) {
19
+ const NextPropertyName = isNaN(parseInt(NextPropertyNameBase)) ? NextPropertyNameBase : parseInt(NextPropertyNameBase);
20
+ const Out = In[NextPropertyName];
21
+ return Recurrence(Out);
22
+ } else {
23
+ return In;
24
+ }
25
+ };
26
+ const PropertyRef = Recurrence(InRecord);
27
+ const LastTyped = isNaN(parseInt(Last)) ? Last : parseInt(Last);
28
+ PropertyRef.Ref[LastTyped] = Value;
29
+ }
30
+ function GetPropertyFromPath(InRecord, Path) {
31
+ if (Array.isArray(Path)) {
32
+ throw new Error("GetPropertyFromPath does not support Array-based paths yet.");
33
+ }
34
+ const PathSplit = Path.split(".");
35
+ const Recurrence = (In, Index = 0) => {
36
+ const Key = isNaN(parseInt(PathSplit[Index] || "")) ? PathSplit[Index] : parseInt(PathSplit[Index] || "");
37
+ if (Key !== void 0) {
38
+ const Next = In[Key];
39
+ if (Index !== PathSplit.length - 1) {
40
+ return Recurrence(Next, Index + 1);
41
+ } else {
42
+ return Next;
43
+ }
44
+ } else {
45
+ return void 0;
46
+ }
47
+ };
48
+ return Recurrence(InRecord);
49
+ }
50
+ function MakeRef() {
51
+ return {
52
+ Ref: void 0
53
+ };
54
+ }
55
+ function MapRecord(InRecord, InFunction) {
56
+ return Object.keys(InRecord).map((InKey, Index) => {
57
+ const Key = InKey;
58
+ return InFunction(Key, InRecord[Key], Index);
59
+ });
60
+ }
61
+ function FlatMapRecord(InRecord, InFunction) {
62
+ return Object.keys(InRecord).flatMap((InKey, Index) => {
63
+ const Key = InKey;
64
+ const Transform = InFunction(Key, InRecord[Key], Index);
65
+ return Array.isArray(Transform) ? Transform : [Transform];
66
+ });
67
+ }
68
+ export {
69
+ FlatMapRecord,
70
+ GetPropertyFromPath,
71
+ MakeRef,
72
+ MapRecord,
73
+ SetPropertyFromPath
74
+ };
75
+ /**
76
+ * @file Record.ts
77
+ * @author Gage Sorrell <gage@sorrell.sh>
78
+ * @copyright (c) 2026 Gage Sorrell
79
+ * @license MIT
80
+ */
81
+ /**
82
+ * @file Record.Types.ts
83
+ * @author Gage Sorrell <gage@sorrell.sh>
84
+ * @copyright (c) 2026 Gage Sorrell
85
+ * @license MIT
86
+ */
87
+ /**
88
+ * @file index.ts
89
+ * @author Gage Sorrell <gage@sorrell.sh>
90
+ * @copyright (c) 2026 Gage Sorrell
91
+ * @license MIT
92
+ */
93
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../Source/Record/Record.ts"],
4
+ "sourcesContent": ["/**\n * @file Record.ts\n * @author Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license MIT\n */\nimport type { TFlatMapRecordTransformer, TFromPath, TMapRecordTransformer, TPath, TRef } from \"./Record.Types.ts\";\n// @TODO Write example for `SetPropertyFromPath`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Set a value within a given {@link InRecord | Record} at a given {@link Path} to be a given\n * {@link Value}.\n *\n * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved\n * by this function.\n * @param Path - The {@link PathType} that describes the property to be retrieved by this.\n * @param Value - The value to be set at the given {@link Path} of the given {@link InRecord | Record}.\n *\n * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a\n * `.`-delimited `string`.\n */\nexport function SetPropertyFromPath<RecordType extends Record<string | number, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType, Value: TFromPath<RecordType, PathType>): void {\n type FProperty = TFromPath<RecordType, PathType>;\n if (Array.isArray(Path)) {\n throw new Error(\"SetPropertyFromPath does not support Array-based paths yet.\");\n }\n const PathSplit: Array<string> = Path.split(\".\");\n const Last: string | undefined = PathSplit.pop();\n if (Last === undefined) {\n return;\n }\n if (PathSplit.length === 0) {\n if (!Array.isArray(Path)) {\n ((InRecord.Ref as Record<string, unknown>)[(Path as string)]) = Value;\n }\n }\n const Recurrence = (In: unknown): unknown | undefined => {\n const NextPropertyNameBase: string | undefined = PathSplit.shift();\n if (NextPropertyNameBase !== undefined) {\n const NextPropertyName: string | number = isNaN(parseInt(NextPropertyNameBase))\n ? NextPropertyNameBase\n : parseInt(NextPropertyNameBase);\n const Out: unknown = (In as Record<string, unknown>)[NextPropertyName] as unknown;\n return Recurrence(Out);\n }\n else {\n return In;\n }\n };\n const PropertyRef: TRef<FProperty> = Recurrence(InRecord) as TRef<FProperty>;\n const LastTyped: string | number = isNaN(parseInt(Last))\n ? Last\n : parseInt(Last);\n (PropertyRef.Ref as Record<string, unknown>)[LastTyped] = Value;\n}\n;\n/* eslint-enable jsdoc/require-example */\n// @TODO Write example for `GetPropertyFromPath`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Get a value within a given {@link InRecord | Record} at a given {@link Path}.\n *\n * @param InRecord - The {@link Record} that holds the value with path {@link Path} to be retrieved\n * by this function.\n * @param Path - The {@link PathType} that describes the property to be retrieved by this.\n *\n * @throws {Error} An {@link Error} iff the given {@link Path} is an {@link Array}, rather than a\n * `.`-delimited `string`.\n *\n * @returns {TFromPath<RecordType, PathType>} The value in the {@link InRecord} at the given {@link Path}.\n */\nexport function GetPropertyFromPath<RecordType extends Record<string, unknown>, PathType extends TPath<RecordType>>(InRecord: RecordType, Path: PathType): TFromPath<RecordType, PathType> {\n if (Array.isArray(Path)) {\n throw new Error(\"GetPropertyFromPath does not support Array-based paths yet.\");\n }\n const PathSplit: Array<string> = Path.split(\".\");\n const Recurrence = (In: unknown, Index: number = 0): unknown => {\n const Key: string | number | undefined = isNaN(parseInt(PathSplit[Index] || \"\"))\n ? PathSplit[Index]\n : parseInt(PathSplit[Index] || \"\");\n if (Key !== undefined) {\n const Next: unknown = (In as Record<string, unknown>)[Key];\n if (Index !== PathSplit.length - 1) {\n return Recurrence(Next, Index + 1);\n }\n else {\n return Next;\n }\n }\n else {\n return undefined;\n }\n };\n return Recurrence(InRecord) as TFromPath<RecordType, PathType>;\n}\n;\n/* eslint-enable jsdoc/require-example */\n/**\n * Creates a {@link TRef} of a given {@link Type}. Useful for passing\n * primitives to functions by-reference.\n *\n * @template Type - The type of the value wrapped by the returned {@link TRef}.\n *\n * @returns {TRef<Type>} A {@link TRef} of the given {@link Type}.\n */\nexport function MakeRef<Type>(): TRef<Type> {\n return {\n Ref: undefined\n } as TRef<Type>;\n}\n;\n// @TODO Write example for `MapRecord`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Maps a {@link Record} to an {@link Array}.\n *\n * @param InRecord - The {@link Record} over which this function maps.\n * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps\n * the record to an {@link Array}.\n *\n * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.\n */\nexport function MapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType> {\n return Object.keys(InRecord).map((InKey: string, Index: number): ElementType => {\n const Key: KeyType = InKey as KeyType;\n return InFunction(Key, InRecord[Key], Index);\n });\n}\n;\n/* eslint-enable jsdoc/require-example */\n// @TODO Write example for `FlatMapRecord`.\n/* eslint-disable jsdoc/require-example */\n/**\n * Maps a {@link Record} to an {@link Array}.\n *\n * @param InRecord - The {@link Record} over which this function maps.\n * @param InFunction - The {@link TFlatMapRecordTransformer | transformer} that maps\n * the record to an {@link Array}.\n *\n * @returns {Array<ElementType>} An {@link Array} of elements, mapped from the given {@link InRecord}.\n */\nexport function FlatMapRecord<KeyType extends PropertyKey, PropertyType, ElementType>(InRecord: Record<KeyType, PropertyType>, InFunction: TFlatMapRecordTransformer<KeyType, PropertyType, ElementType>): Array<ElementType> {\n return Object.keys(InRecord).flatMap((InKey: string, Index: number): Array<ElementType> => {\n const Key: KeyType = InKey as KeyType;\n const Transform: ElementType | Array<ElementType> = InFunction(Key, InRecord[Key], Index);\n return Array.isArray(Transform)\n ? Transform\n : [Transform];\n });\n}\n/* eslint-enable jsdoc/require-example */\n"],
5
+ "mappings": ";AAqBO,SAAS,oBAA6G,UAAsB,MAAgB,OAA8C;AAE7M,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,UAAM,IAAI,MAAM,6DAA6D;AAAA,EACjF;AACA,QAAM,YAA2B,KAAK,MAAM,GAAG;AAC/C,QAAM,OAA2B,UAAU,IAAI;AAC/C,MAAI,SAAS,QAAW;AACpB;AAAA,EACJ;AACA,MAAI,UAAU,WAAW,GAAG;AACxB,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACtB,MAAE,SAAS,IAAiC,IAAe,IAAK;AAAA,IACpE;AAAA,EACJ;AACA,QAAM,aAAa,CAAC,OAAqC;AACrD,UAAM,uBAA2C,UAAU,MAAM;AACjE,QAAI,yBAAyB,QAAW;AACpC,YAAM,mBAAoC,MAAM,SAAS,oBAAoB,CAAC,IACxE,uBACA,SAAS,oBAAoB;AACnC,YAAM,MAAgB,GAA+B,gBAAgB;AACrE,aAAO,WAAW,GAAG;AAAA,IACzB,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACA,QAAM,cAA+B,WAAW,QAAQ;AACxD,QAAM,YAA6B,MAAM,SAAS,IAAI,CAAC,IACjD,OACA,SAAS,IAAI;AACnB,EAAC,YAAY,IAAgC,SAAS,IAAI;AAC9D;AAiBO,SAAS,oBAAoG,UAAsB,MAAiD;AACvL,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,UAAM,IAAI,MAAM,6DAA6D;AAAA,EACjF;AACA,QAAM,YAA2B,KAAK,MAAM,GAAG;AAC/C,QAAM,aAAa,CAAC,IAAa,QAAgB,MAAe;AAC5D,UAAM,MAAmC,MAAM,SAAS,UAAU,KAAK,KAAK,EAAE,CAAC,IACzE,UAAU,KAAK,IACf,SAAS,UAAU,KAAK,KAAK,EAAE;AACrC,QAAI,QAAQ,QAAW;AACnB,YAAM,OAAiB,GAA+B,GAAG;AACzD,UAAI,UAAU,UAAU,SAAS,GAAG;AAChC,eAAO,WAAW,MAAM,QAAQ,CAAC;AAAA,MACrC,OACK;AACD,eAAO;AAAA,MACX;AAAA,IACJ,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO,WAAW,QAAQ;AAC9B;AAWO,SAAS,UAA4B;AACxC,SAAO;AAAA,IACH,KAAK;AAAA,EACT;AACJ;AAaO,SAAS,UAAkE,UAAyC,YAA2F;AAClN,SAAO,OAAO,KAAK,QAAQ,EAAE,IAAI,CAAC,OAAe,UAA+B;AAC5E,UAAM,MAAe;AACrB,WAAO,WAAW,KAAK,SAAS,GAAG,GAAG,KAAK;AAAA,EAC/C,CAAC;AACL;AAcO,SAAS,cAAsE,UAAyC,YAA+F;AAC1N,SAAO,OAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,OAAe,UAAsC;AACvF,UAAM,MAAe;AACrB,UAAM,YAA8C,WAAW,KAAK,SAAS,GAAG,GAAG,KAAK;AACxF,WAAO,MAAM,QAAQ,SAAS,IACxB,YACA,CAAC,SAAS;AAAA,EACpB,CAAC;AACL;",
6
+ "names": []
7
+ }
package/ReadMe.md CHANGED
@@ -3,3 +3,7 @@
3
3
  # `@sorrell/utilities`
4
4
 
5
5
  **Purpose.**&ensp;This package hosts general-purpose utility functions and types.
6
+
7
+ ## Documentation
8
+
9
+ `@TODO` [Documentation is available here.](https://utilities.sorrell.sh)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sorrell/utilities",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "private": false,
5
5
  "description": "Various TypeScript utilities.",
6
6
  "keywords": [
@@ -150,6 +150,16 @@
150
150
  "types": "./Distribution/Types/Path/index.d.cts",
151
151
  "default": "./Distribution/path.cjs"
152
152
  }
153
+ },
154
+ "./record": {
155
+ "import": {
156
+ "types": "./Distribution/Types/Record/index.d.mts",
157
+ "default": "./Distribution/record.js"
158
+ },
159
+ "require": {
160
+ "types": "./Distribution/Types/Record/index.d.cts",
161
+ "default": "./Distribution/record.cjs"
162
+ }
153
163
  }
154
164
  },
155
165
  "overrides": {