@dereekb/util 9.24.16 → 9.24.18

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.24.18](https://github.com/dereekb/dbx-components/compare/v9.24.17-dev...v9.24.18) (2023-07-30)
6
+
7
+
8
+
9
+ ## [9.24.17](https://github.com/dereekb/dbx-components/compare/v9.24.16-dev...v9.24.17) (2023-07-24)
10
+
11
+
12
+
5
13
  ## [9.24.16](https://github.com/dereekb/dbx-components/compare/v9.24.15-dev...v9.24.16) (2023-07-14)
6
14
 
7
15
 
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.24.18](https://github.com/dereekb/dbx-components/compare/v9.24.17-dev...v9.24.18) (2023-07-30)
6
+
7
+
8
+
9
+ ## [9.24.17](https://github.com/dereekb/dbx-components/compare/v9.24.16-dev...v9.24.17) (2023-07-24)
10
+
11
+
12
+
5
13
  ## [9.24.16](https://github.com/dereekb/dbx-components/compare/v9.24.15-dev...v9.24.16) (2023-07-14)
6
14
 
7
15
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dereekb/util/fetch",
3
- "version": "9.24.16",
3
+ "version": "9.24.18",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "@dereekb/util": "9.24.16",
8
+ "@dereekb/util": "9.24.18",
9
9
  "lodash.isequal": "^4.5.0",
10
10
  "make-error": "^1.3.0",
11
11
  "class-validator": "^0.13.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/util",
3
- "version": "9.24.16",
3
+ "version": "9.24.18",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -1,7 +1,21 @@
1
+ import { Maybe } from '../value/maybe.type';
1
2
  /**
2
3
  * Phone number string input. No format specified.
4
+ *
5
+ * Examples:
6
+ * - 4567890
7
+ * - 123-456-7890
8
+ * - (123) 456-7890
9
+ * - 1234567890
10
+ * - +1234567890
11
+ * - +1-555-555-5555
12
+ * - 2345678;ext=123
3
13
  */
4
14
  export declare type PhoneNumber = string;
15
+ /**
16
+ * 1-6 digit extension number
17
+ */
18
+ export declare type PhoneExtensionNumber = string;
5
19
  /**
6
20
  * E.164 Standardized Phone Number. Always starts with a +
7
21
  *
@@ -14,3 +28,53 @@ export declare type E164PhoneNumber = `+${PhoneNumber}`;
14
28
  * Requires the + to be provided.
15
29
  */
16
30
  export declare const E164PHONE_NUMBER_REGEX: RegExp;
31
+ /**
32
+ * Returns true if the input phone number is a valid E164PHONE_NUMBER_REGEX value.
33
+ *
34
+ * @param input
35
+ * @returns
36
+ */
37
+ export declare function isE164PhoneNumber(input: string, allowExtension?: boolean): input is E164PhoneNumber;
38
+ /**
39
+ * E.164 Standardized Phone Number. Always starts with a +
40
+ *
41
+ * https://en.wikipedia.org/wiki/E.164
42
+ */
43
+ export declare type E164PhoneNumberWithExtension = `+${PhoneNumber}#${PhoneExtensionNumber}`;
44
+ /**
45
+ * E164PhoneNumber regex validator with an optional extension.
46
+ *
47
+ * Requires the + to be provided.
48
+ */
49
+ export declare const E164PHONE_NUMBER_WITH_OPTIONAL_EXTENSION_REGEX: RegExp;
50
+ /**
51
+ * E164PhoneNumber regex validator with an extension.
52
+ *
53
+ * Requires the + to be provided.
54
+ */
55
+ export declare const E164PHONE_NUMBER_WITH_EXTENSION_REGEX: RegExp;
56
+ /**
57
+ * Returns true if the input phone number is a valid E164PHONE_NUMBER_WITH_EXTENSION_REGEX value.
58
+ *
59
+ * @param input
60
+ * @returns
61
+ */
62
+ export declare function isE164PhoneNumberWithExtension(input: string): input is E164PhoneNumberWithExtension;
63
+ export declare const PHONE_EXTENSION_NUMBER_REGEX: RegExp;
64
+ /**
65
+ * Returns true if the input is a valid phone number extension.
66
+ *
67
+ * @param input
68
+ * @returns
69
+ */
70
+ export declare function isValidPhoneExtensionNumber(input: string): input is PhoneExtensionNumber;
71
+ /**
72
+ * Removes the extension characters from the input phone number.
73
+ */
74
+ export declare const removeExtensionFromPhoneNumber: (input: PhoneNumber | E164PhoneNumber | E164PhoneNumberWithExtension) => E164PhoneNumber;
75
+ export interface E164PhoneNumberExtensionPair {
76
+ number: E164PhoneNumber;
77
+ extension?: Maybe<PhoneExtensionNumber>;
78
+ }
79
+ export declare function e164PhoneNumberExtensionPair(input: PhoneNumber | E164PhoneNumber | E164PhoneNumberWithExtension): E164PhoneNumberExtensionPair;
80
+ export declare function e164PhoneNumberFromE164PhoneNumberExtensionPair(input: E164PhoneNumberExtensionPair): E164PhoneNumber | E164PhoneNumberWithExtension;
@@ -1,10 +1,71 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.E164PHONE_NUMBER_REGEX = void 0;
3
+ exports.e164PhoneNumberFromE164PhoneNumberExtensionPair = exports.e164PhoneNumberExtensionPair = exports.removeExtensionFromPhoneNumber = exports.isValidPhoneExtensionNumber = exports.PHONE_EXTENSION_NUMBER_REGEX = exports.isE164PhoneNumberWithExtension = exports.E164PHONE_NUMBER_WITH_EXTENSION_REGEX = exports.E164PHONE_NUMBER_WITH_OPTIONAL_EXTENSION_REGEX = exports.isE164PhoneNumber = exports.E164PHONE_NUMBER_REGEX = void 0;
4
+ const replace_1 = require("../string/replace");
4
5
  /**
5
6
  * E164PhoneNumber regex validator.
6
7
  *
7
8
  * Requires the + to be provided.
8
9
  */
9
10
  exports.E164PHONE_NUMBER_REGEX = /^\+[1-9]\d{1,14}$/;
11
+ /**
12
+ * Returns true if the input phone number is a valid E164PHONE_NUMBER_REGEX value.
13
+ *
14
+ * @param input
15
+ * @returns
16
+ */
17
+ function isE164PhoneNumber(input, allowExtension = true) {
18
+ return (allowExtension ? exports.E164PHONE_NUMBER_WITH_OPTIONAL_EXTENSION_REGEX : exports.E164PHONE_NUMBER_REGEX).test(input);
19
+ }
20
+ exports.isE164PhoneNumber = isE164PhoneNumber;
21
+ /**
22
+ * E164PhoneNumber regex validator with an optional extension.
23
+ *
24
+ * Requires the + to be provided.
25
+ */
26
+ exports.E164PHONE_NUMBER_WITH_OPTIONAL_EXTENSION_REGEX = /^\+[1-9]\d{1,14}(#\d{1,6})?$/;
27
+ /**
28
+ * E164PhoneNumber regex validator with an extension.
29
+ *
30
+ * Requires the + to be provided.
31
+ */
32
+ exports.E164PHONE_NUMBER_WITH_EXTENSION_REGEX = /^\+[1-9]\d{1,14}(#\d{1,6})$/;
33
+ /**
34
+ * Returns true if the input phone number is a valid E164PHONE_NUMBER_WITH_EXTENSION_REGEX value.
35
+ *
36
+ * @param input
37
+ * @returns
38
+ */
39
+ function isE164PhoneNumberWithExtension(input) {
40
+ return exports.E164PHONE_NUMBER_WITH_EXTENSION_REGEX.test(input);
41
+ }
42
+ exports.isE164PhoneNumberWithExtension = isE164PhoneNumberWithExtension;
43
+ exports.PHONE_EXTENSION_NUMBER_REGEX = /^\d{1,6}$/;
44
+ /**
45
+ * Returns true if the input is a valid phone number extension.
46
+ *
47
+ * @param input
48
+ * @returns
49
+ */
50
+ function isValidPhoneExtensionNumber(input) {
51
+ return exports.PHONE_EXTENSION_NUMBER_REGEX.test(input);
52
+ }
53
+ exports.isValidPhoneExtensionNumber = isValidPhoneExtensionNumber;
54
+ /**
55
+ * Removes the extension characters from the input phone number.
56
+ */
57
+ exports.removeExtensionFromPhoneNumber = (0, replace_1.removeCharactersAfterFirstCharacterOccurenceFunction)('#');
58
+ const e164PhoneNumberExtensionPairSplitterFunction = (0, replace_1.splitStringAtFirstCharacterOccurenceFunction)('#');
59
+ function e164PhoneNumberExtensionPair(input) {
60
+ const split = e164PhoneNumberExtensionPairSplitterFunction(input);
61
+ return {
62
+ number: split[0],
63
+ extension: split[1]
64
+ };
65
+ }
66
+ exports.e164PhoneNumberExtensionPair = e164PhoneNumberExtensionPair;
67
+ function e164PhoneNumberFromE164PhoneNumberExtensionPair(input) {
68
+ return input.extension ? `${input.number}#${input.extension}` : input.number;
69
+ }
70
+ exports.e164PhoneNumberFromE164PhoneNumberExtensionPair = e164PhoneNumberFromE164PhoneNumberExtensionPair;
10
71
  //# sourceMappingURL=phone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/contact/phone.ts"],"names":[],"mappings":";;;AAYA;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/contact/phone.ts"],"names":[],"mappings":";;;AAAA,+CAAuI;AA6BvI;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAa,EAAE,cAAc,GAAG,IAAI;IACpE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,sDAA8C,CAAC,CAAC,CAAC,8BAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChH,CAAC;AAFD,8CAEC;AASD;;;;GAIG;AACU,QAAA,8CAA8C,GAAG,8BAA8B,CAAC;AAE7F;;;;GAIG;AACU,QAAA,qCAAqC,GAAG,6BAA6B,CAAC;AAEnF;;;;;GAKG;AACH,SAAgB,8BAA8B,CAAC,KAAa;IAC1D,OAAO,6CAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAFD,wEAEC;AAEY,QAAA,4BAA4B,GAAG,WAAW,CAAC;AAExD;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,KAAa;IACvD,OAAO,oCAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAFD,kEAEC;AAED;;GAEG;AACU,QAAA,8BAA8B,GAAG,IAAA,8DAAoD,EAAC,GAAG,CAA6F,CAAC;AAOpM,MAAM,4CAA4C,GAAG,IAAA,sDAA4C,EAAC,GAAG,CAAC,CAAC;AAEvG,SAAgB,4BAA4B,CAAC,KAAmE;IAC9G,MAAM,KAAK,GAAG,4CAA4C,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAoB;QACnC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAPD,oEAOC;AAED,SAAgB,+CAA+C,CAAC,KAAmC;IACjG,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/E,CAAC;AAFD,0GAEC"}
@@ -0,0 +1,67 @@
1
+ import { MapFunction } from '../value';
2
+ /**
3
+ * A bitwise set is limited to 32 values, the numbers 0-31.
4
+ *
5
+ * This is because Javascript performs bitwise calculations on 32-bit values.
6
+ */
7
+ export declare const MAX_BITWISE_SET_SIZE = 32;
8
+ /**
9
+ * Enum or number value from 0 to 31 that denotes a specific item via index of the bit to measure.
10
+ */
11
+ export declare type BitwiseEncodedSetIndex = number;
12
+ /**
13
+ * Set of values that are encoded into a single number.
14
+ *
15
+ * The number can include up to 32 unique boolean values.
16
+ */
17
+ export declare type BitwiseEncodedSet = number;
18
+ /**
19
+ * Encodes a BitwiseEncodedSet from a set of values.
20
+ */
21
+ export declare type BitwiseSetEncoder<D extends BitwiseEncodedSetIndex> = (set: Set<D>) => BitwiseEncodedSet;
22
+ export declare function encodeBitwiseSet<D extends BitwiseEncodedSetIndex>(input: Set<D>): BitwiseEncodedSet;
23
+ /**
24
+ * Decodes an BitwiseEncodedSet to a Set of values.
25
+ */
26
+ export declare type BitwiseSetDecoder<D extends BitwiseEncodedSetIndex> = (set: BitwiseEncodedSet) => Set<D>;
27
+ export declare function bitwiseSetDecoder<D extends BitwiseEncodedSetIndex>(maxIndex: number): BitwiseSetDecoder<D>;
28
+ export declare const dencodeBitwiseSet: BitwiseSetDecoder<number>;
29
+ /**
30
+ * Encodes and Decodes a BitwiseEncodedSet, depending on the input.
31
+ */
32
+ export declare type BitwiseSetDencoder<D extends BitwiseEncodedSetIndex> = BitwiseSetEncoder<D> & BitwiseSetDecoder<D>;
33
+ export declare function bitwiseSetDencoder<D extends BitwiseEncodedSetIndex>(maxIndex?: number): BitwiseSetDencoder<D>;
34
+ /**
35
+ * Maps the input object to a set of index values.
36
+ */
37
+ export declare type BitwiseObjectToSetFunction<T extends object, D extends BitwiseEncodedSetIndex> = MapFunction<T, Set<D>>;
38
+ /**
39
+ * Maps the input object from a set of index values.
40
+ */
41
+ export declare type BitwiseObjectFromSetFunction<T extends object, D extends BitwiseEncodedSetIndex> = MapFunction<Set<D>, T>;
42
+ /**
43
+ * Encodes the input object to a BitwiseEncodedSet.
44
+ */
45
+ export declare type BitwiseObjectEncoder<T extends object> = (object: T) => BitwiseEncodedSet;
46
+ /**
47
+ * Creates a BitwiseObjectEncoder<T> from the input.
48
+ *
49
+ * @param toSetFunction
50
+ * @returns
51
+ */
52
+ export declare function bitwiseObjectEncoder<T extends object, D extends BitwiseEncodedSetIndex>(toSetFunction: BitwiseObjectToSetFunction<T, D>): BitwiseObjectEncoder<T>;
53
+ /**
54
+ * Decodes an object from the input BitwiseEncodedSet.
55
+ */
56
+ export declare type BitwiseObjectDecoder<T extends object> = (set: BitwiseEncodedSet) => T;
57
+ export declare function bitwiseObjectdecoder<T extends object, D extends BitwiseEncodedSetIndex>(fromSetFunction: BitwiseObjectFromSetFunction<T, D>, maxIndex?: number): BitwiseObjectDecoder<T>;
58
+ /**
59
+ * Encodes/Decodes an object.
60
+ */
61
+ export declare type BitwiseObjectDencoder<T extends object> = BitwiseObjectEncoder<T> & BitwiseObjectDecoder<T>;
62
+ export interface BitwiseObjectDencoderConfig<T extends object, D extends BitwiseEncodedSetIndex = BitwiseEncodedSetIndex> {
63
+ readonly toSetFunction: BitwiseObjectToSetFunction<T, D>;
64
+ readonly fromSetFunction: BitwiseObjectFromSetFunction<T, D>;
65
+ readonly maxIndex?: number;
66
+ }
67
+ export declare function bitwiseObjectDencoder<T extends object, D extends BitwiseEncodedSetIndex = BitwiseEncodedSetIndex>(config: BitwiseObjectDencoderConfig<T, D>): BitwiseObjectDencoder<T>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ // MARK: BitwiseSet
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.bitwiseObjectDencoder = exports.bitwiseObjectdecoder = exports.bitwiseObjectEncoder = exports.bitwiseSetDencoder = exports.dencodeBitwiseSet = exports.bitwiseSetDecoder = exports.encodeBitwiseSet = exports.MAX_BITWISE_SET_SIZE = void 0;
5
+ /**
6
+ * A bitwise set is limited to 32 values, the numbers 0-31.
7
+ *
8
+ * This is because Javascript performs bitwise calculations on 32-bit values.
9
+ */
10
+ exports.MAX_BITWISE_SET_SIZE = 32;
11
+ function encodeBitwiseSet(input) {
12
+ let encodedSet = 0;
13
+ input.forEach((value) => {
14
+ encodedSet = encodedSet | (1 << value);
15
+ });
16
+ return encodedSet;
17
+ }
18
+ exports.encodeBitwiseSet = encodeBitwiseSet;
19
+ function bitwiseSetDecoder(maxIndex) {
20
+ return (input) => {
21
+ let encodedSet = new Set();
22
+ for (let i = 0; i < maxIndex; i += 1) {
23
+ if (input & (1 << i)) {
24
+ encodedSet.add(i);
25
+ }
26
+ }
27
+ return encodedSet;
28
+ };
29
+ }
30
+ exports.bitwiseSetDecoder = bitwiseSetDecoder;
31
+ exports.dencodeBitwiseSet = bitwiseSetDecoder(exports.MAX_BITWISE_SET_SIZE);
32
+ function bitwiseSetDencoder(maxIndex) {
33
+ const decoder = maxIndex ? bitwiseSetDecoder(maxIndex) : exports.dencodeBitwiseSet;
34
+ return ((input) => {
35
+ if (typeof input === 'number') {
36
+ return decoder(input);
37
+ }
38
+ else if (input != null) {
39
+ return encodeBitwiseSet(input);
40
+ }
41
+ else {
42
+ return 0;
43
+ }
44
+ });
45
+ }
46
+ exports.bitwiseSetDencoder = bitwiseSetDencoder;
47
+ /**
48
+ * Creates a BitwiseObjectEncoder<T> from the input.
49
+ *
50
+ * @param toSetFunction
51
+ * @returns
52
+ */
53
+ function bitwiseObjectEncoder(toSetFunction) {
54
+ return (input) => {
55
+ const encodedSet = toSetFunction(input);
56
+ return encodeBitwiseSet(encodedSet);
57
+ };
58
+ }
59
+ exports.bitwiseObjectEncoder = bitwiseObjectEncoder;
60
+ function bitwiseObjectdecoder(fromSetFunction, maxIndex) {
61
+ const decoder = maxIndex ? bitwiseSetDecoder(maxIndex) : exports.dencodeBitwiseSet;
62
+ return (set) => {
63
+ const decoded = decoder(set);
64
+ return fromSetFunction(decoded);
65
+ };
66
+ }
67
+ exports.bitwiseObjectdecoder = bitwiseObjectdecoder;
68
+ function bitwiseObjectDencoder(config) {
69
+ const encoder = bitwiseObjectEncoder(config.toSetFunction);
70
+ const decoder = bitwiseObjectdecoder(config.fromSetFunction, config.maxIndex);
71
+ return ((input) => {
72
+ if (typeof input === 'number') {
73
+ return decoder(input);
74
+ }
75
+ else if (input != null) {
76
+ return encoder(input);
77
+ }
78
+ else {
79
+ return 0;
80
+ }
81
+ });
82
+ }
83
+ exports.bitwiseObjectDencoder = bitwiseObjectDencoder;
84
+ //# sourceMappingURL=bitwise.dencoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitwise.dencoder.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/bitwise.dencoder.ts"],"names":[],"mappings":";AAAA,mBAAmB;;;AAInB;;;;GAIG;AACU,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAmBvC,SAAgB,gBAAgB,CAAmC,KAAa;IAC9E,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtB,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AARD,4CAQC;AAOD,SAAgB,iBAAiB,CAAmC,QAAgB;IAClF,OAAO,CAAC,KAAwB,EAAE,EAAE;QAClC,IAAI,UAAU,GAAG,IAAI,GAAG,EAAK,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;gBACpB,UAAU,CAAC,GAAG,CAAC,CAAM,CAAC,CAAC;aACxB;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAZD,8CAYC;AAEY,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,4BAAoB,CAAC,CAAC;AAOzE,SAAgB,kBAAkB,CAAmC,QAAiB;IACpF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAiB,CAAC;IAE9E,OAAO,CAAC,CAAC,KAAiC,EAAE,EAAE;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;SACvB;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;YACxB,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAChC;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC,CAA0B,CAAC;AAC9B,CAAC;AAZD,gDAYC;AAkBD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAqD,aAA+C;IACtI,OAAO,CAAC,KAAQ,EAAE,EAAE;QAClB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AALD,oDAKC;AAOD,SAAgB,oBAAoB,CAAqD,eAAmD,EAAE,QAAiB;IAC7J,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAiB,CAAC;IAE9E,OAAO,CAAC,GAAsB,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAW,CAAC;QACvC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAPD,oDAOC;AAaD,SAAgB,qBAAqB,CAA8E,MAAyC;IAC1J,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9E,OAAO,CAAC,CAAC,KAA4B,EAAE,EAAE;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;SACvB;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;YACxB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;SACvB;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC,CAA6B,CAAC;AACjC,CAAC;AAbD,sDAaC"}
@@ -1,3 +1,4 @@
1
+ export * from './bitwise.dencoder';
1
2
  export * from './factory';
2
3
  export * from './bound';
3
4
  export * from './dollar';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./bitwise.dencoder"), exports);
4
5
  tslib_1.__exportStar(require("./factory"), exports);
5
6
  tslib_1.__exportStar(require("./bound"), exports);
6
7
  tslib_1.__exportStar(require("./dollar"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,mDAAyB;AACzB,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB;AACvB,sDAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,mDAAyB;AACzB,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB;AACvB,sDAA4B"}
@@ -1,4 +1,5 @@
1
- import { ArrayOrValue } from '@dereekb/util';
1
+ import { ArrayOrValue } from '../array/array';
2
+ import { Maybe } from '../value/maybe.type';
2
3
  import { MapSameFunction } from '../value/map';
3
4
  export declare type ReplaceStringsFunction = MapSameFunction<string>;
4
5
  export interface ReplaceStringsConfig {
@@ -28,6 +29,70 @@ export declare function findStringsRegexString(find: ArrayOrValue<string>): stri
28
29
  * @param input
29
30
  */
30
31
  export declare function escapeStringForRegex(input: string): string;
31
- export declare type FindAllCharacterOccurencesFunction = (input: string) => number[];
32
+ export declare type FindAllCharacterOccurencesFunction = (input: string, max?: Maybe<number>) => number[];
32
33
  export declare function findAllCharacterOccurencesFunction(characterSet: Set<string>): FindAllCharacterOccurencesFunction;
33
- export declare function findAllCharacterOccurences(set: Set<string>, input: string): number[];
34
+ /**
35
+ * First all occurences of the characters from the set in the input string.
36
+ *
37
+ * @param set
38
+ * @param input
39
+ * @returns
40
+ */
41
+ export declare function findAllCharacterOccurences(set: Set<string>, input: string, max?: number): number[];
42
+ /**
43
+ * First the first occurence of a character from the set in the input string.
44
+ *
45
+ * @param set
46
+ * @param input
47
+ * @returns
48
+ */
49
+ export declare function findFirstCharacterOccurence(set: Set<string>, input: string): Maybe<number>;
50
+ export declare type SplitStringAtFirstCharacterOccurenceFunction = (input: string) => [string, string | undefined];
51
+ /**
52
+ * Splits the string into two parts at the first occurence of a string or any string in the set.
53
+ *
54
+ * @param set
55
+ * @param input
56
+ */
57
+ export declare function splitStringAtFirstCharacterOccurenceFunction(splitAt: string | Set<string>): SplitStringAtFirstCharacterOccurenceFunction;
58
+ export declare function splitStringAtFirstCharacterOccurence(input: string, splitAt: string | Set<string>): [string, string | undefined];
59
+ /**
60
+ * Keeps all characters from the input string after the first character occurence pre-determined by the function.
61
+ *
62
+ * If no trigger characters exist, returns an empty string.
63
+ */
64
+ export declare type KeepCharactersAfterFirstCharacterOccurenceFunction = (input: string) => string;
65
+ /**
66
+ * Splits the string into two parts at the first occurence of a string or any string in the set.
67
+ *
68
+ * @param set
69
+ * @param input
70
+ */
71
+ export declare function keepCharactersAfterFirstCharacterOccurenceFunction(findCharacters: string | Set<string>): KeepCharactersAfterFirstCharacterOccurenceFunction;
72
+ /**
73
+ * Keeps all characters from the input string after the first character occurence from findCharacters input.
74
+ *
75
+ * @param input
76
+ * @param splitAt
77
+ * @returns
78
+ */
79
+ export declare function keepCharactersAfterFirstCharacterOccurence(input: string, findCharacters: string | Set<string>): string;
80
+ /**
81
+ * Removes all characters from the input string after the first character occurence pre-determined by the function.
82
+ */
83
+ export declare type RemoveCharactersAfterFirstCharacterOccurenceFunction = (input: string) => string;
84
+ /**
85
+ * Splits the string into two parts at the first occurence of a string or any string in the set.
86
+ *
87
+ * @param set
88
+ * @param input
89
+ */
90
+ export declare function removeCharactersAfterFirstCharacterOccurenceFunction(findCharacters: string | Set<string>): RemoveCharactersAfterFirstCharacterOccurenceFunction;
91
+ /**
92
+ * Removes all characters from the input string after the first character occurence from findCharacters input.
93
+ *
94
+ * @param input
95
+ * @param splitAt
96
+ * @returns
97
+ */
98
+ export declare function removeCharactersAfterFirstCharacterOccurence(input: string, findCharacters: string | Set<string>): string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findAllCharacterOccurences = exports.findAllCharacterOccurencesFunction = exports.escapeStringForRegex = exports.findStringsRegexString = exports.REGEX_SPECIAL_CHARACTERS_SET = exports.REGEX_SPECIAL_CHARACTERS = exports.replaceStringsFunction = void 0;
4
- const util_1 = require("@dereekb/util");
3
+ exports.removeCharactersAfterFirstCharacterOccurence = exports.removeCharactersAfterFirstCharacterOccurenceFunction = exports.keepCharactersAfterFirstCharacterOccurence = exports.keepCharactersAfterFirstCharacterOccurenceFunction = exports.splitStringAtFirstCharacterOccurence = exports.splitStringAtFirstCharacterOccurenceFunction = exports.findFirstCharacterOccurence = exports.findAllCharacterOccurences = exports.findAllCharacterOccurencesFunction = exports.escapeStringForRegex = exports.findStringsRegexString = exports.REGEX_SPECIAL_CHARACTERS_SET = exports.REGEX_SPECIAL_CHARACTERS = exports.replaceStringsFunction = void 0;
4
+ const array_1 = require("../array/array");
5
5
  const char_1 = require("./char");
6
6
  function replaceStringsFunction(config) {
7
7
  const { replace: replaceInput, replaceWith } = config;
@@ -18,7 +18,7 @@ exports.REGEX_SPECIAL_CHARACTERS_SET = new Set(exports.REGEX_SPECIAL_CHARACTERS)
18
18
  * @param find
19
19
  */
20
20
  function findStringsRegexString(find) {
21
- const input = (0, util_1.asArray)(find);
21
+ const input = (0, array_1.asArray)(find);
22
22
  const escapedInput = input.map(escapeStringForRegex);
23
23
  return escapedInput.join('|');
24
24
  }
@@ -70,20 +70,112 @@ function escapeStringForRegex(input) {
70
70
  }
71
71
  exports.escapeStringForRegex = escapeStringForRegex;
72
72
  function findAllCharacterOccurencesFunction(characterSet) {
73
- return (input) => {
73
+ return (input, maxToReturn) => {
74
+ const max = maxToReturn !== null && maxToReturn !== void 0 ? maxToReturn : Number.MAX_SAFE_INTEGER;
74
75
  const occurrences = [];
75
76
  for (let i = 0; i < input.length; i += 1) {
76
77
  const char = input[i];
77
78
  if (characterSet.has(char)) {
78
79
  occurrences.push(i);
80
+ // return if at the max number of occurences
81
+ if (occurrences.length >= max) {
82
+ break;
83
+ }
79
84
  }
80
85
  }
81
86
  return occurrences;
82
87
  };
83
88
  }
84
89
  exports.findAllCharacterOccurencesFunction = findAllCharacterOccurencesFunction;
85
- function findAllCharacterOccurences(set, input) {
86
- return findAllCharacterOccurencesFunction(set)(input);
90
+ /**
91
+ * First all occurences of the characters from the set in the input string.
92
+ *
93
+ * @param set
94
+ * @param input
95
+ * @returns
96
+ */
97
+ function findAllCharacterOccurences(set, input, max) {
98
+ return findAllCharacterOccurencesFunction(set)(input, max);
87
99
  }
88
100
  exports.findAllCharacterOccurences = findAllCharacterOccurences;
101
+ /**
102
+ * First the first occurence of a character from the set in the input string.
103
+ *
104
+ * @param set
105
+ * @param input
106
+ * @returns
107
+ */
108
+ function findFirstCharacterOccurence(set, input) {
109
+ return findAllCharacterOccurences(set, input, 1)[0];
110
+ }
111
+ exports.findFirstCharacterOccurence = findFirstCharacterOccurence;
112
+ /**
113
+ * Splits the string into two parts at the first occurence of a string or any string in the set.
114
+ *
115
+ * @param set
116
+ * @param input
117
+ */
118
+ function splitStringAtFirstCharacterOccurenceFunction(splitAt) {
119
+ return (input) => {
120
+ const splitSet = typeof splitAt === 'string' ? new Set([splitAt]) : splitAt;
121
+ const firstOccurence = findFirstCharacterOccurence(splitSet, input);
122
+ let result;
123
+ if (firstOccurence != null) {
124
+ result = (0, char_1.splitStringAtIndex)(input, firstOccurence, false);
125
+ }
126
+ else {
127
+ result = [input, undefined];
128
+ }
129
+ return result;
130
+ };
131
+ }
132
+ exports.splitStringAtFirstCharacterOccurenceFunction = splitStringAtFirstCharacterOccurenceFunction;
133
+ function splitStringAtFirstCharacterOccurence(input, splitAt) {
134
+ return splitStringAtFirstCharacterOccurenceFunction(splitAt)(input);
135
+ }
136
+ exports.splitStringAtFirstCharacterOccurence = splitStringAtFirstCharacterOccurence;
137
+ /**
138
+ * Splits the string into two parts at the first occurence of a string or any string in the set.
139
+ *
140
+ * @param set
141
+ * @param input
142
+ */
143
+ function keepCharactersAfterFirstCharacterOccurenceFunction(findCharacters) {
144
+ const splitStringAtFirstCharacterOccurence = splitStringAtFirstCharacterOccurenceFunction(findCharacters);
145
+ return (input) => { var _a; return (_a = splitStringAtFirstCharacterOccurence(input)[1]) !== null && _a !== void 0 ? _a : ''; };
146
+ }
147
+ exports.keepCharactersAfterFirstCharacterOccurenceFunction = keepCharactersAfterFirstCharacterOccurenceFunction;
148
+ /**
149
+ * Keeps all characters from the input string after the first character occurence from findCharacters input.
150
+ *
151
+ * @param input
152
+ * @param splitAt
153
+ * @returns
154
+ */
155
+ function keepCharactersAfterFirstCharacterOccurence(input, findCharacters) {
156
+ return keepCharactersAfterFirstCharacterOccurenceFunction(findCharacters)(input);
157
+ }
158
+ exports.keepCharactersAfterFirstCharacterOccurence = keepCharactersAfterFirstCharacterOccurence;
159
+ /**
160
+ * Splits the string into two parts at the first occurence of a string or any string in the set.
161
+ *
162
+ * @param set
163
+ * @param input
164
+ */
165
+ function removeCharactersAfterFirstCharacterOccurenceFunction(findCharacters) {
166
+ const splitStringAtFirstCharacterOccurence = splitStringAtFirstCharacterOccurenceFunction(findCharacters);
167
+ return (input) => splitStringAtFirstCharacterOccurence(input)[0];
168
+ }
169
+ exports.removeCharactersAfterFirstCharacterOccurenceFunction = removeCharactersAfterFirstCharacterOccurenceFunction;
170
+ /**
171
+ * Removes all characters from the input string after the first character occurence from findCharacters input.
172
+ *
173
+ * @param input
174
+ * @param splitAt
175
+ * @returns
176
+ */
177
+ function removeCharactersAfterFirstCharacterOccurence(input, findCharacters) {
178
+ return removeCharactersAfterFirstCharacterOccurenceFunction(findCharacters)(input);
179
+ }
180
+ exports.removeCharactersAfterFirstCharacterOccurence = removeCharactersAfterFirstCharacterOccurence;
89
181
  //# sourceMappingURL=replace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/string/replace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/string/replace.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EmailAddress } from '../contact/email';
2
- import { PhoneNumber } from '../contact/phone';
2
+ import { E164PhoneNumber, E164PhoneNumberExtensionPair, E164PhoneNumberWithExtension, PhoneNumber } from '../contact/phone';
3
3
  import { IndexRangeInput } from './../value/indexed';
4
4
  import { MapFunction } from '../value/map';
5
5
  import { Maybe } from '../value/maybe.type';
@@ -181,4 +181,11 @@ export interface MailToUrl {
181
181
  }
182
182
  export declare type MailToUrlInput = EmailAddress | MailToUrl;
183
183
  export declare function mailToUrlString(input: MailToUrlInput): string;
184
- export declare function telUrlString(phone: PhoneNumber): string;
184
+ export declare function telUrlString(phone: PhoneNumber | E164PhoneNumber | E164PhoneNumberWithExtension): string;
185
+ /**
186
+ * Creates a tel url string for the input E164PhoneNumberExtensionPair.
187
+ *
188
+ * @param pair
189
+ * @returns
190
+ */
191
+ export declare function telUrlStringForE164PhoneNumberPair(pair: E164PhoneNumberExtensionPair): string;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.telUrlString = exports.mailToUrlString = exports.hasHttpPrefix = exports.removeHttpFromUrl = exports.addHttpToUrl = exports.removeWebProtocolPrefix = exports.setWebProtocolPrefix = exports.WEB_PROTOCOL_PREFIX_REGEX = exports.HTTP_OR_HTTPS_REGEX = exports.websiteDomainAndPathPair = exports.websitePathFromWebsiteDomainAndPath = exports.websiteDomainAndPathPairFromWebsiteUrl = exports.websitePathFromWebsiteUrl = exports.fixExtraQueryParameters = exports.websitePathAndQueryPair = exports.isolateWebsitePathFunction = exports.hasWebsiteDomain = exports.WEBSITE_DOMAIN_NAME_REGEX = void 0;
3
+ exports.telUrlStringForE164PhoneNumberPair = exports.telUrlString = exports.mailToUrlString = exports.hasHttpPrefix = exports.removeHttpFromUrl = exports.addHttpToUrl = exports.removeWebProtocolPrefix = exports.setWebProtocolPrefix = exports.WEB_PROTOCOL_PREFIX_REGEX = exports.HTTP_OR_HTTPS_REGEX = exports.websiteDomainAndPathPair = exports.websitePathFromWebsiteDomainAndPath = exports.websiteDomainAndPathPairFromWebsiteUrl = exports.websitePathFromWebsiteUrl = exports.fixExtraQueryParameters = exports.websitePathAndQueryPair = exports.isolateWebsitePathFunction = exports.hasWebsiteDomain = exports.WEBSITE_DOMAIN_NAME_REGEX = void 0;
4
+ const phone_1 = require("../contact/phone");
4
5
  const path_1 = require("../path/path");
5
6
  const map_1 = require("../value/map");
6
7
  const replace_1 = require("./replace");
@@ -193,7 +194,27 @@ function mailToUrlString(input) {
193
194
  exports.mailToUrlString = mailToUrlString;
194
195
  // MARK: Tel
195
196
  function telUrlString(phone) {
197
+ if ((0, phone_1.isE164PhoneNumber)(phone, true)) {
198
+ const pair = (0, phone_1.e164PhoneNumberExtensionPair)(phone);
199
+ return telUrlStringForE164PhoneNumberPair(pair);
200
+ }
196
201
  return `tel:${phone}`;
197
202
  }
198
203
  exports.telUrlString = telUrlString;
204
+ /**
205
+ * Creates a tel url string for the input E164PhoneNumberExtensionPair.
206
+ *
207
+ * @param pair
208
+ * @returns
209
+ */
210
+ function telUrlStringForE164PhoneNumberPair(pair) {
211
+ // https://stackoverflow.com/questions/9482633/how-do-i-include-extensions-in-the-tel-uri
212
+ if (pair.extension) {
213
+ return `tel:${pair.number};${pair.extension}`;
214
+ }
215
+ else {
216
+ return `tel:${pair.number}`;
217
+ }
218
+ }
219
+ exports.telUrlStringForE164PhoneNumberPair = telUrlStringForE164PhoneNumberPair;
199
220
  //# sourceMappingURL=url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/string/url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/string/url.ts"],"names":[],"mappings":"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"}
package/src/lib/type.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import { Merge, NonNever, PickProperties, StrictOmit, UnionToIntersection, Writable } from 'ts-essentials';
2
2
  import { Maybe } from './value/maybe.type';
3
+ /**
4
+ * Boolean, string or number value.
5
+ */
6
+ export declare type PrimativeValue = boolean | string | number;
3
7
  /**
4
8
  * Class typing, restricted to types that have a constructor via the new keyword.
5
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/type.ts"],"names":[],"mappings":";;;AAeA;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,GAAQ;IAC9C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/G,CAAC;AAFD,0DAEC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,GAAY;;IAC1C,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,0CAAE,QAAQ,CAAA,CAAC;AACtG,CAAC;AAFD,0CAEC;AAID;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,CAAU;;IACxC,2GAA2G;IAC3G,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,0CAAE,QAAQ,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7M,CAAC;AAHD,0CAGC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,CAAU;IAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,OAAO,CAAC;AAC1C,CAAC;AAHD,gDAGC"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/type.ts"],"names":[],"mappings":";;;AAoBA;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,GAAQ;IAC9C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/G,CAAC;AAFD,0DAEC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,GAAY;;IAC1C,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,0CAAE,QAAQ,CAAA,CAAC;AACtG,CAAC;AAFD,0CAEC;AAID;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,CAAU;;IACxC,2GAA2G;IAC3G,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,0CAAE,QAAQ,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7M,CAAC;AAHD,0CAGC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,CAAU;IAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,OAAO,CAAC;AAC1C,CAAC;AAHD,gDAGC"}
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.24.18](https://github.com/dereekb/dbx-components/compare/v9.24.17-dev...v9.24.18) (2023-07-30)
6
+
7
+
8
+
9
+ ## [9.24.17](https://github.com/dereekb/dbx-components/compare/v9.24.16-dev...v9.24.17) (2023-07-24)
10
+
11
+
12
+
5
13
  ## [9.24.16](https://github.com/dereekb/dbx-components/compare/v9.24.15-dev...v9.24.16) (2023-07-14)
6
14
 
7
15
 
package/test/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "9.24.16",
3
+ "version": "9.24.18",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "dependencies": {},
8
8
  "peerDependencies": {
9
- "@dereekb/util": "9.24.16",
9
+ "@dereekb/util": "9.24.18",
10
10
  "lodash.isequal": "^4.5.0",
11
11
  "make-error": "^1.3.0",
12
12
  "class-validator": "^0.13.2",