typetify 0.1.1

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 (185) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +327 -0
  3. package/dist/async/index.d.mts +152 -0
  4. package/dist/async/index.d.ts +152 -0
  5. package/dist/async/index.js +49 -0
  6. package/dist/async/index.js.map +1 -0
  7. package/dist/async/index.mjs +4 -0
  8. package/dist/async/index.mjs.map +1 -0
  9. package/dist/chunk-2LJ6NZ6K.js +108 -0
  10. package/dist/chunk-2LJ6NZ6K.js.map +1 -0
  11. package/dist/chunk-44Y5JSGU.js +145 -0
  12. package/dist/chunk-44Y5JSGU.js.map +1 -0
  13. package/dist/chunk-4NXETABV.mjs +116 -0
  14. package/dist/chunk-4NXETABV.mjs.map +1 -0
  15. package/dist/chunk-6ZBTL74K.js +129 -0
  16. package/dist/chunk-6ZBTL74K.js.map +1 -0
  17. package/dist/chunk-CN3GYRJN.mjs +137 -0
  18. package/dist/chunk-CN3GYRJN.mjs.map +1 -0
  19. package/dist/chunk-CNTE6ZVH.js +359 -0
  20. package/dist/chunk-CNTE6ZVH.js.map +1 -0
  21. package/dist/chunk-DBENOSTA.js +156 -0
  22. package/dist/chunk-DBENOSTA.js.map +1 -0
  23. package/dist/chunk-DWIG5GF2.js +135 -0
  24. package/dist/chunk-DWIG5GF2.js.map +1 -0
  25. package/dist/chunk-EAUTTWTQ.mjs +231 -0
  26. package/dist/chunk-EAUTTWTQ.mjs.map +1 -0
  27. package/dist/chunk-FXWYPHA3.mjs +13 -0
  28. package/dist/chunk-FXWYPHA3.mjs.map +1 -0
  29. package/dist/chunk-GS3PP67B.js +200 -0
  30. package/dist/chunk-GS3PP67B.js.map +1 -0
  31. package/dist/chunk-J5LGTIGS.mjs +9 -0
  32. package/dist/chunk-J5LGTIGS.mjs.map +1 -0
  33. package/dist/chunk-JAOGY4JO.mjs +1007 -0
  34. package/dist/chunk-JAOGY4JO.mjs.map +1 -0
  35. package/dist/chunk-JB6UXRKD.mjs +97 -0
  36. package/dist/chunk-JB6UXRKD.mjs.map +1 -0
  37. package/dist/chunk-JQHUBZ4M.js +88 -0
  38. package/dist/chunk-JQHUBZ4M.js.map +1 -0
  39. package/dist/chunk-L3M7LGKL.mjs +128 -0
  40. package/dist/chunk-L3M7LGKL.mjs.map +1 -0
  41. package/dist/chunk-LT7JK7RJ.js +87 -0
  42. package/dist/chunk-LT7JK7RJ.js.map +1 -0
  43. package/dist/chunk-OEJK37LO.mjs +328 -0
  44. package/dist/chunk-OEJK37LO.mjs.map +1 -0
  45. package/dist/chunk-OPVES6W2.js +16 -0
  46. package/dist/chunk-OPVES6W2.js.map +1 -0
  47. package/dist/chunk-OWNUKWXV.js +291 -0
  48. package/dist/chunk-OWNUKWXV.js.map +1 -0
  49. package/dist/chunk-PQTXSQ4P.js +369 -0
  50. package/dist/chunk-PQTXSQ4P.js.map +1 -0
  51. package/dist/chunk-PZ5AY32C.js +11 -0
  52. package/dist/chunk-PZ5AY32C.js.map +1 -0
  53. package/dist/chunk-QFR7DVAJ.mjs +63 -0
  54. package/dist/chunk-QFR7DVAJ.mjs.map +1 -0
  55. package/dist/chunk-SGQNLTRK.js +73 -0
  56. package/dist/chunk-SGQNLTRK.js.map +1 -0
  57. package/dist/chunk-SIA5BSVY.js +1054 -0
  58. package/dist/chunk-SIA5BSVY.js.map +1 -0
  59. package/dist/chunk-SRDWUHDY.mjs +188 -0
  60. package/dist/chunk-SRDWUHDY.mjs.map +1 -0
  61. package/dist/chunk-TXU7NTT4.js +249 -0
  62. package/dist/chunk-TXU7NTT4.js.map +1 -0
  63. package/dist/chunk-TZEWREAC.mjs +277 -0
  64. package/dist/chunk-TZEWREAC.mjs.map +1 -0
  65. package/dist/chunk-V6CWFDIJ.mjs +123 -0
  66. package/dist/chunk-V6CWFDIJ.mjs.map +1 -0
  67. package/dist/chunk-YBJC5WMX.mjs +341 -0
  68. package/dist/chunk-YBJC5WMX.mjs.map +1 -0
  69. package/dist/chunk-YOPAXITF.mjs +75 -0
  70. package/dist/chunk-YOPAXITF.mjs.map +1 -0
  71. package/dist/chunk-ZE4FDBRI.mjs +79 -0
  72. package/dist/chunk-ZE4FDBRI.mjs.map +1 -0
  73. package/dist/collection/index.d.mts +291 -0
  74. package/dist/collection/index.d.ts +291 -0
  75. package/dist/collection/index.js +125 -0
  76. package/dist/collection/index.js.map +1 -0
  77. package/dist/collection/index.mjs +4 -0
  78. package/dist/collection/index.mjs.map +1 -0
  79. package/dist/core/index.d.mts +85 -0
  80. package/dist/core/index.d.ts +85 -0
  81. package/dist/core/index.js +41 -0
  82. package/dist/core/index.js.map +1 -0
  83. package/dist/core/index.mjs +4 -0
  84. package/dist/core/index.mjs.map +1 -0
  85. package/dist/decorator/index.d.mts +165 -0
  86. package/dist/decorator/index.d.ts +165 -0
  87. package/dist/decorator/index.js +57 -0
  88. package/dist/decorator/index.js.map +1 -0
  89. package/dist/decorator/index.mjs +4 -0
  90. package/dist/decorator/index.mjs.map +1 -0
  91. package/dist/dx/index.d.mts +125 -0
  92. package/dist/dx/index.d.ts +125 -0
  93. package/dist/dx/index.js +53 -0
  94. package/dist/dx/index.js.map +1 -0
  95. package/dist/dx/index.mjs +4 -0
  96. package/dist/dx/index.mjs.map +1 -0
  97. package/dist/flow/index.d.mts +165 -0
  98. package/dist/flow/index.d.ts +165 -0
  99. package/dist/flow/index.js +50 -0
  100. package/dist/flow/index.js.map +1 -0
  101. package/dist/flow/index.mjs +5 -0
  102. package/dist/flow/index.mjs.map +1 -0
  103. package/dist/fn/index.d.mts +77 -0
  104. package/dist/fn/index.d.ts +77 -0
  105. package/dist/fn/index.js +37 -0
  106. package/dist/fn/index.js.map +1 -0
  107. package/dist/fn/index.mjs +4 -0
  108. package/dist/fn/index.mjs.map +1 -0
  109. package/dist/guards/index.d.mts +165 -0
  110. package/dist/guards/index.d.ts +165 -0
  111. package/dist/guards/index.js +69 -0
  112. package/dist/guards/index.js.map +1 -0
  113. package/dist/guards/index.mjs +4 -0
  114. package/dist/guards/index.mjs.map +1 -0
  115. package/dist/index.d.mts +228 -0
  116. package/dist/index.d.ts +228 -0
  117. package/dist/index.js +775 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/index.mjs +51 -0
  120. package/dist/index.mjs.map +1 -0
  121. package/dist/input/index.d.mts +185 -0
  122. package/dist/input/index.d.ts +185 -0
  123. package/dist/input/index.js +74 -0
  124. package/dist/input/index.js.map +1 -0
  125. package/dist/input/index.mjs +5 -0
  126. package/dist/input/index.mjs.map +1 -0
  127. package/dist/iterator/index.d.mts +209 -0
  128. package/dist/iterator/index.d.ts +209 -0
  129. package/dist/iterator/index.js +522 -0
  130. package/dist/iterator/index.js.map +1 -0
  131. package/dist/iterator/index.mjs +502 -0
  132. package/dist/iterator/index.mjs.map +1 -0
  133. package/dist/logic/index.d.mts +531 -0
  134. package/dist/logic/index.d.ts +531 -0
  135. package/dist/logic/index.js +416 -0
  136. package/dist/logic/index.js.map +1 -0
  137. package/dist/logic/index.mjs +367 -0
  138. package/dist/logic/index.mjs.map +1 -0
  139. package/dist/math/index.d.mts +86 -0
  140. package/dist/math/index.d.ts +86 -0
  141. package/dist/math/index.js +45 -0
  142. package/dist/math/index.js.map +1 -0
  143. package/dist/math/index.mjs +4 -0
  144. package/dist/math/index.mjs.map +1 -0
  145. package/dist/narrowing/index.d.mts +429 -0
  146. package/dist/narrowing/index.d.ts +429 -0
  147. package/dist/narrowing/index.js +220 -0
  148. package/dist/narrowing/index.js.map +1 -0
  149. package/dist/narrowing/index.mjs +186 -0
  150. package/dist/narrowing/index.mjs.map +1 -0
  151. package/dist/object/index.d.mts +327 -0
  152. package/dist/object/index.d.ts +327 -0
  153. package/dist/object/index.js +113 -0
  154. package/dist/object/index.js.map +1 -0
  155. package/dist/object/index.mjs +4 -0
  156. package/dist/object/index.mjs.map +1 -0
  157. package/dist/result/index.d.mts +201 -0
  158. package/dist/result/index.d.ts +201 -0
  159. package/dist/result/index.js +86 -0
  160. package/dist/result/index.js.map +1 -0
  161. package/dist/result/index.mjs +5 -0
  162. package/dist/result/index.mjs.map +1 -0
  163. package/dist/schema/index.d.mts +216 -0
  164. package/dist/schema/index.d.ts +216 -0
  165. package/dist/schema/index.js +410 -0
  166. package/dist/schema/index.js.map +1 -0
  167. package/dist/schema/index.mjs +384 -0
  168. package/dist/schema/index.mjs.map +1 -0
  169. package/dist/string/index.d.mts +102 -0
  170. package/dist/string/index.d.ts +102 -0
  171. package/dist/string/index.js +49 -0
  172. package/dist/string/index.js.map +1 -0
  173. package/dist/string/index.mjs +4 -0
  174. package/dist/string/index.mjs.map +1 -0
  175. package/dist/typed/index.d.mts +1962 -0
  176. package/dist/typed/index.d.ts +1962 -0
  177. package/dist/typed/index.js +193 -0
  178. package/dist/typed/index.js.map +1 -0
  179. package/dist/typed/index.mjs +4 -0
  180. package/dist/typed/index.mjs.map +1 -0
  181. package/dist/types-Db0vauC3.d.mts +258 -0
  182. package/dist/types-Db0vauC3.d.ts +258 -0
  183. package/dist/types-VsDp2t8s.d.mts +30 -0
  184. package/dist/types-VsDp2t8s.d.ts +30 -0
  185. package/package.json +157 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/object/index.ts","../src/object/pick.ts","../src/object/omit.ts","../src/object/keysTyped.ts","../src/object/valuesTyped.ts","../src/object/entriesTyped.ts","../src/object/fromEntriesTyped.ts","../src/object/mapObject.ts","../src/object/filterObject.ts","../src/object/mergeShallow.ts","../src/object/clone.ts","../src/object/cloneDeep.ts","../src/object/get.ts","../src/object/set.ts","../src/object/invert.ts","../src/object/deepMerge.ts","../src/object/isEqual.ts","../src/object/has.ts","../src/object/unset.ts","../src/object/paths.ts","../src/object/transform.ts","../src/object/deepGet.ts"],"names":["__export"],"mappings":"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","file":"chunk-PQTXSQ4P.js","sourcesContent":["export { pick } from './pick'\nexport { omit } from './omit'\nexport { keysTyped } from './keysTyped'\nexport { valuesTyped } from './valuesTyped'\nexport { entriesTyped } from './entriesTyped'\nexport { fromEntriesTyped } from './fromEntriesTyped'\nexport { mapObject } from './mapObject'\nexport { filterObject } from './filterObject'\nexport { mergeShallow } from './mergeShallow'\nexport { clone } from './clone'\nexport { cloneDeep } from './cloneDeep'\nexport { get } from './get'\nexport { set } from './set'\nexport { invert } from './invert'\nexport { deepMerge } from './deepMerge'\nexport { isEqual } from './isEqual'\nexport { has } from './has'\nexport { unset } from './unset'\nexport { paths } from './paths'\nexport { transform } from './transform'\nexport { deepGet, deepGetOr, deepSet, deepHas, deepPath, deepPluck } from './deepGet'\nexport type { Paths, PathValue } from './deepGet'\n","/**\n * Creates a new object with only the specified keys.\n * Type-safe alternative to lodash pick.\n *\n * @example\n * const user = { id: 1, name: 'John', email: 'john@example.com' }\n * const picked = pick(user, ['id', 'name'])\n * // { id: 1, name: 'John' }\n */\nexport function pick<T extends object, K extends keyof T>(\n obj: T,\n keys: readonly K[]\n): Pick<T, K> {\n const result = {} as Pick<T, K>\n\n for (const key of keys) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = obj[key]\n }\n }\n\n return result\n}\n","/**\n * Creates a new object without the specified keys.\n * Type-safe alternative to lodash omit.\n *\n * @example\n * const user = { id: 1, name: 'John', password: 'secret' }\n * const safe = omit(user, ['password'])\n * // { id: 1, name: 'John' }\n */\nexport function omit<T extends object, K extends keyof T>(\n obj: T,\n keys: readonly K[]\n): Omit<T, K> {\n const result = { ...obj }\n const keysSet = new Set<PropertyKey>(keys)\n\n for (const key of keysSet) {\n delete (result as Record<PropertyKey, unknown>)[key]\n }\n\n return result as Omit<T, K>\n}\n","/**\n * Returns the keys of an object with proper typing.\n * Unlike Object.keys(), this returns (keyof T)[] instead of string[].\n *\n * @example\n * const user = { id: 1, name: 'John' }\n * const keys = keysTyped(user) // ('id' | 'name')[]\n */\nexport function keysTyped<T extends object>(obj: T): (keyof T)[] {\n return Object.keys(obj) as (keyof T)[]\n}\n","/**\n * Returns the values of an object with proper typing.\n * Unlike Object.values(), this returns T[keyof T][] instead of unknown[].\n *\n * @example\n * const user = { id: 1, name: 'John' }\n * const values = valuesTyped(user) // (number | string)[]\n */\nexport function valuesTyped<T extends object>(obj: T): T[keyof T][] {\n return Object.values(obj) as T[keyof T][]\n}\n","/**\n * Returns the entries of an object with proper typing.\n * Unlike Object.entries(), this returns [keyof T, T[keyof T]][] instead of [string, unknown][].\n *\n * @example\n * const user = { id: 1, name: 'John' }\n * for (const [key, value] of entriesTyped(user)) {\n * // key is 'id' | 'name', value is number | string\n * }\n */\nexport function entriesTyped<T extends object>(\n obj: T\n): [keyof T, T[keyof T]][] {\n return Object.entries(obj) as [keyof T, T[keyof T]][]\n}\n","/**\n * Creates an object from entries with proper typing.\n * Unlike Object.fromEntries(), this preserves the key-value types.\n *\n * @example\n * const entries = [['id', 1], ['name', 'John']] as const\n * const obj = fromEntriesTyped(entries)\n * // { id: number, name: string }\n */\nexport function fromEntriesTyped<K extends PropertyKey, V>(\n entries: readonly (readonly [K, V])[]\n): Record<K, V> {\n return Object.fromEntries(entries) as Record<K, V>\n}\n","/**\n * Maps over the values of an object, returning a new object with the same keys.\n *\n * @example\n * const prices = { apple: 1, banana: 2 }\n * const doubled = mapObject(prices, (value) => value * 2)\n * // { apple: 2, banana: 4 }\n */\nexport function mapObject<T extends object, U>(\n obj: T,\n fn: (value: T[keyof T], key: keyof T) => U\n): { [K in keyof T]: U } {\n const result = {} as { [K in keyof T]: U }\n\n for (const key of Object.keys(obj) as (keyof T)[]) {\n result[key] = fn(obj[key], key)\n }\n\n return result\n}\n","/**\n * Filters an object's entries based on a predicate function.\n *\n * @example\n * const user = { name: 'John', age: 30, email: null }\n * const defined = filterObject(user, (value) => value !== null)\n * // { name: 'John', age: 30 }\n */\nexport function filterObject<T extends object>(\n obj: T,\n predicate: (value: T[keyof T], key: keyof T) => boolean\n): Partial<T> {\n const result = {} as Partial<T>\n\n for (const key of Object.keys(obj) as (keyof T)[]) {\n if (predicate(obj[key], key)) {\n result[key] = obj[key]\n }\n }\n\n return result\n}\n","/**\n * Shallow merges two objects. Properties from the second object override the first.\n * Type-safe alternative to Object.assign or spread.\n *\n * @example\n * const defaults = { theme: 'light', lang: 'en' }\n * const user = { theme: 'dark' }\n * const config = mergeShallow(defaults, user)\n * // { theme: 'dark', lang: 'en' }\n */\nexport function mergeShallow<T extends object, U extends object>(\n target: T,\n source: U\n): T & U {\n return { ...target, ...source }\n}\n","/**\n * Creates a shallow clone of an object.\n *\n * @example\n * const original = { name: 'John', settings: { theme: 'dark' } }\n * const copy = clone(original)\n * copy.name = 'Jane' // doesn't affect original\n * copy.settings.theme = 'light' // DOES affect original (shallow clone)\n */\nexport function clone<T extends object>(obj: T): T {\n if (Array.isArray(obj)) {\n return [...obj] as unknown as T\n }\n\n return { ...obj }\n}\n","/**\n * Creates a deep clone of an object using structuredClone.\n * Works with most built-in types including Date, Map, Set, ArrayBuffer, etc.\n *\n * @example\n * const original = { name: 'John', settings: { theme: 'dark' } }\n * const copy = cloneDeep(original)\n * copy.settings.theme = 'light' // doesn't affect original\n */\nexport function cloneDeep<T>(obj: T): T {\n return structuredClone(obj)\n}\n","/**\n * Safely gets a nested property from an object.\n * Returns undefined if the path doesn't exist.\n *\n * @example\n * const user = { profile: { name: 'John' } }\n * get(user, ['profile', 'name']) // 'John'\n * get(user, ['profile', 'age']) // undefined\n */\nexport function get<T>(\n obj: unknown,\n path: readonly PropertyKey[]\n): T | undefined {\n let current: unknown = obj\n\n for (const key of path) {\n if (current === null || current === undefined) {\n return undefined\n }\n\n if (typeof current !== 'object') {\n return undefined\n }\n\n current = (current as Record<PropertyKey, unknown>)[key]\n }\n\n return current as T | undefined\n}\n","/**\n * Sets a nested property on an object, creating intermediate objects as needed.\n * Returns a new object (immutable).\n *\n * @example\n * const user = { profile: { name: 'John' } }\n * const updated = set(user, ['profile', 'age'], 30)\n * // { profile: { name: 'John', age: 30 } }\n */\nexport function set<T extends object>(\n obj: T,\n path: readonly PropertyKey[],\n value: unknown\n): T {\n if (path.length === 0) {\n return value as T\n }\n\n const [head, ...rest] = path\n\n if (head === undefined) {\n return obj\n }\n\n const currentValue = (obj as Record<PropertyKey, unknown>)[head]\n\n const newValue =\n rest.length === 0\n ? value\n : set(\n (typeof currentValue === 'object' && currentValue !== null\n ? currentValue\n : {}) as object,\n rest,\n value\n )\n\n if (Array.isArray(obj)) {\n const result = [...obj] as unknown as T\n ;(result as Record<PropertyKey, unknown>)[head] = newValue\n return result\n }\n\n return {\n ...obj,\n [head]: newValue,\n }\n}\n","/**\n * Inverts the keys and values of an object.\n * Values must be strings or numbers.\n *\n * @example\n * const roles = { admin: 1, user: 2 }\n * const inverted = invert(roles)\n * // { '1': 'admin', '2': 'user' }\n */\nexport function invert<T extends Record<string, string | number>>(\n obj: T\n): Record<string, keyof T> {\n const result: Record<string, keyof T> = {}\n\n for (const key of Object.keys(obj)) {\n const value = obj[key]\n if (value !== undefined) {\n result[String(value)] = key\n }\n }\n\n return result\n}\n","/**\n * Deeply merges two objects. Arrays are replaced, not merged.\n * Returns a new object without mutating the originals.\n *\n * @example\n * const a = { user: { name: 'John', age: 30 } }\n * const b = { user: { age: 31, city: 'NYC' } }\n * deepMerge(a, b) // { user: { name: 'John', age: 31, city: 'NYC' } }\n */\nexport function deepMerge<T extends object, U extends object>(\n target: T,\n source: U\n): T & U {\n const result = { ...target } as T & U\n\n for (const key of Object.keys(source) as (keyof U)[]) {\n const sourceValue = source[key]\n const targetValue = (target as any)[key]\n\n if (\n isPlainObject(sourceValue) &&\n isPlainObject(targetValue)\n ) {\n (result as any)[key] = deepMerge(targetValue, sourceValue)\n } else {\n (result as any)[key] = sourceValue\n }\n }\n\n return result\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') return false\n const proto = Object.getPrototypeOf(value)\n return proto === null || proto === Object.prototype\n}\n","/**\n * Performs a deep equality comparison between two values.\n *\n * @example\n * isEqual({ a: 1 }, { a: 1 }) // true\n * isEqual([1, 2, 3], [1, 2, 3]) // true\n * isEqual({ a: { b: 1 } }, { a: { b: 2 } }) // false\n */\nexport function isEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true\n\n if (a === null || b === null) return a === b\n if (typeof a !== typeof b) return false\n\n if (typeof a !== 'object' || typeof b !== 'object') {\n return a === b\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) return false\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false\n }\n return true\n }\n\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n }\n\n if (a instanceof RegExp && b instanceof RegExp) {\n return a.toString() === b.toString()\n }\n\n const keysA = Object.keys(a as object)\n const keysB = Object.keys(b as object)\n\n if (keysA.length !== keysB.length) return false\n\n for (const key of keysA) {\n if (!keysB.includes(key)) return false\n if (!isEqual((a as any)[key], (b as any)[key])) return false\n }\n\n return true\n}\n","/**\n * Checks if a nested path exists in an object.\n *\n * @example\n * has({ a: { b: { c: 1 } } }, ['a', 'b', 'c']) // true\n * has({ a: { b: 1 } }, ['a', 'c']) // false\n * has({ a: null }, ['a', 'b']) // false\n */\nexport function has(obj: unknown, path: readonly PropertyKey[]): boolean {\n if (path.length === 0) return true\n\n let current: unknown = obj\n\n for (const key of path) {\n if (current === null || current === undefined) return false\n if (typeof current !== 'object') return false\n if (!(key in (current as object))) return false\n current = (current as Record<PropertyKey, unknown>)[key]\n }\n\n return true\n}\n","/**\n * Removes a property at a nested path. Returns a new object (immutable).\n *\n * @example\n * unset({ a: { b: 1, c: 2 } }, ['a', 'b']) // { a: { c: 2 } }\n * unset({ a: 1 }, ['b']) // { a: 1 }\n */\nexport function unset<T extends object>(\n obj: T,\n path: readonly PropertyKey[]\n): T {\n if (path.length === 0) return obj\n\n const head = path[0] as PropertyKey\n const rest = path.slice(1)\n\n if (rest.length === 0) {\n const result = { ...obj }\n delete (result as Record<PropertyKey, unknown>)[head]\n return result\n }\n\n const value = (obj as Record<PropertyKey, unknown>)[head]\n if (value === null || value === undefined || typeof value !== 'object') {\n return obj\n }\n\n return {\n ...obj,\n [head as string]: unset(value as object, rest),\n } as T\n}\n","/**\n * Returns all paths in an object as arrays of keys.\n *\n * @example\n * paths({ a: 1, b: { c: 2, d: 3 } })\n * // [['a'], ['b', 'c'], ['b', 'd']]\n */\nexport function paths(obj: object): PropertyKey[][] {\n const result: PropertyKey[][] = []\n\n function traverse(current: unknown, path: PropertyKey[]): void {\n if (current === null || typeof current !== 'object') {\n if (path.length > 0) {\n result.push(path)\n }\n return\n }\n\n if (Array.isArray(current)) {\n if (current.length === 0) {\n result.push(path)\n } else {\n current.forEach((item, index) => {\n traverse(item, [...path, index])\n })\n }\n return\n }\n\n const keys = Object.keys(current)\n if (keys.length === 0) {\n result.push(path)\n } else {\n for (const key of keys) {\n traverse((current as Record<string, unknown>)[key], [...path, key])\n }\n }\n }\n\n traverse(obj, [])\n return result\n}\n","/**\n * Transforms object values using a function.\n *\n * @example\n * transform({ a: 1, b: 2 }, (value, key) => value * 2)\n * // { a: 2, b: 4 }\n */\nexport function transform<T extends object, U>(\n obj: T,\n fn: (value: T[keyof T], key: keyof T) => U\n): Record<keyof T, U> {\n const result = {} as Record<keyof T, U>\n\n for (const key of Object.keys(obj) as (keyof T)[]) {\n result[key] = fn(obj[key], key)\n }\n\n return result\n}\n","/**\n * Deep Path Access with Full Type Safety\n * \n * This is the most technically complex feature in Typetify.\n * It provides type-safe access to nested properties using string paths like \"user.profile.settings.theme\"\n */\n\n/**\n * Splits a dot-separated path string into a tuple of keys.\n * \"a.b.c\" -> [\"a\", \"b\", \"c\"]\n */\ntype Split<S extends string, D extends string = '.'> = \n S extends `${infer T}${D}${infer U}` \n ? [T, ...Split<U, D>] \n : [S]\n\n/**\n * Gets the type at a specific path in an object.\n * Handles optional properties, arrays, and nested objects.\n */\ntype GetByPath<T, Path extends readonly string[]> = \n Path extends readonly [] \n ? T\n : Path extends readonly [infer First extends string, ...infer Rest extends string[]]\n ? First extends keyof NonNullable<T>\n ? T extends null | undefined\n ? GetByPath<NonNullable<T>[First], Rest> | undefined\n : GetByPath<NonNullable<T>[First], Rest>\n : undefined\n : never\n\n/**\n * Gets the type at a dot-separated string path.\n */\ntype PathValue<T, P extends string> = GetByPath<T, Split<P>>\n\n/**\n * Generates all valid paths for an object type.\n * Limited depth to prevent infinite recursion.\n */\ntype Paths<T, Depth extends number = 5> = Depth extends 0\n ? never\n : T extends object\n ? {\n [K in keyof T & string]: T[K] extends object\n ? K | `${K}.${Paths<T[K], Prev[Depth]>}`\n : K\n }[keyof T & string]\n : never\n\ntype Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n\n/**\n * Type-safe deep property access using dot notation.\n * \n * This solves the pain point of accessing nested properties safely\n * while maintaining full type inference.\n * \n * @example\n * interface User {\n * id: number\n * profile: {\n * name: string\n * settings: {\n * theme: 'light' | 'dark'\n * notifications: boolean\n * }\n * }\n * }\n * \n * const user: User = { ... }\n * \n * // Fully type-safe!\n * const theme = deepGet(user, 'profile.settings.theme')\n * // Type: 'light' | 'dark'\n * \n * // TypeScript error: invalid path\n * const invalid = deepGet(user, 'profile.invalid.path')\n * \n * @example\n * // With optional properties\n * interface Config {\n * database?: {\n * host: string\n * port: number\n * }\n * }\n * \n * const host = deepGet(config, 'database.host')\n * // Type: string | undefined\n */\nexport function deepGet<T extends object, P extends string & Paths<T>>(\n obj: T,\n path: P\n): PathValue<T, P> {\n const keys = path.split('.') as string[]\n let current: unknown = obj\n\n for (const key of keys) {\n if (current === null || current === undefined) {\n return undefined as PathValue<T, P>\n }\n if (typeof current !== 'object') {\n return undefined as PathValue<T, P>\n }\n current = (current as Record<string, unknown>)[key]\n }\n\n return current as PathValue<T, P>\n}\n\n/**\n * Deep get with a default value if the path doesn't exist or is undefined.\n * \n * @example\n * const theme = deepGetOr(user, 'profile.settings.theme', 'light')\n * // Type: 'light' | 'dark' (never undefined)\n */\nexport function deepGetOr<T extends object, P extends string & Paths<T>, D>(\n obj: T,\n path: P,\n defaultValue: D\n): NonNullable<PathValue<T, P>> | D {\n const value = deepGet(obj, path)\n return (value ?? defaultValue) as NonNullable<PathValue<T, P>> | D\n}\n\n/**\n * Type-safe deep property setter.\n * Returns a new object with the property set (immutable).\n * \n * @example\n * const updated = deepSet(user, 'profile.settings.theme', 'dark')\n * // Returns new object, original unchanged\n */\nexport function deepSet<T extends object, P extends string & Paths<T>>(\n obj: T,\n path: P,\n value: PathValue<T, P>\n): T {\n const keys = path.split('.')\n const result = structuredClone(obj)\n \n let current: Record<string, unknown> = result as Record<string, unknown>\n \n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i]!\n if (current[key] === undefined || current[key] === null) {\n current[key] = {}\n }\n current = current[key] as Record<string, unknown>\n }\n \n const lastKey = keys[keys.length - 1]!\n current[lastKey] = value\n return result\n}\n\n/**\n * Checks if a path exists in an object (value is not undefined).\n * \n * @example\n * if (deepHas(user, 'profile.settings.theme')) {\n * // path exists\n * }\n */\nexport function deepHas<T extends object, P extends string & Paths<T>>(\n obj: T,\n path: P\n): boolean {\n return deepGet(obj, path) !== undefined\n}\n\n/**\n * Creates a getter function for a specific path.\n * Useful for repeated access or in pipelines.\n * \n * @example\n * const getTheme = deepPath<User>()('profile.settings.theme')\n * \n * users.map(getTheme)\n * // Type: ('light' | 'dark')[]\n */\nexport function deepPath<T extends object>() {\n return <P extends string & Paths<T>>(path: P) => {\n return (obj: T): PathValue<T, P> => deepGet(obj, path)\n }\n}\n\n/**\n * Plucks a nested property from an array of objects.\n * \n * @example\n * const themes = deepPluck(users, 'profile.settings.theme')\n * // Type: ('light' | 'dark')[]\n */\nexport function deepPluck<T extends object, P extends string & Paths<T>>(\n array: readonly T[],\n path: P\n): PathValue<T, P>[] {\n return array.map(obj => deepGet(obj, path))\n}\n\nexport type { Paths, PathValue, Split, GetByPath }\n"]}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __export = (target, all) => {
5
+ for (var name in all)
6
+ __defProp(target, name, { get: all[name], enumerable: true });
7
+ };
8
+
9
+ exports.__export = __export;
10
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
11
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-PZ5AY32C.js"}
@@ -0,0 +1,63 @@
1
+ import { __export } from './chunk-J5LGTIGS.mjs';
2
+
3
+ // src/core/index.ts
4
+ var core_exports = {};
5
+ __export(core_exports, {
6
+ assert: () => assert,
7
+ assertDefined: () => assertDefined,
8
+ fail: () => fail,
9
+ identity: () => identity,
10
+ isDefined: () => isDefined,
11
+ isNil: () => isNil,
12
+ noop: () => noop,
13
+ unreachable: () => unreachable
14
+ });
15
+
16
+ // src/core/isDefined.ts
17
+ function isDefined(value) {
18
+ return value !== null && value !== void 0;
19
+ }
20
+
21
+ // src/core/isNil.ts
22
+ function isNil(value) {
23
+ return value === null || value === void 0;
24
+ }
25
+
26
+ // src/core/assert.ts
27
+ function assert(condition, message = "Assertion failed") {
28
+ if (!condition) {
29
+ throw new Error(message);
30
+ }
31
+ }
32
+
33
+ // src/core/assertDefined.ts
34
+ function assertDefined(value, message = "Value is not defined") {
35
+ if (value === null || value === void 0) {
36
+ throw new Error(message);
37
+ }
38
+ }
39
+
40
+ // src/core/fail.ts
41
+ function fail(message) {
42
+ throw new Error(message);
43
+ }
44
+
45
+ // src/core/noop.ts
46
+ function noop() {
47
+ }
48
+
49
+ // src/core/identity.ts
50
+ function identity(value) {
51
+ return value;
52
+ }
53
+
54
+ // src/core/unreachable.ts
55
+ function unreachable(value, message) {
56
+ throw new Error(
57
+ message ?? `Unreachable code reached with value: ${JSON.stringify(value)}`
58
+ );
59
+ }
60
+
61
+ export { assert, assertDefined, core_exports, fail, identity, isDefined, isNil, noop, unreachable };
62
+ //# sourceMappingURL=chunk-QFR7DVAJ.mjs.map
63
+ //# sourceMappingURL=chunk-QFR7DVAJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/index.ts","../src/core/isDefined.ts","../src/core/isNil.ts","../src/core/assert.ts","../src/core/assertDefined.ts","../src/core/fail.ts","../src/core/noop.ts","../src/core/identity.ts","../src/core/unreachable.ts"],"names":[],"mappings":";;;AAAA,IAAA,YAAA,GAAA;AAAA,QAAA,CAAA,YAAA,EAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,WAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACQO,SAAS,UAAa,KAAA,EAAyC;AACpE,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;;;ACFO,SAAS,MAAM,KAAA,EAA2C;AAC/D,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;;;ACDO,SAAS,MAAA,CACd,SAAA,EACA,OAAA,GAAkB,kBAAA,EACC;AACnB,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,EACzB;AACF;;;ACPO,SAAS,aAAA,CACd,KAAA,EACA,OAAA,GAAkB,sBAAA,EACE;AACpB,EAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AACzC,IAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,EACzB;AACF;;;ACTO,SAAS,KAAK,OAAA,EAAwB;AAC3C,EAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AACzB;;;ACFO,SAAS,IAAA,GAAa;AAE7B;;;ACDO,SAAS,SAAY,KAAA,EAAa;AACvC,EAAA,OAAO,KAAA;AACT;;;ACEO,SAAS,WAAA,CAAY,OAAc,OAAA,EAAyB;AACjE,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,OAAA,IAAW,CAAA,qCAAA,EAAwC,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,GAC1E;AACF","file":"chunk-QFR7DVAJ.mjs","sourcesContent":["export { isDefined } from './isDefined'\nexport { isNil } from './isNil'\nexport { assert } from './assert'\nexport { assertDefined } from './assertDefined'\nexport { fail } from './fail'\nexport { noop } from './noop'\nexport { identity } from './identity'\nexport { unreachable } from './unreachable'\n","/**\n * Checks if a value is defined (not null and not undefined).\n * Perfect for use with Array.filter() to narrow types.\n *\n * @example\n * const items = [1, null, 2, undefined, 3]\n * const defined = items.filter(isDefined) // number[]\n */\nexport function isDefined<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined\n}\n","/**\n * Checks if a value is null or undefined.\n *\n * @example\n * if (isNil(value)) {\n * // value is null | undefined\n * }\n */\nexport function isNil(value: unknown): value is null | undefined {\n return value === null || value === undefined\n}\n","/**\n * Asserts that a condition is truthy. Throws an error if not.\n * TypeScript will narrow the type after this assertion.\n *\n * @example\n * const user: User | null = getUser()\n * assert(user, 'User not found')\n * // user is now User (not null)\n */\nexport function assert(\n condition: unknown,\n message: string = 'Assertion failed'\n): asserts condition {\n if (!condition) {\n throw new Error(message)\n }\n}\n","/**\n * Asserts that a value is defined (not null and not undefined).\n * Throws an error if the value is null or undefined.\n *\n * @example\n * const user: User | null = getUser()\n * assertDefined(user, 'User not found')\n * // user is now User\n */\nexport function assertDefined<T>(\n value: T | null | undefined,\n message: string = 'Value is not defined'\n): asserts value is T {\n if (value === null || value === undefined) {\n throw new Error(message)\n }\n}\n","/**\n * Throws an error with the given message.\n * Useful for inline error throwing in expressions.\n *\n * @example\n * const value = maybeValue ?? fail('Value is required')\n */\nexport function fail(message: string): never {\n throw new Error(message)\n}\n","/**\n * A function that does nothing.\n * Useful for default callbacks, placeholders, or tests.\n *\n * @example\n * const onClick = props.onClick ?? noop\n */\nexport function noop(): void {\n // Intentionally empty\n}\n","/**\n * Returns the value passed to it.\n * Useful for default transformers or as a placeholder function.\n *\n * @example\n * const transform = options.transform ?? identity\n * const result = transform(value)\n */\nexport function identity<T>(value: T): T {\n return value\n}\n","/**\n * Marks a code path as unreachable.\n * TypeScript will error if this function can be reached.\n * Useful for exhaustive switch statements.\n *\n * @example\n * switch (status) {\n * case 'pending': return handlePending()\n * case 'done': return handleDone()\n * default: unreachable(status)\n * }\n */\nexport function unreachable(value: never, message?: string): never {\n throw new Error(\n message ?? `Unreachable code reached with value: ${JSON.stringify(value)}`\n )\n}\n"]}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
4
+
5
+ // src/core/index.ts
6
+ var core_exports = {};
7
+ chunkPZ5AY32C_js.__export(core_exports, {
8
+ assert: () => assert,
9
+ assertDefined: () => assertDefined,
10
+ fail: () => fail,
11
+ identity: () => identity,
12
+ isDefined: () => isDefined,
13
+ isNil: () => isNil,
14
+ noop: () => noop,
15
+ unreachable: () => unreachable
16
+ });
17
+
18
+ // src/core/isDefined.ts
19
+ function isDefined(value) {
20
+ return value !== null && value !== void 0;
21
+ }
22
+
23
+ // src/core/isNil.ts
24
+ function isNil(value) {
25
+ return value === null || value === void 0;
26
+ }
27
+
28
+ // src/core/assert.ts
29
+ function assert(condition, message = "Assertion failed") {
30
+ if (!condition) {
31
+ throw new Error(message);
32
+ }
33
+ }
34
+
35
+ // src/core/assertDefined.ts
36
+ function assertDefined(value, message = "Value is not defined") {
37
+ if (value === null || value === void 0) {
38
+ throw new Error(message);
39
+ }
40
+ }
41
+
42
+ // src/core/fail.ts
43
+ function fail(message) {
44
+ throw new Error(message);
45
+ }
46
+
47
+ // src/core/noop.ts
48
+ function noop() {
49
+ }
50
+
51
+ // src/core/identity.ts
52
+ function identity(value) {
53
+ return value;
54
+ }
55
+
56
+ // src/core/unreachable.ts
57
+ function unreachable(value, message) {
58
+ throw new Error(
59
+ message ?? `Unreachable code reached with value: ${JSON.stringify(value)}`
60
+ );
61
+ }
62
+
63
+ exports.assert = assert;
64
+ exports.assertDefined = assertDefined;
65
+ exports.core_exports = core_exports;
66
+ exports.fail = fail;
67
+ exports.identity = identity;
68
+ exports.isDefined = isDefined;
69
+ exports.isNil = isNil;
70
+ exports.noop = noop;
71
+ exports.unreachable = unreachable;
72
+ //# sourceMappingURL=chunk-SGQNLTRK.js.map
73
+ //# sourceMappingURL=chunk-SGQNLTRK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/index.ts","../src/core/isDefined.ts","../src/core/isNil.ts","../src/core/assert.ts","../src/core/assertDefined.ts","../src/core/fail.ts","../src/core/noop.ts","../src/core/identity.ts","../src/core/unreachable.ts"],"names":["__export"],"mappings":";;;;;AAAA,IAAA,YAAA,GAAA;AAAAA,yBAAA,CAAA,YAAA,EAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,IAAA,EAAA,MAAA,IAAA;AAAA,EAAA,WAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACQO,SAAS,UAAa,KAAA,EAAyC;AACpE,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;;;ACFO,SAAS,MAAM,KAAA,EAA2C;AAC/D,EAAA,OAAO,KAAA,KAAU,QAAQ,KAAA,KAAU,MAAA;AACrC;;;ACDO,SAAS,MAAA,CACd,SAAA,EACA,OAAA,GAAkB,kBAAA,EACC;AACnB,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,EACzB;AACF;;;ACPO,SAAS,aAAA,CACd,KAAA,EACA,OAAA,GAAkB,sBAAA,EACE;AACpB,EAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AACzC,IAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,EACzB;AACF;;;ACTO,SAAS,KAAK,OAAA,EAAwB;AAC3C,EAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AACzB;;;ACFO,SAAS,IAAA,GAAa;AAE7B;;;ACDO,SAAS,SAAY,KAAA,EAAa;AACvC,EAAA,OAAO,KAAA;AACT;;;ACEO,SAAS,WAAA,CAAY,OAAc,OAAA,EAAyB;AACjE,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,OAAA,IAAW,CAAA,qCAAA,EAAwC,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,GAC1E;AACF","file":"chunk-SGQNLTRK.js","sourcesContent":["export { isDefined } from './isDefined'\nexport { isNil } from './isNil'\nexport { assert } from './assert'\nexport { assertDefined } from './assertDefined'\nexport { fail } from './fail'\nexport { noop } from './noop'\nexport { identity } from './identity'\nexport { unreachable } from './unreachable'\n","/**\n * Checks if a value is defined (not null and not undefined).\n * Perfect for use with Array.filter() to narrow types.\n *\n * @example\n * const items = [1, null, 2, undefined, 3]\n * const defined = items.filter(isDefined) // number[]\n */\nexport function isDefined<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined\n}\n","/**\n * Checks if a value is null or undefined.\n *\n * @example\n * if (isNil(value)) {\n * // value is null | undefined\n * }\n */\nexport function isNil(value: unknown): value is null | undefined {\n return value === null || value === undefined\n}\n","/**\n * Asserts that a condition is truthy. Throws an error if not.\n * TypeScript will narrow the type after this assertion.\n *\n * @example\n * const user: User | null = getUser()\n * assert(user, 'User not found')\n * // user is now User (not null)\n */\nexport function assert(\n condition: unknown,\n message: string = 'Assertion failed'\n): asserts condition {\n if (!condition) {\n throw new Error(message)\n }\n}\n","/**\n * Asserts that a value is defined (not null and not undefined).\n * Throws an error if the value is null or undefined.\n *\n * @example\n * const user: User | null = getUser()\n * assertDefined(user, 'User not found')\n * // user is now User\n */\nexport function assertDefined<T>(\n value: T | null | undefined,\n message: string = 'Value is not defined'\n): asserts value is T {\n if (value === null || value === undefined) {\n throw new Error(message)\n }\n}\n","/**\n * Throws an error with the given message.\n * Useful for inline error throwing in expressions.\n *\n * @example\n * const value = maybeValue ?? fail('Value is required')\n */\nexport function fail(message: string): never {\n throw new Error(message)\n}\n","/**\n * A function that does nothing.\n * Useful for default callbacks, placeholders, or tests.\n *\n * @example\n * const onClick = props.onClick ?? noop\n */\nexport function noop(): void {\n // Intentionally empty\n}\n","/**\n * Returns the value passed to it.\n * Useful for default transformers or as a placeholder function.\n *\n * @example\n * const transform = options.transform ?? identity\n * const result = transform(value)\n */\nexport function identity<T>(value: T): T {\n return value\n}\n","/**\n * Marks a code path as unreachable.\n * TypeScript will error if this function can be reached.\n * Useful for exhaustive switch statements.\n *\n * @example\n * switch (status) {\n * case 'pending': return handlePending()\n * case 'done': return handleDone()\n * default: unreachable(status)\n * }\n */\nexport function unreachable(value: never, message?: string): never {\n throw new Error(\n message ?? `Unreachable code reached with value: ${JSON.stringify(value)}`\n )\n}\n"]}