xanv 1.1.11 → 1.1.13

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 (127) hide show
  1. package/XanvType.cjs +62 -0
  2. package/XanvType.cjs.map +1 -0
  3. package/XanvType.d.ts +20 -14
  4. package/XanvType.js +60 -54
  5. package/XanvType.js.map +1 -1
  6. package/index.cjs +61 -0
  7. package/index.cjs.map +1 -0
  8. package/index.d.ts +25 -29
  9. package/index.js +41 -17
  10. package/index.js.map +1 -1
  11. package/package.json +4 -19
  12. package/readme.md +199 -199
  13. package/types/Any.cjs +16 -0
  14. package/types/Any.cjs.map +1 -0
  15. package/types/Any.d.ts +3 -3
  16. package/types/Any.js +14 -6
  17. package/types/Any.js.map +1 -1
  18. package/types/Array.cjs +66 -0
  19. package/types/Array.cjs.map +1 -0
  20. package/types/Array.d.ts +9 -9
  21. package/types/Array.js +64 -80
  22. package/types/Array.js.map +1 -1
  23. package/types/Boolean.cjs +15 -0
  24. package/types/Boolean.cjs.map +1 -0
  25. package/types/Boolean.d.ts +2 -2
  26. package/types/Boolean.js +13 -7
  27. package/types/Boolean.js.map +1 -1
  28. package/types/{Date.mjs → Date.cjs} +15 -7
  29. package/types/Date.cjs.map +1 -0
  30. package/types/Date.d.ts +2 -2
  31. package/types/Date.js +13 -7
  32. package/types/Date.js.map +1 -1
  33. package/types/Enum.cjs +28 -0
  34. package/types/Enum.cjs.map +1 -0
  35. package/types/Enum.d.ts +4 -5
  36. package/types/Enum.js +26 -25
  37. package/types/Enum.js.map +1 -1
  38. package/types/File.cjs +62 -0
  39. package/types/File.cjs.map +1 -0
  40. package/types/File.d.ts +8 -8
  41. package/types/File.js +60 -52
  42. package/types/File.js.map +1 -1
  43. package/types/Function.cjs +33 -0
  44. package/types/Function.cjs.map +1 -0
  45. package/types/Function.d.ts +15 -0
  46. package/types/Function.js +31 -0
  47. package/types/Function.js.map +1 -0
  48. package/types/Json.cjs +19 -0
  49. package/types/Json.cjs.map +1 -0
  50. package/types/Json.d.ts +3 -3
  51. package/types/Json.js +17 -11
  52. package/types/Json.js.map +1 -1
  53. package/types/Map.cjs +31 -0
  54. package/types/Map.cjs.map +1 -0
  55. package/types/Map.d.ts +6 -6
  56. package/types/Map.js +29 -23
  57. package/types/Map.js.map +1 -1
  58. package/types/{Number.mjs → Number.cjs} +77 -67
  59. package/types/Number.cjs.map +1 -0
  60. package/types/Number.d.ts +10 -10
  61. package/types/Number.js +75 -67
  62. package/types/Number.js.map +1 -1
  63. package/types/Object.cjs +22 -0
  64. package/types/Object.cjs.map +1 -0
  65. package/types/Object.d.ts +11 -5
  66. package/types/Object.js +20 -26
  67. package/types/Object.js.map +1 -1
  68. package/types/Promise.cjs +29 -0
  69. package/types/Promise.cjs.map +1 -0
  70. package/types/Promise.d.ts +11 -0
  71. package/types/Promise.js +27 -0
  72. package/types/Promise.js.map +1 -0
  73. package/types/{Record.mjs → Record.cjs} +31 -24
  74. package/types/Record.cjs.map +1 -0
  75. package/types/Record.d.ts +7 -7
  76. package/types/Record.js +29 -24
  77. package/types/Record.js.map +1 -1
  78. package/types/{Set.mjs → Set.cjs} +41 -33
  79. package/types/Set.cjs.map +1 -0
  80. package/types/Set.d.ts +6 -6
  81. package/types/Set.js +39 -33
  82. package/types/Set.js.map +1 -1
  83. package/types/{String.mjs → String.cjs} +95 -87
  84. package/types/String.cjs.map +1 -0
  85. package/types/String.d.ts +12 -12
  86. package/types/String.js +93 -87
  87. package/types/String.js.map +1 -1
  88. package/types/Tuple.cjs +31 -0
  89. package/types/Tuple.cjs.map +1 -0
  90. package/types/Tuple.d.ts +9 -5
  91. package/types/Tuple.js +29 -23
  92. package/types/Tuple.js.map +1 -1
  93. package/types/Union.cjs +34 -0
  94. package/types/Union.cjs.map +1 -0
  95. package/types/Union.d.ts +5 -4
  96. package/types/Union.js +32 -28
  97. package/types/Union.js.map +1 -1
  98. package/types.d.ts +29 -10
  99. package/XanvType.mjs +0 -54
  100. package/XanvType.mjs.map +0 -1
  101. package/index.mjs +0 -17
  102. package/index.mjs.map +0 -1
  103. package/types/Any.mjs +0 -6
  104. package/types/Any.mjs.map +0 -1
  105. package/types/Array.mjs +0 -80
  106. package/types/Array.mjs.map +0 -1
  107. package/types/Boolean.mjs +0 -7
  108. package/types/Boolean.mjs.map +0 -1
  109. package/types/Date.mjs.map +0 -1
  110. package/types/Enum.mjs +0 -25
  111. package/types/Enum.mjs.map +0 -1
  112. package/types/File.mjs +0 -52
  113. package/types/File.mjs.map +0 -1
  114. package/types/Json.mjs +0 -11
  115. package/types/Json.mjs.map +0 -1
  116. package/types/Map.mjs +0 -23
  117. package/types/Map.mjs.map +0 -1
  118. package/types/Number.mjs.map +0 -1
  119. package/types/Object.mjs +0 -26
  120. package/types/Object.mjs.map +0 -1
  121. package/types/Record.mjs.map +0 -1
  122. package/types/Set.mjs.map +0 -1
  123. package/types/String.mjs.map +0 -1
  124. package/types/Tuple.mjs +0 -23
  125. package/types/Tuple.mjs.map +0 -1
  126. package/types/Union.mjs +0 -28
  127. package/types/Union.mjs.map +0 -1
