@microsoft/typespec-msgraph 1.2.2 → 1.4.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/src/components/auto-expand-annotation.d.ts +8 -0
- package/dist/src/components/auto-expand-annotation.d.ts.map +1 -0
- package/dist/src/components/auto-expand-annotation.js +5 -0
- package/dist/src/components/auto-expand-annotation.js.map +1 -0
- package/dist/src/components/property-element.d.ts.map +1 -1
- package/dist/src/components/property-element.js +3 -0
- package/dist/src/components/property-element.js.map +1 -1
- package/dist/src/components/sort-restrictions-annotation.d.ts.map +1 -1
- package/dist/src/components/sort-restrictions-annotation.js +3 -1
- package/dist/src/components/sort-restrictions-annotation.js.map +1 -1
- package/dist/src/decorators/auto-expand-references.d.ts +7 -0
- package/dist/src/decorators/auto-expand-references.d.ts.map +1 -0
- package/dist/src/decorators/auto-expand-references.js +11 -0
- package/dist/src/decorators/auto-expand-references.js.map +1 -0
- package/dist/src/decorators/auto-expand.d.ts +7 -0
- package/dist/src/decorators/auto-expand.d.ts.map +1 -0
- package/dist/src/decorators/auto-expand.js +11 -0
- package/dist/src/decorators/auto-expand.js.map +1 -0
- package/dist/src/decorators/index.d.ts +2 -0
- package/dist/src/decorators/index.d.ts.map +1 -1
- package/dist/src/decorators/index.js +2 -0
- package/dist/src/decorators/index.js.map +1 -1
- package/dist/src/entities/annotations.d.ts.map +1 -1
- package/dist/src/entities/annotations.js +3 -0
- package/dist/src/entities/annotations.js.map +1 -1
- package/dist/src/entities/entity-container.d.ts.map +1 -1
- package/dist/src/entities/entity-container.js +10 -1
- package/dist/src/entities/entity-container.js.map +1 -1
- package/dist/src/entities/model.d.ts +2 -0
- package/dist/src/entities/model.d.ts.map +1 -1
- package/dist/src/entities/model.js +4 -0
- package/dist/src/entities/model.js.map +1 -1
- package/dist/src/entities/property.d.ts.map +1 -1
- package/dist/src/entities/property.js +2 -1
- package/dist/src/entities/property.js.map +1 -1
- package/dist/src/lib.d.ts +4 -2
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +2 -1
- package/dist/src/lib.js.map +1 -1
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +42 -11
- package/dist/src/linter.js.map +1 -1
- package/dist/src/rules/auto-expand.d.ts +3 -0
- package/dist/src/rules/auto-expand.d.ts.map +1 -0
- package/dist/src/rules/auto-expand.js +100 -0
- package/dist/src/rules/auto-expand.js.map +1 -0
- package/dist/src/rules/collections.d.ts +3 -0
- package/dist/src/rules/collections.d.ts.map +1 -1
- package/dist/src/rules/collections.js +53 -8
- package/dist/src/rules/collections.js.map +1 -1
- package/dist/src/rules/complex.d.ts +3 -0
- package/dist/src/rules/complex.d.ts.map +1 -1
- package/dist/src/rules/complex.js +28 -4
- package/dist/src/rules/complex.js.map +1 -1
- package/dist/src/rules/entity.d.ts +6 -0
- package/dist/src/rules/entity.d.ts.map +1 -1
- package/dist/src/rules/entity.js +54 -1
- package/dist/src/rules/entity.js.map +1 -1
- package/dist/src/rules/enum.d.ts +3 -0
- package/dist/src/rules/enum.d.ts.map +1 -1
- package/dist/src/rules/enum.js +44 -2
- package/dist/src/rules/enum.js.map +1 -1
- package/dist/src/rules/filter.d.ts.map +1 -1
- package/dist/src/rules/filter.js +0 -1
- package/dist/src/rules/filter.js.map +1 -1
- package/dist/src/rules/graph-studio.d.ts +163 -0
- package/dist/src/rules/graph-studio.d.ts.map +1 -0
- package/dist/src/rules/graph-studio.js +77 -0
- package/dist/src/rules/graph-studio.js.map +1 -0
- package/dist/src/rules/index.d.ts +2 -0
- package/dist/src/rules/index.d.ts.map +1 -1
- package/dist/src/rules/index.js +2 -0
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/media.d.ts +6 -0
- package/dist/src/rules/media.d.ts.map +1 -1
- package/dist/src/rules/media.js +61 -6
- package/dist/src/rules/media.js.map +1 -1
- package/dist/src/rules/naming.d.ts +3 -0
- package/dist/src/rules/naming.d.ts.map +1 -1
- package/dist/src/rules/naming.js +34 -1
- package/dist/src/rules/naming.js.map +1 -1
- package/dist/src/rules/order-by.d.ts +1 -0
- package/dist/src/rules/order-by.d.ts.map +1 -1
- package/dist/src/rules/order-by.js +24 -1
- package/dist/src/rules/order-by.js.map +1 -1
- package/dist/src/rules/properties.d.ts +21 -0
- package/dist/src/rules/properties.d.ts.map +1 -1
- package/dist/src/rules/properties.js +205 -2
- package/dist/src/rules/properties.js.map +1 -1
- package/dist/src/supressions/csdl-suppression-rules.d.ts.map +1 -1
- package/dist/src/supressions/csdl-suppression-rules.js +5 -27
- package/dist/src/supressions/csdl-suppression-rules.js.map +1 -1
- package/dist/src/supressions/suppression-collector.d.ts.map +1 -1
- package/dist/src/supressions/suppression-collector.js +27 -11
- package/dist/src/supressions/suppression-collector.js.map +1 -1
- package/dist/src/testing/index.d.ts +3 -0
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +3 -0
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +9 -2
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +2 -0
- package/dist/src/validate.js.map +1 -1
- package/lib/decorators.tsp +20 -0
- package/package.json +4 -4
package/dist/src/linter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA6DpE,eAAO,MAAM,OAAO,EAAE,gBAsGpB,CAAC"}
|
package/dist/src/linter.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { defineLinter } from "@typespec/compiler";
|
|
2
2
|
import { allowedValuesCsdlCompatibility } from "./rules/allowed-values.js";
|
|
3
|
-
import { collectionOfComplexTypeShouldUseEntityType, collectionPropertyNameShouldBePlural, collectionPropertyShouldNotBeNullable, } from "./rules/collections.js";
|
|
3
|
+
import { collectionOfComplexTypeShouldUseEntityType, collectionPropertyNameShouldBePlural, collectionPropertyShouldNotBeNullable, numberedPropertiesShouldUseCollection, } from "./rules/collections.js";
|
|
4
|
+
import { avoidIdPropertyOnComplexType } from "./rules/complex.js";
|
|
4
5
|
import { containedEntityShouldNotHaveEntitySet } from "./rules/contains.js";
|
|
5
6
|
import { validateCoreElementsHaveDocString } from "./rules/documentation.js";
|
|
6
|
-
import { entityAndComplexPropertyNameShouldNotBeName, entityNamesShouldBeSingular, referenceIdPropertyShouldBeNavigationProperty, } from "./rules/entity.js";
|
|
7
|
-
import { collectionShouldNotBeEnum, nullableBooleanShouldBeEnum, nullableEnumsShouldAddAdditionalMember, useEvolvableEnumRule, } from "./rules/enum.js";
|
|
7
|
+
import { entityAndComplexPropertyNameShouldNotBeName, entityKeyMustBeString, entityNamesShouldBeSingular, primaryKeyMustNotBeComposite, referenceIdPropertyShouldBeNavigationProperty, } from "./rules/entity.js";
|
|
8
|
+
import { collectionShouldNotBeEnum, graphFlagsValuesMustBeZeroOrPowersOfTwo, nullableBooleanShouldBeEnum, nullableEnumsShouldAddAdditionalMember, useEvolvableEnumRule, } from "./rules/enum.js";
|
|
8
9
|
import { flatBagEnumShouldBeClosed, flatBagSiblingsShouldBeNullable } from "./rules/flat-bag.js";
|
|
9
|
-
import { interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, } from "./rules/media.js";
|
|
10
|
+
import { interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, mediaEntityTypesMustNotContainStreamProperties, mediaEntityTypesMustNotInherit, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, } from "./rules/media.js";
|
|
10
11
|
import { containedNavigationPropertyTypeShouldNotBeExternallyReferenced, operationParametersShouldHaveRequiredBeforeOptional, shouldNotUseUnnecessaryInheritance, } from "./rules/model.js";
|
|
11
|
-
import { namesMustBeCamelCase } from "./rules/naming.js";
|
|
12
|
-
import { namespaceAliasConventionSuppressed, namespacesMustBeCamelCase } from "./rules/namespace.js";
|
|
12
|
+
import { namesMustBeCamelCase, operationNamesShouldAvoidCrudVerbs } from "./rules/naming.js";
|
|
13
|
+
import { namespaceAliasConventionSuppressed, namespacesMustBeCamelCase, } from "./rules/namespace.js";
|
|
13
14
|
import { getPutPostAndPatchOperationsShouldHaveSelectDecorator } from "./rules/operation-inside-interface.js";
|
|
14
|
-
import { propertyMustNotBeNamedType, propertyNameShouldNotStartWithNavigationSourceName, useCreatedInPropertyNames, useModifiedInPropertyNames, useProperDefaultRecord, } from "./rules/properties.js";
|
|
15
|
+
import { datePropertyNamesMustUseDateSuffix, dateTimePropertyNamesMustUseDateTimeSuffix, propertyMustNotBeNamedType, propertyNameMustNotRepeatDeclaringType, propertyNameMustNotUsePrimitiveTypeAffix, propertyNameMustNotUseProhibitedSuffix, propertyNameShouldNotStartWithNavigationSourceName, timePropertyNamesMustUseTimeSuffix, useCreatedInPropertyNames, useEmailInsteadOfMail, useModifiedInPropertyNames, useProperDefaultRecord, } from "./rules/properties.js";
|
|
15
16
|
import { dictionaryTypeIsMostlyUsedWithRecordType, useRecordTypeInsteadOfDictionary, } from "./rules/record-t.js";
|
|
16
17
|
export const $linter = defineLinter({
|
|
17
18
|
rules: [
|
|
@@ -45,7 +46,22 @@ export const $linter = defineLinter({
|
|
|
45
46
|
propertyMustNotBeNamedType,
|
|
46
47
|
namespaceAliasConventionSuppressed,
|
|
47
48
|
flatBagSiblingsShouldBeNullable,
|
|
48
|
-
flatBagEnumShouldBeClosed
|
|
49
|
+
flatBagEnumShouldBeClosed,
|
|
50
|
+
useEmailInsteadOfMail,
|
|
51
|
+
datePropertyNamesMustUseDateSuffix,
|
|
52
|
+
timePropertyNamesMustUseTimeSuffix,
|
|
53
|
+
dateTimePropertyNamesMustUseDateTimeSuffix,
|
|
54
|
+
entityKeyMustBeString,
|
|
55
|
+
primaryKeyMustNotBeComposite,
|
|
56
|
+
avoidIdPropertyOnComplexType,
|
|
57
|
+
propertyNameMustNotRepeatDeclaringType,
|
|
58
|
+
propertyNameMustNotUsePrimitiveTypeAffix,
|
|
59
|
+
propertyNameMustNotUseProhibitedSuffix,
|
|
60
|
+
graphFlagsValuesMustBeZeroOrPowersOfTwo,
|
|
61
|
+
mediaEntityTypesMustNotContainStreamProperties,
|
|
62
|
+
mediaEntityTypesMustNotInherit,
|
|
63
|
+
operationNamesShouldAvoidCrudVerbs,
|
|
64
|
+
numberedPropertiesShouldUseCollection,
|
|
49
65
|
],
|
|
50
66
|
ruleSets: {
|
|
51
67
|
recommended: {
|
|
@@ -71,6 +87,21 @@ export const $linter = defineLinter({
|
|
|
71
87
|
[`@microsoft/typespec-msgraph/${propertyMustNotBeNamedType.name}`]: true,
|
|
72
88
|
[`@microsoft/typespec-msgraph/${namespaceAliasConventionSuppressed.name}`]: true,
|
|
73
89
|
[`@microsoft/typespec-msgraph/${flatBagEnumShouldBeClosed.name}`]: true,
|
|
90
|
+
[`@microsoft/typespec-msgraph/${useEmailInsteadOfMail.name}`]: true,
|
|
91
|
+
[`@microsoft/typespec-msgraph/${datePropertyNamesMustUseDateSuffix.name}`]: true,
|
|
92
|
+
[`@microsoft/typespec-msgraph/${timePropertyNamesMustUseTimeSuffix.name}`]: true,
|
|
93
|
+
[`@microsoft/typespec-msgraph/${dateTimePropertyNamesMustUseDateTimeSuffix.name}`]: true,
|
|
94
|
+
[`@microsoft/typespec-msgraph/${entityKeyMustBeString.name}`]: true,
|
|
95
|
+
[`@microsoft/typespec-msgraph/${primaryKeyMustNotBeComposite.name}`]: true,
|
|
96
|
+
[`@microsoft/typespec-msgraph/${avoidIdPropertyOnComplexType.name}`]: true,
|
|
97
|
+
[`@microsoft/typespec-msgraph/${propertyNameMustNotRepeatDeclaringType.name}`]: true,
|
|
98
|
+
[`@microsoft/typespec-msgraph/${propertyNameMustNotUsePrimitiveTypeAffix.name}`]: true,
|
|
99
|
+
[`@microsoft/typespec-msgraph/${propertyNameMustNotUseProhibitedSuffix.name}`]: true,
|
|
100
|
+
[`@microsoft/typespec-msgraph/${graphFlagsValuesMustBeZeroOrPowersOfTwo.name}`]: true,
|
|
101
|
+
[`@microsoft/typespec-msgraph/${mediaEntityTypesMustNotContainStreamProperties.name}`]: true,
|
|
102
|
+
[`@microsoft/typespec-msgraph/${mediaEntityTypesMustNotInherit.name}`]: true,
|
|
103
|
+
[`@microsoft/typespec-msgraph/${operationNamesShouldAvoidCrudVerbs.name}`]: true,
|
|
104
|
+
[`@microsoft/typespec-msgraph/${numberedPropertiesShouldUseCollection.name}`]: true,
|
|
74
105
|
// library recommended rules
|
|
75
106
|
[`@microsoft/typespec-msgraph/${mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes.name}`]: true,
|
|
76
107
|
[`@microsoft/typespec-msgraph/${interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified.name}`]: true,
|
|
@@ -82,8 +113,8 @@ export const $linter = defineLinter({
|
|
|
82
113
|
[`@microsoft/typespec-msgraph/${validateCoreElementsHaveDocString.name}`]: true,
|
|
83
114
|
[`@microsoft/typespec-msgraph/${operationParametersShouldHaveRequiredBeforeOptional.name}`]: true,
|
|
84
115
|
[`@microsoft/typespec-msgraph/${allowedValuesCsdlCompatibility.name}`]: true,
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
88
119
|
});
|
|
89
120
|
//# sourceMappingURL=linter.js.map
|
package/dist/src/linter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EACL,0CAA0C,EAC1C,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EACL,2CAA2C,EAC3C,2BAA2B,EAC3B,6CAA6C,GAC9C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,sCAAsC,EACtC,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EACL,2DAA2D,EAC3D,qDAAqD,GACtD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,8DAA8D,EAC9D,mDAAmD,EACnD,kCAAkC,GACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-expand.d.ts","sourceRoot":"","sources":["../../../src/rules/auto-expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EAGR,MAAM,oBAAoB,CAAC;AAwG5B,wBAAgB,mDAAmD,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+B1F"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { navigateTypesInNamespace, walkPropertiesInherited, } from "@typespec/compiler";
|
|
2
|
+
import { isAutoExpand, isAutoExpandReferences, isComplex } from "../index.js";
|
|
3
|
+
import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
|
|
4
|
+
import { reportDiagnostic } from "../lib.js";
|
|
5
|
+
import { getTypeModel, isNavigationProperty } from "../utils.js";
|
|
6
|
+
function validateNavigationPropertyDecorator(program, property, decorator) {
|
|
7
|
+
if (isNavigationProperty(program, property)) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
reportDiagnostic(program, {
|
|
11
|
+
code: "decorator-invalid-use",
|
|
12
|
+
target: property,
|
|
13
|
+
messageId: "wrongType",
|
|
14
|
+
format: {
|
|
15
|
+
decorator,
|
|
16
|
+
target: "navigation property",
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
function isAutomaticallyExpanded(program, property) {
|
|
22
|
+
return isAutoExpand(program, property) || isAutoExpandReferences(program, property);
|
|
23
|
+
}
|
|
24
|
+
function isSameOrDerivedModel(current, target) {
|
|
25
|
+
for (let model = current; model; model = model.baseModel) {
|
|
26
|
+
if (model === target) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function getExpansionTarget(program, property) {
|
|
33
|
+
const target = getTypeModel(program, property.type);
|
|
34
|
+
if (!target) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (isNavigationProperty(program, property)) {
|
|
38
|
+
return isAutomaticallyExpanded(program, property) ? target : undefined;
|
|
39
|
+
}
|
|
40
|
+
return isComplex(program, target) ? target : undefined;
|
|
41
|
+
}
|
|
42
|
+
function hasAutomaticExpansionPath(program, current, target, visited) {
|
|
43
|
+
if (isSameOrDerivedModel(current, target)) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (visited.has(current)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
visited.add(current);
|
|
50
|
+
for (const property of walkPropertiesInherited(current)) {
|
|
51
|
+
const next = getExpansionTarget(program, property);
|
|
52
|
+
if (next && hasAutomaticExpansionPath(program, next, target, visited)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
function createsAutomaticExpansionCycle(program, property) {
|
|
59
|
+
const source = property.model;
|
|
60
|
+
const target = getTypeModel(program, property.type);
|
|
61
|
+
return !!source && !!target && hasAutomaticExpansionPath(program, target, source, new Set());
|
|
62
|
+
}
|
|
63
|
+
function reportAutomaticExpansionCycle(program, property, decorator) {
|
|
64
|
+
reportDiagnostic(program, {
|
|
65
|
+
code: "decorator-invalid-use",
|
|
66
|
+
target: property,
|
|
67
|
+
messageId: "autoExpandCycle",
|
|
68
|
+
format: {
|
|
69
|
+
decorator,
|
|
70
|
+
property: property.name,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
export function validateAutoExpandOnlyAppliesToNavigationProperties(program) {
|
|
75
|
+
for (const namespace of getDeclaredNamespacesForLinting(program)) {
|
|
76
|
+
navigateTypesInNamespace(namespace, {
|
|
77
|
+
modelProperty: (property) => {
|
|
78
|
+
const hasAutoExpand = isAutoExpand(program, property);
|
|
79
|
+
const hasAutoExpandReferences = isAutoExpandReferences(program, property);
|
|
80
|
+
if (!hasAutoExpand && !hasAutoExpandReferences) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const autoExpandTargetIsValid = !hasAutoExpand || validateNavigationPropertyDecorator(program, property, "@autoExpand");
|
|
84
|
+
const autoExpandReferencesTargetIsValid = !hasAutoExpandReferences ||
|
|
85
|
+
validateNavigationPropertyDecorator(program, property, "@autoExpandReferences");
|
|
86
|
+
const validTarget = autoExpandTargetIsValid && autoExpandReferencesTargetIsValid;
|
|
87
|
+
if (!validTarget || !createsAutomaticExpansionCycle(program, property)) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (hasAutoExpand) {
|
|
91
|
+
reportAutomaticExpansionCycle(program, property, "@autoExpand");
|
|
92
|
+
}
|
|
93
|
+
if (hasAutoExpandReferences) {
|
|
94
|
+
reportAutomaticExpansionCycle(program, property, "@autoExpandReferences");
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=auto-expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-expand.js","sourceRoot":"","sources":["../../../src/rules/auto-expand.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,7 @@ export declare const collectionOfComplexTypeShouldUseEntityType: import("@typesp
|
|
|
7
7
|
export declare const collectionPropertyNameShouldBePlural: import("@typespec/compiler").LinterRuleDefinition<"collection-property-name-should-be-plural", {
|
|
8
8
|
readonly default: import("@typespec/compiler").CallableMessage<["property"]>;
|
|
9
9
|
}, Record<string, never>>;
|
|
10
|
+
export declare const numberedPropertiesShouldUseCollection: import("@typespec/compiler").LinterRuleDefinition<"numbered-properties-should-use-collection", {
|
|
11
|
+
readonly default: import("@typespec/compiler").CallableMessage<["properties", "model"]>;
|
|
12
|
+
}, Record<string, never>>;
|
|
10
13
|
//# sourceMappingURL=collections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../src/rules/collections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../src/rules/collections.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,qCAAqC;;yBA8BhD,CAAC;AAEH,eAAO,MAAM,0CAA0C;;yBAwCrD,CAAC;AAEH,eAAO,MAAM,oCAAoC;;yBA4B/C,CAAC;AAEH,eAAO,MAAM,qCAAqC;;yBA6ChD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRule, paramMessage } from "@typespec/compiler";
|
|
2
|
-
import { isPlural, isTypeCollection, isTypeNullable } from "../utils.js";
|
|
2
|
+
import { getPropertyTypeName, isExcludedFromGraphStudioRules, isPlural, isTypeCollection, isTypeNullable, } from "../utils.js";
|
|
3
3
|
import { isComplex } from "../decorators/complex.js";
|
|
4
4
|
import { getActualType } from "../utils.js";
|
|
5
5
|
export const collectionPropertyShouldNotBeNullable = createRule({
|
|
@@ -25,11 +25,11 @@ export const collectionPropertyShouldNotBeNullable = createRule({
|
|
|
25
25
|
messageId: "default",
|
|
26
26
|
format: {
|
|
27
27
|
property: property.name,
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
29
|
});
|
|
30
|
-
}
|
|
30
|
+
},
|
|
31
31
|
};
|
|
32
|
-
}
|
|
32
|
+
},
|
|
33
33
|
});
|
|
34
34
|
export const collectionOfComplexTypeShouldUseEntityType = createRule({
|
|
35
35
|
name: "collection-of-complex-type-should-use-entity-type",
|
|
@@ -63,9 +63,9 @@ export const collectionOfComplexTypeShouldUseEntityType = createRule({
|
|
|
63
63
|
property: property.name,
|
|
64
64
|
},
|
|
65
65
|
});
|
|
66
|
-
}
|
|
66
|
+
},
|
|
67
67
|
};
|
|
68
|
-
}
|
|
68
|
+
},
|
|
69
69
|
});
|
|
70
70
|
export const collectionPropertyNameShouldBePlural = createRule({
|
|
71
71
|
name: "collection-property-name-should-be-plural",
|
|
@@ -90,8 +90,53 @@ export const collectionPropertyNameShouldBePlural = createRule({
|
|
|
90
90
|
property: property.name,
|
|
91
91
|
},
|
|
92
92
|
});
|
|
93
|
-
}
|
|
93
|
+
},
|
|
94
94
|
};
|
|
95
|
-
}
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
export const numberedPropertiesShouldUseCollection = createRule({
|
|
98
|
+
name: "numbered-properties-should-use-collection",
|
|
99
|
+
severity: "warning",
|
|
100
|
+
description: "Sequentially numbered properties should be modeled as a collection.",
|
|
101
|
+
messages: {
|
|
102
|
+
default: paramMessage `Properties '${"properties"}' on model '${"model"}' should be modeled as a collection.`,
|
|
103
|
+
},
|
|
104
|
+
create(context) {
|
|
105
|
+
return {
|
|
106
|
+
model(model) {
|
|
107
|
+
var _a;
|
|
108
|
+
if (isExcludedFromGraphStudioRules(context.program, model)) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const groups = new Map();
|
|
112
|
+
for (const property of model.properties.values()) {
|
|
113
|
+
const match = /^(.*?)(\d+)$/.exec(property.name);
|
|
114
|
+
if (!match || Number(match[2]) < 1) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
const groupKey = `${match[1]}\0${getPropertyTypeName(context.program, property.type)}`;
|
|
118
|
+
const group = (_a = groups.get(groupKey)) !== null && _a !== void 0 ? _a : [];
|
|
119
|
+
group.push({ index: Number(match[2]), property });
|
|
120
|
+
groups.set(groupKey, group);
|
|
121
|
+
}
|
|
122
|
+
for (const group of groups.values()) {
|
|
123
|
+
group.sort((left, right) => left.index - right.index);
|
|
124
|
+
if (group.length < 2 ||
|
|
125
|
+
group[0].index !== 1 ||
|
|
126
|
+
group.some((entry, index) => index > 0 && entry.index !== group[index - 1].index + 1)) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
const properties = group.map(({ property }) => property);
|
|
130
|
+
context.reportDiagnostic({
|
|
131
|
+
target: properties[0],
|
|
132
|
+
format: {
|
|
133
|
+
properties: properties.map((property) => property.name).join(", "),
|
|
134
|
+
model: model.name,
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
},
|
|
96
141
|
});
|
|
97
142
|
//# sourceMappingURL=collections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../../src/rules/collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../../src/rules/collections.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { Program } from "@typespec/compiler";
|
|
2
2
|
export declare function validateComplexTypesAreNotAddressableThroughUniqueUrls(program: Program): void;
|
|
3
|
+
export declare const avoidIdPropertyOnComplexType: import("@typespec/compiler").LinterRuleDefinition<"avoid-id-property-on-complex-type", {
|
|
4
|
+
readonly default: import("@typespec/compiler").CallableMessage<["model"]>;
|
|
5
|
+
}, Record<string, never>>;
|
|
3
6
|
//# sourceMappingURL=complex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../../src/rules/complex.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../../src/rules/complex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMjG,wBAAgB,sDAAsD,CAAC,OAAO,EAAE,OAAO,QAoBtF;AAED,eAAO,MAAM,4BAA4B;;yBAyBvC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { navigateTypesInNamespace } from "@typespec/compiler";
|
|
1
|
+
import { createRule, navigateTypesInNamespace, paramMessage } from "@typespec/compiler";
|
|
2
|
+
import { isComplex } from "../decorators/complex.js";
|
|
2
3
|
import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
|
|
3
|
-
import { getInterfaceNavigationSourceType } from "../utils.js";
|
|
4
|
-
import { isComplex } from "../index.js";
|
|
4
|
+
import { getInterfaceNavigationSourceType, isExcludedFromGraphStudioRules } from "../utils.js";
|
|
5
5
|
import { reportDiagnostic } from "../lib.js";
|
|
6
6
|
export function validateComplexTypesAreNotAddressableThroughUniqueUrls(program) {
|
|
7
7
|
for (const namespace of getDeclaredNamespacesForLinting(program)) {
|
|
@@ -20,8 +20,32 @@ export function validateComplexTypesAreNotAddressableThroughUniqueUrls(program)
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
}
|
|
23
|
+
},
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
export const avoidIdPropertyOnComplexType = createRule({
|
|
28
|
+
name: "avoid-id-property-on-complex-type",
|
|
29
|
+
severity: "warning",
|
|
30
|
+
description: "Complex types should not define an id property.",
|
|
31
|
+
messages: {
|
|
32
|
+
default: paramMessage `Complex type '${"model"}' should not define an 'id' property.`,
|
|
33
|
+
},
|
|
34
|
+
create(context) {
|
|
35
|
+
return {
|
|
36
|
+
modelProperty(property) {
|
|
37
|
+
if (isExcludedFromGraphStudioRules(context.program, property) ||
|
|
38
|
+
!property.model ||
|
|
39
|
+
!isComplex(context.program, property.model) ||
|
|
40
|
+
property.name.toLowerCase() !== "id") {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
context.reportDiagnostic({
|
|
44
|
+
target: property,
|
|
45
|
+
format: { model: property.model.name },
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
});
|
|
27
51
|
//# sourceMappingURL=complex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.js","sourceRoot":"","sources":["../../../src/rules/complex.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"complex.js","sourceRoot":"","sources":["../../../src/rules/complex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,UAAU,sDAAsD,CAAC,OAAgB;IACrF,KAAK,MAAM,SAAS,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,wBAAwB,CAAC,SAAS,EAAE;YAClC,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE;gBAC1B,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACrF,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC;wBAC7C,gBAAgB,CAAC,OAAO,EAAE;4BACxB,IAAI,EAAE,uBAAuB;4BAC7B,MAAM,EAAE,YAAY;4BACpB,SAAS,EAAE,gDAAgD;4BAC3D,MAAM,EAAE;gCACN,WAAW,EAAE,oBAAoB,CAAC,IAAI;6BACvC;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CAAC;IACrD,IAAI,EAAE,mCAAmC;IACzC,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,iDAAiD;IAC9D,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,iBAAiB,OAAO,uCAAuC;KACrF;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,aAAa,CAAC,QAAQ;gBACpB,IACE,8BAA8B,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACzD,CAAC,QAAQ,CAAC,KAAK;oBACf,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;oBAC3C,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EACpC,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,gBAAgB,CAAC;oBACvB,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;iBACvC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -13,4 +13,10 @@ export declare const referenceIdPropertyShouldBeNavigationProperty: import("@typ
|
|
|
13
13
|
export declare const entityNamesShouldBeSingular: import("@typespec/compiler").LinterRuleDefinition<"entity-names-should-be-singular", {
|
|
14
14
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
15
15
|
}, Record<string, never>>;
|
|
16
|
+
export declare const entityKeyMustBeString: import("@typespec/compiler").LinterRuleDefinition<"entity-key-must-be-string", {
|
|
17
|
+
readonly default: import("@typespec/compiler").CallableMessage<["property", "entity"]>;
|
|
18
|
+
}, Record<string, never>>;
|
|
19
|
+
export declare const primaryKeyMustNotBeComposite: import("@typespec/compiler").LinterRuleDefinition<"primary-key-must-not-be-composite", {
|
|
20
|
+
readonly default: import("@typespec/compiler").CallableMessage<["entity"]>;
|
|
21
|
+
}, Record<string, never>>;
|
|
16
22
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAWR,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAWR,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QAkEzD;AAED,wBAAgB,mDAAmD,CAAC,OAAO,EAAE,OAAO,QA2CnF;AAGD,wBAAgB,8CAA8C,CAAC,OAAO,EAAE,OAAO,QAiC9E;AAED,wBAAgB,4DAA4D,CAAC,OAAO,EAAE,OAAO,QA6B5F;AAED,wBAAgB,4CAA4C,CAAC,OAAO,EAAE,OAAO,QAkB5E;AAED,eAAO,MAAM,2CAA2C;;yBA2BtD,CAAC;AAEH,eAAO,MAAM,6CAA6C;;yBA6CxD,CAAC;AAEH,eAAO,MAAM,2BAA2B;;yBA2BtC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;yBA4BhC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;yBA6BvC,CAAC"}
|
package/dist/src/rules/entity.js
CHANGED
|
@@ -5,7 +5,7 @@ import { isPartial } from "../decorators/graph-partial.js";
|
|
|
5
5
|
import { isOwnerless } from "../decorators/ownerless.js";
|
|
6
6
|
import { isSharedEntity } from "../decorators/shared-entity.js";
|
|
7
7
|
import { reportDiagnostic } from "../lib.js";
|
|
8
|
-
import { isTypeNullable, isExcludedLibraryType, isSameNamespace, extractTypesFromUnion, getInterfaceNavigationSourceType, isNavigationProperty, isTypeDefinedInExternalLibrary, isTypeDefinedInLocalProject, isParentSharedEntity, isSingular, } from "../utils.js";
|
|
8
|
+
import { isTypeNullable, isExcludedLibraryType, isSameNamespace, extractTypesFromUnion, getInterfaceNavigationSourceType, isNavigationProperty, isTypeDefinedInExternalLibrary, isTypeDefinedInLocalProject, isParentSharedEntity, isSingular, getPropertyTypeName, isExcludedFromGraphStudioRules, } from "../utils.js";
|
|
9
9
|
import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
|
|
10
10
|
export function validateEntityMustHaveKey(program) {
|
|
11
11
|
for (const namespace of getDeclaredNamespacesForLinting(program)) {
|
|
@@ -264,6 +264,59 @@ export const entityNamesShouldBeSingular = createRule({
|
|
|
264
264
|
};
|
|
265
265
|
},
|
|
266
266
|
});
|
|
267
|
+
export const entityKeyMustBeString = createRule({
|
|
268
|
+
name: "entity-key-must-be-string",
|
|
269
|
+
severity: "warning",
|
|
270
|
+
description: "Entity primary keys should be strings.",
|
|
271
|
+
messages: {
|
|
272
|
+
default: paramMessage `Primary key '${"property"}' on entity '${"entity"}' should be a string.`,
|
|
273
|
+
},
|
|
274
|
+
create(context) {
|
|
275
|
+
return {
|
|
276
|
+
modelProperty(property) {
|
|
277
|
+
if (isExcludedFromGraphStudioRules(context.program, property) ||
|
|
278
|
+
!property.model ||
|
|
279
|
+
!isEntity(context.program, property.model) ||
|
|
280
|
+
!isKey(context.program, property)) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (getPropertyTypeName(context.program, property.type) === "Edm.String") {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
context.reportDiagnostic({
|
|
287
|
+
target: property,
|
|
288
|
+
format: { property: property.name, entity: property.model.name },
|
|
289
|
+
});
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
},
|
|
293
|
+
});
|
|
294
|
+
export const primaryKeyMustNotBeComposite = createRule({
|
|
295
|
+
name: "primary-key-must-not-be-composite",
|
|
296
|
+
severity: "warning",
|
|
297
|
+
description: "Entity primary keys should contain exactly one property.",
|
|
298
|
+
messages: {
|
|
299
|
+
default: paramMessage `Entity '${"entity"}' has a composite primary key. Use a single string key property.`,
|
|
300
|
+
},
|
|
301
|
+
create(context) {
|
|
302
|
+
return {
|
|
303
|
+
model(model) {
|
|
304
|
+
if (isExcludedFromGraphStudioRules(context.program, model) ||
|
|
305
|
+
!isEntity(context.program, model)) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
const keys = [...walkPropertiesInherited(model)].filter((property) => isKey(context.program, property));
|
|
309
|
+
if (keys.length <= 1) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
context.reportDiagnostic({
|
|
313
|
+
target: model,
|
|
314
|
+
format: { entity: model.name },
|
|
315
|
+
});
|
|
316
|
+
},
|
|
317
|
+
};
|
|
318
|
+
},
|
|
319
|
+
});
|
|
267
320
|
function trySplitAtSuffix(value, suffix) {
|
|
268
321
|
if (value.length <= suffix.length || !value.toLowerCase().endsWith(suffix.toLowerCase())) {
|
|
269
322
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"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"}
|
package/dist/src/rules/enum.d.ts
CHANGED
|
@@ -12,4 +12,7 @@ export declare const nullableBooleanShouldBeEnum: import("@typespec/compiler").L
|
|
|
12
12
|
export declare const nullableEnumsShouldAddAdditionalMember: import("@typespec/compiler").LinterRuleDefinition<"nullable-enum-should-add-additional-member", {
|
|
13
13
|
readonly default: import("@typespec/compiler").CallableMessage<["property"]>;
|
|
14
14
|
}, Record<string, never>>;
|
|
15
|
+
export declare const graphFlagsValuesMustBeZeroOrPowersOfTwo: import("@typespec/compiler").LinterRuleDefinition<"graph-flags-values-must-be-zero-or-powers-of-two", {
|
|
16
|
+
readonly default: import("@typespec/compiler").CallableMessage<["member", "enum"]>;
|
|
17
|
+
}, Record<string, never>>;
|
|
15
18
|
//# sourceMappingURL=enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAMR,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAMR,MAAM,oBAAoB,CAAC;AAiB5B,eAAO,MAAM,oBAAoB;;yBAmC/B,CAAC;AAEH,wBAAgB,0DAA0D,CAAC,OAAO,EAAE,OAAO,QAwB1F;AAED,eAAO,MAAM,yBAAyB;;yBA+BpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;yBA6BtC,CAAC;AAEH,eAAO,MAAM,sCAAsC;;yBA8BjD,CAAC;AAEH,eAAO,MAAM,uCAAuC;;yBAiClD,CAAC"}
|