typetify 2.1.0 → 2.2.0

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 (199) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +108 -0
  3. package/dist/async/index.js +1 -49
  4. package/dist/async/index.mjs +1 -4
  5. package/dist/chunk-272Z3AXV.js +1 -0
  6. package/dist/chunk-4HQERWI6.mjs +1 -0
  7. package/dist/chunk-4JG7CFRK.js +1 -0
  8. package/dist/chunk-5FBZYPQM.mjs +1 -0
  9. package/dist/chunk-5LWNMYHB.js +1 -0
  10. package/dist/chunk-5XQRYI2Q.mjs +1 -0
  11. package/dist/chunk-6HA2SN23.js +1 -0
  12. package/dist/chunk-6NWIIOHH.js +1 -0
  13. package/dist/chunk-7LBL6CYT.js +1 -0
  14. package/dist/chunk-7V3EDYJD.mjs +1 -0
  15. package/dist/chunk-B3R73UK5.mjs +1 -0
  16. package/dist/chunk-EAHFED6V.mjs +1 -0
  17. package/dist/chunk-EKSHS4DL.mjs +1 -0
  18. package/dist/chunk-FYQNKDT3.mjs +1 -0
  19. package/dist/chunk-GKOA3XGQ.js +1 -0
  20. package/dist/chunk-I4YSQ4HB.js +1 -0
  21. package/dist/chunk-JZXLCA2E.mjs +1 -0
  22. package/dist/chunk-M5OMYDI7.mjs +1 -0
  23. package/dist/chunk-MPY3WRLG.mjs +1 -0
  24. package/dist/chunk-MSOFO6QN.js +1 -0
  25. package/dist/chunk-NENRAPOL.mjs +1 -0
  26. package/dist/chunk-NOW4Q26G.mjs +1 -0
  27. package/dist/chunk-P4UNM7SF.js +1 -0
  28. package/dist/chunk-P5E2JDCX.mjs +1 -0
  29. package/dist/chunk-Q7SUL7MD.js +1 -0
  30. package/dist/chunk-QKNZICUO.mjs +1 -0
  31. package/dist/chunk-RHMANSTA.mjs +1 -0
  32. package/dist/chunk-SF64HETW.js +1 -0
  33. package/dist/chunk-T66YO63J.js +1 -0
  34. package/dist/chunk-TNK6EVQK.mjs +1 -0
  35. package/dist/chunk-TSJFKV3R.js +1 -0
  36. package/dist/chunk-TVCWWECJ.mjs +1 -0
  37. package/dist/chunk-W5I352FJ.js +1 -0
  38. package/dist/chunk-WAT4QJB2.js +1 -0
  39. package/dist/chunk-WCG5ODRX.mjs +1 -0
  40. package/dist/chunk-WDFIRO2J.js +1 -0
  41. package/dist/chunk-WOT6VMZA.js +1 -0
  42. package/dist/chunk-WQPSXQT5.js +1 -0
  43. package/dist/chunk-WS743BFA.js +1 -0
  44. package/dist/chunk-XPY5CWKZ.mjs +1 -0
  45. package/dist/collection/index.js +1 -125
  46. package/dist/collection/index.mjs +1 -4
  47. package/dist/core/index.js +1 -41
  48. package/dist/core/index.mjs +1 -4
  49. package/dist/decorator/index.js +1 -57
  50. package/dist/decorator/index.mjs +1 -4
  51. package/dist/dx/index.js +1 -53
  52. package/dist/dx/index.mjs +1 -4
  53. package/dist/flow/index.js +1 -50
  54. package/dist/flow/index.mjs +1 -5
  55. package/dist/fn/index.js +1 -37
  56. package/dist/fn/index.mjs +1 -4
  57. package/dist/guards/index.js +1 -233
  58. package/dist/guards/index.mjs +1 -4
  59. package/dist/index.js +3 -2507
  60. package/dist/index.mjs +3 -1546
  61. package/dist/input/index.js +1 -74
  62. package/dist/input/index.mjs +1 -5
  63. package/dist/iterator/index.js +1 -85
  64. package/dist/iterator/index.mjs +1 -4
  65. package/dist/logic/index.js +1 -201
  66. package/dist/logic/index.mjs +1 -4
  67. package/dist/math/index.js +1 -45
  68. package/dist/math/index.mjs +1 -4
  69. package/dist/narrowing/index.js +1 -141
  70. package/dist/narrowing/index.mjs +1 -4
  71. package/dist/object/index.js +1 -113
  72. package/dist/object/index.mjs +1 -4
  73. package/dist/result/index.js +1 -86
  74. package/dist/result/index.mjs +1 -5
  75. package/dist/schema/index.js +1 -110
  76. package/dist/schema/index.mjs +1 -5
  77. package/dist/string/index.js +1 -49
  78. package/dist/string/index.mjs +1 -4
  79. package/dist/typed/index.js +1 -193
  80. package/dist/typed/index.mjs +1 -4
  81. package/package.json +8 -3
  82. package/dist/async/index.js.map +0 -1
  83. package/dist/async/index.mjs.map +0 -1
  84. package/dist/chunk-2LJ6NZ6K.js +0 -108
  85. package/dist/chunk-2LJ6NZ6K.js.map +0 -1
  86. package/dist/chunk-4NXETABV.mjs +0 -116
  87. package/dist/chunk-4NXETABV.mjs.map +0 -1
  88. package/dist/chunk-6ZBTL74K.js +0 -129
  89. package/dist/chunk-6ZBTL74K.js.map +0 -1
  90. package/dist/chunk-7G4ZSMQX.js +0 -470
  91. package/dist/chunk-7G4ZSMQX.js.map +0 -1
  92. package/dist/chunk-CN3GYRJN.mjs +0 -137
  93. package/dist/chunk-CN3GYRJN.mjs.map +0 -1
  94. package/dist/chunk-CNTE6ZVH.js +0 -359
  95. package/dist/chunk-CNTE6ZVH.js.map +0 -1
  96. package/dist/chunk-CWHYQWNU.mjs +0 -224
  97. package/dist/chunk-CWHYQWNU.mjs.map +0 -1
  98. package/dist/chunk-DBENOSTA.js +0 -156
  99. package/dist/chunk-DBENOSTA.js.map +0 -1
  100. package/dist/chunk-DWIG5GF2.js +0 -135
  101. package/dist/chunk-DWIG5GF2.js.map +0 -1
  102. package/dist/chunk-EAUTTWTQ.mjs +0 -231
  103. package/dist/chunk-EAUTTWTQ.mjs.map +0 -1
  104. package/dist/chunk-FEX5C4OH.mjs +0 -1007
  105. package/dist/chunk-FEX5C4OH.mjs.map +0 -1
  106. package/dist/chunk-FN553YPU.js +0 -441
  107. package/dist/chunk-FN553YPU.js.map +0 -1
  108. package/dist/chunk-FT2EK4AM.mjs +0 -420
  109. package/dist/chunk-FT2EK4AM.mjs.map +0 -1
  110. package/dist/chunk-FXWYPHA3.mjs +0 -13
  111. package/dist/chunk-FXWYPHA3.mjs.map +0 -1
  112. package/dist/chunk-GS3PP67B.js +0 -200
  113. package/dist/chunk-GS3PP67B.js.map +0 -1
  114. package/dist/chunk-IGA3VEZM.mjs +0 -503
  115. package/dist/chunk-IGA3VEZM.mjs.map +0 -1
  116. package/dist/chunk-J5LGTIGS.mjs +0 -9
  117. package/dist/chunk-J5LGTIGS.mjs.map +0 -1
  118. package/dist/chunk-JB6UXRKD.mjs +0 -97
  119. package/dist/chunk-JB6UXRKD.mjs.map +0 -1
  120. package/dist/chunk-JQAQV75V.js +0 -561
  121. package/dist/chunk-JQAQV75V.js.map +0 -1
  122. package/dist/chunk-JQHUBZ4M.js +0 -88
  123. package/dist/chunk-JQHUBZ4M.js.map +0 -1
  124. package/dist/chunk-LT7JK7RJ.js +0 -87
  125. package/dist/chunk-LT7JK7RJ.js.map +0 -1
  126. package/dist/chunk-N6IUADIP.mjs +0 -414
  127. package/dist/chunk-N6IUADIP.mjs.map +0 -1
  128. package/dist/chunk-OEJK37LO.mjs +0 -328
  129. package/dist/chunk-OEJK37LO.mjs.map +0 -1
  130. package/dist/chunk-OKB3MS5F.js +0 -547
  131. package/dist/chunk-OKB3MS5F.js.map +0 -1
  132. package/dist/chunk-OPVES6W2.js +0 -16
  133. package/dist/chunk-OPVES6W2.js.map +0 -1
  134. package/dist/chunk-OWNUKWXV.js +0 -291
  135. package/dist/chunk-OWNUKWXV.js.map +0 -1
  136. package/dist/chunk-POD52NJ3.mjs +0 -526
  137. package/dist/chunk-POD52NJ3.mjs.map +0 -1
  138. package/dist/chunk-PQTXSQ4P.js +0 -369
  139. package/dist/chunk-PQTXSQ4P.js.map +0 -1
  140. package/dist/chunk-PZ5AY32C.js +0 -11
  141. package/dist/chunk-PZ5AY32C.js.map +0 -1
  142. package/dist/chunk-QFR7DVAJ.mjs +0 -63
  143. package/dist/chunk-QFR7DVAJ.mjs.map +0 -1
  144. package/dist/chunk-S535LAXW.js +0 -1054
  145. package/dist/chunk-S535LAXW.js.map +0 -1
  146. package/dist/chunk-SGQNLTRK.js +0 -73
  147. package/dist/chunk-SGQNLTRK.js.map +0 -1
  148. package/dist/chunk-SRDWUHDY.mjs +0 -188
  149. package/dist/chunk-SRDWUHDY.mjs.map +0 -1
  150. package/dist/chunk-TXU7NTT4.js +0 -249
  151. package/dist/chunk-TXU7NTT4.js.map +0 -1
  152. package/dist/chunk-TZEWREAC.mjs +0 -277
  153. package/dist/chunk-TZEWREAC.mjs.map +0 -1
  154. package/dist/chunk-V6CWFDIJ.mjs +0 -123
  155. package/dist/chunk-V6CWFDIJ.mjs.map +0 -1
  156. package/dist/chunk-X55EORNF.js +0 -259
  157. package/dist/chunk-X55EORNF.js.map +0 -1
  158. package/dist/chunk-YBJC5WMX.mjs +0 -341
  159. package/dist/chunk-YBJC5WMX.mjs.map +0 -1
  160. package/dist/chunk-YOPAXITF.mjs +0 -75
  161. package/dist/chunk-YOPAXITF.mjs.map +0 -1
  162. package/dist/chunk-ZE4FDBRI.mjs +0 -79
  163. package/dist/chunk-ZE4FDBRI.mjs.map +0 -1
  164. package/dist/collection/index.js.map +0 -1
  165. package/dist/collection/index.mjs.map +0 -1
  166. package/dist/core/index.js.map +0 -1
  167. package/dist/core/index.mjs.map +0 -1
  168. package/dist/decorator/index.js.map +0 -1
  169. package/dist/decorator/index.mjs.map +0 -1
  170. package/dist/dx/index.js.map +0 -1
  171. package/dist/dx/index.mjs.map +0 -1
  172. package/dist/flow/index.js.map +0 -1
  173. package/dist/flow/index.mjs.map +0 -1
  174. package/dist/fn/index.js.map +0 -1
  175. package/dist/fn/index.mjs.map +0 -1
  176. package/dist/guards/index.js.map +0 -1
  177. package/dist/guards/index.mjs.map +0 -1
  178. package/dist/index.js.map +0 -1
  179. package/dist/index.mjs.map +0 -1
  180. package/dist/input/index.js.map +0 -1
  181. package/dist/input/index.mjs.map +0 -1
  182. package/dist/iterator/index.js.map +0 -1
  183. package/dist/iterator/index.mjs.map +0 -1
  184. package/dist/logic/index.js.map +0 -1
  185. package/dist/logic/index.mjs.map +0 -1
  186. package/dist/math/index.js.map +0 -1
  187. package/dist/math/index.mjs.map +0 -1
  188. package/dist/narrowing/index.js.map +0 -1
  189. package/dist/narrowing/index.mjs.map +0 -1
  190. package/dist/object/index.js.map +0 -1
  191. package/dist/object/index.mjs.map +0 -1
  192. package/dist/result/index.js.map +0 -1
  193. package/dist/result/index.mjs.map +0 -1
  194. package/dist/schema/index.js.map +0 -1
  195. package/dist/schema/index.mjs.map +0 -1
  196. package/dist/string/index.js.map +0 -1
  197. package/dist/string/index.mjs.map +0 -1
  198. package/dist/typed/index.js.map +0 -1
  199. package/dist/typed/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/narrowing/index.ts","../src/narrowing/filterDefined.ts","../src/narrowing/filterTruthy.ts","../src/narrowing/filterByGuard.ts","../src/narrowing/assertType.ts","../src/narrowing/narrowUnion.ts","../src/narrowing/excludeNull.ts","../src/narrowing/refine.ts"],"names":[],"mappings":"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","file":"chunk-CWHYQWNU.mjs","sourcesContent":["/**\n * Narrowing Module\n * \n * Solutions for TypeScript's type narrowing pain points.\n * Each function transforms uncertain types into certain types.\n */\n\nexport { filterDefined, filterDefinedFn } from './filterDefined'\nexport { filterTruthy, filterTruthyFn } from './filterTruthy'\nexport { filterByGuard, filterByRefinement, filterBy, partitionByGuard } from './filterByGuard'\nexport { assertType, assertDefined, assertNotNull, assertCondition, createAssertion } from './assertType'\nexport { narrowUnion, createDiscriminantGuard, switchUnion, exhaustiveCheck } from './narrowUnion'\nexport { \n excludeNull, \n excludeUndefined, \n excludeNullish, \n withDefault, \n withDefaultLazy, \n mapNullable, \n chainNullable \n} from './excludeNull'\nexport { \n refine, \n oneOf, \n allOf, \n not, \n arrayOf, \n objectOf, \n literal, \n optional, \n nullable \n} from './refine'\nexport type { TypeGuard, Refinement, GuardedType, Falsy, Truthy, Defined } from './types'\n","import type { Defined } from './types'\n\n/**\n * Filters an array removing null and undefined values with proper type narrowing.\n * \n * This solves the pain point where `array.filter(x => x != null)` returns\n * `(T | null | undefined)[]` instead of `T[]`.\n * \n * @example\n * const users: (User | null | undefined)[] = [user1, null, user2, undefined]\n * const defined = filterDefined(users)\n * // Type: User[] (not (User | null | undefined)[])\n * \n * @example\n * // Works with complex union types\n * const mixed: (string | number | null)[] = ['a', 1, null, 'b', 2]\n * const result = filterDefined(mixed)\n * // Type: (string | number)[]\n */\nexport function filterDefined<T>(\n array: readonly (T | null | undefined)[]\n): Defined<T>[] {\n return array.filter(\n (item): item is Defined<T> => item !== null && item !== undefined\n )\n}\n\n/**\n * Curried version for use in pipelines\n * \n * @example\n * pipe(\n * users,\n * filterDefinedFn(),\n * map(u => u.name)\n * )\n */\nexport function filterDefinedFn<T>(): (\n array: readonly (T | null | undefined)[]\n) => Defined<T>[] {\n return (array) => filterDefined(array)\n}\n","import type { Truthy } from './types'\n\n/**\n * Filters an array removing all falsy values with proper type narrowing.\n * \n * Removes: false, 0, 0n, '', null, undefined\n * \n * @example\n * const values: (string | number | null | undefined | false)[] = \n * ['hello', 0, '', null, 'world', false, 42]\n * \n * const truthy = filterTruthy(values)\n * // Type: (string | number)[]\n * // Value: ['hello', 'world', 42]\n * \n * @example\n * // Useful for conditional rendering arrays\n * const items = filterTruthy([\n * showHeader && <Header />,\n * <Content />,\n * showFooter && <Footer />\n * ])\n */\nexport function filterTruthy<T>(array: readonly T[]): Truthy<T>[] {\n return array.filter((item): item is Truthy<T> => Boolean(item))\n}\n\n/**\n * Curried version for use in pipelines\n */\nexport function filterTruthyFn<T>(): (array: readonly T[]) => Truthy<T>[] {\n return (array) => filterTruthy(array)\n}\n","import type { TypeGuard, Refinement } from './types'\n\n/**\n * Filters an array using a type guard with proper type narrowing.\n * \n * This is the generic solution for filtering with any type guard.\n * \n * @example\n * const items: unknown[] = [1, 'hello', 2, 'world', null]\n * \n * const strings = filterByGuard(items, isString)\n * // Type: string[]\n * \n * const numbers = filterByGuard(items, isNumber)\n * // Type: number[]\n * \n * @example\n * // With custom type guards\n * interface Admin { role: 'admin'; permissions: string[] }\n * interface User { role: 'user' }\n * type Person = Admin | User\n * \n * const isAdmin = (p: Person): p is Admin => p.role === 'admin'\n * const admins = filterByGuard(people, isAdmin)\n * // Type: Admin[]\n */\nexport function filterByGuard<T, S extends T>(\n array: readonly T[],\n guard: TypeGuard<T, S>\n): S[] {\n return array.filter(guard)\n}\n\n/**\n * Filters with a refinement function that has access to index and array\n */\nexport function filterByRefinement<T, S extends T>(\n array: readonly T[],\n refinement: Refinement<T, S>\n): S[] {\n return array.filter(refinement)\n}\n\n/**\n * Creates a filter function from a type guard for use in pipelines\n * \n * @example\n * pipe(\n * items,\n * filterBy(isString),\n * map(s => s.toUpperCase())\n * )\n */\nexport function filterBy<T, S extends T>(\n guard: TypeGuard<T, S>\n): (array: readonly T[]) => S[] {\n return (array) => filterByGuard(array, guard)\n}\n\n/**\n * Partitions an array by a type guard into [matches, nonMatches]\n * \n * @example\n * const [strings, others] = partitionByGuard(items, isString)\n * // strings: string[]\n * // others: Exclude<typeof items[number], string>[]\n */\nexport function partitionByGuard<T, S extends T>(\n array: readonly T[],\n guard: TypeGuard<T, S>\n): [S[], Exclude<T, S>[]] {\n const matches: S[] = []\n const nonMatches: Exclude<T, S>[] = []\n \n for (const item of array) {\n if (guard(item)) {\n matches.push(item)\n } else {\n nonMatches.push(item as Exclude<T, S>)\n }\n }\n \n return [matches, nonMatches]\n}\n","import type { TypeGuard } from './types'\n\n/**\n * Asserts that a value matches a type guard, throwing if it doesn't.\n * This is an assertion function that narrows the type in the current scope.\n * \n * @example\n * function processUser(data: unknown) {\n * assertType(data, isUser, 'Expected user data')\n * // After this line, data is typed as User\n * console.log(data.name)\n * }\n * \n * @example\n * // With custom error\n * assertType(response, isApiResponse, () => \n * new ValidationError('Invalid API response', response)\n * )\n */\nexport function assertType<T, S extends T>(\n value: T,\n guard: TypeGuard<T, S>,\n message?: string | (() => Error)\n): asserts value is S {\n if (!guard(value)) {\n if (typeof message === 'function') {\n throw message()\n }\n throw new TypeError(message ?? `Type assertion failed`)\n }\n}\n\n/**\n * Asserts that a value is defined (not null or undefined)\n * \n * @example\n * const user: User | null = findUser(id)\n * assertDefined(user, `User ${id} not found`)\n * // After this line, user is typed as User\n * console.log(user.name)\n */\nexport function assertDefined<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T {\n if (value === null || value === undefined) {\n throw new TypeError(message ?? 'Expected value to be defined')\n }\n}\n\n/**\n * Asserts that a value is not null\n */\nexport function assertNotNull<T>(\n value: T | null,\n message?: string\n): asserts value is T {\n if (value === null) {\n throw new TypeError(message ?? 'Expected value to not be null')\n }\n}\n\n/**\n * Asserts a condition and narrows the type\n * \n * @example\n * function process(value: string | number) {\n * assertCondition(typeof value === 'string', 'Expected string')\n * // value is now string\n * return value.toUpperCase()\n * }\n */\nexport function assertCondition(\n condition: boolean,\n message?: string\n): asserts condition {\n if (!condition) {\n throw new TypeError(message ?? 'Assertion failed')\n }\n}\n\n/**\n * Creates a type assertion function from a type guard\n * \n * @example\n * const assertUser = createAssertion(isUser, 'Expected User')\n * \n * function process(data: unknown) {\n * assertUser(data)\n * // data is now User\n * }\n */\nexport function createAssertion<T, S extends T>(\n guard: TypeGuard<T, S>,\n defaultMessage?: string\n): (value: T, message?: string) => asserts value is S {\n return (value: T, message?: string): asserts value is S => {\n assertType(value, guard, message ?? defaultMessage)\n }\n}\n","/**\n * Narrows a discriminated union by its discriminant property.\n * \n * @example\n * type Event = \n * | { type: 'click'; x: number; y: number }\n * | { type: 'keypress'; key: string }\n * | { type: 'scroll'; delta: number }\n * \n * const event: Event = getEvent()\n * \n * if (narrowUnion(event, 'type', 'click')) {\n * // event is { type: 'click'; x: number; y: number }\n * console.log(event.x, event.y)\n * }\n */\nexport function narrowUnion<\n T extends Record<K, PropertyKey>,\n K extends keyof T,\n V extends T[K]\n>(\n value: T,\n key: K,\n expected: V\n): value is Extract<T, Record<K, V>> {\n return value[key] === expected\n}\n\n/**\n * Creates a type guard for a specific discriminant value\n * \n * @example\n * type Result = { status: 'ok'; data: string } | { status: 'error'; message: string }\n * \n * const isOk = createDiscriminantGuard<Result>()('status', 'ok')\n * const isError = createDiscriminantGuard<Result>()('status', 'error')\n * \n * if (isOk(result)) {\n * console.log(result.data)\n * }\n */\nexport function createDiscriminantGuard<T extends Record<string, unknown>>() {\n return <K extends keyof T, V extends T[K]>(\n key: K,\n value: V\n ): ((obj: T) => obj is Extract<T, Record<K, V>>) => {\n return (obj: T): obj is Extract<T, Record<K, V>> => obj[key] === value\n }\n}\n\n/**\n * Exhaustive switch helper for discriminated unions\n * \n * @example\n * type Shape = \n * | { kind: 'circle'; radius: number }\n * | { kind: 'square'; side: number }\n * | { kind: 'rectangle'; width: number; height: number }\n * \n * function area(shape: Shape): number {\n * return switchUnion(shape, 'kind', {\n * circle: (s) => Math.PI * s.radius ** 2,\n * square: (s) => s.side ** 2,\n * rectangle: (s) => s.width * s.height,\n * })\n * }\n */\nexport function switchUnion<\n T extends Record<K, string>,\n K extends keyof T,\n R\n>(\n value: T,\n key: K,\n handlers: { [V in T[K]]: (value: Extract<T, Record<K, V>>) => R }\n): R {\n const discriminant = value[key] as T[K]\n const handler = handlers[discriminant]\n return handler(value as Extract<T, Record<K, T[K]>>)\n}\n\n/**\n * Type-safe exhaustive check that ensures all union cases are handled\n * \n * @example\n * type Status = 'pending' | 'success' | 'error'\n * \n * function handleStatus(status: Status) {\n * switch (status) {\n * case 'pending': return 'Loading...'\n * case 'success': return 'Done!'\n * case 'error': return 'Failed'\n * default: return exhaustiveCheck(status)\n * }\n * }\n */\nexport function exhaustiveCheck(value: never, message?: string): never {\n throw new Error(\n message ?? `Exhaustive check failed: unexpected value ${JSON.stringify(value)}`\n )\n}\n","/**\n * Excludes null from a value's type at runtime and compile time.\n * Throws if the value is null.\n * \n * @example\n * const element: HTMLElement | null = document.getElementById('app')\n * const el = excludeNull(element, 'App element not found')\n * // el is HTMLElement\n */\nexport function excludeNull<T>(\n value: T | null,\n message?: string\n): T {\n if (value === null) {\n throw new Error(message ?? 'Unexpected null value')\n }\n return value\n}\n\n/**\n * Excludes undefined from a value's type at runtime and compile time.\n * Throws if the value is undefined.\n */\nexport function excludeUndefined<T>(\n value: T | undefined,\n message?: string\n): T {\n if (value === undefined) {\n throw new Error(message ?? 'Unexpected undefined value')\n }\n return value\n}\n\n/**\n * Excludes null and undefined from a value's type.\n * Throws if the value is null or undefined.\n */\nexport function excludeNullish<T>(\n value: T | null | undefined,\n message?: string\n): T {\n if (value === null || value === undefined) {\n throw new Error(message ?? 'Unexpected null or undefined value')\n }\n return value\n}\n\n/**\n * Returns the value if defined, otherwise returns the default.\n * Type-safe alternative to the nullish coalescing operator with better inference.\n * \n * @example\n * const config: Config | undefined = loadConfig()\n * const safeConfig = withDefault(config, defaultConfig)\n * // safeConfig is Config (not Config | undefined)\n */\nexport function withDefault<T>(\n value: T | null | undefined,\n defaultValue: T\n): T {\n return value ?? defaultValue\n}\n\n/**\n * Returns the value if defined, otherwise calls the factory function.\n * Useful when the default value is expensive to compute.\n * \n * @example\n * const cached = withDefaultLazy(cache.get(key), () => computeExpensiveValue())\n */\nexport function withDefaultLazy<T>(\n value: T | null | undefined,\n factory: () => T\n): T {\n return value ?? factory()\n}\n\n/**\n * Maps a nullable value, returning null/undefined if the input is null/undefined.\n * \n * @example\n * const user: User | null = findUser(id)\n * const name = mapNullable(user, u => u.name)\n * // name is string | null\n */\nexport function mapNullable<T, U>(\n value: T | null | undefined,\n fn: (value: T) => U\n): U | null | undefined {\n if (value === null) return null\n if (value === undefined) return undefined\n return fn(value)\n}\n\n/**\n * Chains nullable operations, similar to optional chaining but with functions.\n * \n * @example\n * const result = chainNullable(\n * user,\n * u => u.profile,\n * p => p.settings,\n * s => s.theme\n * )\n * // result is Theme | null | undefined\n */\nexport function chainNullable<T, A>(\n value: T | null | undefined,\n fn1: (v: T) => A | null | undefined\n): A | null | undefined\nexport function chainNullable<T, A, B>(\n value: T | null | undefined,\n fn1: (v: T) => A | null | undefined,\n fn2: (v: A) => B | null | undefined\n): B | null | undefined\nexport function chainNullable<T, A, B, C>(\n value: T | null | undefined,\n fn1: (v: T) => A | null | undefined,\n fn2: (v: A) => B | null | undefined,\n fn3: (v: B) => C | null | undefined\n): C | null | undefined\nexport function chainNullable<T, A, B, C, D>(\n value: T | null | undefined,\n fn1: (v: T) => A | null | undefined,\n fn2: (v: A) => B | null | undefined,\n fn3: (v: B) => C | null | undefined,\n fn4: (v: C) => D | null | undefined\n): D | null | undefined\nexport function chainNullable(\n value: unknown,\n ...fns: Array<(v: unknown) => unknown>\n): unknown {\n let result = value\n for (const fn of fns) {\n if (result === null || result === undefined) {\n return result\n }\n result = fn(result)\n }\n return result\n}\n","import type { TypeGuard } from './types'\n\n/**\n * Refines a type by applying multiple type guards in sequence.\n * Each guard further narrows the type.\n * \n * @example\n * const isPositiveNumber = refine(\n * isNumber,\n * (n): n is number => n > 0\n * )\n * \n * if (isPositiveNumber(value)) {\n * // value is number and > 0\n * }\n */\nexport function refine<T, S extends T, R extends S>(\n guard1: TypeGuard<T, S>,\n guard2: TypeGuard<S, R>\n): TypeGuard<T, R>\nexport function refine<T, S extends T, R extends S, Q extends R>(\n guard1: TypeGuard<T, S>,\n guard2: TypeGuard<S, R>,\n guard3: TypeGuard<R, Q>\n): TypeGuard<T, Q>\nexport function refine<T, S extends T>(\n guard1: TypeGuard<T, S>,\n ...guards: Array<(value: S) => boolean>\n): TypeGuard<T, S> {\n return ((value: T): value is S => {\n if (!guard1(value)) return false\n for (const guard of guards) {\n if (!guard(value)) return false\n }\n return true\n }) as TypeGuard<T, S>\n}\n\n/**\n * Combines multiple type guards with OR logic.\n * Returns true if any guard matches.\n * \n * @example\n * const isStringOrNumber = oneOf(isString, isNumber)\n * \n * if (isStringOrNumber(value)) {\n * // value is string | number\n * }\n */\nexport function oneOf<T, S1 extends T>(\n guard1: TypeGuard<T, S1>\n): TypeGuard<T, S1>\nexport function oneOf<T, S1 extends T, S2 extends T>(\n guard1: TypeGuard<T, S1>,\n guard2: TypeGuard<T, S2>\n): TypeGuard<T, S1 | S2>\nexport function oneOf<T, S1 extends T, S2 extends T, S3 extends T>(\n guard1: TypeGuard<T, S1>,\n guard2: TypeGuard<T, S2>,\n guard3: TypeGuard<T, S3>\n): TypeGuard<T, S1 | S2 | S3>\nexport function oneOf<T, S1 extends T, S2 extends T, S3 extends T, S4 extends T>(\n guard1: TypeGuard<T, S1>,\n guard2: TypeGuard<T, S2>,\n guard3: TypeGuard<T, S3>,\n guard4: TypeGuard<T, S4>\n): TypeGuard<T, S1 | S2 | S3 | S4>\nexport function oneOf<T, S extends T>(\n ...guards: Array<TypeGuard<T, S>>\n): TypeGuard<T, S> {\n return ((value: T): value is S => {\n return guards.some(guard => guard(value))\n }) as TypeGuard<T, S>\n}\n\n/**\n * Combines multiple type guards with AND logic.\n * Returns true only if all guards match.\n * \n * @example\n * const isNonEmptyString = allOf(\n * isString,\n * (s): s is string => s.length > 0\n * )\n */\nexport function allOf<T, S1 extends T>(\n guard1: TypeGuard<T, S1>\n): TypeGuard<T, S1>\nexport function allOf<T, S1 extends T, S2 extends S1>(\n guard1: TypeGuard<T, S1>,\n guard2: TypeGuard<S1, S2>\n): TypeGuard<T, S2>\nexport function allOf<T, S1 extends T, S2 extends S1, S3 extends S2>(\n guard1: TypeGuard<T, S1>,\n guard2: TypeGuard<S1, S2>,\n guard3: TypeGuard<S2, S3>\n): TypeGuard<T, S3>\nexport function allOf<T, S extends T>(\n ...guards: Array<TypeGuard<T, S>>\n): TypeGuard<T, S> {\n return ((value: T): value is S => {\n return guards.every(guard => guard(value))\n }) as TypeGuard<T, S>\n}\n\n/**\n * Negates a type guard.\n * \n * @example\n * const isNotNull = not(isNull)\n * const items = array.filter(isNotNull)\n */\nexport function not<T, S extends T>(\n guard: TypeGuard<T, S>\n): TypeGuard<T, Exclude<T, S>> {\n return ((value: T): value is Exclude<T, S> => !guard(value)) as TypeGuard<T, Exclude<T, S>>\n}\n\n/**\n * Creates a type guard for array elements.\n * \n * @example\n * const isStringArray = arrayOf(isString)\n * \n * if (isStringArray(value)) {\n * // value is string[]\n * }\n */\nexport function arrayOf<T, S extends T>(\n guard: TypeGuard<T, S>\n): TypeGuard<unknown, S[]> {\n return (value: unknown): value is S[] => {\n return Array.isArray(value) && value.every(guard as TypeGuard<unknown, S>)\n }\n}\n\n/**\n * Creates a type guard for objects with specific shape.\n * \n * @example\n * const isUser = objectOf({\n * id: isNumber,\n * name: isString,\n * email: isString\n * })\n * \n * if (isUser(data)) {\n * // data is { id: number; name: string; email: string }\n * }\n */\nexport function objectOf<T extends Record<string, TypeGuard<unknown, unknown>>>(\n shape: T\n): TypeGuard<unknown, { [K in keyof T]: T[K] extends TypeGuard<unknown, infer S> ? S : never }> {\n return (value: unknown): value is { [K in keyof T]: T[K] extends TypeGuard<unknown, infer S> ? S : never } => {\n if (typeof value !== 'object' || value === null) return false\n const obj = value as Record<string, unknown>\n return Object.entries(shape).every(([key, guard]) => guard(obj[key]))\n }\n}\n\n/**\n * Creates a type guard for literal values.\n * \n * @example\n * const isAdmin = literal('admin')\n * const isStatus = oneOf(literal('pending'), literal('done'), literal('error'))\n */\nexport function literal<T extends string | number | boolean>(\n expected: T\n): TypeGuard<unknown, T> {\n return (value: unknown): value is T => value === expected\n}\n\n/**\n * Creates a type guard for optional properties.\n * \n * @example\n * const isOptionalString = optional(isString)\n * // Matches string | undefined\n */\nexport function optional<T, S extends T>(\n guard: TypeGuard<T, S>\n): TypeGuard<T | undefined, S | undefined> {\n return (value: T | undefined): value is S | undefined => {\n return value === undefined || guard(value as T)\n }\n}\n\n/**\n * Creates a type guard for nullable properties.\n * \n * @example\n * const isNullableString = nullable(isString)\n * // Matches string | null\n */\nexport function nullable<T, S extends T>(\n guard: TypeGuard<T, S>\n): TypeGuard<T | null, S | null> {\n return (value: T | null): value is S | null => {\n return value === null || guard(value as T)\n }\n}\n"]}
