@microsoft/typespec-msgraph 1.0.0-Preview.3 → 1.0.0-Preview.5

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 (90) hide show
  1. package/README.md +4 -0
  2. package/dist/src/components/common-elements.d.ts +2 -0
  3. package/dist/src/components/common-elements.d.ts.map +1 -1
  4. package/dist/src/components/common-elements.js +15 -1
  5. package/dist/src/components/common-elements.js.map +1 -1
  6. package/dist/src/components/entity-container-element.d.ts.map +1 -1
  7. package/dist/src/components/reference-target-element.d.ts.map +1 -1
  8. package/dist/src/decorators/allowed-values.d.ts.map +1 -1
  9. package/dist/src/decorators/allowed-values.js +20 -2
  10. package/dist/src/decorators/allowed-values.js.map +1 -1
  11. package/dist/src/decorators/graph-partial.d.ts.map +1 -1
  12. package/dist/src/decorators/graph-route.d.ts.map +1 -1
  13. package/dist/src/decorators/graph-route.js +1 -1
  14. package/dist/src/decorators/graph-route.js.map +1 -1
  15. package/dist/src/emitter.d.ts +1 -0
  16. package/dist/src/emitter.d.ts.map +1 -1
  17. package/dist/src/emitter.js +16 -8
  18. package/dist/src/emitter.js.map +1 -1
  19. package/dist/src/entities/model.d.ts.map +1 -1
  20. package/dist/src/entities/model.js +7 -6
  21. package/dist/src/entities/model.js.map +1 -1
  22. package/dist/src/entities/namespace.d.ts.map +1 -1
  23. package/dist/src/entities/namespace.js +2 -3
  24. package/dist/src/entities/namespace.js.map +1 -1
  25. package/dist/src/entities/operation.js +2 -2
  26. package/dist/src/entities/operation.js.map +1 -1
  27. package/dist/src/entities/property.d.ts +1 -1
  28. package/dist/src/entities/property.d.ts.map +1 -1
  29. package/dist/src/entities/property.js +6 -18
  30. package/dist/src/entities/property.js.map +1 -1
  31. package/dist/src/lib.d.ts +3 -0
  32. package/dist/src/lib.d.ts.map +1 -1
  33. package/dist/src/lib.js +13 -7
  34. package/dist/src/lib.js.map +1 -1
  35. package/dist/src/linter.d.ts.map +1 -1
  36. package/dist/src/linter.js +26 -2
  37. package/dist/src/linter.js.map +1 -1
  38. package/dist/src/rules/allowed-values.d.ts +3 -0
  39. package/dist/src/rules/allowed-values.d.ts.map +1 -1
  40. package/dist/src/rules/allowed-values.js +32 -1
  41. package/dist/src/rules/allowed-values.js.map +1 -1
  42. package/dist/src/rules/collections.d.ts +4 -0
  43. package/dist/src/rules/collections.d.ts.map +1 -0
  44. package/dist/src/rules/collections.js +32 -0
  45. package/dist/src/rules/collections.js.map +1 -0
  46. package/dist/src/rules/contains.d.ts +6 -0
  47. package/dist/src/rules/contains.d.ts.map +1 -1
  48. package/dist/src/rules/contains.js +64 -4
  49. package/dist/src/rules/contains.js.map +1 -1
  50. package/dist/src/rules/entity.d.ts +3 -0
  51. package/dist/src/rules/entity.d.ts.map +1 -1
  52. package/dist/src/rules/entity.js +48 -1
  53. package/dist/src/rules/entity.js.map +1 -1
  54. package/dist/src/rules/enum.d.ts +9 -0
  55. package/dist/src/rules/enum.d.ts.map +1 -1
  56. package/dist/src/rules/enum.js +79 -3
  57. package/dist/src/rules/enum.js.map +1 -1
  58. package/dist/src/rules/index.d.ts +2 -0
  59. package/dist/src/rules/index.d.ts.map +1 -1
  60. package/dist/src/rules/index.js +2 -0
  61. package/dist/src/rules/index.js.map +1 -1
  62. package/dist/src/rules/limited-charset.d.ts.map +1 -1
  63. package/dist/src/rules/model.d.ts +3 -0
  64. package/dist/src/rules/model.d.ts.map +1 -1
  65. package/dist/src/rules/model.js +62 -20
  66. package/dist/src/rules/model.js.map +1 -1
  67. package/dist/src/rules/namespace.js +1 -1
  68. package/dist/src/rules/namespace.js.map +1 -1
  69. package/dist/src/rules/properties.d.ts +10 -0
  70. package/dist/src/rules/properties.d.ts.map +1 -0
  71. package/dist/src/rules/properties.js +118 -0
  72. package/dist/src/rules/properties.js.map +1 -0
  73. package/dist/src/supressions/csdl-suppression-rules.d.ts +8 -0
  74. package/dist/src/supressions/csdl-suppression-rules.d.ts.map +1 -0
  75. package/dist/src/supressions/csdl-suppression-rules.js +28 -0
  76. package/dist/src/supressions/csdl-suppression-rules.js.map +1 -0
  77. package/dist/src/supressions/path-util.d.ts +17 -0
  78. package/dist/src/supressions/path-util.d.ts.map +1 -0
  79. package/dist/src/supressions/path-util.js +67 -0
  80. package/dist/src/supressions/path-util.js.map +1 -0
  81. package/dist/src/supressions/suppression-collector.d.ts +10 -0
  82. package/dist/src/supressions/suppression-collector.d.ts.map +1 -0
  83. package/dist/src/supressions/suppression-collector.js +156 -0
  84. package/dist/src/supressions/suppression-collector.js.map +1 -0
  85. package/dist/src/utils.d.ts +8 -2
  86. package/dist/src/utils.d.ts.map +1 -1
  87. package/dist/src/utils.js +61 -4
  88. package/dist/src/utils.js.map +1 -1
  89. package/lib/schema-Prod-v1.0.tsp +312 -0
  90. package/package.json +27 -22
