@rickosborne/guard 2025.2.16 → 2025.2.26

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/README.md CHANGED
@@ -330,6 +330,22 @@ isDefined: <T>(obj: T) => obj is NonNullable<T>
330
330
  Guard to filter out null or undefined values.
331
331
 
332
332
 
333
+ #### isDigit
334
+
335
+ <a id="api-isdigit"></a>
336
+
337
+ ```typescript
338
+ isDigit: (value: unknown) => value is Digit
339
+ ```
340
+
341
+ #### isHexDigit
342
+
343
+ <a id="api-ishexdigit"></a>
344
+
345
+ ```typescript
346
+ isHexDigit: (value: unknown) => value is HexDigit
347
+ ```
348
+
333
349
  #### isInt
334
350
 
335
351
  <a id="api-isint"></a>
@@ -560,6 +576,22 @@ A problem encountered while attempting to validate a value against a type guard/
560
576
 
561
577
  ### TypeAliases
562
578
 
579
+ #### Digit
580
+
581
+ <a id="api-digit"></a>
582
+
583
+ ```typescript
584
+ type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
585
+ ```
586
+
587
+ #### HexDigit
588
+
589
+ <a id="api-hexdigit"></a>
590
+
591
+ ```typescript
592
+ type HexDigit = Digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f";
593
+ ```
594
+
563
595
  #### MessageOrError
564
596
 
565
597
  <a id="api-messageorerror"></a>
package/is-int.cjs CHANGED
@@ -21,6 +21,8 @@ var is_int_exports = {};
21
21
  __export(is_int_exports, {
22
22
  assertInt: () => assertInt,
23
23
  expectInt: () => expectInt,
24
+ isDigit: () => isDigit,
25
+ isHexDigit: () => isHexDigit,
24
26
  isInt: () => isInt,
25
27
  maybeInt: () => maybeInt
26
28
  });
@@ -50,4 +52,15 @@ const maybeInt = /* @__PURE__ */ __name((text) => {
50
52
  }
51
53
  return void 0;
52
54
  }, "maybeInt");
55
+ const isDigit = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length === 1 && "0".localeCompare(value) <= 0 && "9".localeCompare(value) >= 0, "isDigit");
56
+ const isHexDigit = /* @__PURE__ */ __name((value) => {
57
+ if (typeof value !== "string" || value.length !== 1) {
58
+ return false;
59
+ }
60
+ if (isDigit(value)) {
61
+ return true;
62
+ }
63
+ const lower = value.toLocaleLowerCase();
64
+ return "a".localeCompare(lower) <= 0 && "f".localeCompare(lower) >= 0;
65
+ }, "isHexDigit");
53
66
  //# sourceMappingURL=is-int.cjs.map
package/is-int.cjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/packages/guard/is-int.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAAwC;AAMjC,MAAM,QAAQ,wBAAC,QAAgC,OAAO,QAAQ,YAAY,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,OAAO,QAAQ,YAAY,QAAQ,WAAlI;AAKd,SAAS,UAAU,OAAgB,gBAAyD;AAClG,MAAI,CAAC,MAAM,KAAK,GAAG;AAClB,cAAM,mDAAwB,gBAAgB,SAAS;AAAA,EACxD;AACD;AAJgB;AAST,MAAM,YAAY,wBACxB,KACA,mBACY;AACZ,YAAU,KAAK,cAAc;AAC7B,SAAO;AACR,GANyB;AAalB,MAAM,WAAW,wBACvB,SACwB;AACxB,MAAI,OAAO;AACX,MAAI,QAAQ,KAAK,KAAK;AAEtB,MAAI,KAAK,WAAW,GAAG,GAAG;AACzB,WAAO;AACP,YAAQ,MAAM,UAAU,CAAC;AAAA,EAC1B;AACA,UAAQ,MACN,QAAQ,uBAAuB,EAAE,EACjC,QAAQ,gBAAgB,GAAG,EAC3B,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,2BAA2B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC3F,QAAQ,sBAAsB,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC;AAExF,MAAI,sBAAsB,KAAK,KAAK,GAAG;AACtC,WAAO,SAAS,OAAO,EAAE,IAAI;AAAA,EAC9B;AACA,SAAO;AACR,GAtBwB;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAAwC;AAMjC,MAAM,QAAQ,wBAAC,QAAgC,OAAO,QAAQ,YAAY,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,OAAO,QAAQ,YAAY,QAAQ,WAAlI;AAKd,SAAS,UAAU,OAAgB,gBAAyD;AAClG,MAAI,CAAC,MAAM,KAAK,GAAG;AAClB,cAAM,mDAAwB,gBAAgB,SAAS;AAAA,EACxD;AACD;AAJgB;AAST,MAAM,YAAY,wBACxB,KACA,mBACY;AACZ,YAAU,KAAK,cAAc;AAC7B,SAAO;AACR,GANyB;AAalB,MAAM,WAAW,wBACvB,SACwB;AACxB,MAAI,OAAO;AACX,MAAI,QAAQ,KAAK,KAAK;AAEtB,MAAI,KAAK,WAAW,GAAG,GAAG;AACzB,WAAO;AACP,YAAQ,MAAM,UAAU,CAAC;AAAA,EAC1B;AACA,UAAQ,MACN,QAAQ,uBAAuB,EAAE,EACjC,QAAQ,gBAAgB,GAAG,EAC3B,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,2BAA2B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC3F,QAAQ,sBAAsB,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC;AAExF,MAAI,sBAAsB,KAAK,KAAK,GAAG;AACtC,WAAO,SAAS,OAAO,EAAE,IAAI;AAAA,EAC9B;AACA,SAAO;AACR,GAtBwB;AA0BjB,MAAM,UAAU,wBAAC,UAAmC,OAAO,UAAU,YAAY,MAAM,WAAW,KAAK,IAAI,cAAc,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK,GAApJ;AAIhB,MAAM,aAAa,wBAAC,UAAsC;AAChE,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AACpD,WAAO;AAAA,EACR;AACA,MAAI,QAAQ,KAAK,GAAG;AACnB,WAAO;AAAA,EACR;AACA,QAAM,QAAQ,MAAM,kBAAkB;AACtC,SAAO,IAAI,cAAc,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK;AACrE,GAT0B;",
5
5
  "names": []
