@bessemer/cornerstone 0.5.101 → 0.5.106

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 (48) hide show
  1. package/dist/array.d.ts +1 -1
  2. package/dist/array.d.ts.map +1 -1
  3. package/dist/array.js.map +1 -1
  4. package/dist/either.d.ts +43 -12
  5. package/dist/either.d.ts.map +1 -1
  6. package/dist/either.js +81 -8
  7. package/dist/either.js.map +1 -1
  8. package/dist/json.d.ts +0 -1
  9. package/dist/json.d.ts.map +1 -1
  10. package/dist/json.js +2 -6
  11. package/dist/json.js.map +1 -1
  12. package/dist/net/uri.d.ts.map +1 -1
  13. package/dist/net/uri.js +3 -3
  14. package/dist/net/uri.js.map +1 -1
  15. package/dist/net/url.d.ts.map +1 -1
  16. package/dist/net/url.js +2 -2
  17. package/dist/net/url.js.map +1 -1
  18. package/dist/promise.d.ts +1 -0
  19. package/dist/promise.d.ts.map +1 -1
  20. package/dist/promise.js +10 -1
  21. package/dist/promise.js.map +1 -1
  22. package/dist/result.d.ts +13 -5
  23. package/dist/result.d.ts.map +1 -1
  24. package/dist/result.js +48 -21
  25. package/dist/result.js.map +1 -1
  26. package/dist/temporal/duration.d.ts.map +1 -1
  27. package/dist/temporal/duration.js +2 -2
  28. package/dist/temporal/duration.js.map +1 -1
  29. package/dist/temporal/instant.d.ts.map +1 -1
  30. package/dist/temporal/instant.js +2 -2
  31. package/dist/temporal/instant.js.map +1 -1
  32. package/dist/temporal/plain-date-time.d.ts.map +1 -1
  33. package/dist/temporal/plain-date-time.js +2 -2
  34. package/dist/temporal/plain-date-time.js.map +1 -1
  35. package/dist/temporal/plain-date.d.ts.map +1 -1
  36. package/dist/temporal/plain-date.js +2 -2
  37. package/dist/temporal/plain-date.js.map +1 -1
  38. package/dist/temporal/plain-time.d.ts.map +1 -1
  39. package/dist/temporal/plain-time.js +2 -2
  40. package/dist/temporal/plain-time.js.map +1 -1
  41. package/dist/temporal/zoned-date-time.d.ts.map +1 -1
  42. package/dist/temporal/zoned-date-time.js +2 -2
  43. package/dist/temporal/zoned-date-time.js.map +1 -1
  44. package/dist/zod-util.d.ts +0 -1
  45. package/dist/zod-util.d.ts.map +1 -1
  46. package/dist/zod-util.js +2 -6
  47. package/dist/zod-util.js.map +1 -1
  48. package/package.json +3 -3
@@ -2,7 +2,7 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { createNamespace } from "@bessemer/cornerstone/resource-key";
4
4
  import { fromComparator } from "@bessemer/cornerstone/equalitor";
5
- import { failure, mapResult, success } from "@bessemer/cornerstone/result";
5
+ import { failure, success } from "@bessemer/cornerstone/result";
6
6
  import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
7
7
  import { isError } from "@bessemer/cornerstone/error/error";
8
8
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
@@ -47,7 +47,7 @@ function toLiteral(likeValue) {
47
47
  const value = from(likeValue);
48
48
  return value.toString();
49
49
  }
50
- var SchemaLiteral = structuredTransform(Zod.string(), (it) => mapResult(parseString(it), (it2) => toLiteral(it2)));
50
+ var SchemaLiteral = structuredTransform(Zod.string(), (it) => parseString(it).map((it2) => toLiteral(it2)));
51
51
  var SchemaInstance = structuredTransform(Zod.string(), parseString);
