@alextheman/utility 3.0.0 → 3.2.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.
package/dist/index.cjs CHANGED
@@ -30,13 +30,9 @@ path = __toESM(path);
30
30
  let zod = require("zod");
31
31
  zod = __toESM(zod);
32
32
 
33
- //#region src/functions/addDaysToDate.ts
34
- function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
35
- const newDate = currentDate;
36
- newDate.setDate(newDate.getDate() + dayIncrement);
37
- return newDate;
38
- }
39
- var addDaysToDate_default = addDaysToDate;
33
+ //#region src/constants/NAMESPACE_EXPORT_REGEX.ts
34
+ const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
35
+ var NAMESPACE_EXPORT_REGEX_default = NAMESPACE_EXPORT_REGEX;
40
36
 
41
37
  //#endregion
42
38
  //#region src/functions/appendSemicolon.ts
@@ -48,6 +44,81 @@ function appendSemicolon(stringToAppendTo) {
48
44
  }
49
45
  var appendSemicolon_default = appendSemicolon;
50
46
 
47
+ //#endregion
48
+ //#region src/functions/arrayHelpers/fillArray.ts
49
+ function fillArray(callback, length = 1) {
50
+ const outputArray = new Array(length).fill(null).map((_, index) => {
51
+ return callback(index);
52
+ });
53
+ if (outputArray.some((item) => {
54
+ return item instanceof Promise;
55
+ })) return Promise.all(outputArray);
56
+ return outputArray;
57
+ }
58
+ var fillArray_default = fillArray;
59
+
60
+ //#endregion
61
+ //#region src/functions/arrayHelpers/paralleliseArrays.ts
62
+ function paralleliseArrays(firstArray, secondArray) {
63
+ const outputArray = [];
64
+ for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
65
+ return outputArray;
66
+ }
67
+ var paralleliseArrays_default = paralleliseArrays;
68
+
69
+ //#endregion
70
+ //#region src/functions/parsers/parseIntStrict.ts
71
+ const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
72
+ function parseIntStrict(...[string, radix]) {
73
+ const trimmedString = string.trim();
74
+ if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
75
+ if (radix && radix < 10 && [...trimmedString].some((character) => {
76
+ return parseInt(character) >= radix;
77
+ })) throw IntegerParsingError;
78
+ const parseIntResult = parseInt(trimmedString, radix);
79
+ if (isNaN(parseIntResult)) throw IntegerParsingError;
80
+ return parseIntResult;
81
+ }
82
+ var parseIntStrict_default = parseIntStrict;
83
+
84
+ //#endregion
85
+ //#region src/functions/getRandomNumber.ts
86
+ function getRandomNumber(lowerBound, upperBound) {
87
+ const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
88
+ const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
89
+ return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
90
+ }
91
+ var getRandomNumber_default = getRandomNumber;
92
+
93
+ //#endregion
94
+ //#region src/functions/arrayHelpers/randomiseArray.ts
95
+ function randomiseArray(array) {
96
+ const mutableArray = [...array];
97
+ const outputArray = [];
98
+ do {
99
+ const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
100
+ outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
101
+ } while (mutableArray.length > 0);
102
+ return outputArray;
103
+ }
104
+ var randomiseArray_default = randomiseArray;
105
+
106
+ //#endregion
107
+ //#region src/functions/arrayHelpers/range.ts
108
+ function range(start, stop, step = 1) {
109
+ const numbers = [];
110
+ if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
111
+ else if (step > 0) {
112
+ if (start > stop) throw new Error("INVALID_BOUNDARIES");
113
+ for (let i = start; i < stop; i += step) numbers.push(i);
114
+ } else if (step < 0) {
115
+ if (start < stop) throw new Error("INVALID_BOUNDARIES");
116
+ for (let i = start; i > stop; i += step) numbers.push(i);
117
+ }
118
+ return numbers;
119
+ }
120
+ var range_default = range;
121
+
51
122
  //#endregion
52
123
  //#region src/functions/camelToKebab.ts
