@ix-xs/node-comfort 2.0.0 → 2.1.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 (77) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +32 -30
  3. package/index.js +3 -3
  4. package/package.json +8 -7
  5. package/src/Arr.js +222 -58
  6. package/src/Async.js +322 -90
  7. package/src/Cache.js +148 -44
  8. package/src/Checker.js +257 -26
  9. package/src/Cli.js +404 -145
  10. package/src/Color.js +224 -83
  11. package/src/Crypto.js +481 -106
  12. package/src/Emitter.js +104 -37
  13. package/src/Env.js +176 -42
  14. package/src/FS.js +203 -60
  15. package/src/Func.js +226 -76
  16. package/src/Http.js +311 -149
  17. package/src/Id.js +281 -96
  18. package/src/Logger.js +302 -78
  19. package/src/Num.js +182 -60
  20. package/src/Obj.js +340 -125
  21. package/src/SQLite.js +426 -105
  22. package/src/Schema.js +602 -87
  23. package/src/Str.js +316 -86
  24. package/src/Sys.js +197 -54
  25. package/src/Time.js +572 -317
  26. package/src/Utils.js +62 -41
  27. package/src/errors.js +54 -11
  28. package/src/internal/shared.js +415 -0
  29. package/types/index.d.ts +59 -17
  30. package/types/src/Arr.d.ts +78 -0
  31. package/types/src/Arr.d.ts.map +1 -1
  32. package/types/src/Async.d.ts +52 -1
  33. package/types/src/Async.d.ts.map +1 -1
  34. package/types/src/Cache.d.ts +33 -7
  35. package/types/src/Cache.d.ts.map +1 -1
  36. package/types/src/Checker.d.ts +155 -2
  37. package/types/src/Checker.d.ts.map +1 -1
  38. package/types/src/Cli.d.ts +97 -15
  39. package/types/src/Cli.d.ts.map +1 -1
  40. package/types/src/Color.d.ts +7 -1
  41. package/types/src/Color.d.ts.map +1 -1
  42. package/types/src/Crypto.d.ts +99 -13
  43. package/types/src/Crypto.d.ts.map +1 -1
  44. package/types/src/Emitter.d.ts +36 -17
  45. package/types/src/Emitter.d.ts.map +1 -1
  46. package/types/src/Env.d.ts +31 -1
  47. package/types/src/Env.d.ts.map +1 -1
  48. package/types/src/FS.d.ts +36 -5
  49. package/types/src/FS.d.ts.map +1 -1
  50. package/types/src/Func.d.ts +147 -19
  51. package/types/src/Func.d.ts.map +1 -1
  52. package/types/src/Http.d.ts +113 -43
  53. package/types/src/Http.d.ts.map +1 -1
  54. package/types/src/Id.d.ts +60 -8
  55. package/types/src/Id.d.ts.map +1 -1
  56. package/types/src/Logger.d.ts +53 -2
  57. package/types/src/Logger.d.ts.map +1 -1
  58. package/types/src/Num.d.ts +48 -7
  59. package/types/src/Num.d.ts.map +1 -1
  60. package/types/src/Obj.d.ts +67 -4
  61. package/types/src/Obj.d.ts.map +1 -1
  62. package/types/src/SQLite.d.ts +123 -14
  63. package/types/src/SQLite.d.ts.map +1 -1
  64. package/types/src/Schema.d.ts +256 -7
  65. package/types/src/Schema.d.ts.map +1 -1
  66. package/types/src/Str.d.ts +49 -1
  67. package/types/src/Str.d.ts.map +1 -1
  68. package/types/src/Sys.d.ts +51 -6
  69. package/types/src/Sys.d.ts.map +1 -1
  70. package/types/src/Time.d.ts +130 -34
  71. package/types/src/Time.d.ts.map +1 -1
  72. package/types/src/Utils.d.ts +15 -11
  73. package/types/src/Utils.d.ts.map +1 -1
  74. package/types/src/errors.d.ts +27 -3
  75. package/types/src/errors.d.ts.map +1 -1
  76. package/types/src/internal/shared.d.ts +123 -0
  77. package/types/src/internal/shared.d.ts.map +1 -0
