@takeshape/schema 8.96.0 → 8.99.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.
- package/es/schema-util.js +88 -61
- package/lib/schema-util.d.ts +4 -2
- package/lib/schema-util.d.ts.map +1 -1
- package/lib/schema-util.js +93 -64
- package/package.json +4 -4
package/es/schema-util.js
CHANGED
|
@@ -42,60 +42,6 @@ export const arraySchemaKeys = [...commonSchemaKeys, 'items', 'additionalItems',
|
|
|
42
42
|
export const multipleRelationshipSchemaKeys = [...schemaMetadataKeys, 'maxItems', 'minItems']; // All properties except properties, items, additionalItems
|
|
43
43
|
|
|
44
44
|
export const nonStructuralSchemaKeys = [...scalarSchemaKeys, '@relationship', '@backreference', 'required', 'maxItems', 'minItems', 'uniqueItems'];
|
|
45
|
-
const commonProperties = {
|
|
46
|
-
_id: {
|
|
47
|
-
title: 'Id',
|
|
48
|
-
type: 'string'
|
|
49
|
-
},
|
|
50
|
-
_version: {
|
|
51
|
-
title: 'Version',
|
|
52
|
-
type: 'integer'
|
|
53
|
-
},
|
|
54
|
-
_shapeId: {
|
|
55
|
-
title: 'Shape Id',
|
|
56
|
-
type: 'string'
|
|
57
|
-
},
|
|
58
|
-
_shapeName: {
|
|
59
|
-
title: 'Shape Name',
|
|
60
|
-
type: 'string'
|
|
61
|
-
},
|
|
62
|
-
_createdAt: {
|
|
63
|
-
title: 'Created',
|
|
64
|
-
type: 'string',
|
|
65
|
-
format: 'date-time'
|
|
66
|
-
},
|
|
67
|
-
_createdBy: {
|
|
68
|
-
title: 'Created By',
|
|
69
|
-
'@ref': 'local:TSUser',
|
|
70
|
-
'@input': {
|
|
71
|
-
type: 'string'
|
|
72
|
-
},
|
|
73
|
-
'@resolver': {
|
|
74
|
-
name: 'takeshape:getUser',
|
|
75
|
-
service: 'takeshape:local'
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
_updatedAt: {
|
|
79
|
-
title: 'Updated',
|
|
80
|
-
type: 'string',
|
|
81
|
-
format: 'date-time'
|
|
82
|
-
},
|
|
83
|
-
_updatedBy: {
|
|
84
|
-
title: 'Updated By',
|
|
85
|
-
'@ref': 'local:TSUser',
|
|
86
|
-
'@input': {
|
|
87
|
-
type: 'string'
|
|
88
|
-
},
|
|
89
|
-
'@resolver': {
|
|
90
|
-
name: 'takeshape:getUser',
|
|
91
|
-
service: 'takeshape:local'
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
_schemaVersion: {
|
|
95
|
-
title: 'Schema Version',
|
|
96
|
-
type: 'number'
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
45
|
export function getServiceIdFieldName(serviceFieldName) {
|
|
100
46
|
return `${serviceFieldName}Id`;
|
|
101
47
|
}
|
|
@@ -289,9 +235,84 @@ export function getShapeQueriesAndMutations(shapeList) {
|
|
|
289
235
|
mutations
|
|
290
236
|
};
|
|
291
237
|
}
|
|
292
|
-
export function
|
|
238
|
+
export function getBuiltinPropertiesSet(context, shape) {
|
|
239
|
+
if (isModelShape(shape)) {
|
|
240
|
+
return 'model';
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if (isIndexedRemoteShape(context, shape)) {
|
|
244
|
+
return 'indexed';
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return 'none';
|
|
248
|
+
}
|
|
249
|
+
export function getBuiltinProperties(shapeId, builtinPropertiesSet, apiVersion = CURRENT_API_VERSION) {
|
|
250
|
+
if (builtinPropertiesSet === 'none') {
|
|
251
|
+
return {};
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
const commonFields = {
|
|
255
|
+
_shapeId: {
|
|
256
|
+
type: 'string',
|
|
257
|
+
title: 'Shape Id',
|
|
258
|
+
enum: [shapeId]
|
|
259
|
+
},
|
|
260
|
+
_id: {
|
|
261
|
+
title: 'Id',
|
|
262
|
+
type: 'string'
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
if (builtinPropertiesSet === 'indexed') {
|
|
267
|
+
return commonFields;
|
|
268
|
+
}
|
|
269
|
+
|
|
293
270
|
const showV1Deprecation = apiVersion !== '1';
|
|
294
|
-
return { ...
|
|
271
|
+
return { ...commonFields,
|
|
272
|
+
_version: {
|
|
273
|
+
title: 'Version',
|
|
274
|
+
type: 'integer'
|
|
275
|
+
},
|
|
276
|
+
_shapeName: {
|
|
277
|
+
title: 'Shape Name',
|
|
278
|
+
type: 'string'
|
|
279
|
+
},
|
|
280
|
+
_createdAt: {
|
|
281
|
+
title: 'Created',
|
|
282
|
+
type: 'string',
|
|
283
|
+
format: 'date-time'
|
|
284
|
+
},
|
|
285
|
+
_createdBy: {
|
|
286
|
+
title: 'Created By',
|
|
287
|
+
'@ref': 'local:TSUser',
|
|
288
|
+
'@input': {
|
|
289
|
+
type: 'string'
|
|
290
|
+
},
|
|
291
|
+
'@resolver': {
|
|
292
|
+
name: 'takeshape:getUser',
|
|
293
|
+
service: 'takeshape:local'
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
_updatedAt: {
|
|
297
|
+
title: 'Updated',
|
|
298
|
+
type: 'string',
|
|
299
|
+
format: 'date-time'
|
|
300
|
+
},
|
|
301
|
+
_updatedBy: {
|
|
302
|
+
title: 'Updated By',
|
|
303
|
+
'@ref': 'local:TSUser',
|
|
304
|
+
'@input': {
|
|
305
|
+
type: 'string'
|
|
306
|
+
},
|
|
307
|
+
'@resolver': {
|
|
308
|
+
name: 'takeshape:getUser',
|
|
309
|
+
service: 'takeshape:local'
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
_schemaVersion: {
|
|
313
|
+
title: 'Schema Version',
|
|
314
|
+
type: 'number'
|
|
315
|
+
},
|
|
295
316
|
_enabled: {
|
|
296
317
|
title: 'Enabled',
|
|
297
318
|
type: 'boolean',
|
|
@@ -309,13 +330,19 @@ export function getBuiltInProperties(apiVersion = CURRENT_API_VERSION) {
|
|
|
309
330
|
* Return all the built in property names,
|
|
310
331
|
*/
|
|
311
332
|
|
|
312
|
-
export const
|
|
333
|
+
export const getBuiltinPropertyNames = (builtinPropertiesSet, apiVersion = CURRENT_API_VERSION) => new Set([...Object.keys(getBuiltinProperties('shape-id', builtinPropertiesSet, apiVersion)), workflowsEnabled(apiVersion) ? '_status' : undefined].filter(isDefined));
|
|
313
334
|
export function applyBuiltinPropertiesToShape(projectSchema, shape) {
|
|
335
|
+
const builtinSet = getBuiltinPropertiesSet(projectSchema, shape);
|
|
336
|
+
|
|
337
|
+
if (builtinSet === 'none') {
|
|
338
|
+
return shape;
|
|
339
|
+
}
|
|
340
|
+
|
|
314
341
|
return { ...shape,
|
|
315
342
|
schema: { ...shape.schema,
|
|
316
|
-
properties: { ...omitBy(dereferenceObjectSchema(projectSchema, shape.schema).properties, (_, name) => name.startsWith('_')),
|
|
317
|
-
...
|
|
318
|
-
...(workflowsEnabled(projectSchema.apiVersion) && {
|
|
343
|
+
properties: { ...omitBy(dereferenceObjectSchema(projectSchema, shape.schema, ['shapes', shape.name]).properties, (_, name) => name.startsWith('_')),
|
|
344
|
+
...getBuiltinProperties(shape.id, builtinSet, projectSchema.apiVersion),
|
|
345
|
+
...(builtinSet === 'model' && workflowsEnabled(projectSchema.apiVersion) && {
|
|
319
346
|
_status: getStatusField(projectSchema.workflows, shape)
|
|
320
347
|
})
|
|
321
348
|
}
|
|
@@ -368,7 +395,7 @@ export function applyDefaultsToSchema(projectSchema) {
|
|
|
368
395
|
};
|
|
369
396
|
}
|
|
370
397
|
|
|
371
|
-
return
|
|
398
|
+
return applyBuiltinPropertiesToShape(projectSchema, shape);
|
|
372
399
|
}),
|
|
373
400
|
forms: mapValues({ ...builtInForms,
|
|
374
401
|
...projectSchema.forms
|
package/lib/schema-util.d.ts
CHANGED
|
@@ -23,11 +23,13 @@ export declare function getShapeQueriesAndMutations(shapeList: Array<Shape | Sha
|
|
|
23
23
|
queries: QueryMap;
|
|
24
24
|
mutations: QueryMap;
|
|
25
25
|
};
|
|
26
|
-
export declare
|
|
26
|
+
export declare type BuiltinPropertiesSet = 'model' | 'indexed' | 'none';
|
|
27
|
+
export declare function getBuiltinPropertiesSet(context: Pick<ProjectSchema, 'indexedShapes'>, shape: Shape): BuiltinPropertiesSet;
|
|
28
|
+
export declare function getBuiltinProperties(shapeId: string, builtinPropertiesSet: BuiltinPropertiesSet, apiVersion?: string): Record<string, PropertySchema>;
|
|
27
29
|
/**
|
|
28
30
|
* Return all the built in property names,
|
|
29
31
|
*/
|
|
30
|
-
export declare const
|
|
32
|
+
export declare const getBuiltinPropertyNames: (builtinPropertiesSet: BuiltinPropertiesSet, apiVersion?: string) => Set<string>;
|
|
31
33
|
export declare function applyBuiltinPropertiesToShape(projectSchema: ProjectSchema, shape: Shape): Shape;
|
|
32
34
|
/**
|
|
33
35
|
* Get all built-in shapes that are depended on by the given project schema.
|
package/lib/schema-util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-util.d.ts","sourceRoot":"","sources":["../../src/schema-util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,UAAU,EAEV,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EAGX,WAAW,EAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,+BAA+B,EAC/B,UAAU,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAElB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACd,MAAM,eAAe,CAAC;AAWvB,OAAO,EAAC,KAAK,EAAuB,MAAM,iBAAiB,CAAC;AAe5D,OAAO,EAUL,OAAO,EAIP,eAAe,EACf,eAAe,EACf,qBAAqB,EACtB,MAAM,QAAQ,CAAC;AAKhB,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzD;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAG7F;AAED,eAAO,MAAM,kBAAkB,UAU9B,CAAC;AACF,eAAO,MAAM,gBAAgB,UAAyD,CAAC;AAEvF,eAAO,MAAM,gBAAgB,UAY5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAkD,CAAC;AAEhF,eAAO,MAAM,eAAe,UAA2F,CAAC;AAExH,eAAO,MAAM,8BAA8B,UAAkD,CAAC;AAG9F,eAAO,MAAM,uBAAuB,UAQnC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-util.d.ts","sourceRoot":"","sources":["../../src/schema-util.ts"],"names":[],"mappings":"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"}
|
package/lib/schema-util.js
CHANGED
|
@@ -25,8 +25,9 @@ exports.getAllRefsInShapes = getAllRefsInShapes;
|
|
|
25
25
|
exports.getArgsReference = getArgsReference;
|
|
26
26
|
exports.getArgsReferenceWithPath = getArgsReferenceWithPath;
|
|
27
27
|
exports.getArgsShapeSchema = getArgsShapeSchema;
|
|
28
|
-
exports.
|
|
29
|
-
exports.
|
|
28
|
+
exports.getBuiltinProperties = getBuiltinProperties;
|
|
29
|
+
exports.getBuiltinPropertiesSet = getBuiltinPropertiesSet;
|
|
30
|
+
exports.getBuiltinPropertyNames = void 0;
|
|
30
31
|
exports.getBuiltinsUsed = getBuiltinsUsed;
|
|
31
32
|
exports.getDefaultMutationName = void 0;
|
|
32
33
|
exports.getFirstMapping = getFirstMapping;
|
|
@@ -143,60 +144,6 @@ const multipleRelationshipSchemaKeys = [...schemaMetadataKeys, 'maxItems', 'minI
|
|
|
143
144
|
exports.multipleRelationshipSchemaKeys = multipleRelationshipSchemaKeys;
|
|
144
145
|
const nonStructuralSchemaKeys = [...scalarSchemaKeys, '@relationship', '@backreference', 'required', 'maxItems', 'minItems', 'uniqueItems'];
|
|
145
146
|
exports.nonStructuralSchemaKeys = nonStructuralSchemaKeys;
|
|
146
|
-
const commonProperties = {
|
|
147
|
-
_id: {
|
|
148
|
-
title: 'Id',
|
|
149
|
-
type: 'string'
|
|
150
|
-
},
|
|
151
|
-
_version: {
|
|
152
|
-
title: 'Version',
|
|
153
|
-
type: 'integer'
|
|
154
|
-
},
|
|
155
|
-
_shapeId: {
|
|
156
|
-
title: 'Shape Id',
|
|
157
|
-
type: 'string'
|
|
158
|
-
},
|
|
159
|
-
_shapeName: {
|
|
160
|
-
title: 'Shape Name',
|
|
161
|
-
type: 'string'
|
|
162
|
-
},
|
|
163
|
-
_createdAt: {
|
|
164
|
-
title: 'Created',
|
|
165
|
-
type: 'string',
|
|
166
|
-
format: 'date-time'
|
|
167
|
-
},
|
|
168
|
-
_createdBy: {
|
|
169
|
-
title: 'Created By',
|
|
170
|
-
'@ref': 'local:TSUser',
|
|
171
|
-
'@input': {
|
|
172
|
-
type: 'string'
|
|
173
|
-
},
|
|
174
|
-
'@resolver': {
|
|
175
|
-
name: 'takeshape:getUser',
|
|
176
|
-
service: 'takeshape:local'
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
_updatedAt: {
|
|
180
|
-
title: 'Updated',
|
|
181
|
-
type: 'string',
|
|
182
|
-
format: 'date-time'
|
|
183
|
-
},
|
|
184
|
-
_updatedBy: {
|
|
185
|
-
title: 'Updated By',
|
|
186
|
-
'@ref': 'local:TSUser',
|
|
187
|
-
'@input': {
|
|
188
|
-
type: 'string'
|
|
189
|
-
},
|
|
190
|
-
'@resolver': {
|
|
191
|
-
name: 'takeshape:getUser',
|
|
192
|
-
service: 'takeshape:local'
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
_schemaVersion: {
|
|
196
|
-
title: 'Schema Version',
|
|
197
|
-
type: 'number'
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
147
|
|
|
201
148
|
function getServiceIdFieldName(serviceFieldName) {
|
|
202
149
|
return `${serviceFieldName}Id`;
|
|
@@ -397,9 +344,85 @@ function getShapeQueriesAndMutations(shapeList) {
|
|
|
397
344
|
};
|
|
398
345
|
}
|
|
399
346
|
|
|
400
|
-
function
|
|
347
|
+
function getBuiltinPropertiesSet(context, shape) {
|
|
348
|
+
if (isModelShape(shape)) {
|
|
349
|
+
return 'model';
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
if (isIndexedRemoteShape(context, shape)) {
|
|
353
|
+
return 'indexed';
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
return 'none';
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
function getBuiltinProperties(shapeId, builtinPropertiesSet, apiVersion = _versions.CURRENT_API_VERSION) {
|
|
360
|
+
if (builtinPropertiesSet === 'none') {
|
|
361
|
+
return {};
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
const commonFields = {
|
|
365
|
+
_shapeId: {
|
|
366
|
+
type: 'string',
|
|
367
|
+
title: 'Shape Id',
|
|
368
|
+
enum: [shapeId]
|
|
369
|
+
},
|
|
370
|
+
_id: {
|
|
371
|
+
title: 'Id',
|
|
372
|
+
type: 'string'
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
if (builtinPropertiesSet === 'indexed') {
|
|
377
|
+
return commonFields;
|
|
378
|
+
}
|
|
379
|
+
|
|
401
380
|
const showV1Deprecation = apiVersion !== '1';
|
|
402
|
-
return { ...
|
|
381
|
+
return { ...commonFields,
|
|
382
|
+
_version: {
|
|
383
|
+
title: 'Version',
|
|
384
|
+
type: 'integer'
|
|
385
|
+
},
|
|
386
|
+
_shapeName: {
|
|
387
|
+
title: 'Shape Name',
|
|
388
|
+
type: 'string'
|
|
389
|
+
},
|
|
390
|
+
_createdAt: {
|
|
391
|
+
title: 'Created',
|
|
392
|
+
type: 'string',
|
|
393
|
+
format: 'date-time'
|
|
394
|
+
},
|
|
395
|
+
_createdBy: {
|
|
396
|
+
title: 'Created By',
|
|
397
|
+
'@ref': 'local:TSUser',
|
|
398
|
+
'@input': {
|
|
399
|
+
type: 'string'
|
|
400
|
+
},
|
|
401
|
+
'@resolver': {
|
|
402
|
+
name: 'takeshape:getUser',
|
|
403
|
+
service: 'takeshape:local'
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
_updatedAt: {
|
|
407
|
+
title: 'Updated',
|
|
408
|
+
type: 'string',
|
|
409
|
+
format: 'date-time'
|
|
410
|
+
},
|
|
411
|
+
_updatedBy: {
|
|
412
|
+
title: 'Updated By',
|
|
413
|
+
'@ref': 'local:TSUser',
|
|
414
|
+
'@input': {
|
|
415
|
+
type: 'string'
|
|
416
|
+
},
|
|
417
|
+
'@resolver': {
|
|
418
|
+
name: 'takeshape:getUser',
|
|
419
|
+
service: 'takeshape:local'
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
_schemaVersion: {
|
|
423
|
+
title: 'Schema Version',
|
|
424
|
+
type: 'number'
|
|
425
|
+
},
|
|
403
426
|
_enabled: {
|
|
404
427
|
title: 'Enabled',
|
|
405
428
|
type: 'boolean',
|
|
@@ -418,16 +441,22 @@ function getBuiltInProperties(apiVersion = _versions.CURRENT_API_VERSION) {
|
|
|
418
441
|
*/
|
|
419
442
|
|
|
420
443
|
|
|
421
|
-
const
|
|
444
|
+
const getBuiltinPropertyNames = (builtinPropertiesSet, apiVersion = _versions.CURRENT_API_VERSION) => new Set([...Object.keys(getBuiltinProperties('shape-id', builtinPropertiesSet, apiVersion)), (0, _apiVersion.workflowsEnabled)(apiVersion) ? '_status' : undefined].filter(_util.isDefined));
|
|
422
445
|
|
|
423
|
-
exports.
|
|
446
|
+
exports.getBuiltinPropertyNames = getBuiltinPropertyNames;
|
|
424
447
|
|
|
425
448
|
function applyBuiltinPropertiesToShape(projectSchema, shape) {
|
|
449
|
+
const builtinSet = getBuiltinPropertiesSet(projectSchema, shape);
|
|
450
|
+
|
|
451
|
+
if (builtinSet === 'none') {
|
|
452
|
+
return shape;
|
|
453
|
+
}
|
|
454
|
+
|
|
426
455
|
return { ...shape,
|
|
427
456
|
schema: { ...shape.schema,
|
|
428
|
-
properties: { ...(0, _omitBy.default)((0, _refs.dereferenceObjectSchema)(projectSchema, shape.schema).properties, (_, name) => name.startsWith('_')),
|
|
429
|
-
...
|
|
430
|
-
...((0, _apiVersion.workflowsEnabled)(projectSchema.apiVersion) && {
|
|
457
|
+
properties: { ...(0, _omitBy.default)((0, _refs.dereferenceObjectSchema)(projectSchema, shape.schema, ['shapes', shape.name]).properties, (_, name) => name.startsWith('_')),
|
|
458
|
+
...getBuiltinProperties(shape.id, builtinSet, projectSchema.apiVersion),
|
|
459
|
+
...(builtinSet === 'model' && (0, _apiVersion.workflowsEnabled)(projectSchema.apiVersion) && {
|
|
431
460
|
_status: (0, _workflows.getStatusField)(projectSchema.workflows, shape)
|
|
432
461
|
})
|
|
433
462
|
}
|
|
@@ -482,7 +511,7 @@ function applyDefaultsToSchema(projectSchema) {
|
|
|
482
511
|
};
|
|
483
512
|
}
|
|
484
513
|
|
|
485
|
-
return
|
|
514
|
+
return applyBuiltinPropertiesToShape(projectSchema, shape);
|
|
486
515
|
}),
|
|
487
516
|
forms: (0, _mapValues.default)({ ..._builtinSchema.builtInForms,
|
|
488
517
|
...projectSchema.forms
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/schema",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.99.1",
|
|
4
4
|
"description": "TakeShape Schema",
|
|
5
5
|
"homepage": "https://www.takeshape.io",
|
|
6
6
|
"repository": {
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"examples"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@takeshape/errors": "8.
|
|
25
|
-
"@takeshape/json-schema": "8.
|
|
26
|
-
"@takeshape/util": "8.
|
|
24
|
+
"@takeshape/errors": "8.99.1",
|
|
25
|
+
"@takeshape/json-schema": "8.99.1",
|
|
26
|
+
"@takeshape/util": "8.99.1",
|
|
27
27
|
"ajv": "^8.10.0",
|
|
28
28
|
"ajv-formats": "^2.1.1",
|
|
29
29
|
"blueimp-md5": "^2.10.0",
|