@bessemer/cornerstone 0.5.86 → 0.5.89

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 (187) hide show
  1. package/dist/aspect-ratio.d.ts +7 -4
  2. package/dist/aspect-ratio.d.ts.map +1 -1
  3. package/dist/aspect-ratio.js +16 -7
  4. package/dist/aspect-ratio.js.map +1 -1
  5. package/dist/async.d.ts +1 -1
  6. package/dist/async.d.ts.map +1 -1
  7. package/dist/async.js +1 -1
  8. package/dist/async.js.map +1 -1
  9. package/dist/cache.d.ts +7 -6
  10. package/dist/cache.d.ts.map +1 -1
  11. package/dist/cache.js +12 -12
  12. package/dist/cache.js.map +1 -1
  13. package/dist/comparator.js +1 -1
  14. package/dist/comparator.js.map +1 -1
  15. package/dist/content.d.ts +5 -5
  16. package/dist/content.d.ts.map +1 -1
  17. package/dist/content.js.map +1 -1
  18. package/dist/data-size.d.ts +2 -2
  19. package/dist/data-size.d.ts.map +1 -1
  20. package/dist/data-size.js.map +1 -1
  21. package/dist/{error-event.d.ts → error/error-event.d.ts} +42 -23
  22. package/dist/error/error-event.d.ts.map +1 -0
  23. package/dist/{error-event.js → error/error-event.js} +82 -60
  24. package/dist/error/error-event.js.map +1 -0
  25. package/dist/error/error-type.d.ts +11 -0
  26. package/dist/error/error-type.d.ts.map +1 -0
  27. package/dist/error/error-type.js +20 -0
  28. package/dist/error/error-type.js.map +1 -0
  29. package/dist/error/error.d.ts.map +1 -0
  30. package/dist/{error.js → error/error.js} +1 -1
  31. package/dist/error/error.js.map +1 -0
  32. package/dist/expression.d.ts +2 -2
  33. package/dist/expression.d.ts.map +1 -1
  34. package/dist/expression.js.map +1 -1
  35. package/dist/glob.d.ts +7 -3
  36. package/dist/glob.d.ts.map +1 -1
  37. package/dist/glob.js +23 -15
  38. package/dist/glob.js.map +1 -1
  39. package/dist/hash.d.ts +2 -2
  40. package/dist/hash.d.ts.map +1 -1
  41. package/dist/hash.js.map +1 -1
  42. package/dist/hex-code.d.ts +7 -4
  43. package/dist/hex-code.d.ts.map +1 -1
  44. package/dist/hex-code.js +19 -5
  45. package/dist/hex-code.js.map +1 -1
  46. package/dist/index.d.ts +12 -5
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +18 -4
  49. package/dist/index.js.map +1 -1
  50. package/dist/intl/country-code.d.ts +7 -4
  51. package/dist/intl/country-code.d.ts.map +1 -1
  52. package/dist/intl/country-code.js +52 -43
  53. package/dist/intl/country-code.js.map +1 -1
  54. package/dist/intl/country-subdivision-code.d.ts +7 -4
  55. package/dist/intl/country-subdivision-code.d.ts.map +1 -1
  56. package/dist/intl/country-subdivision-code.js +16 -5
  57. package/dist/intl/country-subdivision-code.js.map +1 -1
  58. package/dist/intl/currency-code.d.ts +7 -4
  59. package/dist/intl/currency-code.d.ts.map +1 -1
  60. package/dist/intl/currency-code.js +20 -11
  61. package/dist/intl/currency-code.js.map +1 -1
  62. package/dist/intl/language-code.d.ts +7 -4
  63. package/dist/intl/language-code.d.ts.map +1 -1
  64. package/dist/intl/language-code.js +39 -30
  65. package/dist/intl/language-code.js.map +1 -1
  66. package/dist/intl/locale.d.ts +8 -5
  67. package/dist/intl/locale.d.ts.map +1 -1
  68. package/dist/intl/locale.js +37 -30
  69. package/dist/intl/locale.js.map +1 -1
  70. package/dist/math.d.ts +2 -0
  71. package/dist/math.d.ts.map +1 -1
  72. package/dist/math.js +12 -1
  73. package/dist/math.js.map +1 -1
  74. package/dist/mime-type.d.ts +7 -4
  75. package/dist/mime-type.d.ts.map +1 -1
  76. package/dist/mime-type.js +44 -35
  77. package/dist/mime-type.js.map +1 -1
  78. package/dist/monetary-amount.d.ts +3 -3
  79. package/dist/monetary-amount.d.ts.map +1 -1
  80. package/dist/monetary-amount.js +4 -4
  81. package/dist/monetary-amount.js.map +1 -1
  82. package/dist/object/object-path.d.ts +2 -2
  83. package/dist/object/object-path.d.ts.map +1 -1
  84. package/dist/object/object-path.js.map +1 -1
  85. package/dist/object/type-path.d.ts +2 -2
  86. package/dist/object/type-path.d.ts.map +1 -1
  87. package/dist/object/type-path.js.map +1 -1
  88. package/dist/object.d.ts +2 -2
  89. package/dist/object.d.ts.map +1 -1
  90. package/dist/object.js +3 -2
  91. package/dist/object.js.map +1 -1
  92. package/dist/range.d.ts +2 -2
  93. package/dist/range.d.ts.map +1 -1
  94. package/dist/range.js.map +1 -1
  95. package/dist/reference.d.ts +2 -2
  96. package/dist/reference.d.ts.map +1 -1
  97. package/dist/reference.js.map +1 -1
  98. package/dist/resource-key.d.ts +17 -8
  99. package/dist/resource-key.d.ts.map +1 -1
  100. package/dist/resource-key.js +42 -13
  101. package/dist/resource-key.js.map +1 -1
  102. package/dist/result.d.ts +6 -5
  103. package/dist/result.d.ts.map +1 -1
  104. package/dist/result.js +4 -4
  105. package/dist/result.js.map +1 -1
  106. package/dist/retry.d.ts +1 -1
  107. package/dist/retry.d.ts.map +1 -1
  108. package/dist/retry.js +1 -1
  109. package/dist/retry.js.map +1 -1
  110. package/dist/rich-text.d.ts +2 -2
  111. package/dist/rich-text.d.ts.map +1 -1
  112. package/dist/rich-text.js.map +1 -1
  113. package/dist/signature.d.ts.map +1 -1
  114. package/dist/signature.js +5 -1
  115. package/dist/signature.js.map +1 -1
  116. package/dist/sql.d.ts +2 -2
  117. package/dist/sql.d.ts.map +1 -1
  118. package/dist/sql.js.map +1 -1
  119. package/dist/tag.d.ts +3 -3
  120. package/dist/tag.d.ts.map +1 -1
  121. package/dist/tag.js.map +1 -1
  122. package/dist/temporal/chrono.d.ts +34 -0
  123. package/dist/temporal/chrono.d.ts.map +1 -0
  124. package/dist/temporal/chrono.js +34 -0
  125. package/dist/temporal/chrono.js.map +1 -0
  126. package/dist/temporal/clock.d.ts +21 -0
  127. package/dist/temporal/clock.d.ts.map +1 -0
  128. package/dist/temporal/clock.js +76 -0
  129. package/dist/temporal/clock.js.map +1 -0
  130. package/dist/temporal/date.d.ts +2 -0
  131. package/dist/temporal/date.d.ts.map +1 -0
  132. package/dist/temporal/date.js +8 -0
  133. package/dist/temporal/date.js.map +1 -0
  134. package/dist/temporal/duration.d.ts +54 -0
  135. package/dist/temporal/duration.d.ts.map +1 -0
  136. package/dist/temporal/duration.js +162 -0
  137. package/dist/temporal/duration.js.map +1 -0
  138. package/dist/temporal/instant.d.ts +35 -0
  139. package/dist/temporal/instant.d.ts.map +1 -0
  140. package/dist/temporal/instant.js +93 -0
  141. package/dist/temporal/instant.js.map +1 -0
  142. package/dist/temporal/plain-time.d.ts +49 -0
  143. package/dist/temporal/plain-time.d.ts.map +1 -0
  144. package/dist/temporal/plain-time.js +111 -0
  145. package/dist/temporal/plain-time.js.map +1 -0
  146. package/dist/temporal/time-zone-id.d.ts +12 -0
  147. package/dist/temporal/time-zone-id.d.ts.map +1 -0
  148. package/dist/temporal/time-zone-id.js +35 -0
  149. package/dist/temporal/time-zone-id.js.map +1 -0
  150. package/dist/temporal/time-zone-offset.d.ts +22 -0
  151. package/dist/temporal/time-zone-offset.d.ts.map +1 -0
  152. package/dist/temporal/time-zone-offset.js +145 -0
  153. package/dist/temporal/time-zone-offset.js.map +1 -0
  154. package/dist/types.d.ts +12 -12
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/ulid.d.ts +7 -4
  157. package/dist/ulid.d.ts.map +1 -1
  158. package/dist/ulid.js +14 -5
  159. package/dist/ulid.js.map +1 -1
  160. package/dist/unit.d.ts +2 -2
  161. package/dist/unit.d.ts.map +1 -1
  162. package/dist/unit.js.map +1 -1
  163. package/dist/uri.d.ts +2 -2
  164. package/dist/uri.d.ts.map +1 -1
  165. package/dist/uri.js.map +1 -1
  166. package/dist/uuid.d.ts +7 -4
  167. package/dist/uuid.d.ts.map +1 -1
  168. package/dist/uuid.js +14 -5
  169. package/dist/uuid.js.map +1 -1
  170. package/dist/zod-util.d.ts +5 -0
  171. package/dist/zod-util.d.ts.map +1 -1
  172. package/dist/zod-util.js +28 -2
  173. package/dist/zod-util.js.map +1 -1
  174. package/package.json +2 -2
  175. package/dist/date.d.ts +0 -13
  176. package/dist/date.d.ts.map +0 -1
  177. package/dist/date.js +0 -40
  178. package/dist/date.js.map +0 -1
  179. package/dist/duration.d.ts +0 -18
  180. package/dist/duration.d.ts.map +0 -1
  181. package/dist/duration.js +0 -53
  182. package/dist/duration.js.map +0 -1
  183. package/dist/error-event.d.ts.map +0 -1
  184. package/dist/error-event.js.map +0 -1
  185. package/dist/error.d.ts.map +0 -1
  186. package/dist/error.js.map +0 -1
  187. /package/dist/{error.d.ts → error/error.d.ts} +0 -0
