vortez 5.0.2 → 6.0.0-dev.1

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 (143) hide show
  1. package/build/Template/Template.d.ts +0 -5
  2. package/build/Template/Template.js +5 -5
  3. package/build/Template/Template.js.map +1 -1
  4. package/build/Vortez.d.ts +2 -2
  5. package/build/Vortez.js +2 -2
  6. package/build/Vortez.js.map +1 -1
  7. package/build/beta/Mail.d.ts +2 -8
  8. package/build/beta/Mail.js +7 -2
  9. package/build/beta/Mail.js.map +1 -1
  10. package/build/server/Cookie.d.ts +9 -5
  11. package/build/server/Cookie.js +28 -24
  12. package/build/server/Cookie.js.map +1 -1
  13. package/build/server/LoggerManager.d.ts +1 -1
  14. package/build/server/LoggerManager.js +5 -5
  15. package/build/server/LoggerManager.js.map +1 -1
  16. package/build/server/Response.js +11 -11
  17. package/build/server/Response.js.map +1 -1
  18. package/build/server/Server.js +4 -4
  19. package/build/server/Server.js.map +1 -1
  20. package/build/server/ServerDebug.d.ts +1 -1
  21. package/build/server/ServerDebug.js +1 -1
  22. package/build/server/ServerDebug.js.map +1 -1
  23. package/build/server/config/Config.d.ts +7 -7
  24. package/build/server/config/Config.js +4 -3
  25. package/build/server/config/Config.js.map +1 -1
  26. package/build/server/config/Loader.js +5 -5
  27. package/build/server/config/Loader.js.map +1 -1
  28. package/build/server/router/HttpRule.d.ts +2 -2
  29. package/build/server/router/HttpRule.js +1 -1
  30. package/build/server/router/HttpRule.js.map +1 -1
  31. package/build/server/router/Router.d.ts +1 -1
  32. package/build/server/router/Router.js +5 -5
  33. package/build/server/router/Router.js.map +1 -1
  34. package/build/server/router/Rule.d.ts +1 -1
  35. package/build/server/router/WsRule.d.ts +2 -2
  36. package/build/server/router/WsRule.js +2 -2
  37. package/build/server/router/WsRule.js.map +1 -1
  38. package/build/server/router/algorithm/Algorithm.d.ts +1 -1
  39. package/build/server/router/algorithm/Algorithm.js +2 -2
  40. package/build/server/router/algorithm/Algorithm.js.map +1 -1
  41. package/build/server/router/algorithm/FIFO.d.ts +1 -1
  42. package/build/server/router/algorithm/FIFO.js +2 -2
  43. package/build/server/router/algorithm/FIFO.js.map +1 -1
  44. package/build/server/router/algorithm/Tree.d.ts +1 -1
  45. package/build/server/router/algorithm/Tree.js.map +1 -1
  46. package/build/server/router/middleware/Middleware.d.ts +5 -5
  47. package/build/server/router/middleware/WsMiddleware.d.ts +4 -4
  48. package/build/server/router/middleware/WsMiddleware.js +24 -23
  49. package/build/server/router/middleware/WsMiddleware.js.map +1 -1
  50. package/build/server/security/PathSecurity.js +5 -5
  51. package/build/server/security/PathSecurity.js.map +1 -1
  52. package/build/server/websocket/Codec.d.ts +128 -0
  53. package/build/server/websocket/Codec.js +192 -0
  54. package/build/server/websocket/Codec.js.map +1 -0
  55. package/build/server/websocket/Websocket.d.ts +38 -84
  56. package/build/server/websocket/Websocket.js +41 -221
  57. package/build/server/websocket/Websocket.js.map +1 -1
  58. package/build/server/websocket/WebsocketBase.d.ts +130 -0
  59. package/build/server/websocket/WebsocketBase.js +272 -0
  60. package/build/server/websocket/WebsocketBase.js.map +1 -0
  61. package/build/server/websocket/WebsocketCSInit.d.ts +57 -0
  62. package/build/server/websocket/WebsocketCSInit.js +95 -0
  63. package/build/server/websocket/WebsocketCSInit.js.map +1 -0
  64. package/build/server/websocket/WebsocketSSInit.d.ts +24 -0
  65. package/build/server/websocket/WebsocketSSInit.js +46 -0
  66. package/build/server/websocket/WebsocketSSInit.js.map +1 -0
  67. package/build/server/websocket/frame/Frame.d.ts +31 -0
  68. package/build/server/websocket/frame/Frame.js +45 -0
  69. package/build/server/websocket/frame/Frame.js.map +1 -0
  70. package/build/server/websocket/frame/Header.d.ts +31 -0
  71. package/build/server/websocket/frame/Header.js +31 -0
  72. package/build/server/websocket/frame/Header.js.map +1 -0
  73. package/build/server/websocket/frame/HeaderParser.d.ts +58 -0
  74. package/build/server/websocket/frame/HeaderParser.js +109 -0
  75. package/build/server/websocket/frame/HeaderParser.js.map +1 -0
  76. package/build/server/websocket/handshake/CSHandshaker.d.ts +46 -0
  77. package/build/server/websocket/handshake/CSHandshaker.js +122 -0
  78. package/build/server/websocket/handshake/CSHandshaker.js.map +1 -0
  79. package/build/server/websocket/handshake/SSHandshaker.d.ts +57 -0
  80. package/build/server/websocket/handshake/SSHandshaker.js +113 -0
  81. package/build/server/websocket/handshake/SSHandshaker.js.map +1 -0
  82. package/build/server/websocket/messageAssembler/Message.d.ts +21 -0
  83. package/build/server/websocket/messageAssembler/Message.js +20 -0
  84. package/build/server/websocket/messageAssembler/Message.js.map +1 -0
  85. package/build/server/websocket/messageAssembler/MessageAssembler.d.ts +25 -0
  86. package/build/server/websocket/messageAssembler/MessageAssembler.js +47 -0
  87. package/build/server/websocket/messageAssembler/MessageAssembler.js.map +1 -0
  88. package/changes.md +28 -0
  89. package/package.json +6 -1
  90. package/build/logger/Debug.d.ts +0 -174
  91. package/build/logger/Debug.js +0 -295
  92. package/build/logger/Debug.js.map +0 -1
  93. package/build/logger/Logger.d.ts +0 -38
  94. package/build/logger/Logger.js +0 -48
  95. package/build/logger/Logger.js.map +0 -1
  96. package/build/server/websocket/Chunk.d.ts +0 -36
  97. package/build/server/websocket/Chunk.js +0 -81
  98. package/build/server/websocket/Chunk.js.map +0 -1
  99. package/build/utilities/ConsoleUI.d.ts +0 -89
  100. package/build/utilities/ConsoleUI.js +0 -142
  101. package/build/utilities/ConsoleUI.js.map +0 -1
  102. package/build/utilities/DebugUI.d.ts +0 -66
  103. package/build/utilities/DebugUI.js +0 -98
  104. package/build/utilities/DebugUI.js.map +0 -1
  105. package/build/utilities/Encoding.d.ts +0 -22
  106. package/build/utilities/Encoding.js +0 -26
  107. package/build/utilities/Encoding.js.map +0 -1
  108. package/build/utilities/Env.d.ts +0 -81
  109. package/build/utilities/Env.js +0 -140
  110. package/build/utilities/Env.js.map +0 -1
  111. package/build/utilities/File.d.ts +0 -10
  112. package/build/utilities/File.js +0 -19
  113. package/build/utilities/File.js.map +0 -1
  114. package/build/utilities/Flatten.d.ts +0 -73
  115. package/build/utilities/Flatten.js +0 -76
  116. package/build/utilities/Flatten.js.map +0 -1
  117. package/build/utilities/Object.d.ts +0 -16
  118. package/build/utilities/Object.js +0 -48
  119. package/build/utilities/Object.js.map +0 -1
  120. package/build/utilities/Path.d.ts +0 -44
  121. package/build/utilities/Path.js +0 -69
  122. package/build/utilities/Path.js.map +0 -1
  123. package/build/utilities/Time.d.ts +0 -21
  124. package/build/utilities/Time.js +0 -25
  125. package/build/utilities/Time.js.map +0 -1
  126. package/build/utilities/Utilities.d.ts +0 -118
  127. package/build/utilities/Utilities.js +0 -112
  128. package/build/utilities/Utilities.js.map +0 -1
  129. package/build/utilities/schema/Introspection.d.ts +0 -24
  130. package/build/utilities/schema/Introspection.js +0 -87
  131. package/build/utilities/schema/Introspection.js.map +0 -1
  132. package/build/utilities/schema/JSONSchema.d.ts +0 -68
  133. package/build/utilities/schema/JSONSchema.js +0 -13
  134. package/build/utilities/schema/JSONSchema.js.map +0 -1
  135. package/build/utilities/schema/Schema.d.ts +0 -253
  136. package/build/utilities/schema/Schema.js +0 -241
  137. package/build/utilities/schema/Schema.js.map +0 -1
  138. package/build/utilities/schema/SchemaError.d.ts +0 -10
  139. package/build/utilities/schema/SchemaError.js +0 -13
  140. package/build/utilities/schema/SchemaError.js.map +0 -1
  141. package/build/utilities/schema/Validator.d.ts +0 -94
  142. package/build/utilities/schema/Validator.js +0 -246
  143. package/build/utilities/schema/Validator.js.map +0 -1