6
6
  }
package/is-int.d.ts CHANGED
@@ -18,4 +18,8 @@ export declare const expectInt: (obj: unknown, messageOrError: MessageOrError) =
18
18
  * for details on how this is probably very wrong in many countries.
19
19
  */
20
20
  export declare const maybeInt: (text: string) => number | undefined;
21
+ export type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
22
+ export declare const isDigit: (value: unknown) => value is Digit;
23
+ export type HexDigit = Digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f";
24
+ export declare const isHexDigit: (value: unknown) => value is HexDigit;
21
25
  //# sourceMappingURL=is-int.d.ts.map
package/is-int.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"is-int.d.ts","sourceRoot":"","sources":["../../../src/packages/guard/is-int.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAS,OAAO,KAAG,GAAG,IAAI,MAAoH,CAAC;AAEjK;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAIjG;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAChB,OAAO,kBACI,cAAc,KAC5B,MAGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SACd,MAAM,KACV,MAAM,GAAG,SAoBX,CAAC"}
1
+ {"version":3,"file":"is-int.d.ts","sourceRoot":"","sources":["../../../src/packages/guard/is-int.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAS,OAAO,KAAG,GAAG,IAAI,MAAoH,CAAC;AAEjK;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAIjG;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAChB,OAAO,kBACI,cAAc,KAC5B,MAGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SACd,MAAM,KACV,MAAM,GAAG,SAoBX,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE9E,eAAO,MAAM,OAAO,UAAW,OAAO,KAAG,KAAK,IAAI,KAA0H,CAAC;AAE7K,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAErG,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,KAAK,IAAI,QASpD,CAAC"}
package/is-int.mjs CHANGED
@@ -25,9 +25,22 @@ const maybeInt = /* @__PURE__ */ __name((text) => {
25
25
  }
26
26
  return void 0;
27
27
  }, "maybeInt");
28
+ const isDigit = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length === 1 && "0".localeCompare(value) <= 0 && "9".localeCompare(value) >= 0, "isDigit");
29
+ const isHexDigit = /* @__PURE__ */ __name((value) => {
30
+ if (typeof value !== "string" || value.length !== 1) {
31
+ return false;
32
+ }
33
+ if (isDigit(value)) {
34
+ return true;
35
+ }
36
+ const lower = value.toLocaleLowerCase();
37
+ return "a".localeCompare(lower) <= 0 && "f".localeCompare(lower) >= 0;
38
+ }, "isHexDigit");
28
39
  export {
29
40
  assertInt,
30
41
  expectInt,
42
+ isDigit,
43
+ isHexDigit,
31
44
  isInt,
32
45
  maybeInt
33
46
  };
