@bessemer/cornerstone 0.5.114 → 0.5.115

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 (247) hide show
  1. package/dist/array.d.ts.map +1 -1
  2. package/dist/array.js +28 -28
  3. package/dist/array.js.map +1 -1
  4. package/dist/aspect-ratio.d.ts +3 -3
  5. package/dist/aspect-ratio.d.ts.map +1 -1
  6. package/dist/aspect-ratio.js +13 -12
  7. package/dist/aspect-ratio.js.map +1 -1
  8. package/dist/assertion.d.ts.map +1 -1
  9. package/dist/assertion.js +5 -5
  10. package/dist/assertion.js.map +1 -1
  11. package/dist/async-value.js +2 -2
  12. package/dist/async-value.js.map +1 -1
  13. package/dist/async.d.ts.map +1 -1
  14. package/dist/async.js +2 -2
  15. package/dist/async.js.map +1 -1
  16. package/dist/cache.d.ts.map +1 -1
  17. package/dist/cache.js +11 -12
  18. package/dist/cache.js.map +1 -1
  19. package/dist/combinable.js +5 -5
  20. package/dist/combinable.js.map +1 -1
  21. package/dist/comparator.js +8 -8
  22. package/dist/comparator.js.map +1 -1
  23. package/dist/data-size.d.ts +2 -1
  24. package/dist/data-size.d.ts.map +1 -1
  25. package/dist/data-size.js +3 -3
  26. package/dist/data-size.js.map +1 -1
  27. package/dist/either.js +5 -5
  28. package/dist/either.js.map +1 -1
  29. package/dist/equalitor.d.ts.map +1 -1
  30. package/dist/equalitor.js +2 -2
  31. package/dist/equalitor.js.map +1 -1
  32. package/dist/error/error-cause.d.ts.map +1 -1
  33. package/dist/error/error-cause.js +14 -14
  34. package/dist/error/error-cause.js.map +1 -1
  35. package/dist/error/error-code.js +2 -2
  36. package/dist/error/error-code.js.map +1 -1
  37. package/dist/error/error-event.d.ts +3 -2
  38. package/dist/error/error-event.d.ts.map +1 -1
  39. package/dist/error/error-event.js +28 -28
  40. package/dist/error/error-event.js.map +1 -1
  41. package/dist/error/error-type.d.ts +2 -1
  42. package/dist/error/error-type.d.ts.map +1 -1
  43. package/dist/error/error-type.js +2 -2
  44. package/dist/error/error-type.js.map +1 -1
  45. package/dist/error/error.js +5 -5
  46. package/dist/error/error.js.map +1 -1
  47. package/dist/expression/array-expression.js +3 -3
  48. package/dist/expression/array-expression.js.map +1 -1
  49. package/dist/expression/core-expression.d.ts.map +1 -1
  50. package/dist/expression/core-expression.js +19 -19
  51. package/dist/expression/core-expression.js.map +1 -1
  52. package/dist/expression/expression-evaluator.js +2 -2
  53. package/dist/expression/expression-evaluator.js.map +1 -1
  54. package/dist/expression/expression-mapper.js +4 -4
  55. package/dist/expression/expression-mapper.js.map +1 -1
  56. package/dist/expression/internal.js +3 -3
  57. package/dist/expression/internal.js.map +1 -1
  58. package/dist/expression/numeric-expression.js +13 -13
  59. package/dist/expression/numeric-expression.js.map +1 -1
  60. package/dist/expression/string-expression.js +4 -4
  61. package/dist/expression/string-expression.js.map +1 -1
  62. package/dist/glob.d.ts +3 -3
  63. package/dist/glob.d.ts.map +1 -1
  64. package/dist/glob.js +11 -12
  65. package/dist/glob.js.map +1 -1
  66. package/dist/global-variable.d.ts.map +1 -1
  67. package/dist/global-variable.js +5 -5
  68. package/dist/global-variable.js.map +1 -1
  69. package/dist/hex-code.d.ts +3 -3
  70. package/dist/hex-code.d.ts.map +1 -1
  71. package/dist/hex-code.js +11 -10
  72. package/dist/hex-code.js.map +1 -1
  73. package/dist/index.d.ts +10 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +4 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/intl/country-code.d.ts +3 -3
  78. package/dist/intl/country-code.d.ts.map +1 -1
  79. package/dist/intl/country-code.js +9 -10
  80. package/dist/intl/country-code.js.map +1 -1
  81. package/dist/intl/country-subdivision-code.d.ts +3 -3
  82. package/dist/intl/country-subdivision-code.d.ts.map +1 -1
  83. package/dist/intl/country-subdivision-code.js +13 -11
  84. package/dist/intl/country-subdivision-code.js.map +1 -1
  85. package/dist/intl/currency-code.d.ts +3 -3
  86. package/dist/intl/currency-code.d.ts.map +1 -1
  87. package/dist/intl/currency-code.js +9 -10
  88. package/dist/intl/currency-code.js.map +1 -1
  89. package/dist/intl/language-code.d.ts +3 -3
  90. package/dist/intl/language-code.d.ts.map +1 -1
  91. package/dist/intl/language-code.js +9 -10
  92. package/dist/intl/language-code.js.map +1 -1
  93. package/dist/intl/locale.d.ts +3 -3
  94. package/dist/intl/locale.d.ts.map +1 -1
  95. package/dist/intl/locale.js +18 -19
  96. package/dist/intl/locale.js.map +1 -1
  97. package/dist/json.d.ts.map +1 -1
  98. package/dist/json.js +2 -2
  99. package/dist/json.js.map +1 -1
  100. package/dist/logger.d.ts.map +1 -1
  101. package/dist/logger.js +12 -12
  102. package/dist/logger.js.map +1 -1
  103. package/dist/map.js +8 -8
  104. package/dist/map.js.map +1 -1
  105. package/dist/mime-type.d.ts +3 -3
  106. package/dist/mime-type.d.ts.map +1 -1
  107. package/dist/mime-type.js +9 -10
  108. package/dist/mime-type.js.map +1 -1
  109. package/dist/misc.js +4 -4
  110. package/dist/misc.js.map +1 -1
  111. package/dist/monetary-amount.d.ts +3 -2
  112. package/dist/monetary-amount.d.ts.map +1 -1
  113. package/dist/monetary-amount.js +16 -16
  114. package/dist/monetary-amount.js.map +1 -1
  115. package/dist/net/content-type.d.ts +2 -1
  116. package/dist/net/content-type.d.ts.map +1 -1
  117. package/dist/net/content-type.js +2 -2
  118. package/dist/net/content-type.js.map +1 -1
  119. package/dist/net/domain-name.d.ts +3 -3
  120. package/dist/net/domain-name.d.ts.map +1 -1
  121. package/dist/net/domain-name.js +10 -11
  122. package/dist/net/domain-name.js.map +1 -1
  123. package/dist/net/http-method.d.ts.map +1 -1
  124. package/dist/net/http-method.js +9 -9
  125. package/dist/net/http-method.js.map +1 -1
  126. package/dist/net/ipv4-address.d.ts +3 -3
  127. package/dist/net/ipv4-address.d.ts.map +1 -1
  128. package/dist/net/ipv4-address.js +10 -11
  129. package/dist/net/ipv4-address.js.map +1 -1
  130. package/dist/net/ipv6-address.d.ts +3 -3
  131. package/dist/net/ipv6-address.d.ts.map +1 -1
  132. package/dist/net/ipv6-address.js +10 -11
  133. package/dist/net/ipv6-address.js.map +1 -1
  134. package/dist/net/uri-host-name.d.ts +3 -3
  135. package/dist/net/uri-host-name.d.ts.map +1 -1
  136. package/dist/net/uri-host-name.js +15 -16
  137. package/dist/net/uri-host-name.js.map +1 -1
  138. package/dist/net/uri.d.ts +1 -2
  139. package/dist/net/uri.d.ts.map +1 -1
  140. package/dist/net/uri.js +5 -3
  141. package/dist/net/uri.js.map +1 -1
  142. package/dist/net/url.d.ts.map +1 -1
  143. package/dist/net/url.js +6 -7
  144. package/dist/net/url.js.map +1 -1
  145. package/dist/object/object-path.d.ts.map +1 -1
  146. package/dist/object/object-path.js +23 -28
  147. package/dist/object/object-path.js.map +1 -1
  148. package/dist/object/type-path.js +19 -19
  149. package/dist/object/type-path.js.map +1 -1
  150. package/dist/patch.js +4 -4
  151. package/dist/patch.js.map +1 -1
  152. package/dist/promise.js +2 -2
  153. package/dist/promise.js.map +1 -1
  154. package/dist/property.d.ts.map +1 -1
  155. package/dist/property.js +7 -7
  156. package/dist/property.js.map +1 -1
  157. package/dist/proxy.js +2 -2
  158. package/dist/proxy.js.map +1 -1
  159. package/dist/range.js +2 -2
  160. package/dist/range.js.map +1 -1
  161. package/dist/reference.d.ts +2 -1
  162. package/dist/reference.d.ts.map +1 -1
  163. package/dist/reference.js +13 -13
  164. package/dist/reference.js.map +1 -1
  165. package/dist/resource-key.js +2 -2
  166. package/dist/resource-key.js.map +1 -1
  167. package/dist/result.js +5 -5
  168. package/dist/result.js.map +1 -1
  169. package/dist/retry.d.ts.map +1 -1
  170. package/dist/retry.js +12 -12
  171. package/dist/retry.js.map +1 -1
  172. package/dist/rich-text.js +2 -2
  173. package/dist/rich-text.js.map +1 -1
  174. package/dist/signature.d.ts.map +1 -1
  175. package/dist/signature.js +9 -9
  176. package/dist/signature.js.map +1 -1
  177. package/dist/sql/sql-expression-parser.js +2 -2
  178. package/dist/sql/sql-expression-parser.js.map +1 -1
  179. package/dist/store.d.ts.map +1 -1
  180. package/dist/store.js +9 -9
  181. package/dist/store.js.map +1 -1
  182. package/dist/string.js +4 -4
  183. package/dist/string.js.map +1 -1
  184. package/dist/tag.d.ts.map +1 -1
  185. package/dist/tag.js +10 -10
  186. package/dist/tag.js.map +1 -1
  187. package/dist/temporal/clock.d.ts +13 -13
  188. package/dist/temporal/clock.d.ts.map +1 -1
  189. package/dist/temporal/clock.js +10 -10
  190. package/dist/temporal/clock.js.map +1 -1
  191. package/dist/temporal/duration.d.ts +15 -9
  192. package/dist/temporal/duration.d.ts.map +1 -1
  193. package/dist/temporal/duration.js +30 -31
  194. package/dist/temporal/duration.js.map +1 -1
  195. package/dist/temporal/instant.d.ts +18 -15
  196. package/dist/temporal/instant.d.ts.map +1 -1
  197. package/dist/temporal/instant.js +42 -43
  198. package/dist/temporal/instant.js.map +1 -1
  199. package/dist/temporal/plain-date-time.d.ts +16 -13
  200. package/dist/temporal/plain-date-time.d.ts.map +1 -1
  201. package/dist/temporal/plain-date-time.js +36 -38
  202. package/dist/temporal/plain-date-time.js.map +1 -1
  203. package/dist/temporal/plain-date.d.ts +16 -13
  204. package/dist/temporal/plain-date.d.ts.map +1 -1
  205. package/dist/temporal/plain-date.js +35 -37
  206. package/dist/temporal/plain-date.js.map +1 -1
  207. package/dist/temporal/plain-month-day.d.ts +37 -0
  208. package/dist/temporal/plain-month-day.d.ts.map +1 -0
  209. package/dist/temporal/plain-month-day.js +84 -0
  210. package/dist/temporal/plain-month-day.js.map +1 -0
  211. package/dist/temporal/plain-time.d.ts +19 -17
  212. package/dist/temporal/plain-time.d.ts.map +1 -1
  213. package/dist/temporal/plain-time.js +43 -42
  214. package/dist/temporal/plain-time.js.map +1 -1
  215. package/dist/temporal/plain-year-month.d.ts +57 -0
  216. package/dist/temporal/plain-year-month.d.ts.map +1 -0
  217. package/dist/temporal/plain-year-month.js +109 -0
  218. package/dist/temporal/plain-year-month.js.map +1 -0
  219. package/dist/temporal/time-zone-id.d.ts +5 -4
  220. package/dist/temporal/time-zone-id.d.ts.map +1 -1
  221. package/dist/temporal/time-zone-id.js +11 -11
  222. package/dist/temporal/time-zone-id.js.map +1 -1
  223. package/dist/temporal/time-zone-offset.d.ts +12 -11
  224. package/dist/temporal/time-zone-offset.d.ts.map +1 -1
  225. package/dist/temporal/time-zone-offset.js +42 -50
  226. package/dist/temporal/time-zone-offset.js.map +1 -1
  227. package/dist/temporal/zoned-date-time.d.ts +16 -13
  228. package/dist/temporal/zoned-date-time.d.ts.map +1 -1
  229. package/dist/temporal/zoned-date-time.js +35 -36
  230. package/dist/temporal/zoned-date-time.js.map +1 -1
  231. package/dist/uuid/ulid.d.ts +3 -3
  232. package/dist/uuid/ulid.d.ts.map +1 -1
  233. package/dist/uuid/ulid.js +9 -10
  234. package/dist/uuid/ulid.js.map +1 -1
  235. package/dist/uuid/uuid-v4.d.ts +3 -3
  236. package/dist/uuid/uuid-v4.d.ts.map +1 -1
  237. package/dist/uuid/uuid-v4.js +13 -14
  238. package/dist/uuid/uuid-v4.js.map +1 -1
  239. package/dist/uuid/uuid-v7.d.ts +1 -2
  240. package/dist/uuid/uuid-v7.d.ts.map +1 -1
  241. package/dist/uuid/uuid-v7.js +1 -2
  242. package/dist/uuid/uuid-v7.js.map +1 -1
  243. package/dist/zod-util.d.ts +4 -21
  244. package/dist/zod-util.d.ts.map +1 -1
  245. package/dist/zod-util.js +21 -11
  246. package/dist/zod-util.js.map +1 -1
  247. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/string.ts"],"sourcesContent":["import { UnknownRecord } from 'type-fest'\nimport { rest } from '@bessemer/cornerstone/array'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport Zod from 'zod'\n\nexport const isString = (value: any): value is string => {\n return typeof value === 'string'\n}\n\nexport const isEmpty = (value: string): boolean => {\n return value.length === 0\n}\n\nexport const isEmptyOrNil = (value: string | null | undefined): boolean => {\n if (isNil(value)) {\n return true\n }\n\n return isEmpty(value)\n}\n\nexport const emptyToNull = (value: string): string | null => {\n if (isEmptyOrNil(value)) {\n return null\n }\n\n return value\n}\n\nexport const isBlank = (str?: string | null): boolean => {\n const testStr = str ?? ''\n return /^\\s*$/.test(testStr)\n}\n\nexport type StringSplitResult = { selection: string; separator: string; rest: string } | { selection: null; separator: null; rest: string }\n\nexport const splitFirst = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[0]!, separator: splitter, rest: rest(results).join(splitter) }\n } else {\n const match = splitter.exec(str)\n\n if (!match) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = match.index\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + match[0].length)\n const separator = match[0]\n return { selection: beforeMatch, separator, rest: afterMatch }\n }\n}\n\nexport const splitLast = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[results.length - 1]!, separator: splitter, rest: results.slice(0, results.length - 1).join(splitter) }\n } else {\n if (!splitter.global) {\n splitter = new RegExp(splitter.source, splitter.flags + 'g')\n }\n\n const matches = Array.from(str.matchAll(splitter))\n\n if (matches.length === 0) {\n return { selection: null, separator: null, rest: str }\n }\n\n // Use the last match\n const lastMatch = matches[matches.length - 1]!\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]!\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator: separator,\n rest: beforeMatch,\n }\n }\n}\n\nexport const splitLastRegex = (str: string, regex: RegExp): StringSplitResult => {\n // Find the last match using regex lastIndex\n let lastMatch: RegExpExecArray | null = null\n let match\n\n while ((match = regex.exec(str)) !== null) {\n lastMatch = match\n }\n\n if (!lastMatch) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator,\n rest: beforeMatch,\n }\n}\n\nexport const splitAt = (str: string, index: number): [string, string] => {\n return [str.slice(0, index), str.slice(index)] as const\n}\n\nexport const removeStart = (string: string, substring: string): string => {\n if (!string.startsWith(substring)) {\n return string\n }\n\n return string.slice(substring.length)\n}\n\nexport const removeEnd = (string: string, substring: string): string => {\n if (!string.endsWith(substring)) {\n return string\n }\n\n return string.slice(0, -substring.length)\n}\n\nexport const mostCentralOccurrence = (str: string, substr: string): number | null => {\n const occurrences: number[] = []\n let index = str.indexOf(substr)\n\n while (index !== -1) {\n occurrences.push(index)\n index = str.indexOf(substr, index + 1)\n }\n\n if (occurrences.length === 0) {\n return null\n }\n\n const center = str.length / 2\n\n let closestIndex = occurrences[0]!\n let minDistance = Math.abs(center - closestIndex)\n\n for (let i = 1; i < occurrences.length; i++) {\n const distance = Math.abs(center - occurrences[i]!)\n if (distance < minDistance) {\n minDistance = distance\n closestIndex = occurrences[i]!\n }\n }\n\n return closestIndex\n}\n\nexport const replacePlaceholders = (string: string, parameters: UnknownRecord, getParamPlaceholder = (paramName: string) => `{{${paramName}}}`) => {\n return Object.entries(parameters).reduce(\n (intermediateString, [paramName, paramValue]) => intermediateString.replaceAll(getParamPlaceholder(paramName), `${paramValue}`),\n string\n )\n}\n\nexport const padStart = (str: string, length: number, chars: string): string => {\n if (str.length >= length) {\n return str\n }\n\n const padLength = length - str.length\n const padString = chars.repeat(Math.ceil(padLength / chars.length))\n\n return padString.slice(0, padLength) + str\n}\n\nexport const padEnd = (str: string, length: number, chars: string): string => {\n if (str.length >= length) {\n return str\n }\n\n const padLength = length - str.length\n const padString = chars.repeat(Math.ceil(padLength / chars.length))\n\n return str + padString.slice(0, padLength)\n}\n\nexport const isNumber = (value: string): boolean => {\n if (value.trim() === '') {\n return false\n }\n\n const num = Number(value)\n return !isNaN(num) && isFinite(num)\n}\n\nexport const capitalize = <T extends string>(str: T): Capitalize<T> => {\n return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize<T>\n}\n\nexport namespace Schema {\n const Text = Zod.string().trim().min(1)\n\n const TextNullable = Zod.string()\n .trim()\n .transform((val) => (isEmpty(val) ? null : val))\n}\n"],"mappings":"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","names":["Schema"]}
1
+ {"version":3,"sources":["../src/string.ts"],"sourcesContent":["import { UnknownRecord } from 'type-fest'\nimport * as Arrays from '@bessemer/cornerstone/array'\nimport * as Objects from '@bessemer/cornerstone/object'\nimport Zod from 'zod'\n\nexport const isString = (value: any): value is string => {\n return typeof value === 'string'\n}\n\nexport const isEmpty = (value: string): boolean => {\n return value.length === 0\n}\n\nexport const isEmptyOrNil = (value: string | null | undefined): boolean => {\n if (Objects.isNil(value)) {\n return true\n }\n\n return isEmpty(value)\n}\n\nexport const emptyToNull = (value: string): string | null => {\n if (isEmptyOrNil(value)) {\n return null\n }\n\n return value\n}\n\nexport const isBlank = (str?: string | null): boolean => {\n const testStr = str ?? ''\n return /^\\s*$/.test(testStr)\n}\n\nexport type StringSplitResult = { selection: string; separator: string; rest: string } | { selection: null; separator: null; rest: string }\n\nexport const splitFirst = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[0]!, separator: splitter, rest: Arrays.rest(results).join(splitter) }\n } else {\n const match = splitter.exec(str)\n\n if (!match) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = match.index\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + match[0].length)\n const separator = match[0]\n return { selection: beforeMatch, separator, rest: afterMatch }\n }\n}\n\nexport const splitLast = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[results.length - 1]!, separator: splitter, rest: results.slice(0, results.length - 1).join(splitter) }\n } else {\n if (!splitter.global) {\n splitter = new RegExp(splitter.source, splitter.flags + 'g')\n }\n\n const matches = Array.from(str.matchAll(splitter))\n\n if (matches.length === 0) {\n return { selection: null, separator: null, rest: str }\n }\n\n // Use the last match\n const lastMatch = matches[matches.length - 1]!\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]!\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator: separator,\n rest: beforeMatch,\n }\n }\n}\n\nexport const splitLastRegex = (str: string, regex: RegExp): StringSplitResult => {\n // Find the last match using regex lastIndex\n let lastMatch: RegExpExecArray | null = null\n let match\n\n while ((match = regex.exec(str)) !== null) {\n lastMatch = match\n }\n\n if (!lastMatch) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator,\n rest: beforeMatch,\n }\n}\n\nexport const splitAt = (str: string, index: number): [string, string] => {\n return [str.slice(0, index), str.slice(index)] as const\n}\n\nexport const removeStart = (string: string, substring: string): string => {\n if (!string.startsWith(substring)) {\n return string\n }\n\n return string.slice(substring.length)\n}\n\nexport const removeEnd = (string: string, substring: string): string => {\n if (!string.endsWith(substring)) {\n return string\n }\n\n return string.slice(0, -substring.length)\n}\n\nexport const mostCentralOccurrence = (str: string, substr: string): number | null => {\n const occurrences: number[] = []\n let index = str.indexOf(substr)\n\n while (index !== -1) {\n occurrences.push(index)\n index = str.indexOf(substr, index + 1)\n }\n\n if (occurrences.length === 0) {\n return null\n }\n\n const center = str.length / 2\n\n let closestIndex = occurrences[0]!\n let minDistance = Math.abs(center - closestIndex)\n\n for (let i = 1; i < occurrences.length; i++) {\n const distance = Math.abs(center - occurrences[i]!)\n if (distance < minDistance) {\n minDistance = distance\n closestIndex = occurrences[i]!\n }\n }\n\n return closestIndex\n}\n\nexport const replacePlaceholders = (string: string, parameters: UnknownRecord, getParamPlaceholder = (paramName: string) => `{{${paramName}}}`) => {\n return Object.entries(parameters).reduce(\n (intermediateString, [paramName, paramValue]) => intermediateString.replaceAll(getParamPlaceholder(paramName), `${paramValue}`),\n string\n )\n}\n\nexport const padStart = (str: string, length: number, chars: string): string => {\n if (str.length >= length) {\n return str\n }\n\n const padLength = length - str.length\n const padString = chars.repeat(Math.ceil(padLength / chars.length))\n\n return padString.slice(0, padLength) + str\n}\n\nexport const padEnd = (str: string, length: number, chars: string): string => {\n if (str.length >= length) {\n return str\n }\n\n const padLength = length - str.length\n const padString = chars.repeat(Math.ceil(padLength / chars.length))\n\n return str + padString.slice(0, padLength)\n}\n\nexport const isNumber = (value: string): boolean => {\n if (value.trim() === '') {\n return false\n }\n\n const num = Number(value)\n return !isNaN(num) && isFinite(num)\n}\n\nexport const capitalize = <T extends string>(str: T): Capitalize<T> => {\n return (str.charAt(0).toUpperCase() + str.slice(1)) as Capitalize<T>\n}\n\nexport namespace Schema {\n const Text = Zod.string().trim().min(1)\n\n const TextNullable = Zod.string()\n .trim()\n .transform((val) => (isEmpty(val) ? null : val))\n}\n"],"mappings":"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","names":["Schema"]}
package/dist/tag.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../src/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAkB,MAAM,iCAAiC,CAAA;AAI3E,MAAM,MAAM,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,IAAI;IACpC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvB,KAAK,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAKxD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC;;;CAKlD,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAGzC,CAAA;AAEF,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAA6B,CAAA;AAErE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAEjE,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,cAMtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAEhG,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,CAAC,CAW1G,CAAA"}
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../src/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAI3D,MAAM,MAAM,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,IAAI;IACpC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvB,KAAK,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAKxD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC;;;CAKlD,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAGzC,CAAA;AAEF,eAAO,MAAM,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAwC,CAAA;AAEhF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAEjE,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,cAMtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAEhG,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,CAAC,CAW1G,CAAA"}
package/dist/tag.js CHANGED
@@ -1,8 +1,8 @@
1
1
  // src/tag.ts
2
2
  import * as Comparators from "@bessemer/cornerstone/comparator";
3
- import { fromComparator } from "@bessemer/cornerstone/equalitor";
4
- import { equalWith, isEmpty, sortWith } from "@bessemer/cornerstone/array";
5
- import { properPowerSet } from "@bessemer/cornerstone/set";
3
+ import * as Equalitors from "@bessemer/cornerstone/equalitor";
4
+ import * as Arrays from "@bessemer/cornerstone/array";
5
+ import * as Sets from "@bessemer/cornerstone/set";
6
6
  var tag = (type, value2) => {
7
7
  return {
8
8
  type,
@@ -12,27 +12,27 @@ var tag = (type, value2) => {
12
12
  var value = (value2, tags) => {
13
13
  return {
14
14
  value: value2,
15
- tags: sortWith(tags, CompareBy)
15
+ tags: Arrays.sortWith(tags, CompareBy)
16
16
  };
17
17
  };
18
18
  var CompareBy = Comparators.aggregate([
19
19
  Comparators.compareBy((it) => it.type, Comparators.natural()),
20
20
  Comparators.compareBy((it) => JSON.stringify(it.value), Comparators.natural())
21
21
  ]);
22
- var EqualBy = fromComparator(CompareBy);
22
+ var EqualBy = Equalitors.fromComparator(CompareBy);
23
23
  var serializeTags = (tags) => {
24
- const serializedTags = sortWith(tags, CompareBy).map(({ type, value: value2 }) => `${type}:${JSON.stringify(value2)}`).join(".");
24
+ const serializedTags = Arrays.sortWith(tags, CompareBy).map(({ type, value: value2 }) => `${type}:${JSON.stringify(value2)}`).join(".");
25
25
  return serializedTags;
26
26
  };
27
27
  var resolve = (values, tags) => {
28
28
  return resolveBy(values, (it) => it.tags, tags);
29
29
  };
30
30
  var resolveBy = (values, mapper, tags) => {
31
- const resolvedValues = properPowerSet(tags).flatMap((tags2) => {
32
- return values.filter((it) => equalWith(mapper(it), tags2, EqualBy));
31
+ const resolvedValues = Sets.properPowerSet(tags).flatMap((tags2) => {
32
+ return values.filter((it) => Arrays.equalWith(mapper(it), tags2, EqualBy));
33
33
  });
34
- if (isEmpty(resolvedValues)) {
35
- const defaultValues = values.filter((it) => isEmpty(mapper(it)));
34
+ if (Arrays.isEmpty(resolvedValues)) {
35
+ const defaultValues = values.filter((it) => Arrays.isEmpty(mapper(it)));
36
36
  return defaultValues;
37
37
  }
38
38
  return resolvedValues.reverse();
package/dist/tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tag.ts"],"sourcesContent":["import { TaggedType } from '@bessemer/cornerstone/types'\nimport * as Comparators from '@bessemer/cornerstone/comparator'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport { Equalitor, fromComparator } from '@bessemer/cornerstone/equalitor'\nimport { equalWith, isEmpty, sortWith } from '@bessemer/cornerstone/array'\nimport { properPowerSet } from '@bessemer/cornerstone/set'\n\nexport type TagType<DataType> = TaggedType<string, ['TagType', DataType]>\n\nexport type Tag<DataType = unknown> = {\n type: TagType<DataType>\n value: DataType\n}\n\nexport type TaggedValue<T> = {\n value: T\n tags: Array<Tag>\n}\n\nexport const tag = <T>(type: TagType<T>, value: T): Tag<T> => {\n return {\n type,\n value,\n }\n}\n\nexport const value = <T>(value: T, tags: Array<Tag>) => {\n return {\n value,\n tags: sortWith(tags, CompareBy),\n }\n}\n\nexport const CompareBy: Comparator<Tag<any>> = Comparators.aggregate([\n Comparators.compareBy((it) => it.type, Comparators.natural()),\n Comparators.compareBy((it) => JSON.stringify(it.value), Comparators.natural()),\n])\n\nexport const EqualBy: Equalitor<Tag<any>> = fromComparator(CompareBy)\n\nexport type SerializedTags = TaggedType<string, 'SerializedTags'>\n\nexport const serializeTags = <T>(tags: Array<Tag<T>>): SerializedTags => {\n const serializedTags: SerializedTags = sortWith(tags, CompareBy)\n .map(({ type, value }) => `${type}:${JSON.stringify(value)}`)\n .join('.')\n\n return serializedTags\n}\n\nexport const resolve = <T>(values: Array<TaggedValue<T>>, tags: Array<Tag>): Array<TaggedValue<T>> => {\n return resolveBy(values, (it) => it.tags, tags)\n}\n\nexport const resolveBy = <T>(values: Array<T>, mapper: (value: T) => Array<Tag>, tags: Array<Tag>): Array<T> => {\n const resolvedValues = properPowerSet(tags).flatMap((tags) => {\n return values.filter((it) => equalWith(mapper(it), tags, EqualBy))\n })\n\n if (isEmpty(resolvedValues)) {\n const defaultValues = values.filter((it) => isEmpty(mapper(it)))\n return defaultValues\n }\n\n return resolvedValues.reverse()\n}\n"],"mappings":";AACA,YAAY,iBAAiB;AAE7B,SAAoB,sBAAsB;AAC1C,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,sBAAsB;AAcxB,IAAM,MAAM,CAAI,MAAkBA,WAAqB;AAC5D,SAAO;AAAA,IACL;AAAA,IACA,OAAAA;AAAA,EACF;AACF;AAEO,IAAM,QAAQ,CAAIA,QAAU,SAAqB;AACtD,SAAO;AAAA,IACL,OAAAA;AAAA,IACA,MAAM,SAAS,MAAM,SAAS;AAAA,EAChC;AACF;AAEO,IAAM,YAA8C,sBAAU;AAAA,EACvD,sBAAU,CAAC,OAAO,GAAG,MAAkB,oBAAQ,CAAC;AAAA,EAChD,sBAAU,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,GAAe,oBAAQ,CAAC;AAC/E,CAAC;AAEM,IAAM,UAA+B,eAAe,SAAS;AAI7D,IAAM,gBAAgB,CAAI,SAAwC;AACvE,QAAM,iBAAiC,SAAS,MAAM,SAAS,EAC5D,IAAI,CAAC,EAAE,MAAM,OAAAA,OAAM,MAAM,GAAG,IAAI,IAAI,KAAK,UAAUA,MAAK,CAAC,EAAE,EAC3D,KAAK,GAAG;AAEX,SAAO;AACT;AAEO,IAAM,UAAU,CAAI,QAA+B,SAA4C;AACpG,SAAO,UAAU,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI;AAChD;AAEO,IAAM,YAAY,CAAI,QAAkB,QAAkC,SAA+B;AAC9G,QAAM,iBAAiB,eAAe,IAAI,EAAE,QAAQ,CAACC,UAAS;AAC5D,WAAO,OAAO,OAAO,CAAC,OAAO,UAAU,OAAO,EAAE,GAAGA,OAAM,OAAO,CAAC;AAAA,EACnE,CAAC;AAED,MAAI,QAAQ,cAAc,GAAG;AAC3B,UAAM,gBAAgB,OAAO,OAAO,CAAC,OAAO,QAAQ,OAAO,EAAE,CAAC,CAAC;AAC/D,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,QAAQ;AAChC;","names":["value","tags"]}
1
+ {"version":3,"sources":["../src/tag.ts"],"sourcesContent":["import { TaggedType } from '@bessemer/cornerstone/types'\nimport * as Comparators from '@bessemer/cornerstone/comparator'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport * as Equalitors from '@bessemer/cornerstone/equalitor'\nimport { Equalitor } from '@bessemer/cornerstone/equalitor'\nimport * as Arrays from '@bessemer/cornerstone/array'\nimport * as Sets from '@bessemer/cornerstone/set'\n\nexport type TagType<DataType> = TaggedType<string, ['TagType', DataType]>\n\nexport type Tag<DataType = unknown> = {\n type: TagType<DataType>\n value: DataType\n}\n\nexport type TaggedValue<T> = {\n value: T\n tags: Array<Tag>\n}\n\nexport const tag = <T>(type: TagType<T>, value: T): Tag<T> => {\n return {\n type,\n value,\n }\n}\n\nexport const value = <T>(value: T, tags: Array<Tag>) => {\n return {\n value,\n tags: Arrays.sortWith(tags, CompareBy),\n }\n}\n\nexport const CompareBy: Comparator<Tag<any>> = Comparators.aggregate([\n Comparators.compareBy((it) => it.type, Comparators.natural()),\n Comparators.compareBy((it) => JSON.stringify(it.value), Comparators.natural()),\n])\n\nexport const EqualBy: Equalitor<Tag<any>> = Equalitors.fromComparator(CompareBy)\n\nexport type SerializedTags = TaggedType<string, 'SerializedTags'>\n\nexport const serializeTags = <T>(tags: Array<Tag<T>>): SerializedTags => {\n const serializedTags: SerializedTags = Arrays.sortWith(tags, CompareBy)\n .map(({ type, value }) => `${type}:${JSON.stringify(value)}`)\n .join('.')\n\n return serializedTags\n}\n\nexport const resolve = <T>(values: Array<TaggedValue<T>>, tags: Array<Tag>): Array<TaggedValue<T>> => {\n return resolveBy(values, (it) => it.tags, tags)\n}\n\nexport const resolveBy = <T>(values: Array<T>, mapper: (value: T) => Array<Tag>, tags: Array<Tag>): Array<T> => {\n const resolvedValues = Sets.properPowerSet(tags).flatMap((tags) => {\n return values.filter((it) => Arrays.equalWith(mapper(it), tags, EqualBy))\n })\n\n if (Arrays.isEmpty(resolvedValues)) {\n const defaultValues = values.filter((it) => Arrays.isEmpty(mapper(it)))\n return defaultValues\n }\n\n return resolvedValues.reverse()\n}\n"],"mappings":";AACA,YAAY,iBAAiB;AAE7B,YAAY,gBAAgB;AAE5B,YAAY,YAAY;AACxB,YAAY,UAAU;AAcf,IAAM,MAAM,CAAI,MAAkBA,WAAqB;AAC5D,SAAO;AAAA,IACL;AAAA,IACA,OAAAA;AAAA,EACF;AACF;AAEO,IAAM,QAAQ,CAAIA,QAAU,SAAqB;AACtD,SAAO;AAAA,IACL,OAAAA;AAAA,IACA,MAAa,gBAAS,MAAM,SAAS;AAAA,EACvC;AACF;AAEO,IAAM,YAA8C,sBAAU;AAAA,EACvD,sBAAU,CAAC,OAAO,GAAG,MAAkB,oBAAQ,CAAC;AAAA,EAChD,sBAAU,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,GAAe,oBAAQ,CAAC;AAC/E,CAAC;AAEM,IAAM,UAA0C,0BAAe,SAAS;AAIxE,IAAM,gBAAgB,CAAI,SAAwC;AACvE,QAAM,iBAAwC,gBAAS,MAAM,SAAS,EACnE,IAAI,CAAC,EAAE,MAAM,OAAAA,OAAM,MAAM,GAAG,IAAI,IAAI,KAAK,UAAUA,MAAK,CAAC,EAAE,EAC3D,KAAK,GAAG;AAEX,SAAO;AACT;AAEO,IAAM,UAAU,CAAI,QAA+B,SAA4C;AACpG,SAAO,UAAU,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI;AAChD;AAEO,IAAM,YAAY,CAAI,QAAkB,QAAkC,SAA+B;AAC9G,QAAM,iBAAsB,oBAAe,IAAI,EAAE,QAAQ,CAACC,UAAS;AACjE,WAAO,OAAO,OAAO,CAAC,OAAc,iBAAU,OAAO,EAAE,GAAGA,OAAM,OAAO,CAAC;AAAA,EAC1E,CAAC;AAED,MAAW,eAAQ,cAAc,GAAG;AAClC,UAAM,gBAAgB,OAAO,OAAO,CAAC,OAAc,eAAQ,OAAO,EAAE,CAAC,CAAC;AACtE,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,QAAQ;AAChC;","names":["value","tags"]}
@@ -1,21 +1,21 @@
1
- import { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id';
2
- import { DurationLike } from '@bessemer/cornerstone/temporal/duration';
3
- import { Instant, InstantLike } from '@bessemer/cornerstone/temporal/instant';
1
+ import * as TimeZoneIds from '@bessemer/cornerstone/temporal/time-zone-id';
2
+ import * as Durations from '@bessemer/cornerstone/temporal/duration';
3
+ import * as Instants from '@bessemer/cornerstone/temporal/instant';
4
4
  export interface Clock {
5
- readonly zone: TimeZoneId;
6
- withZone: (zone: TimeZoneId) => Clock;
7
- instant: () => Instant;
5
+ readonly zone: TimeZoneIds.TimeZoneId;
6
+ withZone: (zone: TimeZoneIds.TimeZoneId) => Clock;
7
+ instant: () => Instants.Instant;
8
8
  }
9
9
  declare class SystemClock implements Clock {
10
- readonly zone: TimeZoneId;
11
- constructor(zone: TimeZoneId);
12
- instant(): Instant;
13
- withZone(zone: TimeZoneId): Clock;
10
+ readonly zone: TimeZoneIds.TimeZoneId;
11
+ constructor(zone: TimeZoneIds.TimeZoneId);
12
+ instant(): Instants.Instant;
13
+ withZone(zone: TimeZoneIds.TimeZoneId): Clock;
14
14
  }
15
15
  export declare const SystemUtc: SystemClock;
16
16
  export declare const Default: SystemClock;
17
- export declare const system: (zone?: TimeZoneId) => Clock;
18
- export declare const fixed: (fixedInstant: InstantLike, zone?: TimeZoneId) => Clock;
19
- export declare const offset: (clock: Clock, offset: DurationLike) => Clock;
17
+ export declare const system: (zone?: TimeZoneIds.TimeZoneId) => Clock;
18
+ export declare const fixed: (fixedInstant: Instants.InstantLike, zone?: TimeZoneIds.TimeZoneId) => Clock;
19
+ export declare const offset: (clock: Clock, offset: Durations.DurationLike) => Clock;
20
20
  export {};
21
21
  //# sourceMappingURL=clock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/temporal/clock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAO,MAAM,6CAA6C,CAAA;AAC7E,OAAO,EAAY,YAAY,EAAgC,MAAM,yCAAyC,CAAA;AAC9G,OAAO,EAAuB,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAGlG,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IAEzB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,KAAK,CAAA;IAErC,OAAO,EAAE,MAAM,OAAO,CAAA;CACvB;AAED,cAAM,WAAY,YAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU;gBAAhB,IAAI,EAAE,UAAU;IAErC,OAAO,IAAI,OAAO;IAIlB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK;CAOlC;AAsCD,eAAO,MAAM,SAAS,aAAuB,CAAA;AAC7C,eAAO,MAAM,OAAO,aAAY,CAAA;AAEhC,eAAO,MAAM,MAAM,GAAI,OAAM,UAAgB,KAAG,KAM/C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,cAAc,WAAW,EAAE,OAAM,UAAgB,KAAG,KAEzE,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,QAAQ,YAAY,KAAG,KAM3D,CAAA"}
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/temporal/clock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,6CAA6C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,yCAAyC,CAAA;AACpE,OAAO,KAAK,QAAQ,MAAM,wCAAwC,CAAA;AAGlE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAA;IAErC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,KAAK,KAAK,CAAA;IAEjD,OAAO,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAA;CAChC;AAED,cAAM,WAAY,YAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU;gBAA5B,IAAI,EAAE,WAAW,CAAC,UAAU;IAEjD,OAAO,IAAI,QAAQ,CAAC,OAAO;IAI3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,GAAG,KAAK;CAO9C;AAsCD,eAAO,MAAM,SAAS,aAAmC,CAAA;AACzD,eAAO,MAAM,OAAO,aAAY,CAAA;AAEhC,eAAO,MAAM,MAAM,GAAI,OAAM,WAAW,CAAC,UAA4B,KAAG,KAMvE,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,cAAc,QAAQ,CAAC,WAAW,EAAE,OAAM,WAAW,CAAC,UAA4B,KAAG,KAE1G,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,QAAQ,SAAS,CAAC,YAAY,KAAG,KAMrE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  // src/temporal/clock.ts
2
- import { Utc } from "@bessemer/cornerstone/temporal/time-zone-id";
3
- import { from as fromDuration, isZero } from "@bessemer/cornerstone/temporal/duration";
4
- import { from as fromInstant } from "@bessemer/cornerstone/temporal/instant";
2
+ import * as TimeZoneIds from "@bessemer/cornerstone/temporal/time-zone-id";
3
+ import * as Durations from "@bessemer/cornerstone/temporal/duration";
4
+ import * as Instants from "@bessemer/cornerstone/temporal/instant";
5
5
  import { Temporal } from "@js-temporal/polyfill";
6
6
  var SystemClock = class _SystemClock {
7
7
  constructor(zone) {
@@ -49,22 +49,22 @@ var OffsetClock = class _OffsetClock {
49
49
  return new _OffsetClock(this.clock.withZone(zone), this.offset);
50
50
  }
51
51
  };
52
- var SystemUtc = new SystemClock(Utc);
52
+ var SystemUtc = new SystemClock(TimeZoneIds.Utc);
53
53
  var Default = SystemUtc;
54
- var system = (zone = Utc) => {
55
- if (zone == Utc) {
54
+ var system = (zone = TimeZoneIds.Utc) => {
55
+ if (zone == TimeZoneIds.Utc) {
56
56
  return SystemUtc;
57
57
  }
58
58
  return new SystemClock(zone);
59
59
  };
60
- var fixed = (fixedInstant, zone = Utc) => {
61
- return new FixedClock(fromInstant(fixedInstant), zone);
60
+ var fixed = (fixedInstant, zone = TimeZoneIds.Utc) => {
61
+ return new FixedClock(Instants.from(fixedInstant), zone);
62
62
  };
63
63
  var offset = (clock, offset2) => {
64
- if (isZero(offset2)) {
64
+ if (Durations.isZero(offset2)) {
65
65
  return clock;
66
66
  }
67
- return new OffsetClock(clock, fromDuration(offset2));
67
+ return new OffsetClock(clock, Durations.from(offset2));
68
68
  };
69
69
  export {
70
70
  Default,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/temporal/clock.ts"],"sourcesContent":["import { TimeZoneId, Utc } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { Duration, DurationLike, from as fromDuration, isZero } from '@bessemer/cornerstone/temporal/duration'\nimport { from as fromInstant, Instant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { Temporal } from '@js-temporal/polyfill'\n\nexport interface Clock {\n readonly zone: TimeZoneId\n\n withZone: (zone: TimeZoneId) => Clock\n\n instant: () => Instant\n}\n\nclass SystemClock implements Clock {\n constructor(readonly zone: TimeZoneId) {}\n\n instant(): Instant {\n return Temporal.Now.instant()\n }\n\n withZone(zone: TimeZoneId): Clock {\n if (zone === this.zone) {\n return this\n }\n\n return new SystemClock(zone)\n }\n}\n\nclass FixedClock implements Clock {\n constructor(private fixedInstant: Instant, readonly zone: TimeZoneId) {}\n\n instant(): Instant {\n return this.fixedInstant\n }\n\n withZone(zone: TimeZoneId): Clock {\n if (zone === this.zone) {\n return this\n }\n\n return new FixedClock(this.fixedInstant, zone)\n }\n}\n\nclass OffsetClock implements Clock {\n readonly zone: TimeZoneId\n\n constructor(private clock: Clock, private offset: Duration) {\n this.zone = this.clock.zone\n }\n\n instant(): Instant {\n return this.clock.instant().add(this.offset)\n }\n\n withZone(zone: TimeZoneId): Clock {\n if (zone === this.clock.zone) {\n return this\n }\n\n return new OffsetClock(this.clock.withZone(zone), this.offset)\n }\n}\n\nexport const SystemUtc = new SystemClock(Utc)\nexport const Default = SystemUtc\n\nexport const system = (zone: TimeZoneId = Utc): Clock => {\n if (zone == Utc) {\n return SystemUtc\n }\n\n return new SystemClock(zone)\n}\n\nexport const fixed = (fixedInstant: InstantLike, zone: TimeZoneId = Utc): Clock => {\n return new FixedClock(fromInstant(fixedInstant), zone)\n}\n\nexport const offset = (clock: Clock, offset: DurationLike): Clock => {\n if (isZero(offset)) {\n return clock\n }\n\n return new OffsetClock(clock, fromDuration(offset))\n}\n"],"mappings":";AAAA,SAAqB,WAAW;AAChC,SAAiC,QAAQ,cAAc,cAAc;AACrE,SAAS,QAAQ,mBAAyC;AAC1D,SAAS,gBAAgB;AAUzB,IAAM,cAAN,MAAM,aAA6B;AAAA,EACjC,YAAqB,MAAkB;AAAlB;AAAA,EAAmB;AAAA,EAExC,UAAmB;AACjB,WAAO,SAAS,IAAI,QAAQ;AAAA,EAC9B;AAAA,EAEA,SAAS,MAAyB;AAChC,QAAI,SAAS,KAAK,MAAM;AACtB,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,aAAY,IAAI;AAAA,EAC7B;AACF;AAEA,IAAM,aAAN,MAAM,YAA4B;AAAA,EAChC,YAAoB,cAAgC,MAAkB;AAAlD;AAAgC;AAAA,EAAmB;AAAA,EAEvE,UAAmB;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,MAAyB;AAChC,QAAI,SAAS,KAAK,MAAM;AACtB,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,YAAW,KAAK,cAAc,IAAI;AAAA,EAC/C;AACF;AAEA,IAAM,cAAN,MAAM,aAA6B;AAAA,EAGjC,YAAoB,OAAsBA,SAAkB;AAAxC;AAAsB,kBAAAA;AACxC,SAAK,OAAO,KAAK,MAAM;AAAA,EACzB;AAAA,EAJS;AAAA,EAMT,UAAmB;AACjB,WAAO,KAAK,MAAM,QAAQ,EAAE,IAAI,KAAK,MAAM;AAAA,EAC7C;AAAA,EAEA,SAAS,MAAyB;AAChC,QAAI,SAAS,KAAK,MAAM,MAAM;AAC5B,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,aAAY,KAAK,MAAM,SAAS,IAAI,GAAG,KAAK,MAAM;AAAA,EAC/D;AACF;AAEO,IAAM,YAAY,IAAI,YAAY,GAAG;AACrC,IAAM,UAAU;AAEhB,IAAM,SAAS,CAAC,OAAmB,QAAe;AACvD,MAAI,QAAQ,KAAK;AACf,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,YAAY,IAAI;AAC7B;AAEO,IAAM,QAAQ,CAAC,cAA2B,OAAmB,QAAe;AACjF,SAAO,IAAI,WAAW,YAAY,YAAY,GAAG,IAAI;AACvD;AAEO,IAAM,SAAS,CAAC,OAAcA,YAAgC;AACnE,MAAI,OAAOA,OAAM,GAAG;AAClB,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,YAAY,OAAO,aAAaA,OAAM,CAAC;AACpD;","names":["offset"]}
1
+ {"version":3,"sources":["../../src/temporal/clock.ts"],"sourcesContent":["import * as TimeZoneIds from '@bessemer/cornerstone/temporal/time-zone-id'\nimport * as Durations from '@bessemer/cornerstone/temporal/duration'\nimport * as Instants from '@bessemer/cornerstone/temporal/instant'\nimport { Temporal } from '@js-temporal/polyfill'\n\nexport interface Clock {\n readonly zone: TimeZoneIds.TimeZoneId\n\n withZone: (zone: TimeZoneIds.TimeZoneId) => Clock\n\n instant: () => Instants.Instant\n}\n\nclass SystemClock implements Clock {\n constructor(readonly zone: TimeZoneIds.TimeZoneId) {}\n\n instant(): Instants.Instant {\n return Temporal.Now.instant()\n }\n\n withZone(zone: TimeZoneIds.TimeZoneId): Clock {\n if (zone === this.zone) {\n return this\n }\n\n return new SystemClock(zone)\n }\n}\n\nclass FixedClock implements Clock {\n constructor(private fixedInstant: Instants.Instant, readonly zone: TimeZoneIds.TimeZoneId) {}\n\n instant(): Instants.Instant {\n return this.fixedInstant\n }\n\n withZone(zone: TimeZoneIds.TimeZoneId): Clock {\n if (zone === this.zone) {\n return this\n }\n\n return new FixedClock(this.fixedInstant, zone)\n }\n}\n\nclass OffsetClock implements Clock {\n readonly zone: TimeZoneIds.TimeZoneId\n\n constructor(private clock: Clock, private offset: Durations.Duration) {\n this.zone = this.clock.zone\n }\n\n instant(): Instants.Instant {\n return this.clock.instant().add(this.offset)\n }\n\n withZone(zone: TimeZoneIds.TimeZoneId): Clock {\n if (zone === this.clock.zone) {\n return this\n }\n\n return new OffsetClock(this.clock.withZone(zone), this.offset)\n }\n}\n\nexport const SystemUtc = new SystemClock(TimeZoneIds.Utc)\nexport const Default = SystemUtc\n\nexport const system = (zone: TimeZoneIds.TimeZoneId = TimeZoneIds.Utc): Clock => {\n if (zone == TimeZoneIds.Utc) {\n return SystemUtc\n }\n\n return new SystemClock(zone)\n}\n\nexport const fixed = (fixedInstant: Instants.InstantLike, zone: TimeZoneIds.TimeZoneId = TimeZoneIds.Utc): Clock => {\n return new FixedClock(Instants.from(fixedInstant), zone)\n}\n\nexport const offset = (clock: Clock, offset: Durations.DurationLike): Clock => {\n if (Durations.isZero(offset)) {\n return clock\n }\n\n return new OffsetClock(clock, Durations.from(offset))\n}\n"],"mappings":";AAAA,YAAY,iBAAiB;AAC7B,YAAY,eAAe;AAC3B,YAAY,cAAc;AAC1B,SAAS,gBAAgB;AAUzB,IAAM,cAAN,MAAM,aAA6B;AAAA,EACjC,YAAqB,MAA8B;AAA9B;AAAA,EAA+B;AAAA,EAEpD,UAA4B;AAC1B,WAAO,SAAS,IAAI,QAAQ;AAAA,EAC9B;AAAA,EAEA,SAAS,MAAqC;AAC5C,QAAI,SAAS,KAAK,MAAM;AACtB,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,aAAY,IAAI;AAAA,EAC7B;AACF;AAEA,IAAM,aAAN,MAAM,YAA4B;AAAA,EAChC,YAAoB,cAAyC,MAA8B;AAAvE;AAAyC;AAAA,EAA+B;AAAA,EAE5F,UAA4B;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,MAAqC;AAC5C,QAAI,SAAS,KAAK,MAAM;AACtB,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,YAAW,KAAK,cAAc,IAAI;AAAA,EAC/C;AACF;AAEA,IAAM,cAAN,MAAM,aAA6B;AAAA,EAGjC,YAAoB,OAAsBA,SAA4B;AAAlD;AAAsB,kBAAAA;AACxC,SAAK,OAAO,KAAK,MAAM;AAAA,EACzB;AAAA,EAJS;AAAA,EAMT,UAA4B;AAC1B,WAAO,KAAK,MAAM,QAAQ,EAAE,IAAI,KAAK,MAAM;AAAA,EAC7C;AAAA,EAEA,SAAS,MAAqC;AAC5C,QAAI,SAAS,KAAK,MAAM,MAAM;AAC5B,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,aAAY,KAAK,MAAM,SAAS,IAAI,GAAG,KAAK,MAAM;AAAA,EAC/D;AACF;AAEO,IAAM,YAAY,IAAI,YAAwB,eAAG;AACjD,IAAM,UAAU;AAEhB,IAAM,SAAS,CAAC,OAA2C,oBAAe;AAC/E,MAAI,QAAoB,iBAAK;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,YAAY,IAAI;AAC7B;AAEO,IAAM,QAAQ,CAAC,cAAoC,OAA2C,oBAAe;AAClH,SAAO,IAAI,WAAoB,cAAK,YAAY,GAAG,IAAI;AACzD;AAEO,IAAM,SAAS,CAAC,OAAcA,YAA0C;AAC7E,MAAc,iBAAOA,OAAM,GAAG;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO,IAAI,YAAY,OAAiB,eAAKA,OAAM,CAAC;AACtD;","names":["offset"]}
@@ -1,14 +1,20 @@
1
1
  import Zod from 'zod';
2
2
  import { Temporal } from '@js-temporal/polyfill';
3
+ import * as ResourceKeys from '@bessemer/cornerstone/resource-key';
3
4
  import { NominalType } from '@bessemer/cornerstone/types';
4
5
  import { Comparator } from '@bessemer/cornerstone/comparator';
5
- import { Result } from '@bessemer/cornerstone/result';
6
- import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
7
- import { TimeUnit } from '@bessemer/cornerstone/temporal/chrono';
6
+ import * as Equalitors from '@bessemer/cornerstone/equalitor';
7
+ import * as Results from '@bessemer/cornerstone/result';
8
+ import * as ErrorEvents from '@bessemer/cornerstone/error/error-event';
9
+ import * as Chrono from '@bessemer/cornerstone/temporal/chrono';
8
10
  export type Duration = Temporal.Duration;
9
- export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"duration">;
11
+ export declare const Namespace: ResourceKeys.ResourceNamespace<"duration">;
10
12
  export type DurationLiteral = NominalType<string, typeof Namespace>;
11
13
  export type DurationBuilder = {
14
+ years?: number;
15
+ months?: number;
16
+ weeks?: number;
17
+ days?: number;
12
18
  hours?: number;
13
19
  minutes?: number;
14
20
  seconds?: number;
@@ -22,8 +28,8 @@ export declare function from(value: DurationLike | string | null): Duration | nu
22
28
  export declare function from(value: DurationLike | string | undefined): Duration | undefined;
23
29
  export declare function from(value: DurationLike | string | null | undefined): Duration | null | undefined;
24
30
  export declare const CompareBy: Comparator<Duration>;
25
- export declare const EqualBy: import("@bessemer/cornerstone/equalitor").Equalitor<Temporal.Duration>;
26
- export declare const parseString: (value: string) => Result<Duration, ErrorEvent>;
31
+ export declare const EqualBy: Equalitors.Equalitor<Temporal.Duration>;
32
+ export declare const parseString: (value: string) => Results.Result<Duration, ErrorEvents.ErrorEvent>;
27
33
  export declare function toLiteral(value: DurationLike): DurationLiteral;
28
34
  export declare function toLiteral(value: DurationLike | null): DurationLiteral | null;
29
35
  export declare function toLiteral(value: DurationLike | undefined): DurationLiteral | undefined;
@@ -40,10 +46,10 @@ export declare const fromMinutes: (value: number) => Duration;
40
46
  export declare const toMinutes: (duration: DurationLike) => number;
41
47
  export declare const fromHours: (value: number) => Duration;
42
48
  export declare const toHours: (duration: DurationLike) => number;
43
- export declare const fromUnit: (value: number, timeUnit: TimeUnit) => Duration;
44
- export declare const toUnit: (duration: DurationLike, timeUnit: TimeUnit) => number;
49
+ export declare const fromUnit: (value: number, timeUnit: Chrono.TimeUnit) => Duration;
50
+ export declare const toUnit: (duration: DurationLike, timeUnit: Chrono.TimeUnit) => number;
45
51
  export declare const isZero: (duration: DurationLike) => boolean;
46
- export declare const round: (element: DurationLike, unit: TimeUnit) => Duration;
52
+ export declare const round: (element: DurationLike, unit: Chrono.TimeUnit) => Duration;
47
53
  export declare const add: (...durations: Array<DurationLike>) => Duration;
48
54
  export declare const subtract: (...durations: Array<DurationLike>) => Duration;
49
55
  export declare const negate: (element: DurationLike) => Duration;
@@ -1 +1 @@
1
- {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../src/temporal/duration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../src/temporal/duration.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAE7D,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,WAAW,MAAM,yCAAyC,CAAA;AAEtE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAA;AAI/D,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;AACxC,eAAO,MAAM,SAAS,4CAA2C,CAAA;AACjE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AACnE,MAAM,MAAM,eAAe,GAAG;IAE5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAA;AAEvE,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC5D,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAA;AAC1E,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AACpF,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAA;AAiBlG,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,QAAQ,CAA2F,CAAA;AACtI,eAAO,MAAM,OAAO,yCAAuC,CAAA;AAE3D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAU1F,CAAA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CAAA;AAC/D,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAAA;AAC7E,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAAA;AACvF,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;AASrG,eAAO,MAAM,aAAa,uEAAiH,CAAA;AAC3I,eAAO,MAAM,cAAc,yEAAyD,CAAA;AAEpF,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAEpD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,SAAS,YAAY,EAAE,SAAS,eAAe,KAAG,QAEvE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,QAEhD,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,YAAY,KAAG,MAEvD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,QAE3C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,YAAY,KAAG,MAElD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,QAE3C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,YAAY,KAAG,MAElD,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,QAEzC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,UAAU,YAAY,KAAG,MAEhD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,UAAU,MAAM,CAAC,QAAQ,KAAG,QAenE,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,UAAU,YAAY,EAAE,UAAU,MAAM,CAAC,QAAQ,KAAG,MAE1E,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,UAAU,YAAY,KAAG,OAE/C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,SAAS,YAAY,EAAE,MAAM,MAAM,CAAC,QAAQ,KAAG,QAEpE,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,GAAG,WAAW,KAAK,CAAC,YAAY,CAAC,KAAG,QAEvD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,GAAG,WAAW,KAAK,CAAC,YAAY,CAAC,KAAG,QAO5D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,SAAS,YAAY,KAAG,QAE9C,CAAA;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAA;AAC5E,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAA;AAC1F,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AASpG,eAAO,MAAM,MAAM,GAAI,SAAS,YAAY,EAAE,OAAO,YAAY,KAAG,OAEnE,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,YAAY,EAAE,OAAO,YAAY,KAAG,OAEtE,CAAA;AAED,eAAO,MAAM,IAAI,mBAA2B,CAAA;AAC5C,eAAO,MAAM,cAAc,mBAAsB,CAAA;AACjD,eAAO,MAAM,SAAS,mBAAiB,CAAA;AACvC,eAAO,MAAM,SAAS,mBAAiB,CAAA;AACvC,eAAO,MAAM,OAAO,mBAAe,CAAA;AACnC,eAAO,MAAM,MAAM,mBAAgB,CAAA"}
@@ -1,49 +1,48 @@
1
1
  // src/temporal/duration.ts
2
2
  import Zod from "zod";
3
3
  import { Temporal } from "@js-temporal/polyfill";
4
- import { createNamespace } from "@bessemer/cornerstone/resource-key";
5
- import { fromComparator } from "@bessemer/cornerstone/equalitor";
6
- import { structuredTransform } from "@bessemer/cornerstone/zod-util";
4
+ import * as ResourceKeys from "@bessemer/cornerstone/resource-key";
5
+ import * as Equalitors from "@bessemer/cornerstone/equalitor";
6
+ import * as ZodUtil from "@bessemer/cornerstone/zod-util";
7
7
  import * as Results from "@bessemer/cornerstone/result";
8
- import { failure, success } from "@bessemer/cornerstone/result";
9
- import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
10
- import { isError } from "@bessemer/cornerstone/error/error";
11
- import { TimeUnit } from "@bessemer/cornerstone/temporal/chrono";
12
- import { isString } from "@bessemer/cornerstone/string";
13
- import { isNil } from "@bessemer/cornerstone/object";
14
- var Namespace = createNamespace("duration");
8
+ import * as ErrorEvents from "@bessemer/cornerstone/error/error-event";
9
+ import * as Errors from "@bessemer/cornerstone/error/error";
10
+ import * as Chrono from "@bessemer/cornerstone/temporal/chrono";
11
+ import * as Strings from "@bessemer/cornerstone/string";
12
+ import * as Objects from "@bessemer/cornerstone/object";
13
+ var Namespace = ResourceKeys.createNamespace("duration");
15
14
  function from(value) {
16
- if (isNil(value)) {
15
+ if (Objects.isNil(value)) {
17
16
  return value;
18
17
  }
19
18
  if (value instanceof Temporal.Duration) {
20
19
  return value;
21
20
  }
22
- if (isString(value)) {
23
- return unpackResult(parseString(value));
21
+ if (Strings.isString(value)) {
22
+ return ErrorEvents.unpackResult(parseString(value));
24
23
  }
25
24
  return Temporal.Duration.from(value);
26
25
  }
27
26
  var CompareBy = (first, second) => Temporal.Duration.compare(first, second);
28
- var EqualBy = fromComparator(CompareBy);
27
+ var EqualBy = Equalitors.fromComparator(CompareBy);
29
28
  var parseString = (value) => {
30
29
  try {
31
- return success(Temporal.Duration.from(value));
30
+ return Results.success(Temporal.Duration.from(value));
32
31
  } catch (e) {
33
- if (!isError(e)) {
32
+ if (!Errors.isError(e)) {
34
33
  throw e;
35
34
  }
36
- return failure(invalidValue(value, { namespace: Namespace, message: e.message }));
35
+ return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: e.message }));
37
36
  }
38
37
  };
39
38
  function toLiteral(value) {
40
- if (isNil(value)) {
39
+ if (Objects.isNil(value)) {
41
40
  return value;
42
41
  }
43
42
  return from(value).toString();
44
43
  }
45
- var SchemaLiteral = structuredTransform(Zod.string(), (it) => Results.map(parseString(it), (it2) => toLiteral(it2)));
46
- var SchemaInstance = structuredTransform(Zod.string(), parseString);
44
+ var SchemaLiteral = ZodUtil.structuredTransform(Zod.string(), (it) => Results.map(parseString(it), (it2) => toLiteral(it2)));
45
+ var SchemaInstance = ZodUtil.structuredTransform(Zod.string(), parseString);
47
46
  var isDuration = (value) => {
48
47
  return value instanceof Temporal.Duration;
49
48
  };
@@ -54,39 +53,39 @@ var fromMilliseconds = (value) => {
54
53
  return from({ milliseconds: value });
55
54
  };
56
55
  var toMilliseconds = (duration) => {
57
- return from(duration).total(TimeUnit.Millisecond);
56
+ return from(duration).total(Chrono.TimeUnit.Millisecond);
58
57
  };
59
58
  var fromSeconds = (value) => {
60
59
  return from({ seconds: value });
61
60
  };
62
61
  var toSeconds = (duration) => {
63
- return from(duration).total(TimeUnit.Second);
62
+ return from(duration).total(Chrono.TimeUnit.Second);
64
63
  };
65
64
  var fromMinutes = (value) => {
66
65
  return from({ minutes: value });
67
66
  };
68
67
  var toMinutes = (duration) => {
69
- return from(duration).total(TimeUnit.Minute);
68
+ return from(duration).total(Chrono.TimeUnit.Minute);
70
69
  };
71
70
  var fromHours = (value) => {
72
71
  return from({ hours: value });
73
72
  };
74
73
  var toHours = (duration) => {
75
- return from(duration).total(TimeUnit.Hour);
74
+ return from(duration).total(Chrono.TimeUnit.Hour);
76
75
  };
77
76
  var fromUnit = (value, timeUnit) => {
78
77
  switch (timeUnit) {
79
- case TimeUnit.Nanosecond:
78
+ case Chrono.TimeUnit.Nanosecond:
80
79
  return from({ nanoseconds: value });
81
- case TimeUnit.Microsecond:
80
+ case Chrono.TimeUnit.Microsecond:
82
81
  return from({ microseconds: value });
83
- case TimeUnit.Millisecond:
82
+ case Chrono.TimeUnit.Millisecond:
84
83
  return from({ milliseconds: value });
85
- case TimeUnit.Second:
84
+ case Chrono.TimeUnit.Second:
86
85
  return from({ seconds: value });
87
- case TimeUnit.Minute:
86
+ case Chrono.TimeUnit.Minute:
88
87
  return from({ minutes: value });
89
- case TimeUnit.Hour:
88
+ case Chrono.TimeUnit.Hour:
90
89
  return from({ hours: value });
91
90
  }
92
91
  };
@@ -113,7 +112,7 @@ var negate = (element) => {
113
112
  return from(element).negated();
114
113
  };
115
114
  function isEqual(element, other) {
116
- if (isNil(element) || isNil(other)) {
115
+ if (Objects.isNil(element) || Objects.isNil(other)) {
117
116
  return element === other;
118
117
  }
119
118
  return EqualBy(from(element), from(other));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/temporal/duration.ts"],"sourcesContent":["import Zod from 'zod'\nimport { Temporal } from '@js-temporal/polyfill'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport { fromComparator } from '@bessemer/cornerstone/equalitor'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport * as Results from '@bessemer/cornerstone/result'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { isError } from '@bessemer/cornerstone/error/error'\nimport { TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\n\nexport type Duration = Temporal.Duration\nexport const Namespace = createNamespace('duration')\nexport type DurationLiteral = NominalType<string, typeof Namespace>\nexport type DurationBuilder = {\n hours?: number\n minutes?: number\n seconds?: number\n milliseconds?: number\n microseconds?: number\n nanoseconds?: number\n}\nexport type DurationLike = Duration | DurationLiteral | DurationBuilder\n\nexport function from(value: DurationLike | string): Duration\nexport function from(value: DurationLike | string | null): Duration | null\nexport function from(value: DurationLike | string | undefined): Duration | undefined\nexport function from(value: DurationLike | string | null | undefined): Duration | null | undefined\nexport function from(value: DurationLike | string | null | undefined): Duration | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.Duration) {\n return value\n }\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.Duration.from(value)\n}\n\nexport const CompareBy: Comparator<Duration> = (first: Duration, second: Duration): number => Temporal.Duration.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<Duration, ErrorEvent> => {\n try {\n return success(Temporal.Duration.from(value))\n } catch (e) {\n if (!isError(e)) {\n throw e\n }\n\n return failure(invalidValue(value, { namespace: Namespace, message: e.message }))\n }\n}\n\nexport function toLiteral(value: DurationLike): DurationLiteral\nexport function toLiteral(value: DurationLike | null): DurationLiteral | null\nexport function toLiteral(value: DurationLike | undefined): DurationLiteral | undefined\nexport function toLiteral(value: DurationLike | null | undefined): DurationLiteral | null | undefined\nexport function toLiteral(value: DurationLike | null | undefined): DurationLiteral | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n return from(value).toString() as DurationLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => Results.map(parseString(it), (it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isDuration = (value: unknown): value is Duration => {\n return value instanceof Temporal.Duration\n}\n\nexport const merge = (element: DurationLike, builder: DurationBuilder): Duration => {\n return from(element).with(builder)\n}\n\nexport const fromMilliseconds = (value: number): Duration => {\n return from({ milliseconds: value })\n}\n\nexport const toMilliseconds = (duration: DurationLike): number => {\n return from(duration).total(TimeUnit.Millisecond)\n}\n\nexport const fromSeconds = (value: number): Duration => {\n return from({ seconds: value })\n}\n\nexport const toSeconds = (duration: DurationLike): number => {\n return from(duration).total(TimeUnit.Second)\n}\n\nexport const fromMinutes = (value: number): Duration => {\n return from({ minutes: value })\n}\n\nexport const toMinutes = (duration: DurationLike): number => {\n return from(duration).total(TimeUnit.Minute)\n}\n\nexport const fromHours = (value: number): Duration => {\n return from({ hours: value })\n}\n\nexport const toHours = (duration: DurationLike): number => {\n return from(duration).total(TimeUnit.Hour)\n}\n\nexport const fromUnit = (value: number, timeUnit: TimeUnit): Duration => {\n switch (timeUnit) {\n case TimeUnit.Nanosecond:\n return from({ nanoseconds: value })\n case TimeUnit.Microsecond:\n return from({ microseconds: value })\n case TimeUnit.Millisecond:\n return from({ milliseconds: value })\n case TimeUnit.Second:\n return from({ seconds: value })\n case TimeUnit.Minute:\n return from({ minutes: value })\n case TimeUnit.Hour:\n return from({ hours: value })\n }\n}\n\nexport const toUnit = (duration: DurationLike, timeUnit: TimeUnit): number => {\n return from(duration).total(timeUnit)\n}\n\nexport const isZero = (duration: DurationLike): boolean => {\n return EqualBy(from(duration), Zero)\n}\n\nexport const round = (element: DurationLike, unit: TimeUnit): Duration => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport const add = (...durations: Array<DurationLike>): Duration => {\n return durations.map((it) => from(it)).reduce((first, second) => first.add(second), Zero)\n}\n\nexport const subtract = (...durations: Array<DurationLike>): Duration => {\n if (durations.length === 0) {\n return Zero\n }\n\n const instances = durations.map((it) => from(it))\n return instances.slice(1).reduce((result, current) => result.subtract(current), instances[0]!)\n}\n\nexport const negate = (element: DurationLike): Duration => {\n return from(element).negated()\n}\n\nexport function isEqual(element: DurationLike, other: DurationLike): boolean\nexport function isEqual(element: DurationLike | null, other: DurationLike | null): boolean\nexport function isEqual(element: DurationLike | undefined, other: DurationLike | undefined): boolean\nexport function isEqual(element: DurationLike | null | undefined, other: DurationLike | null | undefined): boolean {\n if (isNil(element) || isNil(other)) {\n return element === other\n }\n\n return EqualBy(from(element), from(other))\n}\n\nexport const isLess = (element: DurationLike, other: DurationLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isGreater = (element: DurationLike, other: DurationLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport const Zero = from({ nanoseconds: 0 })\nexport const OneMillisecond = fromMilliseconds(1)\nexport const OneSecond = fromSeconds(1)\nexport const OneMinute = fromMinutes(1)\nexport const OneHour = fromHours(1)\nexport const OneDay = fromHours(24)\n"],"mappings":"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","names":["it"]}
1
+ {"version":3,"sources":["../../src/temporal/duration.ts"],"sourcesContent":["import Zod from 'zod'\nimport { Temporal } from '@js-temporal/polyfill'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport * as Equalitors from '@bessemer/cornerstone/equalitor'\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\nimport * as Results from '@bessemer/cornerstone/result'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport * as Errors from '@bessemer/cornerstone/error/error'\nimport * as Chrono from '@bessemer/cornerstone/temporal/chrono'\nimport * as Strings from '@bessemer/cornerstone/string'\nimport * as Objects from '@bessemer/cornerstone/object'\n\nexport type Duration = Temporal.Duration\nexport const Namespace = ResourceKeys.createNamespace('duration')\nexport type DurationLiteral = NominalType<string, typeof Namespace>\nexport type DurationBuilder = {\n // JOHN consider splitting into 'TimeDuration' and 'CalendarDuration' -----\n years?: number\n months?: number\n weeks?: number\n days?: number\n // -----\n hours?: number\n minutes?: number\n seconds?: number\n milliseconds?: number\n microseconds?: number\n nanoseconds?: number\n}\nexport type DurationLike = Duration | DurationLiteral | DurationBuilder\n\nexport function from(value: DurationLike | string): Duration\nexport function from(value: DurationLike | string | null): Duration | null\nexport function from(value: DurationLike | string | undefined): Duration | undefined\nexport function from(value: DurationLike | string | null | undefined): Duration | null | undefined\nexport function from(value: DurationLike | string | null | undefined): Duration | null | undefined {\n if (Objects.isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.Duration) {\n return value\n }\n\n if (Strings.isString(value)) {\n return ErrorEvents.unpackResult(parseString(value))\n }\n\n return Temporal.Duration.from(value)\n}\n\nexport const CompareBy: Comparator<Duration> = (first: Duration, second: Duration): number => Temporal.Duration.compare(first, second)\nexport const EqualBy = Equalitors.fromComparator(CompareBy)\n\nexport const parseString = (value: string): Results.Result<Duration, ErrorEvents.ErrorEvent> => {\n try {\n return Results.success(Temporal.Duration.from(value))\n } catch (e) {\n if (!Errors.isError(e)) {\n throw e\n }\n\n return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: e.message }))\n }\n}\n\nexport function toLiteral(value: DurationLike): DurationLiteral\nexport function toLiteral(value: DurationLike | null): DurationLiteral | null\nexport function toLiteral(value: DurationLike | undefined): DurationLiteral | undefined\nexport function toLiteral(value: DurationLike | null | undefined): DurationLiteral | null | undefined\nexport function toLiteral(value: DurationLike | null | undefined): DurationLiteral | null | undefined {\n if (Objects.isNil(value)) {\n return value\n }\n\n return from(value).toString() as DurationLiteral\n}\n\nexport const SchemaLiteral = ZodUtil.structuredTransform(Zod.string(), (it: string) => Results.map(parseString(it), (it) => toLiteral(it)))\nexport const SchemaInstance = ZodUtil.structuredTransform(Zod.string(), parseString)\n\nexport const isDuration = (value: unknown): value is Duration => {\n return value instanceof Temporal.Duration\n}\n\nexport const merge = (element: DurationLike, builder: DurationBuilder): Duration => {\n return from(element).with(builder)\n}\n\nexport const fromMilliseconds = (value: number): Duration => {\n return from({ milliseconds: value })\n}\n\nexport const toMilliseconds = (duration: DurationLike): number => {\n return from(duration).total(Chrono.TimeUnit.Millisecond)\n}\n\nexport const fromSeconds = (value: number): Duration => {\n return from({ seconds: value })\n}\n\nexport const toSeconds = (duration: DurationLike): number => {\n return from(duration).total(Chrono.TimeUnit.Second)\n}\n\nexport const fromMinutes = (value: number): Duration => {\n return from({ minutes: value })\n}\n\nexport const toMinutes = (duration: DurationLike): number => {\n return from(duration).total(Chrono.TimeUnit.Minute)\n}\n\nexport const fromHours = (value: number): Duration => {\n return from({ hours: value })\n}\n\nexport const toHours = (duration: DurationLike): number => {\n return from(duration).total(Chrono.TimeUnit.Hour)\n}\n\nexport const fromUnit = (value: number, timeUnit: Chrono.TimeUnit): Duration => {\n switch (timeUnit) {\n case Chrono.TimeUnit.Nanosecond:\n return from({ nanoseconds: value })\n case Chrono.TimeUnit.Microsecond:\n return from({ microseconds: value })\n case Chrono.TimeUnit.Millisecond:\n return from({ milliseconds: value })\n case Chrono.TimeUnit.Second:\n return from({ seconds: value })\n case Chrono.TimeUnit.Minute:\n return from({ minutes: value })\n case Chrono.TimeUnit.Hour:\n return from({ hours: value })\n }\n}\n\nexport const toUnit = (duration: DurationLike, timeUnit: Chrono.TimeUnit): number => {\n return from(duration).total(timeUnit)\n}\n\nexport const isZero = (duration: DurationLike): boolean => {\n return EqualBy(from(duration), Zero)\n}\n\nexport const round = (element: DurationLike, unit: Chrono.TimeUnit): Duration => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport const add = (...durations: Array<DurationLike>): Duration => {\n return durations.map((it) => from(it)).reduce((first, second) => first.add(second), Zero)\n}\n\nexport const subtract = (...durations: Array<DurationLike>): Duration => {\n if (durations.length === 0) {\n return Zero\n }\n\n const instances = durations.map((it) => from(it))\n return instances.slice(1).reduce((result, current) => result.subtract(current), instances[0]!)\n}\n\nexport const negate = (element: DurationLike): Duration => {\n return from(element).negated()\n}\n\nexport function isEqual(element: DurationLike, other: DurationLike): boolean\nexport function isEqual(element: DurationLike | null, other: DurationLike | null): boolean\nexport function isEqual(element: DurationLike | undefined, other: DurationLike | undefined): boolean\nexport function isEqual(element: DurationLike | null | undefined, other: DurationLike | null | undefined): boolean {\n if (Objects.isNil(element) || Objects.isNil(other)) {\n return element === other\n }\n\n return EqualBy(from(element), from(other))\n}\n\nexport const isLess = (element: DurationLike, other: DurationLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isGreater = (element: DurationLike, other: DurationLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport const Zero = from({ nanoseconds: 0 })\nexport const OneMillisecond = fromMilliseconds(1)\nexport const OneSecond = fromSeconds(1)\nexport const OneMinute = fromMinutes(1)\nexport const OneHour = fromHours(1)\nexport const OneDay = fromHours(24)\n"],"mappings":"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","names":["it"]}
@@ -1,16 +1,19 @@
1
1
  import { Temporal } from '@js-temporal/polyfill';
2
+ import * as ResourceKeys from '@bessemer/cornerstone/resource-key';
2
3
  import { NominalType } from '@bessemer/cornerstone/types';
3
4
  import { Comparator } from '@bessemer/cornerstone/comparator';
4
- import { Result } from '@bessemer/cornerstone/result';
5
- import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
+ import * as Equalitors from '@bessemer/cornerstone/equalitor';
6
+ import * as Results from '@bessemer/cornerstone/result';
7
+ import * as ErrorEvents from '@bessemer/cornerstone/error/error-event';
6
8
  import Zod from 'zod';
7
- import { Duration, DurationLike } from '@bessemer/cornerstone/temporal/duration';
8
- import { TimeUnit } from '@bessemer/cornerstone/temporal/chrono';
9
- import { Locale } from '@bessemer/cornerstone/intl/locale';
10
- import { DateTimeFormatOptions } from '@bessemer/cornerstone/temporal/plain-date-time';
9
+ import * as Clocks from '@bessemer/cornerstone/temporal/clock';
10
+ import * as Durations from '@bessemer/cornerstone/temporal/duration';
11
+ import * as Chrono from '@bessemer/cornerstone/temporal/chrono';
11
12
  import { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id';
13
+ import * as PlainDateTimes from '@bessemer/cornerstone/temporal/plain-date-time';
14
+ import { Locale } from '@bessemer/cornerstone/intl/locale';
12
15
  export type Instant = Temporal.Instant;
13
- export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"instant">;
16
+ export declare const Namespace: ResourceKeys.ResourceNamespace<"instant">;
14
17
  export type InstantLiteral = NominalType<string, typeof Namespace>;
15
18
  export type InstantLike = Instant | Date | InstantLiteral;
16
19
  export declare function from(value: InstantLike | string): Instant;
@@ -18,8 +21,8 @@ export declare function from(value: InstantLike | string | null): Instant | null
18
21
  export declare function from(value: InstantLike | string | undefined): Instant | undefined;
19
22
  export declare function from(value: InstantLike | string | null | undefined): Instant | null | undefined;
20
23
  export declare const CompareBy: Comparator<Instant>;
21
- export declare const EqualBy: import("@bessemer/cornerstone/equalitor").Equalitor<Temporal.Instant>;
22
- export declare const parseString: (value: string) => Result<Instant, ErrorEvent>;
24
+ export declare const EqualBy: Equalitors.Equalitor<Temporal.Instant>;
25
+ export declare const parseString: (value: string) => Results.Result<Instant, ErrorEvents.ErrorEvent>;
23
26
  export declare function toLiteral(value: InstantLike): InstantLiteral;
24
27
  export declare function toLiteral(value: InstantLike | null): InstantLiteral | null;
25
28
  export declare function toLiteral(value: InstantLike | undefined): InstantLiteral | undefined;
@@ -34,16 +37,16 @@ export declare const isInstant: (value: unknown) => value is Instant;
34
37
  export declare const now: (clock?: {
35
38
  readonly zone: TimeZoneId;
36
39
  instant(): Instant;
37
- withZone(zone: TimeZoneId): import("@bessemer/cornerstone/temporal/clock").Clock;
40
+ withZone(zone: TimeZoneId): Clocks.Clock;
38
41
  }) => Instant;
39
- export declare const add: (element: InstantLike, duration: DurationLike) => Instant;
40
- export declare const subtract: (element: InstantLike, duration: DurationLike) => Instant;
41
- export declare const until: (element: InstantLike, other: InstantLike) => Duration;
42
- export declare const round: (element: InstantLike, unit: TimeUnit) => Instant;
42
+ export declare const add: (element: InstantLike, duration: Durations.DurationLike) => Instant;
43
+ export declare const subtract: (element: InstantLike, duration: Durations.DurationLike) => Instant;
44
+ export declare const until: (element: InstantLike, other: InstantLike) => Durations.Duration;
45
+ export declare const round: (element: InstantLike, unit: Chrono.TimeUnit) => Instant;
43
46
  export declare function isEqual(element: InstantLike, other: InstantLike): boolean;
44
47
  export declare function isEqual(element: InstantLike | null, other: InstantLike | null): boolean;
45
48
  export declare function isEqual(element: InstantLike | undefined, other: InstantLike | undefined): boolean;
46
49
  export declare const isBefore: (element: InstantLike, other: InstantLike) => boolean;
47
50
  export declare const isAfter: (element: InstantLike, other: InstantLike) => boolean;
48
- export declare const format: (element: InstantLike, timeZone: TimeZoneId, locale: Locale, options: DateTimeFormatOptions) => string;
51
+ export declare const format: (element: InstantLike, timeZone: TimeZoneId, locale: Locale, options: PlainDateTimes.DateTimeFormatOptions) => string;
49
52
  //# sourceMappingURL=instant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../src/temporal/instant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../src/temporal/instant.ts"],"names":[],"mappings":"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"}