@@ -49,6 +49,23 @@ export type Page<T> = {
49
49
  hasPrev: boolean;
50
50
  hasNext: boolean;
51
51
  };
52
+ /**
53
+ * Options for `toSentence()`.
54
+ */
55
+ export type ToSentenceOptions = {
56
+ /**
57
+ * Language of the joining word. Defaults to `"en"`.
58
+ */
59
+ locale?: string | undefined;
60
+ /**
61
+ * `"conjunction"` joins with "and", `"disjunction"` with "or", `"unit"` with commas only. Defaults to `"conjunction"`.
62
+ */
63
+ type?: "conjunction" | "disjunction" | "unit" | undefined;
64
+ /**
65
+ * Defaults to `"long"`.
66
+ */
67
+ style?: "long" | "short" | "narrow" | undefined;
68
+ };
52
69
  /**
53
70
  * Splits an array into groups of `size` items. The last group can be shorter.
54
71
  *
@@ -559,4 +576,65 @@ export function maxBy<T>(array: readonly T[], iteratee?: Iteratee<T>): T | undef
559
576
  * @returns {T | undefined}
560
577
  */
561
578
  export function minBy<T>(array: readonly T[], iteratee?: Iteratee<T>): T | undefined;
579
+ /**
580
+ * The items that appear more than once, each listed once.
581
+ *
582
+ * @example
583
+ * arr.duplicates([1, 2, 2, 3, 3, 3]); // [2, 3]
584
+ * arr.duplicates(users, "email"); // users whose email is taken by an earlier one
585
+ *
586
+ * @template T
587
+ * @param {readonly T[]} array
588
+ * @param {Iteratee<T>} [iteratee] What makes two items "the same". Defaults to the item itself.
589
+ * @returns {T[]} For each repeated value, its second occurrence.
590
+ */
591
+ export function duplicates<T>(array: readonly T[], iteratee?: Iteratee<T>): T[];
592
+ /**
593
+ * Items found in exactly one of the arrays, without duplicates.
594
+ *
595
+ * @example
596
+ * arr.xor([1, 2, 3], [2, 3, 4]); // [1, 4]
597
+ *
598
+ * @template T
599
+ * @param {...ReadonlyArray<T>} arrays
600
+ * @returns {T[]}
601
+ */
602
+ export function xor<T>(...arrays: ReadonlyArray<T>[]): T[];
603
+ /**
604
+ * The items from the start, up to the first one that fails the test.
605
+ *
606
+ * @example
607
+ * arr.takeWhile([1, 2, 5, 1], (n) => n < 3); // [1, 2]
608
+ *
609
+ * @template T
610
+ * @param {readonly T[]} array
611
+ * @param {(item: T, index: number) => unknown} predicate
612
+ * @returns {T[]}
613
+ */
614
+ export function takeWhile<T>(array: readonly T[], predicate: (item: T, index: number) => unknown): T[];
615
+ /**
616
+ * Skips items from the start while they pass the test, and returns the rest.
617
+ *
618
+ * @example
619
+ * arr.dropWhile([1, 2, 5, 1], (n) => n < 3); // [5, 1]
620
+ *
621
+ * @template T
622
+ * @param {readonly T[]} array
623
+ * @param {(item: T, index: number) => unknown} predicate
624
+ * @returns {T[]}
625
+ */
626
+ export function dropWhile<T>(array: readonly T[], predicate: (item: T, index: number) => unknown): T[];
627
+ /**
628
+ * Joins items the way a sentence would, in any language.
629
+ *
630
+ * @example
631
+ * arr.toSentence(["Ada", "Bob", "Cy"]); // "Ada, Bob, and Cy"
632
+ * arr.toSentence(["Ada", "Bob"], { locale: "fr" }); // "Ada et Bob"
633
+ * arr.toSentence(["red", "blue"], { type: "disjunction" }); // "red or blue"
634
+ *
635
+ * @param {Iterable<unknown>} items
636
+ * @param {ToSentenceOptions} [options]
637
+ * @returns {string}
638
+ */
639
+ export function toSentence(items: Iterable<unknown>, options?: ToSentenceOptions): string;
562
640
  //# sourceMappingURL=Arr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../src/Arr.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../src/Arr.js"],"names":[],"mappings":"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"}
