@takeshape/schema 8.111.1 → 8.113.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/types/types.d.ts +4 -2
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +3 -19
- package/dist/util/api-indexing.d.ts +3 -0
- package/dist/util/api-indexing.d.ts.map +1 -0
- package/dist/util/api-indexing.js +23 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +13 -0
- package/dist/validate.d.ts +4 -3
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +32 -12
- package/es/types/types.js +1 -18
- package/es/util/api-indexing.js +15 -0
- package/es/util/index.js +1 -0
- package/es/validate.js +31 -12
- package/package.json +4 -5
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-indexing.d.ts","sourceRoot":"","sources":["../../../src/util/api-indexing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAGhD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAUzF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.serviceHasIndexedShapes = serviceHasIndexedShapes;
|
|
7
|
+
|
|
8
|
+
var _types = require("../types");
|
|
9
|
+
|
|
10
|
+
function serviceHasIndexedShapes(schema, serviceId) {
|
|
11
|
+
for (const config of Object.values(schema.indexedShapes ?? {})) {
|
|
12
|
+
var _config$queries$list;
|
|
13
|
+
|
|
14
|
+
const queryName = (_config$queries$list = config.queries.list) === null || _config$queries$list === void 0 ? void 0 : _config$queries$list.name;
|
|
15
|
+
const query = queryName && schema.queries[queryName];
|
|
16
|
+
|
|
17
|
+
if (query && (0, _types.isBasicResolver)(query.resolver) && query.resolver.service === serviceId) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return false;
|
|
23
|
+
}
|
package/dist/util/index.d.ts
CHANGED
package/dist/util/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
package/dist/util/index.js
CHANGED
|
@@ -4,6 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
+
var _apiIndexing = require("./api-indexing");
|
|
8
|
+
|
|
9
|
+
Object.keys(_apiIndexing).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _apiIndexing[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _apiIndexing[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
7
20
|
var _detectCycles = require("./detect-cycles");
|
|
8
21
|
|
|
9
22
|
Object.keys(_detectCycles).forEach(function (key) {
|
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;AAkdnF,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");
|
|
@@ -477,7 +479,7 @@ function validateLocales(projectSchema) {
|
|
|
477
479
|
} = projectSchema;
|
|
478
480
|
const errors = [];
|
|
479
481
|
|
|
480
|
-
if (!locales.includes(defaultLocale)) {
|
|
482
|
+
if (locales && !locales.includes(defaultLocale)) {
|
|
481
483
|
errors.push({
|
|
482
484
|
type: 'notFound',
|
|
483
485
|
path: ['locales'],
|
|
@@ -515,8 +517,8 @@ function formatError(error) {
|
|
|
515
517
|
|
|
516
518
|
const ajv = (0, _jsonSchema.createAjv)();
|
|
517
519
|
|
|
518
|
-
function validateStructure(schemaVersion, schema, ref) {
|
|
519
|
-
var _coerce;
|
|
520
|
+
function validateStructure(schemaVersion, schema, ref, options) {
|
|
521
|
+
var _coerce, _ajv$errors;
|
|
520
522
|
|
|
521
523
|
const versionStr = (_coerce = (0, _coerce2.default)(schemaVersion)) === null || _coerce === void 0 ? void 0 : _coerce.format();
|
|
522
524
|
|
|
@@ -528,13 +530,21 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
528
530
|
}
|
|
529
531
|
}
|
|
530
532
|
|
|
531
|
-
|
|
533
|
+
ajv.validate(`https://schema.takeshape.io/project-schema/v${versionStr}#${ref ?? ''}`, schema);
|
|
534
|
+
let errors = ((_ajv$errors = ajv.errors) === null || _ajv$errors === void 0 ? void 0 : _ajv$errors.map(formatError)) ?? [];
|
|
535
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
536
|
+
|
|
537
|
+
if (errors.length && suppressErrorPaths) {
|
|
538
|
+
errors = errors.filter(error => {
|
|
539
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
540
|
+
});
|
|
541
|
+
}
|
|
532
542
|
|
|
533
|
-
if (
|
|
543
|
+
if (errors.length) {
|
|
534
544
|
return {
|
|
535
545
|
valid: false,
|
|
536
546
|
schema: undefined,
|
|
537
|
-
errors
|
|
547
|
+
errors
|
|
538
548
|
};
|
|
539
549
|
}
|
|
540
550
|
|
|
@@ -546,7 +556,7 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
546
556
|
}
|
|
547
557
|
|
|
548
558
|
function validateV3X(version, obj, options) {
|
|
549
|
-
const structuralValidation = validateStructure(version, obj);
|
|
559
|
+
const structuralValidation = validateStructure(version, obj, undefined, options);
|
|
550
560
|
|
|
551
561
|
if (!structuralValidation.valid) {
|
|
552
562
|
return structuralValidation;
|
|
@@ -558,6 +568,14 @@ function validateV3X(version, obj, options) {
|
|
|
558
568
|
const additionalShapeNames = (options !== null && options !== void 0 && options.additionalShapeNames ? builtInShapeNames.concat(options.additionalShapeNames) : builtInShapeNames).concat(namespaceShapes);
|
|
559
569
|
const additionalModelShapeIds = options !== null && options !== void 0 && options.additionalModelShapeIds ? builtInModelShapeIds.concat(options.additionalModelShapeIds) : builtInModelShapeIds;
|
|
560
570
|
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, additionalShapeNames));
|
|
571
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
572
|
+
|
|
573
|
+
if (suppressErrorPaths) {
|
|
574
|
+
errors = errors.filter(error => {
|
|
575
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
|
|
561
579
|
return errors.length ? {
|
|
562
580
|
valid: false,
|
|
563
581
|
schema: undefined,
|
|
@@ -792,7 +810,7 @@ function validateRoleImport(maybeRoles) {
|
|
|
792
810
|
|
|
793
811
|
function getProjectSchemaValidation(schemaVersion) {
|
|
794
812
|
const validator = findValidator(schemaVersion);
|
|
795
|
-
return maybeSchema => {
|
|
813
|
+
return (maybeSchema, options) => {
|
|
796
814
|
if (!validator) {
|
|
797
815
|
return {
|
|
798
816
|
errors: [{
|
|
@@ -805,21 +823,23 @@ function getProjectSchemaValidation(schemaVersion) {
|
|
|
805
823
|
};
|
|
806
824
|
}
|
|
807
825
|
|
|
808
|
-
return validator(maybeSchema);
|
|
826
|
+
return validator(maybeSchema, options);
|
|
809
827
|
};
|
|
810
828
|
}
|
|
811
829
|
/**
|
|
812
830
|
* Only use when validating an imported schema!
|
|
813
831
|
*
|
|
814
832
|
* New style validation for parity with the `validateRoleImport` fn. Returns
|
|
815
|
-
* a valid,
|
|
816
|
-
* `SchemaValidationError`.
|
|
833
|
+
* a valid, clean `ImportProjectSchema` or throws a `SchemaValidationError`.
|
|
817
834
|
*/
|
|
818
835
|
|
|
819
836
|
|
|
820
837
|
function validateProjectSchemaImport(maybeSchema) {
|
|
821
838
|
const validate = getProjectSchemaValidation(maybeSchema === null || maybeSchema === void 0 ? void 0 : maybeSchema.schemaVersion);
|
|
822
|
-
const
|
|
839
|
+
const validateOptions = {
|
|
840
|
+
suppressErrorPaths: [..._types.projectSchemaImportOptionalProps]
|
|
841
|
+
};
|
|
842
|
+
const validateResult = validate(maybeSchema, validateOptions);
|
|
823
843
|
|
|
824
844
|
if (validateResult.valid) {
|
|
825
845
|
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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isBasicResolver } from '../types';
|
|
2
|
+
export function serviceHasIndexedShapes(schema, serviceId) {
|
|
3
|
+
for (const config of Object.values(schema.indexedShapes ?? {})) {
|
|
4
|
+
var _config$queries$list;
|
|
5
|
+
|
|
6
|
+
const queryName = (_config$queries$list = config.queries.list) === null || _config$queries$list === void 0 ? void 0 : _config$queries$list.name;
|
|
7
|
+
const query = queryName && schema.queries[queryName];
|
|
8
|
+
|
|
9
|
+
if (query && isBasicResolver(query.resolver) && query.resolver.service === serviceId) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return false;
|
|
15
|
+
}
|
package/es/util/index.js
CHANGED
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';
|
|
@@ -442,7 +443,7 @@ function validateLocales(projectSchema) {
|
|
|
442
443
|
} = projectSchema;
|
|
443
444
|
const errors = [];
|
|
444
445
|
|
|
445
|
-
if (!locales.includes(defaultLocale)) {
|
|
446
|
+
if (locales && !locales.includes(defaultLocale)) {
|
|
446
447
|
errors.push({
|
|
447
448
|
type: 'notFound',
|
|
448
449
|
path: ['locales'],
|
|
@@ -479,8 +480,8 @@ export function formatError(error) {
|
|
|
479
480
|
}
|
|
480
481
|
const ajv = createAjv();
|
|
481
482
|
|
|
482
|
-
function validateStructure(schemaVersion, schema, ref) {
|
|
483
|
-
var _coerce;
|
|
483
|
+
function validateStructure(schemaVersion, schema, ref, options) {
|
|
484
|
+
var _coerce, _ajv$errors;
|
|
484
485
|
|
|
485
486
|
const versionStr = (_coerce = coerce(schemaVersion)) === null || _coerce === void 0 ? void 0 : _coerce.format();
|
|
486
487
|
const relevantSchemas = allProjectSchemas.filter(metaSchema => metaSchema.$id.endsWith(`v${versionStr}#`));
|
|
@@ -491,13 +492,21 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
491
492
|
}
|
|
492
493
|
}
|
|
493
494
|
|
|
494
|
-
|
|
495
|
+
ajv.validate(`https://schema.takeshape.io/project-schema/v${versionStr}#${ref ?? ''}`, schema);
|
|
496
|
+
let errors = ((_ajv$errors = ajv.errors) === null || _ajv$errors === void 0 ? void 0 : _ajv$errors.map(formatError)) ?? [];
|
|
497
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
495
498
|
|
|
496
|
-
if (
|
|
499
|
+
if (errors.length && suppressErrorPaths) {
|
|
500
|
+
errors = errors.filter(error => {
|
|
501
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
if (errors.length) {
|
|
497
506
|
return {
|
|
498
507
|
valid: false,
|
|
499
508
|
schema: undefined,
|
|
500
|
-
errors
|
|
509
|
+
errors
|
|
501
510
|
};
|
|
502
511
|
}
|
|
503
512
|
|
|
@@ -509,7 +518,7 @@ function validateStructure(schemaVersion, schema, ref) {
|
|
|
509
518
|
}
|
|
510
519
|
|
|
511
520
|
function validateV3X(version, obj, options) {
|
|
512
|
-
const structuralValidation = validateStructure(version, obj);
|
|
521
|
+
const structuralValidation = validateStructure(version, obj, undefined, options);
|
|
513
522
|
|
|
514
523
|
if (!structuralValidation.valid) {
|
|
515
524
|
return structuralValidation;
|
|
@@ -521,6 +530,14 @@ function validateV3X(version, obj, options) {
|
|
|
521
530
|
const additionalShapeNames = (options !== null && options !== void 0 && options.additionalShapeNames ? builtInShapeNames.concat(options.additionalShapeNames) : builtInShapeNames).concat(namespaceShapes);
|
|
522
531
|
const additionalModelShapeIds = options !== null && options !== void 0 && options.additionalModelShapeIds ? builtInModelShapeIds.concat(options.additionalModelShapeIds) : builtInModelShapeIds;
|
|
523
532
|
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, additionalShapeNames));
|
|
533
|
+
const suppressErrorPaths = options === null || options === void 0 ? void 0 : options.suppressErrorPaths;
|
|
534
|
+
|
|
535
|
+
if (suppressErrorPaths) {
|
|
536
|
+
errors = errors.filter(error => {
|
|
537
|
+
return !suppressErrorPaths.includes(error.path.join('.'));
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
|
|
524
541
|
return errors.length ? {
|
|
525
542
|
valid: false,
|
|
526
543
|
schema: undefined,
|
|
@@ -751,7 +768,7 @@ export function validateRoleImport(maybeRoles) {
|
|
|
751
768
|
|
|
752
769
|
function getProjectSchemaValidation(schemaVersion) {
|
|
753
770
|
const validator = findValidator(schemaVersion);
|
|
754
|
-
return maybeSchema => {
|
|
771
|
+
return (maybeSchema, options) => {
|
|
755
772
|
if (!validator) {
|
|
756
773
|
return {
|
|
757
774
|
errors: [{
|
|
@@ -764,21 +781,23 @@ function getProjectSchemaValidation(schemaVersion) {
|
|
|
764
781
|
};
|
|
765
782
|
}
|
|
766
783
|
|
|
767
|
-
return validator(maybeSchema);
|
|
784
|
+
return validator(maybeSchema, options);
|
|
768
785
|
};
|
|
769
786
|
}
|
|
770
787
|
/**
|
|
771
788
|
* Only use when validating an imported schema!
|
|
772
789
|
*
|
|
773
790
|
* New style validation for parity with the `validateRoleImport` fn. Returns
|
|
774
|
-
* a valid,
|
|
775
|
-
* `SchemaValidationError`.
|
|
791
|
+
* a valid, clean `ImportProjectSchema` or throws a `SchemaValidationError`.
|
|
776
792
|
*/
|
|
777
793
|
|
|
778
794
|
|
|
779
795
|
export function validateProjectSchemaImport(maybeSchema) {
|
|
780
796
|
const validate = getProjectSchemaValidation(maybeSchema === null || maybeSchema === void 0 ? void 0 : maybeSchema.schemaVersion);
|
|
781
|
-
const
|
|
797
|
+
const validateOptions = {
|
|
798
|
+
suppressErrorPaths: [...projectSchemaImportOptionalProps]
|
|
799
|
+
};
|
|
800
|
+
const validateResult = validate(maybeSchema, validateOptions);
|
|
782
801
|
|
|
783
802
|
if (validateResult.valid) {
|
|
784
803
|
return maybeSchema;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/schema",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.113.0",
|
|
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.113.0",
|
|
25
|
+
"@takeshape/json-schema": "8.113.0",
|
|
26
|
+
"@takeshape/util": "8.113.0",
|
|
27
27
|
"ajv": "^8.10.0",
|
|
28
28
|
"ajv-formats": "^2.1.1",
|
|
29
29
|
"blueimp-md5": "^2.10.0",
|
|
@@ -39,7 +39,6 @@
|
|
|
39
39
|
"@types/lodash": "^4.14.165",
|
|
40
40
|
"@types/semver": "^7.1.0",
|
|
41
41
|
"@types/shortid": "^0.0.29",
|
|
42
|
-
"aws-sdk": "^2.898.0",
|
|
43
42
|
"fs-extra": "^8.1.0",
|
|
44
43
|
"glob": "^7.1.6",
|
|
45
44
|
"meow": "^9.0.0",
|