@take-out/helpers 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/package.json +2 -1
  2. package/types/array/getRandomItem.d.ts +3 -0
  3. package/types/array/getRandomItem.d.ts.map +11 -0
  4. package/types/array/takeLast.d.ts +3 -0
  5. package/types/array/takeLast.d.ts.map +11 -0
  6. package/types/array/uniqBy.d.ts +12 -0
  7. package/types/array/uniqBy.d.ts.map +11 -0
  8. package/types/assert.d.ts +6 -0
  9. package/types/assert.d.ts.map +11 -0
  10. package/types/async/abortable.d.ts +10 -0
  11. package/types/async/abortable.d.ts.map +11 -0
  12. package/types/async/asyncContext.d.ts +8 -0
  13. package/types/async/asyncContext.d.ts.map +11 -0
  14. package/types/async/asyncContext.native.d.ts +8 -0
  15. package/types/async/asyncContext.native.d.ts.map +11 -0
  16. package/types/async/idle.d.ts +8 -0
  17. package/types/async/idle.d.ts.map +11 -0
  18. package/types/async/interval.d.ts +3 -0
  19. package/types/async/interval.d.ts.map +11 -0
  20. package/types/async/isAborted.d.ts +3 -0
  21. package/types/async/isAborted.d.ts.map +11 -0
  22. package/types/async/sleep.d.ts +3 -0
  23. package/types/async/sleep.d.ts.map +11 -0
  24. package/types/async/useAsync.d.ts +3 -0
  25. package/types/async/useAsync.d.ts.map +11 -0
  26. package/types/async/useAsyncEffect.d.ts +12 -0
  27. package/types/async/useAsyncEffect.d.ts.map +11 -0
  28. package/types/async/useLazyMount.d.ts +9 -0
  29. package/types/async/useLazyMount.d.ts.map +11 -0
  30. package/types/async/useLazyValue.d.ts +6 -0
  31. package/types/async/useLazyValue.d.ts.map +11 -0
  32. package/types/browser/clearIndexedDB.d.ts +3 -0
  33. package/types/browser/clearIndexedDB.d.ts.map +11 -0
  34. package/types/browser/isActiveElementFormField.d.ts +3 -0
  35. package/types/browser/isActiveElementFormField.d.ts.map +11 -0
  36. package/types/browser/openPopup.d.ts +3 -0
  37. package/types/browser/openPopup.d.ts.map +11 -0
  38. package/types/client-only.d.ts +2 -0
  39. package/types/client-only.d.ts.map +11 -0
  40. package/types/clipboard/clipboard.d.ts +3 -0
  41. package/types/clipboard/clipboard.d.ts.map +11 -0
  42. package/types/clipboard/clipboard.native.d.ts +3 -0
  43. package/types/clipboard/clipboard.native.d.ts.map +11 -0
  44. package/types/color/extractOpacityFromColor.d.ts +3 -0
  45. package/types/color/extractOpacityFromColor.d.ts.map +11 -0
  46. package/types/color/generateColors.d.ts +11 -0
  47. package/types/color/generateColors.d.ts.map +11 -0
  48. package/types/color/lum.d.ts +3 -0
  49. package/types/color/lum.d.ts.map +11 -0
  50. package/types/color/toHex.d.ts +4 -0
  51. package/types/color/toHex.d.ts.map +11 -0
  52. package/types/constants.d.ts +10 -0
  53. package/types/constants.d.ts.map +11 -0
  54. package/types/debug/debugLog.d.ts +11 -0
  55. package/types/debug/debugLog.d.ts.map +11 -0
  56. package/types/debug/debugUseState.d.ts +3 -0
  57. package/types/debug/debugUseState.d.ts.map +11 -0
  58. package/types/emitter.d.ts +77 -0
  59. package/types/emitter.d.ts.map +11 -0
  60. package/types/ensure/ensure.d.ts +6 -0
  61. package/types/ensure/ensure.d.ts.map +11 -0
  62. package/types/ensure/ensureOne.d.ts +3 -0
  63. package/types/ensure/ensureOne.d.ts.map +11 -0
  64. package/types/error/errors.d.ts +24 -0
  65. package/types/error/errors.d.ts.map +11 -0
  66. package/types/function/emptyFn.d.ts +3 -0
  67. package/types/function/emptyFn.d.ts.map +11 -0
  68. package/types/function/identityFn.d.ts +3 -0
  69. package/types/function/identityFn.d.ts.map +11 -0
  70. package/types/function/throttle.d.ts +23 -0
  71. package/types/function/throttle.d.ts.map +11 -0
  72. package/types/global/globalEffect.d.ts +3 -0
  73. package/types/global/globalEffect.d.ts.map +11 -0
  74. package/types/global/globalValue.d.ts +24 -0
  75. package/types/global/globalValue.d.ts.map +11 -0
  76. package/types/index.d.ts +79 -0
  77. package/types/index.d.ts.map +11 -0
  78. package/types/number/formatNumber.d.ts +13 -0
  79. package/types/number/formatNumber.d.ts.map +11 -0
  80. package/types/object/decorateObject.d.ts +3 -0
  81. package/types/object/decorateObject.d.ts.map +11 -0
  82. package/types/object/isEqualDeep.d.ts +6 -0
  83. package/types/object/isEqualDeep.d.ts.map +11 -0
  84. package/types/object/isEqualIdentity.d.ts +3 -0
  85. package/types/object/isEqualIdentity.d.ts.map +11 -0
  86. package/types/object/isEqualJSON.d.ts +3 -0
  87. package/types/object/isEqualJSON.d.ts.map +11 -0
  88. package/types/object/isEqualNever.d.ts +3 -0
  89. package/types/object/isEqualNever.d.ts.map +11 -0
  90. package/types/object/mapObject.d.ts +6 -0
  91. package/types/object/mapObject.d.ts.map +11 -0
  92. package/types/object/object.d.ts +12 -0
  93. package/types/object/object.d.ts.map +11 -0
  94. package/types/object/objectUniqueKey.d.ts +3 -0
  95. package/types/object/objectUniqueKey.d.ts.map +11 -0
  96. package/types/react/createGlobalContext.d.ts +4 -0
  97. package/types/react/createGlobalContext.d.ts.map +11 -0
  98. package/types/react/getCurrentComponentStack.d.ts +3 -0
  99. package/types/react/getCurrentComponentStack.d.ts.map +11 -0
  100. package/types/server/ensureEnv.d.ts +3 -0
  101. package/types/server/ensureEnv.d.ts.map +11 -0
  102. package/types/server/getHeaders.d.ts +3 -0
  103. package/types/server/getHeaders.d.ts.map +11 -0
  104. package/types/server/isServerRuntime.d.ts +3 -0
  105. package/types/server/isServerRuntime.d.ts.map +11 -0
  106. package/types/server/prettyPrintRequest.d.ts +3 -0
  107. package/types/server/prettyPrintRequest.d.ts.map +11 -0
  108. package/types/server/prettyPrintResponse.d.ts +3 -0
  109. package/types/server/prettyPrintResponse.d.ts.map +11 -0
  110. package/types/server/streamToString.d.ts +3 -0
  111. package/types/server/streamToString.d.ts.map +11 -0
  112. package/types/server-only.d.ts +2 -0
  113. package/types/server-only.d.ts.map +11 -0
  114. package/types/storage/createStorage.d.ts +65 -0
  115. package/types/storage/createStorage.d.ts.map +11 -0
  116. package/types/storage/driver.d.ts +5 -0
  117. package/types/storage/driver.d.ts.map +11 -0
  118. package/types/storage/storage.test.d.ts +3 -0
  119. package/types/storage/storage.test.d.ts.map +11 -0
  120. package/types/storage/types.d.ts +8 -0
  121. package/types/storage/types.d.ts.map +11 -0
  122. package/types/string/dedent.d.ts +3 -0
  123. package/types/string/dedent.d.ts.map +11 -0
  124. package/types/string/ellipsis.d.ts +3 -0
  125. package/types/string/ellipsis.d.ts.map +11 -0
  126. package/types/string/hash.d.ts +4 -0
  127. package/types/string/hash.d.ts.map +11 -0
  128. package/types/string/insertAtIndex.d.ts +3 -0
  129. package/types/string/insertAtIndex.d.ts.map +11 -0
  130. package/types/string/nbspLastWord.d.ts +7 -0
  131. package/types/string/nbspLastWord.d.ts.map +11 -0
  132. package/types/string/pickLast.d.ts +3 -0
  133. package/types/string/pickLast.d.ts.map +11 -0
  134. package/types/string/pluralize.d.ts +5 -0
  135. package/types/string/pluralize.d.ts.map +11 -0
  136. package/types/string/pluralize.native.d.ts +4 -0
  137. package/types/string/pluralize.native.d.ts.map +11 -0
  138. package/types/string/randomId.d.ts +3 -0
  139. package/types/string/randomId.d.ts.map +11 -0
  140. package/types/string/slugify.d.ts +3 -0
  141. package/types/string/slugify.d.ts.map +11 -0
  142. package/types/string/truncateList.d.ts +17 -0
  143. package/types/string/truncateList.d.ts.map +11 -0
  144. package/types/time/formatDate.d.ts +5 -0
  145. package/types/time/formatDate.d.ts.map +11 -0
  146. package/types/time/formatDateRelative.d.ts +3 -0
  147. package/types/time/formatDateRelative.d.ts.map +11 -0
  148. package/types/time/formatDistanceToNow.d.ts +3 -0
  149. package/types/time/formatDistanceToNow.d.ts.map +11 -0
  150. package/types/time/time.d.ts +29 -0
  151. package/types/time/time.d.ts.map +11 -0
  152. package/types/time/useTimer.d.ts +11 -0
  153. package/types/time/useTimer.d.ts.map +11 -0
  154. package/types/types/NullToOptional.d.ts +3 -0
  155. package/types/types/NullToOptional.d.ts.map +11 -0
  156. package/types/types/object.d.ts +16 -0
  157. package/types/types/object.d.ts.map +11 -0
  158. package/types/types/react.d.ts +3 -0
  159. package/types/types/react.d.ts.map +11 -0
  160. package/types/types/timer.d.ts +3 -0
  161. package/types/types/timer.d.ts.map +11 -0
  162. package/types/types/tuple.d.ts +3 -0
  163. package/types/types/tuple.d.ts.map +11 -0
  164. package/types/url/urlSanitize.d.ts +3 -0
  165. package/types/url/urlSanitize.d.ts.map +11 -0
  166. package/types/url/urlValidate.d.ts +3 -0
  167. package/types/url/urlValidate.d.ts.map +11 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAAA,OAAO,iBAAS,oBAAoB",
