@microsoft/typespec-msgraph 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/src/components/annotations.d.ts.map +1 -1
  2. package/dist/src/components/annotations.js +2 -0
  3. package/dist/src/components/annotations.js.map +1 -1
  4. package/dist/src/components/property-element.js +1 -1
  5. package/dist/src/components/property-element.js.map +1 -1
  6. package/dist/src/components/schema-element.js +1 -1
  7. package/dist/src/components/schema-element.js.map +1 -1
  8. package/dist/src/components/skip-token-supported-annotation.d.ts +5 -0
  9. package/dist/src/components/skip-token-supported-annotation.d.ts.map +1 -0
  10. package/dist/src/components/skip-token-supported-annotation.js +6 -0
  11. package/dist/src/components/skip-token-supported-annotation.js.map +1 -0
  12. package/dist/src/decorators/facet.d.ts +10 -0
  13. package/dist/src/decorators/facet.d.ts.map +1 -0
  14. package/dist/src/decorators/facet.js +14 -0
  15. package/dist/src/decorators/facet.js.map +1 -0
  16. package/dist/src/decorators/flat-bag.d.ts +22 -0
  17. package/dist/src/decorators/flat-bag.d.ts.map +1 -0
  18. package/dist/src/decorators/flat-bag.js +71 -0
  19. package/dist/src/decorators/flat-bag.js.map +1 -0
  20. package/dist/src/decorators/index.d.ts +5 -0
  21. package/dist/src/decorators/index.d.ts.map +1 -1
  22. package/dist/src/decorators/index.js +5 -0
  23. package/dist/src/decorators/index.js.map +1 -1
  24. package/dist/src/decorators/namespace-alias.d.ts +58 -0
  25. package/dist/src/decorators/namespace-alias.d.ts.map +1 -0
  26. package/dist/src/decorators/namespace-alias.js +82 -0
  27. package/dist/src/decorators/namespace-alias.js.map +1 -0
  28. package/dist/src/decorators/skip-token.d.ts +11 -0
  29. package/dist/src/decorators/skip-token.d.ts.map +1 -0
  30. package/dist/src/decorators/skip-token.js +15 -0
  31. package/dist/src/decorators/skip-token.js.map +1 -0
  32. package/dist/src/decorators/variant.d.ts +12 -0
  33. package/dist/src/decorators/variant.d.ts.map +1 -0
  34. package/dist/src/decorators/variant.js +18 -0
  35. package/dist/src/decorators/variant.js.map +1 -0
  36. package/dist/src/entities/annotations.d.ts +1 -0
  37. package/dist/src/entities/annotations.d.ts.map +1 -1
  38. package/dist/src/entities/annotations.js +2 -1
  39. package/dist/src/entities/annotations.js.map +1 -1
  40. package/dist/src/entities/entity-container.d.ts +3 -3
  41. package/dist/src/entities/entity-container.d.ts.map +1 -1
  42. package/dist/src/entities/entity-container.js +8 -8
  43. package/dist/src/entities/entity-container.js.map +1 -1
  44. package/dist/src/entities/model.d.ts +2 -2
  45. package/dist/src/entities/model.d.ts.map +1 -1
  46. package/dist/src/entities/model.js +17 -15
  47. package/dist/src/entities/model.js.map +1 -1
  48. package/dist/src/entities/namespace.d.ts +1 -0
  49. package/dist/src/entities/namespace.d.ts.map +1 -1
  50. package/dist/src/entities/namespace.js +6 -3
  51. package/dist/src/entities/namespace.js.map +1 -1
  52. package/dist/src/lib.d.ts +12 -0
  53. package/dist/src/lib.d.ts.map +1 -1
  54. package/dist/src/lib.js +6 -0
  55. package/dist/src/lib.js.map +1 -1
  56. package/dist/src/linter.d.ts.map +1 -1
  57. package/dist/src/linter.js +7 -2
  58. package/dist/src/linter.js.map +1 -1
  59. package/dist/src/rules/enum.d.ts.map +1 -1
  60. package/dist/src/rules/enum.js +8 -0
  61. package/dist/src/rules/enum.js.map +1 -1
  62. package/dist/src/rules/facet.d.ts +6 -0
  63. package/dist/src/rules/facet.d.ts.map +1 -0
  64. package/dist/src/rules/facet.js +45 -0
  65. package/dist/src/rules/facet.js.map +1 -0
  66. package/dist/src/rules/flat-bag.d.ts +51 -0
  67. package/dist/src/rules/flat-bag.d.ts.map +1 -0
  68. package/dist/src/rules/flat-bag.js +334 -0
  69. package/dist/src/rules/flat-bag.js.map +1 -0
  70. package/dist/src/rules/index.d.ts +3 -0
  71. package/dist/src/rules/index.d.ts.map +1 -1
  72. package/dist/src/rules/index.js +3 -0
  73. package/dist/src/rules/index.js.map +1 -1
  74. package/dist/src/rules/namespace.d.ts +20 -0
  75. package/dist/src/rules/namespace.d.ts.map +1 -1
  76. package/dist/src/rules/namespace.js +43 -1
  77. package/dist/src/rules/namespace.js.map +1 -1
  78. package/dist/src/rules/properties.d.ts.map +1 -1
  79. package/dist/src/rules/properties.js +14 -5
  80. package/dist/src/rules/properties.js.map +1 -1
  81. package/dist/src/rules/skip-token.d.ts +6 -0
  82. package/dist/src/rules/skip-token.d.ts.map +1 -0
  83. package/dist/src/rules/skip-token.js +37 -0
  84. package/dist/src/rules/skip-token.js.map +1 -0
  85. package/dist/src/supressions/csdl-suppression-rules.d.ts.map +1 -1
  86. package/dist/src/supressions/csdl-suppression-rules.js +1 -0
  87. package/dist/src/supressions/csdl-suppression-rules.js.map +1 -1
  88. package/dist/src/utils.d.ts +19 -3
  89. package/dist/src/utils.d.ts.map +1 -1
  90. package/dist/src/utils.js +108 -10
  91. package/dist/src/utils.js.map +1 -1
  92. package/dist/src/validate.d.ts.map +1 -1
  93. package/dist/src/validate.js +7 -0
  94. package/dist/src/validate.js.map +1 -1
  95. package/lib/decorators.tsp +59 -0
  96. package/package.json +1 -1