@@ -1,33 +1,41 @@
1
- import XanvType from'../XanvType.mjs';class XVSet extends XanvType {
2
- constructor(XVtype) {
3
- super();
4
- this.XVtype = XVtype;
5
- }
6
- check(value) {
7
- if (!(value instanceof Set)) {
8
- throw new Error(`Value should be a Set, received ${typeof value}`);
9
- }
10
- for (const item of Array.from(value)) {
11
- try {
12
- this.XVtype.parse(item);
13
- }
14
- catch (error) {
15
- throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);
16
- }
17
- }
18
- }
19
- min(length) {
20
- return this.set("min", (v) => {
21
- if (v.size < length) {
22
- throw new Error(`Set size should be at least ${length} items, received ${v.size}`);
23
- }
24
- }, length);
25
- }
26
- max(length) {
27
- return this.set("max", (v) => {
28
- if (v.size > length) {
29
- throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);
30
- }
31
- }, length);
32
- }
33
- }export{XVSet as default};//# sourceMappingURL=Set.mjs.map
1
+ 'use strict';
2
+
3
+ var XanvType = require('../XanvType.cjs');
4
+
5
+ class XVSet extends XanvType {
6
+ constructor(XVtype) {
7
+ super();
8
+ this.XVtype = XVtype;
9
+ }
10
+ check(value) {
11
+ if (!(value instanceof Set)) {
12
+ throw new Error(`Value should be a Set, received ${typeof value}`);
13
+ }
14
+ for (const item of Array.from(value)) {
15
+ try {
16
+ this.XVtype.parse(item);
17
+ }
18
+ catch (error) {
19
+ throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);
20
+ }
21
+ }
22
+ return value;
23
+ }
24
+ min(length) {
25
+ return this.set("min", (v) => {
26
+ if (v.size < length) {
27
+ throw new Error(`Set size should be at least ${length} items, received ${v.size}`);
28
+ }
29
+ }, length);
30
+ }
31
+ max(length) {
32
+ return this.set("max", (v) => {
33
+ if (v.size > length) {
34
+ throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);
35
+ }
36
+ }, length);
37
+ }
38
+ }
39
+
40
+ module.exports = XVSet;
41
+ //# sourceMappingURL=Set.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Set.cjs","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\r\nimport XanvType from \"../XanvType\";\r\n\r\nclass XVSet<T extends XVInstanceType = any> extends XanvType<T> {\r\n\r\n private XVtype: T;\r\n\r\n constructor(XVtype: T) {\r\n super();\r\n this.XVtype = XVtype;\r\n }\r\n\r\n protected check(value: any): T {\r\n if (!(value instanceof Set)) {\r\n throw new Error(`Value should be a Set, received ${typeof value}`);\r\n }\r\n\r\n for (const item of Array.from(value)) {\r\n try {\r\n this.XVtype.parse(item);\r\n } catch (error) {\r\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\r\n }\r\n }\r\n return value as any\r\n }\r\n\r\n min(length: number) {\r\n return this.set(\"min\", (v: any) => {\r\n if (v.size < length) {\r\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n max(length: number) {\r\n return this.set(\"max\", (v: any) => {\r\n if (v.size > length) {\r\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n\r\n}\r\n\r\nexport default XVSet;"],"names":[],"mappings":";;;;AAGA,MAAM,KAAsC,SAAQ,QAAW,CAAA;AAI5D,IAAA,WAAA,CAAY,MAAS,EAAA;AAClB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;AAES,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC,CAAC;AACrE,QAAA,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,CAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC,CAAC;AACzG,YAAA,CAAA;AACH,QAAA,CAAA;AACD,QAAA,OAAO,KAAY,CAAA;IACtB,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACrF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACpF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAGH;;;;"}
package/types/Set.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { XVInstanceType } from '../types.js';
2
2
  import XanvType from '../XanvType.js';
