@azure-tools/typespec-azure-core 0.73.0-dev.0 → 0.73.0-dev.2

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 (34) hide show
  1. package/README.md +41 -0
  2. package/dist/generated-defs/Azure.Core.Legacy.d.ts +26 -0
  3. package/dist/generated-defs/Azure.Core.Legacy.d.ts.map +1 -0
  4. package/dist/generated-defs/Azure.Core.Legacy.js +2 -0
  5. package/dist/generated-defs/Azure.Core.Legacy.js.map +1 -0
  6. package/dist/generated-defs/Azure.Core.Legacy.ts-test.d.ts +2 -0
  7. package/dist/generated-defs/Azure.Core.Legacy.ts-test.d.ts.map +1 -0
  8. package/dist/generated-defs/Azure.Core.Legacy.ts-test.js +8 -0
  9. package/dist/generated-defs/Azure.Core.Legacy.ts-test.js.map +1 -0
  10. package/dist/src/decorators/override-api-version.d.ts +18 -0
  11. package/dist/src/decorators/override-api-version.d.ts.map +1 -0
  12. package/dist/src/decorators/override-api-version.js +63 -0
  13. package/dist/src/decorators/override-api-version.js.map +1 -0
  14. package/dist/src/index.d.ts +1 -0
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/index.js +1 -0
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/lib.d.ts +19 -4
  19. package/dist/src/lib.d.ts.map +1 -1
  20. package/dist/src/lib.js +11 -1
  21. package/dist/src/lib.js.map +1 -1
  22. package/dist/src/rules/casing-style.d.ts +15 -1
  23. package/dist/src/rules/casing-style.d.ts.map +1 -1
  24. package/dist/src/rules/casing-style.js +55 -41
  25. package/dist/src/rules/casing-style.js.map +1 -1
  26. package/dist/src/rules/utils.d.ts +5 -0
  27. package/dist/src/rules/utils.d.ts.map +1 -1
  28. package/dist/src/rules/utils.js +7 -0
  29. package/dist/src/rules/utils.js.map +1 -1
  30. package/dist/src/tsp-index.d.ts.map +1 -1
  31. package/dist/src/tsp-index.js +4 -0
  32. package/dist/src/tsp-index.js.map +1 -1
  33. package/lib/legacy.tsp +23 -0
  34. package/package.json +7 -7
package/README.md CHANGED
@@ -436,6 +436,47 @@ Identifies a property on _all_ non-error response models that serve as a linked
436
436
  | ---- | ---------------- | --------------------------- |
437
437
  | name | `valueof string` | Property name on the target |
438
438
 