@@ -1,37 +1,45 @@
1
1
  // src/intl/language-code.ts
2
2
  import Zod from "zod";
3
- var of = (value) => {
4
- return value;
3
+ import { failure, success } from "@bessemer/cornerstone/result";
4
+ import { namespace } from "@bessemer/cornerstone/resource-key";
5
+ import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
6
+ import { structuredTransform } from "@bessemer/cornerstone/zod-util";
7
+ var Namespace = namespace("language-code");
8
+ var parseString = (value) => {
9
+ if (!/^[a-z]{2}$/i.test(value)) {
10
+ return failure(invalidValue(value, { namespace: Namespace, message: `CountryCode must be exactly 2 letters.` }));
11
+ }
12
+ return success(value.toLowerCase());
5
13
  };
6
- var Schema = Zod.string().trim().toLowerCase().regex(/^[a-z]{2}$/, "LanguageCode must be exactly 2 lowercase letters").transform(of);
7
14
  var fromString = (value) => {
8
- return Schema.parse(value);
15
+ return unpackResult(parseString(value));
9
16
  };
10
- var English = of("en");
11
- var Spanish = of("es");
12
- var French = of("fr");
13
- var German = of("de");
14
- var Italian = of("it");
15
- var Portuguese = of("pt");
16
- var Dutch = of("nl");
17
- var Russian = of("ru");
18
- var Chinese = of("zh");
19
- var Japanese = of("ja");
20
- var Korean = of("ko");
21
- var Arabic = of("ar");
22
- var Hindi = of("hi");
23
- var Turkish = of("tr");
24
- var Polish = of("pl");
25
- var Swedish = of("sv");
26
- var Norwegian = of("no");
27
- var Danish = of("da");
28
- var Finnish = of("fi");
29
- var Greek = of("el");
30
- var Hebrew = of("he");
31
- var Thai = of("th");
32
- var Vietnamese = of("vi");
33
- var Indonesian = of("id");
34
- var Malay = of("ms");
17
+ var Schema = structuredTransform(Zod.string(), parseString);
18
+ var English = "en";
19
+ var Spanish = "es";
20
+ var French = "fr";
21
+ var German = "de";
22
+ var Italian = "it";
23
+ var Portuguese = "pt";
24
+ var Dutch = "nl";
25
+ var Russian = "ru";
26
+ var Chinese = "zh";
27
+ var Japanese = "ja";
28
+ var Korean = "ko";
29
+ var Arabic = "ar";
30
+ var Hindi = "hi";
31
+ var Turkish = "tr";
32
+ var Polish = "pl";
33
+ var Swedish = "sv";
34
+ var Norwegian = "no";
35
+ var Danish = "da";
36
+ var Finnish = "fi";
37
+ var Greek = "el";
38
+ var Hebrew = "he";
39
+ var Thai = "th";
40
+ var Vietnamese = "vi";
41
+ var Indonesian = "id";
42
+ var Malay = "ms";
35
43
  export {
36
44
  Arabic,
37
45
  Chinese,
@@ -49,6 +57,7 @@ export {
49
57
  Japanese,
50
58
  Korean,
51
59
  Malay,
60
+ Namespace,
52
61
  Norwegian,
53
62
  Polish,
54
63
  Portuguese,
@@ -60,6 +69,6 @@ export {
60
69
  Turkish,
61
70
  Vietnamese,
62
71
  fromString,
63
- of
72
+ parseString
64
73
  };
65
74
  //# sourceMappingURL=language-code.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/intl/language-code.ts"],"sourcesContent":["import { TaggedType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\n\n// ISO 639 language codes\nexport type LanguageCode = TaggedType<string, 'LanguageCode'>\n\nexport const of = (value: string): LanguageCode => {\n return value as LanguageCode\n}\n\nexport const Schema = Zod.string()\n .trim()\n .toLowerCase()\n .regex(/^[a-z]{2}$/, 'LanguageCode must be exactly 2 lowercase letters')\n .transform(of)\n\nexport const fromString = (value: string): LanguageCode => {\n return Schema.parse(value)\n}\n\nexport const English = of('en')\nexport const Spanish = of('es')\nexport const French = of('fr')\nexport const German = of('de')\nexport const Italian = of('it')\nexport const Portuguese = of('pt')\nexport const Dutch = of('nl')\nexport const Russian = of('ru')\nexport const Chinese = of('zh')\nexport const Japanese = of('ja')\nexport const Korean = of('ko')\nexport const Arabic = of('ar')\nexport const Hindi = of('hi')\nexport const Turkish = of('tr')\nexport const Polish = of('pl')\nexport const Swedish = of('sv')\nexport const Norwegian = of('no')\nexport const Danish = of('da')\nexport const Finnish = of('fi')\nexport const Greek = of('el')\nexport const Hebrew = of('he')\nexport const Thai = of('th')\nexport const Vietnamese = of('vi')\nexport const Indonesian = of('id')\nexport const Malay = of('ms')\n"],"mappings":";AACA,OAAO,SAAS;AAKT,IAAM,KAAK,CAAC,UAAgC;AACjD,SAAO;AACT;AAEO,IAAM,SAAS,IAAI,OAAO,EAC9B,KAAK,EACL,YAAY,EACZ,MAAM,cAAc,kDAAkD,EACtE,UAAU,EAAE;AAER,IAAM,aAAa,CAAC,UAAgC;AACzD,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEO,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,aAAa,GAAG,IAAI;AAC1B,IAAM,QAAQ,GAAG,IAAI;AACrB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,WAAW,GAAG,IAAI;AACxB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,QAAQ,GAAG,IAAI;AACrB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,YAAY,GAAG,IAAI;AACzB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,QAAQ,GAAG,IAAI;AACrB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,OAAO,GAAG,IAAI;AACpB,IAAM,aAAa,GAAG,IAAI;AAC1B,IAAM,aAAa,GAAG,IAAI;AAC1B,IAAM,QAAQ,GAAG,IAAI;","names":[]}
1
+ {"version":3,"sources":["../../src/intl/language-code.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { namespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\n// ISO 639 language codes\nexport const Namespace = namespace('language-code')\nexport type LanguageCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<LanguageCode, ErrorEvent> => {\n if (!/^[a-z]{2}$/i.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `CountryCode must be exactly 2 letters.` }))\n }\n\n return success(value.toLowerCase() as LanguageCode)\n}\n\nexport const fromString = (value: string): LanguageCode => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\nexport const English = 'en' as LanguageCode\nexport const Spanish = 'es' as LanguageCode\nexport const French = 'fr' as LanguageCode\nexport const German = 'de' as LanguageCode\nexport const Italian = 'it' as LanguageCode\nexport const Portuguese = 'pt' as LanguageCode\nexport const Dutch = 'nl' as LanguageCode\nexport const Russian = 'ru' as LanguageCode\nexport const Chinese = 'zh' as LanguageCode\nexport const Japanese = 'ja' as LanguageCode\nexport const Korean = 'ko' as LanguageCode\nexport const Arabic = 'ar' as LanguageCode\nexport const Hindi = 'hi' as LanguageCode\nexport const Turkish = 'tr' as LanguageCode\nexport const Polish = 'pl' as LanguageCode\nexport const Swedish = 'sv' as LanguageCode\nexport const Norwegian = 'no' as LanguageCode\nexport const Danish = 'da' as LanguageCode\nexport const Finnish = 'fi' as LanguageCode\nexport const Greek = 'el' as LanguageCode\nexport const Hebrew = 'he' as LanguageCode\nexport const Thai = 'th' as LanguageCode\nexport const Vietnamese = 'vi' as LanguageCode\nexport const Indonesian = 'id' as LanguageCode\nexport const Malay = 'ms' as LanguageCode\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,iBAAiB;AAC1B,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAG7B,IAAM,YAAY,UAAU,eAAe;AAG3C,IAAM,cAAc,CAAC,UAAoD;AAC9E,MAAI,CAAC,cAAc,KAAK,KAAK,GAAG;AAC9B,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,yCAAyC,CAAC,CAAC;AAAA,EACjH;AAEA,SAAO,QAAQ,MAAM,YAAY,CAAiB;AACpD;AAEO,IAAM,aAAa,CAAC,UAAgC;AACzD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAE5D,IAAM,UAAU;AAChB,IAAM,UAAU;AAChB,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,aAAa;AACnB,IAAM,QAAQ;AACd,IAAM,UAAU;AAChB,IAAM,UAAU;AAChB,IAAM,WAAW;AACjB,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,QAAQ;AACd,IAAM,UAAU;AAChB,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,YAAY;AAClB,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,QAAQ;AACd,IAAM,SAAS;AACf,IAAM,OAAO;AACb,IAAM,aAAa;AACnB,IAAM,aAAa;AACnB,IAAM,QAAQ;","names":[]}
@@ -1,12 +1,15 @@
1
- import { TaggedType } from '@bessemer/cornerstone/types';
1
+ import { NominalType } from '@bessemer/cornerstone/types';
2
2
  import Zod from 'zod';
3
3
  import { LanguageCode } from '@bessemer/cornerstone/intl/language-code';
4
4
  import { CountryCode } from '@bessemer/cornerstone/intl/country-code';
5
- export type Locale = TaggedType<string, 'Locale'>;
6
- export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<Locale, string>>;
7
- export declare const of: (value: string) => Locale;
8
- export declare const fromString: (value: string) => Locale;
5
+ import { Result } from '@bessemer/cornerstone/result';
6
+ import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
7
+ export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"locale">;
8
+ export type Locale = NominalType<string, typeof Namespace>;
9
9
  export declare const fromCode: (language: LanguageCode, country?: CountryCode | null) => Locale;
10
+ export declare const parseString: (value: string) => Result<Locale, ErrorEvent>;
11
+ export declare const fromString: (value: string) => Locale;
12
+ export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<Locale, string>>;
10
13
  export declare const parse: (locale: Locale) => [LanguageCode, CountryCode | null];
11
14
  export declare const English: Locale;
12
15
  export declare const Spanish: Locale;
@@ -1 +1 @@
1
- {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAwC,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAC7G,OAAO,EAAE,WAAW,EAAuC,MAAM,yCAAyC,CAAA;AAI1G,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACjD,eAAO,MAAM,MAAM,8DAWf,CAAA;AAEJ,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,KAAG,MAElC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAE1C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,UAAU,YAAY,EAAE,UAAU,WAAW,GAAG,IAAI,KAAG,MAM/E,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,KAAG,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,CAKvE,CAAA;AAED,eAAO,MAAM,OAAO,QAAW,CAAA;AAC/B,eAAO,MAAM,OAAO,QAAW,CAAA;AAC/B,eAAO,MAAM,MAAM,QAAW,CAAA;AAC9B,eAAO,MAAM,MAAM,QAAW,CAAA;AAC9B,eAAO,MAAM,OAAO,QAAW,CAAA;AAC/B,eAAO,MAAM,UAAU,QAAW,CAAA;AAClC,eAAO,MAAM,KAAK,QAAW,CAAA;AAC7B,eAAO,MAAM,OAAO,QAAW,CAAA;AAC/B,eAAO,MAAM,OAAO,QAAW,CAAA;AAC/B,eAAO,MAAM,QAAQ,QAAW,CAAA;AAChC,eAAO,MAAM,MAAM,QAAW,CAAA;AAE9B,eAAO,MAAM,eAAe,QAAc,CAAA;AAC1C,eAAO,MAAM,cAAc,QAAc,CAAA;AACzC,eAAO,MAAM,eAAe,QAAc,CAAA;AAC1C,eAAO,MAAM,iBAAiB,QAAc,CAAA"}
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAwC,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAC7G,OAAO,EAAE,WAAW,EAAuC,MAAM,yCAAyC,CAAA;AAG1G,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,0EAAsB,CAAA;AAC5C,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE1D,eAAO,MAAM,QAAQ,GAAI,UAAU,YAAY,EAAE,UAAU,WAAW,GAAG,IAAI,KAAG,MAM/E,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAUpE,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAE1C,CAAA;AAED,eAAO,MAAM,MAAM,8DAAiD,CAAA;AAEpE,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,KAAG,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,CAKvE,CAAA;AAED,eAAO,MAAM,OAAO,EAAW,MAAM,CAAA;AACrC,eAAO,MAAM,OAAO,EAAW,MAAM,CAAA;AACrC,eAAO,MAAM,MAAM,EAAW,MAAM,CAAA;AACpC,eAAO,MAAM,MAAM,EAAW,MAAM,CAAA;AACpC,eAAO,MAAM,OAAO,EAAW,MAAM,CAAA;AACrC,eAAO,MAAM,UAAU,EAAW,MAAM,CAAA;AACxC,eAAO,MAAM,KAAK,EAAW,MAAM,CAAA;AACnC,eAAO,MAAM,OAAO,EAAW,MAAM,CAAA;AACrC,eAAO,MAAM,OAAO,EAAW,MAAM,CAAA;AACrC,eAAO,MAAM,QAAQ,EAAW,MAAM,CAAA;AACtC,eAAO,MAAM,MAAM,EAAW,MAAM,CAAA;AAEpC,eAAO,MAAM,eAAe,EAAc,MAAM,CAAA;AAChD,eAAO,MAAM,cAAc,EAAc,MAAM,CAAA;AAC/C,eAAO,MAAM,eAAe,EAAc,MAAM,CAAA;AAChD,eAAO,MAAM,iBAAiB,EAAc,MAAM,CAAA"}
@@ -4,47 +4,53 @@ import { fromString as languageCodeFromString } from "@bessemer/cornerstone/intl
4
4
  import { fromString as countryCodeFromString } from "@bessemer/cornerstone/intl/country-code";
5
5
  import { isPresent } from "@bessemer/cornerstone/object";
6
6
  import { Assertions } from "@bessemer/cornerstone";
7
- var Schema = Zod.string().trim().toLowerCase().regex(/^[a-z]{2}(-[a-z]{2})?$/, 'Locale must be in format "en" or "en-US"').transform((value) => {
7
+ import { failure, success } from "@bessemer/cornerstone/result";
8
+ import { namespace } from "@bessemer/cornerstone/resource-key";
9
+ import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
10
+ import { structuredTransform } from "@bessemer/cornerstone/zod-util";
11
+ var Namespace = namespace("locale");
12
+ var fromCode = (language, country) => {
13
+ if (isPresent(country)) {
14
+ return `${language}-${country}`;
15
+ } else {
16
+ return `${language}`;
17
+ }
18
+ };
19
+ var parseString = (value) => {
20
+ if (!/^[a-z]{2}(-[a-z]{2})?$/i.test(value)) {
21
+ return failure(invalidValue(value, { namespace: Namespace, message: `Locale must be in format "en" or "en-US".` }));
22
+ }
8
23
  const parts = value.split("-");
9
24
  Assertions.assertPresent(parts[0]);
10
25
  const languageCode = languageCodeFromString(parts[0]);
11
26
  const countryCode = isPresent(parts[1]) ? countryCodeFromString(parts[1]) : null;
12
- return fromCode(languageCode, countryCode);
13
- });
14
- var of = (value) => {
15
- return value;
27
+ return success(fromCode(languageCode, countryCode));
16
28
  };
17
29
  var fromString = (value) => {
18
- return Schema.parse(value);
19
- };
20
- var fromCode = (language, country) => {
21
- if (isPresent(country)) {
22
- return of(`${language}-${country}`);
23
- } else {
24
- return of(language);
25
- }
30
+ return unpackResult(parseString(value));
26
31
  };
32
+ var Schema = structuredTransform(Zod.string(), parseString);
27
33
  var parse = (locale) => {
28
34
  const parts = locale.split("-");
29
35
  const languageCode = parts[0];
30
36
  const countryCode = isPresent(parts[1]) ? parts[1] : null;
31
37
  return [languageCode, countryCode];
32
38
  };
33
- var English = of("en");
34
- var Spanish = of("es");
35
- var French = of("fr");
36
- var German = of("de");
37
- var Italian = of("it");
38
- var Portuguese = of("pt");
39
- var Dutch = of("nl");
40
- var Russian = of("ru");
41
- var Chinese = of("zh");
42
- var Japanese = of("ja");
43
- var Korean = of("ko");
44
- var AmericanEnglish = of("en-US");
45
- var BritishEnglish = of("en-GB");
46
- var CanadianEnglish = of("en-CA");
47
- var AustralianEnglish = of("en-AU");
39
+ var English = "en";
40
+ var Spanish = "es";
41
+ var French = "fr";
42
+ var German = "de";
43
+ var Italian = "it";
44
+ var Portuguese = "pt";
45
+ var Dutch = "nl";
46
+ var Russian = "ru";
47
+ var Chinese = "zh";
48
+ var Japanese = "ja";
49
+ var Korean = "ko";
50
+ var AmericanEnglish = "en-US";
51
+ var BritishEnglish = "en-GB";
52
+ var CanadianEnglish = "en-CA";
53
+ var AustralianEnglish = "en-AU";
48
54
  export {
49
55
  AmericanEnglish,
50
56
  AustralianEnglish,
@@ -58,13 +64,14 @@ export {
58
64
  Italian,
59
65
  Japanese,
60
66
  Korean,
67
+ Namespace,
61
68
  Portuguese,
62
69
  Russian,
63
70
  Schema,
64
71
  Spanish,
65
72
  fromCode,
66
73
  fromString,
67
- of,
68
- parse
74
+ parse,
75
+ parseString
69
76
  };
70
77
  //# sourceMappingURL=locale.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/intl/locale.ts"],"sourcesContent":["import { TaggedType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { fromString as languageCodeFromString, LanguageCode } from '@bessemer/cornerstone/intl/language-code'\nimport { CountryCode, fromString as countryCodeFromString } from '@bessemer/cornerstone/intl/country-code'\nimport { isPresent } from '@bessemer/cornerstone/object'\nimport { Assertions } from '@bessemer/cornerstone'\n\nexport type Locale = TaggedType<string, 'Locale'>\nexport const Schema = Zod.string()\n .trim()\n .toLowerCase()\n .regex(/^[a-z]{2}(-[a-z]{2})?$/, 'Locale must be in format \"en\" or \"en-US\"')\n .transform((value) => {\n const parts = value.split('-')\n Assertions.assertPresent(parts[0])\n const languageCode = languageCodeFromString(parts[0])\n const countryCode = isPresent(parts[1]) ? countryCodeFromString(parts[1]) : null\n\n return fromCode(languageCode, countryCode)\n })\n\nexport const of = (value: string): Locale => {\n return value as Locale\n}\n\nexport const fromString = (value: string): Locale => {\n return Schema.parse(value)\n}\n\nexport const fromCode = (language: LanguageCode, country?: CountryCode | null): Locale => {\n if (isPresent(country)) {\n return of(`${language}-${country}`)\n } else {\n return of(language)\n }\n}\n\nexport const parse = (locale: Locale): [LanguageCode, CountryCode | null] => {\n const parts = locale.split('-')\n const languageCode = parts[0] as LanguageCode\n const countryCode = isPresent(parts[1]) ? (parts[1] as CountryCode) : null\n return [languageCode, countryCode]\n}\n\nexport const English = of('en')\nexport const Spanish = of('es')\nexport const French = of('fr')\nexport const German = of('de')\nexport const Italian = of('it')\nexport const Portuguese = of('pt')\nexport const Dutch = of('nl')\nexport const Russian = of('ru')\nexport const Chinese = of('zh')\nexport const Japanese = of('ja')\nexport const Korean = of('ko')\n\nexport const AmericanEnglish = of('en-US')\nexport const BritishEnglish = of('en-GB')\nexport const CanadianEnglish = of('en-CA')\nexport const AustralianEnglish = of('en-AU')\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,cAAc,8BAA4C;AACnE,SAAsB,cAAc,6BAA6B;AACjE,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAGpB,IAAM,SAAS,IAAI,OAAO,EAC9B,KAAK,EACL,YAAY,EACZ,MAAM,0BAA0B,0CAA0C,EAC1E,UAAU,CAAC,UAAU;AACpB,QAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,aAAW,cAAc,MAAM,CAAC,CAAC;AACjC,QAAM,eAAe,uBAAuB,MAAM,CAAC,CAAC;AACpD,QAAM,cAAc,UAAU,MAAM,CAAC,CAAC,IAAI,sBAAsB,MAAM,CAAC,CAAC,IAAI;AAE5E,SAAO,SAAS,cAAc,WAAW;AAC3C,CAAC;AAEI,IAAM,KAAK,CAAC,UAA0B;AAC3C,SAAO;AACT;AAEO,IAAM,aAAa,CAAC,UAA0B;AACnD,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEO,IAAM,WAAW,CAAC,UAAwB,YAAyC;AACxF,MAAI,UAAU,OAAO,GAAG;AACtB,WAAO,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE;AAAA,EACpC,OAAO;AACL,WAAO,GAAG,QAAQ;AAAA,EACpB;AACF;AAEO,IAAM,QAAQ,CAAC,WAAuD;AAC3E,QAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,QAAM,eAAe,MAAM,CAAC;AAC5B,QAAM,cAAc,UAAU,MAAM,CAAC,CAAC,IAAK,MAAM,CAAC,IAAoB;AACtE,SAAO,CAAC,cAAc,WAAW;AACnC;AAEO,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,SAAS,GAAG,IAAI;AACtB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,aAAa,GAAG,IAAI;AAC1B,IAAM,QAAQ,GAAG,IAAI;AACrB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,UAAU,GAAG,IAAI;AACvB,IAAM,WAAW,GAAG,IAAI;AACxB,IAAM,SAAS,GAAG,IAAI;AAEtB,IAAM,kBAAkB,GAAG,OAAO;AAClC,IAAM,iBAAiB,GAAG,OAAO;AACjC,IAAM,kBAAkB,GAAG,OAAO;AAClC,IAAM,oBAAoB,GAAG,OAAO;","names":[]}
1
+ {"version":3,"sources":["../../src/intl/locale.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { fromString as languageCodeFromString, LanguageCode } from '@bessemer/cornerstone/intl/language-code'\nimport { CountryCode, fromString as countryCodeFromString } from '@bessemer/cornerstone/intl/country-code'\nimport { isPresent } from '@bessemer/cornerstone/object'\nimport { Assertions } from '@bessemer/cornerstone'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { namespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = namespace('locale')\nexport type Locale = NominalType<string, typeof Namespace>\n\nexport const fromCode = (language: LanguageCode, country?: CountryCode | null): Locale => {\n if (isPresent(country)) {\n return `${language}-${country}` as Locale\n } else {\n return `${language}` as Locale\n }\n}\n\nexport const parseString = (value: string): Result<Locale, ErrorEvent> => {\n if (!/^[a-z]{2}(-[a-z]{2})?$/i.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Locale must be in format \"en\" or \"en-US\".` }))\n }\n\n const parts = value.split('-')\n Assertions.assertPresent(parts[0])\n const languageCode = languageCodeFromString(parts[0])\n const countryCode = isPresent(parts[1]) ? countryCodeFromString(parts[1]) : null\n return success(fromCode(languageCode, countryCode))\n}\n\nexport const fromString = (value: string): Locale => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\nexport const parse = (locale: Locale): [LanguageCode, CountryCode | null] => {\n const parts = locale.split('-')\n const languageCode = parts[0] as LanguageCode\n const countryCode = isPresent(parts[1]) ? (parts[1] as CountryCode) : null\n return [languageCode, countryCode]\n}\n\nexport const English = 'en' as Locale\nexport const Spanish = 'es' as Locale\nexport const French = 'fr' as Locale\nexport const German = 'de' as Locale\nexport const Italian = 'it' as Locale\nexport const Portuguese = 'pt' as Locale\nexport const Dutch = 'nl' as Locale\nexport const Russian = 'ru' as Locale\nexport const Chinese = 'zh' as Locale\nexport const Japanese = 'ja' as Locale\nexport const Korean = 'ko' as Locale\n\nexport const AmericanEnglish = 'en-US' as Locale\nexport const BritishEnglish = 'en-GB' as Locale\nexport const CanadianEnglish = 'en-CA' as Locale\nexport const AustralianEnglish = 'en-AU' as Locale\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,cAAc,8BAA4C;AACnE,SAAsB,cAAc,6BAA6B;AACjE,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,SAAiB,eAAe;AACzC,SAAS,iBAAiB;AAC1B,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,UAAU,QAAQ;AAGpC,IAAM,WAAW,CAAC,UAAwB,YAAyC;AACxF,MAAI,UAAU,OAAO,GAAG;AACtB,WAAO,GAAG,QAAQ,IAAI,OAAO;AAAA,EAC/B,OAAO;AACL,WAAO,GAAG,QAAQ;AAAA,EACpB;AACF;AAEO,IAAM,cAAc,CAAC,UAA8C;AACxE,MAAI,CAAC,0BAA0B,KAAK,KAAK,GAAG;AAC1C,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,4CAA4C,CAAC,CAAC;AAAA,EACpH;AAEA,QAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,aAAW,cAAc,MAAM,CAAC,CAAC;AACjC,QAAM,eAAe,uBAAuB,MAAM,CAAC,CAAC;AACpD,QAAM,cAAc,UAAU,MAAM,CAAC,CAAC,IAAI,sBAAsB,MAAM,CAAC,CAAC,IAAI;AAC5E,SAAO,QAAQ,SAAS,cAAc,WAAW,CAAC;AACpD;AAEO,IAAM,aAAa,CAAC,UAA0B;AACnD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAE5D,IAAM,QAAQ,CAAC,WAAuD;AAC3E,QAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,QAAM,eAAe,MAAM,CAAC;AAC5B,QAAM,cAAc,UAAU,MAAM,CAAC,CAAC,IAAK,MAAM,CAAC,IAAoB;AACtE,SAAO,CAAC,cAAc,WAAW;AACnC;AAEO,IAAM,UAAU;AAChB,IAAM,UAAU;AAChB,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,UAAU;AAChB,IAAM,aAAa;AACnB,IAAM,QAAQ;AACd,IAAM,UAAU;AAChB,IAAM,UAAU;AAChB,IAAM,WAAW;AACjB,IAAM,SAAS;AAEf,IAAM,kBAAkB;AACxB,IAAM,iBAAiB;AACvB,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;","names":[]}
package/dist/math.d.ts CHANGED
@@ -20,4 +20,6 @@ export declare const roundUp: (value: number, scale: number) => number;
20
20
  export declare const roundHalfEven: (value: number, scale: number) => number;
21
21
  export declare const random: (min: number, max: number) => number;
22
22
  export declare const greatestCommonFactor: (first: number, second: number) => number;
23
+ export declare const sum: (...numbers: Array<number>) => number;
24
+ export declare const subtract: (...numbers: Array<number>) => number;
23
25
  //# sourceMappingURL=math.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,MAMnD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,YAAgB,CAAA;AAEhD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,YAAgB,CAAA;AAE/C,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,eAAc,YAAmC,KAAG,MAWvG,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAG3D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGrD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MA0E5D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAEjD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAEpE,CAAA"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,MAMnD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,YAAgB,CAAA;AAEhD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,YAAgB,CAAA;AAE/C,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,eAAc,YAAmC,KAAG,MAWvG,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAG3D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGrD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MA0E5D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAEjD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAEpE,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAMpD,CAAA"}
package/dist/math.js CHANGED
@@ -111,6 +111,15 @@ var random = (min, max) => {
111
111
  var greatestCommonFactor = (first, second) => {
112
112
  return second === 0 ? first : greatestCommonFactor(second, first % second);
113
113
  };
114
+ var sum = (...numbers) => {
115
+ return numbers.reduce((first, second) => first + second, 0);
116
+ };
117
+ var subtract = (...numbers) => {
118
+ if (numbers.length === 0) {
119
+ return 0;
120
+ }
121
+ return numbers.slice(1).reduce((result, current) => result - current, numbers[0]);
122
+ };
114
123
  export {
115
124
  RoundingMode,
116
125
  greatestCommonFactor,
@@ -122,6 +131,8 @@ export {
122
131
  roundDown,
123
132
  roundHalfEven,
124
133
  roundNearest,
125
- roundUp
134
+ roundUp,
135
+ subtract,
136
+ sum
126
137
  };
127
138
  //# sourceMappingURL=math.js.map
package/dist/math.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/math.ts"],"sourcesContent":["export const isNumber = (value?: unknown): value is number => {\n if (value === null || value === undefined) {\n return false\n }\n\n return typeof value === 'number' && !isNaN(value)\n}\n\nexport const isEven = (d: number) => d % 2 === 0\n\nexport const isOdd = (d: number) => d % 2 !== 0\n\nexport enum RoundingMode {\n Nearest = 'Nearest',\n Down = 'Down',\n Up = 'Up',\n HalfEven = 'HalfEven',\n}\n\nexport const round = (value: number, scale: number, roundingMode: RoundingMode = RoundingMode.Nearest): number => {\n switch (roundingMode) {\n case RoundingMode.Nearest:\n return roundNearest(value, scale)\n case RoundingMode.Down:\n return roundDown(value, scale)\n case RoundingMode.Up:\n return roundUp(value, scale)\n case RoundingMode.HalfEven:\n return roundHalfEven(value, scale)\n }\n}\n\nexport const roundNearest = (value: number, scale: number): number => {\n const factor = Math.pow(10, scale)\n return Math.round((value + Number.EPSILON) * factor) / factor\n}\n\nexport const roundDown = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.floor((value + +Number.EPSILON) * factor) / factor\n}\n\nexport const roundUp = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.ceil((value + +Number.EPSILON) * factor) / factor\n}\n\n/**\n * Round Half-Even (Banker's Rounding) Utility\n * https://en.wikipedia.org/wiki/Rounding#Round_half_to_even\n *\n * Mostly copied from this Github: https://github.com/schowdhuri/round-half-even\n */\nexport const roundHalfEven = (value: number, scale: number): number => {\n if (value < 0) {\n return -roundHalfEven(-value, scale)\n }\n if (scale === 0) {\n return roundHalfEven(value / 10, 1) * 10\n }\n\n const MAX_DECIMALS_ALLOWED = 20\n if (scale > MAX_DECIMALS_ALLOWED) {\n throw new Error(`Cannot handle more than ${MAX_DECIMALS_ALLOWED} decimals`)\n }\n\n // convert to string; remove trailing 0s\n const isExponentialForm = value.toString().includes('e') || value.toString().includes('E')\n const strNum = (isExponentialForm ? value.toFixed(MAX_DECIMALS_ALLOWED).toString() : value.toString()).replace(/0+$/, '')\n const decimalIndex = strNum.indexOf('.')\n if (decimalIndex < 0) {\n // no fractional part\n return value\n }\n let intPart: string = strNum.slice(0, decimalIndex)\n if (intPart.length == 0) {\n intPart = '0'\n }\n let fractPart = strNum.slice(decimalIndex + 1) // extract fractional part\n if (fractPart.length < scale) {\n return value\n }\n const followingDig = parseInt(fractPart[scale]!, 10)\n if (followingDig < 5) {\n // rounding not required\n const newFractPart = fractPart.slice(0, scale)\n return parseFloat(`${intPart}.${newFractPart}`)\n }\n if (followingDig === 5) {\n const newFractPart = fractPart.slice(0, scale + 1)\n if (parseInt(fractPart.slice(scale + 1), 10) > 0) {\n fractPart = `${newFractPart}9`\n } else {\n fractPart = newFractPart\n }\n }\n\n let nextDig = parseInt(fractPart[fractPart.length - 1]!, 10)\n let carriedOver = 0\n for (let ptr = fractPart.length - 1; ptr >= scale; ptr--) {\n let dig = parseInt(fractPart[ptr - 1]!, 10) + carriedOver\n if (nextDig > 5 || (nextDig == 5 && !isEven(dig))) {\n ++dig\n }\n if (dig > 9) {\n dig -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n nextDig = dig\n }\n\n let newFractPart = ''\n for (let ptr = scale - 2; ptr >= 0; ptr--) {\n let d = parseInt(fractPart[ptr]!, 10) + carriedOver\n if (d > 9) {\n d -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n newFractPart = `${d}${newFractPart}`\n }\n\n const resolvedIntPart = parseInt(intPart, 10) + carriedOver\n return parseFloat(`${resolvedIntPart}.${newFractPart}${nextDig}`)\n}\n\nexport const random = (min: number, max: number): number => {\n return Math.random() * (max - min) + min\n}\n\nexport const greatestCommonFactor = (first: number, second: number): number => {\n return second === 0 ? first : greatestCommonFactor(second, first % second)\n}\n"],"mappings":"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","names":["RoundingMode","newFractPart"]}
1
+ {"version":3,"sources":["../src/math.ts"],"sourcesContent":["export const isNumber = (value?: unknown): value is number => {\n if (value === null || value === undefined) {\n return false\n }\n\n return typeof value === 'number' && !isNaN(value)\n}\n\nexport const isEven = (d: number) => d % 2 === 0\n\nexport const isOdd = (d: number) => d % 2 !== 0\n\nexport enum RoundingMode {\n Nearest = 'Nearest',\n Down = 'Down',\n Up = 'Up',\n HalfEven = 'HalfEven',\n}\n\nexport const round = (value: number, scale: number, roundingMode: RoundingMode = RoundingMode.Nearest): number => {\n switch (roundingMode) {\n case RoundingMode.Nearest:\n return roundNearest(value, scale)\n case RoundingMode.Down:\n return roundDown(value, scale)\n case RoundingMode.Up:\n return roundUp(value, scale)\n case RoundingMode.HalfEven:\n return roundHalfEven(value, scale)\n }\n}\n\nexport const roundNearest = (value: number, scale: number): number => {\n const factor = Math.pow(10, scale)\n return Math.round((value + Number.EPSILON) * factor) / factor\n}\n\nexport const roundDown = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.floor((value + +Number.EPSILON) * factor) / factor\n}\n\nexport const roundUp = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.ceil((value + +Number.EPSILON) * factor) / factor\n}\n\n/**\n * Round Half-Even (Banker's Rounding) Utility\n * https://en.wikipedia.org/wiki/Rounding#Round_half_to_even\n *\n * Mostly copied from this Github: https://github.com/schowdhuri/round-half-even\n */\nexport const roundHalfEven = (value: number, scale: number): number => {\n if (value < 0) {\n return -roundHalfEven(-value, scale)\n }\n if (scale === 0) {\n return roundHalfEven(value / 10, 1) * 10\n }\n\n const MAX_DECIMALS_ALLOWED = 20\n if (scale > MAX_DECIMALS_ALLOWED) {\n throw new Error(`Cannot handle more than ${MAX_DECIMALS_ALLOWED} decimals`)\n }\n\n // convert to string; remove trailing 0s\n const isExponentialForm = value.toString().includes('e') || value.toString().includes('E')\n const strNum = (isExponentialForm ? value.toFixed(MAX_DECIMALS_ALLOWED).toString() : value.toString()).replace(/0+$/, '')\n const decimalIndex = strNum.indexOf('.')\n if (decimalIndex < 0) {\n // no fractional part\n return value\n }\n let intPart: string = strNum.slice(0, decimalIndex)\n if (intPart.length == 0) {\n intPart = '0'\n }\n let fractPart = strNum.slice(decimalIndex + 1) // extract fractional part\n if (fractPart.length < scale) {\n return value\n }\n const followingDig = parseInt(fractPart[scale]!, 10)\n if (followingDig < 5) {\n // rounding not required\n const newFractPart = fractPart.slice(0, scale)\n return parseFloat(`${intPart}.${newFractPart}`)\n }\n if (followingDig === 5) {\n const newFractPart = fractPart.slice(0, scale + 1)\n if (parseInt(fractPart.slice(scale + 1), 10) > 0) {\n fractPart = `${newFractPart}9`\n } else {\n fractPart = newFractPart\n }\n }\n\n let nextDig = parseInt(fractPart[fractPart.length - 1]!, 10)\n let carriedOver = 0\n for (let ptr = fractPart.length - 1; ptr >= scale; ptr--) {\n let dig = parseInt(fractPart[ptr - 1]!, 10) + carriedOver\n if (nextDig > 5 || (nextDig == 5 && !isEven(dig))) {\n ++dig\n }\n if (dig > 9) {\n dig -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n nextDig = dig\n }\n\n let newFractPart = ''\n for (let ptr = scale - 2; ptr >= 0; ptr--) {\n let d = parseInt(fractPart[ptr]!, 10) + carriedOver\n if (d > 9) {\n d -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n newFractPart = `${d}${newFractPart}`\n }\n\n const resolvedIntPart = parseInt(intPart, 10) + carriedOver\n return parseFloat(`${resolvedIntPart}.${newFractPart}${nextDig}`)\n}\n\nexport const random = (min: number, max: number): number => {\n return Math.random() * (max - min) + min\n}\n\nexport const greatestCommonFactor = (first: number, second: number): number => {\n return second === 0 ? first : greatestCommonFactor(second, first % second)\n}\n\nexport const sum = (...numbers: Array<number>): number => {\n return numbers.reduce((first, second) => first + second, 0)\n}\n\nexport const subtract = (...numbers: Array<number>): number => {\n if (numbers.length === 0) {\n return 0\n }\n\n return numbers.slice(1).reduce((result, current) => result - current, numbers[0]!)\n}\n"],"mappings":"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","names":["RoundingMode","newFractPart"]}
@@ -1,9 +1,12 @@
1
- import { TaggedType } from '@bessemer/cornerstone/types';
1
+ import { NominalType } from '@bessemer/cornerstone/types';
2
2
  import Zod from 'zod';
3
- export type MimeLiteral = TaggedType<string, 'MimeType'>;
4
- export declare const of: (value: string) => MimeLiteral;
5
- export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<MimeLiteral, string>>;
3
+ import { Result } from '@bessemer/cornerstone/result';
4
+ import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
+ export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"mime-literal">;
6
+ export type MimeLiteral = NominalType<string, typeof Namespace>;
7
+ export declare const parseString: (value: string) => Result<MimeLiteral, ErrorEvent>;
6
8
  export declare const fromString: (value: string) => MimeLiteral;
9
+ export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<MimeLiteral, string>>;
7
10
  export declare const Jpeg: MimeLiteral;
8
11
  export declare const Png: MimeLiteral;
9
12
  export declare const Gif: MimeLiteral;
@@ -1 +1 @@
1
- {"version":3,"file":"mime-type.d.ts","sourceRoot":"","sources":["../src/mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAExD,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,KAAG,WAElC,CAAA;AAED,eAAO,MAAM,MAAM,mEAEH,CAAA;AAEhB,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,WAE1C,CAAA;AAGD,eAAO,MAAM,IAAI,aAAmB,CAAA;AACpC,eAAO,MAAM,GAAG,aAAkB,CAAA;AAClC,eAAO,MAAM,GAAG,aAAkB,CAAA;AAClC,eAAO,MAAM,IAAI,aAAmB,CAAA;AACpC,eAAO,MAAM,GAAG,aAAsB,CAAA;AACtC,eAAO,MAAM,GAAG,aAAqB,CAAA;AACrC,eAAO,MAAM,IAAI,aAAmB,CAAA;AACpC,eAAO,MAAM,UAAU,eAAyC,CAAA;AAGhE,eAAO,MAAM,GAAG,aAAkB,CAAA;AAClC,eAAO,MAAM,IAAI,aAAmB,CAAA;AACpC,eAAO,MAAM,QAAQ,aAAkB,CAAA;AACvC,eAAO,MAAM,UAAU,eAAwB,CAAA;AAG/C,eAAO,MAAM,GAAG,aAAmB,CAAA;AACnC,eAAO,MAAM,QAAQ,aAAkB,CAAA;AACvC,eAAO,MAAM,GAAG,aAAkB,CAAA;AAClC,eAAO,MAAM,UAAU,eAAuB,CAAA;AAG9C,eAAO,MAAM,GAAG,aAAwB,CAAA;AACxC,eAAO,MAAM,IAAI,aAAyB,CAAA;AAC1C,eAAO,MAAM,GAAG,aAAiB,CAAA;AACjC,eAAO,MAAM,SAAS,aAAmB,CAAA;AACzC,eAAO,MAAM,IAAI,aAAkB,CAAA;AACnC,eAAO,MAAM,GAAG,aAAwB,CAAA;AACxC,eAAO,MAAM,aAAa,eAAyC,CAAA;AAGnE,eAAO,MAAM,IAAI,aAAkB,CAAA;AACnC,eAAO,MAAM,KAAK,aAAmB,CAAA;AACrC,eAAO,MAAM,GAAG,aAAiB,CAAA;AACjC,eAAO,MAAM,GAAG,aAAiB,CAAA;AACjC,eAAO,MAAM,SAAS,eAA0B,CAAA;AAGhD,eAAO,MAAM,GAAG,aAAwB,CAAA;AACxC,eAAO,MAAM,IAAI,aAAyB,CAAA;AAC1C,eAAO,MAAM,GAAG,aAA0B,CAAA;AAC1C,eAAO,MAAM,MAAM,aAA6B,CAAA;AAChD,eAAO,MAAM,gBAAgB,eAA2B,CAAA;AAGxD,eAAO,MAAM,QAAQ,aAA4B,CAAA;AACjD,eAAO,MAAM,UAAU,aAA+B,CAAA;AACtD,eAAO,MAAM,WAAW,aAAiC,CAAA"}
1
+ {"version":3,"file":"mime-type.d.ts","sourceRoot":"","sources":["../src/mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,gFAA4B,CAAA;AAClD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAMzE,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,WAE1C,CAAA;AAED,eAAO,MAAM,MAAM,mEAAiD,CAAA;AAGpE,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAsB,WAAW,CAAA;AACjD,eAAO,MAAM,GAAG,EAAqB,WAAW,CAAA;AAChD,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,UAAU,eAAyC,CAAA;AAGhE,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,UAAU,eAAwB,CAAA;AAG/C,eAAO,MAAM,GAAG,EAAmB,WAAW,CAAA;AAC9C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,UAAU,eAAuB,CAAA;AAG9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,EAAmB,WAAW,CAAA;AACpD,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,aAAa,eAAyC,CAAA;AAGnE,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,KAAK,EAAmB,WAAW,CAAA;AAChD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,eAA0B,CAAA;AAGhD,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAA0B,WAAW,CAAA;AACrD,eAAO,MAAM,MAAM,EAA6B,WAAW,CAAA;AAC3D,eAAO,MAAM,gBAAgB,eAA2B,CAAA;AAGxD,eAAO,MAAM,QAAQ,EAA4B,WAAW,CAAA;AAC5D,eAAO,MAAM,UAAU,EAA+B,WAAW,CAAA;AACjE,eAAO,MAAM,WAAW,EAAiC,WAAW,CAAA"}
package/dist/mime-type.js CHANGED
@@ -1,48 +1,56 @@
1
1
  // src/mime-type.ts
2
2
  import Zod from "zod";
3
- var of = (value) => {
4
- return value;
3
+ import { failure, success } from "@bessemer/cornerstone/result";
4
+ import { namespace } from "@bessemer/cornerstone/resource-key";
5
+ import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
6
+ import { structuredTransform } from "@bessemer/cornerstone/zod-util";
7
+ var Namespace = namespace("mime-literal");
8
+ var parseString = (value) => {
9
+ if (!/^[\w-]+\/[\w.+-]+$/.test(value)) {
10
+ return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }));
11
+ }
12
+ return success(value);
5
13
  };
6
- var Schema = Zod.string().regex(/^[\w-]+\/[\w.+-]+$/, "Invalid MIME type format").transform(of);
7
14
  var fromString = (value) => {
8
- return Schema.parse(value);
15
+ return unpackResult(parseString(value));
9
16
  };
10
- var Jpeg = of("image/jpeg");
11
- var Png = of("image/png");
12
- var Gif = of("image/gif");
13
- var Webp = of("image/webp");
14
- var Svg = of("image/svg+xml");
15
- var Ico = of("image/x-icon");
16
- var Avif = of("image/avif");
17
+ var Schema = structuredTransform(Zod.string(), parseString);
18
+ var Jpeg = "image/jpeg";
19
+ var Png = "image/png";
20
+ var Gif = "image/gif";
21
+ var Webp = "image/webp";
22
+ var Svg = "image/svg+xml";
23
+ var Ico = "image/x-icon";
24
+ var Avif = "image/avif";
17
25
  var ImageTypes = [Jpeg, Png, Gif, Webp, Svg, Ico, Avif];
18
- var Mp4 = of("video/mp4");
19
- var Webm = of("video/webm");
20
- var OggVideo = of("video/ogg");
26
+ var Mp4 = "video/mp4";
27
+ var Webm = "video/webm";
28
+ var OggVideo = "video/ogg";
21
29
  var VideoTypes = [Mp4, Webm, OggVideo];
22
- var Mp3 = of("audio/mpeg");
23
- var OggAudio = of("audio/ogg");
24
- var Wav = of("audio/wav");
30
+ var Mp3 = "audio/mpeg";
31
+ var OggAudio = "audio/ogg";
32
+ var Wav = "audio/wav";
25
33
  var AudioTypes = [Mp3, OggAudio, Wav];
26
- var Pdf = of("application/pdf");
27
- var Json = of("application/json");
28
- var Csv = of("text/csv");
29
- var PlainText = of("text/plain");
30
- var Html = of("text/html");
31
- var Xml = of("application/xml");
34
+ var Pdf = "application/pdf";
35
+ var Json = "application/json";
36
+ var Csv = "text/csv";
37
+ var PlainText = "text/plain";
38
+ var Html = "text/html";
39
+ var Xml = "application/xml";
32
40
  var DocumentTypes = [Pdf, Json, Csv, PlainText, Html, Xml];
33
- var Woff = of("font/woff");
34
- var Woff2 = of("font/woff2");
35
- var Ttf = of("font/ttf");
36
- var Otf = of("font/otf");
41
+ var Woff = "font/woff";
42
+ var Woff2 = "font/woff2";
43
+ var Ttf = "font/ttf";
44
+ var Otf = "font/otf";
37
45
  var FontTypes = [Woff, Woff2, Ttf, Otf];
38
- var Zip = of("application/zip");
39
- var Gzip = of("application/gzip");
40
- var Tar = of("application/x-tar");
41
- var Brotli = of("application/x-brotli");
46
+ var Zip = "application/zip";
47
+ var Gzip = "application/gzip";
48
+ var Tar = "application/x-tar";
49
+ var Brotli = "application/x-brotli";
42
50
  var CompressionTypes = [Zip, Gzip, Tar, Brotli];
43
- var FormData = of("multipart/form-data");
44
- var Javascript = of("application/javascript");
45
- var OctetStream = of("application/octet-stream");
51
+ var FormData = "multipart/form-data";
52
+ var Javascript = "application/javascript";
53
+ var OctetStream = "application/octet-stream";
46
54
  export {
47
55
  AudioTypes,
48
56
  Avif,
@@ -62,6 +70,7 @@ export {
62
70
  Json,
63
71
  Mp3,
64
72
  Mp4,
73
+ Namespace,
65
74
  OctetStream,
66
75
  OggAudio,
67
76
  OggVideo,
@@ -82,6 +91,6 @@ export {
82
91
  Xml,
83
92
  Zip,
84
93
  fromString,
85
- of
94
+ parseString
86
95
  };
87
96
  //# sourceMappingURL=mime-type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mime-type.ts"],"sourcesContent":["import { TaggedType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\n\nexport type MimeLiteral = TaggedType<string, 'MimeType'>\n\nexport const of = (value: string): MimeLiteral => {\n return value as MimeLiteral\n}\n\nexport const Schema = Zod.string()\n .regex(/^[\\w-]+\\/[\\w.+-]+$/, 'Invalid MIME type format')\n .transform(of)\n\nexport const fromString = (value: string): MimeLiteral => {\n return Schema.parse(value)\n}\n\n// Images\nexport const Jpeg = of('image/jpeg')\nexport const Png = of('image/png')\nexport const Gif = of('image/gif')\nexport const Webp = of('image/webp')\nexport const Svg = of('image/svg+xml')\nexport const Ico = of('image/x-icon')\nexport const Avif = of('image/avif')\nexport const ImageTypes = [Jpeg, Png, Gif, Webp, Svg, Ico, Avif]\n\n// Video\nexport const Mp4 = of('video/mp4')\nexport const Webm = of('video/webm')\nexport const OggVideo = of('video/ogg')\nexport const VideoTypes = [Mp4, Webm, OggVideo]\n\n// Audio\nexport const Mp3 = of('audio/mpeg')\nexport const OggAudio = of('audio/ogg')\nexport const Wav = of('audio/wav')\nexport const AudioTypes = [Mp3, OggAudio, Wav]\n\n// Documents\nexport const Pdf = of('application/pdf')\nexport const Json = of('application/json')\nexport const Csv = of('text/csv')\nexport const PlainText = of('text/plain')\nexport const Html = of('text/html')\nexport const Xml = of('application/xml')\nexport const DocumentTypes = [Pdf, Json, Csv, PlainText, Html, Xml]\n\n// Fonts\nexport const Woff = of('font/woff')\nexport const Woff2 = of('font/woff2')\nexport const Ttf = of('font/ttf')\nexport const Otf = of('font/otf')\nexport const FontTypes = [Woff, Woff2, Ttf, Otf]\n\n// Compression\nexport const Zip = of('application/zip')\nexport const Gzip = of('application/gzip')\nexport const Tar = of('application/x-tar')\nexport const Brotli = of('application/x-brotli')\nexport const CompressionTypes = [Zip, Gzip, Tar, Brotli]\n\n// Misc\nexport const FormData = of('multipart/form-data')\nexport const Javascript = of('application/javascript')\nexport const OctetStream = of('application/octet-stream')\n"],"mappings":";AACA,OAAO,SAAS;AAIT,IAAM,KAAK,CAAC,UAA+B;AAChD,SAAO;AACT;AAEO,IAAM,SAAS,IAAI,OAAO,EAC9B,MAAM,sBAAsB,0BAA0B,EACtD,UAAU,EAAE;AAER,IAAM,aAAa,CAAC,UAA+B;AACxD,SAAO,OAAO,MAAM,KAAK;AAC3B;AAGO,IAAM,OAAO,GAAG,YAAY;AAC5B,IAAM,MAAM,GAAG,WAAW;AAC1B,IAAM,MAAM,GAAG,WAAW;AAC1B,IAAM,OAAO,GAAG,YAAY;AAC5B,IAAM,MAAM,GAAG,eAAe;AAC9B,IAAM,MAAM,GAAG,cAAc;AAC7B,IAAM,OAAO,GAAG,YAAY;AAC5B,IAAM,aAAa,CAAC,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI;AAGxD,IAAM,MAAM,GAAG,WAAW;AAC1B,IAAM,OAAO,GAAG,YAAY;AAC5B,IAAM,WAAW,GAAG,WAAW;AAC/B,IAAM,aAAa,CAAC,KAAK,MAAM,QAAQ;AAGvC,IAAM,MAAM,GAAG,YAAY;AAC3B,IAAM,WAAW,GAAG,WAAW;AAC/B,IAAM,MAAM,GAAG,WAAW;AAC1B,IAAM,aAAa,CAAC,KAAK,UAAU,GAAG;AAGtC,IAAM,MAAM,GAAG,iBAAiB;AAChC,IAAM,OAAO,GAAG,kBAAkB;AAClC,IAAM,MAAM,GAAG,UAAU;AACzB,IAAM,YAAY,GAAG,YAAY;AACjC,IAAM,OAAO,GAAG,WAAW;AAC3B,IAAM,MAAM,GAAG,iBAAiB;AAChC,IAAM,gBAAgB,CAAC,KAAK,MAAM,KAAK,WAAW,MAAM,GAAG;AAG3D,IAAM,OAAO,GAAG,WAAW;AAC3B,IAAM,QAAQ,GAAG,YAAY;AAC7B,IAAM,MAAM,GAAG,UAAU;AACzB,IAAM,MAAM,GAAG,UAAU;AACzB,IAAM,YAAY,CAAC,MAAM,OAAO,KAAK,GAAG;AAGxC,IAAM,MAAM,GAAG,iBAAiB;AAChC,IAAM,OAAO,GAAG,kBAAkB;AAClC,IAAM,MAAM,GAAG,mBAAmB;AAClC,IAAM,SAAS,GAAG,sBAAsB;AACxC,IAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,MAAM;AAGhD,IAAM,WAAW,GAAG,qBAAqB;AACzC,IAAM,aAAa,GAAG,wBAAwB;AAC9C,IAAM,cAAc,GAAG,0BAA0B;","names":[]}
1
+ {"version":3,"sources":["../src/mime-type.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { namespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = namespace('mime-literal')\nexport type MimeLiteral = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<MimeLiteral, ErrorEvent> => {\n if (!/^[\\w-]+\\/[\\w.+-]+$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }))\n }\n\n return success(value as MimeLiteral)\n}\n\nexport const fromString = (value: string): MimeLiteral => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString)\n\n// Images\nexport const Jpeg = 'image/jpeg' as MimeLiteral\nexport const Png = 'image/png' as MimeLiteral\nexport const Gif = 'image/gif' as MimeLiteral\nexport const Webp = 'image/webp' as MimeLiteral\nexport const Svg = 'image/svg+xml' as MimeLiteral\nexport const Ico = 'image/x-icon' as MimeLiteral\nexport const Avif = 'image/avif' as MimeLiteral\nexport const ImageTypes = [Jpeg, Png, Gif, Webp, Svg, Ico, Avif]\n\n// Video\nexport const Mp4 = 'video/mp4' as MimeLiteral\nexport const Webm = 'video/webm' as MimeLiteral\nexport const OggVideo = 'video/ogg' as MimeLiteral\nexport const VideoTypes = [Mp4, Webm, OggVideo]\n\n// Audio\nexport const Mp3 = 'audio/mpeg' as MimeLiteral\nexport const OggAudio = 'audio/ogg' as MimeLiteral\nexport const Wav = 'audio/wav' as MimeLiteral\nexport const AudioTypes = [Mp3, OggAudio, Wav]\n\n// Documents\nexport const Pdf = 'application/pdf' as MimeLiteral\nexport const Json = 'application/json' as MimeLiteral\nexport const Csv = 'text/csv' as MimeLiteral\nexport const PlainText = 'text/plain' as MimeLiteral\nexport const Html = 'text/html' as MimeLiteral\nexport const Xml = 'application/xml' as MimeLiteral\nexport const DocumentTypes = [Pdf, Json, Csv, PlainText, Html, Xml]\n\n// Fonts\nexport const Woff = 'font/woff' as MimeLiteral\nexport const Woff2 = 'font/woff2' as MimeLiteral\nexport const Ttf = 'font/ttf' as MimeLiteral\nexport const Otf = 'font/otf' as MimeLiteral\nexport const FontTypes = [Woff, Woff2, Ttf, Otf]\n\n// Compression\nexport const Zip = 'application/zip' as MimeLiteral\nexport const Gzip = 'application/gzip' as MimeLiteral\nexport const Tar = 'application/x-tar' as MimeLiteral\nexport const Brotli = 'application/x-brotli' as MimeLiteral\nexport const CompressionTypes = [Zip, Gzip, Tar, Brotli]\n\n// Misc\nexport const FormData = 'multipart/form-data' as MimeLiteral\nexport const Javascript = 'application/javascript' as MimeLiteral\nexport const OctetStream = 'application/octet-stream' as MimeLiteral\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,iBAAiB;AAC1B,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,UAAU,cAAc;AAG1C,IAAM,cAAc,CAAC,UAAmD;AAC7E,MAAI,CAAC,qBAAqB,KAAK,KAAK,GAAG;AACrC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,4BAA4B,CAAC,CAAC;AAAA,EACpG;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,aAAa,CAAC,UAA+B;AACxD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW;AAG5D,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,aAAa,CAAC,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI;AAGxD,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,aAAa,CAAC,KAAK,MAAM,QAAQ;AAGvC,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,KAAK,UAAU,GAAG;AAGtC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,YAAY;AAClB,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,gBAAgB,CAAC,KAAK,MAAM,KAAK,WAAW,MAAM,GAAG;AAG3D,IAAM,OAAO;AACb,IAAM,QAAQ;AACd,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,YAAY,CAAC,MAAM,OAAO,KAAK,GAAG;AAGxC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,SAAS;AACf,IAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,MAAM;AAGhD,IAAM,WAAW;AACjB,IAAM,aAAa;AACnB,IAAM,cAAc;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { CurrencyCode } from '@bessemer/cornerstone/intl/currency-code';
2
2
  import Zod from 'zod';
3
- import { Comparator as IComparator } from '@bessemer/cornerstone/comparator';
3
+ import { Comparator } from '@bessemer/cornerstone/comparator';
4
4
  export type MonetaryAmount = {
5
5
  amount: number;
6
6
  currency: CurrencyCode;
@@ -9,8 +9,8 @@ export declare const Schema: Zod.ZodObject<{
9
9
  amount: Zod.ZodNumber;
10
10
  currency: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<CurrencyCode, string>>;
11
11
  }, Zod.core.$strip>;
12
- export declare const Comparator: IComparator<MonetaryAmount>;
13
- export declare const Equalitor: import("@bessemer/cornerstone/equalitor").Equalitor<MonetaryAmount>;
12
+ export declare const CompareBy: Comparator<MonetaryAmount>;
13
+ export declare const EqualBy: import("@bessemer/cornerstone/equalitor").Equalitor<MonetaryAmount>;
14
14
  export declare const of: (amount: number, currency: CurrencyCode) => MonetaryAmount;
15
15
  export declare const zero: (currency: CurrencyCode) => MonetaryAmount;
16
16
  export declare const apply: <T>(first: MonetaryAmount, second: MonetaryAmount, operator: (first: number, second: number) => T) => T;
@@ -1 +1 @@
1
- {"version":3,"file":"monetary-amount.d.ts","sourceRoot":"","sources":["../src/monetary-amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgC,MAAM,0CAA0C,CAAA;AACrG,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAE,UAAU,IAAI,WAAW,EAAW,MAAM,kCAAkC,CAAA;AAIrF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,YAAY,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,MAAM;;;mBAGjB,CAAA;AAEF,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,cAAc,CAElD,CAAA;AAED,eAAO,MAAM,SAAS,qEAA6B,CAAA;AAEnD,eAAO,MAAM,EAAE,GAAI,QAAQ,MAAM,EAAE,UAAU,YAAY,KAAG,cAG3D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,UAAU,YAAY,KAAG,cAE7C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,cAAc,EAAE,QAAQ,cAAc,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,KAAG,CAMxH,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,KAAG,cAE5H,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,KAAK,GAAI,QAAQ,cAAc,GAAG,IAAI,EAAE,SAAS,cAAc,GAAG,IAAI,KAAG,OASrF,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,OAAO,cAAc,EAAE,SAAS,cAAc,GAAG,IAAI,KAAG,cAE3E,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,cAExE,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,cAAc,EAAE,OAAO,MAAM,KAAG,cAE/D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,cAAc,EAAE,OAAO,MAAM,KAAG,cAE7D,CAAA;AAED,wBAAgB,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,GAAG,cAAc,CAAA;AACvG,wBAAgB,MAAM,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,cAAc,CAAA;AAM1G,eAAO,MAAM,MAAM,GAAI,gBAAgB,cAAc,KAAG,cAOvD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,gBAAgB,cAAc,KAAG,OAEvD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAE3E,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAExE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAElF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAE/E,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,QAAQ,cAAc,EAAE,YAAY,MAAM,EAAE,UAAU,2BAA2B,KAAG,MAgB1G,CAAA"}
1
+ {"version":3,"file":"monetary-amount.d.ts","sourceRoot":"","sources":["../src/monetary-amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgC,MAAM,0CAA0C,CAAA;AACrG,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAE,UAAU,EAAW,MAAM,kCAAkC,CAAA;AAItE,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,YAAY,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,MAAM;;;mBAGjB,CAAA;AAEF,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,cAAc,CAEhD,CAAA;AAED,eAAO,MAAM,OAAO,qEAA4B,CAAA;AAEhD,eAAO,MAAM,EAAE,GAAI,QAAQ,MAAM,EAAE,UAAU,YAAY,KAAG,cAG3D,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,UAAU,YAAY,KAAG,cAE7C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,cAAc,EAAE,QAAQ,cAAc,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,KAAG,CAMxH,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,KAAG,cAE5H,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,KAAK,GAAI,QAAQ,cAAc,GAAG,IAAI,EAAE,SAAS,cAAc,GAAG,IAAI,KAAG,OASrF,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,OAAO,cAAc,EAAE,SAAS,cAAc,GAAG,IAAI,KAAG,cAE3E,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,cAExE,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,cAAc,EAAE,OAAO,MAAM,KAAG,cAE/D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,cAAc,EAAE,OAAO,MAAM,KAAG,cAE7D,CAAA;AAED,wBAAgB,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC,GAAG,cAAc,CAAA;AACvG,wBAAgB,MAAM,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,cAAc,CAAA;AAM1G,eAAO,MAAM,MAAM,GAAI,gBAAgB,cAAc,KAAG,cAOvD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,gBAAgB,cAAc,KAAG,OAEvD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAE3E,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAExE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAElF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,cAAc,EAAE,QAAQ,cAAc,KAAG,OAE/E,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,QAAQ,cAAc,EAAE,YAAY,MAAM,EAAE,UAAU,2BAA2B,KAAG,MAgB1G,CAAA"}
@@ -10,10 +10,10 @@ var Schema = Zod.object({
10
10
  amount: Zod.number().int(),
11
11
  currency: CurrencyCodeSchema
12
12
  });
13
- var Comparator = (first, second) => {
13
+ var CompareBy = (first, second) => {
14
14
  return apply(first, second, natural());
15
15
  };
16
- var Equalitor = fromComparator(Comparator);
16
+ var EqualBy = fromComparator(CompareBy);
17
17
  var of = (amount, currency) => {
18
18
  assert(Number.isInteger(amount));
19
19
  return { amount, currency };
@@ -90,8 +90,8 @@ var format = (amount, alpha2Code, options) => {
90
90
  return formatCurrency.format(amount.amount / 100);
91
91
  };
92
92
  export {
93
- Comparator,
94
- Equalitor,
93
+ CompareBy,
94
+ EqualBy,
95
95
  Schema,
96
96
  apply,
97
97
  divide,