@microsoft/typespec-msgraph 0.0.1-Preview.2 → 0.0.1-Preview.3

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.
Files changed (208) hide show
  1. package/dist/src/components/acceptable-media-types-annotation.d.ts +3 -4
  2. package/dist/src/components/acceptable-media-types-annotation.d.ts.map +1 -1
  3. package/dist/src/components/acceptable-media-types-annotation.js +2 -6
  4. package/dist/src/components/acceptable-media-types-annotation.js.map +1 -1
  5. package/dist/src/components/alternate-keys-annotation.d.ts +4 -4
  6. package/dist/src/components/alternate-keys-annotation.d.ts.map +1 -1
  7. package/dist/src/components/alternate-keys-annotation.js +5 -13
  8. package/dist/src/components/alternate-keys-annotation.js.map +1 -1
  9. package/dist/src/components/common-elements.d.ts +0 -71
  10. package/dist/src/components/common-elements.d.ts.map +1 -1
  11. package/dist/src/components/common-elements.js +10 -24
  12. package/dist/src/components/common-elements.js.map +1 -1
  13. package/dist/src/components/computed-annotation.d.ts +3 -4
  14. package/dist/src/components/computed-annotation.d.ts.map +1 -1
  15. package/dist/src/components/computed-annotation.js +4 -10
  16. package/dist/src/components/computed-annotation.js.map +1 -1
  17. package/dist/src/components/count-restrictions-annotation.d.ts +3 -4
  18. package/dist/src/components/count-restrictions-annotation.d.ts.map +1 -1
  19. package/dist/src/components/count-restrictions-annotation.js +2 -6
  20. package/dist/src/components/count-restrictions-annotation.js.map +1 -1
  21. package/dist/src/components/description-annotation.d.ts +3 -4
  22. package/dist/src/components/description-annotation.d.ts.map +1 -1
  23. package/dist/src/components/description-annotation.js +4 -11
  24. package/dist/src/components/description-annotation.js.map +1 -1
  25. package/dist/src/components/entity-container-element.d.ts +6 -0
  26. package/dist/src/components/entity-container-element.d.ts.map +1 -0
  27. package/dist/src/components/entity-container-element.js +58 -0
  28. package/dist/src/components/entity-container-element.js.map +1 -0
  29. package/dist/src/components/enum-type-element.d.ts +6 -0
  30. package/dist/src/components/enum-type-element.d.ts.map +1 -0
  31. package/dist/src/components/enum-type-element.js +17 -0
  32. package/dist/src/components/enum-type-element.js.map +1 -0
  33. package/dist/src/components/expand-restrictions-annotation.d.ts +4 -5
  34. package/dist/src/components/expand-restrictions-annotation.d.ts.map +1 -1
  35. package/dist/src/components/expand-restrictions-annotation.js +5 -20
  36. package/dist/src/components/expand-restrictions-annotation.js.map +1 -1
  37. package/dist/src/components/index.d.ts +2 -14
  38. package/dist/src/components/index.d.ts.map +1 -1
  39. package/dist/src/components/index.js +9 -14
  40. package/dist/src/components/index.js.map +1 -1
  41. package/dist/src/components/operation-element.d.ts +6 -0
  42. package/dist/src/components/operation-element.d.ts.map +1 -0
  43. package/dist/src/components/operation-element.js +70 -0
  44. package/dist/src/components/operation-element.js.map +1 -0
  45. package/dist/src/components/permissions-annotation.d.ts +3 -4
  46. package/dist/src/components/permissions-annotation.d.ts.map +1 -1
  47. package/dist/src/components/permissions-annotation.js +2 -10
  48. package/dist/src/components/permissions-annotation.js.map +1 -1
  49. package/dist/src/components/property-element.d.ts +4 -4
  50. package/dist/src/components/property-element.d.ts.map +1 -1
  51. package/dist/src/components/property-element.js +14 -32
  52. package/dist/src/components/property-element.js.map +1 -1
  53. package/dist/src/components/revisions-annotation.d.ts +4 -5
  54. package/dist/src/components/revisions-annotation.d.ts.map +1 -1
  55. package/dist/src/components/revisions-annotation.js +7 -51
  56. package/dist/src/components/revisions-annotation.js.map +1 -1
  57. package/dist/src/components/schema-element.d.ts +6 -0
  58. package/dist/src/components/schema-element.d.ts.map +1 -0
  59. package/dist/src/components/schema-element.js +38 -0
  60. package/dist/src/components/schema-element.js.map +1 -0
  61. package/dist/src/components/search-restrictions-annotation.d.ts +3 -4
  62. package/dist/src/components/search-restrictions-annotation.d.ts.map +1 -1
  63. package/dist/src/components/search-restrictions-annotation.js +2 -6
  64. package/dist/src/components/search-restrictions-annotation.js.map +1 -1
  65. package/dist/src/components/skip-supported-annotation.d.ts +3 -4
  66. package/dist/src/components/skip-supported-annotation.d.ts.map +1 -1
  67. package/dist/src/components/skip-supported-annotation.js +2 -6
  68. package/dist/src/components/skip-supported-annotation.js.map +1 -1
  69. package/dist/src/components/sort-restrictions-annotation.d.ts +4 -5
  70. package/dist/src/components/sort-restrictions-annotation.d.ts.map +1 -1
  71. package/dist/src/components/sort-restrictions-annotation.js +5 -20
  72. package/dist/src/components/sort-restrictions-annotation.js.map +1 -1
  73. package/dist/src/components/structured-type-element.d.ts +10 -4
  74. package/dist/src/components/structured-type-element.d.ts.map +1 -1
  75. package/dist/src/components/structured-type-element.js +18 -58
  76. package/dist/src/components/structured-type-element.js.map +1 -1
  77. package/dist/src/components/top-supported-annotation.d.ts +3 -4
  78. package/dist/src/components/top-supported-annotation.d.ts.map +1 -1
  79. package/dist/src/components/top-supported-annotation.js +2 -6
  80. package/dist/src/components/top-supported-annotation.js.map +1 -1
  81. package/dist/src/decorators/abstract.d.ts.map +1 -1
  82. package/dist/src/decorators/abstract.js +0 -6
  83. package/dist/src/decorators/abstract.js.map +1 -1
  84. package/dist/src/decorators/complex.d.ts.map +1 -1
  85. package/dist/src/decorators/complex.js +0 -6
  86. package/dist/src/decorators/complex.js.map +1 -1
  87. package/dist/src/decorators/decorator-parameter.d.ts +4 -0
  88. package/dist/src/decorators/decorator-parameter.d.ts.map +1 -0
  89. package/dist/src/decorators/decorator-parameter.js +2 -0
  90. package/dist/src/decorators/decorator-parameter.js.map +1 -0
  91. package/dist/src/decorators/deprecated-definition.d.ts +4 -3
  92. package/dist/src/decorators/deprecated-definition.d.ts.map +1 -1
  93. package/dist/src/decorators/deprecated-definition.js +7 -1
  94. package/dist/src/decorators/deprecated-definition.js.map +1 -1
  95. package/dist/src/decorators/entity.d.ts.map +1 -1
  96. package/dist/src/decorators/entity.js +0 -6
  97. package/dist/src/decorators/entity.js.map +1 -1
  98. package/dist/src/decorators/expand.d.ts +2 -1
  99. package/dist/src/decorators/expand.d.ts.map +1 -1
  100. package/dist/src/decorators/expand.js +1 -1
  101. package/dist/src/decorators/expand.js.map +1 -1
  102. package/dist/src/decorators/function.d.ts +11 -0
  103. package/dist/src/decorators/function.d.ts.map +1 -0
  104. package/dist/src/decorators/function.js +16 -0
  105. package/dist/src/decorators/function.js.map +1 -0
  106. package/dist/src/decorators/handlers/custom/additional-query-parameters.d.ts +2 -1
  107. package/dist/src/decorators/handlers/custom/additional-query-parameters.d.ts.map +1 -1
  108. package/dist/src/decorators/handlers/custom/additional-query-parameters.js +3 -1
  109. package/dist/src/decorators/handlers/custom/additional-query-parameters.js.map +1 -1
  110. package/dist/src/decorators/handlers/custom/ags-attribute.d.ts +2 -1
  111. package/dist/src/decorators/handlers/custom/ags-attribute.d.ts.map +1 -1
  112. package/dist/src/decorators/handlers/custom/ags-attribute.js +3 -3
  113. package/dist/src/decorators/handlers/custom/ags-attribute.js.map +1 -1
  114. package/dist/src/decorators/handlers/index.d.ts +4 -3
  115. package/dist/src/decorators/handlers/index.d.ts.map +1 -1
  116. package/dist/src/decorators/handlers/index.js +4 -4
  117. package/dist/src/decorators/handlers/index.js.map +1 -1
  118. package/dist/src/decorators/has-stream.d.ts +3 -3
  119. package/dist/src/decorators/has-stream.d.ts.map +1 -1
  120. package/dist/src/decorators/has-stream.js +2 -15
  121. package/dist/src/decorators/has-stream.js.map +1 -1
  122. package/dist/src/decorators/index.d.ts +5 -1
  123. package/dist/src/decorators/index.d.ts.map +1 -1
  124. package/dist/src/decorators/index.js +5 -1
  125. package/dist/src/decorators/index.js.map +1 -1
  126. package/dist/src/decorators/open.d.ts.map +1 -1
  127. package/dist/src/decorators/open.js +0 -6
  128. package/dist/src/decorators/open.js.map +1 -1
  129. package/dist/src/decorators/{routed-interfaces.d.ts → operation-parameters.d.ts} +3 -11
  130. package/dist/src/decorators/operation-parameters.d.ts.map +1 -0
  131. package/dist/src/decorators/operation-parameters.js +15 -0
  132. package/dist/src/decorators/operation-parameters.js.map +1 -0
  133. package/dist/src/decorators/order-by.d.ts +2 -1
  134. package/dist/src/decorators/order-by.d.ts.map +1 -1
  135. package/dist/src/decorators/order-by.js +1 -1
  136. package/dist/src/decorators/order-by.js.map +1 -1
  137. package/dist/src/decorators/private-preview-definition.d.ts +4 -3
  138. package/dist/src/decorators/private-preview-definition.d.ts.map +1 -1
  139. package/dist/src/decorators/private-preview-definition.js +6 -1
  140. package/dist/src/decorators/private-preview-definition.js.map +1 -1
  141. package/dist/src/decorators/private-preview.d.ts +2 -1
  142. package/dist/src/decorators/private-preview.d.ts.map +1 -1
  143. package/dist/src/decorators/private-preview.js +1 -11
  144. package/dist/src/decorators/private-preview.js.map +1 -1
  145. package/dist/src/emitter.d.ts.map +1 -1
  146. package/dist/src/emitter.js +4 -2
  147. package/dist/src/emitter.js.map +1 -1
  148. package/dist/src/entities/entity-container.d.ts +35 -0
  149. package/dist/src/entities/entity-container.d.ts.map +1 -0
  150. package/dist/src/entities/entity-container.js +132 -0
  151. package/dist/src/entities/entity-container.js.map +1 -0
  152. package/dist/src/entities/enum.d.ts +16 -0
  153. package/dist/src/entities/enum.d.ts.map +1 -0
  154. package/dist/src/entities/enum.js +22 -0
  155. package/dist/src/entities/enum.js.map +1 -0
  156. package/dist/src/entities/model.d.ts +50 -0
  157. package/dist/src/entities/model.d.ts.map +1 -0
  158. package/dist/src/entities/model.js +119 -0
  159. package/dist/src/entities/model.js.map +1 -0
  160. package/dist/src/entities/namespace.d.ts +14 -0
  161. package/dist/src/entities/namespace.d.ts.map +1 -0
  162. package/dist/src/entities/namespace.js +41 -0
  163. package/dist/src/entities/namespace.js.map +1 -0
  164. package/dist/src/entities/operation.d.ts +28 -0
  165. package/dist/src/entities/operation.d.ts.map +1 -0
  166. package/dist/src/entities/operation.js +88 -0
  167. package/dist/src/entities/operation.js.map +1 -0
  168. package/dist/src/entities/property.d.ts +3 -0
  169. package/dist/src/entities/property.d.ts.map +1 -0
  170. package/dist/src/entities/property.js +54 -0
  171. package/dist/src/entities/property.js.map +1 -0
  172. package/dist/src/entities/revision-definition.d.ts +9 -0
  173. package/dist/src/entities/revision-definition.d.ts.map +1 -0
  174. package/dist/src/entities/revision-definition.js +42 -0
  175. package/dist/src/entities/revision-definition.js.map +1 -0
  176. package/dist/src/index.d.ts +0 -3
  177. package/dist/src/index.d.ts.map +1 -1
  178. package/dist/src/index.js +0 -3
  179. package/dist/src/index.js.map +1 -1
  180. package/dist/src/rules/entity.d.ts +1 -0
  181. package/dist/src/rules/entity.d.ts.map +1 -1
  182. package/dist/src/rules/entity.js +36 -0
  183. package/dist/src/rules/entity.js.map +1 -1
  184. package/dist/src/rules/enum.d.ts +2 -0
  185. package/dist/src/rules/enum.d.ts.map +1 -0
  186. package/dist/src/rules/enum.js +26 -0
  187. package/dist/src/rules/enum.js.map +1 -0
  188. package/dist/src/rules/function.d.ts +2 -0
  189. package/dist/src/rules/function.d.ts.map +1 -0
  190. package/dist/src/rules/function.js +26 -0
  191. package/dist/src/rules/function.js.map +1 -0
  192. package/dist/src/rules/index.d.ts +3 -4
  193. package/dist/src/rules/index.d.ts.map +1 -1
  194. package/dist/src/rules/index.js +40 -111
  195. package/dist/src/rules/index.js.map +1 -1
  196. package/lib/decorators.tsp +29 -22
  197. package/package.json +29 -13
  198. package/dist/src/components/program-context.d.ts +0 -4
  199. package/dist/src/components/program-context.d.ts.map +0 -1
  200. package/dist/src/components/program-context.js +0 -3
  201. package/dist/src/components/program-context.js.map +0 -1
  202. package/dist/src/csdl.d.ts +0 -8
  203. package/dist/src/csdl.d.ts.map +0 -1
  204. package/dist/src/csdl.js +0 -298
  205. package/dist/src/csdl.js.map +0 -1
  206. package/dist/src/decorators/routed-interfaces.d.ts.map +0 -1
  207. package/dist/src/decorators/routed-interfaces.js +0 -43
  208. package/dist/src/decorators/routed-interfaces.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ import { Model, ModelProperty, Program } from "@typespec/compiler";
