@takeshape/schema 8.213.0 → 8.215.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.
- package/dist/create-input-schema.d.ts.map +1 -1
- package/dist/create-input-schema.js +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/interfaces.d.ts +10 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +73 -0
- package/dist/migration/index.d.ts +2 -0
- package/dist/migration/index.d.ts.map +1 -1
- package/dist/migration/index.js +7 -1
- package/dist/migration/to/v3.20.0.d.ts +5 -0
- package/dist/migration/to/v3.20.0.d.ts.map +1 -0
- package/dist/migration/to/v3.20.0.js +34 -0
- package/dist/migration/to/v3.21.0.d.ts +5 -0
- package/dist/migration/to/v3.21.0.d.ts.map +1 -0
- package/dist/migration/to/v3.21.0.js +18 -0
- package/dist/project-schema/index.d.ts +7 -1
- package/dist/project-schema/index.d.ts.map +1 -1
- package/dist/project-schema/index.js +37 -3
- package/dist/project-schema/latest.d.ts +3 -1
- package/dist/project-schema/latest.d.ts.map +1 -1
- package/dist/project-schema/migrate.d.ts.map +1 -1
- package/dist/project-schema/migrate.js +8 -0
- package/dist/project-schema/v3.20.0.d.ts +1337 -0
- package/dist/project-schema/v3.20.0.d.ts.map +1 -0
- package/dist/project-schema/v3.20.0.js +5 -0
- package/dist/project-schema/v3.21.0.d.ts +1339 -0
- package/dist/project-schema/v3.21.0.d.ts.map +1 -0
- package/dist/project-schema/v3.21.0.js +5 -0
- package/dist/refs.d.ts +1 -1
- package/dist/refs.d.ts.map +1 -1
- package/dist/refs.js +2 -2
- package/dist/schema-util.d.ts +1 -1
- package/dist/schema-util.d.ts.map +1 -1
- package/dist/schema-util.js +9 -5
- package/dist/schemas/index.d.ts +2 -2
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +8 -4
- package/dist/schemas/index.ts +6 -2
- package/dist/schemas/project-schema/latest.json +9 -2
- package/dist/schemas/project-schema/v3.20.0.json +2363 -0
- package/dist/schemas/project-schema/v3.21.0.json +2370 -0
- package/dist/schemas/project-schema.json +6 -0
- package/dist/types/types.d.ts +2 -2
- package/dist/types/types.d.ts.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +161 -4
- package/es/create-input-schema.js +7 -0
- package/es/index.js +2 -1
- package/es/interfaces.js +55 -0
- package/es/migration/index.js +5 -1
- package/es/migration/to/v3.20.0.js +24 -0
- package/es/migration/to/v3.21.0.js +10 -0
- package/es/project-schema/index.js +5 -1
- package/es/project-schema/migrate.js +9 -1
- package/es/project-schema/v3.20.0.js +1 -0
- package/es/project-schema/v3.21.0.js +1 -0
- package/es/refs.js +2 -2
- package/es/schema-util.js +9 -5
- package/es/schemas/index.js +5 -3
- package/es/schemas/index.ts +6 -2
- package/es/schemas/project-schema/latest.json +9 -2
- package/es/schemas/project-schema/v3.20.0.json +2363 -0
- package/es/schemas/project-schema/v3.21.0.json +2370 -0
- package/es/schemas/project-schema.json +6 -0
- package/es/validate.js +158 -5
- package/examples/latest/betzino.json +1 -1
- package/examples/latest/blog-schema.json +1 -1
- package/examples/latest/brewery-schema.json +1 -1
- package/examples/latest/complex-project-schema.json +1 -1
- package/examples/latest/complex-schema.json +1 -1
- package/examples/latest/fabric-ecommerce.json +3 -2
- package/examples/latest/frank-and-fred-schema.json +1 -1
- package/examples/latest/klirr-schema.json +1 -1
- package/examples/latest/massive-schema.json +1 -1
- package/examples/latest/mill-components-schema.json +1 -1
- package/examples/latest/one-earth.json +1 -1
- package/examples/latest/pet-oneof-array.json +1 -1
- package/examples/latest/post-schema.json +1 -1
- package/examples/latest/pruned-shopify-product-schema.json +3 -2
- package/examples/latest/real-world-schema.json +1 -1
- package/examples/latest/recursive-repeater-schema.json +1 -1
- package/examples/latest/recursive-schema.json +1 -1
- package/examples/latest/rick-and-morty-ast.json +1 -1
- package/examples/latest/rick-and-morty-graphql.json +1 -1
- package/examples/latest/rick-and-morty-rest.json +1 -1
- package/examples/latest/schema-with-repeater-draftjs.json +1 -1
- package/examples/latest/shape-books-v3_2_0.json +1 -1
- package/examples/latest/shape-books.json +1 -1
- package/examples/latest/shopify-lookbook.json +3 -2
- package/examples/latest/shopify-product-2022-07.json +26799 -1888
- package/examples/latest/shopify-store-with-widget.json +3 -2
- package/examples/latest/stripe-product-runtime-schema.json +4426 -0
- package/examples/latest/stripe-starter-resolved.json +1 -1
- package/examples/latest/user-schema-no-required.json +1 -1
- package/examples/latest/user-schema-with-defaults.json +1 -1
- package/examples/source/shopify-product-2022-07.json +26799 -1888
- package/examples/source/stripe-product-runtime-schema.json +4426 -0
- package/package.json +4 -4
|
@@ -87,6 +87,12 @@
|
|
|
87
87
|
{
|
|
88
88
|
"$ref": "https://schema.takeshape.io/project-schema/v3.19.0#"
|
|
89
89
|
},
|
|
90
|
+
{
|
|
91
|
+
"$ref": "https://schema.takeshape.io/project-schema/v3.20.0#"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"$ref": "https://schema.takeshape.io/project-schema/v3.21.0#"
|
|
95
|
+
},
|
|
90
96
|
{
|
|
91
97
|
"$ref": "https://schema.takeshape.io/project-schema/v4.0.0#"
|
|
92
98
|
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SetRequired, Merge, PartialDeep, SetOptional } from 'type-fest';
|
|
2
|
-
import type { ProjectSchema, ProjectSchemaV3_0_0, ProjectSchemaV3_1_0, ProjectSchemaV3_2_0, ProjectSchemaV3_3_0, ProjectSchemaV3_4_0, ProjectSchemaV3_5_0, ProjectSchemaV3_5_1, ProjectSchemaV3_6_0, ProjectSchemaV3_7_0, ProjectSchemaV3_8_0, ProjectSchemaV3_9_0, ProjectSchemaV3_10_0, ProjectSchemaV3_11_0, ProjectSchemaV3_12_0, ProjectSchemaV3_12_1, ProjectSchemaV3_12_2, ProjectSchemaV3_12_3, ProjectSchemaV3_13_0, ProjectSchemaV3_14_0, ProjectSchemaV3_15_0, ProjectSchemaV3_16_0, ProjectSchemaV3_17_0, ProjectSchemaV3_17_1, ProjectSchemaV3_18_0, ProjectSchemaV3_18_1, ProjectSchemaV3_18_2, ProjectSchemaV3_19_0, Query, PropertySchema, StoredServiceMap, ServiceConfig, OAuth2Authentication, CustomAuthentication, ServiceAuthentication, AnyProjectSchema, Ref } from '../project-schema';
|
|
2
|
+
import type { ProjectSchema, ProjectSchemaV3_0_0, ProjectSchemaV3_1_0, ProjectSchemaV3_2_0, ProjectSchemaV3_3_0, ProjectSchemaV3_4_0, ProjectSchemaV3_5_0, ProjectSchemaV3_5_1, ProjectSchemaV3_6_0, ProjectSchemaV3_7_0, ProjectSchemaV3_8_0, ProjectSchemaV3_9_0, ProjectSchemaV3_10_0, ProjectSchemaV3_11_0, ProjectSchemaV3_12_0, ProjectSchemaV3_12_1, ProjectSchemaV3_12_2, ProjectSchemaV3_12_3, ProjectSchemaV3_13_0, ProjectSchemaV3_14_0, ProjectSchemaV3_15_0, ProjectSchemaV3_16_0, ProjectSchemaV3_17_0, ProjectSchemaV3_17_1, ProjectSchemaV3_18_0, ProjectSchemaV3_18_1, ProjectSchemaV3_18_2, ProjectSchemaV3_19_0, ProjectSchemaV3_20_0, ProjectSchemaV3_21_0, Query, PropertySchema, StoredServiceMap, ServiceConfig, OAuth2Authentication, CustomAuthentication, ServiceAuthentication, AnyProjectSchema, Ref } from '../project-schema';
|
|
3
3
|
import type { Overwrite } from '@takeshape/util';
|
|
4
4
|
import { SERVICE_OBJECT_PATTERN_NAME } from '../schema-util';
|
|
5
5
|
/**
|
|
@@ -7,7 +7,7 @@ import { SERVICE_OBJECT_PATTERN_NAME } from '../schema-util';
|
|
|
7
7
|
* only type used in most runtime code. Updating this to a new version should
|
|
8
8
|
* trigger type errors that clue you in to code that needs review.
|
|
9
9
|
*/
|
|
10
|
-
export declare type ProjectSchemaV3X = ProjectSchemaV3_19_0 | ProjectSchemaV3_18_2 | ProjectSchemaV3_18_1 | ProjectSchemaV3_18_0 | ProjectSchemaV3_17_1 | ProjectSchemaV3_17_0 | ProjectSchemaV3_16_0 | ProjectSchemaV3_15_0 | ProjectSchemaV3_14_0 | ProjectSchemaV3_13_0 | ProjectSchemaV3_12_3 | ProjectSchemaV3_12_2 | ProjectSchemaV3_12_1 | ProjectSchemaV3_12_0 | ProjectSchemaV3_11_0 | ProjectSchemaV3_10_0 | ProjectSchemaV3_9_0 | ProjectSchemaV3_8_0 | ProjectSchemaV3_7_0 | ProjectSchemaV3_6_0 | ProjectSchemaV3_5_1 | ProjectSchemaV3_5_0 | ProjectSchemaV3_4_0 | ProjectSchemaV3_3_0 | ProjectSchemaV3_2_0 | ProjectSchemaV3_1_0 | ProjectSchemaV3_0_0;
|
|
10
|
+
export declare type ProjectSchemaV3X = ProjectSchemaV3_21_0 | ProjectSchemaV3_20_0 | ProjectSchemaV3_19_0 | ProjectSchemaV3_18_2 | ProjectSchemaV3_18_1 | ProjectSchemaV3_18_0 | ProjectSchemaV3_17_1 | ProjectSchemaV3_17_0 | ProjectSchemaV3_16_0 | ProjectSchemaV3_15_0 | ProjectSchemaV3_14_0 | ProjectSchemaV3_13_0 | ProjectSchemaV3_12_3 | ProjectSchemaV3_12_2 | ProjectSchemaV3_12_1 | ProjectSchemaV3_12_0 | ProjectSchemaV3_11_0 | ProjectSchemaV3_10_0 | ProjectSchemaV3_9_0 | ProjectSchemaV3_8_0 | ProjectSchemaV3_7_0 | ProjectSchemaV3_6_0 | ProjectSchemaV3_5_1 | ProjectSchemaV3_5_0 | ProjectSchemaV3_4_0 | ProjectSchemaV3_3_0 | ProjectSchemaV3_2_0 | ProjectSchemaV3_1_0 | ProjectSchemaV3_0_0;
|
|
11
11
|
export declare const projectSchemaImportOptionalProps: readonly ["projectId", "created", "updated", "dataKey", "version", "locales", "defaultLocale", "author"];
|
|
12
12
|
export declare type ProjectSchemaImport = SetOptional<AnyProjectSchema, typeof projectSchemaImportOptionalProps[number]>;
|
|
13
13
|
export interface Content {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAC,MAAM,KAAK,CAAC;AACvD,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAmB,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EASb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAC,MAAM,KAAK,CAAC;AACvD,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAmB,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EASb,iBAAiB,EAUlB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAwB,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AA0pBnF,oBAAY,sBAAsB,GAC9B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,GAC1D;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,yBAAyB,EAAE,CAAA;CAAC,CAAC;AAE3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,yBAAyB,CAuBzE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,sBAAsB,CAAC;CAClF;AACD,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;CACnE;AAuKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAqB9F;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAgBnE;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAQpE;AAgBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAQlE;AAqBD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,mBAAmB,CAarF"}
|
package/dist/validate.js
CHANGED
|
@@ -70,6 +70,14 @@ var _relationships = require("./relationships");
|
|
|
70
70
|
|
|
71
71
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
72
72
|
|
|
73
|
+
var _gte = _interopRequireDefault(require("semver/functions/gte"));
|
|
74
|
+
|
|
75
|
+
var _size = _interopRequireDefault(require("lodash/size"));
|
|
76
|
+
|
|
77
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
78
|
+
|
|
79
|
+
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
80
|
+
|
|
73
81
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
74
82
|
|
|
75
83
|
function findDuplicates(items) {
|
|
@@ -201,6 +209,10 @@ function validateWorkflowsV3(projectSchema) {
|
|
|
201
209
|
return errors;
|
|
202
210
|
}
|
|
203
211
|
|
|
212
|
+
function getSemver(schemaVersion) {
|
|
213
|
+
return (0, _coerce2.default)(schemaVersion) ?? _versions.LEGACY_SCHEMA_VERSION;
|
|
214
|
+
}
|
|
215
|
+
|
|
204
216
|
function validateResolver(projectSchema, basePath, resolver) {
|
|
205
217
|
const errors = [];
|
|
206
218
|
/**
|
|
@@ -228,7 +240,7 @@ function validateResolver(projectSchema, basePath, resolver) {
|
|
|
228
240
|
return Boolean((modelShape === null || modelShape === void 0 ? void 0 : modelShape.model) || shapeName && ((_indexedShapes = projectSchema.indexedShapes) === null || _indexedShapes === void 0 ? void 0 : _indexedShapes[shapeName]));
|
|
229
241
|
};
|
|
230
242
|
|
|
231
|
-
const isLessThanV3_9_0 = (0, _lt.default)((
|
|
243
|
+
const isLessThanV3_9_0 = (0, _lt.default)(getSemver(projectSchema.schemaVersion), '3.9.0');
|
|
232
244
|
|
|
233
245
|
const validateBasicResolver = resolver => {
|
|
234
246
|
if ((0, _utils.isBasicResolver)(resolver)) {
|
|
@@ -364,7 +376,7 @@ function validateIndexedShapeConfig(projectSchema, shapeName, config) {
|
|
|
364
376
|
function validateIndexedShapes(projectSchema) {
|
|
365
377
|
let errors = [];
|
|
366
378
|
|
|
367
|
-
if ((0, _gt.default)((
|
|
379
|
+
if ((0, _gt.default)(getSemver(projectSchema.schemaVersion), '3.12.0')) {
|
|
368
380
|
const {
|
|
369
381
|
indexedShapes
|
|
370
382
|
} = projectSchema;
|
|
@@ -449,7 +461,7 @@ function visitShapePropertiesJson(projectSchema, callback) {
|
|
|
449
461
|
function validateDirectives(projectSchema, additionalShapeIds = builtInModelShapeIds) {
|
|
450
462
|
const errors = [];
|
|
451
463
|
const projectShapeIds = new Set([...getModelShapeIds(projectSchema.shapes), ...additionalShapeIds]);
|
|
452
|
-
const isLessThanV3_18_0 = (0, _lt.default)((
|
|
464
|
+
const isLessThanV3_18_0 = (0, _lt.default)(getSemver(projectSchema.schemaVersion), '3.18.0');
|
|
453
465
|
visitShapePropertiesJson(projectSchema, (property, propertyPath) => {
|
|
454
466
|
if (isLessThanV3_18_0) {
|
|
455
467
|
const propSchema = property;
|
|
@@ -530,6 +542,151 @@ function validateLocales(projectSchema) {
|
|
|
530
542
|
return errors;
|
|
531
543
|
}
|
|
532
544
|
|
|
545
|
+
const importantFields = ['type', '@ref', 'allOf', 'oneOf', 'anyOf', 'extends', 'items', '@tag'];
|
|
546
|
+
|
|
547
|
+
function isSchemaEqual(a, b) {
|
|
548
|
+
return (0, _isEqual.default)((0, _pick.default)(a, importantFields), (0, _pick.default)(b, importantFields));
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
function matchesInterface(shape, interfaceShape, path) {
|
|
552
|
+
const errors = [];
|
|
553
|
+
const {
|
|
554
|
+
schema
|
|
555
|
+
} = shape;
|
|
556
|
+
const interfaceSchema = interfaceShape.schema;
|
|
557
|
+
|
|
558
|
+
for (const name of Object.keys(interfaceSchema.properties)) {
|
|
559
|
+
const propSchema = schema.properties[name];
|
|
560
|
+
const interfacePropSchema = interfaceSchema.properties[name];
|
|
561
|
+
|
|
562
|
+
if (!propSchema) {
|
|
563
|
+
errors.push({
|
|
564
|
+
type: 'notFound',
|
|
565
|
+
path,
|
|
566
|
+
message: `"${shape.name}" is missing property "${name}" required by interface "${interfaceShape.name}"`
|
|
567
|
+
});
|
|
568
|
+
} else if (!isSchemaEqual(propSchema, interfacePropSchema)) {
|
|
569
|
+
errors.push({
|
|
570
|
+
type: 'conflict',
|
|
571
|
+
path: [...path, name],
|
|
572
|
+
message: `"${shape.name}.${name}" must match "${interfaceShape.name}.${name}"`
|
|
573
|
+
});
|
|
574
|
+
} else {
|
|
575
|
+
var _schema$required, _interfaceSchema$requ;
|
|
576
|
+
|
|
577
|
+
const propRequired = Boolean((_schema$required = schema.required) === null || _schema$required === void 0 ? void 0 : _schema$required.includes(name));
|
|
578
|
+
const interfacePropRequired = Boolean((_interfaceSchema$requ = interfaceSchema.required) === null || _interfaceSchema$requ === void 0 ? void 0 : _interfaceSchema$requ.includes(name));
|
|
579
|
+
|
|
580
|
+
if (interfacePropRequired !== propRequired) {
|
|
581
|
+
errors.push({
|
|
582
|
+
type: 'conflict',
|
|
583
|
+
path: [...path, name],
|
|
584
|
+
message: `"${shape.name}.${name}" must ${interfacePropRequired ? '' : 'not '}be required to match "${interfaceShape.name}.${name}"`
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
return errors;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
function validateShapeImplementsInterface(projectSchema, shape, interfaceShapeName, path) {
|
|
594
|
+
const errors = [];
|
|
595
|
+
const interfaceShape = projectSchema.shapes[interfaceShapeName];
|
|
596
|
+
|
|
597
|
+
if (!interfaceShape) {
|
|
598
|
+
errors.push({
|
|
599
|
+
type: 'notFound',
|
|
600
|
+
path,
|
|
601
|
+
message: `Invalid interface "${interfaceShapeName}" not found`
|
|
602
|
+
});
|
|
603
|
+
} else if (interfaceShape.type !== 'interface') {
|
|
604
|
+
errors.push({
|
|
605
|
+
type: 'conflict',
|
|
606
|
+
path,
|
|
607
|
+
message: `"${shape.name}" cannot implement non-interface "${interfaceShape.name}"`
|
|
608
|
+
});
|
|
609
|
+
} else if ((0, _utils.isExtendsSchema)(shape.schema)) {// TODO stricter extends validation needs https://app.shortcut.com/takeshape/story/9783/use-service-schemas-during-schema-validation
|
|
610
|
+
} else if ((0, _utils.isObjectSchema)(shape.schema) && (0, _utils.isObjectSchema)(interfaceShape.schema)) {
|
|
611
|
+
const matchErrors = matchesInterface(shape, interfaceShape, ['shapes', shape.name, 'schema', 'properties']);
|
|
612
|
+
|
|
613
|
+
if (matchErrors.length) {
|
|
614
|
+
errors.push(...matchErrors);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
return errors;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
function validateInterfaceImplementations(projectSchema) {
|
|
622
|
+
if (!(0, _gte.default)(getSemver(projectSchema.schemaVersion), '3.21.0')) {
|
|
623
|
+
return [];
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
const errors = [];
|
|
627
|
+
|
|
628
|
+
for (const shape of Object.values(projectSchema.shapes)) {
|
|
629
|
+
var _shape$interfaces;
|
|
630
|
+
|
|
631
|
+
if ((_shape$interfaces = shape.interfaces) !== null && _shape$interfaces !== void 0 && _shape$interfaces.length) {
|
|
632
|
+
if (!(0, _utils.isObjectSchema)(shape.schema) && !(0, _utils.isExtendsSchema)(shape.schema)) {
|
|
633
|
+
return [{
|
|
634
|
+
path: ['shapes', shape.name, 'schema'],
|
|
635
|
+
type: 'conflict',
|
|
636
|
+
message: `"${shape.name}" must have an object or extends schema to implement interfaces`
|
|
637
|
+
}];
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
for (let i = 0; i < shape.interfaces.length; i++) {
|
|
641
|
+
const path = ['shapes', shape.name, 'interfaces', i];
|
|
642
|
+
const interfaceErrors = validateShapeImplementsInterface(projectSchema, shape, shape.interfaces[i], path);
|
|
643
|
+
|
|
644
|
+
if (interfaceErrors.length) {
|
|
645
|
+
errors.push(...interfaceErrors);
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
return errors;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
function validateInterfaces(projectSchema) {
|
|
655
|
+
if (!(0, _gte.default)(getSemver(projectSchema.schemaVersion), '3.21.0')) {
|
|
656
|
+
return [];
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
const errors = []; // Validate interface shapes must be an object schema with at least one property
|
|
660
|
+
|
|
661
|
+
for (const shape of Object.values(projectSchema.shapes)) {
|
|
662
|
+
if (shape.type === 'interface') {
|
|
663
|
+
if (shape.model) {
|
|
664
|
+
errors.push({
|
|
665
|
+
path: ['shapes', shape.name, 'model'],
|
|
666
|
+
type: 'conflict',
|
|
667
|
+
message: `"${shape.name}" may not be both an interface and model. Create a separate model shape which implements this interface.`
|
|
668
|
+
});
|
|
669
|
+
} else if ((0, _utils.isObjectSchema)(shape.schema)) {
|
|
670
|
+
if ((0, _size.default)(shape.schema.properties) === 0) {
|
|
671
|
+
errors.push({
|
|
672
|
+
path: ['shapes', shape.name, 'schema', 'properties'],
|
|
673
|
+
type: 'conflict',
|
|
674
|
+
message: `Interface "${shape.name}" must define at least one property`
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
} else {
|
|
678
|
+
errors.push({
|
|
679
|
+
path: ['shapes', shape.name, 'schema'],
|
|
680
|
+
type: 'conflict',
|
|
681
|
+
message: `Interface "${shape.name}" must define an object schema`
|
|
682
|
+
});
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
return errors;
|
|
688
|
+
}
|
|
689
|
+
|
|
533
690
|
function formatError(error) {
|
|
534
691
|
let pathStr = error.instancePath;
|
|
535
692
|
let message = error.message ?? '';
|
|
@@ -607,7 +764,7 @@ function validateV3X(version, obj, options) {
|
|
|
607
764
|
const namespaceShapes = (0, _schemaUtil.getAllNamespaceShapes)(schema);
|
|
608
765
|
const additionalShapeNames = (options !== null && options !== void 0 && options.additionalShapeNames ? builtInShapeNames.concat(options.additionalShapeNames) : builtInShapeNames).concat(namespaceShapes);
|
|
609
766
|
const additionalModelShapeIds = options !== null && options !== void 0 && options.additionalModelShapeIds ? builtInModelShapeIds.concat(options.additionalModelShapeIds) : builtInModelShapeIds;
|
|
610
|
-
errors = errors.concat(checkShapeNames(schema.shapes)).concat(checkShapeIds(schema.shapes)).concat(validateWorkflowsV3(schema)).concat(validateQueryConfigs(schema, additionalShapeNames)).concat(validateRefs(schema, additionalShapeNames)).concat(validateDirectives(schema, additionalModelShapeIds)).concat(validateLocales(schema)).concat(checkWorkflowStepNames(schema.workflows)).concat(checkWorkflowStepKeys(schema.workflows)).concat(validateOneOfs(schema)).concat(validateIndexedShapes(schema));
|
|
767
|
+
errors = errors.concat(checkShapeNames(schema.shapes)).concat(checkShapeIds(schema.shapes)).concat(validateWorkflowsV3(schema)).concat(validateQueryConfigs(schema, additionalShapeNames)).concat(validateRefs(schema, additionalShapeNames)).concat(validateDirectives(schema, additionalModelShapeIds)).concat(validateLocales(schema)).concat(checkWorkflowStepNames(schema.workflows)).concat(checkWorkflowStepKeys(schema.workflows)).concat(validateOneOfs(schema)).concat(validateIndexedShapes(schema)).concat(validateInterfaces(schema)).concat(validateInterfaceImplementations(schema));
|
|
611
768
|
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
612
769
|
|
|
613
770
|
if (suppressErrorPaths) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import defaults from 'lodash/fp/defaults';
|
|
2
2
|
import { isRecord } from '@takeshape/util';
|
|
3
|
+
import omitBy from 'lodash/omitBy';
|
|
3
4
|
const inputSchemaCache = new Map();
|
|
4
5
|
|
|
5
6
|
function getInputSchemaCache(options) {
|
|
@@ -42,6 +43,12 @@ export function createInputSchema(schema, options = {}) {
|
|
|
42
43
|
delete value.default;
|
|
43
44
|
}
|
|
44
45
|
|
|
46
|
+
if (value.type === 'object' && isRecord(value.properties)) {
|
|
47
|
+
return { ...value,
|
|
48
|
+
properties: omitBy(value.properties, prop => isRecord(prop) && prop['@resolver'] && !prop['@input'])
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
45
52
|
if (isRecord(value['@input'])) {
|
|
46
53
|
const {
|
|
47
54
|
'@input': input,
|
package/es/index.js
CHANGED
package/es/interfaces.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { getRef, refItemToShape } from './refs';
|
|
2
|
+
import mapValues from 'lodash/mapValues';
|
|
3
|
+
export function isInterfaceShape(shape) {
|
|
4
|
+
return (shape === null || shape === void 0 ? void 0 : shape.type) === 'interface';
|
|
5
|
+
}
|
|
6
|
+
export function isInterfaceRef(context, propertySchema) {
|
|
7
|
+
const ref = getRef(context, propertySchema);
|
|
8
|
+
return Boolean(ref && isInterfaceShape(refItemToShape(context, ref)));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function add(record, key, value) {
|
|
12
|
+
if (!record[key]) {
|
|
13
|
+
record[key] = new Set([value]);
|
|
14
|
+
} else {
|
|
15
|
+
record[key].add(value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function getImplementationsHelper(shapeMap, mapFn) {
|
|
20
|
+
const result = {};
|
|
21
|
+
|
|
22
|
+
for (const shape of Object.values(shapeMap)) {
|
|
23
|
+
for (const interfaceName of shape.interfaces ?? []) {
|
|
24
|
+
add(result, interfaceName, mapFn(shape));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function getImplementationShapeMap(shapeMap) {
|
|
32
|
+
return getImplementationsHelper(shapeMap, x => x);
|
|
33
|
+
}
|
|
34
|
+
export function getImplementationShapeNameMap(shapeMap) {
|
|
35
|
+
return getImplementationsHelper(shapeMap, shape => shape.name);
|
|
36
|
+
}
|
|
37
|
+
export function pruneUnusedInterfaces(shapeMap) {
|
|
38
|
+
return mapValues(shapeMap, shape => {
|
|
39
|
+
const {
|
|
40
|
+
interfaces
|
|
41
|
+
} = shape;
|
|
42
|
+
|
|
43
|
+
if (interfaces !== null && interfaces !== void 0 && interfaces.length) {
|
|
44
|
+
const filteredInterfaces = interfaces.filter(name => shapeMap[name]);
|
|
45
|
+
|
|
46
|
+
if (interfaces.length !== filteredInterfaces.length) {
|
|
47
|
+
return { ...shape,
|
|
48
|
+
interfaces: filteredInterfaces
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return shape;
|
|
54
|
+
});
|
|
55
|
+
}
|
package/es/migration/index.js
CHANGED
|
@@ -25,6 +25,8 @@ import migrateToV3_18_0 from './to/v3.18.0';
|
|
|
25
25
|
import migrateToV3_18_1 from './to/v3.18.1';
|
|
26
26
|
import migrateToV3_18_2 from './to/v3.18.2';
|
|
27
27
|
import migrateToV3_19_0 from './to/v3.19.0';
|
|
28
|
+
import migrateToV3_20_0 from './to/v3.20.0';
|
|
29
|
+
import migrateToV3_21_0 from './to/v3.21.0';
|
|
28
30
|
export const migrateTo = {
|
|
29
31
|
'v3.0.0': migrateToV3_0_0,
|
|
30
32
|
'v3.1.0': migrateToV3_1_0,
|
|
@@ -52,7 +54,9 @@ export const migrateTo = {
|
|
|
52
54
|
'v3.18.0': migrateToV3_18_0,
|
|
53
55
|
'v3.18.1': migrateToV3_18_1,
|
|
54
56
|
'v3.18.2': migrateToV3_18_2,
|
|
55
|
-
'v3.19.0': migrateToV3_19_0
|
|
57
|
+
'v3.19.0': migrateToV3_19_0,
|
|
58
|
+
'v3.20.0': migrateToV3_20_0,
|
|
59
|
+
'v3.21.0': migrateToV3_21_0
|
|
56
60
|
};
|
|
57
61
|
export * from './utils';
|
|
58
62
|
export const listTypePrefix = 'PaginatedList';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import mapValues from 'lodash/mapValues';
|
|
2
|
+
|
|
3
|
+
function updateGenericServices(projectSchema) {
|
|
4
|
+
if (projectSchema.services) {
|
|
5
|
+
return { ...projectSchema,
|
|
6
|
+
services: mapValues(projectSchema.services, serviceConfig => // generic provider has been renamed to match service type
|
|
7
|
+
serviceConfig.provider === 'shopify' ? { ...serviceConfig,
|
|
8
|
+
options: { ...serviceConfig.options,
|
|
9
|
+
legacyApp: true
|
|
10
|
+
}
|
|
11
|
+
} : serviceConfig)
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return projectSchema;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const migrate = async (_, projectSchema) => {
|
|
19
|
+
return { ...updateGenericServices(projectSchema),
|
|
20
|
+
schemaVersion: '3.20.0'
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default migrate;
|
|
@@ -28,6 +28,8 @@ export * from './v3.18.0';
|
|
|
28
28
|
export * from './v3.18.1';
|
|
29
29
|
export * from './v3.18.2';
|
|
30
30
|
export * from './v3.19.0';
|
|
31
|
+
export * from './v3.20.0';
|
|
32
|
+
export * from './v3.21.0';
|
|
31
33
|
export * from './v4.0.0';
|
|
32
34
|
|
|
33
35
|
// Schema type utilities
|
|
@@ -77,5 +79,7 @@ export const isProjectSchemaV3_18_0 = createVersionPredicate('3.18.0');
|
|
|
77
79
|
export const isProjectSchemaV3_18_1 = createVersionPredicate('3.18.1');
|
|
78
80
|
export const isProjectSchemaV3_18_2 = createVersionPredicate('3.18.2');
|
|
79
81
|
export const isProjectSchemaV3_19_0 = createVersionPredicate('3.19.0');
|
|
80
|
-
export const
|
|
82
|
+
export const isProjectSchemaV3_20_0 = createVersionPredicate('3.20.0');
|
|
83
|
+
export const isProjectSchemaV3_21_0 = createVersionPredicate('3.21.0');
|
|
84
|
+
export const isLatestProjectSchema = createVersionPredicate('3.21.0');
|
|
81
85
|
export const isProjectSchemaV4_0_0 = createVersionPredicate('4.0.0');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated by "pnpm json2ts"
|
|
2
2
|
import { migrateTo } from '../migration';
|
|
3
|
-
import { isProjectSchemaV1_0_0, isProjectSchemaV3_0_0, isProjectSchemaV3_1_0, isProjectSchemaV3_2_0, isProjectSchemaV3_3_0, isProjectSchemaV3_4_0, isProjectSchemaV3_5_0, isProjectSchemaV3_5_1, isProjectSchemaV3_6_0, isProjectSchemaV3_7_0, isProjectSchemaV3_8_0, isProjectSchemaV3_9_0, isProjectSchemaV3_10_0, isProjectSchemaV3_11_0, isProjectSchemaV3_12_0, isProjectSchemaV3_12_1, isProjectSchemaV3_12_2, isProjectSchemaV3_12_3, isProjectSchemaV3_13_0, isProjectSchemaV3_14_0, isProjectSchemaV3_15_0, isProjectSchemaV3_16_0, isProjectSchemaV3_17_0, isProjectSchemaV3_17_1, isProjectSchemaV3_18_0, isProjectSchemaV3_18_1, isProjectSchemaV3_18_2, isProjectSchemaV4_0_0, isLatestProjectSchema } from './index'; // eslint-disable-next-line complexity
|
|
3
|
+
import { isProjectSchemaV1_0_0, isProjectSchemaV3_0_0, isProjectSchemaV3_1_0, isProjectSchemaV3_2_0, isProjectSchemaV3_3_0, isProjectSchemaV3_4_0, isProjectSchemaV3_5_0, isProjectSchemaV3_5_1, isProjectSchemaV3_6_0, isProjectSchemaV3_7_0, isProjectSchemaV3_8_0, isProjectSchemaV3_9_0, isProjectSchemaV3_10_0, isProjectSchemaV3_11_0, isProjectSchemaV3_12_0, isProjectSchemaV3_12_1, isProjectSchemaV3_12_2, isProjectSchemaV3_12_3, isProjectSchemaV3_13_0, isProjectSchemaV3_14_0, isProjectSchemaV3_15_0, isProjectSchemaV3_16_0, isProjectSchemaV3_17_0, isProjectSchemaV3_17_1, isProjectSchemaV3_18_0, isProjectSchemaV3_18_1, isProjectSchemaV3_18_2, isProjectSchemaV3_19_0, isProjectSchemaV3_20_0, isProjectSchemaV4_0_0, isLatestProjectSchema } from './index'; // eslint-disable-next-line complexity
|
|
4
4
|
|
|
5
5
|
export async function migrateToLatestProjectSchema(context, projectSchema) {
|
|
6
6
|
if (isLatestProjectSchema(projectSchema)) {
|
|
@@ -115,6 +115,14 @@ export async function migrateToLatestProjectSchema(context, projectSchema) {
|
|
|
115
115
|
projectSchema = await migrateTo['v3.19.0'](context, projectSchema);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
if (isProjectSchemaV3_19_0(projectSchema)) {
|
|
119
|
+
projectSchema = await migrateTo['v3.20.0'](context, projectSchema);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (isProjectSchemaV3_20_0(projectSchema)) {
|
|
123
|
+
projectSchema = await migrateTo['v3.21.0'](context, projectSchema);
|
|
124
|
+
}
|
|
125
|
+
|
|
118
126
|
if (isProjectSchemaV4_0_0(projectSchema)) {
|
|
119
127
|
throw new Error('You are using an unreleased schema version. Migration is not possible');
|
|
120
128
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/refs.js
CHANGED
|
@@ -356,8 +356,8 @@ export const omitRefAndExtend = (targetSchema, sourceSchema) => assign(omit(['@r
|
|
|
356
356
|
* in place of the reference.
|
|
357
357
|
*/
|
|
358
358
|
|
|
359
|
-
export function followRef(context, schema) {
|
|
360
|
-
const refItem = getRef(context, schema);
|
|
359
|
+
export function followRef(context, schema, ref) {
|
|
360
|
+
const refItem = ref ?? getRef(context, schema);
|
|
361
361
|
|
|
362
362
|
if (refItem) {
|
|
363
363
|
const referencedSchema = refItemToShapeSchema(context, refItem);
|
package/es/schema-util.js
CHANGED
|
@@ -910,7 +910,11 @@ export function filterGraphQLServiceMap(serviceMap) {
|
|
|
910
910
|
* Add all referenced shape names to the refSet meant to be used as a callback to visitSchemaProperties
|
|
911
911
|
*/
|
|
912
912
|
|
|
913
|
-
export function collectReferencedShapeNames(
|
|
913
|
+
export function collectReferencedShapeNames(context, shapeNames) {
|
|
914
|
+
const addRef = refItem => {
|
|
915
|
+
shapeNames.add(refItemToShapeName(refItem));
|
|
916
|
+
};
|
|
917
|
+
|
|
914
918
|
const collect = schema => {
|
|
915
919
|
const args = schema['@args'];
|
|
916
920
|
|
|
@@ -918,16 +922,16 @@ export function collectReferencedShapeNames(projectSchema, refSet) {
|
|
|
918
922
|
Object.values(args.properties).forEach(collect);
|
|
919
923
|
}
|
|
920
924
|
|
|
921
|
-
const argsRefItem = getArgsReference(
|
|
925
|
+
const argsRefItem = getArgsReference(context, schema);
|
|
922
926
|
|
|
923
927
|
if (argsRefItem) {
|
|
924
|
-
|
|
928
|
+
addRef(argsRefItem);
|
|
925
929
|
}
|
|
926
930
|
|
|
927
|
-
const refItem = getRefOrItemsRef(
|
|
931
|
+
const refItem = getRefOrItemsRef(context, schema);
|
|
928
932
|
|
|
929
933
|
if (refItem) {
|
|
930
|
-
|
|
934
|
+
addRef(refItem);
|
|
931
935
|
}
|
|
932
936
|
};
|
|
933
937
|
|
package/es/schemas/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// This file is generated by "pnpm json2ts"
|
|
2
|
-
export const CURRENT_SCHEMA_VERSION = '3.
|
|
2
|
+
export const CURRENT_SCHEMA_VERSION = '3.21.0';
|
|
3
3
|
export { default as anyProjectSchema } from './project-schema.json';
|
|
4
|
-
export { default as latestSchemaJson } from './project-schema/v3.
|
|
4
|
+
export { default as latestSchemaJson } from './project-schema/v3.21.0.json';
|
|
5
5
|
import metaSchemaV1_0_0 from './project-schema/meta-schema-v1.0.0.json';
|
|
6
6
|
import projectSchemaV1_0_0 from './project-schema/v1.0.0.json';
|
|
7
7
|
import metaSchemaV3_0_0 from './project-schema/meta-schema-v3.0.0.json';
|
|
@@ -42,5 +42,7 @@ import projectSchemaV3_18_0 from './project-schema/v3.18.0.json';
|
|
|
42
42
|
import projectSchemaV3_18_1 from './project-schema/v3.18.1.json';
|
|
43
43
|
import projectSchemaV3_18_2 from './project-schema/v3.18.2.json';
|
|
44
44
|
import projectSchemaV3_19_0 from './project-schema/v3.19.0.json';
|
|
45
|
+
import projectSchemaV3_20_0 from './project-schema/v3.20.0.json';
|
|
46
|
+
import projectSchemaV3_21_0 from './project-schema/v3.21.0.json';
|
|
45
47
|
import projectSchemaV4_0_0 from './project-schema/v4.0.0.json';
|
|
46
|
-
export const allProjectSchemas = [metaSchemaV1_0_0, projectSchemaV1_0_0, metaSchemaV3_0_0, projectSchemaV3_0_0, metaSchemaV3_1_0, projectSchemaV3_1_0, metaSchemaV3_2_0, projectSchemaV3_2_0, metaSchemaV3_3_0, projectSchemaV3_3_0, metaSchemaV3_4_0, projectSchemaV3_4_0, metaSchemaV3_5_0, projectSchemaV3_5_0, metaSchemaV3_5_1, projectSchemaV3_5_1, metaSchemaV3_6_0, projectSchemaV3_6_0, metaSchemaV3_7_0, projectSchemaV3_7_0, metaSchemaV3_8_0, projectSchemaV3_8_0, metaSchemaV3_9_0, projectSchemaV3_9_0, projectSchemaV3_10_0, projectSchemaV3_11_0, projectSchemaV3_12_0, projectSchemaV3_12_1, projectSchemaV3_12_2, projectSchemaV3_12_3, projectSchemaV3_13_0, projectSchemaV3_14_0, projectSchemaV3_15_0, projectSchemaV3_16_0, projectSchemaV3_17_0, projectSchemaV3_17_1, projectSchemaV3_18_0, projectSchemaV3_18_1, projectSchemaV3_18_2, projectSchemaV3_19_0, projectSchemaV4_0_0];
|
|
48
|
+
export const allProjectSchemas = [metaSchemaV1_0_0, projectSchemaV1_0_0, metaSchemaV3_0_0, projectSchemaV3_0_0, metaSchemaV3_1_0, projectSchemaV3_1_0, metaSchemaV3_2_0, projectSchemaV3_2_0, metaSchemaV3_3_0, projectSchemaV3_3_0, metaSchemaV3_4_0, projectSchemaV3_4_0, metaSchemaV3_5_0, projectSchemaV3_5_0, metaSchemaV3_5_1, projectSchemaV3_5_1, metaSchemaV3_6_0, projectSchemaV3_6_0, metaSchemaV3_7_0, projectSchemaV3_7_0, metaSchemaV3_8_0, projectSchemaV3_8_0, metaSchemaV3_9_0, projectSchemaV3_9_0, projectSchemaV3_10_0, projectSchemaV3_11_0, projectSchemaV3_12_0, projectSchemaV3_12_1, projectSchemaV3_12_2, projectSchemaV3_12_3, projectSchemaV3_13_0, projectSchemaV3_14_0, projectSchemaV3_15_0, projectSchemaV3_16_0, projectSchemaV3_17_0, projectSchemaV3_17_1, projectSchemaV3_18_0, projectSchemaV3_18_1, projectSchemaV3_18_2, projectSchemaV3_19_0, projectSchemaV3_20_0, projectSchemaV3_21_0, projectSchemaV4_0_0];
|
package/es/schemas/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// This file is generated by "pnpm json2ts"
|
|
2
|
-
export const CURRENT_SCHEMA_VERSION = '3.
|
|
2
|
+
export const CURRENT_SCHEMA_VERSION = '3.21.0';
|
|
3
3
|
export {default as anyProjectSchema} from './project-schema.json';
|
|
4
|
-
export {default as latestSchemaJson} from './project-schema/v3.
|
|
4
|
+
export {default as latestSchemaJson} from './project-schema/v3.21.0.json';
|
|
5
5
|
import metaSchemaV1_0_0 from './project-schema/meta-schema-v1.0.0.json';
|
|
6
6
|
import projectSchemaV1_0_0 from './project-schema/v1.0.0.json';
|
|
7
7
|
import metaSchemaV3_0_0 from './project-schema/meta-schema-v3.0.0.json';
|
|
@@ -42,6 +42,8 @@ import projectSchemaV3_18_0 from './project-schema/v3.18.0.json';
|
|
|
42
42
|
import projectSchemaV3_18_1 from './project-schema/v3.18.1.json';
|
|
43
43
|
import projectSchemaV3_18_2 from './project-schema/v3.18.2.json';
|
|
44
44
|
import projectSchemaV3_19_0 from './project-schema/v3.19.0.json';
|
|
45
|
+
import projectSchemaV3_20_0 from './project-schema/v3.20.0.json';
|
|
46
|
+
import projectSchemaV3_21_0 from './project-schema/v3.21.0.json';
|
|
45
47
|
import projectSchemaV4_0_0 from './project-schema/v4.0.0.json';
|
|
46
48
|
export const allProjectSchemas = [
|
|
47
49
|
metaSchemaV1_0_0,
|
|
@@ -84,5 +86,7 @@ export const allProjectSchemas = [
|
|
|
84
86
|
projectSchemaV3_18_1,
|
|
85
87
|
projectSchemaV3_18_2,
|
|
86
88
|
projectSchemaV3_19_0,
|
|
89
|
+
projectSchemaV3_20_0,
|
|
90
|
+
projectSchemaV3_21_0,
|
|
87
91
|
projectSchemaV4_0_0
|
|
88
92
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://schema.takeshape.io/project-schema/v3.
|
|
3
|
+
"$id": "https://schema.takeshape.io/project-schema/v3.21.0#",
|
|
4
4
|
"title": "Project Schema",
|
|
5
5
|
"definitions": {
|
|
6
6
|
"schemaArray": {
|
|
@@ -1513,6 +1513,13 @@
|
|
|
1513
1513
|
"description": {
|
|
1514
1514
|
"type": "string"
|
|
1515
1515
|
},
|
|
1516
|
+
"type": {
|
|
1517
|
+
"enum": ["interface", "input", "output"]
|
|
1518
|
+
},
|
|
1519
|
+
"interfaces": {
|
|
1520
|
+
"type": "array",
|
|
1521
|
+
"items": {"type": "string"}
|
|
1522
|
+
},
|
|
1516
1523
|
"model": {
|
|
1517
1524
|
"description": "Specifying a model type allows Shape data to be stored in TakeShape's built-in database",
|
|
1518
1525
|
"type": "object",
|
|
@@ -2273,7 +2280,7 @@
|
|
|
2273
2280
|
},
|
|
2274
2281
|
"schemaVersion": {
|
|
2275
2282
|
"type": "string",
|
|
2276
|
-
"enum": ["3.
|
|
2283
|
+
"enum": ["3.21.0"],
|
|
2277
2284
|
"description": "The version of the schema format your project is using. We increase the version as we make breaking changes to the schema format."
|
|
2278
2285
|
},
|
|
2279
2286
|
"projectId": {
|