@microsoft/typespec-msgraph 0.0.1-Preview.24 → 0.0.1-Preview.26
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/annotations.d.ts +3 -3
- package/dist/src/components/annotations.d.ts.map +1 -1
- package/dist/src/components/annotations.js +24 -2
- package/dist/src/components/annotations.js.map +1 -1
- package/dist/src/components/common-elements.d.ts +6 -6
- package/dist/src/components/common-elements.d.ts.map +1 -1
- package/dist/src/components/open-property-type-constraint-annotation-element.js.map +1 -1
- package/dist/src/components/operation-element.d.ts.map +1 -1
- package/dist/src/components/operation-element.js +2 -0
- package/dist/src/components/operation-element.js.map +1 -1
- package/dist/src/components/structured-type-element.js +1 -1
- package/dist/src/components/structured-type-element.js.map +1 -1
- package/dist/src/decorators/ags-attribute.d.ts.map +1 -1
- package/dist/src/decorators/ags-attribute.js +13 -5
- package/dist/src/decorators/ags-attribute.js.map +1 -1
- package/dist/src/decorators/entity.d.ts +1 -0
- package/dist/src/decorators/entity.d.ts.map +1 -1
- package/dist/src/decorators/entity.js +5 -1
- package/dist/src/decorators/entity.js.map +1 -1
- package/dist/src/decorators/index.d.ts +1 -0
- package/dist/src/decorators/index.d.ts.map +1 -1
- package/dist/src/decorators/index.js +1 -0
- package/dist/src/decorators/index.js.map +1 -1
- package/dist/src/decorators/shared-entity.d.ts +9 -0
- package/dist/src/decorators/shared-entity.d.ts.map +1 -0
- package/dist/src/decorators/shared-entity.js +15 -0
- package/dist/src/decorators/shared-entity.js.map +1 -0
- package/dist/src/dom/renderer.d.ts.map +1 -1
- package/dist/src/emitter.js +2 -1
- package/dist/src/emitter.js.map +1 -1
- package/dist/src/entities/annotations.d.ts +7 -2
- package/dist/src/entities/annotations.d.ts.map +1 -1
- package/dist/src/entities/annotations.js +69 -55
- 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 +15 -3
- package/dist/src/entities/entity-container.js.map +1 -1
- package/dist/src/entities/model.d.ts.map +1 -1
- package/dist/src/entities/model.js +94 -44
- package/dist/src/entities/model.js.map +1 -1
- package/dist/src/entities/namespace.d.ts +3 -3
- package/dist/src/entities/namespace.d.ts.map +1 -1
- package/dist/src/entities/namespace.js +6 -6
- package/dist/src/entities/namespace.js.map +1 -1
- package/dist/src/entities/operation.d.ts +2 -0
- package/dist/src/entities/operation.d.ts.map +1 -1
- package/dist/src/entities/operation.js +29 -5
- package/dist/src/entities/operation.js.map +1 -1
- package/dist/src/lib.d.ts +96 -74
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +16 -5
- package/dist/src/lib.js.map +1 -1
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +2 -3
- package/dist/src/linter.js.map +1 -1
- package/dist/src/path-tree.d.ts +16 -0
- package/dist/src/path-tree.d.ts.map +1 -0
- package/dist/src/path-tree.js +76 -0
- package/dist/src/path-tree.js.map +1 -0
- package/dist/src/rules/address-url.d.ts.map +1 -1
- package/dist/src/rules/address-url.js +8 -6
- package/dist/src/rules/address-url.js.map +1 -1
- package/dist/src/rules/delta.d.ts.map +1 -1
- package/dist/src/rules/delta.js +7 -2
- package/dist/src/rules/delta.js.map +1 -1
- package/dist/src/rules/entity.d.ts.map +1 -1
- package/dist/src/rules/entity.js +9 -10
- package/dist/src/rules/entity.js.map +1 -1
- package/dist/src/rules/enum.d.ts +1 -1
- package/dist/src/rules/global-operation.d.ts.map +1 -1
- package/dist/src/rules/global-operation.js +3 -3
- package/dist/src/rules/global-operation.js.map +1 -1
- package/dist/src/rules/graph-route.d.ts +2 -0
- package/dist/src/rules/graph-route.d.ts.map +1 -1
- package/dist/src/rules/graph-route.js +138 -39
- package/dist/src/rules/graph-route.js.map +1 -1
- package/dist/src/rules/index.d.ts +9 -9
- package/dist/src/rules/index.d.ts.map +1 -1
- package/dist/src/rules/index.js +9 -9
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/media.d.ts +3 -3
- package/dist/src/rules/model.d.ts +2 -2
- package/dist/src/rules/model.d.ts.map +1 -1
- package/dist/src/rules/model.js +2 -2
- package/dist/src/rules/model.js.map +1 -1
- package/dist/src/rules/operation-inside-interface.d.ts +1 -1
- package/dist/src/rules/operation-inside-interface.d.ts.map +1 -1
- package/dist/src/rules/operation-inside-interface.js +3 -3
- package/dist/src/rules/operation-inside-interface.js.map +1 -1
- package/dist/src/rules/ownerless.d.ts.map +1 -1
- package/dist/src/rules/ownerless.js +5 -3
- package/dist/src/rules/ownerless.js.map +1 -1
- package/dist/src/rules/partial.d.ts +2 -0
- package/dist/src/rules/partial.d.ts.map +1 -1
- package/dist/src/rules/partial.js +40 -8
- package/dist/src/rules/partial.js.map +1 -1
- package/dist/src/rules/record-t.d.ts.map +1 -1
- package/dist/src/rules/record-t.js +12 -8
- package/dist/src/rules/record-t.js.map +1 -1
- package/dist/src/rules/reference-target.d.ts +1 -3
- package/dist/src/rules/reference-target.d.ts.map +1 -1
- package/dist/src/rules/reference-target.js +14 -19
- package/dist/src/rules/reference-target.js.map +1 -1
- package/dist/src/rules/shared-entity.d.ts +8 -0
- package/dist/src/rules/shared-entity.d.ts.map +1 -0
- package/dist/src/rules/shared-entity.js +176 -0
- package/dist/src/rules/shared-entity.js.map +1 -0
- package/dist/src/utils.d.ts +11 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +87 -10
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +11 -0
- package/dist/src/validate.js.map +1 -1
- package/lib/decorators.tsp +30 -23
- package/lib/shared-models.tsp +1 -1
- package/package.json +5 -5
package/dist/src/lib.js
CHANGED
|
@@ -36,6 +36,10 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
|
|
|
36
36
|
operationParameterMismatch: paramMessage `The operation "${"operation"}" must declare the parameters "${"parameters"}", have a "graphRouteParams" parameter or use the porcelain syntax.`,
|
|
37
37
|
topLevelNamespaceMissingPublicNamespace: paramMessage `@publicNamespace decorator is required on namespace "${"namespace"}".`,
|
|
38
38
|
propertyMissingContainsOrReferences: paramMessage `The property "${"property"}" of type "${"entity"}" which is an entity must have @contains or @references.`,
|
|
39
|
+
singletonOrEntitysetHostingBindingsShouldExist: paramMessage `A singleton or entityset definition should exist to bind "${"firstSegment"}" to "${"target"}".`,
|
|
40
|
+
sharedEntityNotFoundInReferenceLibrary: paramMessage `The shared entity "${"model"}" does not exist in the reference library.`,
|
|
41
|
+
sharedEntityPropertyNotFoundInReferenceEntity: paramMessage `The property "${"property"}" in the shared entity "${"model"}" must also exist in the reference library entity.`,
|
|
42
|
+
sharedEntityMustBeSharedInSourceLibrary: paramMessage `The declared shared entity "${"model"}" must also be defined as a shared entity in the source library.`,
|
|
39
43
|
},
|
|
40
44
|
},
|
|
41
45
|
"decorator-invalid-use": {
|
|
@@ -63,7 +67,7 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
|
|
|
63
67
|
ownerlessMustBeAppliedToInterfacesWithSingleSegmentGraphRouteRule: paramMessage `The @ownerless decorator can only be applied to interfaces with a single segment @graphRoute.`,
|
|
64
68
|
referencedEntityModelCannotHaveComplexTypeProperties: paramMessage `The referenced entity model cannot have complex type properties.`,
|
|
65
69
|
referencedEntityModelCanOnlyHaveNavigationProperties: paramMessage `The referenced entity model can only have navigation properties.`,
|
|
66
|
-
|
|
70
|
+
ownerlessInterfaceCannotHaveAnyNonActionFunctionOperations: paramMessage `The @ownerless decorator can only be applied to interfaces that contain only action or function operations.`,
|
|
67
71
|
ownerlessDecoratorCannotBeUsedWithIsOwner: paramMessage `The referenced model in the ownerless interface cannot be used with @isOwner decorator.`,
|
|
68
72
|
ownerlessDecoratorCannotHaveBaseModel: paramMessage `The referenced model in the ownerless interface cannot have a base model.`,
|
|
69
73
|
entityTypeInOnwerlessCannotBeUsedWithOtherInterfaces: paramMessage `The referenced model in the ownerless interface cannot be used in the extends clause of other interfaces.`,
|
|
@@ -72,10 +76,10 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
|
|
|
72
76
|
graphRouteWithRoutingParameterAsFinalSegment: paramMessage `The @graphRoute ${"graphRoute"} with a routing parameter as the last segment cannot be used with a collection interface.`,
|
|
73
77
|
referenceTargetInterfaceMustHaveGraphRoute: paramMessage `The @referenceTarget decorator must be used on an interface with a @graphRoute decorator.`,
|
|
74
78
|
referenceTargetMustOnlyBeUsedOnceOnInterface: paramMessage `The @referenceTarget decorator can only be used once on an interface.`,
|
|
75
|
-
referenceTargetPathShouldNotHaveParameters: paramMessage `The
|
|
79
|
+
referenceTargetPathShouldNotHaveParameters: paramMessage `The decorator "${"decorator"}" path "${"target"}" cannot have parameters {}.`,
|
|
76
80
|
interfaceWithGraphRouteMustExtendGraphStandardBaseInterface: paramMessage `The @graphRoute decorator can only be used on an interface that ultimately extends a Graph standard base interface i.e. Resource<T> or Collection<T>.`,
|
|
77
81
|
duplicateGraphRouteNotAllowed: paramMessage `The @graphRoute "${"graphRoute"}" on "${"target"}" is already defined on another interface "${"existing"}".`,
|
|
78
|
-
duplicateParametersAreNotAllowedInGraphRoute: paramMessage `The parameters "${"parameters"}" on the @graphRoute "${"graphRoute"}" must have unique names.`,
|
|
82
|
+
duplicateParametersAreNotAllowedInGraphRoute: paramMessage `The parameters "${"parameters"}" on the @graphRoute "${"graphRoute"}" for "${"target"}" must have unique names.`,
|
|
79
83
|
complexCannotBeDecoratedWithPartial: paramMessage `A @complex type cannot be a @partial.`,
|
|
80
84
|
returnSourceOnlyAppliesToActionsAndFunctions: paramMessage `The @returnSource decorator can only be applied to @function and @action operations.`,
|
|
81
85
|
deltaCanOnlyBeAppliedToFunctionsNamedDelta: paramMessage `The @delta decorator can only be used with @function operations named delta.`,
|
|
@@ -84,13 +88,19 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
|
|
|
84
88
|
interfaceWithDeltaDefinitionMustIncludeAGetOperation: paramMessage `Interfaces with @delta definition must include a get operation.`,
|
|
85
89
|
deltaFunctionReturnTypeMustBeCollectionOfEntityType: paramMessage `The return type of a @delta function must be a collection of entity type.`,
|
|
86
90
|
complexTypesAreNotAddressableThroughUniqueUrls: paramMessage `The complex type "${"complexType"}" cannot be addressed through unique URLs.`,
|
|
87
|
-
entityAndComplexAreMutuallyExclusive: paramMessage `The
|
|
91
|
+
entityAndComplexAreMutuallyExclusive: paramMessage `The ${"decorator"} and @complex decorators are mutually exclusive and cannot be used together on "${"model"}" model.`,
|
|
88
92
|
filterPropertiesShouldBeSimple: paramMessage `The property "${"property"}" defined in the @filter decorator must be a simple property in the model "${"model"}".`,
|
|
89
93
|
navigationPropertyShouldBeTargettedWithOneInterface: paramMessage `The navigation properties "${"models"}" should not be targetted by more than one interface with @delta. Please choose one interface for each navigation property.`,
|
|
90
94
|
graphRouteMustMatchModelStructure: paramMessage `The @graphRoute "${"graphRoute"}" must match a navigation path in the model "${"model"}".`,
|
|
91
95
|
overloadedFunctionReturnTypesMustBeSame: paramMessage `The return types "${"returnTypes"}" of the overloaded function "${"operation"}" must be identical.`,
|
|
92
96
|
enumMemberUnknownFutureValueCannotHaveDocString: paramMessage `Description is not allowed on "${"member"}" because it will be auto-generated.`,
|
|
93
97
|
addressUrlsAreNotEqual: paramMessage `The decorator values (string and booleans) of "${"decorator"}" applied to multiple interfaces that point to the same navigation property "${"target"}" must be identical.`,
|
|
98
|
+
partialDeclaringSignatureMustMatchReference: paramMessage `The declaring signature of the partial entity "${"target"}" must match the referenced entity's, with the same use of the ${"decorator"} decorator.`,
|
|
99
|
+
openDecoratorCannotBeUsedWithPartial: paramMessage `The @open decorator can only be specified in the the owning workload.`,
|
|
100
|
+
interfaceWithGraphRouteTargetingFunctionMustTargetComposableFunction: paramMessage `An interface with a @graphroute decorator targeting a function must target a composable function.`,
|
|
101
|
+
graphRouteMustHaveMatchingGraphRoutesForEachSubPath: paramMessage `Missing matching @graphRoute for subpath "${"subPath"}" of path "${"graphRoute"}".`,
|
|
102
|
+
sharedEntityCannotBePartial: paramMessage `The @sharedEntity and @partial decorators cannot be used together on "${"model"}" model.`,
|
|
103
|
+
sharedEntityCannotHaveOwner: paramMessage `The @sharedEntity decorator cannot be used with ownership decorator values set to true on "${"model"}" model.`,
|
|
94
104
|
},
|
|
95
105
|
},
|
|
96
106
|
"singleton-invalid-name": {
|
|
@@ -114,7 +124,8 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
|
|
|
114
124
|
recordTypeCannotBeNull: paramMessage `The record type "${"type"}" cannot be null.`,
|
|
115
125
|
recordTypeCannotBeUsedInLine: paramMessage `Using inline record as type on ${"type"} is not supported. Create a complex entity to represent it.`,
|
|
116
126
|
interfaceWithPartialBindingType: paramMessage `The interface "${"interface"}" targets a partial or non-owned type "${"type"}" and as such cannot declare operations.`,
|
|
117
|
-
propertyTypeCannotBeStringLiteral: paramMessage `The type for "${"property"}" cannot be a ${"type"} literal
|
|
127
|
+
propertyTypeCannotBeStringLiteral: paramMessage `The type for "${"property"}" cannot be a ${"type"} literal.`,
|
|
128
|
+
sharedEntityCannotCreateSingletonOrEntitySet: paramMessage `The shared entity "${"type"}" cannot be the type of a routed interface that creates a Singleton or an EntitySet`,
|
|
118
129
|
}
|
|
119
130
|
}
|
|
120
131
|
},
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE7G,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AAMnC,MAAM,oBAAoB,GAA0C;IAClE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,wFAAwF;SACtG;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC;IACvC,uBAAuB,EAAE,KAAK;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CAAC;IACxD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE;QACX,gCAAgC,EAAE;YAChC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,OAAO,WAAW,sDAAsD,UAAU,qBAAqB,UAAU,GAAG;gBACzI,QAAQ,EAAE,YAAY,CAAA,oFAAoF;aAC3G;SACF;QACD,8BAA8B,EAAE;YAC9B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,OAAO,SAAS,+BAA+B,OAAO,SAAS,UAAU,GAAG;gBACjG,SAAS,EAAE,YAAY,CAAA,4CAA4C;gBACnE,yCAAyC,EAAE,6DAA6D;gBACxG,yBAAyB,EAAE,YAAY,CAAA,iBAAiB,UAAU,SAAS,OAAO,6FAA6F;gBAC/K,qBAAqB,EAAE,YAAY,CAAA,cAAc,OAAO,mCAAmC;gBAC3F,0BAA0B,EAAE,YAAY,CAAA,kBAAkB,WAAW,kCAAkC,YAAY,qEAAqE;gBACxL,uCAAuC,EAAE,YAAY,CAAA,wDAAwD,WAAW,IAAI;gBAC5H,mCAAmC,EAAE,YAAY,CAAA,iBAAiB,UAAU,cAAc,QAAQ,0DAA0D;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
package/dist/src/linter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,+
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,+CAwBlB,CAAA"}
|
package/dist/src/linter.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineLinter } from "@typespec/compiler";
|
|
2
|
-
import { modelShouldBeEntityOrComplexType,
|
|
2
|
+
import { modelShouldBeEntityOrComplexType, useEvolvableEnumRule, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, getPutPostAndPatchOperationsShouldHaveSelectDecorator, useRecordTypeInsteadOfDictionary, dictionaryTypeIsMostlyUsedWithRecordType, containedNavigationPropertyTypeShouldNotBeExternallyReferenced, entityAndComplexPropertyNameShouldNotBeName, validateCoreElementsHaveDocString } from "./rules/index.js";
|
|
3
3
|
export const $linter = defineLinter({
|
|
4
|
-
rules: [useEvolvableEnumRule,
|
|
4
|
+
rules: [useEvolvableEnumRule,
|
|
5
5
|
modelShouldBeEntityOrComplexType, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes,
|
|
6
6
|
interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, getPutPostAndPatchOperationsShouldHaveSelectDecorator,
|
|
7
7
|
useRecordTypeInsteadOfDictionary, dictionaryTypeIsMostlyUsedWithRecordType,
|
|
@@ -12,7 +12,6 @@ export const $linter = defineLinter({
|
|
|
12
12
|
recommended: {
|
|
13
13
|
enable: {
|
|
14
14
|
[`@microsoft/typespec-msgraph/${useEvolvableEnumRule.name}`]: true,
|
|
15
|
-
[`@microsoft/typespec-msgraph/${singletonOrEntitySetHostingBindingsShouldExist.name}`]: true,
|
|
16
15
|
[`@microsoft/typespec-msgraph/${modelShouldBeEntityOrComplexType.name}`]: true,
|
|
17
16
|
[`@microsoft/typespec-msgraph/${mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes.name}`]: true,
|
|
18
17
|
[`@microsoft/typespec-msgraph/${interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified.name}`]: true,
|
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,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gCAAgC,
|
|
1
|
+
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gCAAgC,EACvC,oBAAoB,EAAE,qDAAqD,EAC3E,2DAA2D,EAAE,qDAAqD,EAClH,gCAAgC,EAAE,wCAAwC,EAC1E,8DAA8D,EAAE,2CAA2C,EAC3G,iCAAiC,EACjC,MAAM,kBAAkB,CAAC;AAE3B,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE,CAAC,oBAAoB;QAC1B,gCAAgC,EAAE,qDAAqD;QACvF,2DAA2D,EAAE,qDAAqD;QAClH,gCAAgC,EAAE,wCAAwC;QAC1E,8DAA8D,EAAE,2CAA2C;QAC3G,iCAAiC;KAClC;IACD,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,CAAC,+BAA+B,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAClE,CAAC,+BAA+B,gCAAgC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC9E,CAAC,+BAA+B,qDAAqD,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnG,CAAC,+BAA+B,2DAA2D,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACzG,CAAC,+BAA+B,qDAAqD,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnG,CAAC,+BAA+B,gCAAgC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC9E,CAAC,+BAA+B,wCAAwC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACtF,CAAC,+BAA+B,8DAA8D,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC5G,CAAC,+BAA+B,2CAA2C,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACzF,CAAC,+BAA+B,iCAAiC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;aAChF;SACF;KACF;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Model } from "@typespec/compiler";
|
|
2
|
+
export declare class TreeNode {
|
|
3
|
+
name: string;
|
|
4
|
+
entityType: Model | undefined;
|
|
5
|
+
containingEntityType: Model | undefined;
|
|
6
|
+
children: Map<string, TreeNode>;
|
|
7
|
+
constructor(entityType?: Model | undefined);
|
|
8
|
+
}
|
|
9
|
+
export declare class PathTree {
|
|
10
|
+
root: TreeNode;
|
|
11
|
+
constructor();
|
|
12
|
+
addNode(path: string, entityType: Model): void;
|
|
13
|
+
getAllNodesWithContainingEntityType(entityName: string, node?: TreeNode, result?: TreeNode[]): TreeNode[];
|
|
14
|
+
getNodeByPath(path: string): TreeNode | undefined;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=path-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-tree.d.ts","sourceRoot":"","sources":["../../src/path-tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAM3C,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,oBAAoB,EAAE,KAAK,GAAG,SAAS,CAAC;IACxC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAEpB,UAAU,GAAE,KAAK,GAAG,SAAqB;CAMtD;AAKD,qBAAa,QAAQ;IACnB,IAAI,EAAE,QAAQ,CAAC;;IAOf,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,IAAI;IAkC9C,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,QAAoB,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,QAAQ,EAAE;IAWxH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;CAelD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { cleanGraphRoutePath } from "./utils.js";
|
|
2
|
+
/* A class that represents a graph route path segment, its associated entity type, the
|
|
3
|
+
* containing entity, and its children segments.
|
|
4
|
+
*/
|
|
5
|
+
export class TreeNode {
|
|
6
|
+
constructor(entityType = undefined) {
|
|
7
|
+
this.name = 'root';
|
|
8
|
+
this.entityType = entityType;
|
|
9
|
+
this.containingEntityType = undefined;
|
|
10
|
+
this.children = new Map();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/* A class that represents the tree structure of graph route paths and the associations
|
|
14
|
+
* among path segments and operations for adding and retrieving the segments and their metadata.
|
|
15
|
+
*/
|
|
16
|
+
export class PathTree {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.root = new TreeNode(undefined);
|
|
19
|
+
}
|
|
20
|
+
// Adds a node to the tree for the given path and entity type.
|
|
21
|
+
addNode(path, entityType) {
|
|
22
|
+
path = cleanGraphRoutePath(path);
|
|
23
|
+
const segments = path.split("/");
|
|
24
|
+
let currentNode = this.root;
|
|
25
|
+
for (const segment of segments) {
|
|
26
|
+
if (!currentNode.children.has(segment)) {
|
|
27
|
+
if (segments.indexOf(segment) === segments.length - 1) {
|
|
28
|
+
// The entity type is set only for the last segment of the path
|
|
29
|
+
currentNode.children.set(segment, new TreeNode(entityType));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
currentNode.children.set(segment, new TreeNode(undefined));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Segment already exists in the tree; update its node properties only if it is the last segment
|
|
37
|
+
currentNode = currentNode.children.get(segment);
|
|
38
|
+
if (segments.indexOf(segment) === segments.length - 1 && !currentNode.entityType) {
|
|
39
|
+
currentNode.entityType = entityType;
|
|
40
|
+
for (const child of currentNode.children.values()) {
|
|
41
|
+
child.containingEntityType = entityType;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
// The containing entity type of the current node is the entity type of its parent node
|
|
47
|
+
currentNode.children.get(segment).containingEntityType = currentNode.entityType;
|
|
48
|
+
currentNode = currentNode.children.get(segment);
|
|
49
|
+
currentNode.name = segment;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Retrieves all nodes with the given containing entity name.
|
|
53
|
+
getAllNodesWithContainingEntityType(entityName, node = this.root, result = []) {
|
|
54
|
+
if (node.containingEntityType && node.containingEntityType.name === entityName) {
|
|
55
|
+
result.push(node);
|
|
56
|
+
}
|
|
57
|
+
for (const child of node.children.values()) {
|
|
58
|
+
this.getAllNodesWithContainingEntityType(entityName, child, result);
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
// Retrieves the node for the given path.
|
|
63
|
+
getNodeByPath(path) {
|
|
64
|
+
path = cleanGraphRoutePath(path);
|
|
65
|
+
const segments = path.split('/');
|
|
66
|
+
let currentNode = this.root;
|
|
67
|
+
for (const segment of segments) {
|
|
68
|
+
if (!currentNode) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
currentNode = currentNode.children.get(segment);
|
|
72
|
+
}
|
|
73
|
+
return currentNode;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=path-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-tree.js","sourceRoot":"","sources":["../../src/path-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-url.d.ts","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"address-url.d.ts","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAkD,MAAM,oBAAoB,CAAC;AAK7F;;GAEG;AACH,wBAAgB,iEAAiE,CAC/E,OAAO,EAAE,OAAO,QAgBjB;AAED;;GAEG;AACH,wBAAgB,oEAAoE,CAClF,OAAO,EAAE,OAAO,QAgBjB;AAED;;GAEG;AACH,wBAAgB,4EAA4E,CAC1F,OAAO,EAAE,OAAO,QAgBjB;AAED;;GAEG;AACH,wBAAgB,+EAA+E,CAC7F,OAAO,EAAE,OAAO,QAgBjB;AAED,wBAAgB,2EAA2E,CACzF,OAAO,EAAE,OAAO,QAqEjB;AAwCD,wBAAgB,8DAA8D,CAAC,OAAO,EAAE,OAAO,QAa9F"}
|
|
@@ -3,7 +3,7 @@ import { reportDiagnostic } from "../lib.js";
|
|
|
3
3
|
import { navigateTypesInNamespace } from "@typespec/compiler";
|
|
4
4
|
import { GetDeclaredNamespaces } from "../entities/namespace.js";
|
|
5
5
|
import { getPassthroughAddressUrlMsa, hasPassthroughAddressUrlMsa } from "../decorators/passthrough-address-url-msa.js";
|
|
6
|
-
import { getIdForType, isEqual } from "../utils.js";
|
|
6
|
+
import { buildPathTree, getIdForType, getParentModelForPropertyFromGraphRoute, isEqual } from "../utils.js";
|
|
7
7
|
/**
|
|
8
8
|
* @addressUrl only applies to either routed interfaces (entity sets, singletons and navigation properties) or action operations.
|
|
9
9
|
*/
|
|
@@ -194,18 +194,20 @@ function validateAddressUrlParameters(program, interfaces, target, getParameter)
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
function getInterfacesWithSameNavSource(program, interfaces) {
|
|
197
|
+
const pathTree = buildPathTree(program);
|
|
197
198
|
let interfacesWithSameSource = new Map();
|
|
198
199
|
for (const [_, theInterface] of interfaces) {
|
|
199
200
|
const graphRoutes = getGraphRoutePaths(program, theInterface);
|
|
200
201
|
graphRoutes === null || graphRoutes === void 0 ? void 0 : graphRoutes.forEach(route => {
|
|
201
202
|
var _a;
|
|
202
|
-
const
|
|
203
|
-
if (
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
const parentModel = getParentModelForPropertyFromGraphRoute(pathTree, route);
|
|
204
|
+
if (parentModel) {
|
|
205
|
+
const lastSegment = route.split("/").pop();
|
|
206
|
+
if (interfacesWithSameSource.has(parentModel.name)) {
|
|
207
|
+
(_a = interfacesWithSameSource.get(parentModel.name)) === null || _a === void 0 ? void 0 : _a.interfaces.push(theInterface);
|
|
206
208
|
}
|
|
207
209
|
else {
|
|
208
|
-
interfacesWithSameSource.set(
|
|
210
|
+
interfacesWithSameSource.set(parentModel.name, { navigationPropertyName: lastSegment, interfaces: [theInterface] });
|
|
209
211
|
}
|
|
210
212
|
}
|
|
211
213
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-url.js","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"address-url.js","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../src/rules/delta.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,OAAO,EAA0D,MAAM,oBAAoB,CAAC;AAOjJ,wBAAgB,kDAAkD,CAAC,OAAO,EAAE,OAAO,QAmBlF;AAED,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,OAAO,QAkBvE;AAED,wBAAgB,qEAAqE,CAAC,OAAO,EAAE,OAAO,QAwBrG;AAED,wBAAgB,4DAA4D,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../src/rules/delta.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,OAAO,EAA0D,MAAM,oBAAoB,CAAC;AAOjJ,wBAAgB,kDAAkD,CAAC,OAAO,EAAE,OAAO,QAmBlF;AAED,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,OAAO,QAkBvE;AAED,wBAAgB,qEAAqE,CAAC,OAAO,EAAE,OAAO,QAwBrG;AAED,wBAAgB,4DAA4D,CAAC,OAAO,EAAE,OAAO,QAiC5F;AAED,wBAAgB,2DAA2D,CAAC,OAAO,EAAE,OAAO,QAiC3F;AAED,wBAAgB,kEAAkE,CAAC,OAAO,EAAE,OAAO,QA8BlG"}
|
package/dist/src/rules/delta.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getPropertyType, navigateTypesInNamespace } from "@typespec/compiler";
|
|
2
2
|
import { GetDeclaredNamespaces } from "../entities/namespace.js";
|
|
3
|
-
import { isDelta, isEntity, isFunction } from "../index.js";
|
|
3
|
+
import { getGraphRoutePaths, isDelta, isEntity, isFunction } from "../index.js";
|
|
4
4
|
import { reportDiagnostic } from "../lib.js";
|
|
5
|
-
import { extractTypesFromUnion, filterMapByIdenticalValues, getInterfaceNavigationSourceType, getNavigationSourceType, getSourceInterfaces, isCollection, isNavigationProperty } from "../utils.js";
|
|
5
|
+
import { extractTypesFromUnion, filterMapByIdenticalValues, getComposableFunctionSegmentFromGraphRoute, getInterfaceNavigationSourceType, getNavigationSourceType, getSourceInterfaces, isCollection, isNavigationProperty } from "../utils.js";
|
|
6
6
|
import { getOperationVerb } from "@typespec/http";
|
|
7
7
|
export function validateDeltaCanOnlyBeAppliedToFunctionsNamedDelta(program) {
|
|
8
8
|
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
@@ -74,6 +74,11 @@ export function validateInterfaceWithDeltaDefinitionMustIncludeAGetOperation(pro
|
|
|
74
74
|
.map(([_, operation]) => operation)
|
|
75
75
|
.some((operation) => isDelta(program, operation));
|
|
76
76
|
if (hasDelta) {
|
|
77
|
+
// check if graph route is a function
|
|
78
|
+
const graphRoutePaths = getGraphRoutePaths(program, theInterface);
|
|
79
|
+
if (graphRoutePaths === null || graphRoutePaths === void 0 ? void 0 : graphRoutePaths.some(path => getComposableFunctionSegmentFromGraphRoute(path))) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
77
82
|
const getOperations = [...theInterface.operations]
|
|
78
83
|
.map(([_, operation]) => operation)
|
|
79
84
|
.filter((operation) => getOperationVerb(program, operation) === "get");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/rules/delta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACjJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/rules/delta.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EACsH,MAAM,oBAAoB,CAAC;AAMjK,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QAsDzD;AAED,wBAAgB,mDAAmD,CAAC,OAAO,EAAE,OAAO,QA2CnF;AAGD,wBAAgB,8CAA8C,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EACsH,MAAM,oBAAoB,CAAC;AAMjK,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QAsDzD;AAED,wBAAgB,mDAAmD,CAAC,OAAO,EAAE,OAAO,QA2CnF;AAGD,wBAAgB,8CAA8C,CAAC,OAAO,EAAE,OAAO,QA2B9E;AAED,wBAAgB,4DAA4D,CAAE,OAAO,EAAE,OAAO,QA0B7F;AAED,wBAAgB,4CAA4C,CAAC,OAAO,EAAE,OAAO,QAmB5E;AAED,eAAO,MAAM,2CAA2C;;EA2BtD,CAAA"}
|
package/dist/src/rules/entity.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isComplex,
|
|
1
|
+
import { isKey, navigateTypesInNamespace, walkPropertiesInherited, isArrayModelType, createRule, paramMessage } from "@typespec/compiler";
|
|
2
|
+
import { isComplex, isDirectEntity, isOwnerless, isSharedEntity, isPartial, isEntity } from "../index.js";
|
|
3
3
|
import { reportDiagnostic } from "../lib.js";
|
|
4
|
-
import { isTypeNullable, isExcludedLibraryType, isSameNamespace, extractTypesFromUnion, getInterfaceNavigationSourceType, isNavigationProperty } from "../utils.js";
|
|
4
|
+
import { isTypeNullable, isExcludedLibraryType, isSameNamespace, extractTypesFromUnion, getInterfaceNavigationSourceType, isNavigationProperty, isTypeDefinedInExternalLibrary, isTypeDefinedInLocalProject, isParentSharedEntity } from "../utils.js";
|
|
5
5
|
import { GetDeclaredNamespaces } from "../entities/namespace.js";
|
|
6
6
|
export function validateEntityMustHaveKey(program) {
|
|
7
7
|
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
8
8
|
navigateTypesInNamespace(namespace, {
|
|
9
9
|
model: (model) => {
|
|
10
|
-
if (!
|
|
10
|
+
if (!isDirectEntity(program, model) && !isParentSharedEntity(program, model)) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
if (isPartial(program, model)) {
|
|
@@ -103,12 +103,10 @@ export function validateExtendOnlyAppliesOnDifferentNamespaces(program) {
|
|
|
103
103
|
if (!model.baseModel) {
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
|
-
|
|
107
|
-
const modelLocationContextType = getLocationContext(program, model).type;
|
|
108
|
-
if (baseModelLocationContextType === "library" && modelLocationContextType === "library") {
|
|
106
|
+
if (isTypeDefinedInExternalLibrary(program, model.baseModel) && isTypeDefinedInExternalLibrary(program, model)) {
|
|
109
107
|
return;
|
|
110
108
|
}
|
|
111
|
-
if (
|
|
109
|
+
if (isTypeDefinedInLocalProject(program, model.baseModel) && isTypeDefinedInLocalProject(program, model)) {
|
|
112
110
|
return;
|
|
113
111
|
}
|
|
114
112
|
if (isSameNamespace(program, model, model.baseModel)) {
|
|
@@ -134,7 +132,7 @@ export function validatePropertyTypeOfEntityTypeMustHaveContainsOrReferences(pro
|
|
|
134
132
|
return;
|
|
135
133
|
}
|
|
136
134
|
}
|
|
137
|
-
if (property.type.kind === "Union" &&
|
|
135
|
+
if (property.type.kind === "Union" && !isTypeDefinedInExternalLibrary(program, property)) {
|
|
138
136
|
const unionTypes = extractTypesFromUnion(property.type);
|
|
139
137
|
for (const unionType of unionTypes) {
|
|
140
138
|
if (unionType.kind === "Model" && isEntity(program, unionType)) {
|
|
@@ -160,6 +158,7 @@ export function validateEntityAndComplexAreMutuallyExclusive(program) {
|
|
|
160
158
|
messageId: "entityAndComplexAreMutuallyExclusive",
|
|
161
159
|
format: {
|
|
162
160
|
model: model.name,
|
|
161
|
+
decorator: isSharedEntity(program, model) ? "@sharedEntity" : "@entity",
|
|
163
162
|
},
|
|
164
163
|
});
|
|
165
164
|
}
|
|
@@ -196,7 +195,7 @@ export const entityAndComplexPropertyNameShouldNotBeName = createRule({
|
|
|
196
195
|
});
|
|
197
196
|
function isPropertyParentModelAndPropertyTypeEntity(program, property) {
|
|
198
197
|
const propertyType = getPropertyType(program, property);
|
|
199
|
-
return
|
|
198
|
+
return !isTypeDefinedInExternalLibrary(program, property) &&
|
|
200
199
|
property.model &&
|
|
201
200
|
propertyType.kind === "Model" &&
|
|
202
201
|
isEntity(program, property.model) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Program } from "@typespec/compiler";
|
|
2
2
|
export declare const useEvolvableEnumRule: import("@typespec/compiler").LinterRuleDefinition<"use-evolvable-enum", {
|
|
3
|
-
readonly default: import("@typespec/compiler").CallableMessage<[
|
|
3
|
+
readonly default: import("@typespec/compiler").CallableMessage<["enum"]>;
|
|
4
4
|
}>;
|
|
5
5
|
export declare function validateEnumMemberUnknownFutureValueShouldNotHaveDocString(program: Program): void;
|
|
6
6
|
//# sourceMappingURL=enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-operation.d.ts","sourceRoot":"","sources":["../../../src/rules/global-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,
|
|
1
|
+
{"version":3,"file":"global-operation.d.ts","sourceRoot":"","sources":["../../../src/rules/global-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAMlF,wBAAgB,uDAAuD,CAAC,OAAO,EAAE,OAAO,QAmBvF;AAED,wBAAgB,uDAAuD,CAAC,OAAO,EAAE,OAAO,QAuBvF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { navigateTypesInNamespace } from "@typespec/compiler";
|
|
2
2
|
import { GetDeclaredNamespaces } from "../entities/namespace.js";
|
|
3
3
|
import { isGlobalOperation, isPartial } from "../index.js";
|
|
4
4
|
import { reportDiagnostic } from "../lib.js";
|
|
5
|
-
import { getInterfaceNavigationSourceType } from "../utils.js";
|
|
5
|
+
import { getInterfaceNavigationSourceType, isTypeDefinedInLocalProject } from "../utils.js";
|
|
6
6
|
export function validateGlobalOperationMustBeUsedWithNonRoutedInterface(program) {
|
|
7
7
|
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
8
8
|
navigateTypesInNamespace(namespace, {
|
|
@@ -31,7 +31,7 @@ export function validateGlobalOperationMustBeUsedWithProjectBindingType(program)
|
|
|
31
31
|
}
|
|
32
32
|
if (operation.interface) {
|
|
33
33
|
const interfaceBindingType = getInterfaceNavigationSourceType(program, operation.interface);
|
|
34
|
-
if (interfaceBindingType && (isPartial(program, interfaceBindingType) ||
|
|
34
|
+
if (interfaceBindingType && (isPartial(program, interfaceBindingType) || !isTypeDefinedInLocalProject(program, interfaceBindingType))) {
|
|
35
35
|
reportDiagnostic(program, {
|
|
36
36
|
code: "decorator-invalid-use",
|
|
37
37
|
target: operation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-operation.js","sourceRoot":"","sources":["../../../src/rules/global-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,
|
|
1
|
+
{"version":3,"file":"global-operation.js","sourceRoot":"","sources":["../../../src/rules/global-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,UAAU,uDAAuD,CAAC,OAAgB;IACtF,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,wBAAwB,CAAC,SAAS,EAAE;YAClC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,IAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,IAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAAC,CAAC;oBACrC,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,SAAS;wBACjB,SAAS,EAAE,iDAAiD;wBAC5D,MAAM,EAAE,EAAE;qBACX,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uDAAuD,CAAC,OAAgB;IACtF,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAC,CAAC;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,IAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,EAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,IAAG,SAAS,CAAC,SAAS,EAAC,CAAC;oBACtB,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC5F,IAAG,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,EAAC,CAAC;wBACpI,gBAAgB,CAAC,OAAO,EAAE;4BACxB,IAAI,EAAE,uBAAuB;4BAC7B,MAAM,EAAE,SAAS;4BACjB,SAAS,EAAE,iDAAiD;4BAC5D,MAAM,EAAE,EAAE;yBACX,CAAC,CAAA;oBACJ,CAAC;gBAEH,CAAC;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,SAAoB;;IAC5D,MAAM,mBAAmB,GAAG,MAAA,SAAS,CAAC,SAAS,0CAAE,UAAU,CAAC;IAC5D,IAAI,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,CAAA,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,CAAA,MAAA,SAAS,CAAC,UAAU,0CAAE,IAAI,MAAK,aAAa,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -9,7 +9,9 @@ export declare function validateGraphRouteAndInterfaceExtendsMatchForCollections
|
|
|
9
9
|
* A interface decorated with @graphRoute must ultimately extend one of the standard graph interface i.e Resource<T> or Collection<T>.
|
|
10
10
|
*/
|
|
11
11
|
export declare function validateGraphRouteInterfaceExtendsGraphStandardInterface(program: Program): void;
|
|
12
|
+
export declare function validateGraphRouteInterfaceTargetingFunctionMustTargetComposableFunction(program: Program): void;
|
|
12
13
|
export declare function validateDuplicateGraphRoutesNotAllowed(program: Program): void;
|
|
13
14
|
export declare function validateGraphRouteParametersMustBeUnique(program: Program): void;
|
|
15
|
+
export declare function validateGraphRouteHasMatchingGraphRoutesForEachOfItsSubPaths(program: Program): void;
|
|
14
16
|
export declare function validateGraphRouteMustMatchModelStructureWithRespectToNavigationProperties(program: Program): void;
|
|
15
17
|
//# sourceMappingURL=graph-route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-route.d.ts","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-route.d.ts","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAKnG;;GAEG;AAEH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,QAW9D;AAyBD,wBAAgB,oDAAoD,CAAC,OAAO,EAAE,OAAO,QAWpF;AAqDD,wBAAgB,wDAAwD,CAAC,OAAO,EAAE,OAAO,QA2BxF;AAeD;;GAEG;AACH,wBAAgB,wDAAwD,CAAC,OAAO,EAAE,OAAO,QA0BxF;AAED,wBAAgB,wEAAwE,CAAC,OAAO,EAAE,OAAO,QAuCxG;AAWD,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAwBtE;AAgBD,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,OAAO,QA6BxE;AAED,wBAAgB,4DAA4D,CAAC,OAAO,EAAE,OAAO,QAwC5F;AAED,wBAAgB,0EAA0E,CAAC,OAAO,EAAE,OAAO,QA0E1G"}
|