package/is-int.mjs.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/packages/guard/is-int.ts"],
4
- "mappings": ";;AACA,SAAS,+BAA+B;AAMjC,MAAM,QAAQ,wBAAC,QAAgC,OAAO,QAAQ,YAAY,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,OAAO,QAAQ,YAAY,QAAQ,WAAlI;AAKd,SAAS,UAAU,OAAgB,gBAAyD;AAClG,MAAI,CAAC,MAAM,KAAK,GAAG;AAClB,UAAM,wBAAwB,gBAAgB,SAAS;AAAA,EACxD;AACD;AAJgB;AAST,MAAM,YAAY,wBACxB,KACA,mBACY;AACZ,YAAU,KAAK,cAAc;AAC7B,SAAO;AACR,GANyB;AAalB,MAAM,WAAW,wBACvB,SACwB;AACxB,MAAI,OAAO;AACX,MAAI,QAAQ,KAAK,KAAK;AAEtB,MAAI,KAAK,WAAW,GAAG,GAAG;AACzB,WAAO;AACP,YAAQ,MAAM,UAAU,CAAC;AAAA,EAC1B;AACA,UAAQ,MACN,QAAQ,uBAAuB,EAAE,EACjC,QAAQ,gBAAgB,GAAG,EAC3B,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,2BAA2B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC3F,QAAQ,sBAAsB,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC;AAExF,MAAI,sBAAsB,KAAK,KAAK,GAAG;AACtC,WAAO,SAAS,OAAO,EAAE,IAAI;AAAA,EAC9B;AACA,SAAO;AACR,GAtBwB;",
4
+ "mappings": ";;AACA,SAAS,+BAA+B;AAMjC,MAAM,QAAQ,wBAAC,QAAgC,OAAO,QAAQ,YAAY,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,OAAO,QAAQ,YAAY,QAAQ,WAAlI;AAKd,SAAS,UAAU,OAAgB,gBAAyD;AAClG,MAAI,CAAC,MAAM,KAAK,GAAG;AAClB,UAAM,wBAAwB,gBAAgB,SAAS;AAAA,EACxD;AACD;AAJgB;AAST,MAAM,YAAY,wBACxB,KACA,mBACY;AACZ,YAAU,KAAK,cAAc;AAC7B,SAAO;AACR,GANyB;AAalB,MAAM,WAAW,wBACvB,SACwB;AACxB,MAAI,OAAO;AACX,MAAI,QAAQ,KAAK,KAAK;AAEtB,MAAI,KAAK,WAAW,GAAG,GAAG;AACzB,WAAO;AACP,YAAQ,MAAM,UAAU,CAAC;AAAA,EAC1B;AACA,UAAQ,MACN,QAAQ,uBAAuB,EAAE,EACjC,QAAQ,gBAAgB,GAAG,EAC3B,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,0BAA0B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC1F,QAAQ,2BAA2B,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC,EAC3F,QAAQ,sBAAsB,CAAC,MAAM,WAAmB,OAAO,QAAQ,YAAY,EAAE,CAAC;AAExF,MAAI,sBAAsB,KAAK,KAAK,GAAG;AACtC,WAAO,SAAS,OAAO,EAAE,IAAI;AAAA,EAC9B;AACA,SAAO;AACR,GAtBwB;AA0BjB,MAAM,UAAU,wBAAC,UAAmC,OAAO,UAAU,YAAY,MAAM,WAAW,KAAK,IAAI,cAAc,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK,GAApJ;AAIhB,MAAM,aAAa,wBAAC,UAAsC;AAChE,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AACpD,WAAO;AAAA,EACR;AACA,MAAI,QAAQ,KAAK,GAAG;AACnB,WAAO;AAAA,EACR;AACA,QAAM,QAAQ,MAAM,kBAAkB;AACtC,SAAO,IAAI,cAAc,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK;AACrE,GAT0B;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://rickosborne.org"
5
5
  },
6
6
  "dependencies": {
7
- "@rickosborne/typical": "2025.2.16"
7
+ "@rickosborne/typical": "2025.2.26"
8
8
  },
9
9
  "description": "Rick Osborne's collection of type guards.",
10
10
  "engines": {
@@ -134,12 +134,12 @@
134
134
  },
135
135
  "git": {
136
136
  "authorName": "Rick Osborne",
137
- "commitDateISO": "2025-02-17T01:56:13.000Z",
138
- "commitHash": "2752126d79472c1f03b198ee33bcc30ff3a945a1",
139
- "commitLink": "https://github.com/rickosborne/es-js-ts/commits/2752126d79472c1f03b198ee33bcc30ff3a945a1",
140
- "parentHash": "94ad06ec519f22510af76f7ed91b46920aab1c7b",
137
+ "commitDateISO": "2025-02-26T16:44:58.000Z",
138
+ "commitHash": "d98c37cf1a65966fc3205af01aff807c5f2a36f4",
139
+ "commitLink": "https://github.com/rickosborne/es-js-ts/commits/d98c37cf1a65966fc3205af01aff807c5f2a36f4",
140
+ "parentHash": "0b10f561d72550dc94e78372e2e42110279a54f0",
141
141
  "signingKeyId": "8e61c433fe39d4a4679ce1d5b873fb3c48464f3c",
142
- "tag": "v2025.2.16"
142
+ "tag": "v2025.2.26"
143
143
  },
144
144
  "homepage": "https://github.com/rickosborne/es-js-ts",
145
145
  "keywords": [
@@ -163,5 +163,5 @@
163
163
  },
164
164
  "types": "./index.d.ts",
165
165
  "typings": "./index.d.ts",
166
- "version": "2025.2.16"
166
+ "version": "2025.2.26"
167
167
  }