3
3
 
4
- declare class XVSet<T = unknown> extends XanvType<Set<T>> {
5
- private XVtype;
6
- constructor(XVtype: XVInstanceType);
7
- protected check(value: any): void;
8
- min(length: number): this;
9
- max(length: number): this;
4
+ declare class XVSet<T extends XVInstanceType = any> extends XanvType<T> {
5
+ private XVtype;
6
+ constructor(XVtype: T);
7
+ protected check(value: any): T;
8
+ min(length: number): this;
9
+ max(length: number): this;
10
10
  }
11
11
 
12
12
  export { XVSet as default };
package/types/Set.js CHANGED
@@ -1,33 +1,39 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var XanvType=require('../XanvType.js');class XVSet extends XanvType.default {
2
- constructor(XVtype) {
3
- super();
4
- this.XVtype = XVtype;
5
- }
6
- check(value) {
7
- if (!(value instanceof Set)) {
8
- throw new Error(`Value should be a Set, received ${typeof value}`);
9
- }
10
- for (const item of Array.from(value)) {
11
- try {
12
- this.XVtype.parse(item);
13
- }
14
- catch (error) {
15
- throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);
16
- }
17
- }
18
- }
19
- min(length) {
20
- return this.set("min", (v) => {
21
- if (v.size < length) {
22
- throw new Error(`Set size should be at least ${length} items, received ${v.size}`);
23
- }
24
- }, length);
25
- }
26
- max(length) {
27
- return this.set("max", (v) => {
28
- if (v.size > length) {
29
- throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);
30
- }
31
- }, length);
32
- }
33
- }exports.default=XVSet;//# sourceMappingURL=Set.js.map
1
+ import XanvType from '../XanvType.js';
2
+
3
+ class XVSet extends XanvType {
4
+ constructor(XVtype) {
5
+ super();
6
+ this.XVtype = XVtype;
7
+ }
8
+ check(value) {
9
+ if (!(value instanceof Set)) {
10
+ throw new Error(`Value should be a Set, received ${typeof value}`);
11
+ }
12
+ for (const item of Array.from(value)) {
13
+ try {
14
+ this.XVtype.parse(item);
15
+ }
16
+ catch (error) {
17
+ throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);
18
+ }
19
+ }
20
+ return value;
21
+ }
22
+ min(length) {
23
+ return this.set("min", (v) => {
24
+ if (v.size < length) {
25
+ throw new Error(`Set size should be at least ${length} items, received ${v.size}`);
26
+ }
27
+ }, length);
28
+ }
29
+ max(length) {
30
+ return this.set("max", (v) => {
31
+ if (v.size > length) {
32
+ throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);
33
+ }
34
+ }, length);
35
+ }
36
+ }
37
+
38
+ export { XVSet as default };
39
+ //# sourceMappingURL=Set.js.map
package/types/Set.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Set.js","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVSet<T = unknown> extends XanvType<Set<T>> {\n\n private XVtype: XVInstanceType;\n\n constructor(XVtype: XVInstanceType) {\n super();\n this.XVtype = XVtype;\n }\n\n protected check(value: any): void {\n if (!(value instanceof Set)) {\n throw new Error(`Value should be a Set, received ${typeof value}`);\n }\n\n for (const item of Array.from(value)) {\n try {\n this.XVtype.parse(item);\n } catch (error) {\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\n }\n }\n }\n\n min(length: number) {\n return this.set(\"min\", (v: any) => {\n if (v.size < length) {\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", (v: any) => {\n if (v.size > length) {\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\n }\n }, length);\n }\n\n\n}\n\nexport default XVSet;"],"names":["XanvType"],"mappings":"6GAGA,MAAM,KAAmB,SAAQA,gBAAgB,CAAA;AAI9C,IAAA,WAAA,CAAY,MAAsB,EAAA;AAC/B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACvB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC;AACpE,QAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACzB,YAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC;AACxG,YAAA;AACH,QAAA;IACJ;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACpF,YAAA;QACJ,CAAC,EAAE,MAAM,CAAC;IACb;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACnF,YAAA;QACJ,CAAC,EAAE,MAAM,CAAC;IACb;AAGF"}
1
+ {"version":3,"file":"Set.js","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\r\nimport XanvType from \"../XanvType\";\r\n\r\nclass XVSet<T extends XVInstanceType = any> extends XanvType<T> {\r\n\r\n private XVtype: T;\r\n\r\n constructor(XVtype: T) {\r\n super();\r\n this.XVtype = XVtype;\r\n }\r\n\r\n protected check(value: any): T {\r\n if (!(value instanceof Set)) {\r\n throw new Error(`Value should be a Set, received ${typeof value}`);\r\n }\r\n\r\n for (const item of Array.from(value)) {\r\n try {\r\n this.XVtype.parse(item);\r\n } catch (error) {\r\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\r\n }\r\n }\r\n return value as any\r\n }\r\n\r\n min(length: number) {\r\n return this.set(\"min\", (v: any) => {\r\n if (v.size < length) {\r\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n max(length: number) {\r\n return this.set(\"max\", (v: any) => {\r\n if (v.size > length) {\r\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n\r\n}\r\n\r\nexport default XVSet;"],"names":[],"mappings":";;AAGA,MAAM,KAAsC,SAAQ,QAAW,CAAA;AAI5D,IAAA,WAAA,CAAY,MAAS,EAAA;AAClB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;AAES,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC,CAAC;AACrE,QAAA,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,CAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC,CAAC;AACzG,YAAA,CAAA;AACH,QAAA,CAAA;AACD,QAAA,OAAO,KAAY,CAAA;IACtB,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACrF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACpF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAGH;;;;"}
@@ -1,87 +1,95 @@
1
- import XanvType from'../XanvType.mjs';class XVString extends XanvType {
2
- constructor(length) {
3
- super();
4
- if (length) {
5
- this.length(length);
6
- }
7
- }
8
- check(value) {
9
- if (typeof value !== 'string') {
10
- throw new Error(`Value should be a string, received ${typeof value}`);
11
- }
12
- }
13
- length(length) {
14
- return this.set("length", (v) => {
15
- const s = v;
16
- if (s.length !== length) {
17
- throw new Error(`String length should be ${length} characters, received ${s.length}`);
18
- }
19
- }, length);
20
- }
21
- min(length) {
22
- return this.set("min", (v) => {
23
- const s = v;
24
- if (s.length < length) {
25
- throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);
26
- }
27
- }, length);
28
- }
29
- max(length) {
30
- return this.set("max", (v) => {
31
- const s = v;
32
- if (s.length > length) {
33
- throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);
34
- }
35
- }, length);
36
- }
37
- email() {
38
- return this.set("email", (v) => {
39
- const s = String(v);
40
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
41
- if (!emailRegex.test(s)) {
42
- throw new Error(`String should be a valid email address`);
43
- }
44
- });
45
- }
46
- uppercase() {
47
- return this.set("uppercase", (v) => {
48
- const s = String(v);
49
- if (s !== s.toUpperCase()) {
50
- throw new Error(`String should be in uppercase`);
51
- }
52
- });
53
- }
54
- lowercase() {
55
- return this.set("lowercase", (v) => {
56
- const s = String(v);
57
- if (s !== s.toLowerCase()) {
58
- throw new Error(`String should be in lowercase`);
59
- }
60
- });
61
- }
62
- number() {
63
- return this.set("number", (v) => {
64
- const s = String(v);
65
- if (isNaN(Number(s))) {
66
- throw new Error(`String should be a valid number`);
67
- }
68
- });
69
- }
70
- date() {
71
- return this.set("date", (v) => {
72
- const s = String(v);
73
- const date = new Date(s);
74
- if (isNaN(date.getTime())) {
75
- throw new Error(`String should be a valid date`);
76
- }
77
- });
78
- }
79
- base64() {
80
- return this.set("base64", (v) => {
81
- const s = String(v);
82
- if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {
83
- throw new Error(`String should be a valid Base64 encoded string`);
84
- }
85
- });
86
- }
87
- }export{XVString as default};//# sourceMappingURL=String.mjs.map
1
+ 'use strict';
2
+
3
+ var XanvType = require('../XanvType.cjs');
4
+
5
+ class XVString extends XanvType {
6
+ constructor(length) {
7
+ super();
8
+ if (length !== undefined) {
9
+ this.length(length);
10
+ }
11
+ }
12
+ check(value) {
13
+ if (typeof value !== "string") {
14
+ throw new Error(`Value should be a string, received ${typeof value}`);
15
+ }
16
+ return value;
17
+ }
18
+ length(length) {
19
+ return this.set("length", (v) => {
20
+ const s = String(v);
21
+ if (s.length !== length) {
22
+ throw new Error(`String length should be ${length} characters, received ${s.length}`);
23
+ }
24
+ }, length);
25
+ }
26
+ min(length) {
27
+ return this.set("min", (v) => {
28
+ const s = String(v);
29
+ if (s.length < length) {
30
+ throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);
31
+ }
32
+ }, length);
33
+ }
34
+ max(length) {
35
+ return this.set("max", (v) => {
36
+ const s = String(v);
37
+ if (s.length > length) {
38
+ throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);
39
+ }
40
+ }, length);
41
+ }
42
+ email() {
43
+ return this.set("email", (v) => {
44
+ const s = String(v);
45
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
46
+ if (!emailRegex.test(s)) {
47
+ throw new Error(`String should be a valid email address`);
48
+ }
49
+ });
50
+ }
51
+ uppercase() {
52
+ return this.set("uppercase", (v) => {
53
+ const s = String(v);
54
+ if (s !== s.toUpperCase()) {
55
+ throw new Error(`String should be in uppercase`);
56
+ }
57
+ });
58
+ }
59
+ lowercase() {
60
+ return this.set("lowercase", (v) => {
61
+ const s = String(v);
62
+ if (s !== s.toLowerCase()) {
63
+ throw new Error(`String should be in lowercase`);
64
+ }
65
+ });
66
+ }
67
+ number() {
68
+ return this.set("number", (v) => {
69
+ const s = String(v);
70
+ if (isNaN(Number(s))) {
71
+ throw new Error(`String should be a valid number`);
72
+ }
73
+ });
74
+ }
75
+ date() {
76
+ return this.set("date", (v) => {
77
+ const s = String(v);
78
+ const d = new Date(s);
79
+ if (isNaN(d.getTime())) {
80
+ throw new Error(`String should be a valid date`);
81
+ }
82
+ });
83
+ }
84
+ base64() {
85
+ return this.set("base64", (v) => {
86
+ const s = String(v);
87
+ if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {
88
+ throw new Error(`String should be a valid Base64 encoded string`);
89
+ }
90
+ });
91
+ }
92
+ }
93
+
94
+ module.exports = XVString;
95
+ //# sourceMappingURL=String.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"String.cjs","sources":["../../src/types/String.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\r\n\r\nclass XVString extends XanvType<string, unknown> {\r\n constructor(length?: number) {\r\n super();\r\n if (length !== undefined) {\r\n this.length(length);\r\n }\r\n }\r\n\r\n protected check(value: unknown): string {\r\n if (typeof value !== \"string\") {\r\n throw new Error(`Value should be a string, received ${typeof value}`);\r\n }\r\n return value;\r\n }\r\n\r\n length(length: number) {\r\n return this.set(\r\n \"length\",\r\n (v: unknown) => {\r\n const s = String(v);\r\n if (s.length !== length) {\r\n throw new Error(\r\n `String length should be ${length} characters, received ${s.length}`\r\n );\r\n }\r\n },\r\n length\r\n );\r\n }\r\n\r\n min(length: number) {\r\n return this.set(\r\n \"min\",\r\n (v: unknown) => {\r\n const s = String(v);\r\n if (s.length < length) {\r\n throw new Error(\r\n `Minimum length should be ${length} characters, received ${s.length}`\r\n );\r\n }\r\n },\r\n length\r\n );\r\n }\r\n\r\n max(length: number) {\r\n return this.set(\r\n \"max\",\r\n (v: unknown) => {\r\n const s = String(v);\r\n if (s.length > length) {\r\n throw new Error(\r\n `Maximum length should be ${length} characters, received ${s.length}`\r\n );\r\n }\r\n },\r\n length\r\n );\r\n }\r\n\r\n email() {\r\n return this.set(\"email\", (v: unknown) => {\r\n const s = String(v);\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n if (!emailRegex.test(s)) {\r\n throw new Error(`String should be a valid email address`);\r\n }\r\n });\r\n }\r\n\r\n uppercase() {\r\n return this.set(\"uppercase\", (v: unknown) => {\r\n const s = String(v);\r\n if (s !== s.toUpperCase()) {\r\n throw new Error(`String should be in uppercase`);\r\n }\r\n });\r\n }\r\n\r\n lowercase() {\r\n return this.set(\"lowercase\", (v: unknown) => {\r\n const s = String(v);\r\n if (s !== s.toLowerCase()) {\r\n throw new Error(`String should be in lowercase`);\r\n }\r\n });\r\n }\r\n\r\n number() {\r\n return this.set(\"number\", (v: unknown) => {\r\n const s = String(v);\r\n if (isNaN(Number(s))) {\r\n throw new Error(`String should be a valid number`);\r\n }\r\n });\r\n }\r\n\r\n date() {\r\n return this.set(\"date\", (v: unknown) => {\r\n const s = String(v);\r\n const d = new Date(s);\r\n if (isNaN(d.getTime())) {\r\n throw new Error(`String should be a valid date`);\r\n }\r\n });\r\n }\r\n\r\n base64() {\r\n return this.set(\"base64\", (v: unknown) => {\r\n const s = String(v);\r\n if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {\r\n throw new Error(`String should be a valid Base64 encoded string`);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default XVString;\r\n"],"names":[],"mappings":"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"}
package/types/String.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import XanvType from '../XanvType.js';
2
2
 