439
+ ### Azure.Core.Legacy
440
+
441
+ - [`@overrideApiVersion`](#@overrideapiversion)
442
+
443
+ #### `@overrideApiVersion`
444
+
445
+ Overrides the API-version wire value used for operations within a namespace or interface.
446
+
447
+ The value is opaque and does not need to be declared by the service version enum. The override
448
+ is inherited by enclosed namespaces, interfaces, and operations, with the nearest override taking
449
+ precedence.
450
+
451
+ This decorator is considered legacy functionality and should only be used to preserve
452
+ compatibility with an existing SDK.
453
+
454
+ ```typespec
455
+ @Azure.Core.Legacy.overrideApiVersion(version: valueof string)
456
+ ```
457
+
458
+ ##### Target
459
+
460
+ The namespace or interface whose operations use the API-version override.
461
+ `Namespace | Interface`
462
+
463
+ ##### Parameters
464
+
465
+ | Name | Type | Description |
466
+ | ------- | ---------------- | ------------------------------------- |
467
+ | version | `valueof string` | The non-empty API-version wire value. |
468
+
469
+ ##### Examples
470
+
471
+ ###### Override an interface API version
472
+
473
+ ```typespec
474
+ @Azure.Core.Legacy.overrideApiVersion("2021-11-01")
475
+ interface Widgets {
476
+ get(): void;
477
+ }
478
+ ```
479
+
439
480
  ### Azure.Core.Traits
440
481
 
441
482
  - [`@trait`](#@trait)
@@ -0,0 +1,26 @@
1
+ import type { DecoratorContext, DecoratorValidatorCallbacks, Interface, Namespace } from "@typespec/compiler";
2
+ /**
3
+ * Overrides the API-version wire value used for operations within a namespace or interface.
4
+ *
5
+ * The value is opaque and does not need to be declared by the service version enum. The override
6
+ * is inherited by enclosed namespaces, interfaces, and operations, with the nearest override taking
7
+ * precedence.
8
+ *
9
+ * This decorator is considered legacy functionality and should only be used to preserve
10
+ * compatibility with an existing SDK.
11
+ *
12
+ * @param target The namespace or interface whose operations use the API-version override.
13
+ * @param version The non-empty API-version wire value.
14
+ * @example Override an interface API version
15
+ * ```typespec
16
+ * @Azure.Core.Legacy.overrideApiVersion("2021-11-01")
17
+ * interface Widgets {
18
+ * get(): void;
19
+ * }
20
+ * ```
21
+ */
22
+ export type OverrideApiVersionDecorator = (context: DecoratorContext, target: Namespace | Interface, version: string) => DecoratorValidatorCallbacks | void;
23
+ export type AzureCoreLegacyDecorators = {
24
+ overrideApiVersion: OverrideApiVersionDecorator;
25
+ };
26
+ //# sourceMappingURL=Azure.Core.Legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Azure.Core.Legacy.d.ts","sourceRoot":"","sources":["../../generated-defs/Azure.Core.Legacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,SAAS,EACT,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,KACZ,2BAA2B,GAAG,IAAI,CAAC;AAExC,MAAM,MAAM,yBAAyB,GAAG;IACtC,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Azure.Core.Legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Azure.Core.Legacy.js","sourceRoot":"","sources":["../../generated-defs/Azure.Core.Legacy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Azure.Core.Legacy.ts-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Azure.Core.Legacy.ts-test.d.ts","sourceRoot":"","sources":["../../generated-defs/Azure.Core.Legacy.ts-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ // An error in the imports would mean that the decorator is not exported or
2
+ // doesn't have the right name.
3
+ import { $decorators } from "@azure-tools/typespec-azure-core";
4
+ /**
5
+ * An error here would mean that the exported decorator is not using the same signature. Make sure to have export const $decName: DecNameDecorator = (...) => ...
6
+ */
7
+ const _decs = $decorators["Azure.Core.Legacy"];
8
+ //# sourceMappingURL=Azure.Core.Legacy.ts-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Azure.Core.Legacy.ts-test.js","sourceRoot":"","sources":["../../generated-defs/Azure.Core.Legacy.ts-test.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,+BAA+B;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D;;GAEG;AACH,MAAM,KAAK,GAA8B,WAAW,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Interface, Namespace, Operation, Program } from "@typespec/compiler";
2
+ import type { OverrideApiVersionDecorator } from "../../generated-defs/Azure.Core.Legacy.js";
3
+ export declare const $overrideApiVersion: OverrideApiVersionDecorator;
4
+ /**
5
+ * Returns the API-version override configured directly on a namespace or interface.
6
+ *
7
+ * @param program The TypeSpec program.
8
+ * @param target The directly decorated namespace or interface.
9
+ */
10
+ export declare function getApiVersionOverride(program: Program, target: Namespace | Interface): string | undefined;
11
+ /**
12
+ * Returns the API-version override effective for a namespace, interface, or operation.
13
+ *
14
+ * @param program The TypeSpec program.
15
+ * @param target The namespace, interface, or operation to resolve.
16
+ */
17
+ export declare function getEffectiveApiVersionOverride(program: Program, target: Namespace | Interface | Operation): string | undefined;
18
+ //# sourceMappingURL=override-api-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-api-version.d.ts","sourceRoot":"","sources":["../../../src/decorators/override-api-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAQ7F,eAAO,MAAM,mBAAmB,EAAE,2BAcjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAC5B,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACxC,MAAM,GAAG,SAAS,CAoCpB"}
@@ -0,0 +1,63 @@
1
+ import { useStateMap } from "@typespec/compiler/utils";
2
+ import { AzureCoreStateKeys, reportDiagnostic } from "../lib.js";
3
+ const [getApiVersionOverrideState, setApiVersionOverrideState] = useStateMap(AzureCoreStateKeys.apiVersionOverride);
4
+ export const $overrideApiVersion = (context, target, version) => {
5
+ if (version.trim().length === 0) {
6
+ reportDiagnostic(context.program, {
7
+ code: "invalid-api-version-override",
8
+ target: context.decoratorTarget,
9
+ });
10
+ return;
11
+ }
12
+ setApiVersionOverrideState(context.program, target, version);
13
+ };
14
+ /**
15
+ * Returns the API-version override configured directly on a namespace or interface.
16
+ *
17
+ * @param program The TypeSpec program.
18
+ * @param target The directly decorated namespace or interface.
19
+ */
20
+ export function getApiVersionOverride(program, target) {
21
+ return getApiVersionOverrideState(program, target);
22
+ }
23
+ /**
24
+ * Returns the API-version override effective for a namespace, interface, or operation.
25
+ *
26
+ * @param program The TypeSpec program.
27
+ * @param target The namespace, interface, or operation to resolve.
28
+ */
29
+ export function getEffectiveApiVersionOverride(program, target) {
30
+ let namespace;
31
+ switch (target.kind) {
32
+ case "Namespace":
33
+ namespace = target;
34
+ break;
35
+ case "Interface": {
36
+ const override = getApiVersionOverride(program, target);
37
+ if (override !== undefined) {
38
+ return override;
39
+ }
40
+ namespace = target.namespace;
41
+ break;
42
+ }
43
+ case "Operation": {
44
+ if (target.interface) {
45
+ const override = getApiVersionOverride(program, target.interface);
46
+ if (override !== undefined) {
47
+ return override;
48
+ }
49
+ }
50
+ namespace = target.interface?.namespace ?? target.namespace;
51
+ break;
52
+ }
53
+ }
54
+ while (namespace) {
55
+ const override = getApiVersionOverride(program, namespace);
56
+ if (override !== undefined) {
57
+ return override;
58
+ }
59
+ namespace = namespace.namespace;
60
+ }
61
+ return undefined;
62
+ }
63
+ //# sourceMappingURL=override-api-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-api-version.js","sourceRoot":"","sources":["../../../src/decorators/override-api-version.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,GAAG,WAAW,CAG1E,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAgC,CAC9D,OAAyB,EACzB,MAA6B,EAC7B,OAAe,EACf,EAAE;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,8BAA8B;YACpC,MAAM,EAAE,OAAO,CAAC,eAAe;SAChC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,0BAA0B,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,MAA6B;IAE7B,OAAO,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAgB,EAChB,MAAyC;IAEzC,IAAI,SAAgC,CAAC;IAErC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,WAAW;YACd,SAAS,GAAG,MAAM,CAAC;YACnB,MAAM;QACR,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;YAC5D,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,SAAS,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -4,6 +4,7 @@ export { $linter } from "./linter.js";
4
4
  export * from "./decorators.js";
5
5
  export { extractLroStates } from "./decorators/lro-status.js";
6
6
  export { getOperationLinks, type OperationLink, type OperationLinkMetadata, } from "./decorators/operation-link.js";
7
+ export { getApiVersionOverride, getEffectiveApiVersionOverride, } from "./decorators/override-api-version.js";
7
8
  export { isPreviewVersion } from "./decorators/preview-version.js";
8
9
  export { getArmResourceIdentifierConfig, type ArmResourceIdentifierConfig, } from "./decorators/private/arm-resource-identifier-config.js";
9
10
  export { getAsEmbeddingVector, type EmbeddingVectorMetadata, } from "./decorators/private/embedding-vector.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,GACjC,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,KAAK,uBAAuB,GAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1E,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,GACjC,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,KAAK,uBAAuB,GAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1E,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -4,6 +4,7 @@ export { $linter } from "./linter.js";
4
4
  export * from "./decorators.js";
5
5
  export { extractLroStates } from "./decorators/lro-status.js";
6
6
  export { getOperationLinks, } from "./decorators/operation-link.js";
7
+ export { getApiVersionOverride, getEffectiveApiVersionOverride, } from "./decorators/override-api-version.js";
7
8
  export { isPreviewVersion } from "./decorators/preview-version.js";
8
9
  export { getArmResourceIdentifierConfig, } from "./decorators/private/arm-resource-identifier-config.js";
9
10
  export { getAsEmbeddingVector, } from "./decorators/private/embedding-vector.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,iBAAiB,GAGlB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,8BAA8B,GAE/B,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,oBAAoB,GAErB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAC1E,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,iBAAiB,GAGlB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,8BAA8B,GAE/B,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,oBAAoB,GAErB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAC1E,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -126,12 +126,15 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
126
126
  "unique-items-invalid-type": {
127
127
  readonly default: "@uniqueItems can only be applied to arrays and array-valued model properties.";
128
128
  };
129
+ "invalid-api-version-override": {
130
+ readonly default: "The API version override must be a non-empty string.";
131
+ };
129
132
  "experimental-feature": {
130
133
  readonly default: import("@typespec/compiler").CallableMessage<["feature"]>;
131
134
  readonly dangerous: import("@typespec/compiler").CallableMessage<["feature"]>;
132
135
  };
133
- }, Record<string, any>, "trait" | "lroStatus" | "lroSucceeded" | "lroCanceled" | "lroFailed" | "lroResult" | "lroErrorResult" | "pollingOperationParameter" | "pollingLocationInfo" | "finalLocations" | "finalLocationResults" | "finalStateOverride" | "needsRoute" | "ensureVerb" | "embeddingVector" | "armResourceIdentifierConfig" | "operationLink" | "requestParameter" | "responseParameter" | "resourceOperation" | "traitSource" | "traitContext" | "traitLocation" | "uniqueItems" | "parameterizedNextLinkConfig" | "previewVersion">;
134
- export declare const reportDiagnostic: <C extends "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "lro-status-monitor-invalid-result-property" | "lro-status-monitor-invalid-result-property-type" | "invalid-polling-operation-parameter" | "invalid-final-state" | "no-operation-at-original-uri" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "operation-link-parameter-invalid" | "operation-link-parameter-invalid-target" | "invalid-resource-type" | "polling-operation-return-model" | "polling-operation-no-status-monitor" | "polling-operation-no-lro-success" | "polling-operation-no-lro-failure" | "polling-operation-no-ref-or-link" | "invalid-final-operation" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "client-request-id-trait-missing" | "repeatable-requests-trait-missing" | "conditional-requests-trait-missing" | "expected-trait-diagnostic-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-object" | "verb-conflict" | "rpc-operation-needs-route" | "union-enums-multiple-kind" | "union-enums-invalid-kind" | "union-enums-circular" | "preview-version-invalid-enum-member" | "preview-version-last-member" | "unique-items-invalid-type" | "experimental-feature", M extends keyof {
136
+ }, Record<string, any>, "trait" | "lroStatus" | "lroSucceeded" | "lroCanceled" | "lroFailed" | "lroResult" | "lroErrorResult" | "pollingOperationParameter" | "pollingLocationInfo" | "finalLocations" | "finalLocationResults" | "finalStateOverride" | "needsRoute" | "ensureVerb" | "embeddingVector" | "armResourceIdentifierConfig" | "operationLink" | "requestParameter" | "responseParameter" | "resourceOperation" | "traitSource" | "traitContext" | "traitLocation" | "uniqueItems" | "parameterizedNextLinkConfig" | "previewVersion" | "apiVersionOverride">;
137
+ export declare const reportDiagnostic: <C extends "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "lro-status-monitor-invalid-result-property" | "lro-status-monitor-invalid-result-property-type" | "invalid-polling-operation-parameter" | "invalid-final-state" | "no-operation-at-original-uri" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "operation-link-parameter-invalid" | "operation-link-parameter-invalid-target" | "invalid-resource-type" | "polling-operation-return-model" | "polling-operation-no-status-monitor" | "polling-operation-no-lro-success" | "polling-operation-no-lro-failure" | "polling-operation-no-ref-or-link" | "invalid-final-operation" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "client-request-id-trait-missing" | "repeatable-requests-trait-missing" | "conditional-requests-trait-missing" | "expected-trait-diagnostic-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-object" | "verb-conflict" | "rpc-operation-needs-route" | "union-enums-multiple-kind" | "union-enums-invalid-kind" | "union-enums-circular" | "preview-version-invalid-enum-member" | "preview-version-last-member" | "unique-items-invalid-type" | "invalid-api-version-override" | "experimental-feature", M extends keyof {
135
138
  "lro-status-union-non-string": {
136
139
  readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
137
140
  };