@@ -15,6 +15,13 @@ export type MapOptions = {
15
15
  */
16
16
  signal?: AbortSignal | undefined;
17
17
  };
18
+ /**
19
+ * A rate limiter from `rateLimit()`. Call it with a function to run it as
20
+ * soon as the rate allows.
21
+ */
22
+ export type RateLimiter = (<T>(fn: () => T | PromiseLike<T>) => Promise<Awaited<T>>) & {
23
+ readonly pendingCount: number;
24
+ };
18
25
  /**
19
26
  * A limiter from `limit()`. Call it with a function to run it when there's room.
20
27
  */
@@ -172,10 +179,12 @@ export function sleep(duration: number | string, options?: {
172
179
  }): Promise<void>;
173
180
  /**
174
181
  * Maps items through an async function, with at most `concurrency` calls
175
- * at once. Results stay in order.
182
+ * at once. Results stay in order. Items are taken from the source as slots
183
+ * free up, so a stream is never read faster than it's processed.
176
184
  *
177
185
  * @example
178
186
  * const users = await async.map(ids, (id) => api.getUser(id), { concurrency: 10 });
187
+ * await async.forEach(readline.createInterface({ input }), importLine, { concurrency: 20 });
179
188
  *
180
189
  * @template T
181
190
  * @template R
@@ -224,6 +233,20 @@ export function filter<T>(items: Iterable<T> | AsyncIterable<T>, predicate: (ite
224
233
  * @returns {Promise<Array<Awaited<T>>>}
225
234
  */
226
235
  export function series<T>(tasks: Iterable<() => T | PromiseLike<T>>): Promise<Array<Awaited<T>>>;
236
+ /**
237
+ * Runs async functions at the same time, or a few at once with
238
+ * `concurrency`, and returns their results in order.
239
+ *
240
+ * @example
241
+ * const [users, posts] = await async.parallel([() => loadUsers(), () => loadPosts()]);
242
+ * await async.parallel(jobs, { concurrency: 4 });
243
+ *
244
+ * @template T
245
+ * @param {Iterable<() => T | PromiseLike<T>>} tasks
246
+ * @param {MapOptions} [options]
247
+ * @returns {Promise<Array<Awaited<T>>>}
248
+ */
249
+ export function parallel<T>(tasks: Iterable<() => T | PromiseLike<T>>, options?: MapOptions): Promise<Array<Awaited<T>>>;
227
250
  /**
228
251
  * A limiter: wrap calls with it, and at most `concurrency` run at once
229
252
  * while the rest wait their turn. Like `p-limit`.
@@ -236,6 +259,19 @@ export function series<T>(tasks: Iterable<() => T | PromiseLike<T>>): Promise<Ar
236
259
  * @returns {Limiter}
237
260
  */
238
261
  export function limit(concurrency: number): Limiter;
262
+ /**
263
+ * A rate limiter: at most `max` calls start within any `interval`. Made
264
+ * for APIs that allow, say, 10 requests per second.
265
+ *
266
+ * @example
267
+ * const throttled = async.rateLimit(10, "1s");
268
+ * const pages = await Promise.all(ids.map((id) => throttled(() => api.get(`items/${id}`))));
269
+ *
270
+ * @param {number} max How many calls may start per interval.
271
+ * @param {number | string} interval The window, in ms or like `"1s"`.
272
+ * @returns {RateLimiter}
273
+ */
274
+ export function rateLimit(max: number, interval: number | string): RateLimiter;
239
275
  /**
240
276
  * A task queue with a concurrency limit, priorities, pause and per-task
241
277
  * timeouts.
@@ -315,6 +351,21 @@ export function props<T extends Record<string, unknown>>(object: T): Promise<{ [
315
351
  * @throws {AbortError}
316
352
  */
