@takeshape/schema 8.112.0 → 8.116.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/dist/types/types.d.ts +4 -2
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +3 -19
- package/dist/validate.d.ts +4 -3
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +39 -25
- package/es/types/types.js +1 -18
- package/es/validate.js +37 -25
- package/package.json +4 -4
package/dist/types/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { SetRequired, Merge, PartialDeep } 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, Query, PropertySchema, StoredServiceMap, ServiceConfig, OAuth2Authentication, CustomAuthentication, ServiceAuthentication } from '../project-schema';
|
|
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, Query, PropertySchema, StoredServiceMap, ServiceConfig, OAuth2Authentication, CustomAuthentication, ServiceAuthentication, AnyProjectSchema } from '../project-schema';
|
|
3
3
|
import type { Overwrite } from '@takeshape/util';
|
|
4
4
|
import { SERVICE_OBJECT_PATTERN_NAME } from '../schema-util';
|
|
5
5
|
/**
|
|
@@ -8,6 +8,8 @@ import { SERVICE_OBJECT_PATTERN_NAME } from '../schema-util';
|
|
|
8
8
|
* trigger type errors that clue you in to code that needs review.
|
|
9
9
|
*/
|
|
10
10
|
export declare type ProjectSchemaV3X = 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
|
+
export declare const projectSchemaImportOptionalProps: readonly ["projectId", "created", "updated", "dataKey", "version", "locales", "defaultLocale", "author"];
|
|
12
|
+
export declare type ProjectSchemaImport = SetOptional<AnyProjectSchema, typeof projectSchemaImportOptionalProps[number]>;
|
|
11
13
|
export interface Content {
|
|
12
14
|
[name: string]: any;
|
|
13
15
|
_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/types.js
CHANGED
|
@@ -3,31 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.RefType = exports.ArgsType = void 0;
|
|
6
|
+
exports.projectSchemaImportOptionalProps = exports.RefType = exports.ArgsType = void 0;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* An alias for the latest version of the project schema. This should be the
|
|
10
10
|
* only type used in most runtime code. Updating this to a new version should
|
|
11
11
|
* trigger type errors that clue you in to code that needs review.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* Remote service configuration types
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Old service authentication
|
|
20
|
-
* @deprecated
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Support null sentinels for authentication
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* A type suitable for service object updates, mostly concerns authentication
|
|
29
|
-
* requirements.
|
|
30
|
-
*/
|
|
13
|
+
const projectSchemaImportOptionalProps = ['projectId', 'created', 'updated', 'dataKey', 'version', 'locales', 'defaultLocale', 'author'];
|
|
14
|
+
exports.projectSchemaImportOptionalProps = projectSchemaImportOptionalProps;
|
|
31
15
|
|
|
32
16
|
/**
|
|
33
17
|
* Types of refs
|
package/dist/validate.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ErrorObject } from 'ajv';
|
|
2
2
|
import type { RoleImport, RoleInput } from './auth-schemas';
|
|
3
|
+
import type { ProjectSchemaImport } from './types/types';
|
|
3
4
|
import type { AnyProjectSchema, ProjectSchema, LayerSchemaV4_0_0 } from './project-schema';
|
|
4
5
|
import { SchemaValidationErrorItem } from '@takeshape/errors';
|
|
5
6
|
export declare type SchemaValidationResult = {
|
|
@@ -21,6 +22,7 @@ export interface Validation {
|
|
|
21
22
|
export interface ValidateOptions {
|
|
22
23
|
additionalShapeNames?: string[];
|
|
23
24
|
additionalModelShapeIds?: string[];
|
|
25
|
+
suppressErrorPaths?: string[];
|
|
24
26
|
resolveLayer?: (layerId: string) => LayerSchemaV4_0_0 | undefined;
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
@@ -41,8 +43,7 @@ export declare function validateRoleImport(maybeRoles: unknown): RoleImport;
|
|
|
41
43
|
* Only use when validating an imported schema!
|
|
42
44
|
*
|
|
43
45
|
* New style validation for parity with the `validateRoleImport` fn. Returns
|
|
44
|
-
* a valid,
|
|
45
|
-
* `SchemaValidationError`.
|
|
46
|
+
* a valid, clean `ImportProjectSchema` or throws a `SchemaValidationError`.
|
|
46
47
|
*/
|
|
47
|
-
export declare function validateProjectSchemaImport(maybeSchema: unknown):
|
|
48
|
+
export declare function validateProjectSchemaImport(maybeSchema: unknown): ProjectSchemaImport;
|
|
48
49
|
//# sourceMappingURL=validate.d.ts.map
|
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;
|
|
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,EAGlB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAwB,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAwcnF,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;AAqKD;;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
|
@@ -10,6 +10,8 @@ exports.validateRoleImport = validateRoleImport;
|
|
|
10
10
|
exports.validateRoleInput = validateRoleInput;
|
|
11
11
|
exports.validateSchema = validateSchema;
|
|
12
12
|
|
|
13
|
+
var _types = require("./types/types");
|
|
14
|
+
|
|
13
15
|
var _jsonSchema = require("@takeshape/json-schema");
|
|
14
16
|
|
|
15
17
|
var _errors = require("@takeshape/errors");
|
|
@@ -54,6 +56,8 @@ var _metaSchemaV = _interopRequireDefault(require("./schemas/project-schema/meta
|
|
|
54
56
|
|
|
55
57
|
var _util = require("@takeshape/util");
|
|
56
58
|
|
|
59
|
+
var _forOwn = _interopRequireDefault(require("lodash/forOwn"));
|
|
60
|
+
|
|
57
61
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
58
62
|
|
|
59
63
|
function findDuplicates(items) {
|
|
@@ -334,7 +338,7 @@ function validateIndexedShapeConfig(projectSchema, shapeName, config) {
|
|
|
334
338
|
return errors;
|
|
335
339
|
}
|
|
336
340
|
|
|
337
|
-
function validateIndexedShapes(projectSchema
|
|
341
|
+
function validateIndexedShapes(projectSchema) {
|
|
338
342
|
let errors = [];
|
|
339
343
|
|
|
340
344
|
if ((0, _gt.default)((0, _coerce2.default)(projectSchema.schemaVersion) ?? _versions.LEGACY_SCHEMA_VERSION, '3.12.0')) {
|
|
@@ -343,17 +347,9 @@ function validateIndexedShapes(projectSchema, additionalShapeNames) {
|
|
|
343
347
|
} = projectSchema;
|
|
344
348
|
|
|
345
349
|
if (indexedShapes) {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
path: ['indexedShapes', shapeName],
|
|
350
|
-
type: 'notFound',
|
|
351
|
-
message: `Invalid shape "${shapeName}"`
|
|
352
|
-
});
|
|
353
|
-
} else {
|
|
354
|
-
errors = errors.concat(validateIndexedShapeConfig(projectSchema, shapeName, indexedShapes[shapeName]));
|
|
355
|
-
}
|
|
356
|
-
}
|
|
350
|
+
(0, _forOwn.default)(indexedShapes, (config, shapeName) => {
|
|
351
|
+
errors = errors.concat(validateIndexedShapeConfig(projectSchema, shapeName, config));
|
|
352
|
+
});
|
|
357
353
|
}
|
|
358
354
|
}
|
|
359
355
|
|
|
@@ -477,7 +473,7 @@ function validateLocales(projectSchema) {
|
|
|
477
473
|
} = projectSchema;
|
|
478
474
|
const errors = [];
|
|
479
475
|
|
|
480
|
-
if (!locales.includes(defaultLocale)) {
|
|
476
|
+
if (locales && !locales.includes(defaultLocale)) {
|
|
481
477
|
errors.push({
|
|
482
478
|
type: 'notFound',
|
|
483
479
|
path: ['locales'],
|
|
@@ -515,8 +511,8 @@ function formatError(error) {
|
|
|
515
511
|
|
|
516
512
|
const ajv = (0, _jsonSchema.createAjv)();
|
|
517
513
|
|
|
518
|
-
function validateStructure(schemaVersion, schema, ref) {
|
|
519
|
-
var _coerce;
|
|
514
|
+
function validateStructure(schemaVersion, schema, ref, options) {
|
|
515
|
+
var _coerce, _ajv$errors;
|
|
520
516
|
|
|
521
517
|
const versionStr = (_coerce = (0, _coerce2.default)(schemaVersion)) === null || _coerce === void 0 ? void 0 : _coerce.format();
|
|
522
518
|
|
|
@@ -528,13 +524,21 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
528
524
|
}
|
|
529
525
|
}
|
|
530
526
|
|
|
531
|
-
|
|
527
|
+
ajv.validate(`https://schema.takeshape.io/project-schema/v${versionStr}#${ref ?? ''}`, schema);
|
|
528
|
+
let errors = ((_ajv$errors = ajv.errors) === null || _ajv$errors === void 0 ? void 0 : _ajv$errors.map(formatError)) ?? [];
|
|
529
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
530
|
+
|
|
531
|
+
if (errors.length && suppressErrorPaths) {
|
|
532
|
+
errors = errors.filter(error => {
|
|
533
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
534
|
+
});
|
|
535
|
+
}
|
|
532
536
|
|
|
533
|
-
if (
|
|
537
|
+
if (errors.length) {
|
|
534
538
|
return {
|
|
535
539
|
valid: false,
|
|
536
540
|
schema: undefined,
|
|
537
|
-
errors
|
|
541
|
+
errors
|
|
538
542
|
};
|
|
539
543
|
}
|
|
540
544
|
|
|
@@ -546,7 +550,7 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
546
550
|
}
|
|
547
551
|
|
|
548
552
|
function validateV3X(version, obj, options) {
|
|
549
|
-
const structuralValidation = validateStructure(version, obj);
|
|
553
|
+
const structuralValidation = validateStructure(version, obj, undefined, options);
|
|
550
554
|
|
|
551
555
|
if (!structuralValidation.valid) {
|
|
552
556
|
return structuralValidation;
|
|
@@ -557,7 +561,15 @@ function validateV3X(version, obj, options) {
|
|
|
557
561
|
const namespaceShapes = (0, _schemaUtil.getAllNamespaceShapes)(schema);
|
|
558
562
|
const additionalShapeNames = (options !== null && options !== void 0 && options.additionalShapeNames ? builtInShapeNames.concat(options.additionalShapeNames) : builtInShapeNames).concat(namespaceShapes);
|
|
559
563
|
const additionalModelShapeIds = options !== null && options !== void 0 && options.additionalModelShapeIds ? builtInModelShapeIds.concat(options.additionalModelShapeIds) : builtInModelShapeIds;
|
|
560
|
-
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
|
|
564
|
+
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));
|
|
565
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
566
|
+
|
|
567
|
+
if (suppressErrorPaths) {
|
|
568
|
+
errors = errors.filter(error => {
|
|
569
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
|
|
561
573
|
return errors.length ? {
|
|
562
574
|
valid: false,
|
|
563
575
|
schema: undefined,
|
|
@@ -792,7 +804,7 @@ function validateRoleImport(maybeRoles) {
|
|
|
792
804
|
|
|
793
805
|
function getProjectSchemaValidation(schemaVersion) {
|
|
794
806
|
const validator = findValidator(schemaVersion);
|
|
795
|
-
return maybeSchema => {
|
|
807
|
+
return (maybeSchema, options) => {
|
|
796
808
|
if (!validator) {
|
|
797
809
|
return {
|
|
798
810
|
errors: [{
|
|
@@ -805,21 +817,23 @@ function getProjectSchemaValidation(schemaVersion) {
|
|
|
805
817
|
};
|
|
806
818
|
}
|
|
807
819
|
|
|
808
|
-
return validator(maybeSchema);
|
|
820
|
+
return validator(maybeSchema, options);
|
|
809
821
|
};
|
|
810
822
|
}
|
|
811
823
|
/**
|
|
812
824
|
* Only use when validating an imported schema!
|
|
813
825
|
*
|
|
814
826
|
* New style validation for parity with the `validateRoleImport` fn. Returns
|
|
815
|
-
* a valid,
|
|
816
|
-
* `SchemaValidationError`.
|
|
827
|
+
* a valid, clean `ImportProjectSchema` or throws a `SchemaValidationError`.
|
|
817
828
|
*/
|
|
818
829
|
|
|
819
830
|
|
|
820
831
|
function validateProjectSchemaImport(maybeSchema) {
|
|
821
832
|
const validate = getProjectSchemaValidation(maybeSchema === null || maybeSchema === void 0 ? void 0 : maybeSchema.schemaVersion);
|
|
822
|
-
const
|
|
833
|
+
const validateOptions = {
|
|
834
|
+
suppressErrorPaths: [..._types.projectSchemaImportOptionalProps]
|
|
835
|
+
};
|
|
836
|
+
const validateResult = validate(maybeSchema, validateOptions);
|
|
823
837
|
|
|
824
838
|
if (validateResult.valid) {
|
|
825
839
|
return maybeSchema;
|
package/es/types/types.js
CHANGED
|
@@ -3,24 +3,7 @@
|
|
|
3
3
|
* only type used in most runtime code. Updating this to a new version should
|
|
4
4
|
* trigger type errors that clue you in to code that needs review.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Remote service configuration types
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Old service authentication
|
|
13
|
-
* @deprecated
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Support null sentinels for authentication
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* A type suitable for service object updates, mostly concerns authentication
|
|
22
|
-
* requirements.
|
|
23
|
-
*/
|
|
6
|
+
export const projectSchemaImportOptionalProps = ['projectId', 'created', 'updated', 'dataKey', 'version', 'locales', 'defaultLocale', 'author'];
|
|
24
7
|
|
|
25
8
|
/**
|
|
26
9
|
* Types of refs
|
package/es/validate.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { projectSchemaImportOptionalProps } from './types/types';
|
|
1
2
|
import { createAjv } from '@takeshape/json-schema';
|
|
2
3
|
import { SchemaValidationError } from '@takeshape/errors';
|
|
3
4
|
import coerce from 'semver/functions/coerce';
|
|
@@ -20,6 +21,7 @@ import { enumerateOneOfKeys, isUnionSchema } from './unions';
|
|
|
20
21
|
import { isEnumLikeSchema } from './enum';
|
|
21
22
|
import metaSchemaV3_9_0 from './schemas/project-schema/meta-schema-v3.9.0.json';
|
|
22
23
|
import { isIntegerLike } from '@takeshape/util';
|
|
24
|
+
import forOwn from 'lodash/forOwn';
|
|
23
25
|
|
|
24
26
|
function findDuplicates(items) {
|
|
25
27
|
const seen = {};
|
|
@@ -299,7 +301,7 @@ function validateIndexedShapeConfig(projectSchema, shapeName, config) {
|
|
|
299
301
|
return errors;
|
|
300
302
|
}
|
|
301
303
|
|
|
302
|
-
function validateIndexedShapes(projectSchema
|
|
304
|
+
function validateIndexedShapes(projectSchema) {
|
|
303
305
|
let errors = [];
|
|
304
306
|
|
|
305
307
|
if (gt(coerce(projectSchema.schemaVersion) ?? LEGACY_SCHEMA_VERSION, '3.12.0')) {
|
|
@@ -308,17 +310,9 @@ function validateIndexedShapes(projectSchema, additionalShapeNames) {
|
|
|
308
310
|
} = projectSchema;
|
|
309
311
|
|
|
310
312
|
if (indexedShapes) {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
path: ['indexedShapes', shapeName],
|
|
315
|
-
type: 'notFound',
|
|
316
|
-
message: `Invalid shape "${shapeName}"`
|
|
317
|
-
});
|
|
318
|
-
} else {
|
|
319
|
-
errors = errors.concat(validateIndexedShapeConfig(projectSchema, shapeName, indexedShapes[shapeName]));
|
|
320
|
-
}
|
|
321
|
-
}
|
|
313
|
+
forOwn(indexedShapes, (config, shapeName) => {
|
|
314
|
+
errors = errors.concat(validateIndexedShapeConfig(projectSchema, shapeName, config));
|
|
315
|
+
});
|
|
322
316
|
}
|
|
323
317
|
}
|
|
324
318
|
|
|
@@ -442,7 +436,7 @@ function validateLocales(projectSchema) {
|
|
|
442
436
|
} = projectSchema;
|
|
443
437
|
const errors = [];
|
|
444
438
|
|
|
445
|
-
if (!locales.includes(defaultLocale)) {
|
|
439
|
+
if (locales && !locales.includes(defaultLocale)) {
|
|
446
440
|
errors.push({
|
|
447
441
|
type: 'notFound',
|
|
448
442
|
path: ['locales'],
|
|
@@ -479,8 +473,8 @@ export function formatError(error) {
|
|
|
479
473
|
}
|
|
480
474
|
const ajv = createAjv();
|
|
481
475
|
|
|
482
|
-
function validateStructure(schemaVersion, schema, ref) {
|
|
483
|
-
var _coerce;
|
|
476
|
+
function validateStructure(schemaVersion, schema, ref, options) {
|
|
477
|
+
var _coerce, _ajv$errors;
|
|
484
478
|
|
|
485
479
|
const versionStr = (_coerce = coerce(schemaVersion)) === null || _coerce === void 0 ? void 0 : _coerce.format();
|
|
486
480
|
const relevantSchemas = allProjectSchemas.filter(metaSchema => metaSchema.$id.endsWith(`v${versionStr}#`));
|
|
@@ -491,13 +485,21 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
491
485
|
}
|
|
492
486
|
}
|
|
493
487
|
|
|
494
|
-
|
|
488
|
+
ajv.validate(`https://schema.takeshape.io/project-schema/v${versionStr}#${ref ?? ''}`, schema);
|
|
489
|
+
let errors = ((_ajv$errors = ajv.errors) === null || _ajv$errors === void 0 ? void 0 : _ajv$errors.map(formatError)) ?? [];
|
|
490
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
491
|
+
|
|
492
|
+
if (errors.length && suppressErrorPaths) {
|
|
493
|
+
errors = errors.filter(error => {
|
|
494
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
495
|
+
});
|
|
496
|
+
}
|
|
495
497
|
|
|
496
|
-
if (
|
|
498
|
+
if (errors.length) {
|
|
497
499
|
return {
|
|
498
500
|
valid: false,
|
|
499
501
|
schema: undefined,
|
|
500
|
-
errors
|
|
502
|
+
errors
|
|
501
503
|
};
|
|
502
504
|
}
|
|
503
505
|
|
|
@@ -509,7 +511,7 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
509
511
|
}
|
|
510
512
|
|
|
511
513
|
function validateV3X(version, obj, options) {
|
|
512
|
-
const structuralValidation = validateStructure(version, obj);
|
|
514
|
+
const structuralValidation = validateStructure(version, obj, undefined, options);
|
|
513
515
|
|
|
514
516
|
if (!structuralValidation.valid) {
|
|
515
517
|
return structuralValidation;
|
|
@@ -520,7 +522,15 @@ function validateV3X(version, obj, options) {
|
|
|
520
522
|
const namespaceShapes = getAllNamespaceShapes(schema);
|
|
521
523
|
const additionalShapeNames = (options !== null && options !== void 0 && options.additionalShapeNames ? builtInShapeNames.concat(options.additionalShapeNames) : builtInShapeNames).concat(namespaceShapes);
|
|
522
524
|
const additionalModelShapeIds = options !== null && options !== void 0 && options.additionalModelShapeIds ? builtInModelShapeIds.concat(options.additionalModelShapeIds) : builtInModelShapeIds;
|
|
523
|
-
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
|
|
525
|
+
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));
|
|
526
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
527
|
+
|
|
528
|
+
if (suppressErrorPaths) {
|
|
529
|
+
errors = errors.filter(error => {
|
|
530
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
|
|
524
534
|
return errors.length ? {
|
|
525
535
|
valid: false,
|
|
526
536
|
schema: undefined,
|
|
@@ -751,7 +761,7 @@ export function validateRoleImport(maybeRoles) {
|
|
|
751
761
|
|
|
752
762
|
function getProjectSchemaValidation(schemaVersion) {
|
|
753
763
|
const validator = findValidator(schemaVersion);
|
|
754
|
-
return maybeSchema => {
|
|
764
|
+
return (maybeSchema, options) => {
|
|
755
765
|
if (!validator) {
|
|
756
766
|
return {
|
|
757
767
|
errors: [{
|
|
@@ -764,21 +774,23 @@ function getProjectSchemaValidation(schemaVersion) {
|
|
|
764
774
|
};
|
|
765
775
|
}
|
|
766
776
|
|
|
767
|
-
return validator(maybeSchema);
|
|
777
|
+
return validator(maybeSchema, options);
|
|
768
778
|
};
|
|
769
779
|
}
|
|
770
780
|
/**
|
|
771
781
|
* Only use when validating an imported schema!
|
|
772
782
|
*
|
|
773
783
|
* New style validation for parity with the `validateRoleImport` fn. Returns
|
|
774
|
-
* a valid,
|
|
775
|
-
* `SchemaValidationError`.
|
|
784
|
+
* a valid, clean `ImportProjectSchema` or throws a `SchemaValidationError`.
|
|
776
785
|
*/
|
|
777
786
|
|
|
778
787
|
|
|
779
788
|
export function validateProjectSchemaImport(maybeSchema) {
|
|
780
789
|
const validate = getProjectSchemaValidation(maybeSchema === null || maybeSchema === void 0 ? void 0 : maybeSchema.schemaVersion);
|
|
781
|
-
const
|
|
790
|
+
const validateOptions = {
|
|
791
|
+
suppressErrorPaths: [...projectSchemaImportOptionalProps]
|
|
792
|
+
};
|
|
793
|
+
const validateResult = validate(maybeSchema, validateOptions);
|
|
782
794
|
|
|
783
795
|
if (validateResult.valid) {
|
|
784
796
|
return maybeSchema;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/schema",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.116.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.116.1",
|
|
25
|
+
"@takeshape/json-schema": "8.116.1",
|
|
26
|
+
"@takeshape/util": "8.116.1",
|
|
27
27
|
"ajv": "^8.10.0",
|
|
28
28
|
"ajv-formats": "^2.1.1",
|
|
29
29
|
"blueimp-md5": "^2.10.0",
|