52
52
  var isPlainDateTime = (value) => {
53
53
  return value instanceof Temporal.PlainDateTime;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/temporal/plain-date.ts"],"sourcesContent":["import { 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 { failure, mapResult, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { isError } from '@bessemer/cornerstone/error/error'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as _fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { from as _fromInstant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { Locale } from '@bessemer/cornerstone/intl/locale'\n\nexport type PlainDate = Temporal.PlainDate\nexport const Namespace = createNamespace('plain-date')\nexport type PlainDateLiteral = NominalType<string, typeof Namespace>\nexport type PlainDateBuilder = {\n year: number\n month: number\n day: number\n}\n\nexport type PlainDateLike = PlainDate | PlainDateLiteral | PlainDateBuilder\n\nexport function from(value: PlainDateLike | string): PlainDate\nexport function from(value: PlainDateLike | string | null): PlainDate | null\nexport function from(value: PlainDateLike | string | undefined): PlainDate | undefined\nexport function from(value: PlainDateLike | string | null | undefined): PlainDate | null | undefined\nexport function from(value: PlainDateLike | string | null | undefined): PlainDate | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.PlainDate) {\n return value\n }\n\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.PlainDate.from(value)\n}\n\nexport const CompareBy: Comparator<PlainDate> = (first: PlainDate, second: PlainDate): number => Temporal.PlainDateTime.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<PlainDate, ErrorEvent> => {\n try {\n return success(Temporal.PlainDate.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 const fromInstant = (instant: InstantLike, zone: TimeZoneId): PlainDate => {\n return _fromInstant(instant).toZonedDateTimeISO(zone).toPlainDate()\n}\n\nexport function toLiteral(likeValue: PlainDateLike): PlainDateLiteral\nexport function toLiteral(likeValue: PlainDateLike | null): PlainDateLiteral | null\nexport function toLiteral(likeValue: PlainDateLike | undefined): PlainDateLiteral | undefined\nexport function toLiteral(likeValue: PlainDateLike | null | undefined): PlainDateLiteral | null | undefined\nexport function toLiteral(likeValue: PlainDateLike | null | undefined): PlainDateLiteral | null | undefined {\n if (isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n return value.toString() as PlainDateLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => mapResult(parseString(it), (it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isPlainDateTime = (value: unknown): value is PlainDate => {\n return value instanceof Temporal.PlainDateTime\n}\n\nexport const now = (zone: TimeZoneId, clock = DefaultClock): PlainDate => {\n return fromInstant(clock.instant(), zone)\n}\n\nexport const merge = (element: PlainDateLike, builder: Partial<PlainDateBuilder>): PlainDate => {\n return from(element).with(builder)\n}\n\nexport const add = (element: PlainDateLike, duration: DurationLike): PlainDate => {\n return from(element).add(_fromDuration(duration))\n}\n\nexport const subtract = (element: PlainDateLike, duration: DurationLike): PlainDate => {\n return from(element).subtract(_fromDuration(duration))\n}\n\nexport const until = (element: PlainDateLike, other: PlainDateLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport function isEqual(element: PlainDateLike, other: PlainDateLike): boolean\nexport function isEqual(element: PlainDateLike | null, other: PlainDateLike | null): boolean\nexport function isEqual(element: PlainDateLike | undefined, other: PlainDateLike | undefined): boolean\nexport function isEqual(element: PlainDateLike | null | undefined, other: PlainDateLike | 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 isBefore = (element: PlainDateLike, other: PlainDate): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: PlainDateLike, other: PlainDate): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport type DateFormatOptions = {\n era?: 'long' | 'short' | 'narrow' | undefined\n weekday?: 'long' | 'short' | 'narrow' | undefined\n year?: 'numeric' | '2-digit' | undefined\n month?: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' | undefined\n day?: 'numeric' | '2-digit' | undefined\n}\n\nexport const format = (element: PlainDateLike, locale: Locale, options: DateFormatOptions): string => {\n const plainDate = from(element)\n\n // Convert PlainDateTime to Date\n const date = new Date(\n plainDate.year,\n plainDate.month - 1, // Date months are 0-based\n plainDate.day\n )\n\n const formatter = new Intl.DateTimeFormat(locale, options)\n return formatter.format(date)\n}\n"],"mappings":"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","names":["it"]}
1
+ {"version":3,"sources":["../../src/temporal/plain-date.ts"],"sourcesContent":["import { 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 { 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 { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as _fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { from as _fromInstant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { Locale } from '@bessemer/cornerstone/intl/locale'\n\nexport type PlainDate = Temporal.PlainDate\nexport const Namespace = createNamespace('plain-date')\nexport type PlainDateLiteral = NominalType<string, typeof Namespace>\nexport type PlainDateBuilder = {\n year: number\n month: number\n day: number\n}\n\nexport type PlainDateLike = PlainDate | PlainDateLiteral | PlainDateBuilder\n\nexport function from(value: PlainDateLike | string): PlainDate\nexport function from(value: PlainDateLike | string | null): PlainDate | null\nexport function from(value: PlainDateLike | string | undefined): PlainDate | undefined\nexport function from(value: PlainDateLike | string | null | undefined): PlainDate | null | undefined\nexport function from(value: PlainDateLike | string | null | undefined): PlainDate | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.PlainDate) {\n return value\n }\n\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.PlainDate.from(value)\n}\n\nexport const CompareBy: Comparator<PlainDate> = (first: PlainDate, second: PlainDate): number => Temporal.PlainDateTime.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<PlainDate, ErrorEvent> => {\n try {\n return success(Temporal.PlainDate.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 const fromInstant = (instant: InstantLike, zone: TimeZoneId): PlainDate => {\n return _fromInstant(instant).toZonedDateTimeISO(zone).toPlainDate()\n}\n\nexport function toLiteral(likeValue: PlainDateLike): PlainDateLiteral\nexport function toLiteral(likeValue: PlainDateLike | null): PlainDateLiteral | null\nexport function toLiteral(likeValue: PlainDateLike | undefined): PlainDateLiteral | undefined\nexport function toLiteral(likeValue: PlainDateLike | null | undefined): PlainDateLiteral | null | undefined\nexport function toLiteral(likeValue: PlainDateLike | null | undefined): PlainDateLiteral | null | undefined {\n if (isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n return value.toString() as PlainDateLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => parseString(it).map((it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isPlainDateTime = (value: unknown): value is PlainDate => {\n return value instanceof Temporal.PlainDateTime\n}\n\nexport const now = (zone: TimeZoneId, clock = DefaultClock): PlainDate => {\n return fromInstant(clock.instant(), zone)\n}\n\nexport const merge = (element: PlainDateLike, builder: Partial<PlainDateBuilder>): PlainDate => {\n return from(element).with(builder)\n}\n\nexport const add = (element: PlainDateLike, duration: DurationLike): PlainDate => {\n return from(element).add(_fromDuration(duration))\n}\n\nexport const subtract = (element: PlainDateLike, duration: DurationLike): PlainDate => {\n return from(element).subtract(_fromDuration(duration))\n}\n\nexport const until = (element: PlainDateLike, other: PlainDateLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport function isEqual(element: PlainDateLike, other: PlainDateLike): boolean\nexport function isEqual(element: PlainDateLike | null, other: PlainDateLike | null): boolean\nexport function isEqual(element: PlainDateLike | undefined, other: PlainDateLike | undefined): boolean\nexport function isEqual(element: PlainDateLike | null | undefined, other: PlainDateLike | 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 isBefore = (element: PlainDateLike, other: PlainDate): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: PlainDateLike, other: PlainDate): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport type DateFormatOptions = {\n era?: 'long' | 'short' | 'narrow' | undefined\n weekday?: 'long' | 'short' | 'narrow' | undefined\n year?: 'numeric' | '2-digit' | undefined\n month?: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' | undefined\n day?: 'numeric' | '2-digit' | undefined\n}\n\nexport const format = (element: PlainDateLike, locale: Locale, options: DateFormatOptions): string => {\n const plainDate = from(element)\n\n // Convert PlainDateTime to Date\n const date = new Date(\n plainDate.year,\n plainDate.month - 1, // Date months are 0-based\n plainDate.day\n )\n\n const formatter = new Intl.DateTimeFormat(locale, options)\n return formatter.format(date)\n}\n"],"mappings":"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","names":["it"]}
@@ -1 +1 @@
1
- {"version":3,"file":"plain-time.d.ts","sourceRoot":"","sources":["../../src/temporal/plain-time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plain-time.d.ts","sourceRoot":"","sources":["../../src/temporal/plain-time.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { createNamespace } from "@bessemer/cornerstone/resource-key";
4
4
  import { fromComparator } from "@bessemer/cornerstone/equalitor";
5
- import { failure, mapResult, success } from "@bessemer/cornerstone/result";
5
+ import { failure, success } from "@bessemer/cornerstone/result";
6
6
  import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
7
7
  import { isError } from "@bessemer/cornerstone/error/error";
8
8
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
@@ -53,7 +53,7 @@ function toLiteral(likeValue) {
53
53
  }
54
54
  return value.toString();
55
55
  }
56
- var SchemaLiteral = structuredTransform(Zod.string(), (it) => mapResult(parseString(it), (it2) => toLiteral(it2)));
56
+ var SchemaLiteral = structuredTransform(Zod.string(), (it) => parseString(it).map((it2) => toLiteral(it2)));
57
57
  var SchemaInstance = structuredTransform(Zod.string(), parseString);
58
58
  var isPlainTime = (value) => {
59
59
  return value instanceof Temporal.PlainTime;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/temporal/plain-time.ts"],"sourcesContent":["import { 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 { failure, mapResult, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { isError } from '@bessemer/cornerstone/error/error'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as _fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { from as _fromInstant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { Locale } from '@bessemer/cornerstone/intl/locale'\n\nexport type PlainTime = Temporal.PlainTime\nexport const Namespace = createNamespace('plain-time')\nexport type PlainTimeLiteral = NominalType<string, typeof Namespace>\nexport type PlainTimeBuilder = {\n hour: number\n minute?: number\n second?: number\n millisecond?: number\n microsecond?: number\n nanosecond?: number\n}\nexport type PlainTimeLike = PlainTime | PlainTimeLiteral | PlainTimeBuilder\n\nexport function from(value: PlainTimeLike | string): PlainTime\nexport function from(value: PlainTimeLike | string | null): PlainTime | null\nexport function from(value: PlainTimeLike | string | undefined): PlainTime | undefined\nexport function from(value: PlainTimeLike | string | null | undefined): PlainTime | null | undefined\nexport function from(value: PlainTimeLike | string | null | undefined): PlainTime | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.PlainTime) {\n return value\n }\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.PlainTime.from(value)\n}\n\nexport const CompareBy: Comparator<PlainTime> = (first: PlainTime, second: PlainTime): number => Temporal.PlainTime.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<PlainTime, ErrorEvent> => {\n try {\n return success(Temporal.PlainTime.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 const fromDuration = (duration: DurationLike): PlainTime => {\n return Midnight.add(_fromDuration(duration))\n}\n\nexport const fromInstant = (instant: InstantLike, zone: TimeZoneId): PlainTime => {\n return _fromInstant(instant).toZonedDateTimeISO(zone).toPlainTime()\n}\n\nexport function toLiteral(likeValue: PlainTimeLike): PlainTimeLiteral\nexport function toLiteral(likeValue: PlainTimeLike | null): PlainTimeLiteral | null\nexport function toLiteral(likeValue: PlainTimeLike | undefined): PlainTimeLiteral | undefined\nexport function toLiteral(likeValue: PlainTimeLike | null | undefined): PlainTimeLiteral | null | undefined\nexport function toLiteral(likeValue: PlainTimeLike | null | undefined): PlainTimeLiteral | null | undefined {\n if (isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n\n if (value.second === 0 && value.millisecond === 0 && value.microsecond === 0 && value.nanosecond === 0) {\n return `${value.hour.toString().padStart(2, '0')}:${value.minute.toString().padStart(2, '0')}` as PlainTimeLiteral\n }\n\n return value.toString() as PlainTimeLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => mapResult(parseString(it), (it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isPlainTime = (value: unknown): value is PlainTime => {\n return value instanceof Temporal.PlainTime\n}\n\nexport const now = (zone: TimeZoneId, clock = DefaultClock): PlainTime => {\n return fromInstant(clock.instant(), zone)\n}\n\nexport const merge = (element: PlainTimeLike, builder: Partial<PlainTimeBuilder>): PlainTime => {\n return from(element).with(builder)\n}\n\nexport const add = (element: PlainTimeLike, duration: DurationLike): PlainTime => {\n return from(element).add(_fromDuration(duration))\n}\n\nexport const subtract = (element: PlainTimeLike, duration: DurationLike): PlainTime => {\n return from(element).subtract(_fromDuration(duration))\n}\n\nexport const until = (element: PlainTimeLike, other: PlainTimeLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport const round = (element: PlainTimeLike, unit: TimeUnit): PlainTime => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport function isEqual(element: PlainTimeLike, other: PlainTimeLike): boolean\nexport function isEqual(element: PlainTimeLike | null, other: PlainTimeLike | null): boolean\nexport function isEqual(element: PlainTimeLike | undefined, other: PlainTimeLike | undefined): boolean\nexport function isEqual(element: PlainTimeLike | null | undefined, other: PlainTimeLike | 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 isBefore = (element: PlainTimeLike, other: PlainTimeLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: PlainTimeLike, other: PlainTimeLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport type TimeFormatOptions = {\n hour12?: boolean | undefined\n hour?: 'numeric' | '2-digit' | undefined\n minute?: 'numeric' | '2-digit' | undefined\n second?: 'numeric' | '2-digit' | undefined\n}\n\nexport const format = (element: PlainTimeLike, locale: Locale, options?: TimeFormatOptions): string => {\n const plainTime = from(element)\n\n // Create a Date at Unix epoch with the time components\n const date = new Date(1970, 0, 1, plainTime.hour, plainTime.minute, plainTime.second, plainTime.millisecond)\n\n if (isNil(options) || (isNil(options.hour) && isNil(options.minute) && isNil(options.second))) {\n options = { ...options, hour: 'numeric', minute: '2-digit', ...(plainTime.second > 0 || plainTime.millisecond > 0 ? { second: '2-digit' } : {}) }\n }\n\n const formatter = new Intl.DateTimeFormat(locale, options)\n return formatter.format(date)\n}\n\nexport const Midnight = from({ hour: 0 })\nexport const Noon = from({ hour: 12 })\n"],"mappings":"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","names":["it"]}
1
+ {"version":3,"sources":["../../src/temporal/plain-time.ts"],"sourcesContent":["import { 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 { 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 { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as _fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { from as _fromInstant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { Locale } from '@bessemer/cornerstone/intl/locale'\n\nexport type PlainTime = Temporal.PlainTime\nexport const Namespace = createNamespace('plain-time')\nexport type PlainTimeLiteral = NominalType<string, typeof Namespace>\nexport type PlainTimeBuilder = {\n hour: number\n minute?: number\n second?: number\n millisecond?: number\n microsecond?: number\n nanosecond?: number\n}\nexport type PlainTimeLike = PlainTime | PlainTimeLiteral | PlainTimeBuilder\n\nexport function from(value: PlainTimeLike | string): PlainTime\nexport function from(value: PlainTimeLike | string | null): PlainTime | null\nexport function from(value: PlainTimeLike | string | undefined): PlainTime | undefined\nexport function from(value: PlainTimeLike | string | null | undefined): PlainTime | null | undefined\nexport function from(value: PlainTimeLike | string | null | undefined): PlainTime | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.PlainTime) {\n return value\n }\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.PlainTime.from(value)\n}\n\nexport const CompareBy: Comparator<PlainTime> = (first: PlainTime, second: PlainTime): number => Temporal.PlainTime.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<PlainTime, ErrorEvent> => {\n try {\n return success(Temporal.PlainTime.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 const fromDuration = (duration: DurationLike): PlainTime => {\n return Midnight.add(_fromDuration(duration))\n}\n\nexport const fromInstant = (instant: InstantLike, zone: TimeZoneId): PlainTime => {\n return _fromInstant(instant).toZonedDateTimeISO(zone).toPlainTime()\n}\n\nexport function toLiteral(likeValue: PlainTimeLike): PlainTimeLiteral\nexport function toLiteral(likeValue: PlainTimeLike | null): PlainTimeLiteral | null\nexport function toLiteral(likeValue: PlainTimeLike | undefined): PlainTimeLiteral | undefined\nexport function toLiteral(likeValue: PlainTimeLike | null | undefined): PlainTimeLiteral | null | undefined\nexport function toLiteral(likeValue: PlainTimeLike | null | undefined): PlainTimeLiteral | null | undefined {\n if (isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n\n if (value.second === 0 && value.millisecond === 0 && value.microsecond === 0 && value.nanosecond === 0) {\n return `${value.hour.toString().padStart(2, '0')}:${value.minute.toString().padStart(2, '0')}` as PlainTimeLiteral\n }\n\n return value.toString() as PlainTimeLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => parseString(it).map((it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isPlainTime = (value: unknown): value is PlainTime => {\n return value instanceof Temporal.PlainTime\n}\n\nexport const now = (zone: TimeZoneId, clock = DefaultClock): PlainTime => {\n return fromInstant(clock.instant(), zone)\n}\n\nexport const merge = (element: PlainTimeLike, builder: Partial<PlainTimeBuilder>): PlainTime => {\n return from(element).with(builder)\n}\n\nexport const add = (element: PlainTimeLike, duration: DurationLike): PlainTime => {\n return from(element).add(_fromDuration(duration))\n}\n\nexport const subtract = (element: PlainTimeLike, duration: DurationLike): PlainTime => {\n return from(element).subtract(_fromDuration(duration))\n}\n\nexport const until = (element: PlainTimeLike, other: PlainTimeLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport const round = (element: PlainTimeLike, unit: TimeUnit): PlainTime => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport function isEqual(element: PlainTimeLike, other: PlainTimeLike): boolean\nexport function isEqual(element: PlainTimeLike | null, other: PlainTimeLike | null): boolean\nexport function isEqual(element: PlainTimeLike | undefined, other: PlainTimeLike | undefined): boolean\nexport function isEqual(element: PlainTimeLike | null | undefined, other: PlainTimeLike | 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 isBefore = (element: PlainTimeLike, other: PlainTimeLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: PlainTimeLike, other: PlainTimeLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport type TimeFormatOptions = {\n hour12?: boolean | undefined\n hour?: 'numeric' | '2-digit' | undefined\n minute?: 'numeric' | '2-digit' | undefined\n second?: 'numeric' | '2-digit' | undefined\n}\n\nexport const format = (element: PlainTimeLike, locale: Locale, options?: TimeFormatOptions): string => {\n const plainTime = from(element)\n\n // Create a Date at Unix epoch with the time components\n const date = new Date(1970, 0, 1, plainTime.hour, plainTime.minute, plainTime.second, plainTime.millisecond)\n\n if (isNil(options) || (isNil(options.hour) && isNil(options.minute) && isNil(options.second))) {\n options = { ...options, hour: 'numeric', minute: '2-digit', ...(plainTime.second > 0 || plainTime.millisecond > 0 ? { second: '2-digit' } : {}) }\n }\n\n const formatter = new Intl.DateTimeFormat(locale, options)\n return formatter.format(date)\n}\n\nexport const Midnight = from({ hour: 0 })\nexport const Noon = from({ hour: 12 })\n"],"mappings":"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","names":["it"]}
@@ -1 +1 @@
1
- {"version":3,"file":"zoned-date-time.d.ts","sourceRoot":"","sources":["../../src/temporal/zoned-date-time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zoned-date-time.d.ts","sourceRoot":"","sources":["../../src/temporal/zoned-date-time.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { createNamespace } from "@bessemer/cornerstone/resource-key";
4
4
  import { fromComparator } from "@bessemer/cornerstone/equalitor";
5
- import { failure, mapResult, success } from "@bessemer/cornerstone/result";
5
+ import { failure, success } from "@bessemer/cornerstone/result";
6
6
  import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
7
7
  import { isError } from "@bessemer/cornerstone/error/error";
8
8
  import { structuredTransform } from "@bessemer/cornerstone/zod-util";
@@ -47,7 +47,7 @@ function toLiteral(likeValue) {
47
47
  const value = from(likeValue);
48
48
  return value.toString();
49
49
  }
50
- var SchemaLiteral = structuredTransform(Zod.string(), (it) => mapResult(parseString(it), (it2) => toLiteral(it2)));
50
+ var SchemaLiteral = structuredTransform(Zod.string(), (it) => parseString(it).map((it2) => toLiteral(it2)));
51
51
  var SchemaInstance = structuredTransform(Zod.string(), parseString);
52
52
  var isPlainDateTime = (value) => {
53
53
  return value instanceof Temporal.PlainDateTime;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/temporal/zoned-date-time.ts"],"sourcesContent":["import { 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 { failure, mapResult, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { isError } from '@bessemer/cornerstone/error/error'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as _fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { from as _fromInstant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { PlainTimeBuilder, TimeFormatOptions } from '@bessemer/cornerstone/temporal/plain-time'\nimport { DateFormatOptions, PlainDateBuilder } from '@bessemer/cornerstone/temporal/plain-date'\n\nexport type ZonedDateTime = Temporal.ZonedDateTime\nexport const Namespace = createNamespace('zoned-date-time')\nexport type ZonedDateTimeLiteral = NominalType<string, typeof Namespace>\nexport type ZonedDateTimeBuilder = PlainDateBuilder &\n PlainTimeBuilder & {\n timeZone: TimeZoneId\n }\n\nexport type ZonedDateTimeLike = ZonedDateTime | ZonedDateTimeLiteral | ZonedDateTimeBuilder\n\nexport function from(value: ZonedDateTimeLike | string): ZonedDateTime\nexport function from(value: ZonedDateTimeLike | string | null): ZonedDateTime | null\nexport function from(value: ZonedDateTimeLike | string | undefined): ZonedDateTime | undefined\nexport function from(value: ZonedDateTimeLike | string | null | undefined): ZonedDateTime | null | undefined\nexport function from(value: ZonedDateTimeLike | string | null | undefined): ZonedDateTime | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.ZonedDateTime) {\n return value\n }\n\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.ZonedDateTime.from(value)\n}\n\nexport const CompareBy: Comparator<ZonedDateTime> = (first: ZonedDateTime, second: ZonedDateTime): number =>\n Temporal.PlainDateTime.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<ZonedDateTime, ErrorEvent> => {\n try {\n return success(Temporal.ZonedDateTime.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 const fromInstant = (instant: InstantLike, zone: TimeZoneId): ZonedDateTime => {\n return _fromInstant(instant).toZonedDateTimeISO(zone)\n}\n\nexport function toLiteral(likeValue: ZonedDateTimeLike): ZonedDateTimeLiteral\nexport function toLiteral(likeValue: ZonedDateTimeLike | null): ZonedDateTimeLiteral | null\nexport function toLiteral(likeValue: ZonedDateTimeLike | undefined): ZonedDateTimeLiteral | undefined\nexport function toLiteral(likeValue: ZonedDateTimeLike | null | undefined): ZonedDateTimeLiteral | null | undefined\nexport function toLiteral(likeValue: ZonedDateTimeLike | null | undefined): ZonedDateTimeLiteral | null | undefined {\n if (isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n return value.toString() as ZonedDateTimeLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => mapResult(parseString(it), (it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isPlainDateTime = (value: unknown): value is ZonedDateTime => {\n return value instanceof Temporal.PlainDateTime\n}\n\nexport const now = (zone: TimeZoneId, clock = DefaultClock): ZonedDateTime => {\n return fromInstant(clock.instant(), zone)\n}\n\nexport const merge = (element: ZonedDateTimeLike, builder: Partial<ZonedDateTimeBuilder>): ZonedDateTime => {\n return from(element).with(builder)\n}\n\nexport const add = (element: ZonedDateTimeLike, duration: DurationLike): ZonedDateTime => {\n return from(element).add(_fromDuration(duration))\n}\n\nexport const subtract = (element: ZonedDateTimeLike, duration: DurationLike): ZonedDateTime => {\n return from(element).subtract(_fromDuration(duration))\n}\n\nexport const until = (element: ZonedDateTimeLike, other: ZonedDateTimeLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport const round = (element: ZonedDateTimeLike, unit: TimeUnit): ZonedDateTime => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport function isEqual(element: ZonedDateTimeLike, other: ZonedDateTimeLike): boolean\nexport function isEqual(element: ZonedDateTimeLike | null, other: ZonedDateTimeLike | null): boolean\nexport function isEqual(element: ZonedDateTimeLike | undefined, other: ZonedDateTimeLike | undefined): boolean\nexport function isEqual(element: ZonedDateTimeLike | null | undefined, other: ZonedDateTimeLike | 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 isBefore = (element: ZonedDateTimeLike, other: ZonedDateTimeLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: ZonedDateTimeLike, other: ZonedDateTimeLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport type DateTimeFormatOptions = DateFormatOptions & TimeFormatOptions\n\n// JOHN need to consider what to do about time zone offset vs. time zone id discrepancy\n// export const format = (element: ZonedDateTimeLike, locale: Locale, options: DateTimeFormatOptions): string => {\n// const zonedDateTime = from(element)\n//\n// // Convert PlainDateTime to Date\n// const date = new Date(\n// zonedDateTime.year,\n// zonedDateTime.month - 1, // Date months are 0-based\n// zonedDateTime.day,\n// zonedDateTime.hour,\n// zonedDateTime.minute,\n// zonedDateTime.second,\n// zonedDateTime.millisecond\n// )\n//\n// const formatter = new Intl.DateTimeFormat(locale, { ...options, timeZone: zonedDateTime.timeZoneId })\n// return formatter.format(date)\n// }\n"],"mappings":"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","names":["it"]}
1
+ {"version":3,"sources":["../../src/temporal/zoned-date-time.ts"],"sourcesContent":["import { 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 { 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 { structuredTransform } from '@bessemer/cornerstone/zod-util'\nimport Zod from 'zod'\nimport { Default as DefaultClock } from '@bessemer/cornerstone/temporal/clock'\nimport { Duration, DurationLike, from as _fromDuration } from '@bessemer/cornerstone/temporal/duration'\nimport { from as _fromInstant, InstantLike } from '@bessemer/cornerstone/temporal/instant'\nimport { TimeZoneId } from '@bessemer/cornerstone/temporal/time-zone-id'\nimport { TimeUnit } from '@bessemer/cornerstone/temporal/chrono'\nimport { isString } from '@bessemer/cornerstone/string'\nimport { isNil } from '@bessemer/cornerstone/object'\nimport { PlainTimeBuilder, TimeFormatOptions } from '@bessemer/cornerstone/temporal/plain-time'\nimport { DateFormatOptions, PlainDateBuilder } from '@bessemer/cornerstone/temporal/plain-date'\n\nexport type ZonedDateTime = Temporal.ZonedDateTime\nexport const Namespace = createNamespace('zoned-date-time')\nexport type ZonedDateTimeLiteral = NominalType<string, typeof Namespace>\nexport type ZonedDateTimeBuilder = PlainDateBuilder &\n PlainTimeBuilder & {\n timeZone: TimeZoneId\n }\n\nexport type ZonedDateTimeLike = ZonedDateTime | ZonedDateTimeLiteral | ZonedDateTimeBuilder\n\nexport function from(value: ZonedDateTimeLike | string): ZonedDateTime\nexport function from(value: ZonedDateTimeLike | string | null): ZonedDateTime | null\nexport function from(value: ZonedDateTimeLike | string | undefined): ZonedDateTime | undefined\nexport function from(value: ZonedDateTimeLike | string | null | undefined): ZonedDateTime | null | undefined\nexport function from(value: ZonedDateTimeLike | string | null | undefined): ZonedDateTime | null | undefined {\n if (isNil(value)) {\n return value\n }\n\n if (value instanceof Temporal.ZonedDateTime) {\n return value\n }\n\n if (isString(value)) {\n return unpackResult(parseString(value))\n }\n\n return Temporal.ZonedDateTime.from(value)\n}\n\nexport const CompareBy: Comparator<ZonedDateTime> = (first: ZonedDateTime, second: ZonedDateTime): number =>\n Temporal.PlainDateTime.compare(first, second)\nexport const EqualBy = fromComparator(CompareBy)\n\nexport const parseString = (value: string): Result<ZonedDateTime, ErrorEvent> => {\n try {\n return success(Temporal.ZonedDateTime.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 const fromInstant = (instant: InstantLike, zone: TimeZoneId): ZonedDateTime => {\n return _fromInstant(instant).toZonedDateTimeISO(zone)\n}\n\nexport function toLiteral(likeValue: ZonedDateTimeLike): ZonedDateTimeLiteral\nexport function toLiteral(likeValue: ZonedDateTimeLike | null): ZonedDateTimeLiteral | null\nexport function toLiteral(likeValue: ZonedDateTimeLike | undefined): ZonedDateTimeLiteral | undefined\nexport function toLiteral(likeValue: ZonedDateTimeLike | null | undefined): ZonedDateTimeLiteral | null | undefined\nexport function toLiteral(likeValue: ZonedDateTimeLike | null | undefined): ZonedDateTimeLiteral | null | undefined {\n if (isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n return value.toString() as ZonedDateTimeLiteral\n}\n\nexport const SchemaLiteral = structuredTransform(Zod.string(), (it: string) => parseString(it).map((it) => toLiteral(it)))\nexport const SchemaInstance = structuredTransform(Zod.string(), parseString)\n\nexport const isPlainDateTime = (value: unknown): value is ZonedDateTime => {\n return value instanceof Temporal.PlainDateTime\n}\n\nexport const now = (zone: TimeZoneId, clock = DefaultClock): ZonedDateTime => {\n return fromInstant(clock.instant(), zone)\n}\n\nexport const merge = (element: ZonedDateTimeLike, builder: Partial<ZonedDateTimeBuilder>): ZonedDateTime => {\n return from(element).with(builder)\n}\n\nexport const add = (element: ZonedDateTimeLike, duration: DurationLike): ZonedDateTime => {\n return from(element).add(_fromDuration(duration))\n}\n\nexport const subtract = (element: ZonedDateTimeLike, duration: DurationLike): ZonedDateTime => {\n return from(element).subtract(_fromDuration(duration))\n}\n\nexport const until = (element: ZonedDateTimeLike, other: ZonedDateTimeLike): Duration => {\n return from(element).until(from(other))\n}\n\nexport const round = (element: ZonedDateTimeLike, unit: TimeUnit): ZonedDateTime => {\n return from(element).round({ smallestUnit: unit })\n}\n\nexport function isEqual(element: ZonedDateTimeLike, other: ZonedDateTimeLike): boolean\nexport function isEqual(element: ZonedDateTimeLike | null, other: ZonedDateTimeLike | null): boolean\nexport function isEqual(element: ZonedDateTimeLike | undefined, other: ZonedDateTimeLike | undefined): boolean\nexport function isEqual(element: ZonedDateTimeLike | null | undefined, other: ZonedDateTimeLike | 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 isBefore = (element: ZonedDateTimeLike, other: ZonedDateTimeLike): boolean => {\n return CompareBy(from(element), from(other)) < 0\n}\n\nexport const isAfter = (element: ZonedDateTimeLike, other: ZonedDateTimeLike): boolean => {\n return CompareBy(from(element), from(other)) > 0\n}\n\nexport type DateTimeFormatOptions = DateFormatOptions & TimeFormatOptions\n\n// JOHN need to consider what to do about time zone offset vs. time zone id discrepancy\n// export const format = (element: ZonedDateTimeLike, locale: Locale, options: DateTimeFormatOptions): string => {\n// const zonedDateTime = from(element)\n//\n// // Convert PlainDateTime to Date\n// const date = new Date(\n// zonedDateTime.year,\n// zonedDateTime.month - 1, // Date months are 0-based\n// zonedDateTime.day,\n// zonedDateTime.hour,\n// zonedDateTime.minute,\n// zonedDateTime.second,\n// zonedDateTime.millisecond\n// )\n//\n// const formatter = new Intl.DateTimeFormat(locale, { ...options, timeZone: zonedDateTime.timeZoneId })\n// return formatter.format(date)\n// }\n"],"mappings":"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","names":["it"]}
@@ -4,7 +4,6 @@ import { Result } from '@bessemer/cornerstone/result';
4
4
  import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
5
  import { $RefinementCtx } from 'zod/v4/core';
6
6
  export declare const parse: <T extends ZodType>(type: T, data: unknown) => Result<Zod.infer<T>>;
7
- export declare const parseOrThrow: <T extends ZodType>(type: T, data: unknown) => Zod.infer<T>;
8
7
  export declare const parseJson: <T extends ZodType>(type: T, data: string) => Result<Zod.infer<T>>;
9
8
  export declare const parseJsonOrThrow: <T extends ZodType>(type: T, data: string) => Zod.infer<T>;
10
9
  export declare const arrayable: <T>(type: ZodType<T>) => Zod.ZodUnion<readonly [Zod.ZodType<T, unknown, Zod.core.$ZodTypeInternals<T, unknown>>, Zod.ZodArray<Zod.ZodType<T, unknown, Zod.core.$ZodTypeInternals<T, unknown>>>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"zod-util.d.ts","sourceRoot":"","sources":["../src/zod-util.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAEhE,OAAO,EAA4B,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACxF,OAAO,EAAE,UAAU,EAAgB,MAAM,yCAAyC,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5C,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,OAAO,KAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAOpF,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,OAAO,KAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAEnF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAOvF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAItF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,4KAE5C,CAAA;AAED,eAAO,MAAM,GAAG,QAAO,OAAO,CAAC,WAAW,CAEzC,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAE/G,eAAO,MAAM,mBAAmB,GAAI,SAAS,EAAE,UAAU,EAAE,UAAU,SAAS,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EACzG,QAAQ,UAAU,EAClB,aAAa,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,gGAM1D,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,SAAS,EACpC,aAAa,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,KACrD,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,IAAI,CAkBjE,CAAA"}
1
+ {"version":3,"file":"zod-util.d.ts","sourceRoot":"","sources":["../src/zod-util.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAEhE,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,UAAU,EAAgB,MAAM,yCAAyC,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5C,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,OAAO,KAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAOpF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAOvF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAItF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,4KAE5C,CAAA;AAED,eAAO,MAAM,GAAG,QAAO,OAAO,CAAC,WAAW,CAEzC,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,SAAS,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAE/G,eAAO,MAAM,mBAAmB,GAAI,SAAS,EAAE,UAAU,EAAE,UAAU,SAAS,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EACzG,QAAQ,UAAU,EAClB,aAAa,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,gGAM1D,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,SAAS,EACpC,aAAa,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,KACrD,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,IAAI,CAkBjE,CAAA"}
package/dist/zod-util.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/zod-util.ts
2
2
  import Zod from "zod";
3
3
  import { parse as jsonParse } from "@bessemer/cornerstone/json";
4
- import { failure, getValueOrThrow, success } from "@bessemer/cornerstone/result";
4
+ import { failure, success } from "@bessemer/cornerstone/result";
5
5
  import { unpackResult } from "@bessemer/cornerstone/error/error-event";
6
6
  import * as Assertions from "@bessemer/cornerstone/assertion";
7
7
  var parse = (type, data) => {
@@ -12,9 +12,6 @@ var parse = (type, data) => {
12
12
  return failure(result.error);
13
13
  }
14
14
  };
15
- var parseOrThrow = (type, data) => {
16
- return getValueOrThrow(parse(type, data));
17
- };
18
15
  var parseJson = (type, data) => {
19
16
  const result = jsonParse(data);
20
17
  if (!result.isSuccess) {
@@ -49,7 +46,7 @@ var refineResult = (transformer) => {
49
46
  code: "custom",
50
47
  message: cause.message,
51
48
  input: value,
52
- error,
49
+ context: error.context,
53
50
  cause
54
51
  });
55
52
  });
@@ -62,7 +59,6 @@ export {
62
59
  parse,
63
60
  parseJson,
64
61
  parseJsonOrThrow,
65
- parseOrThrow,
66
62
  refineResult,
67
63
  structuredTransform
68
64
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/zod-util.ts"],"sourcesContent":["import Zod, { ZodType } from 'zod'\nimport { ResourceKey } from '@bessemer/cornerstone/resource-key'\nimport { parse as jsonParse } from '@bessemer/cornerstone/json'\nimport { failure, getValueOrThrow, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { $RefinementCtx } from 'zod/v4/core'\nimport * as Assertions from '@bessemer/cornerstone/assertion'\n\nexport const parse = <T extends ZodType>(type: T, data: unknown): Result<Zod.infer<T>> => {\n const result = type.safeParse(data)\n if (result.success) {\n return success(result.data)\n } else {\n return failure(result.error)\n }\n}\n\nexport const parseOrThrow = <T extends ZodType>(type: T, data: unknown): Zod.infer<T> => {\n return getValueOrThrow(parse(type, data))\n}\n\nexport const parseJson = <T extends ZodType>(type: T, data: string): Result<Zod.infer<T>> => {\n const result = jsonParse(data)\n if (!result.isSuccess) {\n return result\n }\n\n return parse(type, result.value)\n}\n\nexport const parseJsonOrThrow = <T extends ZodType>(type: T, data: string): Zod.infer<T> => {\n const result = parseJson(type, data)\n Assertions.assert(result.isSuccess)\n return result.value\n}\n\nexport const arrayable = <T>(type: ZodType<T>) => {\n return Zod.union([type, Zod.array(type)])\n}\n\nexport const key = (): ZodType<ResourceKey> => {\n return Zod.string()\n}\n\nexport type StructuredTransformer<InputType, OutputType> = (value: InputType) => Result<OutputType, ErrorEvent>\n\nexport const structuredTransform = <InputType, OutputType, SchemaType extends ZodType<InputType, InputType>>(\n schema: SchemaType,\n transformer: StructuredTransformer<InputType, OutputType>\n) => {\n return schema.superRefine(refineResult(transformer)).transform((it) => {\n const result = transformer(it)\n return unpackResult(result)\n })\n}\n\nexport const refineResult = <InputType>(\n transformer: StructuredTransformer<InputType, unknown>\n): ((value: InputType, context: $RefinementCtx<InputType>) => void) => {\n return (value, context) => {\n const result = transformer(value)\n\n if (!result.isSuccess) {\n const error = result.value\n\n error.causes.forEach((cause) => {\n context.addIssue({\n code: 'custom',\n message: cause.message,\n input: value,\n error,\n cause,\n })\n })\n }\n }\n}\n"],"mappings":";AAAA,OAAO,SAAsB;AAE7B,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAS,iBAAyB,eAAe;AAC1D,SAAqB,oBAAoB;AAEzC,YAAY,gBAAgB;AAErB,IAAM,QAAQ,CAAoB,MAAS,SAAwC;AACxF,QAAM,SAAS,KAAK,UAAU,IAAI;AAClC,MAAI,OAAO,SAAS;AAClB,WAAO,QAAQ,OAAO,IAAI;AAAA,EAC5B,OAAO;AACL,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AACF;AAEO,IAAM,eAAe,CAAoB,MAAS,SAAgC;AACvF,SAAO,gBAAgB,MAAM,MAAM,IAAI,CAAC;AAC1C;AAEO,IAAM,YAAY,CAAoB,MAAS,SAAuC;AAC3F,QAAM,SAAS,UAAU,IAAI;AAC7B,MAAI,CAAC,OAAO,WAAW;AACrB,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,MAAM,OAAO,KAAK;AACjC;AAEO,IAAM,mBAAmB,CAAoB,MAAS,SAA+B;AAC1F,QAAM,SAAS,UAAU,MAAM,IAAI;AACnC,EAAW,kBAAO,OAAO,SAAS;AAClC,SAAO,OAAO;AAChB;AAEO,IAAM,YAAY,CAAI,SAAqB;AAChD,SAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC;AAC1C;AAEO,IAAM,MAAM,MAA4B;AAC7C,SAAO,IAAI,OAAO;AACpB;AAIO,IAAM,sBAAsB,CACjC,QACA,gBACG;AACH,SAAO,OAAO,YAAY,aAAa,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO;AACrE,UAAM,SAAS,YAAY,EAAE;AAC7B,WAAO,aAAa,MAAM;AAAA,EAC5B,CAAC;AACH;AAEO,IAAM,eAAe,CAC1B,gBACqE;AACrE,SAAO,CAAC,OAAO,YAAY;AACzB,UAAM,SAAS,YAAY,KAAK;AAEhC,QAAI,CAAC,OAAO,WAAW;AACrB,YAAM,QAAQ,OAAO;AAErB,YAAM,OAAO,QAAQ,CAAC,UAAU;AAC9B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,SAAS,MAAM;AAAA,UACf,OAAO;AAAA,UACP;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/zod-util.ts"],"sourcesContent":["import Zod, { ZodType } from 'zod'\nimport { ResourceKey } from '@bessemer/cornerstone/resource-key'\nimport { parse as jsonParse } from '@bessemer/cornerstone/json'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { ErrorEvent, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { $RefinementCtx } from 'zod/v4/core'\nimport * as Assertions from '@bessemer/cornerstone/assertion'\n\nexport const parse = <T extends ZodType>(type: T, data: unknown): Result<Zod.infer<T>> => {\n const result = type.safeParse(data)\n if (result.success) {\n return success(result.data)\n } else {\n return failure(result.error)\n }\n}\n\nexport const parseJson = <T extends ZodType>(type: T, data: string): Result<Zod.infer<T>> => {\n const result = jsonParse(data)\n if (!result.isSuccess) {\n return result\n }\n\n return parse(type, result.value)\n}\n\nexport const parseJsonOrThrow = <T extends ZodType>(type: T, data: string): Zod.infer<T> => {\n const result = parseJson(type, data)\n Assertions.assert(result.isSuccess)\n return result.value\n}\n\nexport const arrayable = <T>(type: ZodType<T>) => {\n return Zod.union([type, Zod.array(type)])\n}\n\nexport const key = (): ZodType<ResourceKey> => {\n return Zod.string()\n}\n\nexport type StructuredTransformer<InputType, OutputType> = (value: InputType) => Result<OutputType, ErrorEvent>\n\nexport const structuredTransform = <InputType, OutputType, SchemaType extends ZodType<InputType, InputType>>(\n schema: SchemaType,\n transformer: StructuredTransformer<InputType, OutputType>\n) => {\n return schema.superRefine(refineResult(transformer)).transform((it) => {\n const result = transformer(it)\n return unpackResult(result)\n })\n}\n\nexport const refineResult = <InputType>(\n transformer: StructuredTransformer<InputType, unknown>\n): ((value: InputType, context: $RefinementCtx<InputType>) => void) => {\n return (value, context) => {\n const result = transformer(value)\n\n if (!result.isSuccess) {\n const error = result.value\n\n error.causes.forEach((cause) => {\n context.addIssue({\n code: 'custom',\n message: cause.message,\n input: value,\n context: error.context,\n cause,\n })\n })\n }\n }\n}\n"],"mappings":";AAAA,OAAO,SAAsB;AAE7B,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAiB,eAAe;AACzC,SAAqB,oBAAoB;AAEzC,YAAY,gBAAgB;AAErB,IAAM,QAAQ,CAAoB,MAAS,SAAwC;AACxF,QAAM,SAAS,KAAK,UAAU,IAAI;AAClC,MAAI,OAAO,SAAS;AAClB,WAAO,QAAQ,OAAO,IAAI;AAAA,EAC5B,OAAO;AACL,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AACF;AAEO,IAAM,YAAY,CAAoB,MAAS,SAAuC;AAC3F,QAAM,SAAS,UAAU,IAAI;AAC7B,MAAI,CAAC,OAAO,WAAW;AACrB,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,MAAM,OAAO,KAAK;AACjC;AAEO,IAAM,mBAAmB,CAAoB,MAAS,SAA+B;AAC1F,QAAM,SAAS,UAAU,MAAM,IAAI;AACnC,EAAW,kBAAO,OAAO,SAAS;AAClC,SAAO,OAAO;AAChB;AAEO,IAAM,YAAY,CAAI,SAAqB;AAChD,SAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC;AAC1C;AAEO,IAAM,MAAM,MAA4B;AAC7C,SAAO,IAAI,OAAO;AACpB;AAIO,IAAM,sBAAsB,CACjC,QACA,gBACG;AACH,SAAO,OAAO,YAAY,aAAa,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO;AACrE,UAAM,SAAS,YAAY,EAAE;AAC7B,WAAO,aAAa,MAAM;AAAA,EAC5B,CAAC;AACH;AAEO,IAAM,eAAe,CAC1B,gBACqE;AACrE,SAAO,CAAC,OAAO,YAAY;AACzB,UAAM,SAAS,YAAY,KAAK;AAEhC,QAAI,CAAC,OAAO,WAAW;AACrB,YAAM,QAAQ,OAAO;AAErB,YAAM,OAAO,QAAQ,CAAC,UAAU;AAC9B,gBAAQ,SAAS;AAAA,UACf,MAAM;AAAA,UACN,SAAS,MAAM;AAAA,UACf,OAAO;AAAA,UACP,SAAS,MAAM;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bessemer/cornerstone",
3
3
  "type": "module",
4
- "version": "0.5.101",
4
+ "version": "0.5.106",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "sideEffects": false,
@@ -30,7 +30,7 @@
30
30
  "pino": "9.6.0",
31
31
  "type-fest": "4.32.0",
32
32
  "ulid": "2.3.0",
33
- "zod": "4.0.15"
33
+ "zod": "4.1.12"
34
34
  },
35
35
  "devDependencies": {
36
36
  "expect-type": "1.2.2",
@@ -39,4 +39,4 @@
39
39
  "files": [
40
40
  "dist"
41
41
  ]
42
- }
42
+ }