inferred-types 0.51.13 → 0.51.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/index.cjs +4 -0
  2. package/dist/index.js +4 -0
  3. package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
  4. package/dist/runtime/tsconfig.tsbuildinfo +1 -1
  5. package/dist/runtime/type-guards/date-time/isLuxonDateTime.js +1 -1
  6. package/dist/runtime/type-guards/date-time/isThisMonth.d.ts +4 -2
  7. package/dist/runtime/type-guards/date-time/isThisMonth.d.ts.map +1 -1
  8. package/dist/runtime/type-guards/date-time/isThisMonth.js +8 -2
  9. package/dist/runtime/type-guards/date-time/isThisYear.d.ts +4 -2
  10. package/dist/runtime/type-guards/date-time/isThisYear.d.ts.map +1 -1
  11. package/dist/types/boolean-logic/operators/datetime/IsIsoDate.d.ts +26 -0
  12. package/dist/types/boolean-logic/operators/datetime/IsIsoDate.d.ts.map +1 -0
  13. package/dist/types/boolean-logic/operators/datetime/IsIsoDate.js +1 -0
  14. package/dist/types/boolean-logic/operators/datetime/IsIsoDateTime.d.ts +9 -0
  15. package/dist/types/boolean-logic/operators/datetime/IsIsoDateTime.d.ts.map +1 -0
  16. package/dist/types/boolean-logic/operators/datetime/IsIsoDateTime.js +1 -0
  17. package/dist/types/boolean-logic/operators/datetime/IsIsoTime.d.ts +15 -0
  18. package/dist/types/boolean-logic/operators/datetime/IsIsoTime.d.ts.map +1 -0
  19. package/dist/types/boolean-logic/operators/datetime/IsIsoTime.js +1 -0
  20. package/dist/types/boolean-logic/operators/datetime/IsJsDate.d.ts +9 -0
  21. package/dist/types/boolean-logic/operators/datetime/IsJsDate.d.ts.map +1 -0
  22. package/dist/types/boolean-logic/operators/datetime/IsJsDate.js +1 -0
  23. package/dist/types/boolean-logic/operators/datetime/IsLuxonDateTime.d.ts +8 -0
  24. package/dist/types/boolean-logic/operators/datetime/IsLuxonDateTime.d.ts.map +1 -0
  25. package/dist/types/boolean-logic/operators/datetime/IsLuxonDateTime.js +1 -0
  26. package/dist/types/boolean-logic/operators/datetime/IsMoment.d.ts +8 -0
  27. package/dist/types/boolean-logic/operators/datetime/IsMoment.d.ts.map +1 -0
  28. package/dist/types/boolean-logic/operators/datetime/IsMoment.js +1 -0
  29. package/dist/types/boolean-logic/operators/datetime/index.d.ts +7 -0
  30. package/dist/types/boolean-logic/operators/datetime/index.d.ts.map +1 -0
  31. package/dist/types/boolean-logic/operators/datetime/index.js +6 -0
  32. package/dist/types/boolean-logic/operators/index.d.ts +1 -0
  33. package/dist/types/boolean-logic/operators/index.d.ts.map +1 -1
  34. package/dist/types/boolean-logic/operators/index.js +1 -0
  35. package/dist/types/literals/date-time-objects.d.ts +231 -203
  36. package/dist/types/literals/date-time-objects.d.ts.map +1 -1
  37. package/dist/types/string-literals/DateTime.d.ts +2 -4
  38. package/dist/types/string-literals/DateTime.d.ts.map +1 -1
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { isObject } from "src/runtime/index";
5
5
  */