@@ -1,20 +1,8 @@
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
- case "EnumMember":
14
- defaultValueValue = property.defaultValue.value.name;
15
- break;
16
- default:
17
- return undefined;
1
+ import { getPropertyTypeName, getDefaultPropertyValue } from "../utils.js";
2
+ export function getDefaultPropertyRecord(program, property) {
3
+ let defaultValue = getDefaultPropertyValue(property);
4
+ if (defaultValue === undefined) {
5
+ return defaultValue;
18
6
  }
19
7
  const propType = getPropertyTypeName(program, property.type);
20
8
  let defaultValueKey = "String";
@@ -59,6 +47,6 @@ export function getDefaultPropertyValue(program, property) {
59
47
  }
60
48
  return undefined;
61
49
  }
62
- return { [defaultValueKey]: defaultValueValue };
50
+ return { [defaultValueKey]: defaultValue };
63
51
  }
64
52
  //# sourceMappingURL=property.js.map
@@ -1 +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,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,iBAAiB,GAAQ,SAAS,CAAC;IACvC,QAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,MAAM;QACR,KAAK,YAAY;YACb,iBAAiB,GAAI,QAAQ,CAAC,YAA0B,CAAC,KAAK,CAAC,IAAI,CAAC;YACtE,MAAM;QACR;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,IAAI,eAAe,GAAG,QAAQ,CAAC;IAC/B,QAAQ,QAAQ,EAAE,CAAC;QACjB,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,UAAU;YACb,eAAe,GAAG,MAAM,CAAC;YACzB,MAAM;QACR,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB;YACE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClC,eAAe,GAAG,QAAQ,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"property.js","sourceRoot":"","sources":["../../../src/entities/property.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,QAAuB;IAEvB,IAAI,YAAY,GAAQ,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAG,YAAY,KAAK,SAAS,EAAC,CAAC;QAC7B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,IAAI,eAAe,GAAG,QAAQ,CAAC;IAC/B,QAAQ,QAAQ,EAAE,CAAC;QACjB,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,UAAU;YACb,eAAe,GAAG,MAAM,CAAC;YACzB,MAAM;QACR,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB;YACE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClC,eAAe,GAAG,QAAQ,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;AAC7C,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export declare const namespace = "MsGraph";
2
2
  export interface MsGraphEmitterOptions {
3
3
  filename?: string;
4
+ baseDir?: string;
4
5
  }
5
6
  export declare const $flags: import("@typespec/compiler").PackageFlags;
6
7
  export declare const reportDiagnostic: <C extends "decorator-missing-dependencies" | "element-missing-dependencies" | "decorator-invalid-use" | "model-invalid-use" | "singleton-invalid-name" | "extends-invalid-use" | "type-invalid-use" | "container-invalid-use", M extends keyof {
@@ -98,6 +99,7 @@ export declare const reportDiagnostic: <C extends "decorator-missing-dependencie
98
99
  readonly interfaceWithPartialBindingType: import("@typespec/compiler").CallableMessage<["interface", "type"]>;
99
100
  readonly propertyTypeCannotBeStringLiteral: import("@typespec/compiler").CallableMessage<["property", "type"]>;
100
101
  readonly sharedEntityCannotCreateSingletonOrEntitySet: import("@typespec/compiler").CallableMessage<["type"]>;
102
+ readonly collectionShouldNotBeEnum: import("@typespec/compiler").CallableMessage<["member", "enum"]>;
101
103
  };
102
104
  "container-invalid-use": {
103
105
  readonly default: "@container can only be used once in a compilation unit.";
@@ -197,6 +199,7 @@ export declare const reportDiagnostic: <C extends "decorator-missing-dependencie
197
199
  readonly interfaceWithPartialBindingType: import("@typespec/compiler").CallableMessage<["interface", "type"]>;
198
200
  readonly propertyTypeCannotBeStringLiteral: import("@typespec/compiler").CallableMessage<["property", "type"]>;
199
201
  readonly sharedEntityCannotCreateSingletonOrEntitySet: import("@typespec/compiler").CallableMessage<["type"]>;
202
+ readonly collectionShouldNotBeEnum: import("@typespec/compiler").CallableMessage<["member", "enum"]>;
200
203
  };
201
204
  "container-invalid-use": {
202
205
  readonly default: "@container can only be used once in a compilation unit.";
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD,eAAO,MAAM,MAAM,2CAEjB,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+HpB,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsBD,eAAO,MAAM,MAAM,2CAEjB,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiIpB,CAAC"}
package/dist/src/lib.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createTypeSpecLibrary, definePackageFlags, paramMessage } from "@typespec/compiler";
1
+ import { createTypeSpecLibrary, definePackageFlags, paramMessage, } from "@typespec/compiler";
2
2
  export const namespace = "MsGraph";
3
3
  const EmitterOptionsSchema = {
4
4
  type: "object",
@@ -7,7 +7,12 @@ const EmitterOptionsSchema = {
7
7
  filename: {
8
8
  type: "string",
9
9
  nullable: true,
10
- description: "The name of the generated CSDL file. If not specified, it defaults to `workload.csdl`."
10
+ description: "The name of the generated CSDL file. If not specified, it defaults to `workload.csdl`.",
11
+ },
12
+ baseDir: {
13
+ type: "string",
14
+ nullable: true,
15
+ description: "Absolute path of base directory (or repo directory) for relative paths in suppression output. If not specified, uses the project root directory (where the command is ran).",
11
16
  },
12
17
  },
13
18
  required: [],
@@ -107,7 +112,7 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
107
112
  severity: "error",
108
113
  messages: {
109
114
  default: paramMessage `Model '${"model"}' should be an operationParameter, entity or complex type.`,
110
- }
115
+ },
111
116
  },