2
+ import { RevisionDefinition } from "./revision-definition.js";
3
+ export interface MsGraphModel {
4
+ Properties: EntityType | ComplexType | undefined;
5
+ Kind: MsGraphModelKind;
6
+ }
7
+ export interface EntityType {
8
+ StructuredType: StructuredType;
9
+ KeyProperty: [string, ModelProperty] | undefined;
10
+ Properties: MsGraphModelProperty[];
11
+ AlternateKeys: AlternateKeyProperty[];
12
+ StreamTypes: string[];
13
+ RevisionDefinition: RevisionDefinition | undefined;
14
+ Description: string | undefined;
15
+ }
16
+ export interface ComplexType {
17
+ StructuredType: StructuredType;
18
+ Properties: MsGraphModelProperty[];
19
+ RevisionDefinition: RevisionDefinition | undefined;
20
+ Description: string | undefined;
21
+ }
22
+ export declare enum MsGraphModelKind {
23
+ Unknown = 0,
24
+ Entity = 1,
25
+ Complex = 2
26
+ }
27
+ export interface StructuredType {
28
+ Name: string;
29
+ Abstract?: string;
30
+ BaseType?: string;
31
+ Children?: any;
32
+ [key: string]: any;
33
+ }
34
+ export interface MsGraphModelProperty {
35
+ Name: string;
36
+ IsNavigation: boolean;
37
+ IsNullable: boolean;
38
+ AgsAttributes: Record<string, string>;
39
+ PropertyTypeName: string;
40
+ IsContained: boolean;
41
+ IsComputed: boolean;
42
+ Permission: "Read" | "Write" | null;
43
+ RevisionDefinition: RevisionDefinition | undefined;
44
+ Description: string | undefined;
45
+ }
46
+ export interface AlternateKeyProperty extends ModelProperty {
47
+ IsModel: boolean;
48
+ }
49
+ export declare function GetMsGraphModel(program: Program, model: Model): MsGraphModel;
50
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/entities/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAiB,MAAM,oBAAoB,CAAA;AACjF,OAAO,EAAyB,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIpF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IACjD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,CAAA;IAChD,UAAU,EAAE,oBAAoB,EAAE,CAAA;IAClC,aAAa,EAAE,oBAAoB,EAAE,CAAA;IACrC,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAClD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,oBAAoB,EAAE,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAClD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAED,oBAAY,gBAAgB;IAC1B,OAAO,IAAA;IACP,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACnD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,CAgF5E"}
@@ -0,0 +1,119 @@
1
+ import { getDoc, isKey } from "@typespec/compiler";
2
+ import { GetRevisionDefinition } from "./revision-definition.js";
3
+ import { buildAttributes, isContains, isComputed, isReadOnly, isWriteOnly, isAlternateKey, isComplex, getStreamTypes, isEntity, isOpen, hasStream, isAbstract } from "../index.js";
4
+ import { isNavigationProperty, isTypeNullable, getPropertyTypeName, getIdForType } from "../utils.js";
5
+ export var MsGraphModelKind;
6
+ (function (MsGraphModelKind) {
7
+ MsGraphModelKind[MsGraphModelKind["Unknown"] = 0] = "Unknown";
8
+ MsGraphModelKind[MsGraphModelKind["Entity"] = 1] = "Entity";
9
+ MsGraphModelKind[MsGraphModelKind["Complex"] = 2] = "Complex";
10
+ })(MsGraphModelKind = MsGraphModelKind || (MsGraphModelKind = {}));
11
+ export function GetMsGraphModel(program, model) {
12
+ const kind = getModelKind(program, model);
13
+ switch (kind) {
14
+ case MsGraphModelKind.Entity: {
15
+ return {
16
+ Kind: kind,
17
+ Properties: {
18
+ StructuredType: getStructuredType(program, model),
19
+ KeyProperty: [...model.properties].find(([_, property]) => isKey(program, property)),
20
+ Properties: [...model.properties]
21
+ .map(([_, v]) => {
22
+ var _a;
23
+ return {
24
+ Name: v.name,
25
+ IsNavigation: isNavigationProperty(program, v),
26
+ IsNullable: isTypeNullable(program, v.type),
27
+ AgsAttributes: buildAttributes(program, v),
28
+ PropertyTypeName: getPropertyTypeName(program, v.type),
29
+ IsContained: isContains(program, v),
30
+ IsComputed: isComputed(program, v),
31
+ Permission: isReadOnly(program, v)
32
+ ? "Read"
33
+ : isWriteOnly(program, v)
34
+ ? "Write"
35
+ : null,
36
+ RevisionDefinition: GetRevisionDefinition(program, v, (_a = v.model) === null || _a === void 0 ? void 0 : _a.namespace),
37
+ Description: getDoc(program, v)
38
+ };
39
+ }),
40
+ AlternateKeys: [...model.properties]
41
+ .filter(([_, v]) => isAlternateKey(program, v))
42
+ .map(([_, key]) => {
43
+ const altProp = key;
44
+ altProp.IsModel = key.type.kind === "Model" && !isComplex(program, key.type);
45
+ return altProp;
46
+ }),
47
+ StreamTypes: getStreamTypes(program, model),
48
+ RevisionDefinition: GetRevisionDefinition(program, model, model.namespace),
49
+ Description: getDoc(program, model)
50
+ }
51
+ };
52
+ }
53
+ case MsGraphModelKind.Complex: {
54
+ return {
55
+ Kind: kind,
56
+ Properties: {
57
+ StructuredType: getStructuredType(program, model),
58
+ Properties: [...model.properties]
59
+ .map(([_, v]) => {
60
+ var _a;
61
+ return {
62
+ Name: v.name,
63
+ IsNavigation: isNavigationProperty(program, v),
64
+ IsNullable: isTypeNullable(program, v.type),
65
+ AgsAttributes: buildAttributes(program, v),
66
+ PropertyTypeName: getPropertyTypeName(program, v.type),
67
+ IsContained: isContains(program, v),
68
+ IsComputed: isComputed(program, v),
69
+ Permission: isReadOnly(program, v)
70
+ ? "Read"
71
+ : isWriteOnly(program, v)
72
+ ? "Write"
73
+ : null,
74
+ RevisionDefinition: GetRevisionDefinition(program, v, (_a = v.model) === null || _a === void 0 ? void 0 : _a.namespace),
75
+ Description: getDoc(program, v)
76
+ };
77
+ }),
78
+ RevisionDefinition: GetRevisionDefinition(program, model, model.namespace),
79
+ Description: getDoc(program, model)
80
+ }
81
+ };
82
+ }
83
+ default: {
84
+ return {
85
+ Kind: kind,
86
+ Properties: undefined,
87
+ };
88
+ }
89
+ }
90
+ }
91
+ function getModelKind(program, model) {
92
+ if (isEntity(program, model)) {
93
+ return MsGraphModelKind.Entity;
94
+ }
95
+ else if (isComplex(program, model)) {
96
+ return MsGraphModelKind.Complex;
97
+ }
98
+ return MsGraphModelKind.Unknown;
99
+ }
100
+ function getStructuredType(program, model) {
101
+ const props = {
102
+ Name: model.name,
103
+ };
104
+ if (isOpen(program, model)) {
105
+ props.OpenType = "true";
106
+ }
107
+ if (hasStream(program, model)) {
108
+ props.HasStream = "true";
109
+ }
110
+ if (model.baseModel) {
111
+ props.BaseType = getIdForType(program, model.baseModel);
112
+ }
113
+ if (isAbstract(program, model)) {
114
+ props.Abstract = "true";
115
+ }
116
+ const agsAttributes = buildAttributes(program, model);
117
+ return Object.assign(props, agsAttributes);
118
+ }
119
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/entities/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Program } from "@typespec/compiler";
2
+ import { MsGraphEnum } from "./enum.js";
3
+ import { MsGraphModel } from "./model.js";
4
+ import { EntityContainer } from "./entity-container.js";
5
+ import { MsGraphOperation } from "./operation.js";
6
+ export interface MsGraphNamespace {
7
+ Name: string;
8
+ Enums: MsGraphEnum[];
9
+ Models: MsGraphModel[];
10
+ EntityContainer: EntityContainer;
11
+ Operations: MsGraphOperation[];
12
+ }
13
+ export declare function GetMsGraphNamespaces(program: Program): MsGraphNamespace[];
14
+ //# sourceMappingURL=namespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/entities/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAQ,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAA6B,WAAW,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAmB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAuB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAOzE"}
@@ -0,0 +1,41 @@
1
+ import { getNamespaceName, isExcludedCoreType } from "../utils.js";
2
+ import { GetMsGraphEnumTypeElement } from "./enum.js";
3
+ import { GetMsGraphModel } from "./model.js";
4
+ import { GetEntityContainer } from "./entity-container.js";
5
+ import { GetMsGraphOperation } from "./operation.js";
6
+ export function GetMsGraphNamespaces(program) {
7
+ const root = program.checker.getGlobalNamespaceType();
8
+ const namespaces = expandNamespaces(root)
9
+ .filter((namespace) => !isExcludedCoreType(program, namespace) && hasChildren(namespace))
10
+ .map((namespace) => getMsGraphNamespace(program, namespace));
11
+ return namespaces;
12
+ }
13
+ function expandNamespaces(namespace) {
14
+ return [namespace, ...[...namespace.namespaces.values()].flatMap(expandNamespaces)];
15
+ }
16
+ function hasChildren(type) {
17
+ switch (type.kind) {
18
+ case "Namespace":
19
+ return type.enums.size || type.models.size || type.interfaces.size || type.operations.size;
20
+ default:
21
+ return true;
22
+ }
23
+ }
24
+ function getMsGraphNamespace(program, namespace) {
25
+ const models = [...namespace.models].map(([_, m]) => GetMsGraphModel(program, m));
26
+ const enums = [...namespace.enums].map(([_, e]) => GetMsGraphEnumTypeElement(program, e));
27
+ const entityContainer = GetEntityContainer(program, namespace);
28
+ const operations = [...namespace.interfaces]
29
+ .filter(([_, $interface]) => $interface.operations.has("_isOperation"))
30
+ .flatMap(([_, $interface]) => [...$interface.operations])
31
+ .map(([_, operation]) => GetMsGraphOperation(program, operation))
32
+ .filter((o) => !!o);
33
+ return {
34
+ Name: getNamespaceName(program, namespace),
35
+ Enums: enums,
36
+ Models: models,
37
+ EntityContainer: entityContainer,
38
+ Operations: operations,
39
+ };
40
+ }
41
+ //# sourceMappingURL=namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/entities/namespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAmB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAoB,MAAM,gBAAgB,CAAC;AAUvE,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAQ,CAAC,sBAAsB,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;SACtC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;SACxF,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/D,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAoB;IAC5C,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;IAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7F;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,SAAoB;IACjE,MAAM,MAAM,GAAmB,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAgB,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAC/G,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAEzF,MAAM,eAAe,GAAoB,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAE/E,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC;SACzC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACtE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SAChE,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QAC1C,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,eAAe,EAAE,eAAe;QAChC,UAAU,EAAE,UAAU;KACvB,CAAA;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Program, Operation } from "@typespec/compiler";
2
+ export declare enum OperationKind {
3
+ Unknown = 0,
4
+ Action = 1,
5
+ Function = 2
6
+ }
7
+ export interface MsGraphOperation {
8
+ Name: string;
9
+ Kind: OperationKind;
10
+ BindingTypeName: string;
11
+ AgsAttributes: Record<string, string>;
12
+ Properties: MsGraphOperationProperty[];
13
+ UnionProperties: MsGraphOperationProperty[][];
14
+ IsVoid: boolean;
15
+ IsNullable: boolean;
16
+ ReturnTypeName: string;
17
+ Description: string | undefined;
18
+ }
19
+ export interface MsGraphOperationProperty {
20
+ Name: string;
21
+ IsNullable: boolean;
22
+ PropertyTypeName: string;
23
+ IsOptional: boolean;
24
+ DefaultValue: Record<string, unknown> | undefined;
25
+ Description: string | undefined;
26
+ }
27
+ export declare function GetMsGraphOperation(program: Program, operation: Operation): MsGraphOperation | undefined;
28
+ //# sourceMappingURL=operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/entities/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAA4C,MAAM,oBAAoB,CAAA;AAOjG,oBAAY,aAAa;IACvB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,QAAQ,IAAA;CACT;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,UAAU,EAAE,wBAAwB,EAAE,CAAA;IACtC,eAAe,EAAE,wBAAwB,EAAE,EAAE,CAAA;IAC7C,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACjD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAuDxG"}
@@ -0,0 +1,88 @@
1
+ import { isVoidType, getDoc } from "@typespec/compiler";
2
+ import { isPathParam } from "@typespec/http";
3
+ import { getAction } from "@typespec/rest";
4
+ import { buildAttributes, getFunction, isOperationParameters } from "../index.js";
5
+ import { isTypeNullable, getPropertyTypeName, extractTypesFromUnion } from "../utils.js";
6
+ import { getDefaultPropertyValue } from "./property.js";
7
+ export var OperationKind;
8
+ (function (OperationKind) {
9
+ OperationKind[OperationKind["Unknown"] = 0] = "Unknown";
10
+ OperationKind[OperationKind["Action"] = 1] = "Action";
11
+ OperationKind[OperationKind["Function"] = 2] = "Function";
12
+ })(OperationKind = OperationKind || (OperationKind = {}));
13
+ export function GetMsGraphOperation(program, operation) {
14
+ const bindingTypeName = getBindingTypeName(program, operation);
15
+ if (!bindingTypeName) {
16
+ return undefined;
17
+ }
18
+ const element = {
19
+ Name: "",
20
+ Kind: OperationKind.Unknown,
21
+ BindingTypeName: bindingTypeName,
22
+ AgsAttributes: buildAttributes(program, operation),
23
+ Properties: getParameterProperties(program, operation.parameters.properties),
24
+ UnionProperties: new Array,
25
+ IsVoid: isVoidType(operation.returnType),
26
+ IsNullable: false,
27
+ ReturnTypeName: "",
28
+ Description: getDoc(program, operation)
29
+ };
30
+ if (!element.IsVoid) {
31
+ const returnType = operation.returnType.kind === "Model" && !!operation.returnType.templateMapper && !!operation.returnType.templateMapper.args.length
32
+ ? operation.returnType.templateMapper.args[0]
33
+ : operation.returnType;
34
+ if (!returnType || isVoidType(returnType)) {
35
+ element.IsVoid = true;
36
+ }
37
+ element.IsNullable = isTypeNullable(program, operation.returnType);
38
+ element.ReturnTypeName = getPropertyTypeName(program, returnType);
39
+ }
40
+ const actionName = getAction(program, operation);
41
+ if (actionName) {
42
+ element.Name = actionName;
43
+ element.Kind = OperationKind.Action;
44
+ }
45
+ else {
46
+ const functionName = getFunction(program, operation);
47
+ if (functionName) {
48
+ element.Name = functionName;
49
+ element.Kind = OperationKind.Function;
50
+ const parameterProperty = operation.parameters.properties.get("parameters");
51
+ if (parameterProperty && parameterProperty.type.kind === "Union") {
52
+ const parameterProperties = extractTypesFromUnion(parameterProperty.type)
53
+ .filter((type) => type.kind === "Model")
54
+ .map((m) => getParameterProperties(program, m.properties));
55
+ element.UnionProperties.push(...parameterProperties);
56
+ }
57
+ }
58
+ }
59
+ return element;
60
+ }
61
+ function getBindingTypeName(program, operation) {
62
+ var _a, _b;
63
+ const bindingType = (_b = (_a = operation.interface) === null || _a === void 0 ? void 0 : _a.operations.get("_isOperation")) === null || _b === void 0 ? void 0 : _b.returnType;
64
+ if (!bindingType) {
65
+ return undefined;
66
+ }
67
+ return getPropertyTypeName(program, bindingType);
68
+ }
69
+ function getParameterProperties(program, parameters) {
70
+ const properties = [...parameters].flatMap(([, property]) => {
71
+ if (isPathParam(program, property)) {
72
+ return [];
73
+ }
74
+ if (property.type.kind === "Model" && isOperationParameters(program, property.type)) {
75
+ return getParameterProperties(program, property.type.properties);
76
+ }
77
+ return [{
78
+ Name: property.name,
79
+ IsNullable: isTypeNullable(program, property.type),
80
+ PropertyTypeName: getPropertyTypeName(program, property.type),
81
+ IsOptional: property.optional,
82
+ DefaultValue: getDefaultPropertyValue(program, property),
83
+ Description: getDoc(program, property),
84
+ }];
85
+ });
86
+ return properties;
87
+ }
88
+ //# sourceMappingURL=operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../src/entities/operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ModelProperty, Program } from "@typespec/compiler";
2
+ export declare function getDefaultPropertyValue(program: Program, property: ModelProperty): Record<string, unknown> | undefined;
3
+ //# sourceMappingURL=property.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../src/entities/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG5D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAuDrC"}
@@ -0,0 +1,54 @@
1
+ import { getPropertyTypeName } from "../utils.js";
2
+ export function getDefaultPropertyValue(program, property) {
3
+ if (!property.default) {
4
+ return undefined;
5
+ }
6
+ let defaultValueValue = undefined;
7
+ switch (property.default.kind) {
8
+ case "String":
9
+ case "Boolean":
10
+ case "Number":
11
+ defaultValueValue = property.default.value;
12
+ break;
13
+ default:
14
+ return undefined;
15
+ }
16
+ const propType = getPropertyTypeName(program, property.type);
17
+ let defaultValueKey = "String";
18
+ switch (propType) {
19
+ case "Edm.String":
20
+ defaultValueKey = "String";
21
+ break;
22
+ case "Collection(Edm.Byte)":
23
+ defaultValueKey = "Binary";
24
+ break;
25
+ case "Edm.Byte":
26
+ case "Edm.Int16":
27
+ case "Edm.Int32":
28
+ case "Edm.Int64":
29
+ defaultValueKey = "Int";
30
+ break;
31
+ case "Edm.Single":
32
+ case "Edm.Double":
33
+ defaultValueKey = "Single";
34
+ break;
35
+ case "Edm.Date":
36
+ defaultValueKey = "Date";
37
+ break;
38
+ case "Edm.DateTimeOffset":
39
+ defaultValueKey = "DateTimeOffset";
40
+ break;
41
+ case "Edm.Boolean":
42
+ defaultValueKey = "Boolean";
43
+ break;
44
+ case "Edm.Stream":
45
+ defaultValueKey = "Binary";
46
+ break;
47
+ case "Edm.Duration":
48
+ case "Edm.TimeOfDay":
49
+ default:
50
+ return undefined;
51
+ }
52
+ return { [defaultValueKey]: defaultValueValue };
53
+ }
54
+ //# sourceMappingURL=property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../src/entities/property.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,QAAuB;IAEvB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,iBAAiB,GAAQ,SAAS,CAAC;IACvC,QAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;QAC7B,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,MAAM;QACR;YACE,OAAO,SAAS,CAAC;KACpB;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,IAAI,eAAe,GAAG,QAAQ,CAAC;IAC/B,QAAQ,QAAQ,EAAE;QAChB,KAAK,YAAY;YACf,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM;QACR,KAAK,sBAAsB;YACzB,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM;QACR,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YACf,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM;QACR,KAAK,UAAU;YACb,eAAe,GAAG,MAAM,CAAC;YACzB,MAAM;QACR,KAAK,oBAAoB;YACvB,eAAe,GAAG,gBAAgB,CAAC;YACnC,MAAM;QACR,KAAK,aAAa;YAChB,eAAe,GAAG,SAAS,CAAC;YAC5B,MAAM;QACR,KAAK,YAAY;YACf,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM;QACR,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB;YACE,OAAO,SAAS,CAAC;KACpB;IAED,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Enum, EnumMember, Model, ModelProperty, Namespace, Operation, Program } from "@typespec/compiler";
2
+ export interface RevisionDefinition {
3
+ Date: string;
4
+ Version: string;
5
+ Description?: string;
6
+ RemovalDate: string;
7
+ }
8
+ export declare function GetRevisionDefinition(program: Program, item: Model | ModelProperty | EnumMember | Enum | Operation | Namespace, namespace: Namespace | undefined): RevisionDefinition | undefined;
9
+ //# sourceMappingURL=revision-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision-definition.d.ts","sourceRoot":"","sources":["../../../src/entities/revision-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAiB,MAAM,oBAAoB,CAAC;AAG1H,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,EACvE,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,kBAAkB,GAAG,SAAS,CAgBhC"}
@@ -0,0 +1,42 @@
1
+ import { getDeprecated } from "@typespec/compiler";
2
+ import { getPrivatePreview, getDeprecatedDefinitions, getPrivatePreviewDefinitions } from "../index.js";
3
+ export function GetRevisionDefinition(program, item, namespace) {
4
+ if (!namespace) {
5
+ return undefined;
6
+ }
7
+ const deprecated = getDeprecated(program, item);
8
+ if (deprecated) {
9
+ return getRevisionDefinitionFromDeprecation(program, namespace, deprecated);
10
+ }
11
+ const privatePreview = getPrivatePreview(program, item);
12
+ if (privatePreview) {
13
+ return getRevisionDefinitionFromPrivatePreview(program, namespace, privatePreview);
14
+ }
15
+ return undefined;
16
+ }
17
+ function getRevisionDefinitionFromDeprecation(program, namespace, deprecated) {
18
+ const deprecatedDefinitions = getDeprecatedDefinitions(program, namespace);
19
+ const definition = deprecatedDefinitions.get(deprecated);
20
+ if (!definition) {
21
+ return undefined;
22
+ }
23
+ return {
24
+ Date: definition.announcementDate,
25
+ RemovalDate: definition.removalDate,
26
+ Version: `${definition.announcementDate.substring(0, 7)}/${definition.category}`,
27
+ Description: definition.description,
28
+ };
29
+ }
30
+ function getRevisionDefinitionFromPrivatePreview(program, namespace, deprecated) {
31
+ const privatePreviewDefinitions = getPrivatePreviewDefinitions(program, namespace);
32
+ const definition = privatePreviewDefinitions.get(deprecated);
33
+ if (!definition) {
34
+ return undefined;
35
+ }
36
+ return {
37
+ Date: definition.announcementDate,
38
+ RemovalDate: definition.removalDate,
39
+ Version: `${definition.announcementDate.substring(0, 7)}/PrivatePreview:${definition.name}`,
40
+ };
41
+ }
42
+ //# sourceMappingURL=revision-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision-definition.js","sourceRoot":"","sources":["../../../src/entities/revision-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1H,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AASxG,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,IAAuE,EACvE,SAAgC;IAEhC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE;QACd,OAAO,oCAAoC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;KAC7E;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,cAAc,EAAE;QAClB,OAAO,uCAAuC,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;KACpF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oCAAoC,CAC3C,OAAgB,EAChB,SAAoB,EACpB,UAAkB;IAElB,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IAED,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,gBAAgB;QACjC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE;QAChF,WAAW,EAAE,UAAU,CAAC,WAAW;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,uCAAuC,CAC9C,OAAgB,EAChB,SAAoB,EACpB,UAAkB;IAElB,MAAM,yBAAyB,GAAG,4BAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IAED,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,gBAAgB;QACjC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,UAAU,CAAC,IAAI,EAAE;KAC5F,CAAC;AACJ,CAAC"}
@@ -1,6 +1,3 @@
1
- export * from "./decorators/handlers/custom/index.js";
2
- export * from "./decorators/handlers/index.js";
3
- export * from "./decorators/has-stream.js";
4
1
  export * from "./decorators/index.js";
