@dereekb/util 0.0.1

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 (212) hide show
  1. package/README.md +7 -0
  2. package/package.json +10 -0
  3. package/src/index.d.ts +2 -0
  4. package/src/index.js +6 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/array/array.boolean.d.ts +28 -0
  7. package/src/lib/array/array.boolean.js +59 -0
  8. package/src/lib/array/array.boolean.js.map +1 -0
  9. package/src/lib/array/array.d.ts +60 -0
  10. package/src/lib/array/array.filter.d.ts +13 -0
  11. package/src/lib/array/array.filter.js +48 -0
  12. package/src/lib/array/array.filter.js.map +1 -0
  13. package/src/lib/array/array.js +149 -0
  14. package/src/lib/array/array.js.map +1 -0
  15. package/src/lib/array/array.limit.d.ts +13 -0
  16. package/src/lib/array/array.limit.js +19 -0
  17. package/src/lib/array/array.limit.js.map +1 -0
  18. package/src/lib/array/array.map.d.ts +18 -0
  19. package/src/lib/array/array.map.js +26 -0
  20. package/src/lib/array/array.map.js.map +1 -0
  21. package/src/lib/array/array.number.d.ts +21 -0
  22. package/src/lib/array/array.number.js +58 -0
  23. package/src/lib/array/array.number.js.map +1 -0
  24. package/src/lib/array/array.set.d.ts +20 -0
  25. package/src/lib/array/array.set.js +64 -0
  26. package/src/lib/array/array.set.js.map +1 -0
  27. package/src/lib/array/array.string.d.ts +8 -0
  28. package/src/lib/array/array.string.js +36 -0
  29. package/src/lib/array/array.string.js.map +1 -0
  30. package/src/lib/array/array.unique.d.ts +6 -0
  31. package/src/lib/array/array.unique.js +29 -0
  32. package/src/lib/array/array.unique.js.map +1 -0
  33. package/src/lib/array/array.value.d.ts +3 -0
  34. package/src/lib/array/array.value.js +17 -0
  35. package/src/lib/array/array.value.js.map +1 -0
  36. package/src/lib/array/index.d.ts +10 -0
  37. package/src/lib/array/index.js +14 -0
  38. package/src/lib/array/index.js.map +1 -0
  39. package/src/lib/assertion/assert.d.ts +15 -0
  40. package/src/lib/assertion/assert.error.d.ts +32 -0
  41. package/src/lib/assertion/assert.error.js +43 -0
  42. package/src/lib/assertion/assert.error.js.map +1 -0
  43. package/src/lib/assertion/assert.js +3 -0
  44. package/src/lib/assertion/assert.js.map +1 -0
  45. package/src/lib/assertion/assertion.d.ts +18 -0
  46. package/src/lib/assertion/assertion.generic.d.ts +3 -0
  47. package/src/lib/assertion/assertion.generic.js +10 -0
  48. package/src/lib/assertion/assertion.generic.js.map +1 -0
  49. package/src/lib/assertion/assertion.js +40 -0
  50. package/src/lib/assertion/assertion.js.map +1 -0
  51. package/src/lib/assertion/assertion.number.d.ts +3 -0
  52. package/src/lib/assertion/assertion.number.js +20 -0
  53. package/src/lib/assertion/assertion.number.js.map +1 -0
  54. package/src/lib/assertion/index.d.ts +5 -0
  55. package/src/lib/assertion/index.js +9 -0
  56. package/src/lib/assertion/index.js.map +1 -0
  57. package/src/lib/boolean.d.ts +5 -0
  58. package/src/lib/boolean.js +30 -0
  59. package/src/lib/boolean.js.map +1 -0
  60. package/src/lib/contact/domain.d.ts +16 -0
  61. package/src/lib/contact/domain.js +45 -0
  62. package/src/lib/contact/domain.js.map +1 -0
  63. package/src/lib/contact/email.d.ts +17 -0
  64. package/src/lib/contact/email.js +32 -0
  65. package/src/lib/contact/email.js.map +1 -0
  66. package/src/lib/contact/index.d.ts +3 -0
  67. package/src/lib/contact/index.js +7 -0
  68. package/src/lib/contact/index.js.map +1 -0
  69. package/src/lib/contact/phone.d.ts +8 -0
  70. package/src/lib/contact/phone.js +3 -0
  71. package/src/lib/contact/phone.js.map +1 -0
  72. package/src/lib/context/context.d.ts +1 -0
  73. package/src/lib/context/context.js +6 -0
  74. package/src/lib/context/context.js.map +1 -0
  75. package/src/lib/context/index.d.ts +0 -0
  76. package/src/lib/context/index.js +2 -0
  77. package/src/lib/context/index.js.map +1 -0
  78. package/src/lib/date/date.d.ts +52 -0
  79. package/src/lib/date/date.js +12 -0
  80. package/src/lib/date/date.js.map +1 -0
  81. package/src/lib/date/date.time.d.ts +29 -0
  82. package/src/lib/date/date.time.js +27 -0
  83. package/src/lib/date/date.time.js.map +1 -0
  84. package/src/lib/date/index.d.ts +2 -0
  85. package/src/lib/date/index.js +6 -0
  86. package/src/lib/date/index.js.map +1 -0
  87. package/src/lib/error/error.d.ts +30 -0
  88. package/src/lib/error/error.js +36 -0
  89. package/src/lib/error/error.js.map +1 -0
  90. package/src/lib/error/error.server.d.ts +37 -0
  91. package/src/lib/error/error.server.js +22 -0
  92. package/src/lib/error/error.server.js.map +1 -0
  93. package/src/lib/error/index.d.ts +2 -0
  94. package/src/lib/error/index.js +6 -0
  95. package/src/lib/error/index.js.map +1 -0
  96. package/src/lib/filter/filter.d.ts +5 -0
  97. package/src/lib/filter/filter.js +3 -0
  98. package/src/lib/filter/filter.js.map +1 -0
  99. package/src/lib/filter/index.d.ts +1 -0
  100. package/src/lib/filter/index.js +5 -0
  101. package/src/lib/filter/index.js.map +1 -0
  102. package/src/lib/getter.d.ts +16 -0
  103. package/src/lib/getter.js +19 -0
  104. package/src/lib/getter.js.map +1 -0
  105. package/src/lib/grouping.d.ts +98 -0
  106. package/src/lib/grouping.js +164 -0
  107. package/src/lib/grouping.js.map +1 -0
  108. package/src/lib/hash.d.ts +5 -0
  109. package/src/lib/hash.js +21 -0
  110. package/src/lib/hash.js.map +1 -0
  111. package/src/lib/index.d.ts +26 -0
  112. package/src/lib/index.js +31 -0
  113. package/src/lib/index.js.map +1 -0
  114. package/src/lib/iterate.d.ts +6 -0
  115. package/src/lib/iterate.js +16 -0
  116. package/src/lib/iterate.js.map +1 -0
  117. package/src/lib/key.d.ts +11 -0
  118. package/src/lib/key.js +3 -0
  119. package/src/lib/key.js.map +1 -0
  120. package/src/lib/lifecycle.d.ts +12 -0
  121. package/src/lib/lifecycle.js +3 -0
  122. package/src/lib/lifecycle.js.map +1 -0
  123. package/src/lib/map.d.ts +2 -0
  124. package/src/lib/map.js +3 -0
  125. package/src/lib/map.js.map +1 -0
  126. package/src/lib/model.d.ts +74 -0
  127. package/src/lib/model.js +138 -0
  128. package/src/lib/model.js.map +1 -0
  129. package/src/lib/number.d.ts +18 -0
  130. package/src/lib/number.js +29 -0
  131. package/src/lib/number.js.map +1 -0
  132. package/src/lib/object/index.d.ts +3 -0
  133. package/src/lib/object/index.js +7 -0
  134. package/src/lib/object/index.js.map +1 -0
  135. package/src/lib/object/object.array.d.ts +9 -0
  136. package/src/lib/object/object.array.js +35 -0
  137. package/src/lib/object/object.array.js.map +1 -0
  138. package/src/lib/object/object.d.ts +12 -0
  139. package/src/lib/object/object.equal.d.ts +4 -0
  140. package/src/lib/object/object.equal.js +12 -0
  141. package/src/lib/object/object.equal.js.map +1 -0
  142. package/src/lib/object/object.js +38 -0
  143. package/src/lib/object/object.js.map +1 -0
  144. package/src/lib/page/index.d.ts +3 -0
  145. package/src/lib/page/index.js +7 -0
  146. package/src/lib/page/index.js.map +1 -0
  147. package/src/lib/page/page.calculator.d.ts +24 -0
  148. package/src/lib/page/page.calculator.js +37 -0
  149. package/src/lib/page/page.calculator.js.map +1 -0
  150. package/src/lib/page/page.d.ts +28 -0
  151. package/src/lib/page/page.filter.d.ts +54 -0
  152. package/src/lib/page/page.filter.js +68 -0
  153. package/src/lib/page/page.filter.js.map +1 -0
  154. package/src/lib/page/page.js +30 -0
  155. package/src/lib/page/page.js.map +1 -0
  156. package/src/lib/promise/index.d.ts +2 -0
  157. package/src/lib/promise/index.js +6 -0
  158. package/src/lib/promise/index.js.map +1 -0
  159. package/src/lib/promise/promise.d.ts +42 -0
  160. package/src/lib/promise/promise.js +117 -0
  161. package/src/lib/promise/promise.js.map +1 -0
  162. package/src/lib/promise/promise.loop.d.ts +12 -0
  163. package/src/lib/promise/promise.loop.js +30 -0
  164. package/src/lib/promise/promise.loop.js.map +1 -0
  165. package/src/lib/relation/index.d.ts +1 -0
  166. package/src/lib/relation/index.js +5 -0
  167. package/src/lib/relation/index.js.map +1 -0
  168. package/src/lib/relation/relation.d.ts +95 -0
  169. package/src/lib/relation/relation.js +209 -0
  170. package/src/lib/relation/relation.js.map +1 -0
  171. package/src/lib/set.d.ts +0 -0
  172. package/src/lib/set.hashset.d.ts +28 -0
  173. package/src/lib/set.hashset.js +66 -0
  174. package/src/lib/set.hashset.js.map +1 -0
  175. package/src/lib/set.js +2 -0
  176. package/src/lib/set.js.map +1 -0
  177. package/src/lib/sort.d.ts +45 -0
  178. package/src/lib/sort.js +25 -0
  179. package/src/lib/sort.js.map +1 -0
  180. package/src/lib/storage/index.d.ts +4 -0
  181. package/src/lib/storage/index.js +8 -0
  182. package/src/lib/storage/index.js.map +1 -0
  183. package/src/lib/storage/storage.d.ts +11 -0
  184. package/src/lib/storage/storage.error.d.ts +12 -0
  185. package/src/lib/storage/storage.error.js +20 -0
  186. package/src/lib/storage/storage.error.js.map +1 -0
  187. package/src/lib/storage/storage.js +3 -0
  188. package/src/lib/storage/storage.js.map +1 -0
  189. package/src/lib/storage/storage.memory.d.ts +14 -0
  190. package/src/lib/storage/storage.memory.js +47 -0
  191. package/src/lib/storage/storage.memory.js.map +1 -0
  192. package/src/lib/storage/storage.object.d.ts +32 -0
  193. package/src/lib/storage/storage.object.js +39 -0
  194. package/src/lib/storage/storage.object.js.map +1 -0
  195. package/src/lib/string.d.ts +19 -0
  196. package/src/lib/string.js +27 -0
  197. package/src/lib/string.js.map +1 -0
  198. package/src/lib/type.d.ts +9 -0
  199. package/src/lib/type.js +3 -0
  200. package/src/lib/type.js.map +1 -0
  201. package/src/lib/value.d.ts +43 -0
  202. package/src/lib/value.js +28 -0
  203. package/src/lib/value.js.map +1 -0
  204. package/src/test/index.d.ts +2 -0
  205. package/src/test/index.js +6 -0
  206. package/src/test/index.js.map +1 -0
  207. package/src/test/jest.d.ts +80 -0
  208. package/src/test/jest.js +80 -0
  209. package/src/test/jest.js.map +1 -0
  210. package/src/test/jest.wrap.d.ts +61 -0
  211. package/src/test/jest.wrap.js +66 -0
  212. package/src/test/jest.wrap.js.map +1 -0
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setContainsAnyValue = exports.containsAnyValue = exports.filterValuesFromSet = exports.excludeValuesFromSet = exports.excludeValuesFromArray = exports.keepValuesFromSet = exports.keepValuesFromArray = exports.symmetricDifferenceKeysSet = exports.symmetricDifferenceKeys = exports.hasDifferentStringsNoCase = exports.hasDifferentValues = exports.flattenArrayToSet = void 0;
4
+ const extra_set_1 = require("extra-set");
5
+ const array_1 = require("./array");
6
+ const string_1 = require("../string");
7
+ // MARK: Functions
8
+ function flattenArrayToSet(array) {
9
+ return new Set((0, array_1.flattenArray)(array));
10
+ }
11
+ exports.flattenArrayToSet = flattenArrayToSet;
12
+ function hasDifferentValues(a, b) {
13
+ return a.length !== b.length || (0, extra_set_1.symmetricDifference)(new Set(a), new Set(b)).size > 0;
14
+ }
15
+ exports.hasDifferentValues = hasDifferentValues;
16
+ function hasDifferentStringsNoCase(a, b) {
17
+ return hasDifferentValues(a.map(string_1.caseInsensitiveString), b.map(string_1.caseInsensitiveString));
18
+ }
19
+ exports.hasDifferentStringsNoCase = hasDifferentStringsNoCase;
20
+ function symmetricDifferenceKeys(a, b) {
21
+ return symmetricDifferenceKeysSet(new Set(a), new Set(b));
22
+ }
23
+ exports.symmetricDifferenceKeys = symmetricDifferenceKeys;
24
+ function symmetricDifferenceKeysSet(a, b) {
25
+ return Array.from((0, extra_set_1.symmetricDifference)(a, b));
26
+ }
27
+ exports.symmetricDifferenceKeysSet = symmetricDifferenceKeysSet;
28
+ /**
29
+ * Returns items that exist in both arrays.
30
+ */
31
+ function keepValuesFromArray(values, secondArray) {
32
+ return keepValuesFromSet(values, new Set(secondArray));
33
+ }
34
+ exports.keepValuesFromArray = keepValuesFromArray;
35
+ function keepValuesFromSet(values, set) {
36
+ return filterValuesFromSet(values, set, false);
37
+ }
38
+ exports.keepValuesFromSet = keepValuesFromSet;
39
+ function excludeValuesFromArray(values, secondArray) {
40
+ return excludeValuesFromSet(values, new Set(secondArray));
41
+ }
42
+ exports.excludeValuesFromArray = excludeValuesFromArray;
43
+ function excludeValuesFromSet(values, set) {
44
+ return filterValuesFromSet(values, set, true);
45
+ }
46
+ exports.excludeValuesFromSet = excludeValuesFromSet;
47
+ function filterValuesFromSet(values, set, exclude = false) {
48
+ const filterFn = (exclude) ? ((x) => !set.has(x)) : ((x) => set.has(x));
49
+ return values.filter(filterFn);
50
+ }
51
+ exports.filterValuesFromSet = filterValuesFromSet;
52
+ /**
53
+ * Returns true if the input array contains any value from the second array.
54
+ */
55
+ function containsAnyValue(values, valuesToFind) {
56
+ const set = new Set(valuesToFind);
57
+ return setContainsAnyValue(values, set);
58
+ }
59
+ exports.containsAnyValue = containsAnyValue;
60
+ function setContainsAnyValue(values, valuesToFind) {
61
+ return (values) ? values.findIndex((x) => valuesToFind.has(x)) !== -1 : false;
62
+ }
63
+ exports.setContainsAnyValue = setContainsAnyValue;
64
+ //# sourceMappingURL=array.set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.set.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ReadKeyFunction } from "../key";
2
+ export declare function toCaseInsensitiveStringArray(values: string[]): string[];
3
+ export declare function uniqueCaseInsensitiveStrings(values: string[]): string[];
4
+ export declare function uniqueCaseInsensitiveStringsSet(values: string[]): Set<string>;
5
+ export declare function flattenArrayUniqueCaseInsensitiveStrings(array: string[][]): string[];
6
+ export declare function findUniqueCaseInsensitiveStrings<T, K extends string = string>(models: T[], readKey: ReadKeyFunction<T, K>, additionalKeys?: K[]): T[];
7
+ export declare function containsStringAnyCase(values: string[], valueToFind: string): boolean;
8
+ export declare function containsAnyStringAnyCase(values: string[], valuesToFind: string[]): boolean;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.containsAnyStringAnyCase = exports.containsStringAnyCase = exports.findUniqueCaseInsensitiveStrings = exports.flattenArrayUniqueCaseInsensitiveStrings = exports.uniqueCaseInsensitiveStringsSet = exports.uniqueCaseInsensitiveStrings = exports.toCaseInsensitiveStringArray = void 0;
4
+ const array_1 = require("./array");
5
+ const array_set_1 = require("./array.set");
6
+ const array_unique_1 = require("./array.unique");
7
+ const string_1 = require("../string");
8
+ function toCaseInsensitiveStringArray(values) {
9
+ return values.map(string_1.caseInsensitiveString);
10
+ }
11
+ exports.toCaseInsensitiveStringArray = toCaseInsensitiveStringArray;
12
+ function uniqueCaseInsensitiveStrings(values) {
13
+ return Array.from(uniqueCaseInsensitiveStringsSet(values));
14
+ }
15
+ exports.uniqueCaseInsensitiveStrings = uniqueCaseInsensitiveStrings;
16
+ function uniqueCaseInsensitiveStringsSet(values) {
17
+ return new Set(toCaseInsensitiveStringArray(values));
18
+ }
19
+ exports.uniqueCaseInsensitiveStringsSet = uniqueCaseInsensitiveStringsSet;
20
+ function flattenArrayUniqueCaseInsensitiveStrings(array) {
21
+ return (0, array_unique_1.unique)((0, array_1.flattenArray)(array).map(string_1.caseInsensitiveString));
22
+ }
23
+ exports.flattenArrayUniqueCaseInsensitiveStrings = flattenArrayUniqueCaseInsensitiveStrings;
24
+ function findUniqueCaseInsensitiveStrings(models, readKey, additionalKeys = []) {
25
+ return (0, array_unique_1.findUnique)(models, (x) => (0, string_1.caseInsensitiveString)(readKey(x)), toCaseInsensitiveStringArray(additionalKeys));
26
+ }
27
+ exports.findUniqueCaseInsensitiveStrings = findUniqueCaseInsensitiveStrings;
28
+ function containsStringAnyCase(values, valueToFind) {
29
+ return containsAnyStringAnyCase(values, [valueToFind]);
30
+ }
31
+ exports.containsStringAnyCase = containsStringAnyCase;
32
+ function containsAnyStringAnyCase(values, valuesToFind) {
33
+ return (0, array_set_1.containsAnyValue)(toCaseInsensitiveStringArray(values), toCaseInsensitiveStringArray(valuesToFind));
34
+ }
35
+ exports.containsAnyStringAnyCase = containsAnyStringAnyCase;
36
+ //# sourceMappingURL=array.string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.string.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.string.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AACvC,2CAA+C;AAC/C,iDAAoD;AAEpD,sCAAkD;AAElD,SAAgB,4BAA4B,CAAC,MAAgB;IAC3D,OAAO,MAAM,CAAC,GAAG,CAAS,8BAAqB,CAAC,CAAC;AACnD,CAAC;AAFD,oEAEC;AAED,SAAgB,4BAA4B,CAAC,MAAgB;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,oEAEC;AAED,SAAgB,+BAA+B,CAAC,MAAgB;IAC9D,OAAO,IAAI,GAAG,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,0EAEC;AAED,SAAgB,wCAAwC,CAAC,KAAiB;IACxE,OAAO,IAAA,qBAAM,EAAC,IAAA,oBAAY,EAAS,KAAK,CAAC,CAAC,GAAG,CAAS,8BAAqB,CAAC,CAAC,CAAC;AAChF,CAAC;AAFD,4FAEC;AAED,SAAgB,gCAAgC,CAA+B,MAAW,EAAE,OAA8B,EAAE,iBAAsB,EAAE;IAClJ,OAAO,IAAA,yBAAU,EAAC,MAAM,EAAE,CAAC,CAAI,EAAE,EAAE,CAAC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,4BAA4B,CAAC,cAAc,CAAC,CAAC,CAAC;AACvH,CAAC;AAFD,4EAEC;AAED,SAAgB,qBAAqB,CAAC,MAAgB,EAAE,WAAmB;IACzE,OAAO,wBAAwB,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACzD,CAAC;AAFD,sDAEC;AAED,SAAgB,wBAAwB,CAAC,MAAgB,EAAE,YAAsB;IAC/E,OAAO,IAAA,4BAAgB,EAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5G,CAAC;AAFD,4DAEC"}
@@ -0,0 +1,6 @@
1
+ import { PrimativeKey, ReadKeyFunction } from "../key";
2
+ import { Maybe } from "../value";
3
+ export declare function concatArraysUnique<T extends PrimativeKey = PrimativeKey>(...arrays: (Maybe<T[]>)[]): T[];
4
+ export declare function flattenArrayUnique<T extends PrimativeKey = PrimativeKey>(array: T[][]): T[];
5
+ export declare function unique<T extends PrimativeKey = PrimativeKey>(values: T[]): T[];
6
+ export declare function findUnique<T, K extends PrimativeKey = PrimativeKey>(models: T[], readKey: ReadKeyFunction<T, K>, additionalKeys?: K[]): T[];
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findUnique = exports.unique = exports.flattenArrayUnique = exports.concatArraysUnique = void 0;
4
+ const array_1 = require("./array");
5
+ function concatArraysUnique(...arrays) {
6
+ return unique((0, array_1.concatArrays)(...arrays));
7
+ }
8
+ exports.concatArraysUnique = concatArraysUnique;
9
+ function flattenArrayUnique(array) {
10
+ return unique((0, array_1.flattenArray)(array));
11
+ }
12
+ exports.flattenArrayUnique = flattenArrayUnique;
13
+ function unique(values) {
14
+ return Array.from(new Set(values));
15
+ }
16
+ exports.unique = unique;
17
+ function findUnique(models, readKey, additionalKeys = []) {
18
+ const keys = new Set(additionalKeys);
19
+ return models.filter((x) => {
20
+ const key = readKey(x);
21
+ if (!keys.has(key)) {
22
+ keys.add(key);
23
+ return true;
24
+ }
25
+ return false;
26
+ });
27
+ }
28
+ exports.findUnique = findUnique;
29
+ //# sourceMappingURL=array.unique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.unique.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.unique.ts"],"names":[],"mappings":";;;AAAA,mCAAqD;AAIrD,SAAgB,kBAAkB,CAAwC,GAAG,MAAsB;IACjG,OAAO,MAAM,CAAC,IAAA,oBAAY,EAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,gDAEC;AAED,SAAgB,kBAAkB,CAAwC,KAAY;IACpF,OAAO,MAAM,CAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,gDAEC;AAED,SAAgB,MAAM,CAAwC,MAAW;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,wBAEC;AAED,SAAgB,UAAU,CAA2C,MAAW,EAAE,OAA8B,EAAE,iBAAsB,EAAE;IACxI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAW,cAAc,CAAC,CAAC;IAE/C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,gCAaC"}
@@ -0,0 +1,3 @@
1
+ import { Maybe } from "@dereekb/util";
2
+ export declare function filterMaybeValues<T>(values: Maybe<Maybe<T>[]>): T[];
3
+ export declare function filterMaybeValuesFn<T>(value: Maybe<T>): value is T;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterMaybeValuesFn = exports.filterMaybeValues = void 0;
4
+ function filterMaybeValues(values) {
5
+ if (values) {
6
+ return values.filter(filterMaybeValuesFn);
7
+ }
8
+ else {
9
+ return [];
10
+ }
11
+ }
12
+ exports.filterMaybeValues = filterMaybeValues;
13
+ function filterMaybeValuesFn(value) {
14
+ return value != null;
15
+ }
16
+ exports.filterMaybeValuesFn = filterMaybeValuesFn;
17
+ //# sourceMappingURL=array.value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.value.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/array.value.ts"],"names":[],"mappings":";;;AAEA,SAAgB,iBAAiB,CAAI,MAAyB;IAC5D,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;KAC3C;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAND,8CAMC;AAED,SAAgB,mBAAmB,CAAI,KAAe;IACpD,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAFD,kDAEC"}
@@ -0,0 +1,10 @@
1
+ export * from './array.boolean';
2
+ export * from './array.filter';
3
+ export * from './array.limit';
4
+ export * from './array.map';
5
+ export * from './array.number';
6
+ export * from './array.set';
7
+ export * from './array.string';
8
+ export * from './array';
9
+ export * from './array.unique';
10
+ export * from './array.value';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./array.boolean"), exports);
5
+ (0, tslib_1.__exportStar)(require("./array.filter"), exports);
6
+ (0, tslib_1.__exportStar)(require("./array.limit"), exports);
7
+ (0, tslib_1.__exportStar)(require("./array.map"), exports);
8
+ (0, tslib_1.__exportStar)(require("./array.number"), exports);
9
+ (0, tslib_1.__exportStar)(require("./array.set"), exports);
10
+ (0, tslib_1.__exportStar)(require("./array.string"), exports);
11
+ (0, tslib_1.__exportStar)(require("./array"), exports);
12
+ (0, tslib_1.__exportStar)(require("./array.unique"), exports);
13
+ (0, tslib_1.__exportStar)(require("./array.value"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/array/index.ts"],"names":[],"mappings":";;;AAAA,+DAAgC;AAChC,8DAA+B;AAC/B,6DAA8B;AAC9B,2DAA4B;AAC5B,8DAA+B;AAC/B,2DAA4B;AAC5B,8DAA+B;AAC/B,uDAAwB;AACxB,8DAA+B;AAC/B,6DAA8B"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Interface for configuring a Description Assertion
3
+ */
4
+ export interface DescriptorAssertionOptions {
5
+ message?: string;
6
+ }
7
+ /**
8
+ * DescriptorAssertionOptions extension that also maps one value to another.
9
+ */
10
+ export interface MapDescriptorAssertionOptions<T> extends DescriptorAssertionOptions {
11
+ /**
12
+ * Maps the value after it has been validated.
13
+ */
14
+ map?: (value: T) => T;
15
+ }
@@ -0,0 +1,32 @@
1
+ import { ReadableError } from '../error';
2
+ import { BaseError } from 'make-error';
3
+ import { DescriptorAssertionOptions } from "./assert";
4
+ export interface AssertionIssue {
5
+ /**
6
+ * Object that encoundered the issue.
7
+ */
8
+ target: object;
9
+ /**
10
+ * Property that
11
+ */
12
+ propertyKey: string;
13
+ options?: DescriptorAssertionOptions;
14
+ }
15
+ export declare const ASSERTION_ERROR_CODE = "DBX_ASSERTION_ERROR";
16
+ export declare class AssertionError extends BaseError implements ReadableError {
17
+ readonly code = "DBX_ASSERTION_ERROR";
18
+ private _target;
19
+ private _property;
20
+ constructor(error: {
21
+ target: object;
22
+ propertyKey: string;
23
+ }, message: string);
24
+ get target(): object;
25
+ get propertyKey(): string;
26
+ }
27
+ export declare class AssertionIssueHandler {
28
+ handle(error: AssertionIssue): void;
29
+ buildException(error: AssertionIssue): AssertionError;
30
+ protected buildExceptionString(error: AssertionIssue): string;
31
+ }
32
+ export declare const ASSERTION_HANDLER: AssertionIssueHandler;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ASSERTION_HANDLER = exports.AssertionIssueHandler = exports.AssertionError = exports.ASSERTION_ERROR_CODE = void 0;
4
+ const make_error_1 = require("make-error");
5
+ exports.ASSERTION_ERROR_CODE = 'DBX_ASSERTION_ERROR';
6
+ class AssertionError extends make_error_1.BaseError {
7
+ constructor(error, message) {
8
+ super(message);
9
+ this.code = exports.ASSERTION_ERROR_CODE;
10
+ this.name = 'AssertionError';
11
+ this._target = error.target;
12
+ this._property = error.propertyKey;
13
+ }
14
+ get target() {
15
+ return this._target;
16
+ }
17
+ get propertyKey() {
18
+ return this._property;
19
+ }
20
+ }
21
+ exports.AssertionError = AssertionError;
22
+ class AssertionIssueHandler {
23
+ handle(error) {
24
+ throw this.buildException(error);
25
+ }
26
+ buildException(error) {
27
+ const message = this.buildExceptionString(error);
28
+ return new AssertionError(error, message);
29
+ }
30
+ buildExceptionString(error) {
31
+ let message;
32
+ if (error.options && error.options.message) {
33
+ message = error.options.message;
34
+ }
35
+ else {
36
+ message = 'Assertion failed for property \'' + error.propertyKey + '".';
37
+ }
38
+ return message;
39
+ }
40
+ }
41
+ exports.AssertionIssueHandler = AssertionIssueHandler;
42
+ exports.ASSERTION_HANDLER = new AssertionIssueHandler(); // TODO: Allow changing, if needed.
43
+ //# sourceMappingURL=assert.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.error.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/assertion/assert.error.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAe1B,QAAA,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,MAAa,cAAe,SAAQ,sBAAS;IAO3C,YAAY,KAA8C,EAAE,OAAe;QACzE,KAAK,CAAC,OAAO,CAAC,CAAC;QANR,SAAI,GAAG,4BAAoB,CAAC;QAOnC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CAEF;AAtBD,wCAsBC;AAED,MAAa,qBAAqB;IAEzB,MAAM,CAAC,KAAqB;QACjC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,cAAc,CAAC,KAAqB;QACzC,MAAM,OAAO,GAAW,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAES,oBAAoB,CAAC,KAAqB;QAClD,IAAI,OAAe,CAAC;QAEpB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;YAC1C,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;SACjC;aAAM;YACL,OAAO,GAAG,kCAAkC,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;SACzE;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CAEF;AAvBD,sDAuBC;AAEY,QAAA,iBAAiB,GAA0B,IAAI,qBAAqB,EAAE,CAAC,CAAC,mCAAmC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/assertion/assert.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { MapDescriptorAssertionOptions } from "./assert";
2
+ /**
3
+ * Assertion function type.
4
+ *
5
+ * Returns true if the assertion passes.
6
+ */
7
+ export declare type AccessorValueAssertion<T> = (value: T) => boolean;
8
+ export interface SetValueInterceptorFunctionInput<T> {
9
+ target: object;
10
+ propertyKey: string;
11
+ descriptor: TypedPropertyDescriptor<T>;
12
+ setValue: (value: T) => void;
13
+ }
14
+ export declare type SetValueInterceptorFunctionFactory<T> = (input: SetValueInterceptorFunctionInput<T>) => ((value: T) => void);
15
+ export declare class PropertyDescriptorUtility {
16
+ static makePropertyDescriptorAssertion<T>(assertValueFn: AccessorValueAssertion<T>, options?: MapDescriptorAssertionOptions<T>, defaultOptions?: MapDescriptorAssertionOptions<T>): (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
17
+ static makeSetPropertyDescriptorInterceptor<T>(makeSetValueInterceptorFn: SetValueInterceptorFunctionFactory<T>): (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
18
+ }
@@ -0,0 +1,3 @@
1
+ import { MapDescriptorAssertionOptions } from "./assert";
2
+ import { AccessorValueAssertion } from "./assertion";
3
+ export declare function Assert<T>(assertion: AccessorValueAssertion<T>, options?: MapDescriptorAssertionOptions<T>): (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Assert = void 0;
4
+ const assertion_1 = require("./assertion");
5
+ // MARK: Generic
6
+ function Assert(assertion, options) {
7
+ return assertion_1.PropertyDescriptorUtility.makePropertyDescriptorAssertion(assertion, options);
8
+ }
9
+ exports.Assert = Assert;
10
+ //# sourceMappingURL=assertion.generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.generic.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/assertion/assertion.generic.ts"],"names":[],"mappings":";;;AACA,2CAAgF;AAEhF,gBAAgB;AAChB,SAAgB,MAAM,CAAI,SAAoC,EAAE,OAA0C;IACxG,OAAO,qCAAyB,CAAC,+BAA+B,CAAI,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC;AAFD,wBAEC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyDescriptorUtility = void 0;
4
+ const assert_error_1 = require("./assert.error");
5
+ class PropertyDescriptorUtility {
6
+ static makePropertyDescriptorAssertion(assertValueFn, options, defaultOptions) {
7
+ // Build options
8
+ options = Object.assign(Object.assign({}, defaultOptions), options);
9
+ return this.makeSetPropertyDescriptorInterceptor(({ target, propertyKey, setValue }) => {
10
+ const map = (options === null || options === void 0 ? void 0 : options.map) || ((x) => x);
11
+ return function (value) {
12
+ if (assertValueFn(value)) {
13
+ const mappedValue = map(value);
14
+ setValue.call(this, mappedValue); // TODO: "this" may not be necessary here, if setValue is expected to always be an arrow function.
15
+ }
16
+ else {
17
+ const error = { target, propertyKey, options };
18
+ assert_error_1.ASSERTION_HANDLER.handle(error);
19
+ }
20
+ };
21
+ });
22
+ }
23
+ static makeSetPropertyDescriptorInterceptor(makeSetValueInterceptorFn) {
24
+ const interceptor = (target, propertyKey, descriptor) => {
25
+ if (descriptor.set) {
26
+ const setValue = descriptor.set;
27
+ // Override set function with assertion.
28
+ descriptor.set = makeSetValueInterceptorFn({
29
+ target,
30
+ propertyKey,
31
+ descriptor,
32
+ setValue
33
+ });
34
+ }
35
+ };
36
+ return interceptor;
37
+ }
38
+ }
39
+ exports.PropertyDescriptorUtility = PropertyDescriptorUtility;
40
+ //# sourceMappingURL=assertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/assertion/assertion.ts"],"names":[],"mappings":";;;AACA,iDAAmE;AAqBnE,MAAa,yBAAyB;IAEpC,MAAM,CAAC,+BAA+B,CAAI,aAAwC,EAAE,OAA0C,EAAE,cAAiD;QAE/K,gBAAgB;QAChB,OAAO,mCACF,cAAc,GACd,OAAO,CACX,CAAC;QAEF,OAAO,IAAI,CAAC,oCAAoC,CAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxF,MAAM,GAAG,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,KAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAEvC,OAAO,UAAqB,KAAQ;gBAClC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;oBACxB,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,kGAAkG;iBACrI;qBAAM;oBACL,MAAM,KAAK,GAAmB,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC/D,gCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjC;YACH,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,oCAAoC,CAAI,yBAAgE;QAC7G,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAE,UAAsC,EAAE,EAAE;YAClG,IAAI,UAAU,CAAC,GAAG,EAAE;gBAClB,MAAM,QAAQ,GAA2B,UAAU,CAAC,GAAG,CAAC;gBAExD,wCAAwC;gBACxC,UAAU,CAAC,GAAG,GAAG,yBAAyB,CAAC;oBACzC,MAAM;oBACN,WAAW;oBACX,UAAU;oBACV,QAAQ;iBACT,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;CAEF;AA1CD,8DA0CC"}
@@ -0,0 +1,3 @@
1
+ import { DescriptorAssertionOptions } from "./assert";
2
+ export declare function AssertMin(min: number, options?: DescriptorAssertionOptions): (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<number>) => void;
3
+ export declare function AssertMax(max: number, options?: DescriptorAssertionOptions): (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<number>) => void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssertMax = exports.AssertMin = void 0;
4
+ const assertion_1 = require("./assertion");
5
+ // MARK: Numbers
6
+ function AssertMin(min, options) {
7
+ const DEFAULT_OPTIONS = { message: 'Value was less than the minimum "' + min + '".' };
8
+ return assertion_1.PropertyDescriptorUtility.makePropertyDescriptorAssertion((value) => {
9
+ return value >= min;
10
+ }, options, DEFAULT_OPTIONS);
11
+ }
12
+ exports.AssertMin = AssertMin;
13
+ function AssertMax(max, options) {
14
+ const DEFAULT_OPTIONS = { message: 'Value was greater than the maximum "' + max + '".' };
15
+ return assertion_1.PropertyDescriptorUtility.makePropertyDescriptorAssertion((value) => {
16
+ return value <= max;
17
+ }, options, DEFAULT_OPTIONS);
18
+ }
19
+ exports.AssertMax = AssertMax;
20
+ //# sourceMappingURL=assertion.number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.number.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/assertion/assertion.number.ts"],"names":[],"mappings":";;;AACA,2CAAwD;AAExD,gBAAgB;AAChB,SAAgB,SAAS,CAAC,GAAW,EAAE,OAAoC;IACzE,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,mCAAmC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IACtF,OAAO,qCAAyB,CAAC,+BAA+B,CAAS,CAAC,KAAa,EAAE,EAAE;QACzF,OAAO,KAAK,IAAI,GAAG,CAAC;IACtB,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;AAC/B,CAAC;AALD,8BAKC;AAED,SAAgB,SAAS,CAAC,GAAW,EAAE,OAAoC;IACzE,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,sCAAsC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IACzF,OAAO,qCAAyB,CAAC,+BAA+B,CAAS,CAAC,KAAa,EAAE,EAAE;QACzF,OAAO,KAAK,IAAI,GAAG,CAAC;IACtB,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;AAC/B,CAAC;AALD,8BAKC"}
@@ -0,0 +1,5 @@
1
+ export * from './assert.error';
2
+ export * from './assert';
3
+ export * from './assertion.generic';
4
+ export * from './assertion.number';
5
+ export * from './assertion';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./assert.error"), exports);
5
+ (0, tslib_1.__exportStar)(require("./assert"), exports);
6
+ (0, tslib_1.__exportStar)(require("./assertion.generic"), exports);
7
+ (0, tslib_1.__exportStar)(require("./assertion.number"), exports);
8
+ (0, tslib_1.__exportStar)(require("./assertion"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/assertion/index.ts"],"names":[],"mappings":";;;AAAA,8DAA+B;AAC/B,wDAAyB;AACzB,mEAAoC;AACpC,kEAAmC;AACnC,2DAA4B"}
@@ -0,0 +1,5 @@
1
+ export declare function reduceBooleansWithAnd(array: boolean[], emptyArrayValue?: boolean): boolean;
2
+ export declare function reduceBooleansWithOr(array: boolean[], emptyArrayValue?: boolean): boolean;
3
+ export declare function reduceBooleansWithAndFn(emptyArrayValue?: boolean): (array: boolean[]) => boolean;
4
+ export declare function reduceBooleansWithOrFn(emptyArrayValue?: boolean): (array: boolean[]) => boolean;
5
+ export declare function reduceBooleansFn(reduceFn: ((a: boolean, b: boolean) => boolean), emptyArrayValue?: boolean): (array: boolean[]) => boolean;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceBooleansFn = exports.reduceBooleansWithOrFn = exports.reduceBooleansWithAndFn = exports.reduceBooleansWithOr = exports.reduceBooleansWithAnd = void 0;
4
+ function reduceBooleansWithAnd(array, emptyArrayValue) {
5
+ return reduceBooleansWithAndFn(emptyArrayValue)(array);
6
+ }
7
+ exports.reduceBooleansWithAnd = reduceBooleansWithAnd;
8
+ function reduceBooleansWithOr(array, emptyArrayValue) {
9
+ return reduceBooleansWithOrFn(emptyArrayValue)(array);
10
+ }
11
+ exports.reduceBooleansWithOr = reduceBooleansWithOr;
12
+ function reduceBooleansWithAndFn(emptyArrayValue) {
13
+ return reduceBooleansFn((a, b) => a && b, emptyArrayValue);
14
+ }
15
+ exports.reduceBooleansWithAndFn = reduceBooleansWithAndFn;
16
+ function reduceBooleansWithOrFn(emptyArrayValue) {
17
+ return reduceBooleansFn((a, b) => a || b, emptyArrayValue);
18
+ }
19
+ exports.reduceBooleansWithOrFn = reduceBooleansWithOrFn;
20
+ function reduceBooleansFn(reduceFn, emptyArrayValue) {
21
+ const rFn = (array) => Boolean(array.reduce(reduceFn));
22
+ if (emptyArrayValue != null) {
23
+ return (array) => (array.length) ? rFn(array) : emptyArrayValue;
24
+ }
25
+ else {
26
+ return rFn;
27
+ }
28
+ }
29
+ exports.reduceBooleansFn = reduceBooleansFn;
30
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/boolean.ts"],"names":[],"mappings":";;;AACA,SAAgB,qBAAqB,CAAC,KAAgB,EAAE,eAAyB;IAC/E,OAAO,uBAAuB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAFD,sDAEC;AAED,SAAgB,oBAAoB,CAAC,KAAgB,EAAE,eAAyB;IAC9E,OAAO,sBAAsB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAFD,oDAEC;AAED,SAAgB,uBAAuB,CAAC,eAAyB;IAC/D,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAFD,0DAEC;AAED,SAAgB,sBAAsB,CAAC,eAAyB;IAC9D,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAFD,wDAEC;AAED,SAAgB,gBAAgB,CAAC,QAA+C,EAAE,eAAyB;IACzG,MAAM,GAAG,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElE,IAAI,eAAe,IAAI,IAAI,EAAE;QAC3B,OAAO,CAAC,KAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;KAC5E;SAAM;QACL,OAAO,GAAG,CAAC;KACZ;AACH,CAAC;AARD,4CAQC"}
@@ -0,0 +1,16 @@
1
+ import { EmailAddress } from "./email";
2
+ export declare type EmailAddressDomain = string;
3
+ export declare function readDomainsFromEmailAddresses(addresses: EmailAddress[]): EmailAddressDomain[];
4
+ export declare function readDomainFromEmailAddress(address: EmailAddress): EmailAddressDomain;
5
+ /**
6
+ * Reads a domain from the input that can be formatted as
7
+ *
8
+ * - A url: www.test.com,
9
+ * - A url with the protocol (://): https://www.test.com
10
+ * - An email address: test@test.com
11
+ * - A domain: test.com
12
+ *
13
+ * @param urlLikeInput
14
+ * @returns The domain
15
+ */
16
+ export declare function readDomainFromUrlOrEmailAddress(urlLikeInput: string | EmailAddress | EmailAddressDomain): EmailAddressDomain;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readDomainFromUrlOrEmailAddress = exports.readDomainFromEmailAddress = exports.readDomainsFromEmailAddresses = void 0;
4
+ const array_1 = require("../array");
5
+ function readDomainsFromEmailAddresses(addresses) {
6
+ return (0, array_1.uniqueCaseInsensitiveStrings)(addresses.map(readDomainFromEmailAddress));
7
+ }
8
+ exports.readDomainsFromEmailAddresses = readDomainsFromEmailAddresses;
9
+ function readDomainFromEmailAddress(address) {
10
+ const split = address.split('@');
11
+ const domain = split[1];
12
+ return domain.toLowerCase();
13
+ }
14
+ exports.readDomainFromEmailAddress = readDomainFromEmailAddress;
15
+ /**
16
+ * Reads a domain from the input that can be formatted as
17
+ *
18
+ * - A url: www.test.com,
19
+ * - A url with the protocol (://): https://www.test.com
20
+ * - An email address: test@test.com
21
+ * - A domain: test.com
22
+ *
23
+ * @param urlLikeInput
24
+ * @returns The domain
25
+ */
26
+ function readDomainFromUrlOrEmailAddress(urlLikeInput) {
27
+ const emailSplit = urlLikeInput.split('@');
28
+ const url = emailSplit[emailSplit.length - 1];
29
+ let domain;
30
+ if (emailSplit.length > 1) {
31
+ domain = url;
32
+ }
33
+ else {
34
+ const httpSplit = urlLikeInput.split('://');
35
+ domain = httpSplit[httpSplit.length - 1];
36
+ // strip out www. if it is provided, as it is a 'special' domain type,
37
+ // and emails probably don't come from there.
38
+ if (domain.startsWith('www')) {
39
+ domain = domain.split('www.', 2)[1];
40
+ }
41
+ }
42
+ return domain;
43
+ }
44
+ exports.readDomainFromUrlOrEmailAddress = readDomainFromUrlOrEmailAddress;
45
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/contact/domain.ts"],"names":[],"mappings":";;;AAAA,oCAAgF;AAKhF,SAAgB,6BAA6B,CAAC,SAAyB;IACrE,OAAO,IAAA,oCAA4B,EAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,sEAEC;AAED,SAAgB,0BAA0B,CAAC,OAAqB;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC;AAJD,gEAIC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAAC,YAAwD;IACtG,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAI,MAAM,CAAC;IAEX,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC;KACd;SAAM;QACL,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzC,sEAAsE;QACtE,6CAA6C;QAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AApBD,0EAoBC"}
@@ -0,0 +1,17 @@
1
+ export declare type EmailAddress = string;
2
+ export interface NameEmailPair {
3
+ name?: string;
4
+ email: EmailAddress;
5
+ }
6
+ export interface EmailParticipant extends NameEmailPair {
7
+ }
8
+ /**
9
+ * Email participant string. Starts with the email, followed by the name if available.
10
+ */
11
+ export declare type EmailParticipantString = string;
12
+ export declare function convertParticipantToEmailParticipantString(participant: EmailParticipant): EmailParticipantString;
13
+ export declare function convertEmailParticipantStringToParticipant(participantString: EmailParticipantString): EmailParticipant;
14
+ export declare function coerceToEmailParticipants({ participants, emails }: {
15
+ participants?: EmailParticipant[];
16
+ emails?: EmailAddress[];
17
+ }): EmailParticipant[];