ejv 1.1.11 → 2.0.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 (75) hide show
  1. package/.eslintrc.json +88 -0
  2. package/.mocharc.json +8 -0
  3. package/CHANGELOG.md +109 -68
  4. package/LICENSE +21 -21
  5. package/README-KR.md +596 -592
  6. package/README.md +599 -595
  7. package/build/{constants.js → cjs/constants.js} +44 -45
  8. package/build/cjs/constants.js.map +1 -0
  9. package/build/cjs/ejv.js +1263 -0
  10. package/build/cjs/ejv.js.map +1 -0
  11. package/build/{public_api.js → cjs/index.js} +4 -4
  12. package/build/cjs/index.js.map +1 -0
  13. package/build/cjs/interfaces.js +29 -0
  14. package/build/cjs/interfaces.js.map +1 -0
  15. package/build/cjs/package.json +1 -0
  16. package/build/{tester.js → cjs/tester.js} +87 -82
  17. package/build/cjs/tester.js.map +1 -0
  18. package/build/cjs/util.js +103 -0
  19. package/build/cjs/util.js.map +1 -0
  20. package/build/constants.d.ts +36 -39
  21. package/build/esm/constants.js +115 -0
  22. package/build/esm/constants.js.map +1 -0
  23. package/build/esm/ejv.js +1261 -0
  24. package/build/esm/ejv.js.map +1 -0
  25. package/build/esm/index.js +4 -0
  26. package/build/esm/index.js.map +1 -0
  27. package/build/esm/interfaces.js +33 -0
  28. package/build/esm/interfaces.js.map +1 -0
  29. package/build/esm/package.json +1 -0
  30. package/build/esm/tester.js +240 -0
  31. package/build/esm/tester.js.map +1 -0
  32. package/build/esm/util.js +96 -0
  33. package/build/esm/util.js.map +1 -0
  34. package/build/index.d.ts +3 -0
  35. package/build/interfaces.d.ts +53 -13
  36. package/build/scripts/add-js-extensions.js +46 -0
  37. package/build/scripts/add-js-extensions.js.map +1 -0
  38. package/build/tester.d.ts +16 -17
  39. package/build/util.d.ts +7 -1
  40. package/package.json +50 -39
  41. package/scripts/add-js-extensions.ts +59 -0
  42. package/spec/ArrayScheme.ts +1021 -0
  43. package/spec/CommonScheme.ts +251 -0
  44. package/spec/DateScheme.ts +472 -0
  45. package/spec/NumberScheme.ts +1032 -0
  46. package/spec/ObjectScheme.ts +499 -0
  47. package/spec/RegExpScheme.ts +112 -0
  48. package/spec/StringScheme.ts +1239 -0
  49. package/spec/common-test-util.ts +63 -0
  50. package/spec/ejv.spec.ts +209 -4634
  51. package/spec/testers.spec.ts +833 -832
  52. package/src/constants.ts +155 -156
  53. package/src/ejv.ts +1648 -1071
  54. package/src/index.ts +14 -0
  55. package/src/interfaces.ts +149 -63
  56. package/src/tester.ts +308 -302
  57. package/src/util.ts +124 -59
  58. package/tsconfig.cjs.json +8 -0
  59. package/tsconfig.esm.json +7 -0
  60. package/tsconfig.json +22 -19
  61. package/tsconfig.scripts.json +14 -0
  62. package/tsconfig.types.json +9 -0
  63. package/build/constants.js.map +0 -1
  64. package/build/ejv.js +0 -687
  65. package/build/ejv.js.map +0 -1
  66. package/build/interfaces.js +0 -15
  67. package/build/interfaces.js.map +0 -1
  68. package/build/public_api.d.ts +0 -3
  69. package/build/public_api.js.map +0 -1
  70. package/build/tester.js.map +0 -1
  71. package/build/util.js +0 -68
  72. package/build/util.js.map +0 -1
  73. package/spec/common-test-runner.ts +0 -17
  74. package/src/public_api.ts +0 -3
  75. package/tsconfig.spec.json +0 -19
