@azure-tools/typespec-ts-provisioning 0.1.0-alpha.20261022.1 → 0.1.0-alpha.20261024.1

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 (58) hide show
  1. package/dist/src/arm/naming/naming-rules.d.ts +7 -9
  2. package/dist/src/arm/naming/naming-rules.d.ts.map +1 -1
  3. package/dist/src/arm/naming/naming-rules.js +43 -121
  4. package/dist/src/arm/naming/naming-rules.js.map +1 -1
  5. package/dist/src/arm/provisioning-types/transformer.d.ts +12 -1
  6. package/dist/src/arm/provisioning-types/transformer.d.ts.map +1 -1
  7. package/dist/src/arm/provisioning-types/transformer.js +22 -1
  8. package/dist/src/arm/provisioning-types/transformer.js.map +1 -1
  9. package/dist/src/arm/provisioning-types/types/model/model-property.d.ts +12 -0
  10. package/dist/src/arm/provisioning-types/types/model/model-property.d.ts.map +1 -1
  11. package/dist/src/arm/provisioning-types/types/model/model-property.js +41 -1
  12. package/dist/src/arm/provisioning-types/types/model/model-property.js.map +1 -1
  13. package/dist/src/arm/provisioning-types/types/namespace.d.ts +1 -2
  14. package/dist/src/arm/provisioning-types/types/namespace.d.ts.map +1 -1
  15. package/dist/src/arm/provisioning-types/types/namespace.js +3 -3
  16. package/dist/src/arm/provisioning-types/types/namespace.js.map +1 -1
  17. package/dist/src/arm/provisioning-types/types/resource.d.ts +21 -17
  18. package/dist/src/arm/provisioning-types/types/resource.d.ts.map +1 -1
  19. package/dist/src/arm/provisioning-types/types/resource.js +97 -50
  20. package/dist/src/arm/provisioning-types/types/resource.js.map +1 -1
  21. package/dist/src/arm/provisioning-types/types/type.d.ts +4 -0
  22. package/dist/src/arm/provisioning-types/types/type.d.ts.map +1 -1
  23. package/dist/src/arm/provisioning-types/types/type.js +27 -0
  24. package/dist/src/arm/provisioning-types/types/type.js.map +1 -1
  25. package/dist/src/arm/resource-analysis/analyzer.d.ts +2 -2
  26. package/dist/src/arm/resource-analysis/analyzer.js +12 -2
  27. package/dist/src/arm/resource-analysis/analyzer.js.map +1 -1
  28. package/dist/src/arm/resource-analysis/types.d.ts +5 -1
  29. package/dist/src/arm/resource-analysis/types.d.ts.map +1 -1
  30. package/dist/src/arm/resource-analysis/types.js +1 -1
  31. package/dist/src/arm/resource-analysis/types.js.map +1 -1
  32. package/dist/src/generation.d.ts.map +1 -1
  33. package/dist/src/generation.js +4 -3
  34. package/dist/src/generation.js.map +1 -1
  35. package/dist/src/lib.d.ts +10 -10
  36. package/dist/src/lib.d.ts.map +1 -1
  37. package/dist/src/lib.js +17 -9
  38. package/dist/src/lib.js.map +1 -1
  39. package/dist/src/renders/components/resource/naming-rules.d.ts.map +1 -1
  40. package/dist/src/renders/components/resource/naming-rules.js +2 -61
  41. package/dist/src/renders/components/resource/naming-rules.js.map +1 -1
  42. package/dist/src/renders/components/resource/resource-class.d.ts.map +1 -1
  43. package/dist/src/renders/components/resource/resource-class.js +2 -3
  44. package/dist/src/renders/components/resource/resource-class.js.map +1 -1
  45. package/dist/src/renders/components/resource/resource-constructor.d.ts +2 -3
  46. package/dist/src/renders/components/resource/resource-constructor.d.ts.map +1 -1
  47. package/dist/src/renders/components/resource/resource-constructor.js +17 -9
  48. package/dist/src/renders/components/resource/resource-constructor.js.map +1 -1
  49. package/dist/src/renders/components/type-rendering/type-renderer.d.ts +1 -1
  50. package/dist/src/renders/components/type-rendering/type-renderer.d.ts.map +1 -1
  51. package/dist/src/renders/components/type-rendering/type-renderer.js +7 -4
  52. package/dist/src/renders/components/type-rendering/type-renderer.js.map +1 -1
  53. package/dist/src/renders/provisioning-schema.d.ts +9 -2
  54. package/dist/src/renders/provisioning-schema.d.ts.map +1 -1
  55. package/dist/src/renders/provisioning-schema.js +25 -3
  56. package/dist/src/renders/provisioning-schema.js.map +1 -1
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +2 -2
@@ -1,22 +1,20 @@
1
1
  /**
2
- * Naming rules — abbreviation lookups and heuristics for deriving resource
3
- * naming constraints from an ARM type string and its TypeSpec model.
2
+ * Effective TypeSpec name constraints and automatic naming preferences.
4
3
  *
5
4
  * The rules are consumed by the library `ResourceNamingRules` system to generate
6
- * compliant resource names at deploy time.
5
+ * compliant resource names without rewriting explicit names.
7
6
  */
8
7
  import type { ResourceNamingRules } from "@azure/provisioning-core/internal";
9
- import type { Model } from "@typespec/compiler";
8
+ import type { PropertyConstraints } from "../provisioning-types/types/model/model-property.js";
9
+ import type { ResourceNamingRulesOverride } from "../../lib.js";
10
10
  /**
11
11
  * Known abbreviations for common Azure resource types.
12
12
  * Used by the naming heuristics when TypeSpec doesn't provide one.
13
13
  */
14
14
  export declare const RESOURCE_ABBREVIATIONS: ReadonlyMap<string, string>;
15
15
  /**
16
- * Derive naming rules for a resource from its ARM type and TypeSpec model.
17
- *
18
- * @param armType - Full ARM resource type (e.g., "Microsoft.Storage/storageAccounts").
19
- * @param model - The TypeSpec `Model` for the resource.
16
+ * Create naming rules from the selected property constraints and resource path.
17
+ * Apply naming preferences without overriding the source's validation constraints.
20
18
  */
21
- export declare function deriveNamingRules(armType: string, model: Model): ResourceNamingRules;
19
+ export declare function createNamingRules(armType: string, constraints: PropertyConstraints, nameSegments: number | undefined, override: ResourceNamingRulesOverride | undefined, diagnosticTarget: unknown): ResourceNamingRules;
22
20
  //# sourceMappingURL=naming-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"naming-rules.d.ts","sourceRoot":"","sources":["../../../../src/arm/naming/naming-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,oBAAoB,CAAC;AAM/D;;;GAGG;AAEH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAwB7D,CAAC;AAMH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GACX,mBAAmB,CAiBrB"}