112
117
  "singleton-invalid-name": {
113
118
  severity: "error",
@@ -119,7 +124,7 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
119
124
  severity: "error",
120
125
  messages: {
121
126
  default: paramMessage `A ${"type"} model can only extend a ${"type"} baseModel`,
122
- namespaces: 'A model can only extend other models in a different logical namespace. Use @graphPartial instead.'
127
+ namespaces: "A model can only extend other models in a different logical namespace. Use @graphPartial instead.",
123
128
  },
124
129
  },
125
130
  "type-invalid-use": {
@@ -132,14 +137,15 @@ export const { reportDiagnostic } = createTypeSpecLibrary({
132
137
  interfaceWithPartialBindingType: paramMessage `The interface "${"interface"}" targets a partial or non-owned type "${"type"}" and as such cannot declare operations.`,
133
138
  propertyTypeCannotBeStringLiteral: paramMessage `The type for "${"property"}" cannot be a ${"type"} literal.`,
134
139
  sharedEntityCannotCreateSingletonOrEntitySet: paramMessage `The shared entity "${"type"}" cannot be the type of a routed interface that creates a Singleton or an EntitySet`,
135
- }
140
+ collectionShouldNotBeEnum: paramMessage `Collection property "${"member"}" uses enum "${"enum"}". Consider using @graphFlags to mark the enum as flags instead of using a collection. For information, refer to the [API guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/graph/patterns/enums.md#flag-enums-or-collection-of-enums).`,
141
+ },
136
142
  },
137
143
  "container-invalid-use": {
138
144
  severity: "error",
139
145
  messages: {
140
146
  default: "@container can only be used once in a compilation unit.",
141
- }
142
- }
147
+ },
148
+ },
143
149
  },
144
150
  emitter: { options: EmitterOptionsSchema },
