@maxclicks/utilities 1.13.0 → 1.15.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 (69) hide show
  1. package/dist/helpers/haveSameContents.d.ts.map +1 -1
  2. package/dist/helpers/haveSameContents.js +4 -2
  3. package/dist/helpers/haveSameContents.js.map +1 -1
  4. package/dist/index.d.ts +0 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +0 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/modules/primitives/definitions/Address.js +1 -1
  9. package/dist/modules/primitives/definitions/Address.js.map +1 -1
  10. package/dist/types/Json/Json.d.ts +5 -63
  11. package/dist/types/Json/Json.d.ts.map +1 -1
  12. package/dist/types/Json/Json.js +2 -12
  13. package/dist/types/Json/Json.js.map +1 -1
  14. package/dist/types/Json/JsonSchema/JsonSchema.d.ts +103 -0
  15. package/dist/types/Json/JsonSchema/JsonSchema.d.ts.map +1 -0
  16. package/dist/types/Json/JsonSchema/JsonSchema.js +95 -0
  17. package/dist/types/Json/JsonSchema/JsonSchema.js.map +1 -0
  18. package/dist/types/Json/JsonSchema/index.d.ts +2 -0
  19. package/dist/types/Json/JsonSchema/index.d.ts.map +1 -0
  20. package/dist/types/Json/JsonSchema/index.js +2 -0
  21. package/dist/types/Json/JsonSchema/index.js.map +1 -0
  22. package/dist/types/Json/JsonSchema/isJsonSchemaNullable.d.ts +5 -0
  23. package/dist/types/Json/JsonSchema/isJsonSchemaNullable.d.ts.map +1 -0
  24. package/dist/types/Json/JsonSchema/isJsonSchemaNullable.js +15 -0
  25. package/dist/types/Json/JsonSchema/isJsonSchemaNullable.js.map +1 -0
  26. package/dist/types/Json/JsonSchema/isJsonSchemaWiderThan.d.ts +28 -0
  27. package/dist/types/Json/JsonSchema/isJsonSchemaWiderThan.d.ts.map +1 -0
  28. package/dist/types/Json/JsonSchema/isJsonSchemaWiderThan.js +322 -0
  29. package/dist/types/Json/JsonSchema/isJsonSchemaWiderThan.js.map +1 -0
  30. package/dist/types/Json/JsonSchema/jsonSchemaNormalizer.d.ts +5 -0
  31. package/dist/types/Json/JsonSchema/jsonSchemaNormalizer.d.ts.map +1 -0
  32. package/dist/types/Json/JsonSchema/jsonSchemaNormalizer.js +136 -0
  33. package/dist/types/Json/JsonSchema/jsonSchemaNormalizer.js.map +1 -0
  34. package/dist/types/Json/JsonSchema/jsonSchemaNullable.d.ts +5 -0
  35. package/dist/types/Json/JsonSchema/jsonSchemaNullable.d.ts.map +1 -0
  36. package/dist/types/Json/JsonSchema/jsonSchemaNullable.js +31 -0
  37. package/dist/types/Json/JsonSchema/jsonSchemaNullable.js.map +1 -0
  38. package/dist/types/Json/jsonNormalizer.d.ts +1 -0
  39. package/dist/types/Json/jsonNormalizer.d.ts.map +1 -1
  40. package/dist/types/Json/jsonNormalizer.js.map +1 -1
  41. package/dist/types/Json/jsonNormalizerWithSchemaFactory.d.ts +3 -1
  42. package/dist/types/Json/jsonNormalizerWithSchemaFactory.d.ts.map +1 -1
  43. package/dist/types/Json/jsonNormalizerWithSchemaFactory.js +184 -149
  44. package/dist/types/Json/jsonNormalizerWithSchemaFactory.js.map +1 -1
  45. package/dist/types/Normalizer.d.ts +2 -2
  46. package/dist/types/Normalizer.d.ts.map +1 -1
  47. package/dist/types/Normalizer.js +9 -3
  48. package/dist/types/Normalizer.js.map +1 -1
  49. package/package.json +1 -1
  50. package/dist/helpers/optional.d.ts +0 -13
  51. package/dist/helpers/optional.d.ts.map +0 -1
  52. package/dist/helpers/optional.js +0 -17
  53. package/dist/helpers/optional.js.map +0 -1
  54. package/dist/types/Json/jsonSchemaNormalizer.d.ts +0 -3
  55. package/dist/types/Json/jsonSchemaNormalizer.d.ts.map +0 -1
  56. package/dist/types/Json/jsonSchemaNormalizer.js +0 -181
  57. package/dist/types/Json/jsonSchemaNormalizer.js.map +0 -1
  58. package/dist/types/Json/jsonSchemaNullable.d.ts +0 -3
  59. package/dist/types/Json/jsonSchemaNullable.d.ts.map +0 -1
  60. package/dist/types/Json/jsonSchemaNullable.js +0 -32
  61. package/dist/types/Json/jsonSchemaNullable.js.map +0 -1
  62. package/dist/types/Json/jsonSchemaSatisfies.d.ts +0 -12
  63. package/dist/types/Json/jsonSchemaSatisfies.d.ts.map +0 -1
  64. package/dist/types/Json/jsonSchemaSatisfies.js +0 -290
  65. package/dist/types/Json/jsonSchemaSatisfies.js.map +0 -1
  66. package/dist/types/Json/jsonSchemaSimplifiedSatisfies.d.ts +0 -4
  67. package/dist/types/Json/jsonSchemaSimplifiedSatisfies.d.ts.map +0 -1
  68. package/dist/types/Json/jsonSchemaSimplifiedSatisfies.js +0 -222
  69. package/dist/types/Json/jsonSchemaSimplifiedSatisfies.js.map +0 -1
