@based/schema 2.7.0 → 3.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 (71) hide show
  1. package/dist/display/index.d.ts +2 -0
  2. package/dist/display/index.js +26 -0
  3. package/dist/display/number.d.ts +3 -0
  4. package/dist/display/number.js +89 -0
  5. package/dist/display/string.d.ts +3 -0
  6. package/dist/display/string.js +23 -0
  7. package/dist/display/timestamp.d.ts +3 -0
  8. package/dist/display/timestamp.js +127 -0
  9. package/dist/error.d.ts +19 -0
  10. package/dist/error.js +24 -0
  11. package/dist/index.d.ts +5 -0
  12. package/dist/index.js +22 -0
  13. package/dist/languages.d.ts +187 -0
  14. package/dist/languages.js +190 -0
  15. package/dist/set/fields/array.d.ts +2 -0
  16. package/dist/set/fields/array.js +123 -0
  17. package/dist/set/fields/index.d.ts +3 -0
  18. package/dist/set/fields/index.js +74 -0
  19. package/dist/set/fields/number.d.ts +4 -0
  20. package/dist/set/fields/number.js +129 -0
  21. package/dist/set/fields/object.d.ts +3 -0
  22. package/dist/set/fields/object.js +33 -0
  23. package/dist/set/fields/references.d.ts +3 -0
  24. package/dist/set/fields/references.js +128 -0
  25. package/dist/set/fields/set.d.ts +2 -0
  26. package/dist/set/fields/set.js +63 -0
  27. package/dist/set/fields/string.d.ts +3 -0
  28. package/dist/set/fields/string.js +284 -0
  29. package/dist/set/index.d.ts +3 -0
  30. package/dist/set/index.js +183 -0
  31. package/dist/set/isValidId.d.ts +2 -0
  32. package/dist/set/isValidId.js +21 -0
  33. package/dist/set/types.d.ts +0 -0
  34. package/dist/set/types.js +1 -0
  35. package/dist/src/compat/index.d.ts +6 -2
  36. package/dist/src/compat/index.js +202 -2
  37. package/dist/src/compat/newToOld.d.ts +2 -2
  38. package/dist/src/compat/newToOld.js +14 -9
  39. package/dist/src/compat/oldSchemaType.d.ts +28 -4
  40. package/dist/src/compat/oldToNew.d.ts +1 -1
  41. package/dist/src/set/fields/array.js +4 -4
  42. package/dist/src/types.d.ts +1 -1
  43. package/dist/src/validateSchema/fieldValidators.js +12 -4
  44. package/dist/src/validateSchema/utils.d.ts +4 -0
  45. package/dist/src/validateSchema/utils.js +8 -0
  46. package/dist/test/array.js +4 -4
  47. package/dist/test/compat.js +38 -2
  48. package/dist/test/data/newSchemas.d.ts +2 -2
  49. package/dist/test/data/newSchemas.js +244 -7
  50. package/dist/test/rest.js +1 -1
  51. package/dist/test/validateSchema/fields.js +75 -5
  52. package/dist/test/validateSchema/realWorld.d.ts +1 -0
  53. package/dist/test/validateSchema/realWorld.js +13 -0
  54. package/dist/test/walker.js +2 -2
  55. package/dist/types.d.ts +205 -0
  56. package/dist/types.js +27 -0
  57. package/dist/updateSchema.d.ts +2 -0
  58. package/dist/updateSchema.js +16 -0
  59. package/dist/validateSchema.d.ts +4 -0
  60. package/dist/validateSchema.js +41 -0
  61. package/dist/walker/args.d.ts +36 -0
  62. package/dist/walker/args.js +162 -0
  63. package/dist/walker/index.d.ts +6 -0
  64. package/dist/walker/index.js +49 -0
  65. package/dist/walker/parse.d.ts +3 -0
  66. package/dist/walker/parse.js +186 -0
  67. package/dist/walker/types.d.ts +45 -0
  68. package/dist/walker/types.js +10 -0
  69. package/package.json +4 -3
  70. package/dist/src/compat/Untitled-1.d.ts +0 -3
  71. package/dist/src/compat/Untitled-1.js +0 -205