317
353
  export function poll<T>(fn: () => T | PromiseLike<T>, options?: PollOptions): Promise<NonNullable<Awaited<T>>>;
354
+ /**
355
+ * Makes any promise give up when a signal fires. The work behind it keeps
356
+ * running unless it listens to the signal too.
357
+ *
358
+ * @example
359
+ * const controller = new AbortController();
360
+ * const rows = await async.abortable(slowQuery(), controller.signal);
361
+ *
362
+ * @template T
363
+ * @param {T | PromiseLike<T>} promise
364
+ * @param {AbortSignal} [signal]
365
+ * @returns {Promise<Awaited<T>>}
366
+ * @throws {AbortError} When the signal fires first.
367
+ */
368
+ export function abortable<T>(promise: T | PromiseLike<T>, signal?: AbortSignal): Promise<Awaited<T>>;
318
369
  import { retry } from "./Func.js";
319
370
  import { timeout } from "./Func.js";
320
371
  export { retry, timeout };
@@ -1 +1 @@
1
- {"version":3,"file":"Async.d.ts","sourceRoot":"","sources":["../../src/Async.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Async.d.ts","sourceRoot":"","sources":["../../src/Async.js"],"names":[],"mappings":"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"}
@@ -29,7 +29,8 @@ declare class Cache<K, V> {
29
29
  peek(key: K): V | undefined;
30
30
  /**
31
31
  * Stores a value. When the cache is full, the least recently used entry
32
- * goes.
32
+ * goes. A value being loaded for this key by `getOrSet()` is not stored
33
+ * when it arrives: the one you set stays.
33
34
  *
34
35
  * @example
35
36
  * cache.set("token", token, { ttl: "15m" });
@@ -45,8 +46,13 @@ declare class Cache<K, V> {
45
46
  * returns it. Simultaneous calls for the same key share one `loader` call,
46
47
  * and a failed load caches nothing.
47
48
  *
49
+ * With `staleWhileRevalidate`, an entry that just expired is returned at
50
+ * once while a new value loads in the background, so callers never wait
51
+ * on a refresh.
52
+ *
48
53
  * @example
49
54
  * const profile = await cache.getOrSet(`profile:${id}`, () => api.fetchProfile(id), { ttl: "10m" });
55
+ * const rates = await cache.getOrSet("rates", fetchRates, { ttl: "1m", staleWhileRevalidate: "10m" });
50
56
  *
51
57
  * @param {K} key
52
58
  * @param {() => V | PromiseLike<V>} loader
@@ -62,7 +68,8 @@ declare class Cache<K, V> {
62
68
  */
63
69
  has(key: K): boolean;
64
70
  /**
65
- * Removes an entry.
71
+ * Removes an entry. A value being loaded for this key by `getOrSet()` is
72
+ * not stored when it arrives.
66
73
  *
67
74
  * @param {K} key
68
75
  * @returns {boolean} `true` if there was one.
@@ -96,17 +103,22 @@ declare class Cache<K, V> {
96
103
  *
97
104
  * @template {any[]} A
98
105
  * @param {(...args: A) => V | PromiseLike<V>} fn
99
- * @param {{ key?: (...args: A) => K, ttl?: number | string }} [options] `key` builds the cache key from the arguments; by default they're turned into JSON.
106
+ * @param {{ key?: (...args: A) => K } & CacheSetOptions} [options] `key` builds the cache key from the arguments. By default, primitives are compared by value and plain objects by content.
100
107
  * @returns {(...args: A) => Promise<V>}
101
108
  */
102
109
  wrap<A extends any[]>(fn: (...args: A) => V | PromiseLike<V>, options?: {
103
110
  key?: (...args: A) => K;
104
- ttl?: number | string;
105
- }): (...args: A) => Promise<V>;
111
+ } & CacheSetOptions): (...args: A) => Promise<V>;
106
112
  /** Number of entries, including expired ones not yet removed. */