53
124
  function camelToKebab(string) {
@@ -141,27 +212,23 @@ function createTemplateStringsArray(strings) {
141
212
  var createTemplateStringsArray_default = createTemplateStringsArray;
142
213
 
143
214
  //#endregion
144
- //#region src/functions/fillArray.ts
145
- function fillArray(callback, length = 1) {
146
- const outputArray = new Array(length).fill(null).map((_, index) => {
147
- return callback(index);
148
- });
149
- if (outputArray.some((item) => {
150
- return item instanceof Promise;
151
- })) return Promise.all(outputArray);
152
- return outputArray;
215
+ //#region src/functions/date/addDaysToDate.ts
216
+ function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
217
+ const newDate = currentDate;
218
+ newDate.setDate(newDate.getDate() + dayIncrement);
219
+ return newDate;
153
220
  }
154
- var fillArray_default = fillArray;
221
+ var addDaysToDate_default = addDaysToDate;
155
222
 
156
223
  //#endregion
157
- //#region src/functions/isSameDate.ts
224
+ //#region src/functions/date/isSameDate.ts
158
225
  function isSameDate(firstDate, secondDate) {
159
226
  return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
160
227
  }
161
228
  var isSameDate_default = isSameDate;
162
229
 
163
230
  //#endregion
164
- //#region src/functions/formatDateAndTime.ts
231
+ //#region src/functions/date/formatDateAndTime.ts
165
232
  function formatDateAndTime(inputDate) {
166
233
  const yesterday = addDaysToDate_default(/* @__PURE__ */ new Date(), -1);
167
234
  const today = /* @__PURE__ */ new Date();
@@ -173,38 +240,7 @@ function formatDateAndTime(inputDate) {
173
240
  var formatDateAndTime_default = formatDateAndTime;
174
241
 
175
242
  //#endregion
176
- //#region src/functions/parseIntStrict.ts
177
- const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
178
- function parseIntStrict(...[string, radix]) {
179
- const trimmedString = string.trim();
180
- if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
181
- if (radix && radix < 10 && [...trimmedString].some((character) => {
182
- return parseInt(character) >= radix;
183
- })) throw IntegerParsingError;
184
- const parseIntResult = parseInt(trimmedString, radix);
185
- if (isNaN(parseIntResult)) throw IntegerParsingError;
186
- return parseIntResult;
187
- }
188
- var parseIntStrict_default = parseIntStrict;
189
-
190
- //#endregion
191
- //#region src/functions/getRandomNumber.ts
192
- function getRandomNumber(lowerBound, upperBound) {
193
- const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
194
- const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
195
- return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
196
- }
197
- var getRandomNumber_default = getRandomNumber;
198
-
199
- //#endregion
200
- //#region src/functions/getRecordKeys.ts
201
- function getRecordKeys(record) {
202
- return Object.keys(record);
203
- }
204
- var getRecordKeys_default = getRecordKeys;
205
-
206
- //#endregion
207
- //#region src/functions/isLeapYear.ts
243
+ //#region src/functions/date/isLeapYear.ts
208
244
  function isLeapYear(year) {
209
245
  const parsedYear = parseIntStrict_default(`${year}`);
210
246
  return parsedYear % 4 === 0 && parsedYear % 100 !== 0 || parsedYear % 400 === 0;
@@ -212,7 +248,19 @@ function isLeapYear(year) {
212
248
  var isLeapYear_default = isLeapYear;
213
249
 
214
250
  //#endregion
215
- //#region src/functions/isMonthlyMultiple.ts
251
+ //#region src/functions/date/isAnniversary.ts
252
+ function checkLeapYear(firstDate, secondDate) {
253
+ if (isLeapYear_default(firstDate.getFullYear()) && firstDate.getMonth() === 1 && secondDate.getMonth() === 1) return firstDate.getDate() === 29 && secondDate.getDate() === 28;
254
+ return false;
255
+ }
256
+ function isAnniversary(firstDate, secondDate) {
257
+ if (checkLeapYear(firstDate, secondDate) || checkLeapYear(secondDate, firstDate)) return true;
258
+ return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth();
259
+ }
260
+ var isAnniversary_default = isAnniversary;
261
+
262
+ //#endregion
263
+ //#region src/functions/date/isMonthlyMultiple.ts
216
264
  function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
217
265
  if ([
218
266
  3,
@@ -251,6 +299,13 @@ function isMonthlyMultiple(firstDate, secondDate) {
251
299
  }
252
300
  var isMonthlyMultiple_default = isMonthlyMultiple;
253
301
 
302
+ //#endregion
303
+ //#region src/functions/getRecordKeys.ts
304
+ function getRecordKeys(record) {
305
+ return Object.keys(record);
306
+ }
307
+ var getRecordKeys_default = getRecordKeys;
308
+
254
309
  //#endregion
255
310
  //#region src/functions/isOrdered.ts
256
311
  function isOrdered(array) {
@@ -313,13 +368,27 @@ function omitProperties(object, keysToOmit) {
313
368
  var omitProperties_default = omitProperties;
314
369
 
315
370
  //#endregion
316
- //#region src/functions/paralleliseArrays.ts
317
- function paralleliseArrays(firstArray, secondArray) {
318
- const outputArray = [];
319
- for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
320
- return outputArray;
371
+ //#region src/functions/parsers/parseBoolean.ts
372
+ function parseBoolean(inputString) {
373
+ const normalisedString = inputString.toLowerCase();
374
+ if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
375
+ return normalisedString === "true";
321
376
  }
322
- var paralleliseArrays_default = paralleliseArrays;
377
+ /** @deprecated This function has been renamed to parseBoolean. */
378
+ const stringToBoolean = parseBoolean;
379
+ var parseBoolean_default = parseBoolean;
380
+
381
+ //#endregion
382
+ //#region src/functions/parsers/parseFormData.ts
383
+ function parseFormData(formData, dataParser) {
384
+ const object = {};
385
+ formData.forEach((value, key) => {
386
+ object[key] = value;
387
+ });
388
+ if (dataParser) return dataParser(object);
389
+ return object;
390
+ }
391
+ var parseFormData_default = parseFormData;
323
392
 
324
393
  //#endregion
325
394
  //#region src/types/APIError.ts
@@ -402,7 +471,7 @@ function parseUUID(UUID) {
402
471
  var UUID_default = parseUUID;
403
472
 
404
473
  //#endregion
405
- //#region src/functions/parseZodSchema.ts
474
+ //#region src/functions/parsers/parseZodSchema.ts
406
475
  function parseZodSchema(schema, data) {
407
476
  const parsedResult = schema.safeParse(data);
408
477
  if (!parsedResult.success) throw new DataError_default(data);
@@ -410,35 +479,6 @@ function parseZodSchema(schema, data) {
410
479
  }
411
480
  var parseZodSchema_default = parseZodSchema;
412
481
 
413
- //#endregion
414
- //#region src/functions/randomiseArray.ts
415
- function randomiseArray(array) {
416
- const mutableArray = [...array];
417
- const outputArray = [];
418
- do {
419
- const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
420
- outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
421
- } while (mutableArray.length > 0);
422
- return outputArray;
423
- }
424
- var randomiseArray_default = randomiseArray;
425
-
426
- //#endregion
427
- //#region src/functions/range.ts
428
- function range(start, stop, step = 1) {
429
- const numbers = [];
430
- if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
431
- else if (step > 0) {
432
- if (start > stop) throw new Error("INVALID_BOUNDARIES");
433
- for (let i = start; i < stop; i += step) numbers.push(i);
434
- } else if (step < 0) {
435
- if (start < stop) throw new Error("INVALID_BOUNDARIES");
436
- for (let i = start; i > stop; i += step) numbers.push(i);
437
- }
438
- return numbers;
439
- }
440
- var range_default = range;
441
-
442
482
  //#endregion
443
483
  //#region src/functions/removeDuplicates.ts
444
484
  function removeDuplicates(array) {
@@ -459,33 +499,6 @@ function stringListToArray(stringList, { separator = ",", trimWhitespace = true
459
499
  }
460
500
  var stringListToArray_default = stringListToArray;
461
501
 
462
- //#endregion
463
- //#region src/functions/stringToBoolean.ts
464
- function stringToBoolean(inputString) {
465
- const normalisedString = inputString.toLowerCase();
466
- if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
467
- return normalisedString === "true";
468
- }
469
- var stringToBoolean_default = stringToBoolean;
470
-
471
- //#endregion
472
- //#region src/functions/truncate.ts
473
- function truncate(stringToTruncate, maxLength = 5) {
474
- return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
475
- }
476
- var truncate_default = truncate;
477
-
478
- //#endregion
479
- //#region src/functions/wait.ts
480
- function wait(seconds) {
481
- return new Promise((resolve, _) => {
482
- setTimeout(() => {
483
- resolve();
484
- }, seconds * 1e3);
485
- });
486
- }
487
- var wait_default = wait;
488
-
489
502
  //#endregion
490
503
  //#region src/functions/taggedTemplate/interpolate.ts
491
504
  function interpolate(strings, ...interpolations) {
@@ -546,9 +559,28 @@ function removeIndents(first, ...args) {
546
559
  }
547
560
  var removeIndents_default = removeIndents;
548
561
 
562
+ //#endregion
563
+ //#region src/functions/truncate.ts
564
+ function truncate(stringToTruncate, maxLength = 5) {
565
+ return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
566
+ }
567
+ var truncate_default = truncate;
568
+
569
+ //#endregion
570
+ //#region src/functions/wait.ts
571
+ function wait(seconds) {
572
+ return new Promise((resolve, _) => {
573
+ setTimeout(() => {
574
+ resolve();
575
+ }, seconds * 1e3);
576
+ });
577
+ }
578
+ var wait_default = wait;
579
+
549
580
  //#endregion
550
581
  exports.APIError = APIError_default;
551
582
  exports.DataError = DataError_default;
583
+ exports.NAMESPACE_EXPORT_REGEX = NAMESPACE_EXPORT_REGEX_default;
552
584
  exports.addDaysToDate = addDaysToDate_default;
553
585
  exports.appendSemicolon = appendSemicolon_default;
554
586
  exports.camelToKebab = camelToKebab_default;
@@ -562,6 +594,7 @@ exports.getRecordKeys = getRecordKeys_default;
562
594
  exports.httpErrorCodeLookup = httpErrorCodeLookup;
563
595
  exports.interpolate = interpolate_default;
564
596
  exports.interpolateObjects = interpolateObjects_default;
597
+ exports.isAnniversary = isAnniversary_default;
565
598
  exports.isLeapYear = isLeapYear_default;
566
599
  exports.isMonthlyMultiple = isMonthlyMultiple_default;
567
600
  exports.isOrdered = isOrdered_default;
@@ -571,8 +604,10 @@ exports.normaliseImportPath = normaliseImportPath;
571
604
  exports.normalizeImportPath = normalizeImportPath_default;
572
605
  exports.omitProperties = omitProperties_default;
573
606
  exports.paralleliseArrays = paralleliseArrays_default;
607
+ exports.parseBoolean = parseBoolean_default;
574
608
  exports.parseEmail = Email_default;
575
609
  exports.parseEnv = Env_default;
610
+ exports.parseFormData = parseFormData_default;
576
611
  exports.parseIntStrict = parseIntStrict_default;
577
612
  exports.parseUUID = UUID_default;
578
613
  exports.parseZodSchema = parseZodSchema_default;
@@ -581,6 +616,6 @@ exports.range = range_default;
581
616
  exports.removeDuplicates = removeDuplicates_default;
582
617
  exports.removeIndents = removeIndents_default;
583
618
  exports.stringListToArray = stringListToArray_default;
584
- exports.stringToBoolean = stringToBoolean_default;
619
+ exports.stringToBoolean = stringToBoolean;
585
620
  exports.truncate = truncate_default;
586
621
  exports.wait = wait_default;
package/dist/index.d.cts CHANGED
@@ -1,11 +1,25 @@
1
1
  import z, { ZodType, core, z as z$1 } from "zod";
2
2
 
3
- //#region src/functions/addDaysToDate.d.ts
4
- declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
3
+ //#region src/constants/NAMESPACE_EXPORT_REGEX.d.ts
4
+ declare const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
5
5
  //#endregion
6
6
  //#region src/functions/appendSemicolon.d.ts
7
7
  declare function appendSemicolon(stringToAppendTo: string): string;
8
8
  //#endregion
9
+ //#region src/functions/arrayHelpers/fillArray.d.ts
10
+ declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
11
+ declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
12
+ //#endregion
13
+ //#region src/functions/arrayHelpers/paralleliseArrays.d.ts
14
+ type ParallelTuple<A, B> = [A, B | undefined];
15
+ declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
16
+ //#endregion
17
+ //#region src/functions/arrayHelpers/randomiseArray.d.ts
18
+ declare function randomiseArray<T>(array: T[]): T[];
19
+ //#endregion
20
+ //#region src/functions/arrayHelpers/range.d.ts
21
+ declare function range(start: number, stop: number, step?: number): number[];
22
+ //#endregion
9
23
  //#region src/functions/camelToKebab.d.ts
10
24
  declare function camelToKebab(string: string): string;
11
25
  //#endregion
@@ -89,31 +103,33 @@ declare function createFormData<T extends Record<RecordKey, unknown>>(data: T, o
89
103
  //#region src/functions/createTemplateStringsArray.d.ts
90
104
  declare function createTemplateStringsArray(strings: readonly string[]): TemplateStringsArray;
91
105
  //#endregion
92
- //#region src/functions/fillArray.d.ts
93
- declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
94
- declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
106
+ //#region src/functions/date/addDaysToDate.d.ts
107
+ declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
95
108
  //#endregion
96
- //#region src/functions/formatDateAndTime.d.ts
109
+ //#region src/functions/date/formatDateAndTime.d.ts
97
110
  declare function formatDateAndTime(inputDate: Date): string;
98
111
  //#endregion
112
+ //#region src/functions/date/isAnniversary.d.ts
113
+ declare function isAnniversary(firstDate: Date, secondDate: Date): boolean;
114
+ //#endregion
115
+ //#region src/functions/date/isLeapYear.d.ts
116
+ declare function isLeapYear(year: number): boolean;
117
+ //#endregion
118
+ //#region src/functions/date/isMonthlyMultiple.d.ts
119
+ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
120
+ //#endregion
121
+ //#region src/functions/date/isSameDate.d.ts
122
+ declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
123
+ //#endregion
99
124
  //#region src/functions/getRandomNumber.d.ts
100
125
  declare function getRandomNumber(lowerBound: number, upperBound: number): number;
101
126
  //#endregion
102
127
  //#region src/functions/getRecordKeys.d.ts
103
128
  declare function getRecordKeys<T extends Record<RecordKey, unknown>>(record: T & object): (keyof T)[];
104
129
  //#endregion
105
- //#region src/functions/isLeapYear.d.ts
106
- declare function isLeapYear(year: number): boolean;
107
- //#endregion
108
- //#region src/functions/isMonthlyMultiple.d.ts
109
- declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
110
- //#endregion
111
130
  //#region src/functions/isOrdered.d.ts
112
131
  declare function isOrdered(array: readonly number[] | number[]): boolean;
113
132
  //#endregion
114
- //#region src/functions/isSameDate.d.ts
115
- declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
116
- //#endregion
117
133
  //#region src/functions/kebabToCamel.d.ts
118
134
  interface KebabToCamelOptions {
119
135
  startWithUpper?: boolean;
@@ -127,22 +143,21 @@ declare const normaliseImportPath: typeof normalizeImportPath;
127
143
  //#region src/functions/omitProperties.d.ts
128
144
  declare function omitProperties<T extends Record<string, unknown> | Readonly<Record<string, unknown>>, K extends keyof T>(object: T, keysToOmit: K | readonly K[]): Omit<T, K>;
129
145
  //#endregion
130
- //#region src/functions/paralleliseArrays.d.ts
131
- type ParallelTuple<A, B> = [A, B | undefined];
132
- declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
146
+ //#region src/functions/parsers/parseBoolean.d.ts
147
+ declare function parseBoolean(inputString: string): boolean;
148
+ /** @deprecated This function has been renamed to parseBoolean. */
149
+ declare const stringToBoolean: typeof parseBoolean;
150
+ //#endregion
151
+ //#region src/functions/parsers/parseFormData.d.ts
152
+ declare function parseFormData<T>(formData: FormData, dataParser: (data: Record<string, string | Blob>) => T): T;
153
+ declare function parseFormData(formData: FormData): Record<string, string | Blob>;
133
154
  //#endregion
134
- //#region src/functions/parseIntStrict.d.ts
155
+ //#region src/functions/parsers/parseIntStrict.d.ts
135
156
  declare function parseIntStrict(...[string, radix]: Parameters<typeof parseInt>): number;
136
157
  //#endregion
137
- //#region src/functions/parseZodSchema.d.ts
158
+ //#region src/functions/parsers/parseZodSchema.d.ts
138
159
  declare function parseZodSchema<Output, Input, Internals extends core.$ZodTypeInternals<Output, Input>>(schema: ZodType<Output, Input, Internals>, data: unknown): core.output<ZodType<Output, Input, Internals>>;
139
160
  //#endregion
140
- //#region src/functions/randomiseArray.d.ts
141
- declare function randomiseArray<T>(array: T[]): T[];
142
- //#endregion
143
- //#region src/functions/range.d.ts
144
- declare function range(start: number, stop: number, step?: number): number[];
145
- //#endregion
146
161
  //#region src/functions/removeDuplicates.d.ts
147
162
  declare function removeDuplicates<T>(array: T[] | readonly T[]): T[];
148
163
  //#endregion
@@ -156,15 +171,6 @@ declare function stringListToArray(stringList: string, {
156
171
  trimWhitespace
157
172
  }?: StringListToArrayOptions): string[];
158
173
  //#endregion
159
- //#region src/functions/stringToBoolean.d.ts
160
- declare function stringToBoolean(inputString: string): boolean;
161
- //#endregion
162
- //#region src/functions/truncate.d.ts
163
- declare function truncate(stringToTruncate: string, maxLength?: number): string;
164
- //#endregion
165
- //#region src/functions/wait.d.ts
166
- declare function wait(seconds: number): Promise<void>;
167
- //#endregion
168
174
  //#region src/functions/taggedTemplate/interpolate.d.ts
169
175
  declare function interpolate(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
170
176
  //#endregion
@@ -179,4 +185,10 @@ type RemoveIndentsFunction = (strings: TemplateStringsArray, ...interpolations:
179
185
  declare function removeIndents(options: RemoveIndentsOptions): RemoveIndentsFunction;
180
186
  declare function removeIndents(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
181
187
  //#endregion
182
- export { APIError, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Email, Env, FormDataNullableResolutionStrategy as FormDataResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NonUndefined, OptionalOnCondition, RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, StringListToArrayOptions, UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseEmail, parseEnv, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
188
+ //#region src/functions/truncate.d.ts
189
+ declare function truncate(stringToTruncate: string, maxLength?: number): string;
190
+ //#endregion
191
+ //#region src/functions/wait.d.ts
192
+ declare function wait(seconds: number): Promise<void>;
193
+ //#endregion
194
+ export { APIError, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Email, Env, FormDataNullableResolutionStrategy as FormDataResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, OptionalOnCondition, RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, StringListToArrayOptions, UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,25 @@
1
1
  import z, { ZodType, core, z as z$1 } from "zod";
2
2
 
3
- //#region src/functions/addDaysToDate.d.ts
4
- declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
3
+ //#region src/constants/NAMESPACE_EXPORT_REGEX.d.ts
4
+ declare const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
5
5
  //#endregion
6
6
  //#region src/functions/appendSemicolon.d.ts
7
7
  declare function appendSemicolon(stringToAppendTo: string): string;
8
8
  //#endregion
9
+ //#region src/functions/arrayHelpers/fillArray.d.ts
10
+ declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
11
+ declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
12
+ //#endregion
13
+ //#region src/functions/arrayHelpers/paralleliseArrays.d.ts
14
+ type ParallelTuple<A, B> = [A, B | undefined];
15
+ declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
16
+ //#endregion
17
+ //#region src/functions/arrayHelpers/randomiseArray.d.ts
18
+ declare function randomiseArray<T>(array: T[]): T[];
19
+ //#endregion
20
+ //#region src/functions/arrayHelpers/range.d.ts
21
+ declare function range(start: number, stop: number, step?: number): number[];
22
+ //#endregion
9
23
  //#region src/functions/camelToKebab.d.ts
10
24
  declare function camelToKebab(string: string): string;
11
25
  //#endregion
@@ -89,31 +103,33 @@ declare function createFormData<T extends Record<RecordKey, unknown>>(data: T, o
89
103
  //#region src/functions/createTemplateStringsArray.d.ts
90
104
  declare function createTemplateStringsArray(strings: readonly string[]): TemplateStringsArray;
91
105
  //#endregion
92
- //#region src/functions/fillArray.d.ts
93
- declare function fillArray<T>(callback: (index: number) => Promise<T>, length?: number): Promise<T[]>;
94
- declare function fillArray<T>(callback: (index: number) => T, length?: number): T[];
106
+ //#region src/functions/date/addDaysToDate.d.ts
107
+ declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
95
108
  //#endregion
96
- //#region src/functions/formatDateAndTime.d.ts
109
+ //#region src/functions/date/formatDateAndTime.d.ts
97
110
  declare function formatDateAndTime(inputDate: Date): string;
98
111
  //#endregion
112
+ //#region src/functions/date/isAnniversary.d.ts
113
+ declare function isAnniversary(firstDate: Date, secondDate: Date): boolean;
114
+ //#endregion
115
+ //#region src/functions/date/isLeapYear.d.ts
116
+ declare function isLeapYear(year: number): boolean;
117
+ //#endregion
118
+ //#region src/functions/date/isMonthlyMultiple.d.ts
119
+ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
120
+ //#endregion
121
+ //#region src/functions/date/isSameDate.d.ts
122
+ declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
123
+ //#endregion
99
124
  //#region src/functions/getRandomNumber.d.ts
100
125
  declare function getRandomNumber(lowerBound: number, upperBound: number): number;
101
126
  //#endregion
102
127
  //#region src/functions/getRecordKeys.d.ts
103
128
  declare function getRecordKeys<T extends Record<RecordKey, unknown>>(record: T & object): (keyof T)[];
104
129
  //#endregion
105
- //#region src/functions/isLeapYear.d.ts
106
- declare function isLeapYear(year: number): boolean;
107
- //#endregion
108
- //#region src/functions/isMonthlyMultiple.d.ts
109
- declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
110
- //#endregion
111
130
  //#region src/functions/isOrdered.d.ts
112
131
  declare function isOrdered(array: readonly number[] | number[]): boolean;
113
132
  //#endregion
114
- //#region src/functions/isSameDate.d.ts
115
- declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
116
- //#endregion
117
133
  //#region src/functions/kebabToCamel.d.ts
118
134
  interface KebabToCamelOptions {
119
135
  startWithUpper?: boolean;
@@ -127,22 +143,21 @@ declare const normaliseImportPath: typeof normalizeImportPath;
127
143
  //#region src/functions/omitProperties.d.ts
128
144
  declare function omitProperties<T extends Record<string, unknown> | Readonly<Record<string, unknown>>, K extends keyof T>(object: T, keysToOmit: K | readonly K[]): Omit<T, K>;
129
145
  //#endregion
130
- //#region src/functions/paralleliseArrays.d.ts
131
- type ParallelTuple<A, B> = [A, B | undefined];
132
- declare function paralleliseArrays<FirstArrayItem, SecondArrayItem>(firstArray: FirstArrayItem[] | readonly FirstArrayItem[], secondArray: SecondArrayItem[] | readonly SecondArrayItem[]): ParallelTuple<FirstArrayItem, SecondArrayItem>[];
146
+ //#region src/functions/parsers/parseBoolean.d.ts
147
+ declare function parseBoolean(inputString: string): boolean;
148
+ /** @deprecated This function has been renamed to parseBoolean. */
149
+ declare const stringToBoolean: typeof parseBoolean;
150
+ //#endregion
151
+ //#region src/functions/parsers/parseFormData.d.ts
152
+ declare function parseFormData<T>(formData: FormData, dataParser: (data: Record<string, string | Blob>) => T): T;
153
+ declare function parseFormData(formData: FormData): Record<string, string | Blob>;
133
154
  //#endregion
134
- //#region src/functions/parseIntStrict.d.ts
155
+ //#region src/functions/parsers/parseIntStrict.d.ts
135
156
  declare function parseIntStrict(...[string, radix]: Parameters<typeof parseInt>): number;
136
157
  //#endregion
137
- //#region src/functions/parseZodSchema.d.ts
158
+ //#region src/functions/parsers/parseZodSchema.d.ts
138
159
  declare function parseZodSchema<Output, Input, Internals extends core.$ZodTypeInternals<Output, Input>>(schema: ZodType<Output, Input, Internals>, data: unknown): core.output<ZodType<Output, Input, Internals>>;
139
160
  //#endregion
140
- //#region src/functions/randomiseArray.d.ts
141
- declare function randomiseArray<T>(array: T[]): T[];
142
- //#endregion
143
- //#region src/functions/range.d.ts
144
- declare function range(start: number, stop: number, step?: number): number[];
145
- //#endregion
146
161
  //#region src/functions/removeDuplicates.d.ts
147
162
  declare function removeDuplicates<T>(array: T[] | readonly T[]): T[];
148
163
  //#endregion
@@ -156,15 +171,6 @@ declare function stringListToArray(stringList: string, {
156
171
  trimWhitespace
157
172
  }?: StringListToArrayOptions): string[];
158
173
  //#endregion
159
- //#region src/functions/stringToBoolean.d.ts
160
- declare function stringToBoolean(inputString: string): boolean;
161
- //#endregion
162
- //#region src/functions/truncate.d.ts
163
- declare function truncate(stringToTruncate: string, maxLength?: number): string;
164
- //#endregion
165
- //#region src/functions/wait.d.ts
166
- declare function wait(seconds: number): Promise<void>;
167
- //#endregion
168
174
  //#region src/functions/taggedTemplate/interpolate.d.ts
169
175
  declare function interpolate(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
170
176
  //#endregion
@@ -179,4 +185,10 @@ type RemoveIndentsFunction = (strings: TemplateStringsArray, ...interpolations:
179
185
  declare function removeIndents(options: RemoveIndentsOptions): RemoveIndentsFunction;
180
186
  declare function removeIndents(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
181
187
  //#endregion
182
- export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type IgnoreCase, type KebabToCamelOptions, type NonUndefined, type OptionalOnCondition, type RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseEmail, parseEnv, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
188
+ //#region src/functions/truncate.d.ts
189
+ declare function truncate(stringToTruncate: string, maxLength?: number): string;
190
+ //#endregion
191
+ //#region src/functions/wait.d.ts
192
+ declare function wait(seconds: number): Promise<void>;
193
+ //#endregion
194
+ export { APIError, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DisallowUndefined, type Email, type Env, type FormDataNullableResolutionStrategy as FormDataResolutionStrategy, type HTTPErrorCode, type IgnoreCase, type KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, type NonUndefined, type OptionalOnCondition, type RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, type StringListToArrayOptions, type UUID, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, fillArray, formatDateAndTime, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normalizeImportPath, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
package/dist/index.js CHANGED
@@ -1,13 +1,9 @@
1
1
  import path from "path";
2
2
  import z, { z as z$1 } from "zod";
3
3
 
4
- //#region src/functions/addDaysToDate.ts
5
- function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
6
- const newDate = currentDate;
7
- newDate.setDate(newDate.getDate() + dayIncrement);
8
- return newDate;
9
- }
10
- var addDaysToDate_default = addDaysToDate;
4
+ //#region src/constants/NAMESPACE_EXPORT_REGEX.ts
5
+ const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
6
+ var NAMESPACE_EXPORT_REGEX_default = NAMESPACE_EXPORT_REGEX;
11
7
 
12
8
  //#endregion
13
9
  //#region src/functions/appendSemicolon.ts
@@ -19,6 +15,81 @@ function appendSemicolon(stringToAppendTo) {
19
15
  }
20
16
  var appendSemicolon_default = appendSemicolon;
21
17
 
18
+ //#endregion
19
+ //#region src/functions/arrayHelpers/fillArray.ts
20
+ function fillArray(callback, length = 1) {
21
+ const outputArray = new Array(length).fill(null).map((_, index) => {
22
+ return callback(index);
23
+ });
24
+ if (outputArray.some((item) => {
25
+ return item instanceof Promise;
26
+ })) return Promise.all(outputArray);
27
+ return outputArray;
28
+ }
29
+ var fillArray_default = fillArray;
30
+
31
+ //#endregion
32
+ //#region src/functions/arrayHelpers/paralleliseArrays.ts
33
+ function paralleliseArrays(firstArray, secondArray) {
34
+ const outputArray = [];
35
+ for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
36
+ return outputArray;
37
+ }
38
+ var paralleliseArrays_default = paralleliseArrays;
39
+
40
+ //#endregion
41
+ //#region src/functions/parsers/parseIntStrict.ts
42
+ const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
43
+ function parseIntStrict(...[string, radix]) {
44
+ const trimmedString = string.trim();
45
+ if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
46
+ if (radix && radix < 10 && [...trimmedString].some((character) => {
47
+ return parseInt(character) >= radix;
48
+ })) throw IntegerParsingError;
49
+ const parseIntResult = parseInt(trimmedString, radix);
50
+ if (isNaN(parseIntResult)) throw IntegerParsingError;
51
+ return parseIntResult;
52
+ }
53
+ var parseIntStrict_default = parseIntStrict;
54
+
55
+ //#endregion
56
+ //#region src/functions/getRandomNumber.ts
57
+ function getRandomNumber(lowerBound, upperBound) {
58
+ const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
59
+ const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
60
+ return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
61
+ }
62
+ var getRandomNumber_default = getRandomNumber;
63
+
64
+ //#endregion
65
+ //#region src/functions/arrayHelpers/randomiseArray.ts
66
+ function randomiseArray(array) {
67
+ const mutableArray = [...array];
68
+ const outputArray = [];
69
+ do {
70
+ const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
71
+ outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
72
+ } while (mutableArray.length > 0);
73
+ return outputArray;
74
+ }
75
+ var randomiseArray_default = randomiseArray;
76
+
77
+ //#endregion
78
+ //#region src/functions/arrayHelpers/range.ts
79
+ function range(start, stop, step = 1) {
80
+ const numbers = [];
81
+ if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
82
+ else if (step > 0) {
83
+ if (start > stop) throw new Error("INVALID_BOUNDARIES");
84
+ for (let i = start; i < stop; i += step) numbers.push(i);
85
+ } else if (step < 0) {
86
+ if (start < stop) throw new Error("INVALID_BOUNDARIES");
87
+ for (let i = start; i > stop; i += step) numbers.push(i);
88
+ }
89
+ return numbers;
90
+ }
91
+ var range_default = range;
92
+
22
93
  //#endregion
23
94
  //#region src/functions/camelToKebab.ts
24
95
  function camelToKebab(string) {
@@ -112,27 +183,23 @@ function createTemplateStringsArray(strings) {
112
183
  var createTemplateStringsArray_default = createTemplateStringsArray;
113
184
 
114
185
  //#endregion
115
- //#region src/functions/fillArray.ts
116
- function fillArray(callback, length = 1) {
117
- const outputArray = new Array(length).fill(null).map((_, index) => {
118
- return callback(index);
119
- });
120
- if (outputArray.some((item) => {
121
- return item instanceof Promise;
122
- })) return Promise.all(outputArray);
123
- return outputArray;
186
+ //#region src/functions/date/addDaysToDate.ts
187
+ function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
188
+ const newDate = currentDate;
189
+ newDate.setDate(newDate.getDate() + dayIncrement);
190
+ return newDate;
124
191
  }
125
- var fillArray_default = fillArray;
192
+ var addDaysToDate_default = addDaysToDate;
126
193
 
127
194
  //#endregion
128
- //#region src/functions/isSameDate.ts
195
+ //#region src/functions/date/isSameDate.ts
129
196
  function isSameDate(firstDate, secondDate) {
130
197
  return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
131
198
  }
132
199
  var isSameDate_default = isSameDate;
133
200
 
134
201
  //#endregion
135
- //#region src/functions/formatDateAndTime.ts
202
+ //#region src/functions/date/formatDateAndTime.ts
136
203
  function formatDateAndTime(inputDate) {
137
204
  const yesterday = addDaysToDate_default(/* @__PURE__ */ new Date(), -1);
138
205
  const today = /* @__PURE__ */ new Date();
@@ -144,38 +211,7 @@ function formatDateAndTime(inputDate) {
144
211
  var formatDateAndTime_default = formatDateAndTime;
145
212
 
146
213
  //#endregion
147
- //#region src/functions/parseIntStrict.ts
148
- const IntegerParsingError = /* @__PURE__ */ new TypeError("INTEGER_PARSING_ERROR");
149
- function parseIntStrict(...[string, radix]) {
150
- const trimmedString = string.trim();
151
- if (!(radix && radix > 10 && radix <= 36 ? new RegExp(`^[+-]?[0-9a-${String.fromCharCode(87 + radix - 1)}]+$`, "i") : /^[+-]?\d+$/).test(trimmedString)) throw IntegerParsingError;
152
- if (radix && radix < 10 && [...trimmedString].some((character) => {
153
- return parseInt(character) >= radix;
154
- })) throw IntegerParsingError;
155
- const parseIntResult = parseInt(trimmedString, radix);
156
- if (isNaN(parseIntResult)) throw IntegerParsingError;
157
- return parseIntResult;
158
- }
159
- var parseIntStrict_default = parseIntStrict;
160
-
161
- //#endregion
162
- //#region src/functions/getRandomNumber.ts
163
- function getRandomNumber(lowerBound, upperBound) {
164
- const parsedLowerBound = parseIntStrict_default(`${lowerBound}`);
165
- const parsedUpperBound = parseIntStrict_default(`${upperBound}`);
166
- return Math.floor(Math.random() * (parsedUpperBound - parsedLowerBound + 1) + parsedLowerBound);
167
- }
168
- var getRandomNumber_default = getRandomNumber;
169
-
170
- //#endregion
171
- //#region src/functions/getRecordKeys.ts
172
- function getRecordKeys(record) {
173
- return Object.keys(record);
174
- }
175
- var getRecordKeys_default = getRecordKeys;
176
-
177
- //#endregion
178
- //#region src/functions/isLeapYear.ts
214
+ //#region src/functions/date/isLeapYear.ts
179
215
  function isLeapYear(year) {
180
216
  const parsedYear = parseIntStrict_default(`${year}`);
181
217
  return parsedYear % 4 === 0 && parsedYear % 100 !== 0 || parsedYear % 400 === 0;
@@ -183,7 +219,19 @@ function isLeapYear(year) {
183
219
  var isLeapYear_default = isLeapYear;
184
220
 
185
221
  //#endregion
186
- //#region src/functions/isMonthlyMultiple.ts
222
+ //#region src/functions/date/isAnniversary.ts
223
+ function checkLeapYear(firstDate, secondDate) {
224
+ if (isLeapYear_default(firstDate.getFullYear()) && firstDate.getMonth() === 1 && secondDate.getMonth() === 1) return firstDate.getDate() === 29 && secondDate.getDate() === 28;
225
+ return false;
226
+ }
227
+ function isAnniversary(firstDate, secondDate) {
228
+ if (checkLeapYear(firstDate, secondDate) || checkLeapYear(secondDate, firstDate)) return true;
229
+ return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth();
230
+ }
231
+ var isAnniversary_default = isAnniversary;
232
+
233
+ //#endregion
234
+ //#region src/functions/date/isMonthlyMultiple.ts
187
235
  function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
188
236
  if ([
189
237
  3,
@@ -222,6 +270,13 @@ function isMonthlyMultiple(firstDate, secondDate) {
222
270
  }
223
271
  var isMonthlyMultiple_default = isMonthlyMultiple;
224
272
 
273
+ //#endregion
274
+ //#region src/functions/getRecordKeys.ts
275
+ function getRecordKeys(record) {
276
+ return Object.keys(record);
277
+ }
278
+ var getRecordKeys_default = getRecordKeys;
279
+
225
280
  //#endregion
226
281
  //#region src/functions/isOrdered.ts
227
282
  function isOrdered(array) {
@@ -284,13 +339,27 @@ function omitProperties(object, keysToOmit) {
284
339
  var omitProperties_default = omitProperties;
285
340
 
286
341
  //#endregion
287
- //#region src/functions/paralleliseArrays.ts
288
- function paralleliseArrays(firstArray, secondArray) {
289
- const outputArray = [];
290
- for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
291
- return outputArray;
342
+ //#region src/functions/parsers/parseBoolean.ts
343
+ function parseBoolean(inputString) {
344
+ const normalisedString = inputString.toLowerCase();
345
+ if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
346
+ return normalisedString === "true";
292
347
  }
293
- var paralleliseArrays_default = paralleliseArrays;
348
+ /** @deprecated This function has been renamed to parseBoolean. */
349
+ const stringToBoolean = parseBoolean;
350
+ var parseBoolean_default = parseBoolean;
351
+
352
+ //#endregion
353
+ //#region src/functions/parsers/parseFormData.ts
354
+ function parseFormData(formData, dataParser) {
355
+ const object = {};
356
+ formData.forEach((value, key) => {
357
+ object[key] = value;
358
+ });
359
+ if (dataParser) return dataParser(object);
360
+ return object;
361
+ }
362
+ var parseFormData_default = parseFormData;
294
363
 
295
364
  //#endregion
296
365
  //#region src/types/APIError.ts
@@ -373,7 +442,7 @@ function parseUUID(UUID) {
373
442
  var UUID_default = parseUUID;
374
443
 
375
444
  //#endregion
376
- //#region src/functions/parseZodSchema.ts
445
+ //#region src/functions/parsers/parseZodSchema.ts
377
446
  function parseZodSchema(schema, data) {
378
447
  const parsedResult = schema.safeParse(data);
379
448
  if (!parsedResult.success) throw new DataError_default(data);
@@ -381,35 +450,6 @@ function parseZodSchema(schema, data) {
381
450
  }
382
451
  var parseZodSchema_default = parseZodSchema;
383
452
 
384
- //#endregion
385
- //#region src/functions/randomiseArray.ts
386
- function randomiseArray(array) {
387
- const mutableArray = [...array];
388
- const outputArray = [];
389
- do {
390
- const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
391
- outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
392
- } while (mutableArray.length > 0);
393
- return outputArray;
394
- }
395
- var randomiseArray_default = randomiseArray;
396
-
397
- //#endregion
398
- //#region src/functions/range.ts
399
- function range(start, stop, step = 1) {
400
- const numbers = [];
401
- if (step === 0) throw new Error("ZERO_STEP_SIZE_NOT_ALLOWED");
402
- else if (step > 0) {
403
- if (start > stop) throw new Error("INVALID_BOUNDARIES");
404
- for (let i = start; i < stop; i += step) numbers.push(i);
405
- } else if (step < 0) {
406
- if (start < stop) throw new Error("INVALID_BOUNDARIES");
407
- for (let i = start; i > stop; i += step) numbers.push(i);
408
- }
409
- return numbers;
410
- }
411
- var range_default = range;
412
-
413
453
  //#endregion
414
454
  //#region src/functions/removeDuplicates.ts
415
455
  function removeDuplicates(array) {
@@ -430,33 +470,6 @@ function stringListToArray(stringList, { separator = ",", trimWhitespace = true
430
470
  }
431
471
  var stringListToArray_default = stringListToArray;
432
472
 
433
- //#endregion
434
- //#region src/functions/stringToBoolean.ts
435
- function stringToBoolean(inputString) {
436
- const normalisedString = inputString.toLowerCase();
437
- if (normalisedString !== "true" && normalisedString !== "false") throw new TypeError("INVALID_BOOLEAN_STRING");
438
- return normalisedString === "true";
439
- }
440
- var stringToBoolean_default = stringToBoolean;
441
-
442
- //#endregion
443
- //#region src/functions/truncate.ts
444
- function truncate(stringToTruncate, maxLength = 5) {
445
- return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
446
- }
447
- var truncate_default = truncate;
448
-
449
- //#endregion
450
- //#region src/functions/wait.ts
451
- function wait(seconds) {
452
- return new Promise((resolve, _) => {
453
- setTimeout(() => {
454
- resolve();
455
- }, seconds * 1e3);
456
- });
457
- }
458
- var wait_default = wait;
459
-
460
473
  //#endregion
461
474
  //#region src/functions/taggedTemplate/interpolate.ts
462
475
  function interpolate(strings, ...interpolations) {
@@ -518,4 +531,22 @@ function removeIndents(first, ...args) {
518
531
  var removeIndents_default = removeIndents;
519
532
 
520
533
  //#endregion
521
- export { APIError_default as APIError, DataError_default as DataError, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, interpolate_default as interpolate, interpolateObjects_default as interpolateObjects, isLeapYear_default as isLeapYear, isMonthlyMultiple_default as isMonthlyMultiple, isOrdered_default as isOrdered, isSameDate_default as isSameDate, kebabToCamel_default as kebabToCamel, normaliseImportPath, normalizeImportPath_default as normalizeImportPath, omitProperties_default as omitProperties, paralleliseArrays_default as paralleliseArrays, Email_default as parseEmail, Env_default as parseEnv, parseIntStrict_default as parseIntStrict, UUID_default as parseUUID, parseZodSchema_default as parseZodSchema, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeIndents_default as removeIndents, stringListToArray_default as stringListToArray, stringToBoolean_default as stringToBoolean, truncate_default as truncate, wait_default as wait };
534
+ //#region src/functions/truncate.ts
535
+ function truncate(stringToTruncate, maxLength = 5) {
536
+ return stringToTruncate.length > maxLength ? `${stringToTruncate.slice(0, maxLength)}...` : stringToTruncate;
537
+ }
538
+ var truncate_default = truncate;
539
+
540
+ //#endregion
541
+ //#region src/functions/wait.ts
542
+ function wait(seconds) {
543
+ return new Promise((resolve, _) => {
544
+ setTimeout(() => {
545
+ resolve();
546
+ }, seconds * 1e3);
547
+ });
548
+ }
549
+ var wait_default = wait;
550
+
551
+ //#endregion
552
+ export { APIError_default as APIError, DataError_default as DataError, NAMESPACE_EXPORT_REGEX_default as NAMESPACE_EXPORT_REGEX, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, interpolate_default as interpolate, interpolateObjects_default as interpolateObjects, isAnniversary_default as isAnniversary, isLeapYear_default as isLeapYear, isMonthlyMultiple_default as isMonthlyMultiple, isOrdered_default as isOrdered, isSameDate_default as isSameDate, kebabToCamel_default as kebabToCamel, normaliseImportPath, normalizeImportPath_default as normalizeImportPath, omitProperties_default as omitProperties, paralleliseArrays_default as paralleliseArrays, parseBoolean_default as parseBoolean, Email_default as parseEmail, Env_default as parseEnv, parseFormData_default as parseFormData, parseIntStrict_default as parseIntStrict, UUID_default as parseUUID, parseZodSchema_default as parseZodSchema, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeIndents_default as removeIndents, stringListToArray_default as stringListToArray, stringToBoolean, truncate_default as truncate, wait_default as wait };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alextheman/utility",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "Helpful utility functions",
5
5
  "repository": {
6
6
  "type": "git",