@@ -259,6 +262,9 @@ export declare const reportDiagnostic: <C extends "lro-status-union-non-string"
259
262
  "unique-items-invalid-type": {
260
263
  readonly default: "@uniqueItems can only be applied to arrays and array-valued model properties.";
261
264
  };
265
+ "invalid-api-version-override": {
266
+ readonly default: "The API version override must be a non-empty string.";
267
+ };
262
268
  "experimental-feature": {
263
269
  readonly default: import("@typespec/compiler").CallableMessage<["feature"]>;
264
270
  readonly dangerous: import("@typespec/compiler").CallableMessage<["feature"]>;
@@ -391,11 +397,14 @@ export declare const reportDiagnostic: <C extends "lro-status-union-non-string"
391
397
  "unique-items-invalid-type": {
392
398
  readonly default: "@uniqueItems can only be applied to arrays and array-valued model properties.";
393
399
  };
400
+ "invalid-api-version-override": {
401
+ readonly default: "The API version override must be a non-empty string.";
402
+ };
394
403
  "experimental-feature": {
395
404
  readonly default: import("@typespec/compiler").CallableMessage<["feature"]>;
396
405
  readonly dangerous: import("@typespec/compiler").CallableMessage<["feature"]>;
397
406
  };
398
- }, C, M>) => void, createDiagnostic: <C extends "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "lro-status-monitor-invalid-result-property" | "lro-status-monitor-invalid-result-property-type" | "invalid-polling-operation-parameter" | "invalid-final-state" | "no-operation-at-original-uri" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "operation-link-parameter-invalid" | "operation-link-parameter-invalid-target" | "invalid-resource-type" | "polling-operation-return-model" | "polling-operation-no-status-monitor" | "polling-operation-no-lro-success" | "polling-operation-no-lro-failure" | "polling-operation-no-ref-or-link" | "invalid-final-operation" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "client-request-id-trait-missing" | "repeatable-requests-trait-missing" | "conditional-requests-trait-missing" | "expected-trait-diagnostic-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-object" | "verb-conflict" | "rpc-operation-needs-route" | "union-enums-multiple-kind" | "union-enums-invalid-kind" | "union-enums-circular" | "preview-version-invalid-enum-member" | "preview-version-last-member" | "unique-items-invalid-type" | "experimental-feature", M extends keyof {
407
+ }, C, M>) => void, createDiagnostic: <C extends "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "lro-status-monitor-invalid-result-property" | "lro-status-monitor-invalid-result-property-type" | "invalid-polling-operation-parameter" | "invalid-final-state" | "no-operation-at-original-uri" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "operation-link-parameter-invalid" | "operation-link-parameter-invalid-target" | "invalid-resource-type" | "polling-operation-return-model" | "polling-operation-no-status-monitor" | "polling-operation-no-lro-success" | "polling-operation-no-lro-failure" | "polling-operation-no-ref-or-link" | "invalid-final-operation" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "client-request-id-trait-missing" | "repeatable-requests-trait-missing" | "conditional-requests-trait-missing" | "expected-trait-diagnostic-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response" | "no-object" | "verb-conflict" | "rpc-operation-needs-route" | "union-enums-multiple-kind" | "union-enums-invalid-kind" | "union-enums-circular" | "preview-version-invalid-enum-member" | "preview-version-last-member" | "unique-items-invalid-type" | "invalid-api-version-override" | "experimental-feature", M extends keyof {
399
408
  "lro-status-union-non-string": {
400
409
  readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
401
410
  };