1
+ {"version":3,"file":"naming-rules.d.ts","sourceRoot":"","sources":["../../../../src/arm/naming/naming-rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAOhE;;;GAGG;AAEH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAwB7D,CAAC;AAMH;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,mBAAmB,EAChC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,2BAA2B,GAAG,SAAS,EACjD,gBAAgB,EAAE,OAAO,GACxB,mBAAmB,CA2CrB"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Naming rules — abbreviation lookups and heuristics for deriving resource
3
- * naming constraints from an ARM type string and its TypeSpec model.
2
+ * Effective TypeSpec name constraints and automatic naming preferences.
4
3
  *
5
4
  * The rules are consumed by the library `ResourceNamingRules` system to generate
6
- * compliant resource names at deploy time.
5
+ * compliant resource names without rewriting explicit names.
7
6
  */
8
7
 
8
+ import { logger } from "../../log/log.js";
9
+
9
10
  // ---------------------------------------------------------------------------
10
11
  // Abbreviation lookup
11
12
  // ---------------------------------------------------------------------------
@@ -22,29 +23,51 @@ export const RESOURCE_ABBREVIATIONS = new Map([["Microsoft.KeyVault/vaults", "kv
22
23
  // ---------------------------------------------------------------------------
23
24
 
24
25
  /**
25
- * Derive naming rules for a resource from its ARM type and TypeSpec model.
26
- *
27
- * @param armType - Full ARM resource type (e.g., "Microsoft.Storage/storageAccounts").
28
- * @param model - The TypeSpec `Model` for the resource.
26
+ * Create naming rules from the selected property constraints and resource path.
27
+ * Apply naming preferences without overriding the source's validation constraints.
29
28
  */
30
- export function deriveNamingRules(armType, model) {
31
- // Abbreviation lookup
29
+ export function createNamingRules(armType, constraints, nameSegments, override, diagnosticTarget) {
32
30
  const knownAbbr = RESOURCE_ABBREVIATIONS.get(armType);
33
- const abbreviation = knownAbbr ?? guessAbbreviation(armType);
34
-
35
- // Try to extract constraints from the model's `name` property
36
- const nameProp = model.properties.get("name");
31
+ const abbreviation = override?.abbreviation ?? knownAbbr ?? guessAbbreviation(armType);
37
32
  const {
38
33
  minLength,
39
- maxLength
40
- } = extractLengthConstraints(nameProp);
41
- const validCharacters = extractValidCharacters(nameProp);
34
+ maxLength,
35
+ pattern
36
+ } = constraints;
37
+ if (minLength !== undefined && maxLength !== undefined && minLength > maxLength) {
38
+ throw logger.createDiagnosticError([{
39
+ code: "@azure-tools/typespec-ts-provisioning/conflicting-name-constraints",
40
+ severity: "error",
41
+ message: `Resource '${armType}' has contradictory name constraints.`,
42
+ target: diagnosticTarget
43
+ }]);
44
+ }
45
+ if (minLength === undefined && maxLength === undefined && pattern === undefined) {
46
+ logger.diagnostic({
47
+ code: "@azure-tools/typespec-ts-provisioning/missing-name-constraints",
48
+ severity: "warning",
49
+ message: `Resource '${armType}' declares no name constraints in TypeSpec. Naming conventions cannot guarantee Azure-side validity.`,
50
+ target: diagnosticTarget
51
+ });
52
+ }
42
53
  return {
43
54
  abbreviation,
44
- minLength,
45
- maxLength,
46
- validCharacters,
47
- scope: "global" // Conservative default
55
+ ...(minLength !== undefined ? {
56
+ minLength
57
+ } : {}),
58
+ ...(maxLength !== undefined ? {
59
+ maxLength
60
+ } : {}),
61
+ ...(pattern !== undefined ? {
62
+ pattern
63
+ } : {}),
64
+ ...(nameSegments !== undefined ? {
65
+ nameSegments
66
+ } : {}),
67
+ scope: override?.scope ?? (armType.split("/").length > 2 ? "parent" : "global"),
68
+ ...(override?.separator !== undefined ? {
69
+ separator: override.separator
70
+ } : {})
48
71
  };
49
72
  }
50
73
 
@@ -73,105 +96,4 @@ function guessAbbreviation(armType) {
73
96
  const words = lastSegment.replace(/([a-z])([A-Z])/g, "$1 $2").split(/\s+/);
74
97
  return words.map(w => w.charAt(0).toLowerCase()).join("");
75
98
  }
76
-
77
- // ---------------------------------------------------------------------------
78
- // TypeSpec model introspection helpers
79
- // ---------------------------------------------------------------------------
80
-
81
- // ---------------------------------------------------------------------------
82
- // Length constraints
83
- // ---------------------------------------------------------------------------
84
-
85
- function extractLengthConstraints(prop) {
86
- let minLength = 1;
87
- let maxLength = 24;
88
- if (!prop) return {
89
- minLength,
90
- maxLength
91
- };
92
- for (const dec of prop.decorators ?? []) {
93
- const decName = dec.definition?.name ?? dec.decorator?.name ?? "";
94
- if (decName.includes("minLength") || decName.includes("$minLength")) {
95
- const val = dec.args[0]?.jsValue;
96
- if (typeof val === "number") {
97
- minLength = val;
98
- } else if (typeof val === "object" && val !== null && "value" in val) {
99
- minLength = Number(val.value);
100
- }
101
- }
102
- if (decName.includes("maxLength") || decName.includes("$maxLength")) {
103
- const val = dec.args[0]?.jsValue;
104
- if (typeof val === "number") {
105
- maxLength = val;
106
- } else if (typeof val === "object" && val !== null && "value" in val) {
107
- maxLength = Number(val.value);
108
- }
109
- }
110
- }
111
- return {
112
- minLength,
113
- maxLength
114
- };
115
- }
116
-
117
- // ---------------------------------------------------------------------------
118
- // Valid characters (pattern regex analysis)
119
- // ---------------------------------------------------------------------------
120
-
121
- /**
122
- * Derive which character classes are allowed in a resource name by analysing
123
- * the `@pattern` decorator on the `name` property.
124
- *
125
- * Common ARM patterns:
126
- * `^[a-zA-Z0-9-]+$` → uppercase ✓, hyphens ✓
127
- * `^[a-z0-9]+$` → lowercase-only, no specials
128
- * `^[a-zA-Z0-9-._]+$` → uppercase ✓, hyphens ✓, underscores ✓, periods ✓
129
- *
130
- * When no pattern is found, we return a conservative default that allows
131
- * uppercase and hyphens (matches most ARM resources).
132
- */
133
- function extractValidCharacters(prop) {
134
- const defaults = {
135
- uppercase: true,
136
- hyphens: true,
137
- underscores: false,
138
- periods: false
139
- };
140
- if (!prop) return defaults;
141
-
142
- // Find the @pattern decorator
143
- let patternValue;
144
- for (const dec of prop.decorators ?? []) {
145
- const decName = dec.definition?.name ?? dec.decorator?.name ?? "";
146
- if (decName.includes("pattern") || decName.includes("$pattern")) {
147
- const val = dec.args[0]?.jsValue;
148
- if (typeof val === "string") {
149
- patternValue = val;
150
- } else {
151
- const raw = dec.args[0]?.value;
152
- if (typeof raw === "object" && raw !== null && "value" in raw) {
153
- patternValue = String(raw.value);
154
- }
155
- }
156
- }
157
- }
158
- if (!patternValue) return defaults;
159
- return analyzePattern(patternValue);
160
- }
161
-
162
- /**
163
- * Analyze a regex pattern string and determine which character classes
164
- * are allowed.
165
- */
166
- function analyzePattern(pattern) {
167
- // Look for character class contents inside brackets [...]
168
- const charClassMatch = pattern.match(/\[([^\]]+)\]/);
169
- const charClass = charClassMatch?.[1] ?? pattern;
170
- return {
171
- uppercase: /A-Z/.test(charClass),
172
- hyphens: charClass.includes("-") && !charClass.endsWith("-"),
173
- underscores: charClass.includes("_"),
174
- periods: charClass.includes(".") || charClass.includes("\\.")
175
- };
176
- }
177
99
  //# sourceMappingURL=naming-rules.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RESOURCE_ABBREVIATIONS","Map","deriveNamingRules","armType","model","knownAbbr","get","abbreviation","guessAbbreviation","nameProp","properties","minLength","maxLength","extractLengthConstraints","validCharacters","extractValidCharacters","scope","withoutProvider","replace","segments","split","lastSegment","length","words","map","w","charAt","toLowerCase","join","prop","dec","decorators","decName","definition","name","decorator","includes","val","args","jsValue","Number","value","defaults","uppercase","hyphens","underscores","periods","patternValue","raw","String","analyzePattern","pattern","charClassMatch","match","charClass","test","endsWith"],"sources":["../../../../src/arm/naming/naming-rules.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["logger","RESOURCE_ABBREVIATIONS","Map","createNamingRules","armType","constraints","nameSegments","override","diagnosticTarget","knownAbbr","get","abbreviation","guessAbbreviation","minLength","maxLength","pattern","undefined","createDiagnosticError","code","severity","message","target","diagnostic","scope","split","length","separator","withoutProvider","replace","segments","lastSegment","words","map","w","charAt","toLowerCase","join"],"sources":["../../../../src/arm/naming/naming-rules.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -2,8 +2,11 @@ import type { ValueEncodingDescriptor } from "@azure/provisioning-core/internal"
2
2
  import { type Model, type ModelProperty, type Program, type Scalar, type Type } from "@typespec/compiler";
3
3
  import { type PropertyUsageMap } from "../resource-analysis/types.js";
4
4
  import type { ClientName } from "../naming/name-resolvable.js";
5
+ import type { ResourceNamingRulesOverride, ResourceOverride } from "../../lib.js";
5
6
  export interface ProvisioningTransformOptions {
6
7
  readonly scope: string;
8
+ /** Resource-specific class names and naming preferences keyed by ARM type. */
9
+ readonly resourceOverrides?: readonly ResourceOverride[];
7
10
  readonly clientName?: boolean;
8
11
  /** Exclude properties marked internal by @access in the selected scope. */
9
12
  readonly filterInternalProperties?: boolean;
@@ -39,13 +42,21 @@ export interface TransformedProperty {
39
42
  /** Source requiredness before pairing and read-only/resource overlays. */
40
43
  readonly isRequired: boolean;
41
44
  }
42
- /** Per-build source metadata transformations with prepared anonymous-model names. */
45
+ export interface TransformedResource {
46
+ /** Configured TypeScript class name, independent of the deployed resource name. */
47
+ readonly className: ClientName | undefined;
48
+ /** Configured naming preferences, excluding source constraints and defaults. */
49
+ readonly namingRules: ResourceNamingRulesOverride | undefined;
50
+ }
51
+ /** Per-build metadata and source-property transformations. */
43
52
  export declare class ProvisioningTransformer {
44
53
  #private;
45
54
  readonly program: Program;
46
55
  constructor(program: Program, options?: ProvisioningTransformOptions, propertyUsage?: PropertyUsageMap);
47
56
  transformModel(model: Model): TransformedModel;
48
57
  transformProperty(property: ModelProperty): TransformedProperty;
58
+ /** Select configured resource metadata by ARM type. */
59
+ transformResource(armType: string): TransformedResource;
49
60
  /** Resolve only after property inclusion and primary/write selection. */
50
61
  getPropertyEncoding(property: ModelProperty): ValueEncodingDescriptor | undefined;
51
62
  /** Resolve scalar encoding when a container or union reaches the scalar. */
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../src/arm/provisioning-types/transformer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EACL,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EAGV,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,qFAAqF;AACrF,qBAAa,uBAAuB;;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAkBxB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,4BAA4B,EACtC,aAAa,CAAC,EAAE,gBAAgB;IAgGlC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB;IAsB9C,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,mBAAmB;IAsC/D,yEAAyE;IACzE,mBAAmB,CACjB,QAAQ,EAAE,aAAa,GACtB,uBAAuB,GAAG,SAAS;IAiBtC,4EAA4E;IAC5E,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAiEvE"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../src/arm/provisioning-types/transformer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EACL,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EAGV,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EACV,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,WAAW,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAC/D;AAED,8DAA8D;AAC9D,qBAAa,uBAAuB;;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAmBxB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,4BAA4B,EACtC,aAAa,CAAC,EAAE,gBAAgB;IA2GlC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB;IAsB9C,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,mBAAmB;IAsC/D,uDAAuD;IACvD,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB;IAUvD,yEAAyE;IACzE,mBAAmB,CACjB,QAAQ,EAAE,aAAa,GACtB,uBAAuB,GAAG,SAAS;IAiBtC,4EAA4E;IAC5E,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAiEvE"}
@@ -5,12 +5,13 @@ import { isVisible, Visibility } from "@typespec/http";
5
5
  import { getPropertyEncodingDescriptor, getScalarEncodingDescriptor } from "./encoding.js";
6
6
  import { PropertyUsageFlags } from "../resource-analysis/types.js";
7
7
  import { logger } from "../../log/log.js";
8
- /** Per-build source metadata transformations with prepared anonymous-model names. */
8
+ /** Per-build metadata and source-property transformations. */
9
9
  export class ProvisioningTransformer {
10
10
  #typekit;
11
11
  #options;
12
12
  #tcgcContext;
13
13
  #propertyUsage;
14
+ #resourceOverrides;
14
15
  #models = new WeakMap();
15
16
  #namesForAnonymous;
16
17
  #properties = new WeakMap();
@@ -25,6 +26,14 @@ export class ProvisioningTransformer {
25
26
  })
26
27
  });
27
28
  this.#propertyUsage = new Map(propertyUsage);
29
+ this.#resourceOverrides = new Map(options?.resourceOverrides?.map(override => [override.resourceType, Object.freeze({
30
+ ...override,
31
+ ...(override.namingRules ? {
32
+ namingRules: Object.freeze({
33
+ ...override.namingRules
34
+ })
35
+ } : {})
36
+ })]));
28
37
  if ((this.#options.clientName || this.#options.filterInternalProperties || this.#options.clientDefaultValue || this.#options.clientDoc || this.#options.alternateType || this.#options.flattenProperty) && this.#options.scope) {
29
38
  // Intentionally use the decorator scope, not our emitter package name.
30
39
  // TCGC uses context.emitterName as its lookup scope, but the factory
@@ -134,6 +143,18 @@ export class ProvisioningTransformer {
134
143
  return result;
135
144
  }
136
145
 
146
+ /** Select configured resource metadata by ARM type. */
147
+ transformResource(armType) {
148
+ const override = this.#resourceOverrides.get(armType);
149
+ return Object.freeze({
150
+ className: override?.className ? Object.freeze({
151
+ name: override.className,
152
+ isExactName: false
153
+ }) : undefined,
154
+ namingRules: override?.namingRules
155
+ });
156
+ }
157
+
137
158
  /** Resolve only after property inclusion and primary/write selection. */
138
159
  getPropertyEncoding(property) {
139
160
  if (!this.#propertyEncodings.has(property)) {
@@ -1 +1 @@
1
- {"version":3,"names":["createTCGCContext","getAccessOverride","getAlternateType","getClientDefaultValue","getClientDocExplicit","getClientNameOverride","normalizeExactName","extractExactness","shouldFlattenProperty","navigateProgram","resolveEncodedName","$","createTypekit","isVisible","Visibility","getPropertyEncodingDescriptor","getScalarEncodingDescriptor","PropertyUsageFlags","logger","ProvisioningTransformer","typekit","options","tcgcContext","propertyUsage","models","WeakMap","namesForAnonymous","properties","propertyEncodings","scalarEncodings","constructor","program","Object","freeze","scope","Map","clientName","filterInternalProperties","clientDefaultValue","clientDoc","alternateType","flattenProperty","emitterName","initializeNamesForAnonymous","undefined","keys","#initializeNamesForAnonymous","names","visitedProperties","Set","visitProperty","property","has","add","isExcluded","name","charAt","toUpperCase","slice","visitType","type","visiting","kind","indexer","value","current","get","set","values","baseModel","variant","variants","memberName","forEach","index","delete","modelProperty","union","transformModel","model","result","override","declaredName","Error","isExactName","isGeneratedAnonymousName","transformProperty","isReadOnly","isWritable","clientDefault","hasClientDefault","defaultValue","armName","documentation","isRequired","optional","getPropertyEncoding","freezeEncoding","getScalarEncoding","scalar","#clientName","source","legacyExactPrefix","decoded","startsWith","length","trim","createDiagnosticError","code","severity","message","target","#isWritable","usage","Input","Create","Update","#isExcluded","#alternateType","encoding","wire"],"sources":["../../../../src/arm/provisioning-types/transformer.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,iBAAiB,EACjBC,iBAAiB,EACjBC,gBAAgB,EAChBC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,kBAAkB,IAAIC,gBAAgB,EACtCC,qBAAqB,QAEhB,6CAA6C;AAEpD,SAMEC,eAAe,EACfC,kBAAkB,QACb,oBAAoB;AAE3B,SAASC,CAAC,IAAIC,aAAa,QAAsB,4BAA4B;AAC7E,SAASC,SAAS,EAAEC,UAAU,QAAQ,gBAAgB;AACtD,SACEC,6BAA6B,EAC7BC,2BAA2B,QACtB,eAAe;AACtB,SACEC,kBAAkB,QAEb,+BAA+B;AAEtC,SAASC,MAAM,QAAQ,kBAAkB;AA0CzC;AACA,OAAO,MAAMC,uBAAuB,CAAC;EAE1B,CAACC,OAAO;EACR,CAACC,OAAO;EACR,CAACC,WAAW;EACZ,CAACC,aAAa;EACd,CAACC,MAAM,GAAG,IAAIC,OAAO,CAA0B,CAAC;EAChD,CAACC,iBAAiB;EAClB,CAACC,UAAU,GAAG,IAAIF,OAAO,CAAqC,CAAC;EAC/D,CAACG,iBAAiB,GAAG,IAAIH,OAAO,CAGvC,CAAC;EACM,CAACI,eAAe,GAAG,IAAIJ,OAAO,CAGrC,CAAC;EAEHK,WAAWA,CACTC,OAAgB,EAChBV,OAAsC,EACtCE,aAAgC,EAChC;IACA,IAAI,CAACQ,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC,CAACX,OAAO,GAAGR,aAAa,CAACmB,OAAO,CAAC;IACtC,IAAI,CAAC,CAACV,OAAO,GAAGW,MAAM,CAACC,MAAM,CAAC;MAAE,IAAIZ,OAAO,IAAI;QAAEa,KAAK,EAAE;MAAG,CAAC;IAAE,CAAC,CAAC;IAChE,IAAI,CAAC,CAACX,aAAa,GAAG,IAAIY,GAAG,CAACZ,aAAa,CAAC;IAC5C,IACE,CAAC,IAAI,CAAC,CAACF,OAAO,CAACe,UAAU,IACvB,IAAI,CAAC,CAACf,OAAO,CAACgB,wBAAwB,IACtC,IAAI,CAAC,CAAChB,OAAO,CAACiB,kBAAkB,IAChC,IAAI,CAAC,CAACjB,OAAO,CAACkB,SAAS,IACvB,IAAI,CAAC,CAAClB,OAAO,CAACmB,aAAa,IAC3B,IAAI,CAAC,CAACnB,OAAO,CAACoB,eAAe,KAC/B,IAAI,CAAC,CAACpB,OAAO,CAACa,KAAK,EACnB;MACA;MACA;MACA;MACA,IAAI,CAAC,CAACZ,WAAW,GAAGtB,iBAAiB,CAAC+B,OAAO,EAAE,IAAI,CAAC,CAACV,OAAO,CAACa,KAAK,CAAC;MACnE,IAAI,CAAC,CAACZ,WAAW,CAACoB,WAAW,GAAG,IAAI,CAAC,CAACrB,OAAO,CAACa,KAAK;IACrD;IACA,IAAI,CAAC,CAACR,iBAAiB,GAAG,IAAI,CAAC,CAACiB,2BAA2B,CACzDpB,aAAa,KAAKqB,SAAS,GAAGA,SAAS,GAAG,IAAI,CAAC,CAACrB,aAAa,CAACsB,IAAI,CAAC,CACrE,CAAC;EACH;EAEA,CAACF,2BAA2BG,CAC1BnB,UAA+C,EACnB;IAC5B,MAAMoB,KAAK,GAAG,IAAIZ,GAAG,CAAgB,CAAC;IACtC,MAAMa,iBAAiB,GAAG,IAAIC,GAAG,CAAgB,CAAC;IAClD,MAAMC,aAAa,GAAIC,QAAuB,IAAW;MACvD,IAAIH,iBAAiB,CAACI,GAAG,CAACD,QAAQ,CAAC,EAAE;MACrCH,iBAAiB,CAACK,GAAG,CAACF,QAAQ,CAAC;MAC/B,IAAI,IAAI,CAAC,CAACG,UAAU,CAACH,QAAQ,CAAC,EAAE;MAChC,MAAMf,UAAU,GAAG,IAAI,CAAC,CAACA,UAAU,CAACe,QAAQ,CAAC,EAAEI,IAAI,IAAIJ,QAAQ,CAACI,IAAI;MACpE,MAAMA,IAAI,GAAGnB,UAAU,CAACoB,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGrB,UAAU,CAACsB,KAAK,CAAC,CAAC,CAAC;MACrEC,SAAS,CACP,IAAI,CAAC,CAACnB,aAAa,CAACW,QAAQ,CAAC,IAAIA,QAAQ,CAACS,IAAI,EAC9CL,IAAI,EACJ,IAAIN,GAAG,CAAC,CACV,CAAC;IACH,CAAC;IACD,MAAMU,SAAS,GAAGA,CAACC,IAAU,EAAEL,IAAY,EAAEM,QAAmB,KAAW;MACzE,IAAIA,QAAQ,CAACT,GAAG,CAACQ,IAAI,CAAC,EAAE;MACxBC,QAAQ,CAACR,GAAG,CAACO,IAAI,CAAC;MAClB,QAAQA,IAAI,CAACE,IAAI;QACf,KAAK,OAAO;UACV,IACE,CAACF,IAAI,CAACL,IAAI,KAAK,OAAO,IAAIK,IAAI,CAACL,IAAI,KAAK,QAAQ,KAChDK,IAAI,CAACG,OAAO,EACZ;YACAJ,SAAS,CAACC,IAAI,CAACG,OAAO,CAACC,KAAK,EAAET,IAAI,EAAEM,QAAQ,CAAC;YAC7C;UACF;UACA,IAAI,CAACD,IAAI,CAACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAACnB,UAAU,CAACwB,IAAI,CAAC,IAAIL,IAAI,EAAE;YACjD,MAAMU,OAAO,GAAGlB,KAAK,CAACmB,GAAG,CAACN,IAAI,CAAC;YAC/B,IAAIK,OAAO,KAAKrB,SAAS,IAAIW,IAAI,GAAGU,OAAO,EAAElB,KAAK,CAACoB,GAAG,CAACP,IAAI,EAAEL,IAAI,CAAC;UACpE;UACA,KAAK,MAAMJ,QAAQ,IAAIS,IAAI,CAACjC,UAAU,CAACyC,MAAM,CAAC,CAAC,EAC7ClB,aAAa,CAACC,QAAQ,CAAC;UACzB,IAAIS,IAAI,CAACS,SAAS,EAAEV,SAAS,CAACC,IAAI,CAACS,SAAS,EAAE,EAAE,EAAER,QAAQ,CAAC;UAC3D;QACF,KAAK,OAAO;UACV,KAAK,MAAMS,OAAO,IAAIV,IAAI,CAACW,QAAQ,CAACH,MAAM,CAAC,CAAC,EAAE;YAC5C,MAAMI,UAAU,GACd,OAAOF,OAAO,CAACf,IAAI,KAAK,QAAQ,GAC5Be,OAAO,CAACf,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGa,OAAO,CAACf,IAAI,CAACG,KAAK,CAAC,CAAC,CAAC,GAC5D,EAAE;YACRC,SAAS,CAACW,OAAO,CAACV,IAAI,EAAE,GAAGL,IAAI,GAAGiB,UAAU,EAAE,EAAEX,QAAQ,CAAC;UAC3D;UACA;QACF,KAAK,cAAc;UACjBF,SAAS,CAACC,IAAI,CAACA,IAAI,EAAEL,IAAI,EAAEM,QAAQ,CAAC;UACpC;QACF,KAAK,OAAO;UACVD,IAAI,CAACQ,MAAM,CAACK,OAAO,CAAC,CAACT,KAAK,EAAEU,KAAK,KAC/Bf,SAAS,CAACK,KAAK,EAAE,GAAGT,IAAI,GAAGmB,KAAK,GAAG,CAAC,EAAE,EAAEb,QAAQ,CAClD,CAAC;UACD;MACJ;MACAA,QAAQ,CAACc,MAAM,CAACf,IAAI,CAAC;IACvB,CAAC;IACD,IAAIjC,UAAU,KAAKiB,SAAS,EAAE;MAC5B,KAAK,MAAMO,QAAQ,IAAIxB,UAAU,EAAEuB,aAAa,CAACC,QAAQ,CAAC;IAC5D,CAAC,MAAM;MACL1C,eAAe,CAAC,IAAI,CAACsB,OAAO,EAAE;QAC5B6C,aAAa,EAAE1B,aAAa;QAC5B2B,KAAK,EAAGA,KAAK,IAAK;UAChB,IAAIA,KAAK,CAACtB,IAAI,EAAEI,SAAS,CAACkB,KAAK,EAAEA,KAAK,CAACtB,IAAI,EAAE,IAAIN,GAAG,CAAC,CAAC,CAAC;QACzD;MACF,CAAC,CAAC;IACJ;IACA,OAAOF,KAAK;EACd;EAEA+B,cAAcA,CAACC,KAAY,EAAoB;IAC7C,IAAIC,MAAM,GAAG,IAAI,CAAC,CAACxD,MAAM,CAAC0C,GAAG,CAACa,KAAK,CAAC;IACpC,IAAI,CAACC,MAAM,EAAE;MACX,MAAMC,QAAQ,GAAG,IAAI,CAAC,CAAC7C,UAAU,CAAC2C,KAAK,CAAC;MACxC,MAAMG,YAAY,GAAGD,QAAQ,EAAE1B,IAAI,IAAIwB,KAAK,CAACxB,IAAI;MACjD,MAAMnB,UAAU,GAAG8C,YAAY,IAAI,IAAI,CAAC,CAACxD,iBAAiB,CAACwC,GAAG,CAACa,KAAK,CAAC;MACrE,IAAI,CAAC3C,UAAU,EAAE;QACf,MAAM,IAAI+C,KAAK,CACb,qEACF,CAAC;MACH;MACAH,MAAM,GAAGhD,MAAM,CAACC,MAAM,CAAC;QACrBG,UAAU,EAAEJ,MAAM,CAACC,MAAM,CACvBgD,QAAQ,IAAI;UAAE1B,IAAI,EAAEnB,UAAU;UAAEgD,WAAW,EAAE;QAAM,CACrD,CAAC;QACDC,wBAAwB,EAAE,CAACH;MAC7B,CAAC,CAAC;MACF,IAAI,CAAC,CAAC1D,MAAM,CAAC2C,GAAG,CAACY,KAAK,EAAEC,MAAM,CAAC;IACjC;IACA,OAAOA,MAAM;EACf;EAEAM,iBAAiBA,CAACnC,QAAuB,EAAuB;IAC9D,IAAI6B,MAAM,GAAG,IAAI,CAAC,CAACrD,UAAU,CAACuC,GAAG,CAACf,QAAQ,CAAC;IAC3C,IAAI,CAAC6B,MAAM,EAAE;MACX,MAAMO,UAAU,GAAG,CAAC,IAAI,CAAC,CAACC,UAAU,CAACrC,QAAQ,CAAC;MAC9C,MAAMsC,aAAa,GACjB,IAAI,CAAC,CAACpE,OAAO,CAACiB,kBAAkB,IAAI,IAAI,CAAC,CAAChB,WAAW,GACjDnB,qBAAqB,CAAC,IAAI,CAAC,CAACmB,WAAW,EAAE6B,QAAQ,CAAC,GAClDP,SAAS;MACf,MAAM8C,gBAAgB,GACpBvC,QAAQ,CAACwC,YAAY,KAAK/C,SAAS,IAAI6C,aAAa,KAAK7C,SAAS;MACpE,MAAMqC,QAAQ,GAAG,IAAI,CAAC,CAAC7C,UAAU,CAACe,QAAQ,CAAC;MAC3C6B,MAAM,GAAGhD,MAAM,CAACC,MAAM,CAAC;QACrBG,UAAU,EAAEJ,MAAM,CAACC,MAAM,CACvBgD,QAAQ,IAAI;UAAE1B,IAAI,EAAEJ,QAAQ,CAACI,IAAI;UAAE6B,WAAW,EAAE;QAAM,CACxD,CAAC;QACDQ,OAAO,EACLlF,kBAAkB,CAAC,IAAI,CAACqB,OAAO,EAAEoB,QAAQ,EAAE,kBAAkB,CAAC,IAC9DA,QAAQ,CAACI,IAAI;QACff,aAAa,EAAE,IAAI,CAAC,CAACA,aAAa,CAACW,QAAQ,CAAC;QAC5CV,eAAe,EAAE,CAAC,EAChB,IAAI,CAAC,CAACpB,OAAO,CAACoB,eAAe,IAC7B,IAAI,CAAC,CAACnB,WAAW,IACjBd,qBAAqB,CAAC,IAAI,CAAC,CAACc,WAAW,EAAE6B,QAAQ,CAAC,CACnD;QACDZ,SAAS,EACP,IAAI,CAAC,CAAClB,OAAO,CAACkB,SAAS,IAAI,IAAI,CAAC,CAACjB,WAAW,GACxClB,oBAAoB,CAAC,IAAI,CAAC,CAACkB,WAAW,EAAE6B,QAAQ,CAAC,EAAE0C,aAAa,GAChEjD,SAAS;QACf2C,UAAU;QACVjC,UAAU,EAAE,IAAI,CAAC,CAACA,UAAU,CAACH,QAAQ,CAAC;QACtCuC,gBAAgB;QAChBI,UAAU,EAAE,CAAC3C,QAAQ,CAAC4C,QAAQ,IAAI,CAACL;MACrC,CAAC,CAAC;MACF,IAAI,CAAC,CAAC/D,UAAU,CAACwC,GAAG,CAAChB,QAAQ,EAAE6B,MAAM,CAAC;IACxC;IACA,OAAOA,MAAM;EACf;;EAEA;EACAgB,mBAAmBA,CACjB7C,QAAuB,EACc;IACrC,IAAI,CAAC,IAAI,CAAC,CAACvB,iBAAiB,CAACwB,GAAG,CAACD,QAAQ,CAAC,EAAE;MAC1C,MAAM;QAAEX;MAAc,CAAC,GAAG,IAAI,CAAC8C,iBAAiB,CAACnC,QAAQ,CAAC;MAC1D,IAAI,CAAC,CAACvB,iBAAiB,CAACuC,GAAG,CACzBhB,QAAQ,EACR8C,cAAc,CACZlF,6BAA6B,CAC3B,IAAI,CAAC,CAACK,OAAO,EACb+B,QAAQ,EACRX,aAAa,IAAIW,QAAQ,CAACS,IAC5B,CACF,CACF,CAAC;IACH;IACA,OAAO,IAAI,CAAC,CAAChC,iBAAiB,CAACsC,GAAG,CAACf,QAAQ,CAAC;EAC9C;;EAEA;EACA+C,iBAAiBA,CAACC,MAAc,EAAuC;IACrE,IAAI,CAAC,IAAI,CAAC,CAACtE,eAAe,CAACuB,GAAG,CAAC+C,MAAM,CAAC,EAAE;MACtC,IAAI,CAAC,CAACtE,eAAe,CAACsC,GAAG,CACvBgC,MAAM,EACNF,cAAc,CAACjF,2BAA2B,CAAC,IAAI,CAAC,CAACI,OAAO,EAAE+E,MAAM,CAAC,CACnE,CAAC;IACH;IACA,OAAO,IAAI,CAAC,CAACtE,eAAe,CAACqC,GAAG,CAACiC,MAAM,CAAC;EAC1C;EAEA,CAAC/D,UAAUgE,CAACC,MAA6B,EAA0B;IACjE,IAAI,CAAC,IAAI,CAAC,CAAChF,OAAO,CAACe,UAAU,IAAI,CAAC,IAAI,CAAC,CAACd,WAAW,EAAE,OAAOsB,SAAS;IACrE,MAAMW,IAAI,GAAGlD,qBAAqB,CAChC,IAAI,CAAC,CAACiB,WAAW,EACjB+E,MAAM,EACN,IAAI,CAAC,CAAChF,OAAO,CAACa,KAChB,CAAC;IACD,IAAIqB,IAAI,KAAKX,SAAS,EAAE,OAAOA,SAAS;IACxC;IACA,MAAM0D,iBAAiB,GAAG,oBAAoB;IAC9C,MAAMC,OAAO,GAAGhD,IAAI,CAACiD,UAAU,CAACF,iBAAiB,CAAC,GAC9C;MAAE/C,IAAI,EAAEA,IAAI,CAACG,KAAK,CAAC4C,iBAAiB,CAACG,MAAM,CAAC;MAAErB,WAAW,EAAE;IAAK,CAAC,GACjE7E,gBAAgB,CAACgD,IAAI,CAAC;IAC1B,IAAIgD,OAAO,CAAChD,IAAI,CAACmD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;MAC9B,MAAMxF,MAAM,CAACyF,qBAAqB,CAAC,CACjC;QACEC,IAAI,EAAE,2DAA2D;QACjEC,QAAQ,EAAE,OAAO;QACjBC,OAAO,EAAE,uDAAuD;QAChEC,MAAM,EAAEV;MACV,CAAC,CACF,CAAC;IACJ;IACA,OAAOE,OAAO;EAChB;EAEA,CAACf,UAAUwB,CAAC7D,QAAuB,EAAW;IAC5C,MAAM8D,KAAK,GAAG,IAAI,CAAC,CAAC1F,aAAa,CAAC2C,GAAG,CAACf,QAAQ,CAAC;IAC/C,IAAI8D,KAAK,KAAKrE,SAAS,EAAE,OAAO,CAACqE,KAAK,GAAGhG,kBAAkB,CAACiG,KAAK,MAAM,CAAC;IACxE;IACA;IACA;IACA,OACErG,SAAS,CAAC,IAAI,CAACkB,OAAO,EAAEoB,QAAQ,EAAErC,UAAU,CAACqG,MAAM,CAAC,IACpDtG,SAAS,CAAC,IAAI,CAACkB,OAAO,EAAEoB,QAAQ,EAAErC,UAAU,CAACsG,MAAM,CAAC;EAExD;EAEA,CAAC9D,UAAU+D,CAAClE,QAAuB,EAAW;IAC5C,OAAO,CAAC,EACN,IAAI,CAAC,CAAC9B,OAAO,CAACgB,wBAAwB,IACtC,IAAI,CAAC,CAACf,WAAW,IACjBrB,iBAAiB,CAAC,IAAI,CAAC,CAACqB,WAAW,EAAE6B,QAAQ,CAAC,KAAK,UAAU,CAC9D;EACH;EAEA,CAACX,aAAa8E,CAACnE,QAAuB,EAAoB;IACxD,MAAMX,aAAa,GACjB,IAAI,CAAC,CAACnB,OAAO,CAACmB,aAAa,IAAI,IAAI,CAAC,CAAClB,WAAW,GAC5CpB,gBAAgB,CAAC,IAAI,CAAC,CAACoB,WAAW,EAAE6B,QAAQ,CAAC,GAC7CP,SAAS;IACf,OAAOJ,aAAa,EAAEsB,IAAI,KAAK,kBAAkB,GAC7ClB,SAAS,GACTJ,aAAa;EACnB;AACF;AAEA,SAASyD,cAAcA,CACrBsB,QAA6C,EACR;EACrC,IAAIA,QAAQ,EAAE;IACZvF,MAAM,CAACC,MAAM,CAACsF,QAAQ,CAACC,IAAI,CAAC;IAC5BxF,MAAM,CAACC,MAAM,CAACsF,QAAQ,CAAC;EACzB;EACA,OAAOA,QAAQ;AACjB","ignoreList":[]}
1
+ {"version":3,"names":["createTCGCContext","getAccessOverride","getAlternateType","getClientDefaultValue","getClientDocExplicit","getClientNameOverride","normalizeExactName","extractExactness","shouldFlattenProperty","navigateProgram","resolveEncodedName","$","createTypekit","isVisible","Visibility","getPropertyEncodingDescriptor","getScalarEncodingDescriptor","PropertyUsageFlags","logger","ProvisioningTransformer","typekit","options","tcgcContext","propertyUsage","resourceOverrides","models","WeakMap","namesForAnonymous","properties","propertyEncodings","scalarEncodings","constructor","program","Object","freeze","scope","Map","map","override","resourceType","namingRules","clientName","filterInternalProperties","clientDefaultValue","clientDoc","alternateType","flattenProperty","emitterName","initializeNamesForAnonymous","undefined","keys","#initializeNamesForAnonymous","names","visitedProperties","Set","visitProperty","property","has","add","isExcluded","name","charAt","toUpperCase","slice","visitType","type","visiting","kind","indexer","value","current","get","set","values","baseModel","variant","variants","memberName","forEach","index","delete","modelProperty","union","transformModel","model","result","declaredName","Error","isExactName","isGeneratedAnonymousName","transformProperty","isReadOnly","isWritable","clientDefault","hasClientDefault","defaultValue","armName","documentation","isRequired","optional","transformResource","armType","className","getPropertyEncoding","freezeEncoding","getScalarEncoding","scalar","#clientName","source","legacyExactPrefix","decoded","startsWith","length","trim","createDiagnosticError","code","severity","message","target","#isWritable","usage","Input","Create","Update","#isExcluded","#alternateType","encoding","wire"],"sources":["../../../../src/arm/provisioning-types/transformer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,16 @@ import { type ProvisioningType } from "../type.js";
4
4
  import { type ProvisioningTypeBuilderContext } from "../../context.js";
5
5
  import type { ProvisioningTransformer } from "../../transformer.js";
6
6
  import type { ClientName } from "../../../naming/name-resolvable.js";
7
+ /** Source validation constraints, independent of client-side type overrides. */
8
+ export interface PropertyConstraints {
9
+ readonly minLength?: number;
10
+ readonly maxLength?: number;
11
+ readonly pattern?: {
12
+ readonly regex: string;
13
+ readonly message?: string;
14
+ };
15
+ }
16
+ export declare function getPropertyConstraints(program: Program, property: ModelProperty): PropertyConstraints;
7
17
  /**
8
18
  * A property retained in the model view before provisioning name resolution.
9
19
  *
@@ -42,6 +52,8 @@ export declare function getModelProperties(model: Model, transformer: Provisioni
42
52
  * {@link isWritable} indicates whether the user can also author it.
43
53
  */
44
54
  export interface ProvisioningModelProperty {
55
+ /** Source constraints from the selected write declaration, otherwise primary. */
56
+ readonly constraints: PropertyConstraints;
45
57
  /**
46
58
  * The TypeSpec type of this property's value — write side preferred,
47
59
  * falls back to the primary side. Uses the transformer-selected alternate
@@ -1 +1 @@
1
- {"version":3,"file":"model-property.d.ts","sourceRoot":"","sources":["../../../../../../src/arm/provisioning-types/types/model/model-property.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAOpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,uBAAuB,EACpC,IAAI,GAAE,KAAK,GAAG,UAAkB,GAC/B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAW7B;AA2DD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACjE,+CAA+C;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,OAAO,EAAE,8BAA8B,GACtC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAyDxC"}
1
+ {"version":3,"file":"model-property.d.ts","sourceRoot":"","sources":["../../../../../../src/arm/provisioning-types/types/model/model-property.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,aAAa,EAOnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAOpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,mBAAmB,CA6BrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,uBAAuB,EACpC,IAAI,GAAE,KAAK,GAAG,UAAkB,GAC/B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAW7B;AA6DD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACjE,+CAA+C;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,OAAO,EAAE,8BAA8B,GACtC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAyDxC"}
@@ -1,7 +1,44 @@
1
- import { getTypeName, getDoc as tspGetDoc } from "@typespec/compiler";
1
+ import { getMaxLength, getMinLength, getPatternData, getTypeName, navigateType, getDoc as tspGetDoc } from "@typespec/compiler";
2
2
  import { collectDiscriminatorArmNames, getFixedDiscriminatorValues, getDiscriminatorValueProperty } from "./discriminator-utils.js";
3
3
  import { logger } from "../../../../log/log.js";
4
4
 
5
+ /** Source validation constraints, independent of client-side type overrides. */
6
+
7
+ export function getPropertyConstraints(program, property) {
8
+ let minLength;
9
+ let maxLength;
10
+ let pattern;
11
+ const collectConstraints = type => {
12
+ minLength ??= getMinLength(program, type);
13
+ maxLength ??= getMaxLength(program, type);
14
+ pattern ??= getPatternData(program, type);
15
+ };
16
+ collectConstraints(property);
17
+ if (property.type.kind === "Scalar") {
18
+ navigateType(property.type, {
19
+ scalar: collectConstraints
20
+ }, {});
21
+ } else {
22
+ collectConstraints(property.type);
23
+ }
24
+ return Object.freeze({
25
+ ...(minLength !== undefined ? {
26
+ minLength
27
+ } : {}),
28
+ ...(maxLength !== undefined ? {
29
+ maxLength
30
+ } : {}),
31
+ ...(pattern !== undefined ? {
32
+ pattern: Object.freeze({
33
+ regex: pattern.pattern,
34
+ ...(pattern.validationMessage !== undefined ? {
35
+ message: pattern.validationMessage
36
+ } : {})
37
+ })
38
+ } : {})
39
+ });
40
+ }
41
+
5
42
  /**
6
43
  * A property retained in the model view before provisioning name resolution.
7
44
  *
@@ -86,6 +123,8 @@ function collectClientProperties(model, transformer, armAncestorPath, out, visit
86
123
  }
87
124
  }
88
125
 
126
+ // TODO: update this to use class instead of interface so that it can
127
+ // be responsible for all the stuff needed for managing provisioning model properties.
89
128
  /**
90
129
  * A property in the paired view. Every property is always readable;
91
130
  * {@link isWritable} indicates whether the user can also author it.
@@ -202,6 +241,7 @@ function buildMergedProperty(primaryCp, writeCp, context, modelHasWriteType, dis
202
241
  });
203
242
  }
204
243
  return {
244
+ constraints: getPropertyConstraints(context.transformer.program, preferredType),
205
245
  propertyType,
206
246
  armName,
207
247
  clientName,
@@ -1 +1 @@
1
- {"version":3,"names":["getTypeName","getDoc","tspGetDoc","collectDiscriminatorArmNames","getFixedDiscriminatorValues","getDiscriminatorValueProperty","logger","getModelProperties","model","transformer","view","out","Map","collectClientProperties","Set","name","prop","transformProperty","property","isReadOnly","delete","armAncestorPath","visited","has","add","chain","cursor","unshift","baseModel","properties","m","set","p","values","metadata","isExcluded","flattenProperty","nested","alternateType","type","kind","nestedPath","armName","pairProperties","primaryType","writeType","context","primaryByArmName","writeByArmName","discriminatorArmNames","program","addProperty","previous","get","clientName","createDiagnosticError","code","severity","message","armPath","join","target","primaryCp","writeCp","merged","buildMergedProperty","undefined","modelHasWriteType","primaryMetadata","writeMetadata","preferredType","preferredMetadata","propertyType","encodingDescriptor","getPropertyEncoding","preferredCp","isWritable","isRequired","hasClientDefault","discriminatorValueProperty","discriminatorValues","mergedTypeCache","isExactName","source","info","JSON","stringify","area","provisioningType","result","pairType","Error","doc","clientDoc","primaryProp","writeProp","factory","getOrCreate"],"sources":["../../../../../../src/arm/provisioning-types/types/model/model-property.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getMaxLength","getMinLength","getPatternData","getTypeName","navigateType","getDoc","tspGetDoc","collectDiscriminatorArmNames","getFixedDiscriminatorValues","getDiscriminatorValueProperty","logger","getPropertyConstraints","program","property","minLength","maxLength","pattern","collectConstraints","type","kind","scalar","Object","freeze","undefined","regex","validationMessage","message","getModelProperties","model","transformer","view","out","Map","collectClientProperties","Set","name","prop","transformProperty","isReadOnly","delete","armAncestorPath","visited","has","add","chain","cursor","unshift","baseModel","properties","m","set","p","values","metadata","isExcluded","flattenProperty","nested","alternateType","nestedPath","armName","pairProperties","primaryType","writeType","context","primaryByArmName","writeByArmName","discriminatorArmNames","addProperty","previous","get","clientName","createDiagnosticError","code","severity","armPath","join","target","primaryCp","writeCp","merged","buildMergedProperty","modelHasWriteType","primaryMetadata","writeMetadata","preferredType","preferredMetadata","propertyType","encodingDescriptor","getPropertyEncoding","preferredCp","isWritable","isRequired","hasClientDefault","discriminatorValueProperty","discriminatorValues","mergedTypeCache","isExactName","source","info","JSON","stringify","area","constraints","provisioningType","result","pairType","Error","doc","clientDoc","primaryProp","writeProp","factory","getOrCreate"],"sources":["../../../../../../src/arm/provisioning-types/types/model/model-property.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import type { ResourceOverride } from "../../../lib.js";
2
1
  import type { ArmNamespaceAnalysis } from "../../resource-analysis/types.js";
3
2
  import { type ProvisioningTransformOptions } from "../transformer.js";
4
3
  import { ProvisioningResourceEntry } from "./resource.js";
@@ -6,7 +5,7 @@ import { SingletonGroup } from "./singleton-group.js";
6
5
  /** One analyzed namespace with a flat singleton-group index. */
7
6
  export declare class ProvisioningNamespace {
8
7
  /** Construct a namespace with its own transformer and shared type caches. */
9
- static create(analysis: ArmNamespaceAnalysis, tcgc: ProvisioningTransformOptions | undefined, resourceOverrides?: readonly ResourceOverride[]): ProvisioningNamespace;
8
+ static create(analysis: ArmNamespaceAnalysis, options: ProvisioningTransformOptions | undefined): ProvisioningNamespace;
10
9
  readonly apiVersion: string;
11
10
  readonly resourceEntries: readonly ProvisioningResourceEntry[];
12
11
  readonly singletonGroups: ReadonlyMap<string, SingletonGroup>;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../../src/arm/provisioning-types/types/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,gEAAgE;AAChE,qBAAa,qBAAqB;IAChC,6EAA6E;IAC7E,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,4BAA4B,GAAG,SAAS,EAC9C,iBAAiB,GAAE,SAAS,gBAAgB,EAAO,GAClD,qBAAqB;IAsBxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC/D,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAG5D,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,SAAS,yBAAyB,EAAE;CAkBxD"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../../src/arm/provisioning-types/types/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,gEAAgE;AAChE,qBAAa,qBAAqB;IAChC,6EAA6E;IAC7E,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,4BAA4B,GAAG,SAAS,GAChD,qBAAqB;IAqBxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC/D,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAG5D,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,SAAS,yBAAyB,EAAE;CAkBxD"}
@@ -6,10 +6,10 @@ import { SingletonGroup } from "./singleton-group.js";
6
6
  /** One analyzed namespace with a flat singleton-group index. */
7
7
  export class ProvisioningNamespace {
8
8
  /** Construct a namespace with its own transformer and shared type caches. */
9
- static create(analysis, tcgc, resourceOverrides = []) {
10
- const transformer = new ProvisioningTransformer(analysis.realm.program, tcgc, analysis.propertyUsage);
9
+ static create(analysis, options) {
10
+ const transformer = new ProvisioningTransformer(analysis.realm.program, options, analysis.propertyUsage);
11
11
  const context = new ProvisioningTypeBuilderContext(transformer);
12
- const entries = analysis.resources.map(resource => ProvisioningResourceEntry.create(context, analysis.apiVersion, resource, resourceOverrides)).sort((left, right) => left.metadata.armType.localeCompare(right.metadata.armType));
12
+ const entries = analysis.resources.map(resource => ProvisioningResourceEntry.create(context, analysis.apiVersion, resource)).sort((left, right) => left.metadata.armType.localeCompare(right.metadata.armType));
13
13
  return new ProvisioningNamespace(analysis.apiVersion, entries);
14
14
  }
15
15
  constructor(apiVersion, resourceEntries) {