complete-common 2.29.0 → 2.30.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/functions/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/functions/array.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export declare function assertArrayNumber<T>(value: T, ...[msg]: [T] extends [re
36
36
  ] : [string]): asserts value is T & number[];
37
37
  /**
38
38
  * Helper function to throw an error if the provided value is not an array with every element being
39
- * an object (i.e. a TypeScript record).
39
+ * an object (i.e., a TypeScript record).
40
40
  */
41
41
  export declare function assertArrayObject<T>(value: T, ...[msg]: [T] extends [ReadonlyArray<Record<string, unknown>>] ? [
42
42
  "The assertion is useless because the provided value is already an object array."
@@ -92,7 +92,7 @@ export declare function assertNumber<T>(value: T, ...[msg]: [T] extends [number]
92
92
  "The assertion is useless because the provided value is already a number."
93
93
  ] : [string]): asserts value is T & number;
94
94
  /**
95
- * Helper function to throw an error if the provided value is not an object (i.e. a TypeScript
95
+ * Helper function to throw an error if the provided value is not an object (i.e., a TypeScript
96
96
  * record).
97
97
  *
98
98
  * This is useful to have TypeScript narrow a `Record<string, unknown> | undefined` value to
@@ -103,6 +103,8 @@ export declare function assertNumber<T>(value: T, ...[msg]: [T] extends [number]
103
103
  export declare function assertObject<T>(value: T, ...[msg]: [T] extends [Record<string, unknown>] ? [
104
104
  "The assertion is useless because the provided value is already an object."
105
105
  ] : [string]): asserts value is T & Record<string, unknown>;
106
+ /** Helper function to throw an error if the provided value is not a positive integer. */
107
+ export declare function assertPositiveInteger(value: unknown, msg: string): asserts value is number;
106
108
  /** Helper function to throw an error if the provided value is not a string. */
107
109
  export declare function assertString<T>(value: T, ...[msg]: [T] extends [string] ? [
108
110
  "The assertion is useless because the provided value is already a string."
@@ -36,7 +36,7 @@ export declare function assertArrayNumber<T>(value: T, ...[msg]: [T] extends [re
36
36
  ] : [string]): asserts value is T & number[];
37
37
  /**
38
38
  * Helper function to throw an error if the provided value is not an array with every element being
39
- * an object (i.e. a TypeScript record).
39
+ * an object (i.e., a TypeScript record).
40
40
  */
41
41
  export declare function assertArrayObject<T>(value: T, ...[msg]: [T] extends [ReadonlyArray<Record<string, unknown>>] ? [
42
42
  "The assertion is useless because the provided value is already an object array."
@@ -92,7 +92,7 @@ export declare function assertNumber<T>(value: T, ...[msg]: [T] extends [number]
92
92
  "The assertion is useless because the provided value is already a number."
93
93
  ] : [string]): asserts value is T & number;
94
94
  /**
95
- * Helper function to throw an error if the provided value is not an object (i.e. a TypeScript
95
+ * Helper function to throw an error if the provided value is not an object (i.e., a TypeScript
96
96
  * record).
97
97
  *
98
98
  * This is useful to have TypeScript narrow a `Record<string, unknown> | undefined` value to
@@ -103,6 +103,8 @@ export declare function assertNumber<T>(value: T, ...[msg]: [T] extends [number]
103
103
  export declare function assertObject<T>(value: T, ...[msg]: [T] extends [Record<string, unknown>] ? [
104
104
  "The assertion is useless because the provided value is already an object."
105
105
  ] : [string]): asserts value is T & Record<string, unknown>;
106
+ /** Helper function to throw an error if the provided value is not a positive integer. */
107
+ export declare function assertPositiveInteger(value: unknown, msg: string): asserts value is number;
106
108
  /** Helper function to throw an error if the provided value is not a string. */
107
109
  export declare function assertString<T>(value: T, ...[msg]: [T] extends [string] ? [
108
110
  "The assertion is useless because the provided value is already a string."
@@ -36,7 +36,7 @@ export declare function assertArrayNumber<T>(value: T, ...[msg]: [T] extends [re
36
36
  ] : [string]): asserts value is T & number[];
37
37
  /**
38
38
  * Helper function to throw an error if the provided value is not an array with every element being
39
- * an object (i.e. a TypeScript record).
39
+ * an object (i.e., a TypeScript record).
40
40
  */
41
41
  export declare function assertArrayObject<T>(value: T, ...[msg]: [T] extends [ReadonlyArray<Record<string, unknown>>] ? [
42
42
  "The assertion is useless because the provided value is already an object array."
@@ -92,7 +92,7 @@ export declare function assertNumber<T>(value: T, ...[msg]: [T] extends [number]
92
92
  "The assertion is useless because the provided value is already a number."
93
93
  ] : [string]): asserts value is T & number;
94
94
  /**
95
- * Helper function to throw an error if the provided value is not an object (i.e. a TypeScript
95
+ * Helper function to throw an error if the provided value is not an object (i.e., a TypeScript
96
96
  * record).
97
97
  *
98
98
  * This is useful to have TypeScript narrow a `Record<string, unknown> | undefined` value to
@@ -103,6 +103,8 @@ export declare function assertNumber<T>(value: T, ...[msg]: [T] extends [number]
103
103
  export declare function assertObject<T>(value: T, ...[msg]: [T] extends [Record<string, unknown>] ? [
104
104
  "The assertion is useless because the provided value is already an object."
105
105
  ] : [string]): asserts value is T & Record<string, unknown>;
106
+ /** Helper function to throw an error if the provided value is not a positive integer. */
107
+ export declare function assertPositiveInteger(value: unknown, msg: string): asserts value is number;
106
108
  /** Helper function to throw an error if the provided value is not a string. */
107
109
  export declare function assertString<T>(value: T, ...[msg]: [T] extends [string] ? [
108
110
  "The assertion is useless because the provided value is already a string."
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/functions/assert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/functions/assert.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,GACtC;IACE,0EAA0E;CAC3E,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAIhC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,GACtC;IACE,iFAAiF;CAClF,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAQhC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACnD,KAAK,EAAE,CAAC,EAAE,EAAE,+DAA+D;AAC3E,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EACnD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAW1C,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,GACpD;IACE,mFAAmF;CACpF,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GACjB,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAQ7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,GACrC;IACE,gFAAgF;CACjF,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAQ/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAC1D;IACE,iFAAiF;CAClF,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQrD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,GACrC;IACE,gFAAgF;CACjF,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAQ/B;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAC3B;IACE,2EAA2E;CAC5E,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,OAAO,CAI9B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAC7B,CAAC,MAAM,CAAC,GACR;IACE,iFAAiF;CAClF,GACJ,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAIxC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,EACtD,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,cAAc,EAAE,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,GACjC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAI7B;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,MAAM,CAMzB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAEtD,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,CAAC,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAIlC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GACxB,CAAC,MAAM,CAAC,GACR;IACE,4EAA4E;CAC7E,GACJ,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAInC;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAC1B;IACE,0EAA0E;CAC3E,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAI7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC3C;IACE,2EAA2E;CAC5E,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI9C;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,MAAM,CAMzB;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAC1B;IACE,0EAA0E;CAC3E,GACD,CAAC,MAAM,CAAC,GACX,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,MAAM,CAI7B;AAED,kGAAkG;AAClG,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,MAAM,CAMzB"}
@@ -33,7 +33,7 @@ export declare function getEnumKeys(transpiledEnum: TranspiledEnum): readonly st
33
33
  export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum: T): ReadonlyArray<T[keyof T]>;
34
34
  /**
35
35
  * Helper function to validate that an interface contains all of the keys of an enum. You must
36
- * specify both generic parameters in order for this to work properly (i.e. the interface and then
36
+ * specify both generic parameters in order for this to work properly (i.e., the interface and then
37
37
  * the enum).
38
38
  *
39
39
  * For example:
@@ -54,7 +54,7 @@ export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum:
54
54
  * interfaceSatisfiesEnum<MyEnumToType, MyEnum>();
55
55
  * ```
56
56
  *
57
- * This function is only meant to be used with interfaces (i.e. types that will not exist at
57
+ * This function is only meant to be used with interfaces (i.e., types that will not exist at
58
58
  * run-time). If you are generating an object that will contain all of the keys of an enum, use the
59
59
  * `satisfies` operator with the `Record` type instead.
60
60
  */
@@ -33,7 +33,7 @@ export declare function getEnumKeys(transpiledEnum: TranspiledEnum): readonly st
33
33
  export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum: T): ReadonlyArray<T[keyof T]>;
34
34
  /**
35
35
  * Helper function to validate that an interface contains all of the keys of an enum. You must
36
- * specify both generic parameters in order for this to work properly (i.e. the interface and then
36
+ * specify both generic parameters in order for this to work properly (i.e., the interface and then
37
37
  * the enum).
38
38
  *
39
39
  * For example:
@@ -54,7 +54,7 @@ export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum:
54
54
  * interfaceSatisfiesEnum<MyEnumToType, MyEnum>();
55
55
  * ```
56
56
  *
57
- * This function is only meant to be used with interfaces (i.e. types that will not exist at
57
+ * This function is only meant to be used with interfaces (i.e., types that will not exist at
58
58
  * run-time). If you are generating an object that will contain all of the keys of an enum, use the
59
59
  * `satisfies` operator with the `Record` type instead.
60
60
  */
@@ -33,7 +33,7 @@ export declare function getEnumKeys(transpiledEnum: TranspiledEnum): readonly st
33
33
  export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum: T): ReadonlyArray<T[keyof T]>;
34
34
  /**
35
35
  * Helper function to validate that an interface contains all of the keys of an enum. You must
36
- * specify both generic parameters in order for this to work properly (i.e. the interface and then
36
+ * specify both generic parameters in order for this to work properly (i.e., the interface and then
37
37
  * the enum).
38
38
  *
39
39
  * For example:
@@ -54,7 +54,7 @@ export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum:
54
54
  * interfaceSatisfiesEnum<MyEnumToType, MyEnum>();
55
55
  * ```
56
56
  *
57
- * This function is only meant to be used with interfaces (i.e. types that will not exist at
57
+ * This function is only meant to be used with interfaces (i.e., types that will not exist at
58
58
  * run-time). If you are generating an object that will contain all of the keys of an enum, use the
59
59
  * `satisfies` operator with the `Record` type instead.
60
60
  */
@@ -17,7 +17,7 @@ export declare function addSetsToSet<T>(mainSet: Set<T>, ...setsToAdd: ReadonlyA
17
17
  * This function is variadic, meaning that you can specify N sets.
18
18
  */
19
19
  export declare function combineSets<T>(...sets: ReadonlyArray<ReadonlySet<T>>): ReadonlySet<T>;
20
- /** Helper function to copy a set. (You can also use a Set constructor to accomplish this task.) */
20
+ /** Helper function to copy a set. (Under the hood, this simply calls the `Set` constructor.) */
21
21
  export declare function copySet<T>(oldSet: ReadonlySet<T>): ReadonlySet<T>;
22
22
  /** Helper function to convert the keys of an object to a set. */
23
23
  export declare function objectKeysToSet<K extends PropertyKey, V>(object: Record<K, V>): ReadonlySet<K>;
@@ -17,7 +17,7 @@ export declare function addSetsToSet<T>(mainSet: Set<T>, ...setsToAdd: ReadonlyA
17
17
  * This function is variadic, meaning that you can specify N sets.
18
18
  */
19
19
  export declare function combineSets<T>(...sets: ReadonlyArray<ReadonlySet<T>>): ReadonlySet<T>;
20
- /** Helper function to copy a set. (You can also use a Set constructor to accomplish this task.) */
20
+ /** Helper function to copy a set. (Under the hood, this simply calls the `Set` constructor.) */
21
21
  export declare function copySet<T>(oldSet: ReadonlySet<T>): ReadonlySet<T>;
22
22
  /** Helper function to convert the keys of an object to a set. */
23
23
  export declare function objectKeysToSet<K extends PropertyKey, V>(object: Record<K, V>): ReadonlySet<K>;
@@ -17,7 +17,7 @@ export declare function addSetsToSet<T>(mainSet: Set<T>, ...setsToAdd: ReadonlyA
17
17
  * This function is variadic, meaning that you can specify N sets.
18
18
  */
19
19
  export declare function combineSets<T>(...sets: ReadonlyArray<ReadonlySet<T>>): ReadonlySet<T>;
20
- /** Helper function to copy a set. (You can also use a Set constructor to accomplish this task.) */
20
+ /** Helper function to copy a set. (Under the hood, this simply calls the `Set` constructor.) */
21
21
  export declare function copySet<T>(oldSet: ReadonlySet<T>): ReadonlySet<T>;
22
22
  /** Helper function to convert the keys of an object to a set. */
23
23
  export declare function objectKeysToSet<K extends PropertyKey, V>(object: Record<K, V>): ReadonlySet<K>;
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/functions/set.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAE5B,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EACf,GAAG,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC1C,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrC,WAAW,CAAC,CAAC,CAAC,CAShB;AAED,mGAAmG;AACnG,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAOjE;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EACtD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,WAAW,CAAC,CAAC,CAAC,CAQhB;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EACxD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,WAAW,CAAC,CAAC,CAAC,CAQhB;AAED;;;;;GAKG;AAEH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,CAItE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,EACtB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,GACxB,OAAO,CAET"}
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/functions/set.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAE5B,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EACf,GAAG,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC1C,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrC,WAAW,CAAC,CAAC,CAAC,CAShB;AAED,gGAAgG;AAChG,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAEjE;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EACtD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,WAAW,CAAC,CAAC,CAAC,CAQhB;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EACxD,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,WAAW,CAAC,CAAC,CAAC,CAQhB;AAED;;;;;GAKG;AAEH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,CAItE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,EACtB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,GACxB,OAAO,CAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/functions/sort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CASnB"}
1
+ {"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/functions/sort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAOnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/functions/string.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA8BxE,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBlE;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,GACpB,eAAe,GAAG,SAAS,CAwB7B;AAGD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAuBR;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CA6BT;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,UAAQ,GACd,MAAM,CAWR;AAED,gGAAgG;AAChG,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMxE"}
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/functions/string.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA8BxE,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBlE;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,GACpB,eAAe,GAAG,SAAS,CA4B7B;AAGD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAuBR;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CA6BT;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,UAAQ,GACd,MAAM,CAWR;AAED,gGAAgG;AAChG,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMxE"}
@@ -10,14 +10,14 @@ type TupleKey<T extends readonly unknown[]> = {
10
10
  type TupleValue<T extends readonly unknown[]> = T[0];
11
11
  type TupleEntry<T extends readonly unknown[]> = [TupleKey<T>, TupleValue<T>];
12
12
  /**
13
- * Helper function to get the entries (i.e. indexes and values) of a tuple in a type-safe way.
13
+ * Helper function to get the entries (i.e., indexes and values) of a tuple in a type-safe way.
14
14
  *
15
15
  * This is useful because the vanilla `Array.entries` method will always have the keys be of type
16
16
  * `number`.
17
17
  */
18
18
  export declare function tupleEntries<T extends readonly unknown[]>(tuple: T): Generator<TupleEntry<T>>;
19
19
  /**
20
- * Helper function to get the keys (i.e. indexes) of a tuple in a type-safe way.
20
+ * Helper function to get the keys (i.e., indexes) of a tuple in a type-safe way.
21
21
  *
22
22
  * This is useful because the vanilla `Array.keys` method will always have the keys be of type
23
23
  * `number`.
@@ -10,14 +10,14 @@ type TupleKey<T extends readonly unknown[]> = {
10
10
  type TupleValue<T extends readonly unknown[]> = T[0];
11
11
  type TupleEntry<T extends readonly unknown[]> = [TupleKey<T>, TupleValue<T>];
12
12
  /**
13
- * Helper function to get the entries (i.e. indexes and values) of a tuple in a type-safe way.
13
+ * Helper function to get the entries (i.e., indexes and values) of a tuple in a type-safe way.
14
14
  *
15
15
  * This is useful because the vanilla `Array.entries` method will always have the keys be of type
16
16
  * `number`.
17
17
  */
18
18
  export declare function tupleEntries<T extends readonly unknown[]>(tuple: T): Generator<TupleEntry<T>>;
19
19
  /**
20
- * Helper function to get the keys (i.e. indexes) of a tuple in a type-safe way.
20
+ * Helper function to get the keys (i.e., indexes) of a tuple in a type-safe way.
21
21
  *
22
22
  * This is useful because the vanilla `Array.keys` method will always have the keys be of type
23
23
  * `number`.
@@ -10,14 +10,14 @@ type TupleKey<T extends readonly unknown[]> = {
10
10
  type TupleValue<T extends readonly unknown[]> = T[0];
11
11
  type TupleEntry<T extends readonly unknown[]> = [TupleKey<T>, TupleValue<T>];
12
12
  /**
13
- * Helper function to get the entries (i.e. indexes and values) of a tuple in a type-safe way.
13
+ * Helper function to get the entries (i.e., indexes and values) of a tuple in a type-safe way.
14
14
  *
15
15
  * This is useful because the vanilla `Array.entries` method will always have the keys be of type
16
16
  * `number`.
17
17
  */
18
18
  export declare function tupleEntries<T extends readonly unknown[]>(tuple: T): Generator<TupleEntry<T>>;
19
19
  /**
20
- * Helper function to get the keys (i.e. indexes) of a tuple in a type-safe way.
20
+ * Helper function to get the keys (i.e., indexes) of a tuple in a type-safe way.
21
21
  *
22
22
  * This is useful because the vanilla `Array.keys` method will always have the keys be of type
23
23
  * `number`.
@@ -4,7 +4,7 @@
4
4
  * @module
5
5
  */
6
6
  /**
7
- * Helper function to narrow an unknown value to an object (i.e. a TypeScript record).
7
+ * Helper function to narrow an unknown value to an object (i.e., a TypeScript record).
8
8
  *
9
9
  * Under the hood, this checks for `typeof variable === "object"`, `variable !== null`, and
10
10
  * `!Array.isArray(variable)`.
@@ -4,7 +4,7 @@
4
4
  * @module
5
5
  */
6
6
  /**
7
- * Helper function to narrow an unknown value to an object (i.e. a TypeScript record).
7
+ * Helper function to narrow an unknown value to an object (i.e., a TypeScript record).
8
8
  *
9
9
  * Under the hood, this checks for `typeof variable === "object"`, `variable !== null`, and
10
10
  * `!Array.isArray(variable)`.
@@ -4,7 +4,7 @@
4
4
  * @module
5
5
  */
6
6
  /**
7
- * Helper function to narrow an unknown value to an object (i.e. a TypeScript record).
7
+ * Helper function to narrow an unknown value to an object (i.e., a TypeScript record).
8
8
  *
9
9
  * Under the hood, this checks for `typeof variable === "object"`, `variable !== null`, and
10
10
  * `!Array.isArray(variable)`.
@@ -73,10 +73,8 @@ export declare function noop(): void;
73
73
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
74
74
  * TypeScript type narrowing patterns.
75
75
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
76
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
76
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
77
77
  * - Non-strings will result in undefined instead of being coerced to a number.
78
- *
79
- * @param string A string to convert to an integer.
80
78
  */
81
79
  export declare function parseFloatSafe(string: string): number | undefined;
82
80
  /**
@@ -85,7 +83,7 @@ export declare function parseFloatSafe(string: string): number | undefined;
85
83
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
86
84
  * TypeScript type narrowing patterns.
87
85
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
88
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
86
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
89
87
  * - Non-strings will result in undefined instead of being coerced to a number.
90
88
  *
91
89
  * If you have to use a radix other than 10, use the vanilla `Number.parseInt` function instead,
@@ -73,10 +73,8 @@ export declare function noop(): void;
73
73
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
74
74
  * TypeScript type narrowing patterns.
75
75
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
76
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
76
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
77
77
  * - Non-strings will result in undefined instead of being coerced to a number.
78
- *
79
- * @param string A string to convert to an integer.
80
78
  */
81
79
  export declare function parseFloatSafe(string: string): number | undefined;
82
80
  /**
@@ -85,7 +83,7 @@ export declare function parseFloatSafe(string: string): number | undefined;
85
83
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
86
84
  * TypeScript type narrowing patterns.
87
85
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
88
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
86
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
89
87
  * - Non-strings will result in undefined instead of being coerced to a number.
90
88
  *
91
89
  * If you have to use a radix other than 10, use the vanilla `Number.parseInt` function instead,
@@ -73,10 +73,8 @@ export declare function noop(): void;
73
73
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
74
74
  * TypeScript type narrowing patterns.
75
75
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
76
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
76
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
77
77
  * - Non-strings will result in undefined instead of being coerced to a number.
78
- *
79
- * @param string A string to convert to an integer.
80
78
  */
81
79
  export declare function parseFloatSafe(string: string): number | undefined;
82
80
  /**
@@ -85,7 +83,7 @@ export declare function parseFloatSafe(string: string): number | undefined;
85
83
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
86
84
  * TypeScript type narrowing patterns.
87
85
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
88
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
86
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
89
87
  * - Non-strings will result in undefined instead of being coerced to a number.
90
88
  *
91
89
  * If you have to use a radix other than 10, use the vanilla `Number.parseInt` function instead,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAiB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,SAAI,GACZ,SAAS,CAAC,MAAM,CAAC,CASnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,SAAI,GACZ,SAAS,CAAC,MAAM,CAAC,CAQnB;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EACtC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,CAAC,GACR,GAAG,IAAI,MAAM,CAAC,CAEhB;AAED;;;GAGG;AAEH,wBAAgB,IAAI,IAAI,IAAI,CAAG;AAE/B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc/D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAInE;AAED;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAiB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,SAAI,GACZ,SAAS,CAAC,MAAM,CAAC,CASnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,SAAI,GACZ,SAAS,CAAC,MAAM,CAAC,CAQnB;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EACtC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,CAAC,GACR,GAAG,IAAI,MAAM,CAAC,CAEhB;AAED;;;GAGG;AAEH,wBAAgB,IAAI,IAAI,IAAI,CAAG;AAE/B;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB/D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAInE;AAED;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAG"}
package/dist/index.cjs CHANGED
@@ -102,7 +102,7 @@ function assertEnumValue(value, transpiledEnum, msg, set) {
102
102
  }
103
103
  }
104
104
  function assertInteger(value, msg) {
105
- if (!Number.isInteger(value)) {
105
+ if (!Number.isSafeInteger(value)) {
106
106
  throw new TypeError(msg);
107
107
  }
108
108
  }
@@ -126,6 +126,11 @@ function assertObject(value, ...[msg]) {
126
126
  throw new TypeError(msg);
127
127
  }
128
128
  }
129
+ function assertPositiveInteger(value, msg) {
130
+ if (!Number.isSafeInteger(value) || value <= 0) {
131
+ throw new TypeError(msg);
132
+ }
133
+ }
129
134
  function assertString(value, ...[msg]) {
130
135
  if (typeof value !== "string") {
131
136
  throw new TypeError(msg);
@@ -156,11 +161,7 @@ function getRandomInt(min, max, exceptions = []) {
156
161
  }
157
162
 
158
163
  function arrayCopyTwoDimensional(array) {
159
- const copiedArray = [];
160
- for (const subArray of array) {
161
- copiedArray.push([...subArray]);
162
- }
163
- return copiedArray;
164
+ return Array.from(array, (subArray) => [...subArray]);
164
165
  }
165
166
  function arrayEquals(array1, array2) {
166
167
  if (array1.length !== array2.length) {
@@ -207,7 +208,7 @@ function arrayRemoveInPlace(array, ...elementsToRemove) {
207
208
  return removedElements;
208
209
  }
209
210
  function emptyArray(array) {
210
- array.splice(0);
211
+ array.length = 0;
211
212
  }
212
213
  async function filterAsync(array, predicate) {
213
214
  const results = await Promise.all(
@@ -394,11 +395,7 @@ function combineSets(...sets) {
394
395
  return newSet;
395
396
  }
396
397
  function copySet(oldSet) {
397
- const newSet = /* @__PURE__ */ new Set();
398
- for (const value of oldSet) {
399
- newSet.add(value);
400
- }
401
- return newSet;
398
+ return new Set(oldSet);
402
399
  }
403
400
  function objectKeysToSet(object) {
404
401
  const set = /* @__PURE__ */ new Set();
@@ -426,15 +423,13 @@ function setHas(set, ...elements) {
426
423
  function sortCaseInsensitive(array) {
427
424
  const newArray = [...array];
428
425
  newArray.sort(
429
- (a, b) => a.localeCompare(b, void 0, {
430
- sensitivity: "base"
431
- })
426
+ (a, b) => a.localeCompare(b, void 0, { sensitivity: "base" })
432
427
  );
433
428
  return newArray;
434
429
  }
435
430
 
436
- const FLOAT_REGEX = /^-?\d*\.?\d+$/;
437
- const INTEGER_REGEX = /^-?\d+$/;
431
+ const FLOAT_REGEX = /^-?(?:\d+(?:\.\d+)?|\.\d+)$/v;
432
+ const INTEGER_REGEX = /^-?\d+$/v;
438
433
  function* eRange(start, end, increment = 1) {
439
434
  if (end === void 0) {
440
435
  yield* eRange(0, start, increment);
@@ -453,7 +448,7 @@ function* iRange(start, end, increment = 1) {
453
448
  yield* eRange(start, exclusiveEnd, increment);
454
449
  }
455
450
  function isKeyOf(key, target) {
456
- return key in target;
451
+ return Object.hasOwn(target, key);
457
452
  }
458
453
  function noop() {
459
454
  }
@@ -462,10 +457,10 @@ function parseFloatSafe(string) {
462
457
  return void 0;
463
458
  }
464
459
  const trimmedString = string.trim();
465
- if (FLOAT_REGEX.exec(trimmedString) === null) {
460
+ if (!FLOAT_REGEX.test(trimmedString)) {
466
461
  return void 0;
467
462
  }
468
- const number = Number.parseFloat(trimmedString);
463
+ const number = Number(trimmedString);
469
464
  return Number.isNaN(number) ? void 0 : number;
470
465
  }
471
466
  function parseIntSafe(string) {
@@ -473,10 +468,10 @@ function parseIntSafe(string) {
473
468
  return void 0;
474
469
  }
475
470
  const trimmedString = string.trim();
476
- if (INTEGER_REGEX.exec(trimmedString) === null) {
471
+ if (!INTEGER_REGEX.test(trimmedString)) {
477
472
  return void 0;
478
473
  }
479
- const number = Number.parseInt(trimmedString, 10);
474
+ const number = Math.trunc(Number(trimmedString));
480
475
  return Number.isNaN(number) ? void 0 : number;
481
476
  }
482
477
  function repeat(num, func) {
@@ -487,17 +482,17 @@ function repeat(num, func) {
487
482
  function todo(...args) {
488
483
  }
489
484
 
490
- const ASCII_REGEX = /^[\u0000-\u007F]*$/;
491
- const DIACRITIC_REGEX = /\p{Diacritic}/u;
492
- const EMOJI_REGEX = /(\p{Extended_Pictographic}|[#*0-9]\uFE0F?\u20E3)/u;
493
- const FIRST_LETTER_CAPITALIZED_REGEX = /^\p{Lu}/u;
494
- const KEBAB_CASE_REGEX = /^[\da-z]+(?:-[\da-z]+)*$/;
495
- const SEMANTIC_VERSION_REGEX = /^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/;
496
- const WHITESPACE_REGEX = /\s/;
497
- const WHITESPACE_GLOBAL_REGEX = /\s/g;
498
- const TITLE_CASE_BOUNDARY_REGEX = /(?<=[\da-z])(?=[A-Z])/g;
499
- const UPPERCASE_REGEX = /^[A-Z]*$/;
500
- const LOWERCASE_REGEX = /^[a-z]*$/;
485
+ const ASCII_REGEX = /^\p{ASCII}*$/v;
486
+ const DIACRITIC_REGEX = /\p{Diacritic}/v;
487
+ const FIRST_LETTER_CAPITALIZED_REGEX = /^\p{Lu}/v;
488
+ const EMOJI_REGEX = /\p{Extended_Pictographic}|[#*0-9]\u{FE0F}?\u{20E3}/v;
489
+ const KEBAB_CASE_REGEX = /^[\da-z]+(?:-[\da-z]+)*$/v;
490
+ const SEMANTIC_VERSION_REGEX = /^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/v;
491
+ const WHITESPACE_REGEX = /\s/v;
492
+ const WHITESPACE_GLOBAL_REGEX = /\s/gv;
493
+ const TITLE_CASE_BOUNDARY_REGEX = /(?<=[\da-z])(?=[A-Z])/gv;
494
+ const UPPERCASE_REGEX = /^[A-Z]*$/v;
495
+ const LOWERCASE_REGEX = /^[a-z]*$/v;
501
496
  function capitalizeFirstLetter(string) {
502
497
  if (string === "") {
503
498
  return string;
@@ -555,8 +550,8 @@ function isUpperCase(string) {
555
550
  return UPPERCASE_REGEX.test(string);
556
551
  }
557
552
  function kebabCaseToCamelCase(string) {
558
- return string.replaceAll(/-./g, (match) => {
559
- const firstLetterOfWord = match[1];
553
+ return string.replaceAll(/-./gv, (match) => {
554
+ const firstLetterOfWord = match.at(1);
560
555
  return firstLetterOfWord === void 0 ? "" : firstLetterOfWord.toUpperCase();
561
556
  });
562
557
  }
@@ -568,14 +563,14 @@ function normalizeString(string) {
568
563
  let sanitizedString = string;
569
564
  sanitizedString = removeNonPrintableCharacters(sanitizedString);
570
565
  sanitizedString = sanitizedString.replaceAll("\n\r", "\n");
571
- sanitizedString = sanitizedString.replaceAll(/\p{Zl}/gu, "\n");
572
- sanitizedString = sanitizedString.replaceAll(/\p{Zp}/gu, "\n");
573
- sanitizedString = sanitizedString.replaceAll(/\p{Zs}/gu, " ");
566
+ sanitizedString = sanitizedString.replaceAll(/\p{Zl}/gv, "\n");
567
+ sanitizedString = sanitizedString.replaceAll(/\p{Zp}/gv, "\n");
568
+ sanitizedString = sanitizedString.replaceAll(/\p{Zs}/gv, " ");
574
569
  sanitizedString = sanitizedString.trim();
575
570
  return sanitizedString;
576
571
  }
577
572
  function parseSemanticVersion(versionString) {
578
- const match = versionString.match(SEMANTIC_VERSION_REGEX);
573
+ const match = SEMANTIC_VERSION_REGEX.exec(versionString);
579
574
  if (match === null || match.groups === void 0) {
580
575
  return void 0;
581
576
  }
@@ -589,7 +584,11 @@ function parseSemanticVersion(versionString) {
589
584
  if (majorVersion === void 0 || minorVersion === void 0 || patchVersion === void 0) {
590
585
  return void 0;
591
586
  }
592
- return { majorVersion, minorVersion, patchVersion };
587
+ return {
588
+ majorVersion,
589
+ minorVersion,
590
+ patchVersion
591
+ };
593
592
  }
594
593
  function removeLinesBetweenMarkers(string, marker) {
595
594
  const lines = string.split("\n");
@@ -616,7 +615,7 @@ function removeLinesMatching(string, match) {
616
615
  return newLines.join("\n");
617
616
  }
618
617
  function removeNonPrintableCharacters(string) {
619
- return string.replaceAll(/\p{C}/gu, "");
618
+ return string.replaceAll(/\p{C}/gv, "");
620
619
  }
621
620
  function removeWhitespace(string) {
622
621
  return string.replaceAll(WHITESPACE_GLOBAL_REGEX, "");
@@ -641,7 +640,7 @@ function satisfiesSemanticVersion(version, minimumVersion) {
641
640
  return majorVersion > minimumMajorVersion || majorVersion === minimumMajorVersion && minorVersion > minimumMinorVersion || majorVersion === minimumMajorVersion && minorVersion === minimumMinorVersion && patchVersion >= minimumPatchVersion;
642
641
  }
643
642
  function titleCaseToKebabCase(string) {
644
- return string.replaceAll(TITLE_CASE_BOUNDARY_REGEX, "-").replaceAll(/ +/g, "-").toLowerCase();
643
+ return string.replaceAll(TITLE_CASE_BOUNDARY_REGEX, "-").replaceAll(/ +/gv, "-").toLowerCase();
645
644
  }
646
645
  function trimPrefix(string, prefix, trimAll = false) {
647
646
  if (trimAll) {
@@ -709,6 +708,7 @@ exports.assertIs = assertIs;
709
708
  exports.assertNotNull = assertNotNull;
710
709
  exports.assertNumber = assertNumber;
711
710
  exports.assertObject = assertObject;
711
+ exports.assertPositiveInteger = assertPositiveInteger;
712
712
  exports.assertString = assertString;
713
713
  exports.assertStringNotEmpty = assertStringNotEmpty;
714
714
  exports.capitalizeFirstLetter = capitalizeFirstLetter;
package/dist/index.mjs CHANGED
@@ -100,7 +100,7 @@ function assertEnumValue(value, transpiledEnum, msg, set) {
100
100
  }
101
101
  }
102
102
  function assertInteger(value, msg) {
103
- if (!Number.isInteger(value)) {
103
+ if (!Number.isSafeInteger(value)) {
104
104
  throw new TypeError(msg);
105
105
  }
106
106
  }
@@ -124,6 +124,11 @@ function assertObject(value, ...[msg]) {
124
124
  throw new TypeError(msg);
125
125
  }
126
126
  }
127
+ function assertPositiveInteger(value, msg) {
128
+ if (!Number.isSafeInteger(value) || value <= 0) {
129
+ throw new TypeError(msg);
130
+ }
131
+ }
127
132
  function assertString(value, ...[msg]) {
128
133
  if (typeof value !== "string") {
129
134
  throw new TypeError(msg);
@@ -154,11 +159,7 @@ function getRandomInt(min, max, exceptions = []) {
154
159
  }
155
160
 
156
161
  function arrayCopyTwoDimensional(array) {
157
- const copiedArray = [];
158
- for (const subArray of array) {
159
- copiedArray.push([...subArray]);
160
- }
161
- return copiedArray;
162
+ return Array.from(array, (subArray) => [...subArray]);
162
163
  }
163
164
  function arrayEquals(array1, array2) {
164
165
  if (array1.length !== array2.length) {
@@ -205,7 +206,7 @@ function arrayRemoveInPlace(array, ...elementsToRemove) {
205
206
  return removedElements;
206
207
  }
207
208
  function emptyArray(array) {
208
- array.splice(0);
209
+ array.length = 0;
209
210
  }
210
211
  async function filterAsync(array, predicate) {
211
212
  const results = await Promise.all(
@@ -392,11 +393,7 @@ function combineSets(...sets) {
392
393
  return newSet;
393
394
  }
394
395
  function copySet(oldSet) {
395
- const newSet = /* @__PURE__ */ new Set();
396
- for (const value of oldSet) {
397
- newSet.add(value);
398
- }
399
- return newSet;
396
+ return new Set(oldSet);
400
397
  }
401
398
  function objectKeysToSet(object) {
402
399
  const set = /* @__PURE__ */ new Set();
@@ -424,15 +421,13 @@ function setHas(set, ...elements) {
424
421
  function sortCaseInsensitive(array) {
425
422
  const newArray = [...array];
426
423
  newArray.sort(
427
- (a, b) => a.localeCompare(b, void 0, {
428
- sensitivity: "base"
429
- })
424
+ (a, b) => a.localeCompare(b, void 0, { sensitivity: "base" })
430
425
  );
431
426
  return newArray;
432
427
  }
433
428
 
434
- const FLOAT_REGEX = /^-?\d*\.?\d+$/;
435
- const INTEGER_REGEX = /^-?\d+$/;
429
+ const FLOAT_REGEX = /^-?(?:\d+(?:\.\d+)?|\.\d+)$/v;
430
+ const INTEGER_REGEX = /^-?\d+$/v;
436
431
  function* eRange(start, end, increment = 1) {
437
432
  if (end === void 0) {
438
433
  yield* eRange(0, start, increment);
@@ -451,7 +446,7 @@ function* iRange(start, end, increment = 1) {
451
446
  yield* eRange(start, exclusiveEnd, increment);
452
447
  }
453
448
  function isKeyOf(key, target) {
454
- return key in target;
449
+ return Object.hasOwn(target, key);
455
450
  }
456
451
  function noop() {
457
452
  }
@@ -460,10 +455,10 @@ function parseFloatSafe(string) {
460
455
  return void 0;
461
456
  }
462
457
  const trimmedString = string.trim();
463
- if (FLOAT_REGEX.exec(trimmedString) === null) {
458
+ if (!FLOAT_REGEX.test(trimmedString)) {
464
459
  return void 0;
465
460
  }
466
- const number = Number.parseFloat(trimmedString);
461
+ const number = Number(trimmedString);
467
462
  return Number.isNaN(number) ? void 0 : number;
468
463
  }
469
464
  function parseIntSafe(string) {
@@ -471,10 +466,10 @@ function parseIntSafe(string) {
471
466
  return void 0;
472
467
  }
473
468
  const trimmedString = string.trim();
474
- if (INTEGER_REGEX.exec(trimmedString) === null) {
469
+ if (!INTEGER_REGEX.test(trimmedString)) {
475
470
  return void 0;
476
471
  }
477
- const number = Number.parseInt(trimmedString, 10);
472
+ const number = Math.trunc(Number(trimmedString));
478
473
  return Number.isNaN(number) ? void 0 : number;
479
474
  }
480
475
  function repeat(num, func) {
@@ -485,17 +480,17 @@ function repeat(num, func) {
485
480
  function todo(...args) {
486
481
  }
487
482
 
488
- const ASCII_REGEX = /^[\u0000-\u007F]*$/;
489
- const DIACRITIC_REGEX = /\p{Diacritic}/u;
490
- const EMOJI_REGEX = /(\p{Extended_Pictographic}|[#*0-9]\uFE0F?\u20E3)/u;
491
- const FIRST_LETTER_CAPITALIZED_REGEX = /^\p{Lu}/u;
492
- const KEBAB_CASE_REGEX = /^[\da-z]+(?:-[\da-z]+)*$/;
493
- const SEMANTIC_VERSION_REGEX = /^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/;
494
- const WHITESPACE_REGEX = /\s/;
495
- const WHITESPACE_GLOBAL_REGEX = /\s/g;
496
- const TITLE_CASE_BOUNDARY_REGEX = /(?<=[\da-z])(?=[A-Z])/g;
497
- const UPPERCASE_REGEX = /^[A-Z]*$/;
498
- const LOWERCASE_REGEX = /^[a-z]*$/;
483
+ const ASCII_REGEX = /^\p{ASCII}*$/v;
484
+ const DIACRITIC_REGEX = /\p{Diacritic}/v;
485
+ const FIRST_LETTER_CAPITALIZED_REGEX = /^\p{Lu}/v;
486
+ const EMOJI_REGEX = /\p{Extended_Pictographic}|[#*0-9]\u{FE0F}?\u{20E3}/v;
487
+ const KEBAB_CASE_REGEX = /^[\da-z]+(?:-[\da-z]+)*$/v;
488
+ const SEMANTIC_VERSION_REGEX = /^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/v;
489
+ const WHITESPACE_REGEX = /\s/v;
490
+ const WHITESPACE_GLOBAL_REGEX = /\s/gv;
491
+ const TITLE_CASE_BOUNDARY_REGEX = /(?<=[\da-z])(?=[A-Z])/gv;
492
+ const UPPERCASE_REGEX = /^[A-Z]*$/v;
493
+ const LOWERCASE_REGEX = /^[a-z]*$/v;
499
494
  function capitalizeFirstLetter(string) {
500
495
  if (string === "") {
501
496
  return string;
@@ -553,8 +548,8 @@ function isUpperCase(string) {
553
548
  return UPPERCASE_REGEX.test(string);
554
549
  }
555
550
  function kebabCaseToCamelCase(string) {
556
- return string.replaceAll(/-./g, (match) => {
557
- const firstLetterOfWord = match[1];
551
+ return string.replaceAll(/-./gv, (match) => {
552
+ const firstLetterOfWord = match.at(1);
558
553
  return firstLetterOfWord === void 0 ? "" : firstLetterOfWord.toUpperCase();
559
554
  });
560
555
  }
@@ -566,14 +561,14 @@ function normalizeString(string) {
566
561
  let sanitizedString = string;
567
562
  sanitizedString = removeNonPrintableCharacters(sanitizedString);
568
563
  sanitizedString = sanitizedString.replaceAll("\n\r", "\n");
569
- sanitizedString = sanitizedString.replaceAll(/\p{Zl}/gu, "\n");
570
- sanitizedString = sanitizedString.replaceAll(/\p{Zp}/gu, "\n");
571
- sanitizedString = sanitizedString.replaceAll(/\p{Zs}/gu, " ");
564
+ sanitizedString = sanitizedString.replaceAll(/\p{Zl}/gv, "\n");
565
+ sanitizedString = sanitizedString.replaceAll(/\p{Zp}/gv, "\n");
566
+ sanitizedString = sanitizedString.replaceAll(/\p{Zs}/gv, " ");
572
567
  sanitizedString = sanitizedString.trim();
573
568
  return sanitizedString;
574
569
  }
575
570
  function parseSemanticVersion(versionString) {
576
- const match = versionString.match(SEMANTIC_VERSION_REGEX);
571
+ const match = SEMANTIC_VERSION_REGEX.exec(versionString);
577
572
  if (match === null || match.groups === void 0) {
578
573
  return void 0;
579
574
  }
@@ -587,7 +582,11 @@ function parseSemanticVersion(versionString) {
587
582
  if (majorVersion === void 0 || minorVersion === void 0 || patchVersion === void 0) {
588
583
  return void 0;
589
584
  }
590
- return { majorVersion, minorVersion, patchVersion };
585
+ return {
586
+ majorVersion,
587
+ minorVersion,
588
+ patchVersion
589
+ };
591
590
  }
592
591
  function removeLinesBetweenMarkers(string, marker) {
593
592
  const lines = string.split("\n");
@@ -614,7 +613,7 @@ function removeLinesMatching(string, match) {
614
613
  return newLines.join("\n");
615
614
  }
616
615
  function removeNonPrintableCharacters(string) {
617
- return string.replaceAll(/\p{C}/gu, "");
616
+ return string.replaceAll(/\p{C}/gv, "");
618
617
  }
619
618
  function removeWhitespace(string) {
620
619
  return string.replaceAll(WHITESPACE_GLOBAL_REGEX, "");
@@ -639,7 +638,7 @@ function satisfiesSemanticVersion(version, minimumVersion) {
639
638
  return majorVersion > minimumMajorVersion || majorVersion === minimumMajorVersion && minorVersion > minimumMinorVersion || majorVersion === minimumMajorVersion && minorVersion === minimumMinorVersion && patchVersion >= minimumPatchVersion;
640
639
  }
641
640
  function titleCaseToKebabCase(string) {
642
- return string.replaceAll(TITLE_CASE_BOUNDARY_REGEX, "-").replaceAll(/ +/g, "-").toLowerCase();
641
+ return string.replaceAll(TITLE_CASE_BOUNDARY_REGEX, "-").replaceAll(/ +/gv, "-").toLowerCase();
643
642
  }
644
643
  function trimPrefix(string, prefix, trimAll = false) {
645
644
  if (trimAll) {
@@ -681,4 +680,4 @@ function* tupleKeys(tuple) {
681
680
 
682
681
  const ReadonlyMap = Map;
683
682
 
684
- export { HOUR_IN_MILLISECONDS, MINUTE_IN_MILLISECONDS, ReadonlyMap, ReadonlySet, SECOND_IN_MILLISECONDS, addSetsToSet, arrayCopyTwoDimensional, arrayEquals, arrayRemove, arrayRemoveAllInPlace, arrayRemoveInPlace, assertArray, assertArrayBoolean, assertArrayLength, assertArrayNonEmpty, assertArrayNumber, assertArrayObject, assertArrayString, assertBoolean, assertDefined, assertEnumValue, assertInteger, assertIs, assertNotNull, assertNumber, assertObject, assertString, assertStringNotEmpty, capitalizeFirstLetter, clamp, combineSets, copySet, eRange, emptyArray, escapeHTMLCharacters, filterAsync, filterMap, filterMapAsync, getElapsedSeconds, getEnumEntries, getEnumKeys, getEnumValues, getNumConsecutiveDiacritics, getRandomArrayElement, getRandomArrayIndex, getRandomInt, getWidenedObjectValue, hasDiacritic, hasEmoji, hasWhitespace, iRange, includes, includesAny, interfaceSatisfiesEnum, isASCII, isArray, isArrayBoolean, isArrayNumber, isArrayObject, isArrayString, isEnumValue, isFirstLetterCapitalized, isKebabCase, isKeyOf, isLowerCase, isObject, isSemanticVersion, isUpperCase, kebabCaseToCamelCase, kebabCaseToPascalCase, mapAsync, mapFilter, mapFind, newArray, noop, normalizeString, objectFilter, objectKeysToSet, objectMap, objectToMap, objectToReverseMap, objectValuesToSet, parseFloatSafe, parseIntSafe, parseSemanticVersion, removeLinesBetweenMarkers, removeLinesMatching, removeNonPrintableCharacters, removeWhitespace, repeat, reverseObject, satisfiesSemanticVersion, setAdd, setHas, sortCaseInsensitive, sumArray, titleCaseToKebabCase, todo, trimPrefix, trimSuffix, truncateString, tupleEntries, tupleKeys, unique };
683
+ export { HOUR_IN_MILLISECONDS, MINUTE_IN_MILLISECONDS, ReadonlyMap, ReadonlySet, SECOND_IN_MILLISECONDS, addSetsToSet, arrayCopyTwoDimensional, arrayEquals, arrayRemove, arrayRemoveAllInPlace, arrayRemoveInPlace, assertArray, assertArrayBoolean, assertArrayLength, assertArrayNonEmpty, assertArrayNumber, assertArrayObject, assertArrayString, assertBoolean, assertDefined, assertEnumValue, assertInteger, assertIs, assertNotNull, assertNumber, assertObject, assertPositiveInteger, assertString, assertStringNotEmpty, capitalizeFirstLetter, clamp, combineSets, copySet, eRange, emptyArray, escapeHTMLCharacters, filterAsync, filterMap, filterMapAsync, getElapsedSeconds, getEnumEntries, getEnumKeys, getEnumValues, getNumConsecutiveDiacritics, getRandomArrayElement, getRandomArrayIndex, getRandomInt, getWidenedObjectValue, hasDiacritic, hasEmoji, hasWhitespace, iRange, includes, includesAny, interfaceSatisfiesEnum, isASCII, isArray, isArrayBoolean, isArrayNumber, isArrayObject, isArrayString, isEnumValue, isFirstLetterCapitalized, isKebabCase, isKeyOf, isLowerCase, isObject, isSemanticVersion, isUpperCase, kebabCaseToCamelCase, kebabCaseToPascalCase, mapAsync, mapFilter, mapFind, newArray, noop, normalizeString, objectFilter, objectKeysToSet, objectMap, objectToMap, objectToReverseMap, objectValuesToSet, parseFloatSafe, parseIntSafe, parseSemanticVersion, removeLinesBetweenMarkers, removeLinesMatching, removeNonPrintableCharacters, removeWhitespace, repeat, reverseObject, satisfiesSemanticVersion, setAdd, setHas, sortCaseInsensitive, sumArray, titleCaseToKebabCase, todo, trimPrefix, trimSuffix, truncateString, tupleEntries, tupleKeys, unique };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "complete-common",
3
- "version": "2.29.0",
3
+ "version": "2.30.0",
4
4
  "description": "Helper functions for TypeScript projects.",
5
5
  "homepage": "https://complete-ts.github.io/",
6
6
  "bugs": {
@@ -32,10 +32,10 @@
32
32
  "test": "bun test ./tests"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/node": "25.6.0",
36
- "complete-node": "16.4.1",
35
+ "@types/node": "26.0.1",
36
+ "complete-node": "18.0.0",
37
37
  "typedoc": "0.28.19",
38
- "typedoc-plugin-markdown": "4.11.0",
38
+ "typedoc-plugin-markdown": "4.12.0",
39
39
  "typescript": "6.0.3",
40
40
  "unbuild": "3.6.1"
41
41
  }
@@ -17,13 +17,7 @@ import { isObject } from "./types.js";
17
17
  export function arrayCopyTwoDimensional<T>(
18
18
  array: ReadonlyArray<readonly T[]>,
19
19
  ): ReadonlyArray<readonly T[]> {
20
- const copiedArray: T[][] = [];
21
-
22
- for (const subArray of array) {
23
- copiedArray.push([...subArray]);
24
- }
25
-
26
- return copiedArray;
20
+ return Array.from(array, (subArray) => [...subArray]);
27
21
  }
28
22
 
29
23
  /**
@@ -134,7 +128,7 @@ export function arrayRemoveInPlace<T>(
134
128
  /** Helper function to remove all of the elements in an array in-place. */
135
129
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
136
130
  export function emptyArray(array: unknown[]): void {
137
- array.splice(0);
131
+ array.length = 0; // eslint-disable-line no-param-reassign
138
132
  }
139
133
 
140
134
  /**
@@ -114,7 +114,7 @@ export function assertArrayNumber<T>(
114
114
 
115
115
  /**
116
116
  * Helper function to throw an error if the provided value is not an array with every element being
117
- * an object (i.e. a TypeScript record).
117
+ * an object (i.e., a TypeScript record).
118
118
  */
119
119
  export function assertArrayObject<T>(
120
120
  value: T,
@@ -212,9 +212,9 @@ export function assertInteger(
212
212
  value: unknown,
213
213
  msg: string,
214
214
  ): asserts value is number {
215
- // `Number.isInteger` will correctly return false for non-number variables such as strings,
215
+ // `Number.isSafeInteger` will correctly return false for non-number variables such as strings,
216
216
  // booleans, and so on.
217
- if (!Number.isInteger(value)) {
217
+ if (!Number.isSafeInteger(value)) {
218
218
  throw new TypeError(msg);
219
219
  }
220
220
  }
@@ -269,7 +269,7 @@ export function assertNumber<T>(
269
269
  }
270
270
 
271
271
  /**
272
- * Helper function to throw an error if the provided value is not an object (i.e. a TypeScript
272
+ * Helper function to throw an error if the provided value is not an object (i.e., a TypeScript
273
273
  * record).
274
274
  *
275
275
  * This is useful to have TypeScript narrow a `Record<string, unknown> | undefined` value to
@@ -290,6 +290,18 @@ export function assertObject<T>(
290
290
  }
291
291
  }
292
292
 
293
+ /** Helper function to throw an error if the provided value is not a positive integer. */
294
+ export function assertPositiveInteger(
295
+ value: unknown,
296
+ msg: string,
297
+ ): asserts value is number {
298
+ // `Number.isSafeInteger` will correctly return false for non-number variables such as strings,
299
+ // booleans, and so on.
300
+ if (!Number.isSafeInteger(value) || (value as number) <= 0) {
301
+ throw new TypeError(msg);
302
+ }
303
+ }
304
+
293
305
  /** Helper function to throw an error if the provided value is not a string. */
294
306
  export function assertString<T>(
295
307
  value: T,
@@ -57,7 +57,7 @@ export function getEnumValues<T extends TranspiledEnum>(
57
57
 
58
58
  /**
59
59
  * Helper function to validate that an interface contains all of the keys of an enum. You must
60
- * specify both generic parameters in order for this to work properly (i.e. the interface and then
60
+ * specify both generic parameters in order for this to work properly (i.e., the interface and then
61
61
  * the enum).
62
62
  *
63
63
  * For example:
@@ -78,7 +78,7 @@ export function getEnumValues<T extends TranspiledEnum>(
78
78
  * interfaceSatisfiesEnum<MyEnumToType, MyEnum>();
79
79
  * ```
80
80
  *
81
- * This function is only meant to be used with interfaces (i.e. types that will not exist at
81
+ * This function is only meant to be used with interfaces (i.e., types that will not exist at
82
82
  * run-time). If you are generating an object that will contain all of the keys of an enum, use the
83
83
  * `satisfies` operator with the `Record` type instead.
84
84
  */
@@ -35,7 +35,7 @@ export function objectFilter<K extends PropertyKey, V>(
35
35
 
36
36
  // eslint-disable-next-line complete/no-for-in
37
37
  for (const key in object) {
38
- const value = object[key];
38
+ const value = object[key]; // eslint-disable-line unicorn/no-unsafe-property-key
39
39
  const match = predicate(value);
40
40
  if (match) {
41
41
  array.push(value);
@@ -41,14 +41,9 @@ export function combineSets<T>(
41
41
  return newSet;
42
42
  }
43
43
 
44
- /** Helper function to copy a set. (You can also use a Set constructor to accomplish this task.) */
44
+ /** Helper function to copy a set. (Under the hood, this simply calls the `Set` constructor.) */
45
45
  export function copySet<T>(oldSet: ReadonlySet<T>): ReadonlySet<T> {
46
- const newSet = new Set<T>();
47
- for (const value of oldSet) {
48
- newSet.add(value);
49
- }
50
-
51
- return newSet;
46
+ return new Set(oldSet);
52
47
  }
53
48
 
54
49
  /** Helper function to convert the keys of an object to a set. */
@@ -16,9 +16,7 @@ export function sortCaseInsensitive(
16
16
  ): readonly string[] {
17
17
  const newArray = [...array];
18
18
  newArray.sort((a, b) =>
19
- a.localeCompare(b, undefined, {
20
- sensitivity: "base",
21
- }),
19
+ a.localeCompare(b, undefined, { sensitivity: "base" }),
22
20
  );
23
21
 
24
22
  return newArray;
@@ -14,25 +14,25 @@ import { parseIntSafe } from "./utils.js";
14
14
  // they will return inconsistent results due to the `lastIndex` property persisting between calls.
15
15
 
16
16
  /** We use a "*" instead of a "+" so that an empty string will match. */
17
- // eslint-disable-next-line no-control-regex
18
- const ASCII_REGEX = /^[\u0000-\u007F]*$/;
17
+ const ASCII_REGEX = /^\p{ASCII}*$/v;
19
18
 
20
- const DIACRITIC_REGEX = /\p{Diacritic}/u;
19
+ const DIACRITIC_REGEX = /\p{Diacritic}/v;
20
+ const FIRST_LETTER_CAPITALIZED_REGEX = /^\p{Lu}/v;
21
21
 
22
22
  /**
23
- * - We can't use `/\p{Emoji}/u` because it has a false positive on "#" characters.
24
- * - We can't use `/\p{Extended_Pictographic}/u` because it has a false negative on keycap emojis.
23
+ * - We can't use `/\p{Emoji}/v` because it has a false positive on "#" characters.
24
+ * - We can't use `/\p{Extended_Pictographic}/v` because it has a false negative on keycap emojis.
25
25
  */
26
- const EMOJI_REGEX = /(\p{Extended_Pictographic}|[#*0-9]\uFE0F?\u20E3)/u;
26
+ const EMOJI_REGEX = /\p{Extended_Pictographic}|[#*0-9]\u{FE0F}?\u{20E3}/v;
27
27
 
28
- const FIRST_LETTER_CAPITALIZED_REGEX = /^\p{Lu}/u;
29
- const KEBAB_CASE_REGEX = /^[\da-z]+(?:-[\da-z]+)*$/;
30
- const SEMANTIC_VERSION_REGEX = /^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/;
31
- const WHITESPACE_REGEX = /\s/;
32
- const WHITESPACE_GLOBAL_REGEX = /\s/g;
33
- const TITLE_CASE_BOUNDARY_REGEX = /(?<=[\da-z])(?=[A-Z])/g;
34
- const UPPERCASE_REGEX = /^[A-Z]*$/;
35
- const LOWERCASE_REGEX = /^[a-z]*$/;
28
+ const KEBAB_CASE_REGEX = /^[\da-z]+(?:-[\da-z]+)*$/v;
29
+ const SEMANTIC_VERSION_REGEX =
30
+ /^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/v;
31
+ const WHITESPACE_REGEX = /\s/v;
32
+ const WHITESPACE_GLOBAL_REGEX = /\s/gv;
33
+ const TITLE_CASE_BOUNDARY_REGEX = /(?<=[\da-z])(?=[A-Z])/gv;
34
+ const UPPERCASE_REGEX = /^[A-Z]*$/v;
35
+ const LOWERCASE_REGEX = /^[a-z]*$/v;
36
36
 
37
37
  /** Helper function to capitalize the first letter of a string. */
38
38
  export function capitalizeFirstLetter(string: string): string {
@@ -124,6 +124,7 @@ export function isASCII(str: string): boolean {
124
124
  * https://stackoverflow.com/questions/8334606/check-if-first-letter-of-word-is-a-capital-letter
125
125
  */
126
126
  export function isFirstLetterCapitalized(string: string): boolean {
127
+ // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
127
128
  return FIRST_LETTER_CAPITALIZED_REGEX.test(string);
128
129
  }
129
130
 
@@ -157,8 +158,8 @@ export function isUpperCase(string: string): boolean {
157
158
 
158
159
  /** Helper function to convert a string from kebab-case to camelCase. */
159
160
  export function kebabCaseToCamelCase(string: string): string {
160
- return string.replaceAll(/-./g, (match) => {
161
- const firstLetterOfWord = match[1];
161
+ return string.replaceAll(/-./gv, (match) => {
162
+ const firstLetterOfWord = match.at(1);
162
163
  return firstLetterOfWord === undefined
163
164
  ? ""
164
165
  : firstLetterOfWord.toUpperCase();
@@ -189,11 +190,11 @@ export function normalizeString(string: string): string {
189
190
 
190
191
  // Normalize newlines.
191
192
  sanitizedString = sanitizedString.replaceAll("\n\r", "\n");
192
- sanitizedString = sanitizedString.replaceAll(/\p{Zl}/gu, "\n");
193
- sanitizedString = sanitizedString.replaceAll(/\p{Zp}/gu, "\n");
193
+ sanitizedString = sanitizedString.replaceAll(/\p{Zl}/gv, "\n");
194
+ sanitizedString = sanitizedString.replaceAll(/\p{Zp}/gv, "\n");
194
195
 
195
196
  // Normalize spaces.
196
- sanitizedString = sanitizedString.replaceAll(/\p{Zs}/gu, " ");
197
+ sanitizedString = sanitizedString.replaceAll(/\p{Zs}/gv, " ");
197
198
 
198
199
  // Remove leading/trailing whitespace.
199
200
  sanitizedString = sanitizedString.trim();
@@ -210,7 +211,7 @@ export function normalizeString(string: string): string {
210
211
  export function parseSemanticVersion(
211
212
  versionString: string,
212
213
  ): SemanticVersion | undefined {
213
- const match = versionString.match(SEMANTIC_VERSION_REGEX);
214
+ const match = SEMANTIC_VERSION_REGEX.exec(versionString);
214
215
  if (match === null || match.groups === undefined) {
215
216
  return undefined;
216
217
  }
@@ -232,7 +233,11 @@ export function parseSemanticVersion(
232
233
  return undefined;
233
234
  }
234
235
 
235
- return { majorVersion, minorVersion, patchVersion };
236
+ return {
237
+ majorVersion,
238
+ minorVersion,
239
+ patchVersion,
240
+ };
236
241
  }
237
242
 
238
243
  /* eslint-disable jsdoc/escape-inline-tags */
@@ -301,7 +306,7 @@ export function removeLinesMatching(string: string, match: string): string {
301
306
  * https://stackoverflow.com/questions/11598786/how-to-replace-non-printable-unicode-characters-javascript
302
307
  */
303
308
  export function removeNonPrintableCharacters(string: string): string {
304
- return string.replaceAll(/\p{C}/gu, "");
309
+ return string.replaceAll(/\p{C}/gv, "");
305
310
  }
306
311
 
307
312
  /** Helper function to remove all whitespace characters from a string. */
@@ -353,7 +358,7 @@ export function satisfiesSemanticVersion(
353
358
  export function titleCaseToKebabCase(string: string): string {
354
359
  return string
355
360
  .replaceAll(TITLE_CASE_BOUNDARY_REGEX, "-")
356
- .replaceAll(/ +/g, "-")
361
+ .replaceAll(/ +/gv, "-")
357
362
  .toLowerCase();
358
363
  }
359
364
 
@@ -13,7 +13,7 @@ type TupleValue<T extends readonly unknown[]> = T[0];
13
13
  type TupleEntry<T extends readonly unknown[]> = [TupleKey<T>, TupleValue<T>]; // eslint-disable-line perfectionist/sort-modules
14
14
 
15
15
  /**
16
- * Helper function to get the entries (i.e. indexes and values) of a tuple in a type-safe way.
16
+ * Helper function to get the entries (i.e., indexes and values) of a tuple in a type-safe way.
17
17
  *
18
18
  * This is useful because the vanilla `Array.entries` method will always have the keys be of type
19
19
  * `number`.
@@ -25,7 +25,7 @@ export function* tupleEntries<T extends readonly unknown[]>(
25
25
  }
26
26
 
27
27
  /**
28
- * Helper function to get the keys (i.e. indexes) of a tuple in a type-safe way.
28
+ * Helper function to get the keys (i.e., indexes) of a tuple in a type-safe way.
29
29
  *
30
30
  * This is useful because the vanilla `Array.keys` method will always have the keys be of type
31
31
  * `number`.
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  /**
8
- * Helper function to narrow an unknown value to an object (i.e. a TypeScript record).
8
+ * Helper function to narrow an unknown value to an object (i.e., a TypeScript record).
9
9
  *
10
10
  * Under the hood, this checks for `typeof variable === "object"`, `variable !== null`, and
11
11
  * `!Array.isArray(variable)`.
@@ -7,8 +7,8 @@
7
7
  // When regexes are located at the root instead of inside the function, the functions are tested to
8
8
  // perform 11% faster.
9
9
 
10
- const FLOAT_REGEX = /^-?\d*\.?\d+$/;
11
- const INTEGER_REGEX = /^-?\d+$/;
10
+ const FLOAT_REGEX = /^-?(?:\d+(?:\.\d+)?|\.\d+)$/v;
11
+ const INTEGER_REGEX = /^-?\d+$/v;
12
12
 
13
13
  /**
14
14
  * Helper function to get an iterator of integers with the specified range, inclusive on the lower
@@ -99,7 +99,7 @@ export function isKeyOf<T extends object>(
99
99
  key: PropertyKey,
100
100
  target: T,
101
101
  ): key is keyof T {
102
- return key in target;
102
+ return Object.hasOwn(target, key);
103
103
  }
104
104
 
105
105
  /**
@@ -115,10 +115,8 @@ export function noop(): void {}
115
115
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
116
116
  * TypeScript type narrowing patterns.
117
117
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
118
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
118
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
119
119
  * - Non-strings will result in undefined instead of being coerced to a number.
120
- *
121
- * @param string A string to convert to an integer.
122
120
  */
123
121
  export function parseFloatSafe(string: string): number | undefined {
124
122
  if (typeof string !== "string") {
@@ -128,11 +126,13 @@ export function parseFloatSafe(string: string): number | undefined {
128
126
  const trimmedString = string.trim();
129
127
 
130
128
  // If the string does not entirely consist of numbers, return undefined.
131
- if (FLOAT_REGEX.exec(trimmedString) === null) {
129
+ if (!FLOAT_REGEX.test(trimmedString)) {
132
130
  return undefined;
133
131
  }
134
132
 
135
- const number = Number.parseFloat(trimmedString);
133
+ // The "Number" constructor is used instead of "Number.parseFloat":
134
+ // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-number-coercion.md
135
+ const number = Number(trimmedString);
136
136
  return Number.isNaN(number) ? undefined : number;
137
137
  }
138
138
 
@@ -142,7 +142,7 @@ export function parseFloatSafe(string: string): number | undefined {
142
142
  * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
143
143
  * TypeScript type narrowing patterns.
144
144
  * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
145
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
145
+ * of the string that is the number. (e.g., "1a" --> undefined instead of "1a" --> 1)
146
146
  * - Non-strings will result in undefined instead of being coerced to a number.
147
147
  *
148
148
  * If you have to use a radix other than 10, use the vanilla `Number.parseInt` function instead,
@@ -156,11 +156,13 @@ export function parseIntSafe(string: string): number | undefined {
156
156
  const trimmedString = string.trim();
157
157
 
158
158
  // If the string does not entirely consist of numbers, return undefined.
159
- if (INTEGER_REGEX.exec(trimmedString) === null) {
159
+ if (!INTEGER_REGEX.test(trimmedString)) {
160
160
  return undefined;
161
161
  }
162
162
 
163
- const number = Number.parseInt(trimmedString, 10);
163
+ // The "Number" constructor is used instead of "Number.parseInt":
164
+ // https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-number-coercion.md
165
+ const number = Math.trunc(Number(trimmedString));
164
166
  return Number.isNaN(number) ? undefined : number;
165
167
  }
166
168