package/src/constants.ts CHANGED
@@ -1,156 +1,155 @@
1
- export enum DataType {
2
- BOOLEAN = 'boolean',
3
- NUMBER = 'number',
4
- STRING = 'string',
5
- OBJECT = 'object',
6
- DATE = 'date',
7
- REGEXP = 'regexp',
8
- ARRAY = 'array'
9
- }
10
-
11
- export enum NumberFormat {
12
- INTEGER = 'integer',
13
- INDEX = 'index'
14
- }
15
-
16
- export enum StringFormat {
17
- EMAIL = 'email',
18
-
19
- DATE = 'date',
20
- DATE_TIME = 'date-time',
21
- TIME = 'time',
22
-
23
- // URL = 'url',
24
-
25
- // IP = 'ip', // ipv4 || ipv6
26
- // IPV4 = 'ipv4',
27
- // IPV6 = 'ipv6'
28
- }
29
-
30
- export const ErrorMsgCursorA : string = '<<A>>';
31
-
32
- export enum ErrorType {
33
- REQUIRED = 'REQUIRED',
34
-
35
- TYPE_MISMATCH = 'TYPE_MISMATCH',
36
- TYPE_MISMATCH_ONE_OF = 'TYPE_MISMATCH_ONE_OF',
37
-
38
- ONE_OF = 'ONE_OF',
39
- NOT_ONE_OF = 'NOT_ONE_OF',
40
-
41
- FORMAT = 'FORMAT',
42
- FORMAT_ONE_OF = 'FORMAT_ONE_OF',
43
-
44
- GREATER_THAN_OR_EQUAL = 'GREATER_THAN_OR_EQUAL',
45
- GREATER_THAN = 'GREATER_THAN',
46
-
47
- SMALLER_THAN_OR_EQUAL = 'SMALLER_THAN_OR_EQUAL',
48
- SMALLER_THAN = 'SMALLER_THAN',
49
-
50
- LENGTH = 'LENGTH',
51
- MIN_LENGTH = 'MIN_LENGTH',
52
- MAX_LENGTH = 'MAX_LENGTH',
53
-
54
- PATTERN = 'PATTERN',
55
- PATTERN_ONE_OF = 'PATTERN_ONE_OF',
56
-
57
- NO_PROPERTY = 'NO_PROPERTY',
58
-
59
- AFTER_OR_SAME_DATE = 'AFTER_OR_SAME_DATE',
60
- AFTER_DATE = 'AFTER_DATE',
61
-
62
- BEFORE_OR_SAME_DATE = 'BEFORE_OR_SAME_DATE',
63
- BEFORE_DATE = 'BEFORE_DATE',
64
-
65
- UNIQUE_ITEMS = 'UNIQUE_ITEMS',
66
-
67
- ITEMS_TYPE = 'ITEMS_TYPE',
68
- ITEMS_SCHEMES = 'ITEMS_SCHEMES'
69
- }
70
-
71
- export enum ErrorMsg {
72
- // about Error
73
- NO_DATA = 'no data to validate',
74
-
75
- NO_SCHEME = 'no scheme',
76
- NO_ARRAY_SCHEME = 'schemes should be array',
77
- NO_OBJECT_ARRAY_SCHEME = 'schemes should be array of object',
78
-
79
- EMPTY_SCHEME = 'scheme should not be empty',
80
- SCHEMES_SHOULD_HAVE_TYPE = 'scheme should have type',
81
- SCHEMES_HAS_INVALID_TYPE = 'schemes has invalid type : <<A>>',
82
- SCHEMES_HAS_DUPLICATED_TYPE = 'schemes has duplicated type : <<A>>',
83
-
84
- ENUM_SHOULD_BE_ARRAY = 'enum should be array',
85
- ENUM_SHOULD_BE_NUMBERS = 'enum values should be numbers',
86
- ENUM_SHOULD_BE_STRINGS = 'enum values should be strings',
87
-
88
- ENUM_REVERSE_SHOULD_BE_ARRAY = 'enumReverse should be array',
89
- ENUM_REVERSE_SHOULD_BE_NUMBERS = 'enumReverse values should be numbers',
90
- ENUM_REVERSE_SHOULD_BE_STRINGS = 'enumReverse values should be strings',
91
-
92
- MIN_SHOULD_BE_NUMBER = 'min should be number',
93
- EXCLUSIVE_MIN_SHOULD_BE_BOOLEAN = 'exclusiveMin should be a boolean',
94
-
95
- MAX_SHOULD_BE_NUMBER = 'max should be number',
96
- EXCLUSIVE_MAX_SHOULD_BE_BOOLEAN = 'exclusiveMax should be a boolean',
97
-
98
- INVALID_NUMBER_FORMAT = 'invalid number format : <<A>>',
99
- INVALID_STRING_FORMAT = 'invalid string format : <<A>>',
100
- INVALID_STRING_PATTERN = 'invalid string pattern : <<A>>',
101
-
102
- LENGTH_SHOULD_BE_INTEGER = 'length should be a integer',
103
- MIN_LENGTH_SHOULD_BE_INTEGER = 'minLength should be a integer',
104
- MAX_LENGTH_SHOULD_BE_INTEGER = 'maxLength should be a integer',
105
-
106
- PROPERTIES_SHOULD_BE_ARRAY = 'properties should be array',
107
- PROPERTIES_SHOULD_HAVE_ITEMS = 'properties should have items',
108
- PROPERTIES_SHOULD_BE_ARRAY_OF_OBJECT = 'properties should be array of object',
109
-
110
- ALLOW_NO_PROPERTY_SHOULD_BE_BOOLEAN = 'allowNoProperty should be a boolean',
111
-
112
- MIN_DATE_SHOULD_BE_DATE_OR_STRING = 'min should be Date or string representing date',
113
- MAX_DATE_SHOULD_BE_DATE_OR_STRING = 'max should be Date or string representing date',
114
-
115
- UNIQUE_SHOULD_BE_BOOLEAN = 'unique should be a boolean',
116
-
117
- INVALID_ITEMS_SCHEME = 'invalid schemes of array items : <<A>>',
118
-
119
- // about EjvError
120
- REQUIRED = 'required',
121
-
122
- TYPE_MISMATCH = 'the value should be a <<A>>',
123
- TYPE_MISMATCH_ONE_OF = 'the value should be one of <<A>>',
124
-
125
- ONE_OF = 'the value should be one of <<A>>', // enum
126
- NOT_ONE_OF = 'the value should be not one of <<A>>', // enumReverse
127
-
128
- FORMAT = 'the value should be a form of <<A>>', // format
129
- FORMAT_ONE_OF = 'the value should be form of one of <<A>>',
130
-
131
- GREATER_THAN_OR_EQUAL = 'the value should be greater or equal than <<A>>', // min
132
- GREATER_THAN = 'the value should be greater than <<A>>', // min
133
-
134
- SMALLER_THAN_OR_EQUAL = 'the value should be smaller or equal than <<A>>', // max
135
- SMALLER_THAN = 'the value should be smaller than <<A>>', // max
136
-
137
- LENGTH = 'the value should be length of <<A>>', // length
138
- MIN_LENGTH = 'the value should be longer than <<A>>', // minLength
139
- MAX_LENGTH = 'the value should be shorter than <<A>>', // maxLength
140
-
141
- PATTERN = 'the value should be pattern of <<A>>', // pattern
142
- PATTERN_ONE_OF = 'the value should be one of pattern of <<A>>', // pattern
143
-
144
- NO_PROPERTY = 'the value should have property',
145
-
146
- AFTER_OR_SAME_DATE = 'the value should be after or same date than <<A>>', // date
147
- AFTER_DATE = 'the value should be after date than <<A>>', // date
148
-
149
- BEFORE_OR_SAME_DATE = 'the value should be before or same date than <<A>>', // date
150
- BEFORE_DATE = 'the value should be before date than <<A>>', // date
151
-
152
- UNIQUE_ITEMS = 'the array should be unique items',
153
-
154
- ITEMS_TYPE = 'the array should have items in type of <<A>>',
155
- ITEMS_SCHEMES = 'the array should have items matched with schemes of <<A>>'
156
- }
1
+ export enum DataType {
2
+ BOOLEAN = 'boolean',
3
+ NUMBER = 'number',
4
+ STRING = 'string',
5
+ OBJECT = 'object',
6
+ DATE = 'date',
7
+ REGEXP = 'regexp',
8
+ ARRAY = 'array'
9
+ }
10
+
11
+ export enum NumberFormat {
12
+ INTEGER = 'integer',
13
+ INDEX = 'index'
14
+ }
15
+
16
+ export enum StringFormat {
17
+ EMAIL = 'email',
18
+
19
+ DATE = 'date',
20
+ DATE_TIME = 'date-time',
21
+ TIME = 'time',
22
+
23
+ // URL = 'url',
24
+
25
+ // IP = 'ip', // ipv4 || ipv6
26
+ // IPV4 = 'ipv4',
27
+ // IPV6 = 'ipv6'
28
+ }
29
+
30
+ export enum ErrorType {
31
+ // about ejv() running
32
+ NO_DATA = 'NO_DATA',
33
+
34
+ NO_SCHEME = 'NO_SCHEME',
35
+ INVALID_SCHEMES = 'INVALID_SCHEMES',
36
+
37
+ // not match with scheme
38
+ REQUIRED = 'REQUIRED',
39
+
40
+ TYPE_MISMATCH = 'TYPE_MISMATCH',
41
+ TYPE_MISMATCH_ONE_OF = 'TYPE_MISMATCH_ONE_OF',
42
+
43
+ ONE_OF = 'ONE_OF',
44
+
45
+ FORMAT = 'FORMAT',
46
+ FORMAT_ONE_OF = 'FORMAT_ONE_OF',
47
+
48
+ BIGGER_THAN_OR_EQUAL = 'BIGGER_THAN_OR_EQUAL',
49
+ BIGGER_THAN = 'BIGGER_THAN',
50
+
51
+ SMALLER_THAN_OR_EQUAL = 'SMALLER_THAN_OR_EQUAL',
52
+ SMALLER_THAN = 'SMALLER_THAN',
53
+
54
+ LENGTH = 'LENGTH',
55
+ MIN_LENGTH = 'MIN_LENGTH',
56
+ MAX_LENGTH = 'MAX_LENGTH',
57
+
58
+ PATTERN = 'PATTERN',
59
+ PATTERN_ONE_OF = 'PATTERN_ONE_OF',
60
+
61
+ PROPERTY = 'PROPERTY',
62
+
63
+ AFTER_OR_SAME_DATE = 'AFTER_OR_SAME_DATE',
64
+ AFTER_DATE = 'AFTER_DATE',
65
+
66
+ BEFORE_OR_SAME_DATE = 'BEFORE_OR_SAME_DATE',
67
+ BEFORE_DATE = 'BEFORE_DATE',
68
+
69
+ UNIQUE_ITEMS = 'UNIQUE_ITEMS',
70
+
71
+ ITEMS_TYPE = 'ITEMS_TYPE',
72
+ ITEMS_SCHEMES = 'ITEMS_SCHEMES'
73
+ }
74
+
75
+ export enum ErrorMsg {
76
+ // about Error
77
+ NO_DATA = 'no data to validate',
78
+
79
+ NO_SCHEME = 'no scheme',
80
+ NO_ARRAY_SCHEME = 'schemes should be array',
81
+ NO_OBJECT_ARRAY_SCHEME = 'schemes should be array of object',
82
+
83
+ EMPTY_SCHEME = 'schemes should not be empty',
84
+ SCHEMES_SHOULD_HAVE_TYPE = 'schemes should have type',
85
+ SCHEMES_HAS_INVALID_TYPE = 'schemes has invalid type: <<1>>',
86
+ SCHEMES_HAS_DUPLICATED_TYPE = 'schemes has duplicated type: <<1>>',
87
+
88
+ ENUM_SHOULD_BE_ARRAY = 'enum should be array',
89
+ ENUM_SHOULD_BE_NUMBERS = 'enum values should be numbers',
90
+ ENUM_SHOULD_BE_STRINGS = 'enum values should be strings',
91
+
92
+ MIN_SHOULD_BE_NUMBER = 'min should be number',
93
+ EXCLUSIVE_MIN_SHOULD_BE_BOOLEAN = 'exclusiveMin should be a boolean',
94
+
95
+ MAX_SHOULD_BE_NUMBER = 'max should be number',
96
+ EXCLUSIVE_MAX_SHOULD_BE_BOOLEAN = 'exclusiveMax should be a boolean',
97
+
98
+ INVALID_NUMBER_FORMAT = 'invalid number format: <<1>>',
99
+ INVALID_STRING_FORMAT = 'invalid string format: <<1>>',
100
+ INVALID_STRING_PATTERN = 'invalid string pattern: <<1>>',
101
+
102
+ LENGTH_SHOULD_BE_INTEGER = 'length should be a integer',
103
+ MIN_LENGTH_SHOULD_BE_INTEGER = 'minLength should be a integer',
104
+ MAX_LENGTH_SHOULD_BE_INTEGER = 'maxLength should be a integer',
105
+
106
+ PROPERTIES_SHOULD_BE_ARRAY = 'properties should be array',
107
+ PROPERTIES_SHOULD_HAVE_ITEMS = 'properties should have items',
108
+ PROPERTIES_SHOULD_BE_ARRAY_OF_OBJECT = 'properties should be array of object',
109
+
110
+ ALLOW_NO_PROPERTY_SHOULD_BE_BOOLEAN = 'allowNoProperty should be a boolean',
111
+
112
+ MIN_DATE_SHOULD_BE_DATE_OR_STRING = 'min should be Date or string representing date',
113
+ MAX_DATE_SHOULD_BE_DATE_OR_STRING = 'max should be Date or string representing date',
114
+
115
+ UNIQUE_SHOULD_BE_BOOLEAN = 'unique should be a boolean',
116
+
117
+ INVALID_ITEMS_SCHEME = 'invalid schemes of array items: <<1>>',
118
+
119
+ // about EjvError
120
+ REQUIRED = 'value is required',
121
+
122
+ TYPE_MISMATCH = 'the value should be a <<1>>',
123
+ TYPE_MISMATCH_ONE_OF = 'the value should be type of <<1>>',
124
+
125
+ ONE_VALUE_OF = 'the value should be one of <<1>>', // enum
126
+
127
+ FORMAT = 'the value should be a form of <<1>>', // format
128
+ FORMAT_ONE_OF = 'the value should be form of one of <<1>>',
129
+
130
+ BIGGER_THAN_OR_EQUAL = 'the value should be bigger or equal than <<1>>', // min
131
+ BIGGER_THAN = 'the value should be bigger than <<1>>', // min
132
+
133
+ SMALLER_THAN_OR_EQUAL = 'the value should be smaller or equal than <<1>>', // max
134
+ SMALLER_THAN = 'the value should be smaller than <<1>>', // max
135
+
136
+ LENGTH = 'the value should be length of <<1>>', // length
137
+ MIN_LENGTH = 'the value should be longer than <<1>>', // minLength
138
+ MAX_LENGTH = 'the value should be shorter than <<1>>', // maxLength
139
+
140
+ PATTERN = 'the value should be pattern of <<1>>', // pattern
141
+ PATTERN_ONE_OF = 'the value should be one of pattern of <<1>>', // pattern
142
+
143
+ PROPERTY = 'the value should have property',
144
+
145
+ AFTER_OR_SAME_DATE = 'the value should be after or same date than <<1>>', // date
146
+ AFTER_DATE = 'the value should be after date than <<1>>', // date
147
+
148
+ BEFORE_OR_SAME_DATE = 'the value should be before or same date than <<1>>', // date
149
+ BEFORE_DATE = 'the value should be before date than <<1>>', // date
150
+
151
+ UNIQUE_ITEMS = 'the array should be unique items',
152
+
153
+ ITEMS_TYPE = 'the array should have items in type of <<1>>',
154
+ ITEMS_SCHEMES = 'the array should have items matched with schemes of <<1>>'
155
+ }