107
113
  get size(): number;
108
114
  /** Hit and miss counts. */
109
115
  get stats(): CacheStats;
116
+ /**
117
+ * Puts every counter of `stats` back to zero.
118
+ *
119
+ * @returns {this}
120
+ */
121
+ resetStats(): this;
110
122
  /**
111
123
  * Fresh keys, least recently used first.
112
124
  * @returns {K[]}
@@ -130,7 +142,7 @@ declare class Cache<K, V> {
130
142
  #private;
131
143
  }
132
144
  declare namespace Cache {
133
- export { CacheRemovalReason, CacheOptions, CacheSetOptions, CacheStats };
145
+ export { CacheRemovalReason, CacheOptions, CacheSetOptions, CacheStats, CacheEntry };
134
146
  }
135
147
  /**
136
148
  * Why an entry left the cache.
@@ -148,6 +160,10 @@ type CacheOptions<K, V> = {
148
160
  * How long entries live, in ms or like `"10m"`. `0` means forever, the default.
149
161
  */
150
162
  ttl?: string | number | undefined;
163
+ /**
164
+ * After an entry expires, `getOrSet()` may still return it for this long while it loads a new value in the background.
165
+ */
166
+ staleWhileRevalidate?: string | number | undefined;
151
167
  /**
152
168
  * Reading an entry restarts its time to live.
153
169
  */
@@ -165,13 +181,17 @@ type CacheSetOptions = {
165
181
  * Time to live of this entry. `0` means forever.
166
182
  */
167
183
  ttl?: string | number | undefined;
184
+ /**
185
+ * How long this entry can be served by `getOrSet()` after it expires, while a new value loads.
186
+ */
187
+ staleWhileRevalidate?: string | number | undefined;
168
188
  };
169
189
  /**
170
190
  * Cache stats.
171
191
  */
172
192
  type CacheStats = {
173
193
  /**
174
- * Reads that found a fresh entry.
194
+ * Reads that found a usable entry.
175
195
  */
176
196
  hits: number;
177
197
  /**
@@ -192,4 +212,10 @@ type CacheStats = {
192
212
  */
193
213
  hitRate: number;
194
214
  };
215
+ type CacheEntry<V> = {
216
+ value: V;
217
+ expires: number;
218
+ ttl: number;
219
+ stale: number;
220
+ };
195
221
  //# sourceMappingURL=Cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../src/Cache.js"],"names":[],"mappings":";AA4DA;;;;;GAKG;AACH,oBAHa,CAAC,EACD,CAAC;IAcZ;;;;;OAKG;IACH,sBAFW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAO5B;IA4BD;;;;;OAKG;IACH,SAHW,CAAC,GACC,CAAC,GAAG,SAAS,CAazB;IAED;;;;;OAKG;IACH,UAHW,CAAC,GACC,CAAC,GAAG,SAAS,CAIzB;IAED;;;;;;;;;;;OAWG;IACH,SALW,CAAC,SACD,CAAC,YACD,eAAe,GACb,IAAI,CAahB;IAED;;;;;;;;;;;;OAYG;IACH,cALW,CAAC,UACD,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YACxB,eAAe,GACb,OAAO,CAAC,CAAC,CAAC,CAiBtB;IAED;;;;;OAKG;IACH,SAHW,CAAC,GACC,OAAO,CAInB;IAED;;;;;OAKG;IACH,YAHW,CAAC,GACC,OAAO,CAOnB;IAED;;;;OAIG;IACH,SAFa,IAAI,CAIhB;IAED;;;;OAIG;IACH,SAFa,MAAM,CAYlB;IAED;;;;;OAKG;IACH,SAHW,CAAC,GACC,MAAM,GAAG,SAAS,CAM9B;IAED;;;;;;;;;;;OAWG;IACH,KALqB,CAAC,SAAR,GAAG,EAAG,MACT,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YAClC;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAChD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAOtC;IAED,iEAAiE;IACjE,mBAEC;IAED,2BAA2B;IAC3B,aAEoB,UAAU,CAC7B;IAED;;;OAGG;IACH,QAFa,CAAC,EAAE,CAKf;IAED;;;OAGG;IACH,UAFa,CAAC,EAAE,CAKf;IAED;;;OAGG;IACH,WAFa,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAKzB;IAED;;;OAGG;IACH,qBAFa,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIpC;;CACF;;;;;;;0BArTY,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO;;;;kBAK/C,CAAC,EACD,CAAC;;;;;;;;;;;;;;;;sBAKM,CAAC,SAAS,CAAC,UAAU,kBAAkB,KAAK,IAAI;;;;;;;;;;;;;;;;;;UAYtD,MAAM;;;;YACN,MAAM;UACN,MAAM;;;;eACN,MAAM;;;;iBACN,MAAM;;;;aACN,MAAM"}