@@ -1,222 +0,0 @@
1
- import { haveSameContents } from '../../helpers/haveSameContents';
2
- /** Checks if any JSON value valid under `required` (old) will also be valid under `provided` (new). */
3
- export function jsonSchemaSatisfies(provided, required) {
4
- if (isAnySchema(provided))
5
- return true;
6
- if (isAnySchema(required))
7
- return isAnySchema(provided);
8
- if ('const' in required) {
9
- if ('const' in provided)
10
- return haveSameContents(provided.const, required.const);
11
- if ('enum' in provided)
12
- return provided.enum.some(value => haveSameContents(value, required.const));
13
- return schemaAcceptsValue(provided, required.const);
14
- }
15
- if ('enum' in required) {
16
- if ('const' in provided)
17
- return required.enum.length === 1 && haveSameContents(provided.const, required.enum[0]);
18
- if ('enum' in provided)
19
- return required.enum.every(requiredValue => provided.enum.some(providedValue => haveSameContents(providedValue, requiredValue)));
20
- return required.enum.every(value => schemaAcceptsValue(provided, value));
21
- }
22
- if ('const' in provided || 'enum' in provided)
23
- return false;
24
- const providedBaseType = getBaseType(provided.type);
25
- const requiredBaseType = getBaseType(required.type);
26
- const providedNullable = isNullable(provided.type);
27
- const requiredNullable = isNullable(required.type);
28
- if (requiredNullable && !providedNullable)
29
- return false;
30
- if (requiredBaseType === 'null')
31
- return providedBaseType === 'null' || providedNullable;
32
- if (providedBaseType !== requiredBaseType) {
33
- // number satisfies integer since number is more permissive
34
- if (!(providedBaseType === 'number' && requiredBaseType === 'integer'))
35
- return false;
36
- }
37
- switch (requiredBaseType) {
38
- case 'string':
39
- return stringSchemasSatisfy(provided, required);
40
- case 'number':
41
- case 'integer':
42
- return numberSchemasSatisfy(provided, required);
43
- case 'boolean':
44
- return true;
45
- case 'array':
46
- return arraySchemasSatisfy(provided, required);
47
- case 'object':
48
- return objectSchemasSatisfy(provided, required);
49
- default:
50
- return false;
51
- }
52
- }
53
- function isAnySchema(schema) {
54
- return !('const' in schema) && !('enum' in schema) && (schema.type === undefined || schema.type === 'any');
55
- }
56
- function getBaseType(type) {
57
- if (type === undefined)
58
- return 'any';
59
- if (Array.isArray(type))
60
- return type.find(t => t !== 'null');
61
- return type;
62
- }
63
- function isNullable(type) {
64
- if (type === 'null')
65
- return true;
66
- if (Array.isArray(type))
67
- return type.includes('null');
68
- return false;
69
- }
70
- function schemaAcceptsValue(schema, value) {
71
- if (isAnySchema(schema))
72
- return true;
73
- const baseType = getBaseType(schema.type);
74
- const nullable = isNullable(schema.type);
75
- if (value === null)
76
- return nullable || baseType === 'null';
77
- switch (baseType) {
78
- case 'null':
79
- return value === null;
80
- case 'string': {
81
- if (typeof value !== 'string')
82
- return false;
83
- const stringSchema = schema;
84
- if (stringSchema.minLength !== undefined && value.length < stringSchema.minLength)
85
- return false;
86
- if (stringSchema.maxLength !== undefined && value.length > stringSchema.maxLength)
87
- return false;
88
- return true;
89
- }
90
- case 'number':
91
- case 'integer': {
92
- if (typeof value !== 'number')
93
- return false;
94
- if (baseType === 'integer' && value % 1 !== 0)
95
- return false;
96
- const numberSchema = schema;
97
- if (numberSchema.minimum !== undefined && value < numberSchema.minimum)
98
- return false;
99
- if (numberSchema.maximum !== undefined && value > numberSchema.maximum)
100
- return false;
101
- if (numberSchema.exclusiveMinimum !== undefined && value <= numberSchema.exclusiveMinimum)
102
- return false;
103
- if (numberSchema.exclusiveMaximum !== undefined && value >= numberSchema.exclusiveMaximum)
104
- return false;
105
- if (numberSchema.multipleOf !== undefined && value % numberSchema.multipleOf !== 0)
106
- return false;
107
- return true;
108
- }
109
- case 'boolean':
110
- return typeof value === 'boolean';
111
- case 'array': {
112
- if (!Array.isArray(value))
113
- return false;
114
- const arraySchema = schema;
115
- if (arraySchema.minItems !== undefined && value.length < arraySchema.minItems)
116
- return false;
117
- if (arraySchema.maxItems !== undefined && value.length > arraySchema.maxItems)
118
- return false;
119
- if (arraySchema.items !== undefined)
120
- return value.every(item => schemaAcceptsValue(arraySchema.items, item));
121
- return true;
122
- }
123
- case 'object': {
124
- if (typeof value !== 'object' || Array.isArray(value) || value === null)
125
- return false;
126
- const objectSchema = schema;
127
- const objectValue = value;
128
- if (objectSchema.required) {
129
- for (const key of objectSchema.required) {
130
- if (!(key in objectValue))
131
- return false;
132
- }
133
- }
134
- for (const [key, propertyValue] of Object.entries(objectValue)) {
135
- if (objectSchema.properties && key in objectSchema.properties) {
136
- if (!schemaAcceptsValue(objectSchema.properties[key], propertyValue))
137
- return false;
138
- }
139
- else if (objectSchema.additionalProperties !== undefined && objectSchema.additionalProperties !== true) {
140
- if (!schemaAcceptsValue(objectSchema.additionalProperties, propertyValue))
141
- return false;
142
- }
143
- }
144
- return true;
145
- }
146
- default:
147
- return false;
148
- }
149
- }
150
- function stringSchemasSatisfy(provided, required) {
151
- if (required.minLength !== undefined && provided.minLength !== undefined && provided.minLength > required.minLength)
152
- return false;
153
- if (required.maxLength !== undefined && provided.maxLength !== undefined && provided.maxLength < required.maxLength)
154
- return false;
155
- if (required.format !== undefined && provided.format !== undefined && provided.format !== required.format)
156
- return false;
157
- return true;
158
- }
159
- function numberSchemasSatisfy(provided, required) {
160
- if (required.minimum !== undefined && provided.minimum !== undefined && provided.minimum > required.minimum)
161
- return false;
162
- if (required.maximum !== undefined && provided.maximum !== undefined && provided.maximum < required.maximum)
163
- return false;
164
- if (required.exclusiveMinimum !== undefined &&
165
- provided.exclusiveMinimum !== undefined &&
166
- provided.exclusiveMinimum > required.exclusiveMinimum)
167
- return false;
168
- if (required.exclusiveMaximum !== undefined &&
169
- provided.exclusiveMaximum !== undefined &&
170
- provided.exclusiveMaximum < required.exclusiveMaximum)
171
- return false;
172
- if (required.multipleOf !== undefined &&
173
- provided.multipleOf !== undefined &&
174
- required.multipleOf % provided.multipleOf !== 0)
175
- return false;
176
- return true;
177
- }
178
- function arraySchemasSatisfy(provided, required) {
179
- if (required.minItems !== undefined && provided.minItems !== undefined && provided.minItems > required.minItems)
180
- return false;
181
- if (required.maxItems !== undefined && provided.maxItems !== undefined && provided.maxItems < required.maxItems)
182
- return false;
183
- if (required.items !== undefined) {
184
- if (provided.items === undefined)
185
- return true;
186
- return jsonSchemaSatisfies(provided.items, required.items);
187
- }
188
- return true;
189
- }
190
- function objectSchemasSatisfy(provided, required) {
191
- if (provided.required) {
192
- for (const key of provided.required) {
193
- if (!required.required?.includes(key))
194
- return false;
195
- }
196
- }
197
- if (required.properties) {
198
- for (const [key, requiredPropertySchema] of Object.entries(required.properties)) {
199
- if (provided.properties && key in provided.properties) {
200
- if (!jsonSchemaSatisfies(provided.properties[key], requiredPropertySchema))
201
- return false;
202
- }
203
- else if (provided.additionalProperties !== undefined) {
204
- if (provided.additionalProperties === true)
205
- continue;
206
- if (!jsonSchemaSatisfies(provided.additionalProperties, requiredPropertySchema))
207
- return false;
208
- }
209
- }
210
- }
211
- if (required.additionalProperties !== undefined) {
212
- if (provided.additionalProperties === undefined)
213
- return true;
214
- if (required.additionalProperties === true)
215
- return provided.additionalProperties === true;
216
- if (provided.additionalProperties === true)
217
- return true;
218
- return jsonSchemaSatisfies(provided.additionalProperties, required.additionalProperties);
219
- }
220
- return true;
221
- }
222
- //# sourceMappingURL=jsonSchemaSimplifiedSatisfies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonSchemaSimplifiedSatisfies.js","sourceRoot":"","sources":["../../../src/types/Json/jsonSchemaSimplifiedSatisfies.ts"],"names":[],"mappings":"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"}