@microsoft/typespec-msgraph 0.0.1-Preview.15 → 0.0.1-Preview.16
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/structured-type-element.d.ts.map +1 -1
- package/dist/src/components/structured-type-element.js +4 -4
- package/dist/src/components/structured-type-element.js.map +1 -1
- package/dist/src/decorators/graph-route.d.ts.map +1 -1
- package/dist/src/decorators/graph-route.js +3 -0
- package/dist/src/decorators/graph-route.js.map +1 -1
- package/dist/src/decorators/index.d.ts +10 -10
- package/dist/src/decorators/index.d.ts.map +1 -1
- package/dist/src/decorators/index.js +10 -10
- package/dist/src/decorators/index.js.map +1 -1
- package/dist/src/decorators/media.d.ts +10 -0
- package/dist/src/decorators/media.d.ts.map +1 -0
- package/dist/src/decorators/media.js +16 -0
- package/dist/src/decorators/media.js.map +1 -0
- package/dist/src/decorators/passthrough-address-url-msa.d.ts +2 -3
- package/dist/src/decorators/passthrough-address-url-msa.d.ts.map +1 -1
- package/dist/src/decorators/passthrough-address-url-msa.js +2 -4
- package/dist/src/decorators/passthrough-address-url-msa.js.map +1 -1
- package/dist/src/decorators/passthrough-address-url.d.ts +2 -3
- package/dist/src/decorators/passthrough-address-url.d.ts.map +1 -1
- package/dist/src/decorators/passthrough-address-url.js +2 -4
- package/dist/src/decorators/passthrough-address-url.js.map +1 -1
- package/dist/src/dom/error-interceptor.d.ts +2 -0
- package/dist/src/dom/error-interceptor.d.ts.map +1 -0
- package/dist/src/dom/error-interceptor.js +13 -0
- package/dist/src/dom/error-interceptor.js.map +1 -0
- package/dist/src/dom/renderer.d.ts +1 -0
- package/dist/src/dom/renderer.d.ts.map +1 -1
- package/dist/src/dom/renderer.js +1 -0
- package/dist/src/dom/renderer.js.map +1 -1
- package/dist/src/entities/address-url.d.ts +3 -2
- package/dist/src/entities/address-url.d.ts.map +1 -1
- package/dist/src/entities/address-url.js +7 -2
- package/dist/src/entities/address-url.js.map +1 -1
- package/dist/src/entities/model.d.ts +5 -5
- package/dist/src/entities/model.d.ts.map +1 -1
- package/dist/src/entities/model.js +3 -3
- package/dist/src/entities/model.js.map +1 -1
- package/dist/src/entities/ms-graph-route.d.ts.map +1 -1
- package/dist/src/entities/ms-graph-route.js +8 -2
- package/dist/src/entities/ms-graph-route.js.map +1 -1
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +4 -2
- package/dist/src/linter.js.map +1 -1
- package/dist/src/rules/address-url.d.ts +1 -0
- package/dist/src/rules/address-url.d.ts.map +1 -1
- package/dist/src/rules/address-url.js +62 -0
- package/dist/src/rules/address-url.js.map +1 -1
- package/dist/src/rules/expand.d.ts.map +1 -1
- package/dist/src/rules/expand.js +3 -1
- package/dist/src/rules/expand.js.map +1 -1
- package/dist/src/rules/graph-route.d.ts.map +1 -1
- package/dist/src/rules/graph-route.js +19 -11
- package/dist/src/rules/graph-route.js.map +1 -1
- package/dist/src/rules/index.d.ts +1 -1
- package/dist/src/rules/index.d.ts.map +1 -1
- package/dist/src/rules/index.js +1 -1
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/media.d.ts +10 -0
- package/dist/src/rules/media.d.ts.map +1 -0
- package/dist/src/rules/media.js +122 -0
- package/dist/src/rules/media.js.map +1 -0
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +2 -1
- package/dist/src/validate.js.map +1 -1
- package/lib/bodies.tsp +71 -0
- package/lib/decorators.tsp +5 -9
- package/lib/msgraph.tsp +1 -0
- package/lib/porcelain.tsp +43 -18
- package/lib/responses.tsp +4 -52
- package/lib/shared-models.tsp +2 -2
- package/package.json +4 -4
- package/dist/src/decorators/has-stream.d.ts +0 -10
- package/dist/src/decorators/has-stream.d.ts.map +0 -1
- package/dist/src/decorators/has-stream.js +0 -17
- package/dist/src/decorators/has-stream.js.map +0 -1
- package/dist/src/rules/has-stream.d.ts +0 -3
- package/dist/src/rules/has-stream.d.ts.map +0 -1
- package/dist/src/rules/has-stream.js +0 -30
- package/dist/src/rules/has-stream.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getInterfaceNavigationSourceType, getInterfacesOfKinds, getSourceInterfaces, isNavigationProperty, isTopLevelNavigationSource } from "../utils.js";
|
|
1
|
+
import { extractTypesFromUnion, getInterfaceNavigationSourceType, getInterfacesOfKinds, getSourceInterfaces, isNavigationProperty, isNullType, isTopLevelNavigationSource } from "../utils.js";
|
|
2
2
|
import { GetDeclaredNamespaces, getNavigationSources } from "./namespace.js";
|
|
3
3
|
export var MsGraphRouteType;
|
|
4
4
|
(function (MsGraphRouteType) {
|
|
@@ -50,7 +50,13 @@ export function GetMsGraphRoutes(program) {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
|
-
|
|
53
|
+
if (property.type.kind === "Union") {
|
|
54
|
+
const nonNullUnionTypes = extractTypesFromUnion(property.type).filter(t => !isNullType(property.type));
|
|
55
|
+
model = nonNullUnionTypes[0];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
model = property.type;
|
|
59
|
+
}
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ms-graph-route.js","sourceRoot":"","sources":["../../../src/entities/ms-graph-route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ms-graph-route.js","sourceRoot":"","sources":["../../../src/entities/ms-graph-route.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":"AAGA,eAAO,MAAM,OAAO,+
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,+CAalB,CAAA"}
|
package/dist/src/linter.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { defineLinter } from "@typespec/compiler";
|
|
2
|
-
import { modelShouldBeEntityOrComplexType, singletonOrEntitySetHostingBindingsShouldExist, useEvolvableEnumRule } from "./rules/index.js";
|
|
2
|
+
import { modelShouldBeEntityOrComplexType, singletonOrEntitySetHostingBindingsShouldExist, useEvolvableEnumRule, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified } from "./rules/index.js";
|
|
3
3
|
export const $linter = defineLinter({
|
|
4
|
-
rules: [useEvolvableEnumRule, singletonOrEntitySetHostingBindingsShouldExist, modelShouldBeEntityOrComplexType],
|
|
4
|
+
rules: [useEvolvableEnumRule, singletonOrEntitySetHostingBindingsShouldExist, modelShouldBeEntityOrComplexType, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified],
|
|
5
5
|
ruleSets: {
|
|
6
6
|
recommended: {
|
|
7
7
|
enable: {
|
|
8
8
|
[`@microsoft/typespec-msgraph/${useEvolvableEnumRule.name}`]: true,
|
|
9
9
|
[`@microsoft/typespec-msgraph/${singletonOrEntitySetHostingBindingsShouldExist.name}`]: true,
|
|
10
10
|
[`@microsoft/typespec-msgraph/${modelShouldBeEntityOrComplexType.name}`]: true,
|
|
11
|
+
[`@microsoft/typespec-msgraph/${mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes.name}`]: true,
|
|
12
|
+
[`@microsoft/typespec-msgraph/${interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified.name}`]: true,
|
|
11
13
|
},
|
|
12
14
|
},
|
|
13
15
|
}
|
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,EAAE,8CAA8C,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
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,EAAE,8CAA8C,EAAE,oBAAoB,EAAE,qDAAqD,EAAE,2DAA2D,EAAE,MAAM,kBAAkB,CAAC;AAE9P,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE,CAAC,oBAAoB,EAAE,8CAA8C,EAAE,gCAAgC,EAAE,qDAAqD,EAAE,2DAA2D,CAAC;IACnO,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,CAAC,+BAA+B,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAClE,CAAC,+BAA+B,8CAA8C,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC5F,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;aAC1G;SACF;KACF;CACF,CAAC,CAAA"}
|
|
@@ -15,4 +15,5 @@ export declare function validatePassthroughAddressUrlOnlyAppliesToRoutedInterfac
|
|
|
15
15
|
* @passthroughAddressUrlMsa only applies to either routed interfaces (entity sets, singletons and navigation properties) or action operations.
|
|
16
16
|
*/
|
|
17
17
|
export declare function validatePassthroughAddressUrlMsaOnlyAppliesToRoutedInterfacesOrActionOperations(program: Program): void;
|
|
18
|
+
export declare function validatePassthroughAddressUrlDecoratorIsUsedTogetherWithAddressUrlDecorator(program: Program): void;
|
|
18
19
|
//# sourceMappingURL=address-url.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-url.d.ts","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAkD,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"address-url.d.ts","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"AAQA,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"}
|
|
@@ -3,6 +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 { hasPassthroughAddressUrlMsa } from "../decorators/passthrough-address-url-msa.js";
|
|
6
|
+
import { getIdForType } from "../utils.js";
|
|
6
7
|
/**
|
|
7
8
|
* @addressUrl only applies to either routed interfaces (entity sets, singletons and navigation properties) or action operations.
|
|
8
9
|
*/
|
|
@@ -79,6 +80,67 @@ export function validatePassthroughAddressUrlMsaOnlyAppliesToRoutedInterfacesOrA
|
|
|
79
80
|
});
|
|
80
81
|
}
|
|
81
82
|
}
|
|
83
|
+
export function validatePassthroughAddressUrlDecoratorIsUsedTogetherWithAddressUrlDecorator(program) {
|
|
84
|
+
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
85
|
+
navigateTypesInNamespace(namespace, {
|
|
86
|
+
interface: (theInterface) => {
|
|
87
|
+
if (hasPassthroughAddressUrl(program, theInterface) &&
|
|
88
|
+
!hasAddressUrl(program, theInterface)) {
|
|
89
|
+
reportDiagnostic(program, {
|
|
90
|
+
code: "decorator-missing-dependencies",
|
|
91
|
+
target: theInterface,
|
|
92
|
+
messageId: "default",
|
|
93
|
+
format: {
|
|
94
|
+
decorator: "@passthroughAddressUrl",
|
|
95
|
+
required: "@addressUrl",
|
|
96
|
+
location: `interface "${getIdForType(program, theInterface)}"`,
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
if (hasPassthroughAddressUrlMsa(program, theInterface) &&
|
|
101
|
+
!hasAddressUrlMsa(program, theInterface)) {
|
|
102
|
+
reportDiagnostic(program, {
|
|
103
|
+
code: "decorator-missing-dependencies",
|
|
104
|
+
target: theInterface,
|
|
105
|
+
messageId: "default",
|
|
106
|
+
format: {
|
|
107
|
+
decorator: "@passthroughAddressUrlMsa",
|
|
108
|
+
required: "@addressUrlMsa",
|
|
109
|
+
location: `interface "${getIdForType(program, theInterface)}"`,
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
operation: (operation) => {
|
|
115
|
+
if (hasPassthroughAddressUrl(program, operation) && !hasAddressUrl(program, operation)) {
|
|
116
|
+
reportDiagnostic(program, {
|
|
117
|
+
code: "decorator-missing-dependencies",
|
|
118
|
+
target: operation,
|
|
119
|
+
messageId: "default",
|
|
120
|
+
format: {
|
|
121
|
+
decorator: "@passthroughAddressUrl",
|
|
122
|
+
required: "@addressUrl",
|
|
123
|
+
location: `operation "${getIdForType(program, operation)}"`,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (hasPassthroughAddressUrlMsa(program, operation) &&
|
|
128
|
+
!hasAddressUrlMsa(program, operation)) {
|
|
129
|
+
reportDiagnostic(program, {
|
|
130
|
+
code: "decorator-missing-dependencies",
|
|
131
|
+
target: operation,
|
|
132
|
+
messageId: "default",
|
|
133
|
+
format: {
|
|
134
|
+
decorator: "@passthroughAddressUrlMsa",
|
|
135
|
+
required: "@addressUrlMsa",
|
|
136
|
+
location: `operation "${getIdForType(program, operation)}"`,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
82
144
|
function validateAddressUrlApplication(program, target, decorator) {
|
|
83
145
|
if (target.kind === "Interface" && hasGraphRoute(program, target)) {
|
|
84
146
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-url.js","sourceRoot":"","sources":["../../../src/rules/address-url.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,wBAAwB,EACxB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAiC,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;
|
|
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":"expand.d.ts","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAqD,MAAM,oBAAoB,CAAC;AAOvG,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,OAAO,QA0BvE;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAqD,MAAM,oBAAoB,CAAC;AAOvG,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,OAAO,QA0BvE;AAED,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAyCtE"}
|
package/dist/src/rules/expand.js
CHANGED
|
@@ -46,7 +46,9 @@ export function validateExpandOnlyNavigationProperties(program) {
|
|
|
46
46
|
const navigationProperties = [...walkPropertiesInherited(modelType)]
|
|
47
47
|
.filter((property) => isContains(program, property) || isReferences(program, property))
|
|
48
48
|
.map((property) => property.name);
|
|
49
|
-
const invalidExpansions = expanded.filter((property) =>
|
|
49
|
+
const invalidExpansions = expanded.filter((property) => {
|
|
50
|
+
return !navigationProperties.includes(property) && property !== "$value";
|
|
51
|
+
});
|
|
50
52
|
if (!invalidExpansions.length) {
|
|
51
53
|
return;
|
|
52
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,UAAU,uCAAuC,CAAC,OAAgB;IACtE,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;oBACjC,OAAO;iBACR;gBAED,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,KAAK,EAAE;oBAClD,IAAG,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,SAAS,EAAE;wBAC5D,OAAO;qBACR;iBACF;gBAED,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE,eAAe;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;KACJ;AACH,CAAC;AAAA,CAAC;AAEF,MAAM,UAAU,sCAAsC,CAAC,OAAgB;IACrE,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACtD,wBAAwB,CAAC,SAAS,EAAE;YAClC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpB,OAAO;iBACR;gBAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC/D,IAAI,CAAC,UAAU,EAAE;oBACf,OAAO;iBACR;gBAED,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,UAAU,CAAC,OAAO,CAAC,KAAe,CAAC,CAAC,CAAC,UAAU,CAAC;gBACxF,MAAM,oBAAoB,GAAG,CAAC,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;qBACjE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;qBACtF,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEpC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,QAAQ,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../../src/rules/expand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-route.d.ts","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAInG;;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,sCAAsC,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"graph-route.d.ts","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAInG;;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,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAwBtE;AAgBD,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,OAAO,QA6BxE"}
|
|
@@ -162,29 +162,37 @@ export function validateDuplicateGraphRoutesNotAllowed(program) {
|
|
|
162
162
|
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
163
163
|
navigateTypesInNamespace(namespace, {
|
|
164
164
|
interface: ($interface) => {
|
|
165
|
-
const existingRoutes = getGraphRoutes(program);
|
|
166
165
|
if (!hasGraphRoute(program, $interface)) {
|
|
167
166
|
return;
|
|
168
167
|
}
|
|
168
|
+
const existingRoutes = getGraphRoutes(program);
|
|
169
169
|
const graphRoutePaths = getGraphRoutePaths(program, $interface);
|
|
170
|
+
const uniqueGraphRoutePaths = new Set(graphRoutePaths);
|
|
171
|
+
if (graphRoutePaths.length !== uniqueGraphRoutePaths.size) {
|
|
172
|
+
const duplicates = graphRoutePaths.filter((path, index) => graphRoutePaths.indexOf(path) !== index);
|
|
173
|
+
reportDuplicateRouteDiagnostics(program, $interface, duplicates[0], existingRoutes);
|
|
174
|
+
}
|
|
170
175
|
for (const graphRoutePath of graphRoutePaths) {
|
|
171
176
|
if (existingRoutes.has(graphRoutePath) && existingRoutes.get(graphRoutePath) !== $interface) {
|
|
172
|
-
|
|
173
|
-
code: "decorator-invalid-use",
|
|
174
|
-
target: $interface,
|
|
175
|
-
messageId: "duplicateGraphRouteNotAllowed",
|
|
176
|
-
format: {
|
|
177
|
-
target: getIdForType(program, $interface),
|
|
178
|
-
graphRoute: graphRoutePath,
|
|
179
|
-
existing: getIdForType(program, existingRoutes.get(graphRoutePath))
|
|
180
|
-
},
|
|
181
|
-
});
|
|
177
|
+
reportDuplicateRouteDiagnostics(program, $interface, graphRoutePath, existingRoutes);
|
|
182
178
|
}
|
|
183
179
|
}
|
|
184
180
|
}
|
|
185
181
|
});
|
|
186
182
|
}
|
|
187
183
|
}
|
|
184
|
+
function reportDuplicateRouteDiagnostics(program, $interface, graphRoutePath, existingRoutes) {
|
|
185
|
+
reportDiagnostic(program, {
|
|
186
|
+
code: "decorator-invalid-use",
|
|
187
|
+
target: $interface,
|
|
188
|
+
messageId: "duplicateGraphRouteNotAllowed",
|
|
189
|
+
format: {
|
|
190
|
+
target: getIdForType(program, $interface),
|
|
191
|
+
graphRoute: graphRoutePath,
|
|
192
|
+
existing: getIdForType(program, existingRoutes.get(graphRoutePath))
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}
|
|
188
196
|
export function validateGraphRouteParametersMustBeUnique(program) {
|
|
189
197
|
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
190
198
|
navigateTypesInNamespace(namespace, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-route.js","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"graph-route.js","sourceRoot":"","sources":["../../../src/rules/graph-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export * from "./extends-on-same-type.js";
|
|
|
13
13
|
export * from "./filter.js";
|
|
14
14
|
export * from "./function.js";
|
|
15
15
|
export * from "./graph-route.js";
|
|
16
|
-
export * from "./
|
|
16
|
+
export * from "./media.js";
|
|
17
17
|
export * from "./namespace.js";
|
|
18
18
|
export * from "./open.js";
|
|
19
19
|
export * from "./operation-inside-interface.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
package/dist/src/rules/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export * from "./extends-on-same-type.js";
|
|
|
13
13
|
export * from "./filter.js";
|
|
14
14
|
export * from "./function.js";
|
|
15
15
|
export * from "./graph-route.js";
|
|
16
|
-
export * from "./
|
|
16
|
+
export * from "./media.js";
|
|
17
17
|
export * from "./namespace.js";
|
|
18
18
|
export * from "./open.js";
|
|
19
19
|
export * from "./operation-inside-interface.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Program } from "@typespec/compiler";
|
|
2
|
+
export declare function validateIsMediaOnlyOnEntity(program: Program): void;
|
|
3
|
+
export declare const mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes: import("@typespec/compiler").LinterRuleDefinition<"media-type-values-should-be-minimally-formatted", {
|
|
4
|
+
readonly default: import("@typespec/compiler").CallableMessage<[string]>;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified: import("@typespec/compiler").LinterRuleDefinition<"navigation-source-should-have-media-if-value-is-specified", {
|
|
7
|
+
readonly interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInRoute: import("@typespec/compiler").CallableMessage<[string, string]>;
|
|
8
|
+
readonly interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInParameters: import("@typespec/compiler").CallableMessage<[string]>;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/rules/media.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAsD,MAAM,oBAAoB,CAAC;AAIjG,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAsB3D;AAED,eAAO,MAAM,qDAAqD;;EA6BhE,CAAA;AAEF,eAAO,MAAM,2DAA2D;;;EA4DtE,CAAA"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { getMediaTypes, isMedia } from "../decorators/media.js";
|
|
2
|
+
import { getExpand, getGraphRoutePaths, hasGraphRoute, isEntity } from "../index.js";
|
|
3
|
+
import { reportDiagnostic } from "../lib.js";
|
|
4
|
+
import { createRule, navigateTypesInNamespace, paramMessage } from "@typespec/compiler";
|
|
5
|
+
import { GetDeclaredNamespaces } from "../entities/namespace.js";
|
|
6
|
+
import { getInterfaceNavigationSourceType, getNavigationSourceType } from "../utils.js";
|
|
7
|
+
export function validateIsMediaOnlyOnEntity(program) {
|
|
8
|
+
for (const namespace of GetDeclaredNamespaces(program)) {
|
|
9
|
+
navigateTypesInNamespace(namespace, {
|
|
10
|
+
model: (model) => {
|
|
11
|
+
if (!isMedia(program, model)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (isEntity(program, model)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
reportDiagnostic(program, {
|
|
18
|
+
code: "decorator-invalid-use",
|
|
19
|
+
target: model,
|
|
20
|
+
messageId: "wrongType",
|
|
21
|
+
format: {
|
|
22
|
+
decorator: "@media",
|
|
23
|
+
target: "@entity model",
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
;
|
|
31
|
+
export const mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes = createRule({
|
|
32
|
+
name: "media-type-values-should-be-minimally-formatted",
|
|
33
|
+
severity: "warning",
|
|
34
|
+
description: "Media type values should be two part strings with a / separator",
|
|
35
|
+
messages: {
|
|
36
|
+
default: paramMessage `Media type value '${"value"}' should be a two part string with a \/ separator.`,
|
|
37
|
+
},
|
|
38
|
+
create(context) {
|
|
39
|
+
return {
|
|
40
|
+
model: (model) => {
|
|
41
|
+
if (!isMedia(context.program, model)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const mediaTypes = getMediaTypes(context.program, model);
|
|
45
|
+
if (mediaTypes.length > 0) {
|
|
46
|
+
for (const mediaType of mediaTypes) {
|
|
47
|
+
if (mediaType.split("/").length !== 2) {
|
|
48
|
+
context.reportDiagnostic({
|
|
49
|
+
target: model,
|
|
50
|
+
format: {
|
|
51
|
+
value: mediaType,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
export const interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified = createRule({
|
|
62
|
+
name: "navigation-source-should-have-media-if-value-is-specified",
|
|
63
|
+
severity: "warning",
|
|
64
|
+
description: "Interface navigation source should have media if $value is specified",
|
|
65
|
+
messages: {
|
|
66
|
+
interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInRoute: paramMessage `Interface navigation source '${"model"}' should have @media if $value is specified in the interface route '${"route"}'.`,
|
|
67
|
+
interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInParameters: paramMessage `Interface navigation source '${"model"}' should have @media if $value is specified in the parameters.`,
|
|
68
|
+
},
|
|
69
|
+
create(context) {
|
|
70
|
+
return {
|
|
71
|
+
operation: (operation) => {
|
|
72
|
+
operation.decorators.forEach((decorator) => {
|
|
73
|
+
if (decorator.decorator.name === "$expand") {
|
|
74
|
+
const expanded = getExpand(context.program, operation);
|
|
75
|
+
if (expanded.includes("$value")) {
|
|
76
|
+
const navigationSource = getNavigationSourceType(context.program, operation);
|
|
77
|
+
if (!navigationSource) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (!isMedia(context.program, navigationSource)) {
|
|
81
|
+
context.reportDiagnostic({
|
|
82
|
+
target: operation,
|
|
83
|
+
format: {
|
|
84
|
+
model: navigationSource.name,
|
|
85
|
+
},
|
|
86
|
+
messageId: "interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInParameters",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
interface: (_interface) => {
|
|
94
|
+
if (!hasGraphRoute(context.program, _interface)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const graphRoutes = getGraphRoutePaths(context.program, _interface);
|
|
98
|
+
if (graphRoutes && graphRoutes.length > 0) {
|
|
99
|
+
for (const graphRoute of graphRoutes) {
|
|
100
|
+
if (graphRoute.includes("$value")) {
|
|
101
|
+
const navigationSource = getInterfaceNavigationSourceType(context.program, _interface);
|
|
102
|
+
if (!navigationSource) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!isMedia(context.program, navigationSource)) {
|
|
106
|
+
context.reportDiagnostic({
|
|
107
|
+
target: _interface,
|
|
108
|
+
format: {
|
|
109
|
+
model: navigationSource.name,
|
|
110
|
+
route: graphRoute,
|
|
111
|
+
},
|
|
112
|
+
messageId: "interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecifiedInRoute"
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/rules/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QA8D3C"}
|
package/dist/src/validate.js
CHANGED
|
@@ -6,6 +6,7 @@ export function $onValidate(program) {
|
|
|
6
6
|
theRules.validateAbstractOnlyAppliesToStructuredTypes(program);
|
|
7
7
|
theRules.validateAddressUrlOnlyAppliesToRoutedInterfacesOrActionOperations(program);
|
|
8
8
|
theRules.validateAddressUrlMsaOnlyAppliesToRoutedInterfacesOrActionOperations(program);
|
|
9
|
+
theRules.validatePassthroughAddressUrlDecoratorIsUsedTogetherWithAddressUrlDecorator(program);
|
|
9
10
|
theRules.validatePassthroughAddressUrlOnlyAppliesToRoutedInterfacesOrActionOperations(program);
|
|
10
11
|
theRules.validatePassthroughAddressUrlMsaOnlyAppliesToRoutedInterfacesOrActionOperations(program);
|
|
11
12
|
theRules.validateAllowedValuesCannotBeEmpty(program);
|
|
@@ -28,7 +29,7 @@ export function $onValidate(program) {
|
|
|
28
29
|
theRules.validateFilterOnlyAppliesToModelProperties(program);
|
|
29
30
|
theRules.validateFilterPropertiesMustNotBeEmpty(program);
|
|
30
31
|
theRules.validateGraphRouteInterfaceExtendsGraphStandardInterface(program);
|
|
31
|
-
theRules.
|
|
32
|
+
theRules.validateIsMediaOnlyOnEntity(program);
|
|
32
33
|
theRules.validateOpenOnlyAppliesToStructuredType(program);
|
|
33
34
|
theRules.validateOperationInsideInterface(program);
|
|
34
35
|
theRules.validateOrderByAppliesToGetOperationsThatReturnCollections(program);
|
package/dist/src/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AACA,OAAQ,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE9C,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,QAAQ,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,gDAAgD,CAAC,OAAO,CAAC,CAAC;IACnE,QAAQ,CAAC,4CAA4C,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,CAAC,iEAAiE,CAAC,OAAO,CAAC,CAAC;IACpF,QAAQ,CAAC,oEAAoE,CAAC,OAAO,CAAC,CAAC;IACvF,QAAQ,CAAC,4EAA4E,CAAC,OAAO,CAAC,CAAC;IAC/F,QAAQ,CAAC,+EAA+E,CAAC,OAAO,CAAC,CAAC;IAClG,QAAQ,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;IACrD,QAAQ,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,mDAAmD,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,+CAA+C,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,wDAAwD,CAAC,OAAO,CAAC,CAAC;IAC3E,QAAQ,CAAC,4DAA4D,CAAC,OAAO,CAAC,CAAC;IAC/E,QAAQ,CAAC,oCAAoC,CAAC,OAAO,CAAC,CAAC;IACvD,QAAQ,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC;IACzD,QAAQ,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC;IACzD,QAAQ,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,yDAAyD,CAAC,OAAO,CAAC,CAAC;IAC5E,QAAQ,CAAC,0CAA0C,CAAC,OAAO,CAAC,CAAC;IAC7D,QAAQ,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC;IACzD,QAAQ,CAAC,wDAAwD,CAAC,OAAO,CAAC,CAAC;IAC3E,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
|
package/lib/bodies.tsp
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// -------------------------------------------------
|
|
2
|
+
// bodies.tsp
|
|
3
|
+
// Standard bodies for requests or responses.
|
|
4
|
+
// -------------------------------------------------
|
|
5
|
+
import "@typespec/http";
|
|
6
|
+
import "@microsoft/typespec-msgraph";
|
|
7
|
+
import "./shared-models.tsp";
|
|
8
|
+
|
|
9
|
+
using TypeSpec.Http;
|
|
10
|
+
using MsGraph;
|
|
11
|
+
using MsGraph.SharedModels;
|
|
12
|
+
|
|
13
|
+
// Raw body models represent the content of the response body, without any additional metadata.
|
|
14
|
+
// Note that these are primarily marker types. CSDL has no notion of what actual body content is returned in such types,
|
|
15
|
+
// but by passing markers through, HIDI can translate to OpenAPI.
|
|
16
|
+
// The content of the types exists for other future emitters that run directly off TypeSpec.
|
|
17
|
+
namespace MsGraph.Bodies {
|
|
18
|
+
|
|
19
|
+
/** Complex type to represent a nested error that potentially has other recursive nested errors. */
|
|
20
|
+
@error
|
|
21
|
+
model InnerError {
|
|
22
|
+
code: string;
|
|
23
|
+
innererror: InnerError | null; // Small e for error NOT a typo.
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Complex type to represent a standard Microsoft Graph error. */
|
|
27
|
+
@error
|
|
28
|
+
model GraphError {
|
|
29
|
+
code: string;
|
|
30
|
+
message: string;
|
|
31
|
+
localizedMessage: string;
|
|
32
|
+
target: string | null;
|
|
33
|
+
innererror: InnerError | null; // Small e for error NOT a typo.
|
|
34
|
+
details: GraphError[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@error
|
|
38
|
+
model ErrorBody {
|
|
39
|
+
error: GraphError;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
model CollectionBody<TResource> {
|
|
44
|
+
value: TResource[];
|
|
45
|
+
`@odata.count`?: int64;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@pagedCollection
|
|
49
|
+
model PagedCollectionBody<TResource> is CollectionBody<TResource> {
|
|
50
|
+
`@odata.nextLink`?: MsGraph.SharedModels.graphUrl;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@pagedCollection
|
|
54
|
+
@deltaCollection
|
|
55
|
+
model DeltaCollectionBody<TResource> is PagedCollectionBody<TResource> {
|
|
56
|
+
`@odata.deltaLink`?: MsGraph.SharedModels.graphUrl;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** A body representing any image type. */
|
|
60
|
+
model ImageBody {
|
|
61
|
+
@header contentType: "image/*";
|
|
62
|
+
@body _:bytes;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Binary body of one or more (unioned string) content types */
|
|
66
|
+
model BinaryBody<TContentType> {
|
|
67
|
+
@header contentType: TContentType;
|
|
68
|
+
@body _:bytes;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
}
|