@naturalcycles/js-lib 14.243.1 → 14.245.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.
Files changed (42) hide show
  1. package/dist/datetime/dateInterval.d.ts +1 -1
  2. package/dist/datetime/dateInterval.js +1 -1
  3. package/dist/datetime/localDate.d.ts +75 -51
  4. package/dist/datetime/localDate.js +256 -200
  5. package/dist/datetime/localTime.d.ts +88 -56
  6. package/dist/datetime/localTime.js +277 -176
  7. package/dist/datetime/timeInterval.d.ts +2 -2
  8. package/dist/datetime/timeInterval.js +2 -2
  9. package/dist/env/buildInfo.js +2 -2
  10. package/dist/error/error.util.d.ts +1 -1
  11. package/dist/index.d.ts +37 -37
  12. package/dist/index.js +37 -37
  13. package/dist/json-schema/from-data/generateJsonSchemaFromData.d.ts +1 -1
  14. package/dist/json-schema/jsonSchemaBuilder.d.ts +1 -1
  15. package/dist/object/object.util.d.ts +1 -1
  16. package/dist/time/time.util.js +4 -2
  17. package/dist/zod/zod.util.d.ts +1 -1
  18. package/dist-esm/datetime/dateInterval.js +1 -1
  19. package/dist-esm/datetime/localDate.js +256 -199
  20. package/dist-esm/datetime/localTime.js +277 -175
  21. package/dist-esm/datetime/timeInterval.js +2 -2
  22. package/dist-esm/decorators/logMethod.decorator.js +1 -1
  23. package/dist-esm/env/buildInfo.js +2 -2
  24. package/dist-esm/index.js +37 -37
  25. package/dist-esm/json-schema/jsonSchemaBuilder.js +1 -1
  26. package/dist-esm/time/time.util.js +4 -2
  27. package/package.json +1 -1
  28. package/src/datetime/dateInterval.ts +2 -2
  29. package/src/datetime/localDate.ts +259 -215
  30. package/src/datetime/localTime.ts +277 -209
  31. package/src/datetime/timeInterval.ts +4 -4
  32. package/src/decorators/logMethod.decorator.ts +1 -1
  33. package/src/define.ts +1 -1
  34. package/src/env/buildInfo.ts +2 -2
  35. package/src/error/error.util.ts +3 -3
  36. package/src/http/fetcher.ts +1 -1
  37. package/src/index.ts +37 -37
  38. package/src/json-schema/from-data/generateJsonSchemaFromData.ts +1 -1
  39. package/src/json-schema/jsonSchemaBuilder.ts +2 -2
  40. package/src/object/object.util.ts +1 -1
  41. package/src/time/time.util.ts +4 -1
  42. package/src/zod/zod.util.ts +1 -1
@@ -15,6 +15,7 @@ export type LocalTimeInput = LocalTime | Date | IsoDateTimeString | UnixTimestam
15
15
  export type LocalTimeInputNullable = LocalTimeInput | null | undefined;
16
16
  export type LocalTimeFormatter = (ld: LocalTime) => string;
17
17
  export type DateTimeObject = DateObject & TimeObject;