@@ -523,6 +532,9 @@ export declare const reportDiagnostic: <C extends "lro-status-union-non-string"
523
532
  "unique-items-invalid-type": {
524
533
  readonly default: "@uniqueItems can only be applied to arrays and array-valued model properties.";
525
534
  };
535
+ "invalid-api-version-override": {
536
+ readonly default: "The API version override must be a non-empty string.";
537
+ };
526
538
  "experimental-feature": {
527
539
  readonly default: import("@typespec/compiler").CallableMessage<["feature"]>;
528
540
  readonly dangerous: import("@typespec/compiler").CallableMessage<["feature"]>;
@@ -655,9 +667,12 @@ export declare const reportDiagnostic: <C extends "lro-status-union-non-string"
655
667
  "unique-items-invalid-type": {
656
668
  readonly default: "@uniqueItems can only be applied to arrays and array-valued model properties.";
657
669
  };
670
+ "invalid-api-version-override": {
671
+ readonly default: "The API version override must be a non-empty string.";
672
+ };
658
673
  "experimental-feature": {
659
674
  readonly default: import("@typespec/compiler").CallableMessage<["feature"]>;
660
675
  readonly dangerous: import("@typespec/compiler").CallableMessage<["feature"]>;
661
676
  };
662
- }, C, M>) => import("@typespec/compiler").Diagnostic, AzureCoreStateKeys: Record<"trait" | "lroStatus" | "lroSucceeded" | "lroCanceled" | "lroFailed" | "lroResult" | "lroErrorResult" | "pollingOperationParameter" | "pollingLocationInfo" | "finalLocations" | "finalLocationResults" | "finalStateOverride" | "needsRoute" | "ensureVerb" | "embeddingVector" | "armResourceIdentifierConfig" | "operationLink" | "requestParameter" | "responseParameter" | "resourceOperation" | "traitSource" | "traitContext" | "traitLocation" | "uniqueItems" | "parameterizedNextLinkConfig" | "previewVersion", symbol>;
677
+ }, C, M>) => import("@typespec/compiler").Diagnostic, AzureCoreStateKeys: Record<"trait" | "lroStatus" | "lroSucceeded" | "lroCanceled" | "lroFailed" | "lroResult" | "lroErrorResult" | "pollingOperationParameter" | "pollingLocationInfo" | "finalLocations" | "finalLocationResults" | "finalStateOverride" | "needsRoute" | "ensureVerb" | "embeddingVector" | "armResourceIdentifierConfig" | "operationLink" | "requestParameter" | "responseParameter" | "resourceOperation" | "traitSource" | "traitContext" | "traitLocation" | "uniqueItems" | "parameterizedNextLinkConfig" | "previewVersion" | "apiVersionOverride", symbol>;
663
678
  //# sourceMappingURL=lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;khBAmTf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAa,kBAAkB,2gBAAS,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yiBA6Tf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAa,kBAAkB,kiBAAS,CAAC"}