@@ -1,246 +0,0 @@
1
- /**
2
- * @author NetFeez <netfeez.dev@gmail.com>
3
- * @description Provides utilities for validating the structure of a schema, ensuring that property definitions are consistent and valid according to their types and constraints.
4
- * @license Apache-2.0
5
- */
6
- import { SchemaError } from './SchemaError.js';
7
- export class Validator {
8
- /**
9
- * Validates the structure of a schema, used for validating the structure of a schema and nested objects.
10
- * @param schema The schema to validate
11
- * @param parentKey The parent key of the schema, used for error messages
12
- */
13
- static validateStructure(schema, parentKey) {
14
- for (const key in schema) {
15
- const prop = schema[key];
16
- this.validateProperty(prop, parentKey ? `${parentKey}.${key}` : key);
17
- }
18
- }
19
- /**
20
- * Validates a property definition, used for validating the structure of a schema and nested objects.
21
- * @param prop The property definition to validate
22
- * @param key The key of the property, used for error messages
23
- */
24
- static validateProperty(prop, key) {
25
- switch (prop.type) {
26
- case 'string':
27
- this.validateStringProperty(prop, key);
28
- break;
29
- case 'number':
30
- this.validateNumberProperty(prop, key);
31
- break;
32
- case 'boolean': break;
33
- case 'array':
34
- this.validateArrayProperty(prop, key);
35
- break;
36
- case 'object':
37
- this.validateObjectProperty(prop, key);
38
- break;
39
- default: throw new SchemaError(`Unknown type for property '${key}'`);
40
- }
41
- if ('default' in prop)
42
- this.validateDefaultValue(prop, key);
43
- }
44
- /**
45
- * Validates a default value against a property definition, used for validating default values.
46
- * @param prop The property definition to validate against
47
- * @param key The key of the property, used for error messages
48
- */
49
- static validateDefaultValue(prop, key) {
50
- if (prop.default === undefined) {
51
- if (!prop.required)
52
- return;
53
- throw new SchemaError(`Property '${key}' default value cannot be undefined`);
54
- }
55
- if (prop.default === null) {
56
- if (prop.nullable)
57
- return;
58
- throw new SchemaError(`Property '${key}' default value cannot be null`);
59
- }
60
- switch (prop.type) {
61
- case 'string':
62
- this.validateString(prop.default, prop, key);
63
- break;
64
- case 'number':
65
- this.validateNumber(prop.default, prop, key);
66
- break;
67
- case 'boolean':
68
- this.validateBoolean(prop.default, prop, key);
69
- break;
70
- case 'array':
71
- this.validateArray(prop.default, prop, key);
72
- break;
73
- case 'object':
74
- this.validateObject(prop.default, prop, key);
75
- break;
76
- default: throw new SchemaError(`Unknown type for property '${key}'`);
77
- }
78
- }
79
- /**
80
- * Validates a string property definition, used for validating nested objects.
81
- * @param prop The string property definition to validate
82
- * @param key The key of the property, used for error messages
83
- */
84
- static validateStringProperty(prop, key) {
85
- if (prop.enum !== undefined) {
86
- if (!Array.isArray(prop.enum) || prop.enum.length === 0) {
87
- throw new SchemaError(`Property '${key}' enum must be a non-empty array`);
88
- }
89
- if (prop.enum.some((value) => typeof value !== 'string')) {
90
- throw new SchemaError(`Property '${key}' enum values must be strings`);
91
- }
92
- }
93
- if (prop.maxLength !== undefined && prop.minLength !== undefined && prop.maxLength < prop.minLength) {
94
- throw new SchemaError(`Property '${key}' maxLength must be greater than or equal to minLength`);
95
- }
96
- if (prop.pattern !== undefined && !(prop.pattern instanceof RegExp)) {
97
- throw new SchemaError(`Property '${key}' pattern must be a RegExp`);
98
- }
99
- }
100
- /**
101
- * Validates a number property definition, used for validating nested objects.
102
- * @param prop The number property definition to validate
103
- * @param key The key of the property, used for error messages
104
- */
105
- static validateNumberProperty(prop, key) {
106
- if (prop.maximum !== undefined && prop.minimum !== undefined && prop.maximum < prop.minimum) {
107
- throw new SchemaError(`Property '${key}' maximum must be greater than or equal to minimum`);
108
- }
109
- }
110
- /**
111
- * Validates an array property definition, used for validating nested arrays.
112
- * @param prop The array property definition to validate
113
- * @param key The key of the property, used for error messages
114
- */
115
- static validateArrayProperty(prop, key) {
116
- if (prop.maximum !== undefined && prop.minimum !== undefined && prop.maximum < prop.minimum) {
117
- throw new SchemaError(`Property '${key}' maximum must be greater than or equal to minimum`);
118
- }
119
- this.validateProperty(prop.property, `${key}[]`);
120
- }
121
- /**
122
- * Validates an object property definition, used for validating nested objects.
123
- * @param prop The object property definition to validate
124
- * @param key The key of the property, used for error messages
125
- */
126
- static validateObjectProperty(prop, key) {
127
- this.validateStructure(prop.schema, key);
128
- }
129
- /**
130
- * Validates a string value against a string property definition, used for validating default values and nested objects.
131
- * @param value The value to validate
132
- * @param prop The string property definition to validate against
133
- * @param key The key of the property, used for error messages
134
- */
135
- static validateString(value, prop, key) {
136
- if (value == null && prop.nullable === true)
137
- return;
138
- if (typeof value !== 'string')
139
- throw new SchemaError(`Property ${key} must be a string`);
140
- if (prop.enum !== undefined && !prop.enum.includes(value)) {
141
- throw new SchemaError(`Property ${key} must be one of: ${prop.enum.join(', ')}`);
142
- }
143
- if (prop.minLength !== undefined && value.length < prop.minLength) {
144
- throw new SchemaError(`Property ${key} must have a minimum length of ${prop.minLength}`);
145
- }
146
- if (prop.maxLength !== undefined && value.length > prop.maxLength) {
147
- throw new SchemaError(`Property ${key} must have a maximum length of ${prop.maxLength}`);
148
- }
149
- if (prop.pattern && !prop.pattern.test(value)) {
150
- throw new SchemaError(`Property ${key} must match the pattern ${prop.pattern}`);
151
- }
152
- }
153
- /**
154
- * Validates a number value against a number property definition, used for validating default values.
155
- * @param value The value to validate
156
- * @param prop The number property definition to validate against
157
- * @param key The key of the property, used for error messages
158
- */
159
- static validateNumber(value, prop, key) {
160
- if (value == null && prop.nullable === true)
161
- return;
162
- if (typeof value !== 'number')
163
- throw new SchemaError(`Property ${key} must be a number`);
164
- if (prop.minimum !== undefined && value < prop.minimum) {
165
- throw new SchemaError(`Property ${key} must be greater than or equal to ${prop.minimum}`);
166
- }
167
- if (prop.maximum !== undefined && value > prop.maximum) {
168
- throw new SchemaError(`Property ${key} must be less than or equal to ${prop.maximum}`);
169
- }
170
- }
171
- /**
172
- * Validates a boolean value against a boolean property definition, used for validating default values.
173
- * @param value The value to validate
174
- * @param prop The boolean property definition to validate against
175
- * @param key The key of the property, used for error messages
176
- */
177
- static validateBoolean(value, prop, key) {
178
- if (value == null && prop.nullable === true)
179
- return;
180
- if (typeof value !== 'boolean')
181
- throw new SchemaError(`Property ${key} must be a boolean`);
182
- }
183
- /**
184
- * Validates an object value against an object property definition, used for validating default values and nested objects.
185
- * @param value The value to validate
186
- * @param prop The object property definition to validate against
187
- * @param key The key of the property, used for error messages
188
- */
189
- static validateObject(value, prop, key) {
190
- if (value == null && prop.nullable === true)
191
- return;
192
- if (typeof value !== 'object' || Array.isArray(value)) {
193
- throw new SchemaError(`Property ${key} must be an object`);
194
- }
195
- this.validateStructure(prop.schema, key);
196
- }
197
- /**
198
- * Validates an array value against an array property definition, used for validating default values and array items.
199
- * @param value The value to validate
200
- * @param prop The array property definition to validate against
201
- * @param key The key of the property, used for error messages
202
- */
203
- static validateArray(value, prop, key) {
204
- if (value == null && prop.nullable === true)
205
- return;
206
- if (!Array.isArray(value))
207
- throw new SchemaError(`Property ${key} must be an array`);
208
- if (prop.minimum !== undefined && value.length < prop.minimum) {
209
- throw new SchemaError(`Property ${key} must have at least ${prop.minimum} items`);
210
- }
211
- if (prop.maximum !== undefined && value.length > prop.maximum) {
212
- throw new SchemaError(`Property ${key} must have at most ${prop.maximum} items`);
213
- }
214
- value.forEach((item, index) => {
215
- this.validateValue(item, prop.property, `${key}[${index}]`);
216
- });
217
- }
218
- /**
219
- * Validates a value against a property definition, used for validating default values and array items.
220
- * @param value The value to validate
221
- * @param prop The property definition to validate against
222
- * @param key The key of the property, used for error messages
223
- */
224
- static validateValue(value, prop, key) {
225
- switch (prop.type) {
226
- case 'string':
227
- this.validateString(value, prop, key);
228
- break;
229
- case 'number':
230
- this.validateNumber(value, prop, key);
231
- break;
232
- case 'boolean':
233
- this.validateBoolean(value, prop, key);
234
- break;
235
- case 'array':
236
- this.validateArray(value, prop, key);
237
- break;
238
- case 'object':
239
- this.validateObject(value, prop, key);
240
- break;
241
- default: throw new SchemaError(`Unknown type for property '${key}'`);
242
- }
243
- }
244
- }
245
- export default Validator;
246
- //# sourceMappingURL=Validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/utilities/schema/Validator.ts"],"names":[],"mappings":"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"}