145
151
  });
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,OAAO,+CA6BlB,CAAC"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,OAAO,+CAqDlB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { defineLinter } from "@typespec/compiler";
2
- import { useEvolvableEnumRule, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, getPutPostAndPatchOperationsShouldHaveSelectDecorator, useRecordTypeInsteadOfDictionary, dictionaryTypeIsMostlyUsedWithRecordType, containedNavigationPropertyTypeShouldNotBeExternallyReferenced, entityAndComplexPropertyNameShouldNotBeName, validateCoreElementsHaveDocString, operationParametersShouldHaveRequiredBeforeOptional } from "./rules/index.js";
2
+ import { useEvolvableEnumRule, collectionPropertyShouldNotBeNullable, collectionShouldNotBeEnum, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, getPutPostAndPatchOperationsShouldHaveSelectDecorator, useRecordTypeInsteadOfDictionary, dictionaryTypeIsMostlyUsedWithRecordType, containedNavigationPropertyTypeShouldNotBeExternallyReferenced, entityAndComplexPropertyNameShouldNotBeName, validateCoreElementsHaveDocString, operationParametersShouldHaveRequiredBeforeOptional, containedEntityShouldNotHaveEntitySet, referenceIdPropertyShouldBeNavigationProperty, useProperDefaultRecord, shouldNotUseUnnecessaryInheritance, nullableBooleanShouldBeEnum, nullableEnumsShouldAddAdditionalMember, allowedValuesCsdlCompatibility, useCreatedInPropertyNames, useModifiedInPropertyNames } from "./rules/index.js";
3
3
  export const $linter = defineLinter({
4
4
  rules: [
5
5
  useEvolvableEnumRule,
6
+ collectionPropertyShouldNotBeNullable,
7
+ collectionShouldNotBeEnum,
6
8
  mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes,
7
9
  interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified,
8
10
  getPutPostAndPatchOperationsShouldHaveSelectDecorator,
@@ -11,12 +13,33 @@ export const $linter = defineLinter({
11
13
  containedNavigationPropertyTypeShouldNotBeExternallyReferenced,
12
14
  entityAndComplexPropertyNameShouldNotBeName,
13
15
  validateCoreElementsHaveDocString,
14
- operationParametersShouldHaveRequiredBeforeOptional
16
+ operationParametersShouldHaveRequiredBeforeOptional,
17
+ containedEntityShouldNotHaveEntitySet,
18
+ referenceIdPropertyShouldBeNavigationProperty,
19
+ useProperDefaultRecord,
20
+ shouldNotUseUnnecessaryInheritance,
21
+ nullableBooleanShouldBeEnum,
22
+ nullableEnumsShouldAddAdditionalMember,
23
+ allowedValuesCsdlCompatibility,
24
+ useCreatedInPropertyNames,
25
+ useModifiedInPropertyNames
15
26
  ],
16
27
  ruleSets: {
17
28
  recommended: {
18
29
  enable: {
30
+ // onboarding csdl linter rules */
19
31
  [`@microsoft/typespec-msgraph/${useEvolvableEnumRule.name}`]: true,
32
+ [`@microsoft/typespec-msgraph/${collectionPropertyShouldNotBeNullable.name}`]: true,
33
+ [`@microsoft/typespec-msgraph/${collectionShouldNotBeEnum.name}`]: true,
34
+ [`@microsoft/typespec-msgraph/${nullableBooleanShouldBeEnum.name}`]: true,
35
+ [`@microsoft/typespec-msgraph/${nullableEnumsShouldAddAdditionalMember.name}`]: true,
36
+ [`@microsoft/typespec-msgraph/${containedEntityShouldNotHaveEntitySet.name}`]: true,
37
+ [`@microsoft/typespec-msgraph/${shouldNotUseUnnecessaryInheritance.name}`]: true,
38
+ [`@microsoft/typespec-msgraph/${referenceIdPropertyShouldBeNavigationProperty.name}`]: true,
39
+ [`@microsoft/typespec-msgraph/${useCreatedInPropertyNames.name}`]: true,
40
+ [`@microsoft/typespec-msgraph/${useModifiedInPropertyNames.name}`]: true,
41
+ [`@microsoft/typespec-msgraph/${useProperDefaultRecord.name}`]: true,
42
+ // library recommended rules
20
43
  [`@microsoft/typespec-msgraph/${mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes.name}`]: true,
21
44
  [`@microsoft/typespec-msgraph/${interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified.name}`]: true,
22
45
  [`@microsoft/typespec-msgraph/${getPutPostAndPatchOperationsShouldHaveSelectDecorator.name}`]: true,
@@ -26,6 +49,7 @@ export const $linter = defineLinter({
26
49
  [`@microsoft/typespec-msgraph/${entityAndComplexPropertyNameShouldNotBeName.name}`]: true,
27
50
  [`@microsoft/typespec-msgraph/${validateCoreElementsHaveDocString.name}`]: true,
28
51
  [`@microsoft/typespec-msgraph/${operationParametersShouldHaveRequiredBeforeOptional.name}`]: true,
52
+ [`@microsoft/typespec-msgraph/${allowedValuesCsdlCompatibility.name}`]: true,
29
53
  }
30
54
  }
31
55
  }
@@ -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,EACL,oBAAoB,EACpB,qDAAqD,EACrD,2DAA2D,EAC3D,qDAAqD,EACrD,gCAAgC,EAChC,wCAAwC,EACxC,8DAA8D,EAC9D,2CAA2C,EAC3C,iCAAiC,EACjC,mDAAmD,EACpD,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE;QACL,oBAAoB;QACpB,qDAAqD;QACrD,2DAA2D;QAC3D,qDAAqD;QACrD,gCAAgC;QAChC,wCAAwC;QACxC,8DAA8D;QAC9D,2CAA2C;QAC3C,iCAAiC;QACjC,mDAAmD;KACpD;IACD,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,CAAC,+BAA+B,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAClE,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;gBAC/E,CAAC,+BAA+B,mDAAmD,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;aAClG;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,qCAAqC,EACrC,yBAAyB,EACzB,qDAAqD,EACrD,2DAA2D,EAC3D,qDAAqD,EACrD,gCAAgC,EAChC,wCAAwC,EACxC,8DAA8D,EAC9D,2CAA2C,EAC3C,iCAAiC,EACjC,mDAAmD,EACnD,qCAAqC,EACrC,6CAA6C,EAC7C,sBAAsB,EACtB,kCAAkC,EAClC,2BAA2B,EAC3B,sCAAsC,EACtC,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE;QACL,oBAAoB;QACpB,qCAAqC;QACrC,yBAAyB;QACzB,qDAAqD;QACrD,2DAA2D;QAC3D,qDAAqD;QACrD,gCAAgC;QAChC,wCAAwC;QACxC,8DAA8D;QAC9D,2CAA2C;QAC3C,iCAAiC;QACjC,mDAAmD;QACnD,qCAAqC;QACrC,6CAA6C;QAC7C,sBAAsB;QACtB,kCAAkC;QAClC,2BAA2B;QAC3B,sCAAsC;QACtC,8BAA8B;QAC9B,yBAAyB;QACzB,0BAA0B;KAC3B;IACD,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,kCAAkC;gBAClC,CAAC,+BAA+B,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAClE,CAAC,+BAA+B,qCAAqC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnF,CAAC,+BAA+B,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACvE,CAAC,+BAA+B,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACzE,CAAC,+BAA+B,sCAAsC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACpF,CAAC,+BAA+B,qCAAqC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnF,CAAC,+BAA+B,kCAAkC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAChF,CAAC,+BAA+B,6CAA6C,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC3F,CAAC,+BAA+B,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACvE,CAAC,+BAA+B,0BAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACxE,CAAC,+BAA+B,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACpE,4BAA4B;gBAC5B,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;gBAC/E,CAAC,+BAA+B,mDAAmD,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjG,CAAC,+BAA+B,8BAA8B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;aAC7E;SACF;KACF;CACF,CAAC,CAAC"}
@@ -4,4 +4,7 @@ import { Program } from "@typespec/compiler";
4
4
  * @allowedValues cannot have empty values
5
5
  */
6
6
  export declare function validateAllowedValuesCannotBeEmpty(program: Program): void;
7
+ export declare const allowedValuesCsdlCompatibility: import("@typespec/compiler").LinterRuleDefinition<"allowed-values-csdl-compatibility", {
8
+ readonly default: "MsGraph generation only supports string and numeric values for annotations. Other types may not render correctly.";
9
+ }>;
7
10
  //# sourceMappingURL=allowed-values.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-values.d.ts","sourceRoot":"","sources":["../../../src/rules/allowed-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAKvE;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,OAAO,QAmDlE"}
1
+ {"version":3,"file":"allowed-values.d.ts","sourceRoot":"","sources":["../../../src/rules/allowed-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAGR,MAAM,oBAAoB,CAAC;AAK5B;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,OAAO,QAmDlE;AAED,eAAO,MAAM,8BAA8B;;EAiCzC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { navigateTypesInNamespace } from "@typespec/compiler";
1
+ import { createRule, navigateTypesInNamespace, } from "@typespec/compiler";
2
2
  import { GetDeclaredNamespaces } from "../entities/namespace.js";
3
3
  import { getAllowedValues, hasAllowedValues, isAllowedValuesArgumentsEmpty, isAllowedValuesPrimitive } from "../index.js";
4
4
  import { reportDiagnostic } from "../lib.js";
@@ -56,4 +56,35 @@ export function validateAllowedValuesCannotBeEmpty(program) {
56
56
  });
57
57
  }
58
58
  }
59
+ export const allowedValuesCsdlCompatibility = createRule({
60
+ name: "allowed-values-csdl-compatibility",
61
+ severity: "warning",
62
+ description: "Warns when @allowedValues contains non-string/numeric values that may not render correctly in CSDL",
63
+ messages: {
64
+ default: "MsGraph generation only supports string and numeric values for annotations. Other types may not render correctly.",
65
+ },
66
+ create(context) {
67
+ return {
68
+ modelProperty(property) {
69
+ if (!hasAllowedValues(context.program, property)) {
70
+ return;
71
+ }
72
+ const allowedValues = getAllowedValues(context.program, property);
73
+ if (!(allowedValues === null || allowedValues === void 0 ? void 0 : allowedValues.values) || allowedValues.values.length === 0) {
74
+ return;
75
+ }
76
+ // Check if any values are not strings or numbers
77
+ const hasNonCsdlCompatibleValues = allowedValues.values.some(value => {
78
+ const valueType = typeof value;
79
+ return valueType !== 'string' && valueType !== 'number' && valueType !== 'bigint';
80
+ });
81
+ if (hasNonCsdlCompatibleValues) {
82
+ context.reportDiagnostic({
83
+ target: property,
84
+ });
85
+ }
86
+ },
87
+ };
88
+ },
89
+ });
59
90
  //# sourceMappingURL=allowed-values.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-values.js","sourceRoot":"","sources":["../../../src/rules/allowed-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC1H,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAAgB;IACjE,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,wBAAwB,CAAC,SAAS,EAAE;YAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,IAAG,6BAA6B,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAC,CAAC;oBACnD,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,eAAe;wBAC1B,MAAM,EAAE;4BACN,SAAS,EAAE,gBAAgB;yBAC5B;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAG,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,0CAAE,MAAM,IAAG,CAAC,EAAC,CAAC;oBACpC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;oBACpC,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC,CAAC;wBACjC,IAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,EAAC,CAAC;4BACpC,gBAAgB,CAAC,OAAO,EAAE;gCACxB,IAAI,EAAE,uBAAuB;gCAC7B,MAAM,EAAE,QAAQ;gCAChB,SAAS,EAAE,8BAA8B;gCACzC,MAAM,EAAE;oCACN,SAAS,EAAE,gBAAgB;iCAC5B;6BACF,CAAC,CAAC;4BACH,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACjD,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,0BAA0B;wBACrC,MAAM,EAAE;4BACN,SAAS,EAAE,gBAAgB;yBAC5B;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"allowed-values.js","sourceRoot":"","sources":["../../../src/rules/allowed-values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const collectionPropertyShouldNotBeNullable: import("@typespec/compiler").LinterRuleDefinition<"collection-property-should-not-be-nullable", {
2
+ readonly default: import("@typespec/compiler").CallableMessage<["property"]>;
3
+ }>;
4
+ //# sourceMappingURL=collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../src/rules/collections.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qCAAqC;;EA8BhD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { createRule, paramMessage } from "@typespec/compiler";
2
+ import { isTypeCollection, isTypeNullable } from "../utils.js";
3
+ export const collectionPropertyShouldNotBeNullable = createRule({
4
+ name: "collection-property-should-not-be-nullable",
5
+ severity: "warning",
6
+ description: "Collection-valued properties cannot be nullable.",
7
+ messages: {
8
+ default: paramMessage `Collection property '${"property"}' cannot be nullable. Collections on Graph may not contain null values.`,
9
+ },
10
+ create(context) {
11
+ return {
12
+ modelProperty(property) {
13
+ // Check if this is a collection type
14
+ if (!isTypeCollection(context.program, property.type)) {
15
+ return;
16
+ }
17
+ // Check if the collection is nullable
18
+ if (!isTypeNullable(context.program, property.type)) {
19
+ return;
20
+ }
21
+ context.reportDiagnostic({
22
+ target: property,
23
+ messageId: "default",
24
+ format: {
25
+ property: property.name,
26
+ }
27
+ });
28
+ }
29
+ };
30
+ }
31
+ });
32
+ //# sourceMappingURL=collections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../../src/rules/collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAC;IAC9D,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,kDAAkD;IAC/D,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,wBAAwB,UAAU,yEAAyE;KACjI;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,aAAa,CAAC,QAAQ;gBACpB,qCAAqC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,OAAO;gBACT,CAAC;gBAED,sCAAsC;gBACtC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,gBAAgB,CAAC;oBACvB,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE;wBACN,QAAQ,EAAE,QAAQ,CAAC,IAAI;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -3,4 +3,10 @@ import { Program } from "@typespec/compiler";
3
3
  * @contains applies to a navigation property.
4
4
  */
5
5
  export declare function validateContainsOnlyAppliesToNavigationProperty(program: Program): void;
6
+ /**
7
+ * Validates that entities used with @contains decorator should not also be used as independent EntitySets.
8
+ */
9
+ export declare const containedEntityShouldNotHaveEntitySet: import("@typespec/compiler").LinterRuleDefinition<"contained-entity-should-not-have-entity-set", {
10
+ readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
11
+ }>;
6
12
  //# sourceMappingURL=contains.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contains.d.ts","sourceRoot":"","sources":["../../../src/rules/contains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAMvE;;GAEG;AACH,wBAAgB,+CAA+C,CAAC,OAAO,EAAE,OAAO,QAwB/E"}
1
+ {"version":3,"file":"contains.d.ts","sourceRoot":"","sources":["../../../src/rules/contains.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAKR,MAAM,oBAAoB,CAAC;AAW5B;;GAEG;AACH,wBAAgB,+CAA+C,CAAC,OAAO,EAAE,OAAO,QAwB/E;AAED;;GAEG;AACH,eAAO,MAAM,qCAAqC;;EAuEhD,CAAC"}
@@ -1,7 +1,7 @@
1
- import { navigateTypesInNamespace } from "@typespec/compiler";
2
- import { isContains } from "../index.js";
1
+ import { createRule, navigateTypesInNamespace, paramMessage, } from "@typespec/compiler";
2
+ import { getGraphRoutePaths, hasGraphRoute, isContains } from "../index.js";
3
3
  import { reportDiagnostic } from "../lib.js";
4
- import { isNavigationProperty } from "../utils.js";
4
+ import { getInterfaceNavigationSourceType, isNavigationProperty, removeRoutePathParams, } from "../utils.js";
5
5
  import { GetDeclaredNamespaces } from "../entities/namespace.js";
6
6
  /**
7
7
  * @contains applies to a navigation property.
@@ -29,5 +29,65 @@ export function validateContainsOnlyAppliesToNavigationProperty(program) {
29
29
  });
30
30
  }
31
31
  }
32
- ;
32
+ /**
33
+ * Validates that entities used with @contains decorator should not also be used as independent EntitySets.
34
+ */
35
+ export const containedEntityShouldNotHaveEntitySet = createRule({
36
+ name: "contained-entity-should-not-have-entity-set",
37
+ severity: "warning",
38
+ description: "Entities used with @contains should not also be used as independent EntitySets or Singletons",
39
+ messages: {
40
+ default: paramMessage `The entity "${"entityName"}" is used with @contains decorator and should not also be used as an independent EntitySet or Singleton.`,
41
+ },
42
+ create(context) {
43
+ const containedEntityTypes = new Set();
44
+ return {
45
+ modelProperty: (property) => {
46
+ // Collect entities used with @contains
47
+ if (!isContains(context.program, property) ||
48
+ !isNavigationProperty(context.program, property)) {
49
+ return;
50
+ }
51
+ // Get the entity type from the property
52
+ let entityType = property.type;
53
+ // Handle array types (e.g., OrderItem[])
54
+ if (entityType.kind === "Model" && entityType.name === "Array" && entityType.indexer) {
55
+ entityType = entityType.indexer.value;
56
+ }
57
+ if (entityType.kind === "Model") {
58
+ containedEntityTypes.add(entityType);
59
+ }
60
+ },
61
+ interface: ($interface) => {
62
+ // Check for EntitySet/Singleton conflicts with collected @contains entities
63
+ if (!hasGraphRoute(context.program, $interface)) {
64
+ return;
65
+ }
66
+ // Check if this is a top-level navigation source (direct child of EntityContainer)
67
+ const graphRoutes = getGraphRoutePaths(context.program, $interface);
68
+ if (!graphRoutes || graphRoutes.length === 0) {
69
+ return;
70
+ }
71
+ const hasTopLevelRoute = graphRoutes.some((route) => removeRoutePathParams(route).split("/").length === 1);
72
+ if (!hasTopLevelRoute) {
73
+ return;
74
+ }
75
+ // Get the entity type this interface operates on
76
+ const entityType = getInterfaceNavigationSourceType(context.program, $interface);
77
+ if (!entityType || entityType.kind !== "Model") {
78
+ return;
79
+ }
80
+ // Check if this entity type is also used with @contains
81
+ if (containedEntityTypes.has(entityType)) {
82
+ context.reportDiagnostic({
83
+ target: $interface,
84
+ format: {
85
+ entityName: entityType.name,
86
+ },
87
+ });
88
+ }
89
+ },
90
+ };
91
+ },
92
+ });
33
93
  //# sourceMappingURL=contains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../src/rules/contains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,+CAA+C,CAAC,OAAgB;IAC9E,KAAK,MAAM,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,wBAAwB,CAAC,SAAS,EAAE;YAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACnC,OAAO;gBACT,CAAC;gBAED,IAAI,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC5C,OAAO;gBACT,CAAC;gBAED,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE;wBACN,SAAS,EAAE,WAAW;wBACtB,MAAM,EAAE,wCAAwC;qBACjD;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../src/rules/contains.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,7 @@ export declare function validateEntityAndComplexAreMutuallyExclusive(program: Pr
7
7
  export declare const entityAndComplexPropertyNameShouldNotBeName: import("@typespec/compiler").LinterRuleDefinition<"entity-complex-property-names-should-not-be-name", {
8
8
  readonly default: import("@typespec/compiler").CallableMessage<[]>;
9
9
  }>;
10
+ export declare const referenceIdPropertyShouldBeNavigationProperty: import("@typespec/compiler").LinterRuleDefinition<"reference-id-property-should-be-navigation-property", {
11
+ readonly default: import("@typespec/compiler").CallableMessage<["property", "entityType", "navigationPropertyName"]>;
12
+ }>;
10
13
  //# sourceMappingURL=entity.d.ts.map
@@ -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,QA2B9E;AAED,wBAAgB,4DAA4D,CAAE,OAAO,EAAE,OAAO,QA0B7F;AAED,wBAAgB,4CAA4C,CAAC,OAAO,EAAE,OAAO,QAmB5E;AAED,eAAO,MAAM,2CAA2C;;EA2BtD,CAAA"}
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;AAEF,eAAO,MAAM,6CAA6C;;EA6CxD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { isKey, navigateTypesInNamespace, walkPropertiesInherited, isArrayModelType, createRule, paramMessage } from "@typespec/compiler";
2
- import { isComplex, isDirectEntity, isOwnerless, isSharedEntity, isPartial, isEntity } from "../index.js";
2
+ import { isComplex, isDirectEntity, isOwnerless, isSharedEntity, isPartial, isEntity, getEntity } from "../index.js";
3
3
  import { reportDiagnostic } from "../lib.js";
4
4
  import { isTypeNullable, isExcludedLibraryType, isSameNamespace, extractTypesFromUnion, getInterfaceNavigationSourceType, isNavigationProperty, isTypeDefinedInExternalLibrary, isTypeDefinedInLocalProject, isParentSharedEntity } from "../utils.js";
5
5
  import { GetDeclaredNamespaces } from "../entities/namespace.js";
@@ -193,6 +193,53 @@ export const entityAndComplexPropertyNameShouldNotBeName = createRule({
193
193
  };
194
194
  },
195
195
  });
196
+ export const referenceIdPropertyShouldBeNavigationProperty = createRule({
197
+ name: "reference-id-property-should-be-navigation-property",
198
+ severity: "warning",
199
+ description: "Properties ending with 'Id' that reference existing entity types should use navigation properties instead",
200
+ messages: {
201
+ default: paramMessage `Property '${"property"}' appears to reference entity type '${"entityType"}'. Consider using a navigation property named '${"navigationPropertyName"}' with @references decorator instead of an ID property.`,
202
+ },
203
+ create(context) {
204
+ return {
205
+ modelProperty: (property) => {
206
+ if (!property.model || !isEntity(context.program, property.model)) {
207
+ return;
208
+ }
209
+ // Check if property name ends with "Id" and extract prefix
210
+ const prefix = trySplitAtSuffix(property.name, "Id");
211
+ if (!prefix) {
212
+ return;
213
+ }
214
+ if (property.type.kind !== "Scalar") {
215
+ return;
216
+ }
217
+ const potentialEntityType = getEntity(context.program, prefix);
218
+ if (!potentialEntityType) {
219
+ return;
220
+ }
221
+ const existingNavProperty = property.model.properties.get(prefix);
222
+ if (existingNavProperty && isNavigationProperty(context.program, existingNavProperty)) {
223
+ return;
224
+ }
225
+ context.reportDiagnostic({
226
+ target: property,
227
+ format: {
228
+ property: property.name,
229
+ entityType: potentialEntityType.name,
230
+ navigationPropertyName: prefix,
231
+ },
232
+ });
233
+ },
234
+ };
235
+ },
236
+ });
237
+ function trySplitAtSuffix(value, suffix) {
238
+ if (value.length <= suffix.length || !value.toLowerCase().endsWith(suffix.toLowerCase())) {
239
+ return undefined;
240
+ }
241
+ return value.slice(0, -suffix.length);
242
+ }
196
243
  function isPropertyParentModelAndPropertyTypeEntity(program, property) {
197
244
  const propertyType = getPropertyType(program, property);
198
245
  return !isTypeDefinedInExternalLibrary(program, property) &&
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/rules/entity.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,13 @@ export declare const useEvolvableEnumRule: import("@typespec/compiler").LinterRu
3
3
  readonly default: import("@typespec/compiler").CallableMessage<["enum"]>;
4
4
  }>;
5
5
  export declare function validateEnumMemberUnknownFutureValueShouldNotHaveDocString(program: Program): void;
6
+ export declare const collectionShouldNotBeEnum: import("@typespec/compiler").LinterRuleDefinition<"collection-should-not-be-enum", {
7
+ readonly default: import("@typespec/compiler").CallableMessage<["member", "enum"]>;
8
+ }>;
9
+ export declare const nullableBooleanShouldBeEnum: import("@typespec/compiler").LinterRuleDefinition<"nullable-boolean-should-be-enum", {
10
+ readonly default: import("@typespec/compiler").CallableMessage<["property"]>;
11
+ }>;
12
+ export declare const nullableEnumsShouldAddAdditionalMember: import("@typespec/compiler").LinterRuleDefinition<"nullable-enum-should-add-additional-member", {
13
+ readonly default: import("@typespec/compiler").CallableMessage<["property"]>;
14
+ }>;
6
15
  //# sourceMappingURL=enum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA8D,MAAM,oBAAoB,CAAC;AAKzG,eAAO,MAAM,oBAAoB;;EA2B/B,CAAC;AAEH,wBAAgB,0DAA0D,CAAC,OAAO,EAAE,OAAO,QAyB1F"}
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAMR,MAAM,oBAAoB,CAAC;AAW5B,eAAO,MAAM,oBAAoB;;EA2B/B,CAAC;AAEH,wBAAgB,0DAA0D,CAAC,OAAO,EAAE,OAAO,QAwB1F;AAED,eAAO,MAAM,yBAAyB;;EA+BpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;EA6BtC,CAAC;AAEH,eAAO,MAAM,sCAAsC;;EA6BjD,CAAC"}