18
+ export type DateTimeObjectInput = DateObject & Partial<TimeObject>;
18
19
  export interface DateObject {
19
20
  year: number;
20
21
  month: number;
@@ -32,12 +33,12 @@ export declare class LocalTime {
32
33
  * Returns [cloned] LocalTime that is based on the same unixtimestamp, but in UTC timezone.
33
34
  * Opposite of `.local()` method.
34
35
  */
35
- utc(): LocalTime;
36
+ toUTC(): LocalTime;
36
37
  /**
37
38
  * Returns [cloned] LocalTime that is based on the same unixtimestamp, but in local timezone.
38
39
  * Opposite of `.utc()` method.
39
40
  */
40
- local(): LocalTime;
41
+ toLocal(): LocalTime;
41
42
  /**
42
43
  * Returns [cloned] fake LocalTime that has yyyy-mm-dd hh:mm:ss in the provided timezone.
43
44
  * It is a fake LocalTime in a sense that it's timezone is not real.
@@ -85,25 +86,25 @@ export declare class LocalTime {
85
86
  getUTCOffsetString(tz: string): string;
86
87
  get(unit: LocalTimeUnit): number;
87
88
  set(unit: LocalTimeUnit, v: number, mutate?: boolean): LocalTime;
88
- year(): number;
89
- year(v: number): LocalTime;
90
- month(): number;
91
- month(v: number): LocalTime;
92
- week(): number;
93
- week(v: number): LocalTime;
94
- day(): number;
95
- day(v: number): LocalTime;
89
+ get year(): number;
90
+ setYear(v: number): LocalTime;
91
+ get month(): number;
92
+ setMonth(v: number): LocalTime;
93
+ get week(): number;
94
+ setWeek(v: number): LocalTime;
95
+ get day(): number;
96
+ setDay(v: number): LocalTime;
97
+ get hour(): number;
98
+ setHour(v: number): LocalTime;
99
+ get minute(): number;
100
+ setMinute(v: number): LocalTime;
101
+ get second(): number;
102
+ setSecond(v: number): LocalTime;
96
103
  /**
97
104
  * Based on ISO: 1-7 is Mon-Sun.
98
105
  */
99
- dayOfWeek(): ISODayOfWeek;
100
- dayOfWeek(v: ISODayOfWeek): LocalTime;
101
- hour(): number;
102
- hour(v: number): LocalTime;
103
- minute(): number;
104
- minute(v: number): LocalTime;
105
- second(): number;
106
- second(v: number): LocalTime;
106
+ get dayOfWeek(): ISODayOfWeek;
107
+ setDayOfWeek(v: ISODayOfWeek): LocalTime;
107
108
  setComponents(c: Partial<DateTimeObject>, mutate?: boolean): LocalTime;
108
109
  plusSeconds(num: number): LocalTime;
109
110
  plusMinutes(num: number): LocalTime;
@@ -129,7 +130,7 @@ export declare class LocalTime {
129
130
  * Returns how many days are in the current month.
130
131
  * E.g 31 for January.
131
132
  */
132
- daysInMonth(): number;
133
+ get daysInMonth(): number;
133
134
  isSame(d: LocalTimeInput): boolean;
134
135
  isBefore(d: LocalTimeInput, inclusive?: boolean): boolean;
135
136
  isSameOrBefore(d: LocalTimeInput): boolean;
@@ -176,15 +177,15 @@ export declare class LocalTime {
176
177
  * returns 0 if they are equal
177
178
  * returns -1 if this < d
178
179
  */
179
- cmp(d: LocalTimeInput): -1 | 0 | 1;
180
- getDateTimeObject(): DateTimeObject;
181
- getDateObject(): DateObject;
182
- getTimeObject(): TimeObject;
183
- fromNow(now?: LocalTimeInput): string;
184
- getDate(): Date;
180
+ compare(d: LocalTimeInput): -1 | 0 | 1;
181
+ toDateTimeObject(): DateTimeObject;
182
+ toDateObject(): DateObject;
183
+ toTimeObject(): TimeObject;
184
+ toFromNowString(now?: LocalTimeInput): string;
185
+ toDate(): Date;
185
186
  clone(): LocalTime;
186
- unix(): UnixTimestampNumber;
187
- unixMillis(): UnixTimestampMillisNumber;
187
+ get unix(): UnixTimestampNumber;
188
+ get unixMillis(): UnixTimestampMillisNumber;
188
189
  valueOf(): UnixTimestampNumber;
189
190
  toLocalDate(): LocalDate;
190
191
  /**
@@ -216,20 +217,71 @@ export declare class LocalTime {
216
217
  }
217
218
  declare class LocalTimeFactory {
218
219
  /**
219
- * Parses input String into LocalDate.
220
- * Input can already be a LocalDate - it is returned as-is in that case.
220
+ * Creates a LocalTime from the input, unless it's falsy - then returns undefined.
221
+ *
222
+ * `localTime` function will instead return LocalTime of `now` for falsy input.
221
223
  */
222
- of(d: LocalTimeInput): LocalTime;
224
+ orUndefined(input: LocalTimeInputNullable): LocalTime | undefined;
223
225
  /**
224
- * Create LocalTime from unixTimestamp in milliseconds (not in seconds).
226
+ * Creates a LocalTime from the input, unless it's falsy - then returns LocalTime.now
227
+ */
228
+ orNow(input: LocalTimeInputNullable): LocalTime;
229
+ now(): LocalTime;
230
+ /**
231
+ Convenience function to return current Unix timestamp in seconds.
232
+ Like Date.now(), but in seconds.
233
+ */
234
+ nowUnix(): UnixTimestampNumber;
235
+ /**
236
+ * Create LocalTime from LocalTimeInput.
237
+ * Input can already be a LocalTime - it is returned as-is in that case.
238
+ * Date - will be used as-is.
239
+ * String - will be parsed as strict `yyyy-mm-ddThh:mm:ss`.
240
+ * Number - will be treated as unix timestamp in seconds.
241
+ */
242
+ fromInput(input: LocalTimeInput): LocalTime;
243
+ /**
244
+ * Returns true if input is valid to create LocalTime.
245
+ */
246
+ isValid(input: LocalTimeInputNullable): boolean;
247
+ /**
248
+ * Returns true if isoString is a valid iso8601 string like `yyyy-mm-ddThh:mm:dd`.
249
+ */
250
+ isValidString(isoString: string | undefined | null): boolean;
251
+ /**
252
+ * Tries to convert/parse the input into LocalTime.
253
+ * Uses LOOSE parsing.
254
+ * If invalid - doesn't throw, but returns undefined instead.
225
255
  */
226
- ofMillis(millis: UnixTimestampMillisNumber): LocalTime;
256
+ try(input: LocalTimeInputNullable): LocalTime | undefined;
227
257
  /**
228
- * Returns null if invalid
258
+ * Performs STRICT parsing.
259
+ * Only allows IsoDateTimeString or IsoDateString input, nothing else.
229
260
  */
230
- parseOrNull(d: LocalTimeInputNullable): LocalTime | null;
231
- private parseStringToDateOrNull;
232
- isValid(d: LocalTimeInputNullable): boolean;
261
+ fromIsoDateTimeString(s: IsoDateTimeString | IsoDateString): LocalTime;
262
+ /**
263
+ * Performs LOOSE parsing.
264
+ * Tries to coerce imprefect/incorrect string input into IsoDateTimeString.
265
+ * Use with caution.
266
+ * Allows to input IsoDateString, will set h:m:s to zeros.
267
+ */
268
+ parse(s: string): LocalTime;
269
+ private parseStrictlyOrUndefined;
270
+ private parseLooselyOrUndefined;
271
+ /**
272
+ * Throws on invalid value.
273
+ */
274
+ private validateDateTimeObject;
275
+ isDateTimeObjectValid(o: DateTimeObject): boolean;
276
+ isTimeObjectValid({ hour, minute, second }: TimeObject): boolean;
277
+ fromDate(date: Date): LocalTime;
278
+ fromUnix(ts: UnixTimestampNumber): LocalTime;
279
+ /**
280
+ * Create LocalTime from unixTimestamp in milliseconds (not in seconds).
281
+ */
282
+ fromMillis(millis: UnixTimestampMillisNumber): LocalTime;
283
+ fromDateTimeObject(o: DateTimeObjectInput): LocalTime;
284
+ private createDateFromDateTimeObject;
233
285
  /**
234
286
  * Returns the IANA timezone e.g `Europe/Stockholm`.
235
287
  * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
@@ -243,21 +295,6 @@ declare class LocalTimeFactory {
243
295
  * consider caching the Intl.supportedValuesOf values as Set and reuse that.
244
296
  */
245
297
  isTimezoneValid(tz: string): boolean;
246
- now(): LocalTime;
247
- /**
248
- * Creates a LocalTime from the input, unless it's falsy - then returns undefined.
249
- *
250
- * `localTime` function will instead return LocalTime of `now` for falsy input.
251
- */
252
- orUndefined(d: LocalTimeInputNullable): LocalTime | undefined;
253
- /**
254
- * Creates a LocalTime from the input, unless it's falsy - then returns LocalTime.now
255
- */
256
- orNow(d: LocalTimeInputNullable): LocalTime;
257
- fromComponents(c: {
258
- year: number;
259
- month: number;
260
- } & Partial<DateTimeObject>): LocalTime;
261
298
  sort(items: LocalTime[], dir?: SortDirection, mutate?: boolean): LocalTime[];
262
299
  minOrUndefined(items: LocalTimeInputNullable[]): LocalTime | undefined;
263
300
  min(items: LocalTimeInputNullable[]): LocalTime;
@@ -268,9 +305,4 @@ interface LocalTimeFn extends LocalTimeFactory {
268
305
  (d: LocalTimeInput): LocalTime;
269
306
  }
270
307
  export declare const localTime: LocalTimeFn;
271
- /**
272
- Convenience function to return current Unix timestamp in seconds.
273
- Like Date.now(), but in seconds.
274
- */
275
- export declare function nowUnix(): UnixTimestampNumber;
276
308
  export {};