@@ -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":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgCpE,eAAO,MAAM,OAAO,EAAE,gBAmEpB,CAAC"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAmCpE,eAAO,MAAM,OAAO,EAAE,gBAwEpB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { defineLinter } from "@typespec/compiler";
2
- import { useEvolvableEnumRule, collectionPropertyShouldNotBeNullable, collectionShouldNotBeEnum, collectionOfComplexTypeShouldUseEntityType, collectionPropertyNameShouldBePlural, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, getPutPostAndPatchOperationsShouldHaveSelectDecorator, useRecordTypeInsteadOfDictionary, dictionaryTypeIsMostlyUsedWithRecordType, containedNavigationPropertyTypeShouldNotBeExternallyReferenced, entityAndComplexPropertyNameShouldNotBeName, entityNamesShouldBeSingular, validateCoreElementsHaveDocString, operationParametersShouldHaveRequiredBeforeOptional, containedEntityShouldNotHaveEntitySet, referenceIdPropertyShouldBeNavigationProperty, useProperDefaultRecord, shouldNotUseUnnecessaryInheritance, namesMustBeCamelCase, namespacesMustBeCamelCase, nullableBooleanShouldBeEnum, nullableEnumsShouldAddAdditionalMember, allowedValuesCsdlCompatibility, useCreatedInPropertyNames, useModifiedInPropertyNames, propertyNameShouldNotStartWithNavigationSourceName, propertyMustNotBeNamedType } from "./rules/index.js";
2
+ import { useEvolvableEnumRule, collectionPropertyShouldNotBeNullable, collectionShouldNotBeEnum, collectionOfComplexTypeShouldUseEntityType, collectionPropertyNameShouldBePlural, mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes, interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified, getPutPostAndPatchOperationsShouldHaveSelectDecorator, useRecordTypeInsteadOfDictionary, dictionaryTypeIsMostlyUsedWithRecordType, containedNavigationPropertyTypeShouldNotBeExternallyReferenced, entityAndComplexPropertyNameShouldNotBeName, entityNamesShouldBeSingular, validateCoreElementsHaveDocString, operationParametersShouldHaveRequiredBeforeOptional, containedEntityShouldNotHaveEntitySet, referenceIdPropertyShouldBeNavigationProperty, useProperDefaultRecord, shouldNotUseUnnecessaryInheritance, namesMustBeCamelCase, namespacesMustBeCamelCase, nullableBooleanShouldBeEnum, nullableEnumsShouldAddAdditionalMember, allowedValuesCsdlCompatibility, useCreatedInPropertyNames, useModifiedInPropertyNames, propertyNameShouldNotStartWithNavigationSourceName, propertyMustNotBeNamedType, namespaceAliasConventionSuppressed, flatBagSiblingsShouldBeNullable, flatBagEnumShouldBeClosed } from "./rules/index.js";
3
3
  export const $linter = defineLinter({
4
4
  rules: [
5
5
  useEvolvableEnumRule,
@@ -29,7 +29,10 @@ export const $linter = defineLinter({
29
29
  allowedValuesCsdlCompatibility,
30
30
  useCreatedInPropertyNames,
31
31
  useModifiedInPropertyNames,
32
- propertyMustNotBeNamedType
32
+ propertyMustNotBeNamedType,
33
+ namespaceAliasConventionSuppressed,
34
+ flatBagSiblingsShouldBeNullable,
35
+ flatBagEnumShouldBeClosed
33
36
  ],
34
37
  ruleSets: {
35
38
  recommended: {
@@ -53,6 +56,8 @@ export const $linter = defineLinter({
53
56
  [`@microsoft/typespec-msgraph/${useModifiedInPropertyNames.name}`]: true,
54
57
  [`@microsoft/typespec-msgraph/${useProperDefaultRecord.name}`]: true,
55
58
  [`@microsoft/typespec-msgraph/${propertyMustNotBeNamedType.name}`]: true,
59
+ [`@microsoft/typespec-msgraph/${namespaceAliasConventionSuppressed.name}`]: true,
60
+ [`@microsoft/typespec-msgraph/${flatBagEnumShouldBeClosed.name}`]: true,
56
61
  // library recommended rules
57
62
  [`@microsoft/typespec-msgraph/${mediaTypeValuesShouldBeMinimallyFormattedForMIMETypes.name}`]: true,
58
63
  [`@microsoft/typespec-msgraph/${interfaceNavigationSourceShouldHaveMediaIf$ValueIsSpecified.name}`]: true,
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAMR,MAAM,oBAAoB,CAAC;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"}
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAMR,MAAM,oBAAoB,CAAC;AAY5B,eAAO,MAAM,oBAAoB;;EAmC/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"}
@@ -2,6 +2,7 @@ import { createRule, getDoc, navigateTypesInNamespace, paramMessage, } from "@ty
2
2
  import { getActualType, isExcludedCoreType, isTypeCollection, isTypeNullable, } from "../utils.js";
3
3
  import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
4
4
  import { reportDiagnostic } from "../lib.js";
5
+ import { isFlatBagDiscriminatorEnum } from "../decorators/flat-bag.js";
5
6
  export const useEvolvableEnumRule = createRule({
6
7
  name: "use-evolvable-enum",
7
8
  severity: "warning",
@@ -18,6 +19,13 @@ export const useEvolvableEnumRule = createRule({
18
19
  if (enumType.members.has("unknownFutureValue")) {
19
20
  return;
20
21
  }
22
+ // Discriminator enums on @flatBag models are intentionally closed-set; exempt them.
23
+ // $flatBag tags the discriminator enum at decorator-evaluation time so this is a
24
+ // direct lookup — no per-rule traversal of the namespace tree. The
25
+ // flat-bag-enum-should-be-closed rule enforces the opposite polarity instead.
26
+ if (isFlatBagDiscriminatorEnum(context.program, enumType)) {
27
+ return;
28
+ }
21
29
  context.reportDiagnostic({
22
30
  target: enumType,
23
31
  format: {
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../src/rules/enum.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Program } from "@typespec/compiler";
2
+ /**
3
+ * @facet applies only to nullable complex-valued properties declared on entities.
4
+ */
5
+ export declare function validateFacetOnlyAppliesToNullableComplexProperties(program: Program): void;
6
+ //# sourceMappingURL=facet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet.d.ts","sourceRoot":"","sources":["../../../src/rules/facet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,OAAO,EAA4B,MAAM,oBAAoB,CAAC;AAQtF;;GAEG;AACH,wBAAgB,mDAAmD,CAAC,OAAO,EAAE,OAAO,QAsCnF"}
@@ -0,0 +1,45 @@
1
+ import { navigateTypesInNamespace } from "@typespec/compiler";
2
+ import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
3
+ import { isComplex } from "../decorators/complex.js";
4
+ import { isEntity } from "../decorators/entity.js";
5
+ import { isFacet } from "../decorators/facet.js";
6
+ import { reportDiagnostic } from "../lib.js";
7
+ import { extractTypesFromUnion, getActualType, isNullType, isTypeNullable } from "../utils.js";
8
+ /**
9
+ * @facet applies only to nullable complex-valued properties declared on entities.
10
+ */
11
+ export function validateFacetOnlyAppliesToNullableComplexProperties(program) {
12
+ for (const namespace of getDeclaredNamespacesForLinting(program)) {
13
+ navigateTypesInNamespace(namespace, {
14
+ modelProperty: (property) => {
15
+ if (!isFacet(program, property)) {
16
+ return;
17
+ }
18
+ const owner = property.model;
19
+ const hasSingleResolvableNonNullType = property.type.kind !== "Union" ||
20
+ extractTypesFromUnion(property.type).filter((t) => !isNullType(t)).length === 1;
21
+ const actualType = hasSingleResolvableNonNullType
22
+ ? getActualType(program, property.type, true)
23
+ : undefined;
24
+ const isNullableComplexProperty = !!owner &&
25
+ isEntity(program, owner) &&
26
+ isTypeNullable(program, property.type) &&
27
+ (actualType === null || actualType === void 0 ? void 0 : actualType.kind) === "Model" &&
28
+ isComplex(program, actualType);
29
+ if (isNullableComplexProperty) {
30
+ return;
31
+ }
32
+ reportDiagnostic(program, {
33
+ code: "decorator-invalid-use",
34
+ target: property,
35
+ messageId: "wrongType",
36
+ format: {
37
+ decorator: "@facet",
38
+ target: "nullable complex-valued property declared on an @entity model",
39
+ },
40
+ });
41
+ },
42
+ });
43
+ }
44
+ }
45
+ //# sourceMappingURL=facet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet.js","sourceRoot":"","sources":["../../../src/rules/facet.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/F;;GAEG;AACH,MAAM,UAAU,mDAAmD,CAAC,OAAgB;IAClF,KAAK,MAAM,SAAS,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,wBAAwB,CAAC,SAAS,EAAE;YAClC,aAAa,EAAE,CAAC,QAAuB,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAChC,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC7B,MAAM,8BAA8B,GAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;oBAC9B,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAClF,MAAM,UAAU,GAAG,8BAA8B;oBAC/C,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC7C,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,yBAAyB,GAC7B,CAAC,CAAC,KAAK;oBACP,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;oBACxB,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;oBACtC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,OAAO;oBAC5B,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAEjC,IAAI,yBAAyB,EAAE,CAAC;oBAC9B,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,QAAQ;wBACnB,MAAM,EAAE,+DAA+D;qBACxE;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Program } from "@typespec/compiler";
2
+ /**
3
+ * @flatBag("X") on a model must name a property X that actually exists on the model.
4
+ */
5
+ export declare function validateFlatBagDiscriminatorMustExist(program: Program): void;
6
+ /**
7
+ * The @flatBag discriminator property must be typed as a named enum (optionally nullable).
8
+ * String / number / boolean discriminators defeat the pattern's structural validation,
9
+ * since variant-name resolution depends on having an enum member set to match against.
10
+ */
11
+ export declare function validateFlatBagDiscriminatorMustBeEnum(program: Program): void;
12
+ /**
13
+ * @variant() with zero arguments is meaningless: absence of @variant already means
14
+ * "meaningful for every variant", and presence with values means "meaningful only for
15
+ * these values". An empty `@variant()` is neither — flag it as a coding error.
16
+ */
17
+ export declare function validateVariantValuesMustNotBeEmpty(program: Program): void;
18
+ /**
19
+ * @variant only makes sense on a property whose parent model is @flatBag and that is NOT
20
+ * the discriminator itself. @variant scopes a sibling property to specific discriminator
21
+ * values; applying it to the discriminator is meaningless (the discriminator IS the
22
+ * variant signal, not a variant-conditional property).
23
+ */
24
+ export declare function validateVariantTargetMustBeFlatBagSibling(program: Program): void;
25
+ /**
26
+ * Each value passed to @variant("a", "b") must name an actual member of the discriminator
27
+ * enum on the parent flat-bag model. Catches typos and stale variant names after enum
28
+ * members are renamed.
29
+ */
30
+ export declare function validateVariantValuesMustBeEnumMembers(program: Program): void;
31
+ /**
32
+ * Lint rule: sibling properties on a @flatBag model should be nullable so payloads can
33
+ * omit them when their variant is not selected. The discriminator itself, and properties
34
+ * meaningful for every variant (no @variant), are exempt.
35
+ *
36
+ * Phase 3 default: off in the recommended ruleset until we have telemetry on false-positive
37
+ * rate — Phase 1 found many real flat-bags with deliberately non-null primitive siblings
38
+ * (e.g. recurrencePattern.interval).
39
+ */
40
+ export declare const flatBagSiblingsShouldBeNullable: import("@typespec/compiler").LinterRuleDefinition<"flat-bag-siblings-should-be-nullable", {
41
+ readonly default: import("@typespec/compiler").CallableMessage<["property", "model", "variants"]>;
42
+ }>;
43
+ /**
44
+ * Lint rule: the discriminator enum on a @flatBag model should be closed-set (no
45
+ * `unknownFutureValue` member). Flat-bag semantics depend on a known fixed variant set;
46
+ * an `unknownFutureValue` makes the variant→property mapping unverifiable for that value.
47
+ */
48
+ export declare const flatBagEnumShouldBeClosed: import("@typespec/compiler").LinterRuleDefinition<"flat-bag-enum-should-be-closed", {
49
+ readonly default: import("@typespec/compiler").CallableMessage<["enum", "model"]>;
50
+ }>;
51
+ //# sourceMappingURL=flat-bag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flat-bag.d.ts","sourceRoot":"","sources":["../../../src/rules/flat-bag.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EAKR,MAAM,oBAAoB,CAAC;AAuC5B;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,OAAO,QA6BrE;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAkCtE;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,QAqBnE;AAED;;;;;GAKG;AACH,wBAAgB,yCAAyC,CAAC,OAAO,EAAE,OAAO,QAiCzE;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,OAAO,QAgDtE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;EA+C1C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;EAyCpC,CAAC"}
@@ -0,0 +1,334 @@
1
+ import { createRule, navigateTypesInNamespace, paramMessage, } from "@typespec/compiler";
2
+ import { getDeclaredNamespacesForLinting } from "../entities/namespace.js";
3
+ import { getFlatBagDiscriminator, isFlatBag } from "../decorators/flat-bag.js";
4
+ import { getVariants, hasVariant } from "../decorators/variant.js";
5
+ import { extractTypesFromUnion, isNullType } from "../utils.js";
6
+ import { reportDiagnostic } from "../lib.js";
7
+ /**
8
+ * Resolve a model property's type to a named enum, unwrapping a single nullable union
9
+ * (`T | null`). Returns undefined when the property type is not an enum or a nullable enum.
10
+ */
11
+ function resolveEnumType(type) {
12
+ if (type.kind === "Enum") {
13
+ return type;
14
+ }
15
+ if (type.kind === "Union") {
16
+ const nonNull = extractTypesFromUnion(type).filter((t) => !isNullType(t));
17
+ if (nonNull.length === 1 && nonNull[0].kind === "Enum") {
18
+ return nonNull[0];
19
+ }
20
+ }
21
+ return undefined;
22
+ }
23
+ /**
24
+ * Best-effort rendering of a property type's name, used only in diagnostic messages.
25
+ */
26
+ function describeType(type) {
27
+ if (type.kind === "Enum" || type.kind === "Model" || type.kind === "Scalar" || type.kind === "Intrinsic") {
28
+ return type.name;
29
+ }
30
+ if (type.kind === "Union") {
31
+ return extractTypesFromUnion(type)
32
+ .map(describeType)
33
+ .join(" | ");
34
+ }
35
+ return type.kind;
36
+ }
37
+ /**
38
+ * @flatBag("X") on a model must name a property X that actually exists on the model.
39
+ */
40
+ export function validateFlatBagDiscriminatorMustExist(program) {
41
+ for (const namespace of getDeclaredNamespacesForLinting(program)) {
42
+ navigateTypesInNamespace(namespace, {
43
+ model: (model) => {
44
+ if (!isFlatBag(program, model)) {
45
+ return;
46
+ }
47
+ const discriminator = getFlatBagDiscriminator(program, model);
48
+ // Explicit undefined check so an empty-string discriminator (`@flatBag("")`) still
49
+ // flows through to model.properties.has(""), which correctly returns false and
50
+ // produces a proper flatBagDiscriminatorMustExist diagnostic instead of silently
51
+ // bypassing validation.
52
+ if (discriminator === undefined) {
53
+ return;
54
+ }
55
+ if (!model.properties.has(discriminator)) {
56
+ reportDiagnostic(program, {
57
+ code: "decorator-invalid-use",
58
+ target: model,
59
+ messageId: "flatBagDiscriminatorMustExist",
60
+ format: {
61
+ model: model.name,
62
+ discriminator,
63
+ },
64
+ });
65
+ }
66
+ },
67
+ });
68
+ }
69
+ }
70
+ /**
71
+ * The @flatBag discriminator property must be typed as a named enum (optionally nullable).
72
+ * String / number / boolean discriminators defeat the pattern's structural validation,
73
+ * since variant-name resolution depends on having an enum member set to match against.
74
+ */
75
+ export function validateFlatBagDiscriminatorMustBeEnum(program) {
76
+ for (const namespace of getDeclaredNamespacesForLinting(program)) {
77
+ navigateTypesInNamespace(namespace, {
78
+ model: (model) => {
79
+ if (!isFlatBag(program, model)) {
80
+ return;
81
+ }
82
+ const discriminator = getFlatBagDiscriminator(program, model);
83
+ // Explicit undefined check so an empty-string discriminator (`@flatBag("")`) still
84
+ // flows through to model.properties.has(""), which correctly returns false and
85
+ // produces a proper flatBagDiscriminatorMustExist diagnostic instead of silently
86
+ // bypassing validation.
87
+ if (discriminator === undefined) {
88
+ return;
89
+ }
90
+ const property = model.properties.get(discriminator);
91
+ if (!property) {
92
+ return;
93
+ }
94
+ if (resolveEnumType(property.type) === undefined) {
95
+ reportDiagnostic(program, {
96
+ code: "decorator-invalid-use",
97
+ target: property,
98
+ messageId: "flatBagDiscriminatorMustBeEnum",
99
+ format: {
100
+ model: model.name,
101
+ discriminator,
102
+ actualType: describeType(property.type),
103
+ },
104
+ });
105
+ }
106
+ },
107
+ });
108
+ }
109
+ }
110
+ /**
111
+ * @variant() with zero arguments is meaningless: absence of @variant already means
112
+ * "meaningful for every variant", and presence with values means "meaningful only for
113
+ * these values". An empty `@variant()` is neither — flag it as a coding error.
114
+ */
115
+ export function validateVariantValuesMustNotBeEmpty(program) {
116
+ for (const namespace of getDeclaredNamespacesForLinting(program)) {
117
+ navigateTypesInNamespace(namespace, {
118
+ modelProperty: (property) => {
119
+ if (!hasVariant(program, property)) {
120
+ return;
121
+ }
122
+ const variants = getVariants(program, property);
123
+ if (variants && variants.length === 0) {
124
+ reportDiagnostic(program, {
125
+ code: "decorator-invalid-use",
126
+ target: property,
127
+ messageId: "variantValuesMustNotBeEmpty",
128
+ format: {
129
+ property: property.name,
130
+ },
131
+ });
132
+ }
133
+ },
134
+ });
135
+ }
136
+ }
137
+ /**
138
+ * @variant only makes sense on a property whose parent model is @flatBag and that is NOT
139
+ * the discriminator itself. @variant scopes a sibling property to specific discriminator
140
+ * values; applying it to the discriminator is meaningless (the discriminator IS the
141
+ * variant signal, not a variant-conditional property).
142
+ */
143
+ export function validateVariantTargetMustBeFlatBagSibling(program) {
144
+ for (const namespace of getDeclaredNamespacesForLinting(program)) {
145
+ navigateTypesInNamespace(namespace, {
146
+ modelProperty: (property) => {
147
+ if (!hasVariant(program, property)) {
148
+ return;
149
+ }
150
+ const model = property.model;
151
+ if (!model || !isFlatBag(program, model)) {
152
+ reportDiagnostic(program, {
153
+ code: "decorator-invalid-use",
154
+ target: property,
155
+ messageId: "variantTargetMustBeFlatBagSibling",
156
+ format: {
157
+ property: property.name,
158
+ },
159
+ });
160
+ return;
161
+ }
162
+ if (property.name === getFlatBagDiscriminator(program, model)) {
163
+ reportDiagnostic(program, {
164
+ code: "decorator-invalid-use",
165
+ target: property,
166
+ messageId: "variantTargetMustNotBeDiscriminator",
167
+ format: {
168
+ property: property.name,
169
+ model: model.name,
170
+ },
171
+ });
172
+ }
173
+ },
174
+ });
175
+ }
176
+ }
177
+ /**
178
+ * Each value passed to @variant("a", "b") must name an actual member of the discriminator
179
+ * enum on the parent flat-bag model. Catches typos and stale variant names after enum
180
+ * members are renamed.
181
+ */
182
+ export function validateVariantValuesMustBeEnumMembers(program) {
183
+ for (const namespace of getDeclaredNamespacesForLinting(program)) {
184
+ navigateTypesInNamespace(namespace, {
185
+ modelProperty: (property) => {
186
+ var _a;
187
+ if (!hasVariant(program, property)) {
188
+ return;
189
+ }
190
+ const model = property.model;
191
+ if (!model || !isFlatBag(program, model)) {
192
+ // Reported by validateVariantTargetMustBeFlatBagSibling.
193
+ return;
194
+ }
195
+ const discriminator = getFlatBagDiscriminator(program, model);
196
+ // Explicit undefined check so an empty-string discriminator (`@flatBag("")`) still
197
+ // flows through to model.properties.has(""), which correctly returns false and
198
+ // produces a proper flatBagDiscriminatorMustExist diagnostic instead of silently
199
+ // bypassing validation.
200
+ if (discriminator === undefined) {
201
+ return;
202
+ }
203
+ const discriminatorProperty = model.properties.get(discriminator);
204
+ if (!discriminatorProperty) {
205
+ // Reported by validateFlatBagDiscriminatorMustExist; bail silently here.
206
+ return;
207
+ }
208
+ const enumType = resolveEnumType(discriminatorProperty.type);
209
+ if (!enumType) {
210
+ // Reported by validateFlatBagDiscriminatorMustBeEnum.
211
+ return;
212
+ }
213
+ const variants = (_a = getVariants(program, property)) !== null && _a !== void 0 ? _a : [];
214
+ const unknown = variants.filter((v) => !enumType.members.has(v));
215
+ if (unknown.length > 0) {
216
+ reportDiagnostic(program, {
217
+ code: "decorator-invalid-use",
218
+ target: property,
219
+ messageId: "variantValuesMustBeEnumMembers",
220
+ format: {
221
+ property: property.name,
222
+ model: model.name,
223
+ enum: enumType.name,
224
+ values: unknown.join(", "),
225
+ },
226
+ });
227
+ }
228
+ },
229
+ });
230
+ }
231
+ }
232
+ /**
233
+ * Lint rule: sibling properties on a @flatBag model should be nullable so payloads can
234
+ * omit them when their variant is not selected. The discriminator itself, and properties
235
+ * meaningful for every variant (no @variant), are exempt.
236
+ *
237
+ * Phase 3 default: off in the recommended ruleset until we have telemetry on false-positive
238
+ * rate — Phase 1 found many real flat-bags with deliberately non-null primitive siblings
239
+ * (e.g. recurrencePattern.interval).
240
+ */
241
+ export const flatBagSiblingsShouldBeNullable = createRule({
242
+ name: "flat-bag-siblings-should-be-nullable",
243
+ severity: "warning",
244
+ description: "Sibling properties on a @flatBag model should be nullable so variants that do not use them can be omitted.",
245
+ messages: {
246
+ default: paramMessage `Property '${"property"}' on @flatBag model '${"model"}' is meaningful only for variants '${"variants"}' but is not nullable. Make it 'T | null' so payloads for other variants can omit it.`,
247
+ },
248
+ create(context) {
249
+ return {
250
+ modelProperty: (property) => {
251
+ const model = property.model;
252
+ if (!model || !isFlatBag(context.program, model)) {
253
+ return;
254
+ }
255
+ // Exempt the discriminator itself.
256
+ const discriminator = getFlatBagDiscriminator(context.program, model);
257
+ if (discriminator && property.name === discriminator) {
258
+ return;
259
+ }
260
+ // Only check properties that declared a non-empty @variant set — those are the
261
+ // ones that are explicitly variant-scoped and therefore should be nullable.
262
+ if (!hasVariant(context.program, property)) {
263
+ return;
264
+ }
265
+ const variants = getVariants(context.program, property);
266
+ if (!variants || variants.length === 0) {
267
+ return;
268
+ }
269
+ if (property.type.kind === "Union") {
270
+ const hasNull = extractTypesFromUnion(property.type).some(isNullType);
271
+ if (hasNull) {
272
+ return;
273
+ }
274
+ }
275
+ // Non-union type or union without null variant — not nullable.
276
+ context.reportDiagnostic({
277
+ target: property,
278
+ format: {
279
+ property: property.name,
280
+ model: model.name,
281
+ variants: variants.join(", "),
282
+ },
283
+ });
284
+ },
285
+ };
286
+ },
287
+ });
288
+ /**
289
+ * Lint rule: the discriminator enum on a @flatBag model should be closed-set (no
290
+ * `unknownFutureValue` member). Flat-bag semantics depend on a known fixed variant set;
291
+ * an `unknownFutureValue` makes the variant→property mapping unverifiable for that value.
292
+ */
293
+ export const flatBagEnumShouldBeClosed = createRule({
294
+ name: "flat-bag-enum-should-be-closed",
295
+ severity: "warning",
296
+ description: "Discriminator enums on @flatBag models should be closed-set (no unknownFutureValue member).",
297
+ messages: {
298
+ default: paramMessage `Enum '${"enum"}' is the @flatBag discriminator for model '${"model"}' and should be closed-set, but has an 'unknownFutureValue' member. Flat-bag variant→property mappings are unverifiable for that value.`,
299
+ },
300
+ create(context) {
301
+ return {
302
+ model: (model) => {
303
+ if (!isFlatBag(context.program, model)) {
304
+ return;
305
+ }
306
+ const discriminator = getFlatBagDiscriminator(context.program, model);
307
+ // See validateFlatBagDiscriminatorMustExist: use explicit undefined check so
308
+ // empty-string discriminators reach the validation rule rather than silently
309
+ // bailing here.
310
+ if (discriminator === undefined) {
311
+ return;
312
+ }
313
+ const property = model.properties.get(discriminator);
314
+ if (!property) {
315
+ return;
316
+ }
317
+ const enumType = resolveEnumType(property.type);
318
+ if (!enumType) {
319
+ return;
320
+ }
321
+ if (enumType.members.has("unknownFutureValue")) {
322
+ context.reportDiagnostic({
323
+ target: enumType,
324
+ format: {
325
+ enum: enumType.name,
326
+ model: model.name,
327
+ },
328
+ });
329
+ }
330
+ },
331
+ };
332
+ },
333
+ });
334
+ //# sourceMappingURL=flat-bag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flat-bag.js","sourceRoot":"","sources":["../../../src/rules/flat-bag.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,9 @@ export * from "./entity.js";
15
15
  export * from "./enum.js";
16
16
  export * from "./expand.js";
17
17
  export * from "./extends-on-same-type.js";
18
+ export * from "./facet.js";
18
19
  export * from "./filter.js";
20
+ export * from "./flat-bag.js";
19
21
  export * from "./function.js";
20
22
  export * from "./global-operation.js";
21
23
  export * from "./graph-deprecated.js";
@@ -39,5 +41,6 @@ export * from "./return-source.js";
39
41
  export * from "./search.js";
40
42
  export * from "./shared-entity.js";
41
43
  export * from "./skip.js";
44
+ export * from "./skip-token.js";
42
45
  export * from "./top.js";
43
46
  //# sourceMappingURL=index.d.ts.map
@@ -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,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,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,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,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,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oDAAoD,CAAC;AACnE,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC"}
@@ -15,7 +15,9 @@ export * from "./entity.js";
15
15
  export * from "./enum.js";
16
16
  export * from "./expand.js";
17
17
  export * from "./extends-on-same-type.js";
18
+ export * from "./facet.js";
18
19
  export * from "./filter.js";
20
+ export * from "./flat-bag.js";
19
21
  export * from "./function.js";
20
22
  export * from "./global-operation.js";
21
23
  export * from "./graph-deprecated.js";
@@ -39,5 +41,6 @@ export * from "./return-source.js";
39
41
  export * from "./search.js";
40
42
  export * from "./shared-entity.js";
41
43
  export * from "./skip.js";
44
+ export * from "./skip-token.js";
42
45
  export * from "./top.js";
43
46
  //# sourceMappingURL=index.js.map