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 +0,0 @@
1
- {"version":3,"file":"Enum.mjs","sources":["../../src/types/Enum.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVEnumValues } from \"../types\";\n\nclass XVEnum<T extends string | number = string | number> extends XanvType<T> {\n private values: (string | number)[];\n\n constructor(values: XVEnumValues) {\n super();\n if (typeof values === 'object' && !Array.isArray(values) && values !== null) {\n values = Object.values(values).map(v => {\n if (typeof v !== 'string' && typeof v !== 'number') {\n throw new Error(\"Enum values must be strings or numbers\");\n }\n return v;\n });\n }\n if (!Array.isArray(values) || values.length === 0) {\n throw new Error(\"Enum values must be a non-empty array\");\n }\n this.values = values;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'string' && typeof value !== 'number') {\n throw new Error(`Value should be a string or number, received ${typeof value}`);\n }\n\n if (!this.values.includes(value)) {\n throw new Error(`Value should be one of the enum values: ${this.values.join(', ')}`);\n }\n }\n\n}\n\nexport default XVEnum;"],"names":[],"mappings":"sCAGA,MAAM,MAAoD,SAAQ,QAAW,CAAA;AAG1E,IAAA,WAAA,CAAY,MAAoB,EAAA;AAC7B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;AAC1E,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;gBACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjD,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AAC3D,gBAAA;AACD,gBAAA,OAAO,CAAC;AACX,YAAA,CAAC,CAAC;AACJ,QAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAC1D,QAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACvB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,CAAA,6CAAA,EAAgD,OAAO,KAAK,CAAA,CAAE,CAAC;AACjF,QAAA;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,wCAAA,EAA2C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACtF,QAAA;IACJ;AAEF"}
package/types/File.mjs DELETED
@@ -1,52 +0,0 @@
1
- import XanvType from'../XanvType.mjs';class XVFile extends XanvType {
2
- constructor(size) {
3
- super();
4
- if (size) {
5
- this.size(size);
6
- }
7
- }
8
- check(value) {
9
- if (!(value instanceof File) || !(value instanceof Blob)) {
10
- throw new Error(`Value should be a File or Blob, received ${typeof value}`);
11
- }
12
- }
13
- size(size) {
14
- return this.set('size', (v) => {
15
- if (!(v instanceof File) && !(v instanceof Blob)) {
16
- throw new Error(`Value should be a File or Blob, received ${typeof v}`);
17
- }
18
- if (v.size !== size) {
19
- throw new Error(`File size should be exactly ${size} bytes, received ${v.size} bytes`);
20
- }
21
- }, size);
22
- }
23
- minsize(size) {
24
- return this.set('minsize', (v) => {
25
- if (v.size < size) {
26
- throw new Error(`File size should be at least ${size} bytes, received ${v.size} bytes`);
27
- }
28
- }, size);
29
- }
30
- maxsize(size) {
31
- return this.set('maxsize', (v) => {
32
- if (v.size > size) {
33
- throw new Error(`File size should not exceed ${size} bytes, received ${v.size} bytes`);
34
- }
35
- }, size);
36
- }
37
- type(allowedTypes) {
38
- return this.set('type', (v) => {
39
- if (!allowedTypes.includes(v.type)) {
40
- throw new Error(`File type ${v.type} is not allowed. Allowed types are: ${allowedTypes.join(', ')}`);
41
- }
42
- }, allowedTypes);
43
- }
44
- extension(allowedExtensions) {
45
- return this.set('extension', (v) => {
46
- const ext = v.name.split('.').pop();
47
- if (!ext || !allowedExtensions.includes(ext)) {
48
- throw new Error(`File extension ${ext} is not allowed. Allowed extensions are: ${allowedExtensions.join(', ')}`);
49
- }
50
- }, allowedExtensions);
51
- }
52
- }export{XVFile as default};//# sourceMappingURL=File.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"File.mjs","sources":["../../src/types/File.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\n\nclass XVFile<T extends File | Blob = File | Blob> extends XanvType<T> {\n constructor(size?: number) {\n super();\n if (size) {\n this.size(size);\n }\n }\n\n protected check(value: any) {\n if (!(value instanceof File) || !(value instanceof Blob)) {\n throw new Error(`Value should be a File or Blob, received ${typeof value}`);\n }\n }\n\n size(size: number) {\n return this.set('size', (v: any) => {\n if (!(v instanceof File) && !(v instanceof Blob)) {\n throw new Error(`Value should be a File or Blob, received ${typeof v}`);\n }\n if (v.size !== size) {\n throw new Error(`File size should be exactly ${size} bytes, received ${v.size} bytes`);\n }\n }, size);\n }\n\n minsize(size: number) {\n return this.set('minsize', (v: any) => {\n if (v.size < size) {\n throw new Error(`File size should be at least ${size} bytes, received ${v.size} bytes`);\n }\n }, size);\n }\n\n maxsize(size: number) {\n return this.set('maxsize', (v: any) => {\n if (v.size > size) {\n throw new Error(`File size should not exceed ${size} bytes, received ${v.size} bytes`);\n }\n }, size);\n }\n\n type(allowedTypes: string[]) {\n return this.set('type', (v: any) => {\n if (!allowedTypes.includes(v.type)) {\n throw new Error(`File type ${v.type} is not allowed. Allowed types are: ${allowedTypes.join(', ')}`);\n }\n }, allowedTypes);\n }\n\n extension(allowedExtensions: string[]) {\n return this.set('extension', (v: any) => {\n const ext = v.name.split('.').pop();\n if (!ext || !allowedExtensions.includes(ext)) {\n throw new Error(`File extension ${ext} is not allowed. Allowed extensions are: ${allowedExtensions.join(', ')}`);\n }\n }, allowedExtensions);\n }\n}\n\nexport default XVFile;"],"names":[],"mappings":"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"}
package/types/Json.mjs DELETED
@@ -1,11 +0,0 @@
1
- import XanvType from'../XanvType.mjs';class XVJson extends XanvType {
2
- constructor() {
3
- super(...arguments);
4
- this.name = 'XanvJson';
5
- }
6
- check(value) {
7
- if (typeof value !== 'object' || value === null || Array.isArray(value)) {
8
- throw new Error("Value is not a valid JSON object");
9
- }
10
- }
11
- }export{XVJson as default};//# sourceMappingURL=Json.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Json.mjs","sources":["../../src/types/Json.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\n\nclass XVJson extends XanvType<object> {\n name: string = 'XanvJson';\n protected check(value: any): void {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(\"Value is not a valid JSON object\");\n }\n }\n}\n\nexport default XVJson;"],"names":[],"mappings":"sCAEA,MAAM,MAAO,SAAQ,QAAgB,CAAA;AAArC,IAAA,WAAA,GAAA;;QACG,IAAA,CAAA,IAAI,GAAW,UAAU;IAM5B;AALa,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtE,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AACrD,QAAA;IACJ;AACF"}
package/types/Map.mjs DELETED
@@ -1,23 +0,0 @@
1
- import XanvType from'../XanvType.mjs';class XVMap extends XanvType {
2
- constructor(key, value) {
3
- super();
4
- this.key = key;
5
- this.value = value;
6
- }
7
- check(value) {
8
- if (!(value instanceof Map)) {
9
- throw new Error(`Value should be a Map, received ${typeof value}`);
10
- }
11
- for (const [k, v] of Array.from(value.entries())) {
12
- try {
13
- this.key.parse(k);
14
- this.value.parse(v);
15
- value.set(k, this.value.parse(v));
16
- }
17
- catch (error) {
18
- throw new Error(`Map entry should have key of type ${this.key.constructor.name} and value of type ${this.value.constructor.name}, received key: ${typeof k}, value: ${typeof v}`);
19
- }
20
- }
21
- return value;
22
- }
23
- }export{XVMap as default};//# sourceMappingURL=Map.mjs.map
package/types/Map.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Map.mjs","sources":["../../src/types/Map.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVMap<K = any, V = any> extends XanvType<Map<K, V>> {\n private key: XVInstanceType;\n private value: XVInstanceType;\n\n constructor(key: XVInstanceType, value: XVInstanceType) {\n super();\n this.key = key;\n this.value = value;\n }\n\n protected check(value: any) {\n if (!(value instanceof Map)) {\n throw new Error(`Value should be a Map, received ${typeof value}`);\n }\n\n for (const [k, v] of Array.from(value.entries())) {\n try {\n this.key.parse(k);\n this.value.parse(v);\n value.set(k, this.value.parse(v));\n } catch (error) {\n throw new Error(`Map entry should have key of type ${this.key.constructor.name} and value of type ${this.value.constructor.name}, received key: ${typeof k}, value: ${typeof v}`);\n }\n }\n\n return value;\n }\n\n\n}\n\nexport default XVMap;"],"names":[],"mappings":"sCAGA,MAAM,KAAwB,SAAQ,QAAmB,CAAA;IAItD,WAAA,CAAY,GAAmB,EAAE,KAAqB,EAAA;AACnD,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACrB;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;AAED,QAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;YAC/C,IAAI;AACD,gBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,gBAAA,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,YAAA;AAAC,YAAA,OAAO,KAAK,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,CAAA,kCAAA,EAAqC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA,gBAAA,EAAmB,OAAO,CAAC,CAAA,SAAA,EAAY,OAAO,CAAC,CAAA,CAAE,CAAC;AACnL,YAAA;AACH,QAAA;AAED,QAAA,OAAO,KAAK;IACf;AAGF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Number.mjs","sources":["../../src/types/Number.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\n\nclass XVNumber<T extends number = number> extends XanvType<T> {\n\n constructor(length?: number) {\n super();\n if (length) {\n this.length(length);\n }\n }\n\n protected check(value: any): void {\n if (typeof value !== 'number') {\n throw new Error(`Value should be a number, received ${typeof value}`);\n }\n }\n\n length(value: number) {\n return this.set(\"length\", (v: any) => {\n const n = Number(v);\n if (n.toString().length !== value) {\n throw new Error(`Number length should be ${value} digits, received ${n.toString().length}`);\n }\n }, value);\n }\n\n min(value: number) {\n return this.set(\"min\", (v: any) => {\n const n = Number(v);\n if (n < value) {\n throw new Error(`Minimum value should be ${value}`);\n }\n }, value);\n }\n\n max(value: number) {\n return this.set(\"max\", (v: any) => {\n const n = Number(v);\n if (n > value) {\n throw new Error(`Maximum value should be ${value}`);\n }\n }, value);\n }\n\n positive() {\n return this.set(\"positive\", (v: any) => {\n const n = Number(v);\n if (n < 0) {\n throw new Error(`Value should be positive`);\n }\n });\n }\n\n negative() {\n return this.set(\"negative\", (v: any) => {\n const n = Number(v);\n if (n > 0) {\n throw new Error(`Value should be negative`);\n }\n });\n }\n\n integer() {\n return this.set(\"integer\", v => {\n if (!Number.isInteger(v)) {\n throw new Error(`Value should be an integer`);\n }\n });\n }\n\n float() {\n return this.set(\"float\", v => {\n if (!Number.isFinite(v) || Number.isInteger(v)) {\n throw new Error(`Value should be a float`);\n }\n });\n }\n\n}\n\nexport default XVNumber;"],"names":[],"mappings":"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"}
package/types/Object.mjs DELETED
@@ -1,26 +0,0 @@
1
- import XanvType from'../XanvType.mjs';class XVObject extends XanvType {
2
- constructor(arg) {
3
- super();
4
- if (arg && (typeof arg !== 'object' || arg === null || Array.isArray(arg))) {
5
- throw new Error("Argument should be a non-null object");
6
- }
7
- this.arg = arg;
8
- }
9
- check(value) {
10
- if (typeof value !== 'object' || value === null || Array.isArray(value)) {
11
- throw new Error(`Value should be an object, received ${typeof value}`);
12
- }
13
- if (this.arg) {
14
- for (const key in this.arg) {
15
- const itemType = this.arg[key];
16
- try {
17
- value[key] = itemType.parse(value[key]);
18
- }
19
- catch (error) {
20
- throw new Error(`Property '${key}' should be of type ${itemType.constructor.name}, received ${typeof value[key]}`);
21
- }
22
- }
23
- }
24
- return value;
25
- }
26
- }export{XVObject as default};//# sourceMappingURL=Object.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Object.mjs","sources":["../../src/types/Object.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVObjectType } from \"../types\";\n\nclass XVObject<T = Record<any, any>> extends XanvType<T> {\n private arg?: XVObjectType;\n\n constructor(arg?: XVObjectType) {\n super();\n if (arg && (typeof arg !== 'object' || arg === null || Array.isArray(arg))) {\n throw new Error(\"Argument should be a non-null object\");\n }\n this.arg = arg;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(`Value should be an object, received ${typeof value}`);\n }\n\n if (this.arg) {\n for (const key in this.arg) {\n const itemType = this.arg[key];\n try {\n value[key] = itemType.parse(value[key]);\n } catch (error: any) {\n throw new Error(`Property '${key}' should be of type ${itemType.constructor.name}, received ${typeof value[key]}`);\n }\n }\n }\n return value;\n }\n\n}\n\nexport default XVObject;\n"],"names":[],"mappings":"sCAGA,MAAM,QAA+B,SAAQ,QAAW,CAAA;AAGrD,IAAA,WAAA,CAAY,GAAkB,EAAA;AAC3B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACzE,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACzD,QAAA;AACD,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACjB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtE,MAAM,IAAI,KAAK,CAAC,CAAA,oCAAA,EAAuC,OAAO,KAAK,CAAA,CAAE,CAAC;AACxE,QAAA;QAED,IAAI,IAAI,CAAC,GAAG,EAAE;AACX,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC9B,IAAI;AACD,oBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzC,gBAAA;AAAC,gBAAA,OAAO,KAAU,EAAE;AAClB,oBAAA,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAA,oBAAA,EAAuB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACpH,gBAAA;AACH,YAAA;AACH,QAAA;AACD,QAAA,OAAO,KAAK;IACf;AAEF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Record.mjs","sources":["../../src/types/Record.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVRecord<K extends string = string, V = any> extends XanvType<Record<K, V>> {\n name: string = 'XanvRecord';\n private key: XVInstanceType;\n private value: XVInstanceType;\n\n constructor(key: XVInstanceType, value: XVInstanceType) {\n super();\n this.key = key;\n this.value = value;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(`Value should be a record, received ${typeof value}`);\n }\n\n for (const [k, v] of Object.entries(value)) {\n try {\n this.key.parse(k);\n this.value.parse(v);\n value[k] = this.value.parse(v);\n } catch (error) {\n throw new Error(`Record entry '${k}' should have key of type ${this.key.constructor.name} and value of type ${this.value.constructor.name}, received key: ${typeof k}, value: ${typeof v}`);\n }\n }\n return value;\n }\n\n}\n\nexport default XVRecord;"],"names":[],"mappings":"sCAGA,MAAM,QAA6C,SAAQ,QAAsB,CAAA;IAK9E,WAAA,CAAY,GAAmB,EAAE,KAAqB,EAAA;AACnD,QAAA,KAAK,EAAE;QALV,IAAA,CAAA,IAAI,GAAW,YAAY;AAMxB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACrB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtE,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,OAAO,KAAK,CAAA,CAAE,CAAC;AACvE,QAAA;AAED,QAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI;AACD,gBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,gBAAA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,YAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,cAAA,EAAiB,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA,gBAAA,EAAmB,OAAO,CAAC,CAAA,SAAA,EAAY,OAAO,CAAC,CAAA,CAAE,CAAC;AAC7L,YAAA;AACH,QAAA;AACD,QAAA,OAAO,KAAK;IACf;AAEF"}
package/types/Set.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Set.mjs","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":[],"mappings":"sCAGA,MAAM,KAAmB,SAAQ,QAAgB,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 +0,0 @@
1
- {"version":3,"file":"String.mjs","sources":["../../src/types/String.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\n\nclass XVString<T extends string = string> extends XanvType<T> {\n\n constructor(length?: number) {\n super();\n if (length) {\n this.length(length);\n }\n }\n\n protected check(value: any): void {\n if (typeof value !== 'string') {\n throw new Error(`Value should be a string, received ${typeof value}`);\n }\n }\n\n length(length: number) {\n return this.set(\"length\", (v: any) => {\n const s = v as string;\n if (s.length !== length) {\n throw new Error(`String length should be ${length} characters, received ${s.length}`);\n }\n }, length)\n }\n\n min(length: number) {\n return this.set(\"min\", (v: any) => {\n const s = v as string;\n if (s.length < length) {\n throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", (v: any) => {\n const s = v as string;\n if (s.length > length) {\n throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);\n }\n }, length);\n }\n\n email() {\n return this.set(\"email\", (v: any) => {\n const s = String(v);\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailRegex.test(s)) {\n throw new Error(`String should be a valid email address`);\n }\n });\n }\n\n uppercase() {\n return this.set(\"uppercase\", (v: any) => {\n const s = String(v);\n if (s !== s.toUpperCase()) {\n throw new Error(`String should be in uppercase`);\n }\n });\n }\n\n lowercase() {\n return this.set(\"lowercase\", (v: any) => {\n const s = String(v);\n if (s !== s.toLowerCase()) {\n throw new Error(`String should be in lowercase`);\n }\n });\n }\n\n number() {\n return this.set(\"number\", (v: any) => {\n const s = String(v);\n if (isNaN(Number(s))) {\n throw new Error(`String should be a valid number`);\n }\n });\n }\n\n date() {\n return this.set(\"date\", (v: any) => {\n const s = String(v);\n const date = new Date(s);\n if (isNaN(date.getTime())) {\n throw new Error(`String should be a valid date`);\n }\n });\n }\n\n base64() {\n return this.set(\"base64\", (v: any) => {\n const s = String(v);\n if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {\n throw new Error(`String should be a valid Base64 encoded string`);\n }\n });\n }\n\n}\n\nexport default XVString;\n\n"],"names":[],"mappings":"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"}
package/types/Tuple.mjs DELETED
@@ -1,23 +0,0 @@
1
- import XanvType from'../XanvType.mjs';class XVTuple extends XanvType {
2
- constructor(type) {
3
- super();
4
- this.type = type;
5
- }
6
- check(value) {
7
- if (!Array.isArray(value)) {
8
- throw new Error(`Value should be a tuple, received ${typeof value}`);
9
- }
10
- if (value.length !== this.type.length) {
11
- throw new Error(`Tuple length should be ${this.type.length}, received ${value.length}`);
12
- }
13
- for (let i = 0; i < value.length; i++) {
14
- try {
15
- value[i] = this.type[i].parse(value[i]);
16
- }
17
- catch (error) {
18
- throw new Error(`Tuple item at index ${i} should be of type ${this.type[i].constructor.name}, received ${typeof value[i]}`);
19
- }
20
- }
21
- return value;
22
- }
23
- }export{XVTuple as default};//# sourceMappingURL=Tuple.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tuple.mjs","sources":["../../src/types/Tuple.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVTuple<T extends any[] = any[]> extends XanvType<T> {\n private type: XVInstanceType[];\n\n constructor(type: XVInstanceType[]) {\n super();\n this.type = type;\n }\n\n protected check(value: any) {\n if (!Array.isArray(value)) {\n throw new Error(`Value should be a tuple, received ${typeof value}`);\n }\n\n if (value.length !== this.type.length) {\n throw new Error(`Tuple length should be ${this.type.length}, received ${value.length}`);\n }\n\n for (let i = 0; i < value.length; i++) {\n try {\n value[i] = this.type[i].parse(value[i]);\n } catch (error: any) {\n throw new Error(`Tuple item at index ${i} should be of type ${this.type[i].constructor.name}, received ${typeof value[i]}`);\n }\n }\n return value;\n }\n\n}\n\nexport default XVTuple;"],"names":[],"mappings":"sCAGA,MAAM,OAAiC,SAAQ,QAAW,CAAA;AAGvD,IAAA,WAAA,CAAY,IAAsB,EAAA;AAC/B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IACnB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,CAAA,kCAAA,EAAqC,OAAO,KAAK,CAAA,CAAE,CAAC;AACtE,QAAA;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpC,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,cAAc,KAAK,CAAC,MAAM,CAAA,CAAE,CAAC;AACzF,QAAA;AAED,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI;AACD,gBAAA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA;AAAC,YAAA,OAAO,KAAU,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,oBAAA,EAAuB,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC7H,YAAA;AACH,QAAA;AACD,QAAA,OAAO,KAAK;IACf;AAEF"}
package/types/Union.mjs DELETED
@@ -1,28 +0,0 @@
1
- import XanvType from'../XanvType.mjs';class XVUnion extends XanvType {
2
- constructor(type) {
3
- super();
4
- this.type = type;
5
- }
6
- check(value) {
7
- if (!Array.isArray(value)) {
8
- throw new Error(`Value should be an array, received ${typeof value}`);
9
- }
10
- if (value.length !== this.type.length) {
11
- throw new Error(`Union length should be ${this.type.length}, received ${value.length}`);
12
- }
13
- let match = false;
14
- for (const t of this.type) {
15
- try {
16
- value = t.parse(value);
17
- match = true;
18
- break; // If one type matches, we can stop checking
19
- }
20
- catch (e) {
21
- // Ignore the error and continue checking other types
22
- }
23
- }
24
- if (!match) {
25
- throw new Error(`Value does not match any of the union types: ${this.type.map(t => t.constructor.name).join(', ')}`);
26
- }
27
- }
28
- }export{XVUnion as default};//# sourceMappingURL=Union.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Union.mjs","sources":["../../src/types/Union.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVUnion<T = any> extends XanvType<T> {\n private type: XVInstanceType[];\n\n constructor(type: XVInstanceType[]) {\n super();\n this.type = type;\n }\n\n protected check(value: any): void {\n if (!Array.isArray(value)) {\n throw new Error(`Value should be an array, received ${typeof value}`);\n }\n\n if (value.length !== this.type.length) {\n throw new Error(`Union length should be ${this.type.length}, received ${value.length}`);\n }\n\n let match = false;\n\n for (const t of this.type) {\n try {\n value = t.parse(value);\n match = true;\n break; // If one type matches, we can stop checking\n } catch (e) {\n // Ignore the error and continue checking other types\n }\n }\n\n if (!match) {\n throw new Error(`Value does not match any of the union types: ${this.type.map(t => t.constructor.name).join(', ')}`);\n }\n }\n\n}\n\nexport default XVUnion;"],"names":[],"mappings":"sCAGA,MAAM,OAAiB,SAAQ,QAAW,CAAA;AAGvC,IAAA,WAAA,CAAY,IAAsB,EAAA;AAC/B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IACnB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,OAAO,KAAK,CAAA,CAAE,CAAC;AACvE,QAAA;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpC,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,cAAc,KAAK,CAAC,MAAM,CAAA,CAAE,CAAC;AACzF,QAAA;QAED,IAAI,KAAK,GAAG,KAAK;AAEjB,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YACxB,IAAI;AACD,gBAAA,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtB,KAAK,GAAG,IAAI;AACZ,gBAAA,MAAM;AACR,YAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEX,YAAA;AACH,QAAA;QAED,IAAI,CAAC,KAAK,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,CAAA,6CAAA,EAAgD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACtH,QAAA;IACJ;AAEF"}