1
+ {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../src/Cache.js"],"names":[],"mappings":";AA8DA;;;;;GAKG;AACH,oBAHa,CAAC,EACD,CAAC;IAsBZ;;;;;OAKG;IACH,sBAFW,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAQ5B;IA8CD;;;;;OAKG;IACH,SAHW,CAAC,GACC,CAAC,GAAG,SAAS,CAgBzB;IAED;;;;;OAKG;IACH,UAHW,CAAC,GACC,CAAC,GAAG,SAAS,CAIzB;IAED;;;;;;;;;;;;OAYG;IACH,SALW,CAAC,SACD,CAAC,YACD,eAAe,GACb,IAAI,CAwBhB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,cALW,CAAC,UACD,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YACxB,eAAe,GACb,OAAO,CAAC,CAAC,CAAC,CAmBtB;IA8BD;;;;;OAKG;IACH,SAHW,CAAC,GACC,OAAO,CAInB;IAED;;;;;;OAMG;IACH,YAHW,CAAC,GACC,OAAO,CAQnB;IAED;;;;OAIG;IACH,SAFa,IAAI,CAKhB;IAED;;;;OAIG;IACH,SAFa,MAAM,CAYlB;IAED;;;;;OAKG;IACH,SAHW,CAAC,GACC,MAAM,GAAG,SAAS,CAM9B;IAED;;;;;;;;;;;OAWG;IACH,KALqB,CAAC,SAAR,GAAG,EAAG,MACT,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,YAClC;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;KAAE,GAAG,eAAe,GAC3C,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAQtC;IAED,iEAAiE;IACjE,mBAEC;IAED,2BAA2B;IAC3B,aAEoB,UAAU,CAC7B;IAED;;;;OAIG;IACH,cAFa,IAAI,CAKhB;IAgBD;;;OAGG;IACH,QAFa,CAAC,EAAE,CAIf;IAED;;;OAGG;IACH,UAFa,CAAC,EAAE,CAIf;IAED;;;OAGG;IACH,WAFa,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIzB;IAED;;;OAGG;IACH,qBAFa,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAIpC;;CACF;;;;;;;0BA7ZY,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO;;;;kBAK/C,CAAC,EACD,CAAC;;;;;;;;;;;;;;;;;;;;sBAMM,CAAC,SAAS,CAAC,UAAU,kBAAkB,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;UAatD,MAAM;;;;YACN,MAAM;UACN,MAAM;;;;eACN,MAAM;;;;iBACN,MAAM;;;;aACN,MAAM;;gBAIP,CAAC,IACD;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE"}
@@ -26,7 +26,16 @@ export type IsUUIDOptions = {
26
26
  /**
27
27
  * Only accept this version. Otherwise versions 1 to 8 pass, plus the nil and max UUIDs.
28
28
  */
29
- version?: 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | undefined;
29
+ version?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | undefined;
30
+ };
31
+ /**
32
+ * Options for `isHostname()`.
33
+ */
34
+ export type IsHostnameOptions = {
35
+ /**
36
+ * Require a domain like `example.com`, rejecting `localhost`.
37
+ */
38
+ requireTld?: boolean | undefined;
30
39
  };
31
40
  /**
32
41
  * Options for `isBase64()`.
@@ -56,6 +65,11 @@ export type IsBase64Options = {
56
65
  * @typedef {object} IsUUIDOptions
57
66
  * @property {1|2|3|4|5|6|7|8} [version] Only accept this version. Otherwise versions 1 to 8 pass, plus the nil and max UUIDs.
58
67
  */
68
+ /**
69
+ * Options for `isHostname()`.
70
+ * @typedef {object} IsHostnameOptions
71
+ * @property {boolean} [requireTld] Require a domain like `example.com`, rejecting `localhost`.
72
+ */
59
73
  /**
60
74
  * Options for `isBase64()`.
61
75
  * @typedef {object} IsBase64Options
@@ -396,7 +410,8 @@ export function isTypedArray(value: unknown): value is AnyTypedArray;
396
410
  export function isError(value: unknown): value is Error;
397
411
  /**
398
412
  * Is it empty? `null`, `undefined`, `""`, `[]`, `{}` and empty maps and sets
399
- * are. Numbers, booleans and functions never are.
413
+ * are. Numbers, booleans, functions, dates, regular expressions and errors
414
+ * never are.
400
415
  *
401
416
  * @example
402
417
  * nc.isEmpty({}); // true
@@ -640,6 +655,144 @@ export function isCreditCard(value: unknown): value is string;
640
655
  * @returns {value is string}
641
656
  */
642
657
  export function isJWT(value: unknown): value is string;
658
+ /**
659
+ * Is it a host name, like `example.com`, `api.internal` or `localhost`?
660
+ * International names are accepted. IP addresses aren't: see `isIP`.
661
+ *
662
+ * @example
663
+ * nc.isHostname("api.example.com"); // true
664
+ * nc.isHostname("localhost"); // true
665
+ * nc.isHostname("localhost", { requireTld: true }); // false
666
+ * nc.isHostname("-bad-.com"); // false
667
+ *
668
+ * @param {unknown} value
669
+ * @param {IsHostnameOptions} [options]
670
+ * @returns {value is string}
671
+ */
672
+ export function isHostname(value: unknown, options?: IsHostnameOptions): value is string;
673
+ /**
674
+ * Is it a MAC address? Accepts `aa:bb:cc:dd:ee:ff`, `aa-bb-cc-dd-ee-ff` and
675
+ * `aabb.ccdd.eeff`.
676
+ *
677
+ * @example
678
+ * nc.isMACAddress("00:1B:44:11:3A:B7"); // true
679
+ * nc.isMACAddress("00:1B:44:11:3A"); // false
680
+ *
681
+ * @param {unknown} value
682
+ * @returns {value is string}
683
+ */
684
+ export function isMACAddress(value: unknown): value is string;
685
+ /**
686
+ * Is it a valid IBAN? Checks the format and the checksum, spaces allowed.
687
+ *
688
+ * @example
689
+ * nc.isIBAN("FR76 3000 6000 0112 3456 7890 189"); // true
690
+ * nc.isIBAN("FR76 3000 6000 0112 3456 7890 180"); // false, wrong checksum
691
+ *
692
+ * @param {unknown} value
693
+ * @returns {value is string}
694
+ */
695
+ export function isIBAN(value: unknown): value is string;
696
+ /**
697
+ * Is it a phone number in the international E.164 format: a `+`, then 7 to
698
+ * 15 digits, no spaces? That's what SMS and telephony APIs expect.
699
+ *
700
+ * @example
701
+ * nc.isE164("+33612345678"); // true
702
+ * nc.isE164("06 12 34 56 78"); // false
703
+ *
704
+ * @param {unknown} value
705
+ * @returns {value is string}
706
+ */
707
+ export function isE164(value: unknown): value is string;
708
+ /**
709
+ * Is it a MongoDB ObjectId, 24 hexadecimal characters?
710
+ *
711
+ * @example
712
+ * nc.isObjectId("507f1f77bcf86cd799439011"); // true
713
+ *
714
+ * @param {unknown} value
715
+ * @returns {value is string}
716
+ */
717
+ export function isObjectId(value: unknown): value is string;
718
+ /**
719
+ * Is it a ULID, like the ones `nc.id.ulid()` makes?
720
+ *
721
+ * @example
722
+ * nc.isULID(nc.id.ulid()); // true
723
+ *
724
+ * @param {unknown} value
725
+ * @returns {value is string}
726
+ */
727
+ export function isULID(value: unknown): value is string;
728
+ /**
729
+ * Is it a `data:` URL, like an inline image?
730
+ *
731
+ * @example
732
+ * nc.isDataURL("data:image/png;base64,iVBORw0KGgo="); // true
733
+ * nc.isDataURL("data:,Hello"); // true
734
+ *
735
+ * @param {unknown} value
736
+ * @returns {value is string}
737
+ */
738
+ export function isDataURL(value: unknown): value is string;
739
+ /**
740
+ * Is it a media type, like `application/json` or
741
+ * `text/html; charset=utf-8`?
742
+ *
743
+ * @example
744
+ * nc.isMimeType("image/svg+xml"); // true
745
+ * nc.isMimeType("json"); // false
746
+ *
747
+ * @param {unknown} value
748
+ * @returns {value is string}
749
+ */
750
+ export function isMimeType(value: unknown): value is string;
751
+ /**
752
+ * Is it a time zone Node.js knows, like `"Europe/Paris"` or `"UTC"`?
753
+ *
754
+ * @example
755
+ * nc.isTimeZone("America/New_York"); // true
756
+ * nc.isTimeZone("Mars/Olympus"); // false
757
+ *
758
+ * @param {unknown} value
759
+ * @returns {value is string}
760
+ */
761
+ export function isTimeZone(value: unknown): value is string;
762
+ /**
763
+ * Is it a well-formed locale, like `"fr"`, `"en-GB"` or `"zh-Hant-TW"`?
764
+ *
765
+ * @example
766
+ * nc.isLocale("pt-BR"); // true
767
+ * nc.isLocale("en_US"); // false, use a dash
768
+ *
769
+ * @param {unknown} value
770
+ * @returns {value is string}
771
+ */
772
+ export function isLocale(value: unknown): value is string;
773
+ /**
774
+ * Is it a cron expression `nc.time.cron()` understands?
775
+ *
776
+ * @example
777
+ * nc.isCron("0 9 * * 1-5"); // true
778
+ * nc.isCron("@daily"); // true
779
+ * nc.isCron("61 * * * *"); // false
780
+ *
781
+ * @param {unknown} value
782
+ * @returns {value is string}
783
+ */
784
+ export function isCron(value: unknown): value is string;
785
+ /**
786
+ * Is it made only of ASCII characters?
787
+ *
788
+ * @example
789
+ * nc.isASCII("hello"); // true
790
+ * nc.isASCII("héllo"); // false
791
+ *
792
+ * @param {unknown} value
793
+ * @returns {value is string}
794
+ */
795
+ export function isASCII(value: unknown): value is string;
643
796
  /**
644
797
  * Throws an `AssertionError` if `condition` is falsy. Afterwards, TypeScript
645
798
  * knows the condition holds.
@@ -1 +1 @@
1
- {"version":3,"file":"Checker.d.ts","sourceRoot":"","sources":["../../src/Checker.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Checker.d.ts","sourceRoot":"","sources":["../../src/Checker.js"],"names":[],"mappings":"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"}