3
+ "names": [],
4
+ "sources": [
5
+ "src/time/formatDistanceToNow.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "export function formatDistanceToNow(timestamp: number): string {\n const now = Date.now()\n const diff = now - timestamp\n\n const minutes = Math.floor(diff / 60000)\n const hours = Math.floor(diff / 3600000)\n const days = Math.floor(diff / 86400000)\n\n if (minutes < 1) return 'just now'\n if (minutes < 60) return `${minutes}m`\n if (hours < 24) return `${hours}h`\n if (days < 7) return `${days}d`\n if (days < 30) return `${Math.floor(days / 7)}w`\n if (days < 365) return `${Math.floor(days / 30)}mo`\n\n return `${Math.floor(days / 365)}y`\n}\n"
10
+ ]
11
+ }
@@ -0,0 +1,29 @@
1
+ interface MsFunction {
2
+ (n: number): number;
3
+ seconds: (n: number) => number;
4
+ minutes: (n: number) => number;
5
+ hours: (n: number) => number;
6
+ days: (n: number) => number;
7
+ weeks: (n: number) => number;
8
+ }
9
+ interface SecondFunction {
10
+ (n: number): number;
11
+ minutes: (n: number) => number;
12
+ hours: (n: number) => number;
13
+ days: (n: number) => number;
14
+ weeks: (n: number) => number;
15
+ }
16
+ interface MinuteFunction {
17
+ (n: number): number;
18
+ hours: (n: number) => number;
19
+ days: (n: number) => number;
20
+ weeks: (n: number) => number;
21
+ }
22
+ export declare const time: {
23
+ ms: MsFunction;
24
+ second: SecondFunction;
25
+ minute: MinuteFunction;
26
+ };
27
+ export {};
28
+
29
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "UAAU,WAAW;EAClB;CACD,UAAU;CACV,UAAU;CACV,QAAQ;CACR,OAAO;CACP,QAAQ;;UAGA,eAAe;EACtB;CACD,UAAU;CACV,QAAQ;CACR,OAAO;CACP,QAAQ;;UAGA,eAAe;EACtB;CACD,QAAQ;CACR,OAAO;CACP,QAAQ;;AAqBV,OAAO,cAAM,MAAM;CACjB,IAAI;CACJ,QAAQ;CACR,QAAQ",
3
+ "names": [],
4
+ "sources": [
5
+ "src/time/time.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "interface MsFunction {\n (n: number): number\n seconds: (n: number) => number\n minutes: (n: number) => number\n hours: (n: number) => number\n days: (n: number) => number\n weeks: (n: number) => number\n}\n\ninterface SecondFunction {\n (n: number): number\n minutes: (n: number) => number\n hours: (n: number) => number\n days: (n: number) => number\n weeks: (n: number) => number\n}\n\ninterface MinuteFunction {\n (n: number): number\n hours: (n: number) => number\n days: (n: number) => number\n weeks: (n: number) => number\n}\n\nconst ms = ((n: number) => n) as MsFunction\nms.seconds = (n: number) => n * 1000\nms.minutes = (n: number) => ms.seconds(n * 60)\nms.hours = (n: number) => ms.minutes(n * 60)\nms.days = (n: number) => ms.hours(n * 24)\nms.weeks = (n: number) => ms.days(n * 7)\n\nconst second = ((n: number) => n) as SecondFunction\nsecond.minutes = (n: number) => n * 60\nsecond.hours = (n: number) => second.minutes(n * 60)\nsecond.days = (n: number) => second.hours(n * 24)\nsecond.weeks = (n: number) => second.days(n * 7)\n\nconst minute = ((n: number) => n * 60) as MinuteFunction\nminute.hours = (n: number) => minute(n * 60)\nminute.days = (n: number) => minute.hours(n * 24)\nminute.weeks = (n: number) => minute.days(n * 7)\n\nexport const time: {\n ms: MsFunction\n second: SecondFunction\n minute: MinuteFunction\n} = {\n ms,\n second,\n minute,\n}\n"
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ type UseTimerReturn = {
2
+ count: number;
3
+ start: (time: number, start: boolean) => void;
4
+ pause: () => void;
5
+ resume: () => void;
6
+ clear: () => void;
7
+ };
8
+ export declare const useTimer: () => UseTimerReturn;
9
+ export {};
10
+
11
+ //# sourceMappingURL=useTimer.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "KAEK,iBAAiB;CACpB;CACA,QAAQ,cAAc;CACtB;CACA;CACA;;AAGF,OAAO,cAAM,gBAAe",
3
+ "names": [],
4
+ "sources": [
5
+ "src/time/useTimer.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "import { useState, useEffect, useRef, useMemo, useCallback } from 'react'\n\ntype UseTimerReturn = {\n count: number\n start: (time: number, start: boolean) => void\n pause: () => void\n resume: () => void\n clear: () => void\n}\n\nexport const useTimer = (): UseTimerReturn => {\n const [timerCount, setTimer] = useState<number>(30)\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null)\n\n const clearTimer = useCallback(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n }, [])\n\n const resetTimer = useCallback(\n (time: number, start: boolean) => {\n setTimer(time)\n clearTimer()\n if (start) {\n intervalRef.current = setInterval(() => {\n setTimer((lastTimerCount) => {\n if (lastTimerCount <= 1) {\n clearInterval(intervalRef.current!)\n intervalRef.current = null\n return 0\n }\n return lastTimerCount - 1\n })\n }, 1000)\n }\n },\n [clearTimer]\n )\n\n const pauseTimer = useCallback(() => {\n clearTimer()\n }, [clearTimer])\n\n const resumeTimer = useCallback(() => {\n if (!intervalRef.current) {\n intervalRef.current = setInterval(() => {\n setTimer((lastTimerCount) => {\n if (lastTimerCount <= 1) {\n clearInterval(intervalRef.current!)\n intervalRef.current = null\n return 0\n }\n return lastTimerCount - 1\n })\n }, 1000)\n }\n }, [])\n\n useEffect(() => {\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n }\n }, [])\n\n return useMemo(\n () => ({\n count: timerCount,\n start: resetTimer,\n pause: pauseTimer,\n resume: resumeTimer,\n clear: clearTimer,\n }),\n [timerCount, clearTimer, pauseTimer, resetTimer, resumeTimer]\n )\n}\n"
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ export type NullToOptional<T> = { [K in keyof T as null extends T[K] ? K : never]? : Exclude<T[K], null> | undefined | null } & { [K in keyof T as null extends T[K] ? never : K] : T[K] };
2
+
3
+ //# sourceMappingURL=NullToOptional.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAAA,YAAY,eAAe,QACxB,WAAW,kBAAkB,EAAE,KAAK,cAAa,QAAQ,EAAE,oCAE3D,WAAW,kBAAkB,EAAE,aAAa,KAAI,EAAE",
3
+ "names": [],
4
+ "sources": [
5
+ "src/types/NullToOptional.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "export type NullToOptional<T> = {\n [K in keyof T as null extends T[K] ? K : never]?: Exclude<T[K], null> | undefined | null\n} & {\n [K in keyof T as null extends T[K] ? never : K]: T[K]\n}\n"
10
+ ]
11
+ }
@@ -0,0 +1,16 @@
1
+ export type Mutable<T> = { -readonly [K in keyof T] : T[K] };
2
+ export type EntriesType = [PropertyKey, unknown][] | ReadonlyArray<readonly [PropertyKey, unknown]>;
3
+ type DeepWritable<OBJ_T> = { -readonly [P in keyof OBJ_T] : DeepWritable<OBJ_T[P]> };
4
+ type UnionToIntersection<UNION_T> = (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void ? I : never;
5
+ type UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> = DeepWritable<ARR_T> extends (infer R)[] ? R extends [infer key, infer val] ? { [prop in key & PropertyKey] : val } : never : never;
6
+ type MergeIntersectingObjects<ObjT> = { [key in keyof ObjT] : ObjT[key] };
7
+ export type EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>>;
8
+ export type ObjectType = Record<PropertyKey, unknown>;
9
+ type PickByValue<
10
+ OBJ_T,
11
+ VALUE_T
12
+ > = Pick<OBJ_T, { [K in keyof OBJ_T] : OBJ_T[K] extends VALUE_T ? K : never }[keyof OBJ_T]>;
13
+ export type ObjectEntries<OBJ_T> = { [K in keyof OBJ_T] : [keyof PickByValue<OBJ_T, OBJ_T[K]>, OBJ_T[K]] }[keyof OBJ_T][];
14
+ export {};
15
+
16
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAIA,YAAY,QAAQ,kBACP,WAAW,KAAI,EAAE;AAG9B,YAAY,eACP,0BACD,wBAAwB;KAEvB,aAAa,sBAAsB,WAAW,SAAQ,aAAa,MAAM;KACzE,oBAAoB,YACtB,uBAAuB,GAAG,mCAAmC,SAAS,aACnE;KAGD,4BAA4B,cAAc,eAC7C,aAAa,sBAAsB,OAC/B,iBAAiB,WAAW,UACvB,QAAQ,MAAM,eAAc;KAIlC,yBAAyB,WAAW,aAAa,QAAO,KAAK;AAElE,YAAY,gBAAgB,cAAc,eAAe,yBACvD,oBAAoB,4BAA4B;AAGlD,YAAY,aAAa,OAAO;KAE3B;CAAY;CAAO;IACtB,KAAK,UAAU,WAAW,SAAQ,MAAM,WAAW,UAAU,kBAAkB;AAEjF,YAAY,cAAc,YACrB,WAAW,gBAAe,YAAY,OAAO,MAAM,KAAK,MAAM,YAAY",
3
+ "names": [],
4
+ "sources": [
5
+ "src/types/object.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "// note - TS doesn't support higher kinded types, so this doesn't work well\n\n// --- utils ---\n\nexport type Mutable<T> = {\n -readonly [K in keyof T]: T[K] // the ‘-readonly’ mapped-type modifier\n}\n\nexport type EntriesType =\n | [PropertyKey, unknown][]\n | ReadonlyArray<readonly [PropertyKey, unknown]>\n\ntype DeepWritable<OBJ_T> = { -readonly [P in keyof OBJ_T]: DeepWritable<OBJ_T[P]> }\ntype UnionToIntersection<UNION_T> = // From https://stackoverflow.com/a/50375286\n (UNION_T extends any ? (k: UNION_T) => void : never) extends (k: infer I) => void\n ? I\n : never\n\ntype UnionObjectFromArrayOfPairs<ARR_T extends EntriesType> =\n DeepWritable<ARR_T> extends (infer R)[]\n ? R extends [infer key, infer val]\n ? { [prop in key & PropertyKey]: val }\n : never\n : never\n\ntype MergeIntersectingObjects<ObjT> = { [key in keyof ObjT]: ObjT[key] }\n\nexport type EntriesToObject<ARR_T extends EntriesType> = MergeIntersectingObjects<\n UnionToIntersection<UnionObjectFromArrayOfPairs<ARR_T>>\n>\n\nexport type ObjectType = Record<PropertyKey, unknown>\n\ntype PickByValue<OBJ_T, VALUE_T> = // From https://stackoverflow.com/a/55153000\n Pick<OBJ_T, { [K in keyof OBJ_T]: OBJ_T[K] extends VALUE_T ? K : never }[keyof OBJ_T]>\n\nexport type ObjectEntries<OBJ_T> = // From https://stackoverflow.com/a/60142095\n { [K in keyof OBJ_T]: [keyof PickByValue<OBJ_T, OBJ_T[K]>, OBJ_T[K]] }[keyof OBJ_T][]\n"
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ export type RefProp<T> = React.RefObject<T> | React.RefCallback<T>;
2
+
3
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAAA,YAAY,QAAQ,KAAK,MAAM,UAAU,KAAK,MAAM,YAAY",
3
+ "names": [],
4
+ "sources": [
5
+ "src/types/react.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "export type RefProp<T> = React.RefObject<T> | React.RefCallback<T>\n"
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ export type Timer = ReturnType<typeof setTimeout>;
2
+
3
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAAA,YAAY,QAAQ,kBAAkB",
3
+ "names": [],
4
+ "sources": [
5
+ "src/types/timer.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "export type Timer = ReturnType<typeof setTimeout>\n"
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ export type TupleToUnion<T extends any[]> = T[number];
2
+
3
+ //# sourceMappingURL=tuple.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAAA,YAAY,aAAa,mBAAmB",
3
+ "names": [],
4
+ "sources": [
5
+ "src/types/tuple.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "export type TupleToUnion<T extends any[]> = T[number]\n"
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ export declare function urlSanitize(url: string): string;
2
+
3
+ //# sourceMappingURL=urlSanitize.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AASA,OAAO,iBAAS,YAAY",
3
+ "names": [],
4
+ "sources": [
5
+ "src/url/urlSanitize.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nconst protocols = new Set(['http:', 'https:', 'mailto:', 'tel:', 'sms:'])\n\nexport function urlSanitize(url: string): string {\n try {\n const parsedUrl = new URL(url)\n if (!protocols.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch {\n return url\n }\n return url\n}\n"
10
+ ]
11
+ }
@@ -0,0 +1,3 @@
1
+ export declare function urlValidate(url: string): boolean;
2
+
3
+ //# sourceMappingURL=urlValidate.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "AAMA,OAAO,iBAAS,YAAY",
3
+ "names": [],
4
+ "sources": [
5
+ "src/url/urlValidate.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "// Source: https://stackoverflow.com/a/8234912/2013580\n\nconst urlRegExp = new RegExp(\n /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[-;:&=+$,\\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[+~%/.\\w-_]*)?\\??(?:[-+=&;%@.\\w_]*)#?(?:[\\w]*))?)/\n)\n\nexport function urlValidate(url: string): boolean {\n // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.\n // Maybe show a dialog where they user can type the URL before inserting it.\n return url === 'https://' || urlRegExp.test(url)\n}\n"
10
+ ]
11
+ }