@@ -1,205 +0,0 @@
1
- const metaChecker = (field) => {
2
- return (field === 'validation' ||
3
- field === 'format' ||
4
- field === 'index' ||
5
- field === 'description' ||
6
- field === 'title' ||
7
- field === 'examples' ||
8
- field === 'ui' ||
9
- field === 'isRequired' ||
10
- field === 'title' ||
11
- field === 'description' ||
12
- field === 'index' ||
13
- field === 'readOnly' ||
14
- field === 'writeOnly' ||
15
- field === '$comment' ||
16
- field === 'examples' ||
17
- field === 'default' ||
18
- field === 'customValidator' ||
19
- field === 'value' ||
20
- field === 'path' ||
21
- field === 'target' ||
22
- field === 'minLength' ||
23
- field === 'maxLength' ||
24
- field === 'contentMediaEncoding' ||
25
- field === 'pattern' ||
26
- field === 'display' ||
27
- field === 'multiline' ||
28
- field === 'multipleOf' ||
29
- field === 'minimum' ||
30
- field === 'maximum' ||
31
- field === 'exclusiveMaximum' ||
32
- field === 'exclusiveMinimum' ||
33
- field === '$delete');
34
- };
35
- const excludedFields = (field) => {
36
- return field === 'language' || field === 'translations' || field === '$defs';
37
- };
38
- const DEFAULT_FIELDS = {
39
- id: { type: 'string' },
40
- createdAt: { type: 'timestamp' },
41
- updatedAt: { type: 'timestamp' },
42
- type: { type: 'string' },
43
- parents: { type: 'references' },
44
- children: { type: 'references' },
45
- ancestors: { type: 'references' },
46
- descendants: { type: 'references' },
47
- aliases: {
48
- type: 'set',
49
- items: { type: 'string' },
50
- },
51
- };
52
- const metaParser = (obj) => {
53
- const tmp = {};
54
- for (const i in obj) {
55
- if (metaChecker(i)) {
56
- if (i === 'title') {
57
- tmp.name = obj[i];
58
- }
59
- else {
60
- tmp[i] = obj[i];
61
- }
62
- }
63
- }
64
- return Object.keys({ meta: tmp }.meta).length > 0 ? { meta: tmp } : null;
65
- };
66
- const migrateField = (oldField) => {
67
- switch (oldField?.type) {
68
- case 'object':
69
- return {
70
- ...metaParser(oldField),
71
- type: 'object',
72
- properties: migrateFields(oldField.properties, true),
73
- };
74
- case 'json':
75
- return {
76
- ...oldField,
77
- ...metaParser(oldField),
78
- type: 'json',
79
- };
80
- case 'array':
81
- const values = migrateField(oldField.items);
82
- if (!values) {
83
- return null;
84
- }
85
- return {
86
- ...metaParser(oldField),
87
- type: 'array',
88
- items: values,
89
- };
90
- case 'set':
91
- return {
92
- ...metaParser(oldField),
93
- type: 'set',
94
- items: migrateField(oldField.items),
95
- };
96
- case 'record':
97
- return {
98
- ...metaParser(oldField),
99
- type: 'record',
100
- values: migrateField(oldField.values),
101
- };
102
- case 'reference':
103
- case 'references':
104
- return {
105
- ...metaParser(oldField),
106
- type: oldField.type,
107
- ...(oldField.bidirectional
108
- ? { bidirectional: oldField.bidirectional }
109
- : null),
110
- };
111
- case 'float':
112
- return {
113
- ...metaParser(oldField),
114
- type: 'number',
115
- };
116
- case 'int':
117
- return {
118
- ...metaParser(oldField),
119
- type: 'integer',
120
- };
121
- case 'digest':
122
- return {
123
- format: 'strongPassword',
124
- type: 'string',
125
- };
126
- case 'id':
127
- return {
128
- ...metaParser(oldField),
129
- type: 'string',
130
- };
131
- case 'url':
132
- return {
133
- ...metaParser(oldField),
134
- format: 'URL',
135
- type: 'string',
136
- };
137
- case 'email':
138
- return {
139
- ...metaParser(oldField),
140
- type: 'string',
141
- };
142
- case 'phone':
143
- return {
144
- format: 'mobilePhone',
145
- type: 'string',
146
- };
147
- case 'geo':
148
- return {
149
- format: 'latLong',
150
- type: 'string',
151
- };
152
- case 'type':
153
- return {
154
- ...metaParser(oldField),
155
- type: 'string',
156
- };
157
- default:
158
- return {
159
- ...metaParser(oldField),
160
- type: oldField.type,
161
- };
162
- }
163
- };
164
- const migrateFields = (oldFields, recursing = false) => {
165
- const result = {};
166
- if (oldFields) {
167
- for (const key in oldFields) {
168
- if (oldFields.hasOwnProperty(key)) {
169
- if (!recursing && Object.keys(DEFAULT_FIELDS).includes(key)) {
170
- continue;
171
- }
172
- const field = migrateField(oldFields[key]);
173
- if (!field) {
174
- continue;
175
- }
176
- result[key] = field;
177
- }
178
- }
179
- }
180
- return result;
181
- };
182
- const migrateTypes = (oldSchema) => {
183
- const result = {
184
- types: {},
185
- };
186
- for (const key in oldSchema.types) {
187
- if (oldSchema.types.hasOwnProperty(key)) {
188
- const type = oldSchema.types[key];
189
- result.types[key] = {
190
- ...metaParser(type),
191
- prefix: type.prefix,
192
- fields: migrateFields(type.fields),
193
- };
194
- }
195
- }
196
- return result;
197
- };
198
- export const convertNewToOld222 = (schema) => {
199
- const tmpSchema = migrateTypes(schema);
200
- tmpSchema.prefixToTypeMapping = schema.prefixToTypeMapping;
201
- tmpSchema.languages = [schema.language, ...schema?.translations];
202
- delete tmpSchema.root;
203
- return tmpSchema;
204
- };
205
- //# sourceMappingURL=Untitled-1.js.map