6
6
  export const isLuxonDateTime = (val) => {
7
7
  return isObject(val) &&
8
- typeof val === 'object' &&
8
+ typeof val === "object" &&
9
9
  val !== null &&
10
10
  "isValid" in val &&
11
11
  "invalidReason" in val &&
@@ -1,7 +1,9 @@
1
- import { Iso8601Date, Iso8601DateTime, LuxonJs, MomentJs } from "src/types/index";
1
+ import { IsIso8601DateTime, IsIsoExplicitDate, IsIsoImplicitDate, IsJsDate, IsLuxonDateTime, IsMoment, Iso8601Date, Iso8601DateTime, IsString, LuxonJs, MomentJs } from "src/types/index";
2
+ type RetainDateFormat<T> = IsLuxonDateTime<T> extends true ? LuxonJs["DateTime"] : IsMoment<T> extends true ? MomentJs : IsJsDate<T> extends true ? Date : IsIsoExplicitDate<T> extends true ? Iso8601Date<"explicit"> : IsIsoImplicitDate<T> extends true ? Iso8601Date<"implicit"> : IsIso8601DateTime<T> extends true ? Iso8601DateTime : IsString<T> extends true ? T : never;
2
3
  /**
3
4
  * Type guard which validates that the passed in `val` is a date or date-time
4
5
  * representation and that it's month is the same as the current month year.
5
6
  */
6
- export declare const isThisMonth: (val: unknown) => val is Date | MomentJs | LuxonJs["DateTime"] | Iso8601DateTime | Iso8601Date;
7
+ export declare const isThisMonth: <T>(val: T) => val is T & RetainDateFormat<T>;
8
+ export {};
7
9
  //# sourceMappingURL=isThisMonth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isThisMonth.d.ts","sourceRoot":"","sources":["../../../../src/runtime/type-guards/date-time/isThisMonth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIlF;;;EAGE;AACF,eAAO,MAAM,WAAW,QACjB,OAAO,KACX,GAAG,IAAI,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,WAgCnE,CAAA"}
1
+ {"version":3,"file":"isThisMonth.d.ts","sourceRoot":"","sources":["../../../../src/runtime/type-guards/date-time/isThisMonth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,WAAW,EACX,eAAe,EACf,QAAQ,EACR,OAAO,EACP,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAIzB,KAAK,gBAAgB,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GACtD,OAAO,CAAC,UAAU,CAAC,GACnB,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,QAAQ,GACR,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,IAAI,GACJ,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,WAAW,CAAC,UAAU,CAAC,GACvB,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,WAAW,CAAC,UAAU,CAAC,GACvB,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,eAAe,GACf,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,CAAC,GACD,KAAK,CAAC;AAEV;;;EAGE;AACF,eAAO,MAAM,WAAW,GAAI,CAAC,OACtB,CAAC,KACL,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAwC/B,CAAC"}
@@ -16,13 +16,19 @@ export const isThisMonth = (val) => {
16
16
  if (isMoment(val)) {
17
17
  const monthValue = val.month();
18
18
  return val.year() === currentYear &&
19
- (typeof monthValue === "number" ? monthValue + 1 : monthValue) === currentMonth; // Moment months are 0-11
19
+ (typeof monthValue === "number" ? monthValue + 1 : monthValue) === currentMonth;
20
20
  }
21
21
  if (isLuxonDateTime(val)) {
22
22
  return val.year === currentYear &&
23
- val.month === currentMonth; // Luxon months are 1-12
23
+ val.month === currentMonth;
24
24
  }
25
+ // Handle ISO 8601 strings
25
26
  if (typeof val === "string") {
27
+ // Match for full ISO 8601 date (YYYY-MM-DD) or datetime (YYYY-MM-DDThh:mm:ssZ) format
28
+ const isoDateRegex = /^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])(?:T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[-+][01]\d:[0-5]\d))?$/;
29
+ if (!isoDateRegex.test(val)) {
30
+ return false;
31
+ }
26
32
  const dateMatch = val.match(/^(\d{4})-(\d{2})/);
27
33
  if (dateMatch) {
28
34
  const year = parseInt(dateMatch[1], 10);
@@ -1,7 +1,9 @@
1
- import { Iso8601Date, Iso8601DateTime, LuxonJs, MomentJs } from "src/types/index";
1
+ import { IsIso8601DateTime, IsIsoExplicitDate, IsIsoImplicitDate, IsJsDate, IsLuxonDateTime, IsMoment, Iso8601Date, Iso8601DateTime, IsString, LuxonJs, MomentJs } from "src/types/index";
2
+ type RetainDateFormat<T> = IsLuxonDateTime<T> extends true ? LuxonJs["DateTime"] : IsMoment<T> extends true ? MomentJs : IsJsDate<T> extends true ? Date : IsIsoExplicitDate<T> extends true ? Iso8601Date<"explicit"> : IsIsoImplicitDate<T> extends true ? Iso8601Date<"implicit"> : IsIso8601DateTime<T> extends true ? Iso8601DateTime : IsString<T> extends true ? T : never;
2
3
  /**
3
4
  * Type guard which validates that the passed in `val` is a date or date-time
4
5
  * representation and that it's year is the same as the current year.
5
6
  */
6
- export declare const isThisYear: (val: unknown) => val is Date | MomentJs | LuxonJs["DateTime"] | Iso8601DateTime | Iso8601Date;
7
+ export declare const isThisYear: <T>(val: T) => val is T & RetainDateFormat<T>;
8
+ export {};
7
9
  //# sourceMappingURL=isThisYear.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isThisYear.d.ts","sourceRoot":"","sources":["../../../../src/runtime/type-guards/date-time/isThisYear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIlF;;;EAGE;AACF,eAAO,MAAM,UAAU,QAChB,OAAO,KACX,GAAG,IAAI,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,WAkCnE,CAAC"}
1
+ {"version":3,"file":"isThisYear.d.ts","sourceRoot":"","sources":["../../../../src/runtime/type-guards/date-time/isThisYear.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,QAAQ,EACR,OAAO,EACP,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAIzB,KAAK,gBAAgB,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GACtD,OAAO,CAAC,UAAU,CAAC,GACnB,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,QAAQ,GACR,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,IAAI,GACJ,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,WAAW,CAAC,UAAU,CAAC,GACvB,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,WAAW,CAAC,UAAU,CAAC,GACvB,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,eAAe,GACf,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,CAAC,GACD,KAAK,CAAC;AAEV;;;EAGE;AACF,eAAO,MAAM,UAAU,GAAI,CAAC,OACrB,CAAC,KACL,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAkC/B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { IsEqual, NumericChar, NumericCharZeroToThree, NumericCharZeroToTwo, Slice } from "src/types/index";
2
+ type YMD<T> = T extends `${number}-${number}-${number}` ? T extends `${infer Year}-${infer Month}-${infer Day}` ? [Year, Month, Day] : never : T extends `${number}` ? [Slice<T, 0, 4>, Slice<T, 4, 2>, Slice<T, 6, 2>] : never;
3
+ type Validate<T> = T extends readonly [string, string, string] ? T[0] extends `${NumericChar}${NumericChar}${NumericChar}${NumericChar}` ? T[1] extends `${NumericCharZeroToTwo}${NumericChar}` ? T[2] extends `${NumericCharZeroToThree}${NumericChar}` ? true : false : false : false : false;
4
+ /**
5
+ * **IsIsoExplicitDate**`<T>`
6
+ *
7
+ * Boolean operator which returns `true` when `T` is an explicit date string of the
8
+ * format `YYYY-MM-DD`.
9
+ */
10
+ export type IsIsoExplicitDate<T> = IsEqual<T, string> extends true ? boolean : T extends `${number}-${number}-${number}` ? Validate<YMD<T>> extends true ? true : false : false;
11
+ /**
12
+ * **IsIsoImplicitDate**`<T>`
13
+ *
14
+ * Boolean operator which returns `true` when `T` is an _impplicit_ date string of the
15
+ * format `YYYYMMDD`.
16
+ */
17
+ export type IsIsoImplicitDate<T> = IsEqual<T, string> extends true ? boolean : T extends `${number}` ? Validate<YMD<T>> extends true ? true : false : false;
18
+ /**
19
+ * **IsIsoDate**`<T>`
20
+ *
21
+ * Boolean operator which returns `true` when `T` is a valid ISO 8601 date string of the
22
+ * format `YYYYMMDD` or `YYYY-MM-DD`.
23
+ */
24
+ export type IsIsoDate<T> = IsEqual<T, string> extends true ? boolean : IsIsoExplicitDate<T> extends true ? true : IsIsoImplicitDate<T> extends true ? true : false;
25
+ export {};
26
+ //# sourceMappingURL=IsIsoDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsIsoDate.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/IsIsoDate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,EACN,MAAM,iBAAiB,CAAC;AAGzB,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACnD,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,KAAK,IAAI,MAAM,GAAG,EAAE,GACrD,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAClB,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,EAAE,GACrB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAChD,KAAK,CAAC;AAEV,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC5D,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,EAAE,GACvE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,oBAAoB,GAAG,WAAW,EAAE,GACpD,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,sBAAsB,GAAG,WAAW,EAAE,GACtD,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAGR;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAC,MAAM,CAAC,SAAS,IAAI,GAC/D,OAAO,GACP,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,IAAI,GACJ,KAAK,GACL,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAC,MAAM,CAAC,SAAS,IAAI,GAC/D,OAAO,GACP,CAAC,SAAS,GAAG,MAAM,EAAE,GACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,IAAI,GACJ,KAAK,GACL,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAC,MAAM,CAAC,SAAS,IAAI,GACvD,OAAO,GACP,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,IAAI,GACJ,iBAAiB,CAAC,CAAC,CAAC,SAAS,IAAI,GACjC,IAAI,GACJ,KAAK,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { IsIsoTime, RetainAfter, RetainUntil } from "src/types/index";
2
+ import { IsIsoDate } from "./IsIsoDate";
3
+ /**
4
+ * **IsIso8601DateTime**`<T>`
5
+ *
6
+ * boolean operator which test whether `T` is a valid ISO 8601 DateTime string.
7
+ */
8
+ export type IsIso8601DateTime<T> = T extends `${string}T${string}` ? IsIsoDate<RetainUntil<T, "T">> extends true ? IsIsoTime<RetainAfter<T, "T">> extends true ? true : false : false : false;
9
+ //# sourceMappingURL=IsIsoDateTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsIsoDateTime.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/IsIsoDateTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;EAIE;AACF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GAC9D,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,GAC3C,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,GAC3C,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Opt, NumericCharZeroToFive, NumericCharZeroToThree, StripAfter, Timezone, StripLeading, NumericChar } from "src/types/index";
2
+ type JustTime<T extends `${Opt<"T">}${number}:${number}:${number}${Opt<Timezone>}`> = StripAfter<StripLeading<T, "T">, "Z">;
3
+ type HMS<T extends `${Opt<"T">}${number}:${number}:${number}${Opt<Timezone>}`> = JustTime<T> extends `${number}:${number}:${number}` ? JustTime<T> extends `${infer H}:${infer M}:${infer S}` ? [H, M, S] : never : never;
4
+ type Validate<T extends readonly [string, string, string]> = T[0] extends `${NumericCharZeroToThree}${NumericChar}` ? T[1] extends `${NumericCharZeroToFive}${NumericChar}` ? T[2] extends `${NumericCharZeroToFive}${number}` ? true : false : false : false;
5
+ /**
6
+ * **IsIsoTime**`<T>`
7
+ *
8
+ * Boolean operator which returns `true` when `T` is a valid ISO 8601 time string of the
9
+ * format `HH:MM:SS`, `HH:MM:SS.ms`, `HH:MM:SSZ`, etc.
10
+ *
11
+ * Note: starting the upppercase "T" is optional but a valid way to start the string.
12
+ */
13
+ export type IsIsoTime<T> = T extends `${Opt<"T">}${number}:${number}:${number}${Opt<Timezone>}` ? Validate<HMS<T>> extends true ? true : false : false;
14
+ export {};
15
+ //# sourceMappingURL=IsIsoTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsIsoTime.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/IsIsoTime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,KAAK,QAAQ,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,IAChF,UAAU,CACR,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACpB,GAAG,CACJ,CAAC;AAEJ,KAAK,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,IAC3E,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACjD,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GACtD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACT,KAAK,GACL,KAAK,CAAC;AAEV,KAAK,QAAQ,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IACvD,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,sBAAsB,GAAG,WAAW,EAAE,GACpD,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,qBAAqB,GAAG,WAAW,EAAE,GACrD,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,qBAAqB,GAAG,MAAM,EAAE,GAChD,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAGV;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,GAC3F,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,IAAI,GACJ,KAAK,GACL,KAAK,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { IsLuxonDateTime } from "./IsLuxonDateTime";
2
+ import { IsMoment } from "./IsMoment";
3
+ /**
4
+ * **IsJsDate**`<T>`
5
+ *
6
+ * Boolean utility to test whether `T` is a Javascript Date object.
7
+ */
8
+ export type IsJsDate<T> = IsMoment<T> extends false ? IsLuxonDateTime<T> extends false ? T extends object ? "getDate" extends keyof T ? "getTimezoneOffset" extends keyof T ? "getFullYear" extends keyof T ? "getMonth" extends keyof T ? "getDay" extends keyof T ? "getHours" extends keyof T ? "getMinutes" extends keyof T ? "getSeconds" extends keyof T ? "getMilliseconds" extends keyof T ? true : false : false : false : false : false : false : false : false : false : false : false : false;
9
+ //# sourceMappingURL=IsJsDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsJsDate.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/IsJsDate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;EAIE;AACF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAC/C,eAAe,CAAC,CAAC,CAAC,SAAS,KAAK,GAChC,CAAC,SAAS,MAAM,GAChB,SAAS,SAAS,MAAM,CAAC,GACzB,mBAAmB,SAAS,MAAM,CAAC,GACnC,aAAa,SAAS,MAAM,CAAC,GAC7B,UAAU,SAAS,MAAM,CAAC,GAC1B,QAAQ,SAAS,MAAM,CAAC,GACxB,UAAU,SAAS,MAAM,CAAC,GAC1B,YAAY,SAAS,MAAM,CAAC,GAC5B,YAAY,SAAS,MAAM,CAAC,GAC5B,iBAAiB,SAAS,MAAM,CAAC,GACjC,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TypedFunction } from "src/types/index";
2
+ /**
3
+ * **IsLuxonDateTime`<T>`
4
+ *
5
+ * A boolean operator which returns `true` when `T` appears to be a Luxon DateTime instance.
6
+ */
7
+ export type IsLuxonDateTime<T> = "isValid" extends keyof T ? "toISODate" extends keyof T ? "toFormat" extends keyof T ? "toMillis" extends keyof T ? "year" extends keyof T ? "month" extends keyof T ? "day" extends keyof T ? T["isValid"] extends boolean ? T["toISODate"] extends TypedFunction ? T["toFormat"] extends TypedFunction ? T["toMillis"] extends TypedFunction ? T["year"] extends number ? T["month"] extends number ? T["day"] extends number ? true : false : false : false : false : false : false : false : false : false : false : false : false : false : false;
8
+ //# sourceMappingURL=IsLuxonDateTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsLuxonDateTime.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/IsLuxonDateTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;EAIE;AACF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,SAAS,SAAS,MAAM,CAAC,GACtD,WAAW,SAAS,MAAM,CAAC,GAC3B,UAAU,SAAS,MAAM,CAAC,GAC1B,UAAU,SAAS,MAAM,CAAC,GAC1B,MAAM,SAAS,MAAM,CAAC,GACtB,OAAO,SAAS,MAAM,CAAC,GACvB,KAAK,SAAS,MAAM,CAAC,GACrB,CAAC,CAAC,SAAS,CAAC,SAAS,OAAO,GAC5B,CAAC,CAAC,WAAW,CAAC,SAAS,aAAa,GACpC,CAAC,CAAC,UAAU,CAAC,SAAS,aAAa,GACnC,CAAC,CAAC,UAAU,CAAC,SAAS,aAAa,GACnC,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GACxB,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,GACzB,CAAC,CAAC,KAAK,CAAC,SAAS,MAAM,GACvB,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TypedFunction } from "src/types/base-types";
2
+ /**
3
+ * **IsMoment`<T>`
4
+ *
5
+ * a boolean operator which returns `true` when `T` appears to be a Moment.js instance.
6
+ */
7
+ export type IsMoment<T> = "format" extends keyof T ? "year" extends keyof T ? "month" extends keyof T ? "date" extends keyof T ? "hour" extends keyof T ? "minute" extends keyof T ? "second" extends keyof T ? "millisecond" extends keyof T ? T["millisecond"] extends TypedFunction ? "add" extends keyof T ? T["add"] extends TypedFunction ? "toISOString" extends keyof T ? T["toISOString"] extends TypedFunction ? true : false : false : false : false : false : false : false : false : false : false : false : false : false;
8
+ //# sourceMappingURL=IsMoment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsMoment.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/IsMoment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;EAIE;AACF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,SAAU,MAAM,CAAC,GACjD,MAAM,SAAS,MAAM,CAAC,GACtB,OAAO,SAAS,MAAM,CAAC,GACvB,MAAM,SAAS,MAAM,CAAC,GACtB,MAAM,SAAS,MAAM,CAAC,GACtB,QAAQ,SAAS,MAAM,CAAC,GACxB,QAAQ,SAAS,MAAM,CAAC,GACxB,aAAa,SAAS,MAAM,CAAC,GAC7B,CAAC,CAAC,aAAa,CAAC,SAAS,aAAa,GACtC,KAAK,SAAS,MAAM,CAAC,GACrB,CAAC,CAAC,KAAK,CAAC,SAAS,aAAa,GAC9B,aAAa,SAAS,MAAM,CAAC,GAC7B,CAAC,CAAC,aAAa,CAAC,SAAS,aAAa,GACtC,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./IsLuxonDateTime";
2
+ export * from "./IsMoment";
3
+ export * from "./IsJsDate";
4
+ export * from "./IsIsoDate";
5
+ export * from "./IsIsoDateTime";
6
+ export * from "./IsIsoTime";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/types/boolean-logic/operators/datetime/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./IsLuxonDateTime";
2
+ export * from "./IsMoment";
3
+ export * from "./IsJsDate";
4
+ export * from "./IsIsoDate";
5
+ export * from "./IsIsoDateTime";
6
+ export * from "./IsIsoTime";
@@ -101,4 +101,5 @@ export * from "./HasArray";
101
101
  export * from "./UnionHasArray";
102
102
  export * from "./MaybeError";
103
103
  export * from "./IsNumberLike";
104
+ export * from "./datetime/index";
104
105
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/boolean-logic/operators/index.ts"],"names":[],"mappings":"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"}
@@ -101,3 +101,4 @@ export * from "./HasArray";
101
101
  export * from "./UnionHasArray";
102
102
  export * from "./MaybeError";
103
103
  export * from "./IsNumberLike";
104
+ export * from "./datetime/index";