5
2
  export * from "./emitter.js";
6
3
  export * from "./linter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,3 @@
1
- export * from "./decorators/handlers/custom/index.js";
2
- export * from "./decorators/handlers/index.js";
3
- export * from "./decorators/has-stream.js";
4
1
  export * from "./decorators/index.js";
5
2
  export * from "./emitter.js";
6
3
  export * from "./linter.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export declare const entityMustHaveKeyRule: import("@typespec/lint").LintRule;
2
+ export declare const keyOnlyOnEntityNonNullablePrimitivePropertyRule: import("@typespec/lint").LintRule;
2
3
  //# sourceMappingURL=entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,mCA2BhC,CAAC"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB,mCA2BhC,CAAC;AAEH,eAAO,MAAM,+CAA+C,mCAwC1D,CAAC"}
@@ -2,6 +2,7 @@ import { isKey, walkPropertiesInherited } from "@typespec/compiler";
2
2
  import { createRule } from "@typespec/lint";
3
3
  import { isEntity } from "../index.js";
4
4
  import { reportDiagnostic } from "../lib.js";
5
+ import { isTypeNullable } from "../utils.js";
5
6
  export const entityMustHaveKeyRule = createRule({
6
7
  name: "entity-must-have-key",
7
8
  create({ program }) {
@@ -28,4 +29,39 @@ export const entityMustHaveKeyRule = createRule({
28
29
  };
29
30
  },
30
31
  });
32
+ export const keyOnlyOnEntityNonNullablePrimitivePropertyRule = createRule({
33
+ name: "key-only-on-entity-non-nullable-primitive-property",
34
+ create({ program }) {
35
+ return {
36
+ modelProperty: (property) => {
37
+ if (!property.model || !isKey(program, property)) {
38
+ return;
39
+ }
40
+ if (!isEntity(program, property.model)) {
41
+ reportDiagnostic(program, {
42
+ code: "decorator-missing-dependencies",
43
+ target: property,
44
+ format: {
45
+ decorator: "@key",
46
+ required: "@entity",
47
+ location: "entity model",
48
+ },
49
+ });
50
+ return;
51
+ }
52
+ if (isTypeNullable(program, property.type) ||
53
+ property.type.kind !== "Scalar" ||
54
+ property.name === "Array") {
55
+ reportDiagnostic(program, {
56
+ code: "decorator-invalid-use",
57
+ target: property,
58
+ messageId: "key",
59
+ format: {},
60
+ });
61
+ return;
62
+ }
63
+ },
64
+ };
65
+ },
66
+ });
31
67
  //# sourceMappingURL=entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,sBAAsB;IAC5B,MAAM,CAAC,EAAE,OAAO,EAAE;QAChB,OAAO;YACL,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC7B,OAAO;iBACR;gBAED,KAAK,MAAM,QAAQ,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;oBACrD,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;wBAC5B,OAAO;qBACR;iBACF;gBAED,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,gCAAgC;oBACtC,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS;wBACpB,QAAQ,EAAE,MAAM;wBAChB,QAAQ,EAAE,uBAAuB;qBAClC;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,sBAAsB;IAC5B,MAAM,CAAC,EAAE,OAAO,EAAE;QAChB,OAAO;YACL,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC7B,OAAO;iBACR;gBAED,KAAK,MAAM,QAAQ,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;oBACrD,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;wBAC5B,OAAO;qBACR;iBACF;gBAED,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,gCAAgC;oBACtC,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS;wBACpB,QAAQ,EAAE,MAAM;wBAChB,QAAQ,EAAE,uBAAuB;qBAClC;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+CAA+C,GAAG,UAAU,CAAC;IACxE,IAAI,EAAE,oDAAoD;IAC1D,MAAM,CAAC,EAAE,OAAO,EAAE;QAChB,OAAO;YACL,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;oBAChD,OAAO;iBACR;gBAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACtC,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,gCAAgC;wBACtC,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE;4BACN,SAAS,EAAE,MAAM;4BACjB,QAAQ,EAAE,SAAS;4BACnB,QAAQ,EAAE,cAAc;yBACzB;qBACF,CAAC,CAAC;oBAEH,OAAO;iBACR;gBAED,IACE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;oBACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAC/B,QAAQ,CAAC,IAAI,KAAK,OAAO,EACzB;oBACA,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,EAAE;qBACX,CAAC,CAAC;oBAEH,OAAO;iBACR;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useEvolvableEnumRule: import("@typespec/lint").LintRule;
2
+ //# sourceMappingURL=enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,mCAuB/B,CAAC"}