package/dist/src/lib.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler";
1
+ import { createTypeSpecLibrary, fileRef, paramMessage } from "@typespec/compiler";
2
2
  export const $lib = createTypeSpecLibrary({
3
3
  name: "@azure-tools/typespec-azure-core",
4
4
  diagnostics: {
@@ -252,6 +252,13 @@ export const $lib = createTypeSpecLibrary({
252
252
  default: `@uniqueItems can only be applied to arrays and array-valued model properties.`,
253
253
  },
254
254
  },
255
+ "invalid-api-version-override": {
256
+ docs: fileRef.fromPackageRoot("src/diagnostics/invalid-api-version-override.md"),
257
+ severity: "error",
258
+ messages: {
259
+ default: "The API version override must be a non-empty string.",
260
+ },
261
+ },
255
262
  "experimental-feature": {
256
263
  severity: "warning",
257
264
  messages: {
@@ -293,6 +300,9 @@ export const $lib = createTypeSpecLibrary({
293
300
  previewVersion: {
294
301
  description: "Data for `@previewVersion` decorator",
295
302
  },
303
+ apiVersionOverride: {
304
+ description: "Data for `@overrideApiVersion` decorator",
305
+ },
296
306
  },
297
307
  // AzureCoreStateKeys.traitLocation
298
308
  });
@@ -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,4 +1,18 @@
1
+ export type CasingStyle = "camelCase" | "PascalCase" | "snake_case" | false;
2
+ export interface CasingStyleOptions {
3
+ model?: CasingStyle;
4
+ modelProperty?: CasingStyle;
5
+ operation?: CasingStyle;
6
+ operationTemplate?: CasingStyle;
7
+ interface?: CasingStyle;
8
+ namespace?: CasingStyle;
9
+ union?: CasingStyle;
10
+ unionVariant?: CasingStyle;
11
+ enum?: CasingStyle;
12
+ enumMember?: CasingStyle;
13
+ scalar?: CasingStyle;
14
+ }
1
15
  export declare const casingRule: import("@typespec/compiler").LinterRuleDefinition<"casing-style", {
2
16
  readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
3
- }, Record<string, never>>;
17
+ }, Required<CasingStyleOptions>>;
4
18
  //# sourceMappingURL=casing-style.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"casing-style.d.ts","sourceRoot":"","sources":["../../../src/rules/casing-style.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,UAAU;;yBA6DrB,CAAC"}
1
+ {"version":3,"file":"casing-style.d.ts","sourceRoot":"","sources":["../../../src/rules/casing-style.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAsBD,eAAO,MAAM,UAAU;;gCA+DrB,CAAC"}
@@ -1,6 +1,24 @@
1
1
  import { createRule, fileRef, isTemplateDeclarationOrInstance, paramMessage, } from "@typespec/compiler";
2
- import { isCamelCaseNoAcronyms, isPascalCaseWithAcceptedAcronyms } from "./utils.js";
2
+ import { isCamelCaseNoAcronyms, isPascalCaseWithAcceptedAcronyms, isSnakeCase } from "./utils.js";
3
3
  const acceptedAzureAcronyms = ["AI", "VM", "OS", "IP", "CPU", "GPU", "LRO"];
4
+ const defaultOptions = {
5
+ model: "PascalCase",
6
+ modelProperty: "camelCase",
7
+ operation: "camelCase",
8
+ operationTemplate: "PascalCase",
9
+ interface: "PascalCase",
10
+ namespace: "PascalCase",
11
+ union: false,
12
+ unionVariant: false,
13
+ enum: false,
14
+ enumMember: false,
15
+ scalar: false,
16
+ };
17
+ const predicates = {
18
+ camelCase: isCamelCaseNoAcronyms,
19
+ PascalCase: (name) => isPascalCaseWithAcceptedAcronyms(name, acceptedAzureAcronyms),
20
+ snake_case: isSnakeCase,
21
+ };
4
22
  export const casingRule = createRule({
5
23
  name: "casing-style",
6
24
  docs: fileRef.fromPackageRoot("src/rules/casing-style.md"),
@@ -10,58 +28,54 @@ export const casingRule = createRule({
10
28
  messages: {
11
29
  default: paramMessage `The names of ${"type"} types must use ${"casing"}`,
12
30
  },
31
+ defaultOptions,
32
+ optionSchema: {
33
+ type: "object",
34
+ properties: Object.fromEntries(Object.keys(defaultOptions).map((category) => [
35
+ category,
36
+ { enum: ["camelCase", "PascalCase", "snake_case", false] },
37
+ ])),
38
+ additionalProperties: false,
39
+ },
13
40
  create(context) {
41
+ function check(target, category, type) {
42
+ const casing = context.options[category];
43
+ if (casing === false || typeof target.name !== "string" || target.name === "")
44
+ return;
45
+ if (!predicates[casing](target.name)) {
46
+ context.reportDiagnostic({
47
+ format: { type, casing },
48
+ target,
49
+ });
50
+ }
51
+ }
14
52
  return {
15
- model: (model) => {
16
- if (!isPascalCaseWithAcceptedAcronyms(model.name, acceptedAzureAcronyms)) {
17
- context.reportDiagnostic({
18
- format: { type: "Model", casing: "PascalCase" },
19
- target: model,
20
- });
21
- }
22
- },
53
+ model: (model) => check(model, "model", "Model"),
23
54
  modelProperty: (property) => {
24
- if (property.name === "_")
55
+ if (context.options.modelProperty === "camelCase" && property.name === "_")
25
56
  return;
26
- if (!isCamelCaseNoAcronyms(property.name)) {
27
- context.reportDiagnostic({
28
- format: { type: "Property", casing: "camelCase" },
29
- target: property,
30
- });
31
- }
57
+ check(property, "modelProperty", "Property");
32
58
  },
33
59
  operation: (operation) => {
34
60
  if (isTemplateDeclarationOrInstance(operation)) {
35
- if (!isPascalCaseWithAcceptedAcronyms(operation.name, acceptedAzureAcronyms)) {
36
- context.reportDiagnostic({
37
- format: { type: "Operation Template", casing: "PascalCase" },
38
- target: operation,
39
- });
40
- }
41
- }
42
- else if (!isCamelCaseNoAcronyms(operation.name)) {
43
- context.reportDiagnostic({
44
- format: { type: "Operation", casing: "camelCase" },
45
- target: operation,
46
- });
61
+ check(operation, "operationTemplate", "Operation Template");
47
62
  }
48
- },
49
- interface: (operationGroup) => {
50
- if (!isPascalCaseWithAcceptedAcronyms(operationGroup.name, acceptedAzureAcronyms)) {
51
- context.reportDiagnostic({
52
- format: { type: "Interface", casing: "PascalCase" },
53
- target: operationGroup,
54
- });
63
+ else {
64
+ check(operation, "operation", "Operation");
55
65
  }
56
66
  },
57
- namespace: (namespace) => {
58
- if (!isPascalCaseWithAcceptedAcronyms(namespace.name, acceptedAzureAcronyms)) {
59
- context.reportDiagnostic({
60
- format: { type: "Namespace", casing: "PascalCase" },
61
- target: namespace,
62
- });
67
+ interface: (operationGroup) => check(operationGroup, "interface", "Interface"),
68
+ namespace: (namespace) => check(namespace, "namespace", "Namespace"),
69
+ union: (union) => check(union, "union", "Union"),
70
+ unionVariant: (variant) => check(variant, "unionVariant", "Union Variant"),
71
+ enum: (enumType) => {
72
+ check(enumType, "enum", "Enum");
73
+ // Semantic navigation does not visit enum members.
74
+ for (const member of enumType.members.values()) {
75
+ check(member, "enumMember", "Enum Member");
63
76
  }
64
77
  },
78
+ scalar: (scalar) => check(scalar, "scalar", "Scalar"),
65
79
  };
66
80
  },
67
81
  });
@@ -1 +1 @@
1
- {"version":3,"file":"casing-style.js","sourceRoot":"","sources":["../../../src/rules/casing-style.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"casing-style.js","sourceRoot":"","sources":["../../../src/rules/casing-style.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,11 @@ export declare function isPascalCaseWithAcceptedAcronyms(name: string, acceptedA
52
52
  * @returns true if the name is in camelCase
53
53
  */
54
54
  export declare function isCamelCaseNoAcronyms(name: string): boolean;
55
+ /**
56
+ * Checks for lowercase ASCII words separated by single underscores.
57
+ * Digits are allowed after the first letter, including immediately after an underscore.
58
+ */
59
+ export declare function isSnakeCase(name: string): boolean;
55
60
  export declare function checkReferenceInDisallowedNamespace(context: LinterRuleContext<{
56
61
  readonly default: CallableMessage<["ns"]>;
57
62
  }>, origin: Type, type: Type, target: DiagnosticTarget, disallowedNamespace: "Private" | "Legacy"): void;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/rules/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACT,KAAK,UAAU,EAIf,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,KAAK,cAAc,GACf,SAAS,GACT,KAAK,GACL,aAAa,GACb,IAAI,GACJ,UAAU,GACV,KAAK,GACL,YAAY,GACZ,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAU3F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAclF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,WAE1C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,KAAK,kBAEtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,uBAM9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,WAE9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAST;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,CAAC,EACzE,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,SAAS,GAAG,QAAQ,QAc1C;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,CAAC,EACzE,IAAI,EAAE,IAAI,GAAG,aAAa,EAC1B,mBAAmB,EAAE,SAAS,GAAG,QAAQ,QAiB1C;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GACxC,IAAI,IAAI,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAYzC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/rules/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACT,KAAK,UAAU,EAIf,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,KAAK,cAAc,GACf,SAAS,GACT,KAAK,GACL,aAAa,GACb,IAAI,GACJ,UAAU,GACV,KAAK,GACL,YAAY,GACZ,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAU3F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAclF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,WAE1C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,KAAK,kBAEtD;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,uBAM9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,WAE9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAST;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,CAAC,EACzE,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,SAAS,GAAG,QAAQ,QAc1C;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;CAAE,CAAC,EACzE,IAAI,EAAE,IAAI,GAAG,aAAa,EAC1B,mBAAmB,EAAE,SAAS,GAAG,QAAQ,QAiB1C;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,mBAAmB,EAAE,SAAS,GAAG,QAAQ,GACxC,IAAI,IAAI,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAYzC"}
@@ -110,6 +110,13 @@ export function isCamelCaseNoAcronyms(name) {
110
110
  return true;
111
111
  return /^[^a-zA-Z0-9]?[a-z][a-z0-9]*([A-Z][a-z0-9]+)*[A-Z]?$/.test(name);
112
112
  }
113
+ /**
114
+ * Checks for lowercase ASCII words separated by single underscores.
115
+ * Digits are allowed after the first letter, including immediately after an underscore.
116
+ */
117
+ export function isSnakeCase(name) {
118
+ return /^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/.test(name);
119
+ }
113
120
  export function checkReferenceInDisallowedNamespace(context, origin, type, target, disallowedNamespace) {
114
121
  if (getLocationContext(context.program, origin).type !== "project") {
115
122
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rules/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rules/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tsp-index.d.ts","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"AA4CA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"tsp-index.d.ts","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"AA8CA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -9,6 +9,7 @@ import { $lroResult } from "./decorators/lro-result.js";
9
9
  import { $lroStatus } from "./decorators/lro-status.js";
10
10
  import { $lroSucceeded } from "./decorators/lro-succeeded.js";
11
11
  import { $operationLink } from "./decorators/operation-link.js";
12
+ import { $overrideApiVersion } from "./decorators/override-api-version.js";
12
13
  import { $pollingLocation } from "./decorators/polling-location.js";
13
14
  import { $pollingOperationParameter } from "./decorators/polling-operation-parameter.js";
14
15
  import { $pollingOperation } from "./decorators/polling-operation.js";
@@ -62,6 +63,9 @@ export const $decorators = {
62
63
  defaultFinalStateVia: $defaultFinalStateVia,
63
64
  parameterizedNextLinkConfig: parameterizedNextLinkConfigDecorator,
64
65
  },
66
+ "Azure.Core.Legacy": {
67
+ overrideApiVersion: $overrideApiVersion,
68
+ },
65
69
  "Azure.Core.Traits": {
66
70
  trait: $trait,
67
71
  traitAdded: $traitAdded,
@@ -1 +1 @@
1
- {"version":3,"file":"tsp-index.js","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tsp-index.js","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"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"}
package/lib/legacy.tsp CHANGED
@@ -2,6 +2,29 @@ using TypeSpec.Reflection;
2
2
 
3
3
  namespace Azure.Core.Legacy;
4
4
 
5
+ /**
6
+ * Overrides the API-version wire value used for operations within a namespace or interface.
7
+ *
8
+ * The value is opaque and does not need to be declared by the service version enum. The override
9
+ * is inherited by enclosed namespaces, interfaces, and operations, with the nearest override taking
10
+ * precedence.
11
+ *
12
+ * This decorator is considered legacy functionality and should only be used to preserve
13
+ * compatibility with an existing SDK.
14
+ *
15
+ * @param target The namespace or interface whose operations use the API-version override.
16
+ * @param version The non-empty API-version wire value.
17
+ *
18
+ * @example Override an interface API version
19
+ * ```typespec
20
+ * @Azure.Core.Legacy.overrideApiVersion("2021-11-01")
21
+ * interface Widgets {
22
+ * get(): void;
23
+ * }
24
+ * ```
25
+ */
26
+ extern dec overrideApiVersion(target: Namespace | Interface, version: valueof string);
27
+
5
28
  /**
6
29
  * A scalar type representing a next link that requires formatting with parameters to be used.
7
30
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-azure-core",
3
- "version": "0.73.0-dev.0",
3
+ "version": "0.73.0-dev.2",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec Azure Core library",
6
6
  "homepage": "https://azure.github.io/typespec-azure",
@@ -53,17 +53,17 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/node": "^26.3.0",
56
- "@vitest/coverage-v8": "^4.1.11",
57
- "@vitest/ui": "^4.1.11",
56
+ "@vitest/coverage-v8": "^5.0.0",
57
+ "@vitest/ui": "^5.0.0",
58
58
  "rimraf": "^6.1.3",
59
59
  "typescript": "~6.0.2",
60
- "vitest": "^4.1.11",
60
+ "vitest": "^5.0.0",
61
+ "@typespec/compiler": "^1.16.0",
61
62
  "@typespec/http": "^1.16.0",
62
- "@typespec/library-linter": "^0.86.0",
63
63
  "@typespec/openapi": "^1.16.0",
64
- "@typespec/rest": "^0.86.0",
64
+ "@typespec/library-linter": "^0.86.0",
65
65
  "@typespec/tspd": "^0.77.1",
66
- "@typespec/compiler": "^1.16.0",
66
+ "@typespec/rest": "^0.86.0",
67
67
  "@typespec/versioning": "^0.86.0"
68
68
  },
69
69
  "scripts": {