3
- declare class XVString<T extends string = string> extends XanvType<T> {
4
- constructor(length?: number);
5
- protected check(value: any): void;
6
- length(length: number): this;
7
- min(length: number): this;
8
- max(length: number): this;
9
- email(): this;
10
- uppercase(): this;
11
- lowercase(): this;
12
- number(): this;
13
- date(): this;
14
- base64(): this;
3
+ declare class XVString extends XanvType<string, unknown> {
4
+ constructor(length?: number);
5
+ protected check(value: unknown): string;
6
+ length(length: number): this;
7
+ min(length: number): this;
8
+ max(length: number): this;
9
+ email(): this;
10
+ uppercase(): this;
11
+ lowercase(): this;
12
+ number(): this;
13
+ date(): this;
14
+ base64(): this;
15
15
  }
16
16
 
17
17
  export { XVString as default };
package/types/String.js CHANGED
@@ -1,87 +1,93 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var XanvType=require('../XanvType.js');class XVString extends XanvType.default {
2
- constructor(length) {
3
- super();
4
- if (length) {
5
- this.length(length);
6
- }
7
- }
8
- check(value) {
9
- if (typeof value !== 'string') {
10
- throw new Error(`Value should be a string, received ${typeof value}`);
11
- }
12
- }
13
- length(length) {
14
- return this.set("length", (v) => {
15
- const s = v;
16
- if (s.length !== length) {
17
- throw new Error(`String length should be ${length} characters, received ${s.length}`);
18
- }
19
- }, length);
20
- }
21
- min(length) {
22
- return this.set("min", (v) => {
23
- const s = v;
24
- if (s.length < length) {
25
- throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);
26
- }
27
- }, length);
28
- }
29
- max(length) {
30
- return this.set("max", (v) => {
31
- const s = v;
32
- if (s.length > length) {
33
- throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);
34
- }
35
- }, length);
36
- }
37
- email() {
38
- return this.set("email", (v) => {
39
- const s = String(v);
40
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
41
- if (!emailRegex.test(s)) {
42
- throw new Error(`String should be a valid email address`);
43
- }
44
- });
45
- }
46
- uppercase() {
47
- return this.set("uppercase", (v) => {
48
- const s = String(v);
49
- if (s !== s.toUpperCase()) {
50
- throw new Error(`String should be in uppercase`);
51
- }
52
- });
53
- }
54
- lowercase() {
55
- return this.set("lowercase", (v) => {
56
- const s = String(v);
57
- if (s !== s.toLowerCase()) {
58
- throw new Error(`String should be in lowercase`);
59
- }
60
- });
61
- }
62
- number() {
63
- return this.set("number", (v) => {
64
- const s = String(v);
65
- if (isNaN(Number(s))) {
66
- throw new Error(`String should be a valid number`);
67
- }
68
- });
69
- }
70
- date() {
71
- return this.set("date", (v) => {
72
- const s = String(v);
73
- const date = new Date(s);
74
- if (isNaN(date.getTime())) {
75
- throw new Error(`String should be a valid date`);
76
- }
77
- });
78
- }
79
- base64() {
80
- return this.set("base64", (v) => {
81
- const s = String(v);
82
- if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {
83
- throw new Error(`String should be a valid Base64 encoded string`);
84
- }
85
- });
86
- }
87
- }exports.default=XVString;//# sourceMappingURL=String.js.map
1
+ import XanvType from '../XanvType.js';
2
+
3
+ class XVString extends XanvType {
4
+ constructor(length) {
5
+ super();
6
+ if (length !== undefined) {
7
+ this.length(length);
8
+ }
9
+ }
10
+ check(value) {
11
+ if (typeof value !== "string") {
12
+ throw new Error(`Value should be a string, received ${typeof value}`);
13
+ }
14
+ return value;
15
+ }
16
+ length(length) {
17
+ return this.set("length", (v) => {
18
+ const s = String(v);
19
+ if (s.length !== length) {
20
+ throw new Error(`String length should be ${length} characters, received ${s.length}`);
21
+ }
22
+ }, length);
23
+ }
24
+ min(length) {
25
+ return this.set("min", (v) => {
26
+ const s = String(v);
27
+ if (s.length < length) {
28
+ throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);
29
+ }
30
+ }, length);
31
+ }
32
+ max(length) {
33
+ return this.set("max", (v) => {
34
+ const s = String(v);
35
+ if (s.length > length) {
36
+ throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);
37
+ }
38
+ }, length);
39
+ }
40
+ email() {
41
+ return this.set("email", (v) => {
42
+ const s = String(v);
43
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
44
+ if (!emailRegex.test(s)) {
45
+ throw new Error(`String should be a valid email address`);
46
+ }
47
+ });
48
+ }
49
+ uppercase() {
50
+ return this.set("uppercase", (v) => {
51
+ const s = String(v);
52
+ if (s !== s.toUpperCase()) {
53
+ throw new Error(`String should be in uppercase`);
54
+ }
55
+ });
56
+ }
57
+ lowercase() {
58
+ return this.set("lowercase", (v) => {
59
+ const s = String(v);
60
+ if (s !== s.toLowerCase()) {
61
+ throw new Error(`String should be in lowercase`);
62
+ }
63
+ });
64
+ }
65
+ number() {
66
+ return this.set("number", (v) => {
67
+ const s = String(v);
68
+ if (isNaN(Number(s))) {
69
+ throw new Error(`String should be a valid number`);
70
+ }
71
+ });
72
+ }
73
+ date() {
74
+ return this.set("date", (v) => {
75
+ const s = String(v);
76
+ const d = new Date(s);
77
+ if (isNaN(d.getTime())) {
78
+ throw new Error(`String should be a valid date`);
79
+ }
80
+ });
81
+ }
82
+ base64() {
83
+ return this.set("base64", (v) => {
84
+ const s = String(v);
85
+ if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {
86
+ throw new Error(`String should be a valid Base64 encoded string`);
87
+ }
88
+ });
89
+ }
90
+ }
91
+
92
+ export { XVString as default };
93
+ //# sourceMappingURL=String.js.map