@@ -1,156 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkOPVES6W2_js = require('./chunk-OPVES6W2.js');
4
- var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
5
-
6
- // src/result/index.ts
7
- var result_exports = {};
8
- chunkPZ5AY32C_js.__export(result_exports, {
9
- andThen: () => andThen,
10
- err: () => chunkOPVES6W2_js.err,
11
- fromNullable: () => fromNullable,
12
- isErr: () => isErr,
13
- isOk: () => isOk,
14
- mapErr: () => mapErr,
15
- mapOption: () => mapOption,
16
- mapResult: () => mapResult,
17
- matchOption: () => matchOption,
18
- matchResult: () => matchResult,
19
- none: () => none,
20
- ok: () => chunkOPVES6W2_js.ok,
21
- orElse: () => orElse,
22
- some: () => some,
23
- toNullable: () => toNullable,
24
- unwrap: () => unwrap,
25
- unwrapOption: () => unwrapOption,
26
- unwrapOptionOr: () => unwrapOptionOr,
27
- unwrapOr: () => unwrapOr
28
- });
29
-
30
- // src/result/some.ts
31
- function some(value) {
32
- return { some: true, value };
33
- }
34
-
35
- // src/result/none.ts
36
- function none() {
37
- return { some: false };
38
- }
39
-
40
- // src/result/mapResult.ts
41
- function mapResult(result, fn) {
42
- if (result.ok) {
43
- return chunkOPVES6W2_js.ok(fn(result.value));
44
- }
45
- return result;
46
- }
47
-
48
- // src/result/mapOption.ts
49
- function mapOption(option, fn) {
50
- if (option.some) {
51
- return some(fn(option.value));
52
- }
53
- return option;
54
- }
55
-
56
- // src/result/mapErr.ts
57
- function mapErr(result, fn) {
58
- if (!result.ok) {
59
- return chunkOPVES6W2_js.err(fn(result.error));
60
- }
61
- return result;
62
- }
63
-
64
- // src/result/andThen.ts
65
- function andThen(result, fn) {
66
- if (result.ok) {
67
- return fn(result.value);
68
- }
69
- return result;
70
- }
71
-
72
- // src/result/orElse.ts
73
- function orElse(result, fn) {
74
- if (!result.ok) {
75
- return fn(result.error);
76
- }
77
- return result;
78
- }
79
-
80
- // src/result/match.ts
81
- function matchResult(result, handlers) {
82
- if (result.ok) {
83
- return handlers.ok(result.value);
84
- }
85
- return handlers.err(result.error);
86
- }
87
- function matchOption(option, handlers) {
88
- if (option.some) {
89
- return handlers.some(option.value);
90
- }
91
- return handlers.none();
92
- }
93
-
94
- // src/result/isOk.ts
95
- function isOk(result) {
96
- return result.ok;
97
- }
98
- function isErr(result) {
99
- return !result.ok;
100
- }
101
-
102
- // src/result/unwrap.ts
103
- function unwrap(result) {
104
- if (result.ok) {
105
- return result.value;
106
- }
107
- throw result.error instanceof Error ? result.error : new Error(String(result.error));
108
- }
109
- function unwrapOption(option) {
110
- if (option.some) {
111
- return option.value;
112
- }
113
- throw new Error("Called unwrapOption on None");
114
- }
115
-
116
- // src/result/unwrapOr.ts
117
- function unwrapOr(result, defaultValue) {
118
- return result.ok ? result.value : defaultValue;
119
- }
120
- function unwrapOptionOr(option, defaultValue) {
121
- return option.some ? option.value : defaultValue;
122
- }
123
-
124
- // src/result/fromNullable.ts
125
- function fromNullable(value) {
126
- if (value === null || value === void 0) {
127
- return none();
128
- }
129
- return some(value);
130
- }
131
-
132
- // src/result/toNullable.ts
133
- function toNullable(option) {
134
- return option.some ? option.value : null;
135
- }
136
-
137
- exports.andThen = andThen;
138
- exports.fromNullable = fromNullable;
139
- exports.isErr = isErr;
140
- exports.isOk = isOk;
141
- exports.mapErr = mapErr;
142
- exports.mapOption = mapOption;
143
- exports.mapResult = mapResult;
144
- exports.matchOption = matchOption;
145
- exports.matchResult = matchResult;
146
- exports.none = none;
147
- exports.orElse = orElse;
148
- exports.result_exports = result_exports;
149
- exports.some = some;
150
- exports.toNullable = toNullable;
151
- exports.unwrap = unwrap;
152
- exports.unwrapOption = unwrapOption;
153
- exports.unwrapOptionOr = unwrapOptionOr;
154
- exports.unwrapOr = unwrapOr;
155
- //# sourceMappingURL=chunk-DBENOSTA.js.map
156
- //# sourceMappingURL=chunk-DBENOSTA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/result/index.ts","../src/result/some.ts","../src/result/none.ts","../src/result/mapResult.ts","../src/result/mapOption.ts","../src/result/mapErr.ts","../src/result/andThen.ts","../src/result/orElse.ts","../src/result/match.ts","../src/result/isOk.ts","../src/result/unwrap.ts","../src/result/unwrapOr.ts","../src/result/fromNullable.ts","../src/result/toNullable.ts"],"names":["__export","err","ok"],"mappings":"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","file":"chunk-DBENOSTA.js","sourcesContent":["export type { Result, Ok, Err, Option, Some, None } from './types'\nexport { ok } from './ok'\nexport { err } from './err'\nexport { some } from './some'\nexport { none } from './none'\nexport { mapResult } from './mapResult'\nexport { mapOption } from './mapOption'\nexport { mapErr } from './mapErr'\nexport { andThen } from './andThen'\nexport { orElse } from './orElse'\nexport { matchResult, matchOption } from './match'\nexport { isOk, isErr } from './isOk'\nexport { unwrap, unwrapOption } from './unwrap'\nexport { unwrapOr, unwrapOptionOr } from './unwrapOr'\nexport { fromNullable } from './fromNullable'\nexport { toNullable } from './toNullable'\n","import type { Some } from './types'\n\n/**\n * Creates a Some option containing a value.\n *\n * @example\n * const option = some(42)\n * option.some // true\n * option.value // 42\n */\nexport function some<T>(value: T): Some<T> {\n return { some: true, value }\n}\n","import type { None } from './types'\n\n/**\n * Creates a None option representing absence of a value.\n *\n * @example\n * const option = none()\n * option.some // false\n */\nexport function none(): None {\n return { some: false }\n}\n","import type { Result } from './types'\nimport { ok } from './ok'\n\n/**\n * Maps a Result's Ok value using a function.\n * If the result is Err, returns it unchanged.\n *\n * @example\n * mapResult(ok(5), n => n * 2) // ok(10)\n * mapResult(err('failed'), n => n * 2) // err('failed')\n */\nexport function mapResult<T, U, E>(\n result: Result<T, E>,\n fn: (value: T) => U\n): Result<U, E> {\n if (result.ok) {\n return ok(fn(result.value))\n }\n return result\n}\n","import type { Option } from './types'\nimport { some } from './some'\n\n/**\n * Maps an Option's Some value using a function.\n * If the option is None, returns it unchanged.\n *\n * @example\n * mapOption(some(5), n => n * 2) // some(10)\n * mapOption(none(), n => n * 2) // none()\n */\nexport function mapOption<T, U>(\n option: Option<T>,\n fn: (value: T) => U\n): Option<U> {\n if (option.some) {\n return some(fn(option.value))\n }\n return option\n}\n","import type { Result } from './types'\nimport { err } from './err'\n\n/**\n * Maps a Result's Err value using a function.\n * If the result is Ok, returns it unchanged.\n *\n * @example\n * mapErr(err('failed'), e => new Error(e)) // err(Error('failed'))\n * mapErr(ok(5), e => new Error(e)) // ok(5)\n */\nexport function mapErr<T, E, F>(\n result: Result<T, E>,\n fn: (error: E) => F\n): Result<T, F> {\n if (!result.ok) {\n return err(fn(result.error))\n }\n return result\n}\n","import type { Result } from './types'\n\n/**\n * Chains a Result-returning function. Also known as flatMap or bind.\n * If the result is Err, returns it unchanged.\n *\n * @example\n * const parseAndDouble = (s: string) =>\n * andThen(safeJsonParse(s), n => ok(n * 2))\n */\nexport function andThen<T, U, E>(\n result: Result<T, E>,\n fn: (value: T) => Result<U, E>\n): Result<U, E> {\n if (result.ok) {\n return fn(result.value)\n }\n return result\n}\n","import type { Result } from './types'\n\n/**\n * Provides a fallback Result if the current one is Err.\n *\n * @example\n * const result = orElse(err('failed'), e => ok('default'))\n */\nexport function orElse<T, E, F>(\n result: Result<T, E>,\n fn: (error: E) => Result<T, F>\n): Result<T, F> {\n if (!result.ok) {\n return fn(result.error)\n }\n return result\n}\n","import type { Result, Option } from './types'\n\n/**\n * Pattern matches on a Result, executing the appropriate handler.\n *\n * @example\n * const message = matchResult(result, {\n * ok: value => `Success: ${value}`,\n * err: error => `Failed: ${error.message}`\n * })\n */\nexport function matchResult<T, E, U>(\n result: Result<T, E>,\n handlers: {\n ok: (value: T) => U\n err: (error: E) => U\n }\n): U {\n if (result.ok) {\n return handlers.ok(result.value)\n }\n return handlers.err(result.error)\n}\n\n/**\n * Pattern matches on an Option, executing the appropriate handler.\n *\n * @example\n * const message = matchOption(option, {\n * some: value => `Found: ${value}`,\n * none: () => 'Not found'\n * })\n */\nexport function matchOption<T, U>(\n option: Option<T>,\n handlers: {\n some: (value: T) => U\n none: () => U\n }\n): U {\n if (option.some) {\n return handlers.some(option.value)\n }\n return handlers.none()\n}\n","import type { Result } from './types'\n\n/**\n * Type guard to check if a Result is Ok.\n *\n * @example\n * if (isOk(result)) {\n * console.log(result.value) // TypeScript knows this is safe\n * }\n */\nexport function isOk<T, E>(result: Result<T, E>): result is { ok: true; value: T; error?: never } {\n return result.ok\n}\n\n/**\n * Type guard to check if a Result is Err.\n *\n * @example\n * if (isErr(result)) {\n * console.log(result.error) // TypeScript knows this is safe\n * }\n */\nexport function isErr<T, E>(result: Result<T, E>): result is { ok: false; value?: never; error: E } {\n return !result.ok\n}\n","import type { Result, Option } from './types'\n\n/**\n * Unwraps a Result, throwing if it's an Err.\n * Use only when you're certain the result is Ok.\n *\n * @example\n * const value = unwrap(ok(42)) // 42\n * const value = unwrap(err('failed')) // throws Error\n */\nexport function unwrap<T, E>(result: Result<T, E>): T {\n if (result.ok) {\n return result.value\n }\n throw result.error instanceof Error\n ? result.error\n : new Error(String(result.error))\n}\n\n/**\n * Unwraps an Option, throwing if it's None.\n * Use only when you're certain the option is Some.\n *\n * @example\n * const value = unwrapOption(some(42)) // 42\n * const value = unwrapOption(none()) // throws Error\n */\nexport function unwrapOption<T>(option: Option<T>): T {\n if (option.some) {\n return option.value\n }\n throw new Error('Called unwrapOption on None')\n}\n","import type { Result, Option } from './types'\n\n/**\n * Unwraps a Result, returning the Ok value or a default.\n *\n * @example\n * unwrapOr(ok(5), 0) // 5\n * unwrapOr(err('failed'), 0) // 0\n */\nexport function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T {\n return result.ok ? result.value : defaultValue\n}\n\n/**\n * Unwraps an Option, returning the Some value or a default.\n *\n * @example\n * unwrapOptionOr(some(5), 0) // 5\n * unwrapOptionOr(none(), 0) // 0\n */\nexport function unwrapOptionOr<T>(option: Option<T>, defaultValue: T): T {\n return option.some ? option.value : defaultValue\n}\n","import type { Option } from './types'\nimport { some } from './some'\nimport { none } from './none'\n\n/**\n * Creates an Option from a nullable value.\n * Returns Some if the value is not null/undefined, None otherwise.\n *\n * @example\n * fromNullable(5) // some(5)\n * fromNullable(null) // none()\n * fromNullable(undefined) // none()\n */\nexport function fromNullable<T>(value: T | null | undefined): Option<NonNullable<T>> {\n if (value === null || value === undefined) {\n return none()\n }\n return some(value as NonNullable<T>)\n}\n","import type { Option } from './types'\n\n/**\n * Converts an Option to a nullable value.\n * Returns the value if Some, null if None.\n *\n * @example\n * toNullable(some(5)) // 5\n * toNullable(none()) // null\n */\nexport function toNullable<T>(option: Option<T>): T | null {\n return option.some ? option.value : null\n}\n"]}
@@ -1,135 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkOPVES6W2_js = require('./chunk-OPVES6W2.js');
4
- var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
5
-
6
- // src/flow/index.ts
7
- var flow_exports = {};
8
- chunkPZ5AY32C_js.__export(flow_exports, {
9
- compose: () => compose,
10
- constant: () => constant,
11
- ifElse: () => ifElse,
12
- match: () => match,
13
- pipe: () => pipe,
14
- tap: () => tap,
15
- tryCatch: () => tryCatch,
16
- tryCatchAsync: () => tryCatchAsync,
17
- unless: () => unless,
18
- when: () => when
19
- });
20
-
21
- // src/flow/pipe.ts
22
- function pipe(value, ...fns) {
23
- return fns.reduce((acc, fn) => fn(acc), value);
24
- }
25
-
26
- // src/flow/compose.ts
27
- function compose(...fns) {
28
- return (arg) => fns.reduceRight((acc, fn) => fn(acc), arg);
29
- }
30
-
31
- // src/flow/tap.ts
32
- function tap(fn) {
33
- return (value) => {
34
- fn(value);
35
- return value;
36
- };
37
- }
38
-
39
- // src/flow/when.ts
40
- function when(predicate, transform) {
41
- return (value) => {
42
- if (predicate(value)) {
43
- return transform(value);
44
- }
45
- return value;
46
- };
47
- }
48
-
49
- // src/flow/unless.ts
50
- function unless(predicate, transform) {
51
- return (value) => {
52
- if (!predicate(value)) {
53
- return transform(value);
54
- }
55
- return value;
56
- };
57
- }
58
-
59
- // src/flow/match.ts
60
- function match() {
61
- const cases = [];
62
- const builder = {
63
- with(predicate, handler) {
64
- cases.push({ when: predicate, then: handler });
65
- return builder;
66
- },
67
- otherwise(handler) {
68
- return (value) => {
69
- for (const c of cases) {
70
- if (c.when(value)) {
71
- return c.then(value);
72
- }
73
- }
74
- return handler(value);
75
- };
76
- },
77
- run(value) {
78
- for (const c of cases) {
79
- if (c.when(value)) {
80
- return c.then(value);
81
- }
82
- }
83
- return void 0;
84
- }
85
- };
86
- return builder;
87
- }
88
-
89
- // src/flow/tryCatch.ts
90
- function tryCatch(fn) {
91
- try {
92
- return chunkOPVES6W2_js.ok(fn());
93
- } catch (error) {
94
- return chunkOPVES6W2_js.err(error instanceof Error ? error : new Error(String(error)));
95
- }
96
- }
97
-
98
- // src/flow/tryCatchAsync.ts
99
- async function tryCatchAsync(fn) {
100
- try {
101
- const value = await fn();
102
- return chunkOPVES6W2_js.ok(value);
103
- } catch (error) {
104
- return chunkOPVES6W2_js.err(error instanceof Error ? error : new Error(String(error)));
105
- }
106
- }
107
-
108
- // src/flow/ifElse.ts
109
- function ifElse(predicate, onTrue, onFalse) {
110
- return (value) => {
111
- if (predicate(value)) {
112
- return onTrue(value);
113
- }
114
- return onFalse(value);
115
- };
116
- }
117
-
118
- // src/flow/constant.ts
119
- function constant(value) {
120
- return () => value;
121
- }
122
-
123
- exports.compose = compose;
124
- exports.constant = constant;
125
- exports.flow_exports = flow_exports;
126
- exports.ifElse = ifElse;
127
- exports.match = match;
128
- exports.pipe = pipe;
129
- exports.tap = tap;
130
- exports.tryCatch = tryCatch;
131
- exports.tryCatchAsync = tryCatchAsync;
132
- exports.unless = unless;
133
- exports.when = when;
134
- //# sourceMappingURL=chunk-DWIG5GF2.js.map
135
- //# sourceMappingURL=chunk-DWIG5GF2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flow/index.ts","../src/flow/pipe.ts","../src/flow/compose.ts","../src/flow/tap.ts","../src/flow/when.ts","../src/flow/unless.ts","../src/flow/match.ts","../src/flow/tryCatch.ts","../src/flow/tryCatchAsync.ts","../src/flow/ifElse.ts","../src/flow/constant.ts"],"names":["__export","ok","err"],"mappings":"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","file":"chunk-DWIG5GF2.js","sourcesContent":["export { pipe } from './pipe'\nexport { compose } from './compose'\nexport { tap } from './tap'\nexport { when } from './when'\nexport { unless } from './unless'\nexport { match } from './match'\nexport { tryCatch } from './tryCatch'\nexport type { TryCatchResult } from './tryCatch'\nexport { tryCatchAsync } from './tryCatchAsync'\nexport type { TryCatchAsyncResult } from './tryCatchAsync'\nexport { ifElse } from './ifElse'\nexport { constant } from './constant'\n","/**\n * Pipes a value through a series of functions.\n * Each function receives the result of the previous one.\n *\n * @example\n * const result = pipe(\n * 5,\n * (n) => n * 2,\n * (n) => n + 1,\n * (n) => `Result: ${n}`\n * )\n * // 'Result: 11'\n */\nexport function pipe<A>(value: A): A\nexport function pipe<A, B>(value: A, fn1: (a: A) => B): B\nexport function pipe<A, B, C>(value: A, fn1: (a: A) => B, fn2: (b: B) => C): C\nexport function pipe<A, B, C, D>(\n value: A,\n fn1: (a: A) => B,\n fn2: (b: B) => C,\n fn3: (c: C) => D\n): D\nexport function pipe<A, B, C, D, E>(\n value: A,\n fn1: (a: A) => B,\n fn2: (b: B) => C,\n fn3: (c: C) => D,\n fn4: (d: D) => E\n): E\nexport function pipe<A, B, C, D, E, F>(\n value: A,\n fn1: (a: A) => B,\n fn2: (b: B) => C,\n fn3: (c: C) => D,\n fn4: (d: D) => E,\n fn5: (e: E) => F\n): F\nexport function pipe<A, B, C, D, E, F, G>(\n value: A,\n fn1: (a: A) => B,\n fn2: (b: B) => C,\n fn3: (c: C) => D,\n fn4: (d: D) => E,\n fn5: (e: E) => F,\n fn6: (f: F) => G\n): G\nexport function pipe<A, B, C, D, E, F, G, H>(\n value: A,\n fn1: (a: A) => B,\n fn2: (b: B) => C,\n fn3: (c: C) => D,\n fn4: (d: D) => E,\n fn5: (e: E) => F,\n fn6: (f: F) => G,\n fn7: (g: G) => H\n): H\nexport function pipe<A, B, C, D, E, F, G, H, I>(\n value: A,\n fn1: (a: A) => B,\n fn2: (b: B) => C,\n fn3: (c: C) => D,\n fn4: (d: D) => E,\n fn5: (e: E) => F,\n fn6: (f: F) => G,\n fn7: (g: G) => H,\n fn8: (h: H) => I\n): I\nexport function pipe(\n value: unknown,\n ...fns: ((arg: unknown) => unknown)[]\n): unknown {\n return fns.reduce((acc, fn) => fn(acc), value)\n}\n","/**\n * Composes functions from right to left.\n * The last function can take multiple arguments.\n *\n * @example\n * const addOne = (n: number) => n + 1\n * const double = (n: number) => n * 2\n * const addOneThenDouble = compose(double, addOne)\n * addOneThenDouble(5) // 12\n */\nexport function compose<A, B>(fn1: (a: A) => B): (a: A) => B\nexport function compose<A, B, C>(\n fn2: (b: B) => C,\n fn1: (a: A) => B\n): (a: A) => C\nexport function compose<A, B, C, D>(\n fn3: (c: C) => D,\n fn2: (b: B) => C,\n fn1: (a: A) => B\n): (a: A) => D\nexport function compose<A, B, C, D, E>(\n fn4: (d: D) => E,\n fn3: (c: C) => D,\n fn2: (b: B) => C,\n fn1: (a: A) => B\n): (a: A) => E\nexport function compose<A, B, C, D, E, F>(\n fn5: (e: E) => F,\n fn4: (d: D) => E,\n fn3: (c: C) => D,\n fn2: (b: B) => C,\n fn1: (a: A) => B\n): (a: A) => F\nexport function compose(\n ...fns: ((arg: unknown) => unknown)[]\n): (arg: unknown) => unknown {\n return (arg: unknown) => fns.reduceRight((acc, fn) => fn(acc), arg)\n}\n","/**\n * Executes a side effect and returns the original value.\n * Useful for debugging in a pipe chain.\n *\n * @example\n * pipe(\n * data,\n * tap(console.log), // logs data\n * transform,\n * tap(console.log), // logs transformed data\n * )\n */\nexport function tap<T>(fn: (value: T) => void): (value: T) => T {\n return (value: T): T => {\n fn(value)\n return value\n }\n}\n","/**\n * Conditionally applies a transformation.\n * If the predicate is true, applies the transform. Otherwise returns the value unchanged.\n *\n * @example\n * const maybeDouble = when(\n * (n: number) => n > 10,\n * (n) => n * 2\n * )\n * maybeDouble(5) // 5\n * maybeDouble(15) // 30\n */\nexport function when<T>(\n predicate: (value: T) => boolean,\n transform: (value: T) => T\n): (value: T) => T {\n return (value: T): T => {\n if (predicate(value)) {\n return transform(value)\n }\n return value\n }\n}\n","/**\n * Conditionally applies a transformation.\n * If the predicate is false, applies the transform. Otherwise returns the value unchanged.\n *\n * @example\n * const ensurePositive = unless(\n * (n: number) => n > 0,\n * () => 0\n * )\n * ensurePositive(-5) // 0\n * ensurePositive(5) // 5\n */\nexport function unless<T>(\n predicate: (value: T) => boolean,\n transform: (value: T) => T\n): (value: T) => T {\n return (value: T): T => {\n if (!predicate(value)) {\n return transform(value)\n }\n return value\n }\n}\n","type MatchCase<T, R> = {\n when: (value: T) => boolean\n then: (value: T) => R\n}\n\ntype MatchBuilder<T, R> = {\n with: (\n predicate: (value: T) => boolean,\n handler: (value: T) => R\n ) => MatchBuilder<T, R>\n otherwise: (handler: (value: T) => R) => (value: T) => R\n run: (value: T) => R | undefined\n}\n\n/**\n * Pattern matching helper. Chain .with() for cases and .otherwise() for default.\n *\n * @example\n * const getDiscount = match<number, string>()\n * .with(n => n >= 100, () => '20% off')\n * .with(n => n >= 50, () => '10% off')\n * .otherwise(() => 'No discount')\n *\n * getDiscount(150) // '20% off'\n * getDiscount(75) // '10% off'\n * getDiscount(25) // 'No discount'\n */\nexport function match<T, R = T>(): MatchBuilder<T, R> {\n const cases: MatchCase<T, R>[] = []\n\n const builder: MatchBuilder<T, R> = {\n with(predicate, handler) {\n cases.push({ when: predicate, then: handler })\n return builder\n },\n\n otherwise(handler) {\n return (value: T): R => {\n for (const c of cases) {\n if (c.when(value)) {\n return c.then(value)\n }\n }\n return handler(value)\n }\n },\n\n run(value: T): R | undefined {\n for (const c of cases) {\n if (c.when(value)) {\n return c.then(value)\n }\n }\n return undefined\n },\n }\n\n return builder\n}\n","import type { Result } from '../result/types'\nimport { ok } from '../result/ok'\nimport { err } from '../result/err'\n\n/**\n * @deprecated Use Result<T> instead\n */\nexport type TryCatchResult<T> = Result<T, Error>\n\n/**\n * Wraps a function call in a try/catch and returns a Result.\n *\n * @example\n * const result = tryCatch(() => JSON.parse(input))\n * if (result.ok) {\n * console.log(result.value)\n * } else {\n * console.error(result.error)\n * }\n */\nexport function tryCatch<T>(fn: () => T): Result<T, Error> {\n try {\n return ok(fn())\n } catch (error) {\n return err(error instanceof Error ? error : new Error(String(error)))\n }\n}\n","import type { Result } from '../result/types'\nimport { ok } from '../result/ok'\nimport { err } from '../result/err'\n\n/**\n * @deprecated Use Result<T> instead\n */\nexport type TryCatchAsyncResult<T> = Result<T, Error>\n\n/**\n * Wraps an async function call in a try/catch and returns a Result.\n *\n * @example\n * const result = await tryCatchAsync(() => fetchUser(id))\n * if (result.ok) {\n * console.log(result.value)\n * } else {\n * console.error(result.error)\n * }\n */\nexport async function tryCatchAsync<T>(\n fn: () => Promise<T>\n): Promise<Result<T, Error>> {\n try {\n const value = await fn()\n return ok(value)\n } catch (error) {\n return err(error instanceof Error ? error : new Error(String(error)))\n }\n}\n","/**\n * Functional if/else. Returns a function that applies one of two transformations\n * based on a predicate.\n *\n * @example\n * const formatPrice = ifElse(\n * (n: number) => n === 0,\n * () => 'Free',\n * (n) => `$${n.toFixed(2)}`\n * )\n * formatPrice(0) // 'Free'\n * formatPrice(9.99) // '$9.99'\n */\nexport function ifElse<T, R>(\n predicate: (value: T) => boolean,\n onTrue: (value: T) => R,\n onFalse: (value: T) => R\n): (value: T) => R {\n return (value: T): R => {\n if (predicate(value)) {\n return onTrue(value)\n }\n return onFalse(value)\n }\n}\n","/**\n * Returns a function that always returns the same value.\n *\n * @example\n * const alwaysTrue = constant(true)\n * alwaysTrue() // true\n * alwaysTrue() // true\n *\n * [1, 2, 3].map(constant('x')) // ['x', 'x', 'x']\n */\nexport function constant<T>(value: T): () => T {\n return () => value\n}\n"]}
@@ -1,231 +0,0 @@
1
- import { ok, err } from './chunk-FXWYPHA3.mjs';
2
- import { __export } from './chunk-J5LGTIGS.mjs';
3
-
4
- // src/input/index.ts
5
- var input_exports = {};
6
- __export(input_exports, {
7
- clamp: () => clamp,
8
- coerceArray: () => coerceArray,
9
- coerceString: () => coerceString,
10
- defaults: () => defaults,
11
- isEmail: () => isEmail,
12
- isIpAddress: () => isIpAddress,
13
- isUrl: () => isUrl,
14
- isUuid: () => isUuid,
15
- parseBoolean: () => parseBoolean,
16
- parseDate: () => parseDate,
17
- parseInteger: () => parseInteger,
18
- parseNumber: () => parseNumber,
19
- parseUrl: () => parseUrl,
20
- safeJsonParse: () => safeJsonParse,
21
- safeJsonStringify: () => safeJsonStringify,
22
- trimAll: () => trimAll
23
- });
24
-
25
- // src/input/safeJsonParse.ts
26
- function safeJsonParse(json) {
27
- try {
28
- const data = JSON.parse(json);
29
- return ok(data);
30
- } catch (error) {
31
- return err(error instanceof Error ? error : new Error(String(error)));
32
- }
33
- }
34
-
35
- // src/input/safeJsonStringify.ts
36
- function safeJsonStringify(value, replacer, space) {
37
- try {
38
- const data = JSON.stringify(value, replacer, space);
39
- return ok(data);
40
- } catch (error) {
41
- return err(error instanceof Error ? error : new Error(String(error)));
42
- }
43
- }
44
-
45
- // src/input/parseNumber.ts
46
- function parseNumber(value) {
47
- if (value === null || value === void 0) {
48
- return void 0;
49
- }
50
- if (typeof value === "number") {
51
- return Number.isNaN(value) ? void 0 : value;
52
- }
53
- if (typeof value === "string") {
54
- const trimmed = value.trim();
55
- if (trimmed === "") {
56
- return void 0;
57
- }
58
- const parsed = Number(trimmed);
59
- return Number.isNaN(parsed) ? void 0 : parsed;
60
- }
61
- return void 0;
62
- }
63
-
64
- // src/input/parseInteger.ts
65
- function parseInteger(value) {
66
- if (value === null || value === void 0) {
67
- return void 0;
68
- }
69
- if (typeof value === "number") {
70
- return Number.isNaN(value) ? void 0 : Math.trunc(value);
71
- }
72
- if (typeof value === "string") {
73
- const trimmed = value.trim();
74
- if (trimmed === "") {
75
- return void 0;
76
- }
77
- const parsed = parseInt(trimmed, 10);
78
- return Number.isNaN(parsed) ? void 0 : parsed;
79
- }
80
- return void 0;
81
- }
82
-
83
- // src/input/parseBoolean.ts
84
- function parseBoolean(value) {
85
- if (value === null || value === void 0) {
86
- return void 0;
87
- }
88
- if (typeof value === "boolean") {
89
- return value;
90
- }
91
- if (typeof value === "number") {
92
- if (value === 1) return true;
93
- if (value === 0) return false;
94
- return void 0;
95
- }
96
- if (typeof value === "string") {
97
- const lower = value.toLowerCase().trim();
98
- if (["true", "1", "yes", "on"].includes(lower)) {
99
- return true;
100
- }
101
- if (["false", "0", "no", "off"].includes(lower)) {
102
- return false;
103
- }
104
- }
105
- return void 0;
106
- }
107
-
108
- // src/input/parseDate.ts
109
- function parseDate(value) {
110
- if (value === null || value === void 0) {
111
- return void 0;
112
- }
113
- if (value instanceof Date) {
114
- return Number.isNaN(value.getTime()) ? void 0 : value;
115
- }
116
- if (typeof value === "number") {
117
- const date = new Date(value);
118
- return Number.isNaN(date.getTime()) ? void 0 : date;
119
- }
120
- if (typeof value === "string") {
121
- const trimmed = value.trim();
122
- if (trimmed === "") {
123
- return void 0;
124
- }
125
- const date = new Date(trimmed);
126
- return Number.isNaN(date.getTime()) ? void 0 : date;
127
- }
128
- return void 0;
129
- }
130
-
131
- // src/input/coerceString.ts
132
- function coerceString(value) {
133
- if (value === null || value === void 0) {
134
- return "";
135
- }
136
- if (typeof value === "string") {
137
- return value;
138
- }
139
- return String(value);
140
- }
141
-
142
- // src/input/coerceArray.ts
143
- function coerceArray(value) {
144
- if (value === null || value === void 0) {
145
- return [];
146
- }
147
- if (Array.isArray(value)) {
148
- return [...value];
149
- }
150
- return [value];
151
- }
152
-
153
- // src/input/trimAll.ts
154
- function trimAll(obj) {
155
- const result = { ...obj };
156
- for (const key of Object.keys(result)) {
157
- const value = result[key];
158
- if (typeof value === "string") {
159
- result[key] = value.trim();
160
- }
161
- }
162
- return result;
163
- }
164
-
165
- // src/input/defaults.ts
166
- function defaults(value, defaultValue, options = {}) {
167
- const { treatEmptyStringAsNull = true } = options;
168
- if (value === null || value === void 0) {
169
- return defaultValue;
170
- }
171
- if (treatEmptyStringAsNull && value === "") {
172
- return defaultValue;
173
- }
174
- return value;
175
- }
176
-
177
- // src/input/clamp.ts
178
- function clamp(value, min, max) {
179
- if (min > max) {
180
- throw new Error("min must be less than or equal to max");
181
- }
182
- return Math.min(Math.max(value, min), max);
183
- }
184
-
185
- // src/input/isEmail.ts
186
- function isEmail(str) {
187
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
188
- return emailRegex.test(str);
189
- }
190
-
191
- // src/input/isUrl.ts
192
- function isUrl(str) {
193
- try {
194
- new URL(str);
195
- return true;
196
- } catch {
197
- return false;
198
- }
199
- }
200
-
201
- // src/input/isUuid.ts
202
- function isUuid(str) {
203
- const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
204
- return uuidRegex.test(str);
205
- }
206
-
207
- // src/input/isIpAddress.ts
208
- function isIpAddress(str) {
209
- return isIpv4(str) || isIpv6(str);
210
- }
211
- function isIpv4(str) {
212
- const ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
213
- return ipv4Regex.test(str);
214
- }
215
- function isIpv6(str) {
216
- const ipv6Regex = /^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::(?:[0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}$|^(?:[0-9a-fA-F]{1,4}:){1,7}:$|^(?:[0-9a-fA-F]{1,4}:){0,6}::(?:[0-9a-fA-F]{1,4}:){0,5}[0-9a-fA-F]{1,4}$/;
217
- return ipv6Regex.test(str);
218
- }
219
-
220
- // src/input/parseUrl.ts
221
- function parseUrl(str) {
222
- try {
223
- return new URL(str);
224
- } catch {
225
- return void 0;
226
- }
227
- }
228
-
229
- export { clamp, coerceArray, coerceString, defaults, input_exports, isEmail, isIpAddress, isUrl, isUuid, parseBoolean, parseDate, parseInteger, parseNumber, parseUrl, safeJsonParse, safeJsonStringify, trimAll };
230
- //# sourceMappingURL=chunk-EAUTTWTQ.mjs.map
231
- //# sourceMappingURL=chunk-EAUTTWTQ.mjs.map