@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.
- package/dist/src/arm/naming/naming-rules.d.ts +7 -9
- package/dist/src/arm/naming/naming-rules.d.ts.map +1 -1
- package/dist/src/arm/naming/naming-rules.js +43 -121
- package/dist/src/arm/naming/naming-rules.js.map +1 -1
- package/dist/src/arm/provisioning-types/transformer.d.ts +12 -1
- package/dist/src/arm/provisioning-types/transformer.d.ts.map +1 -1
- package/dist/src/arm/provisioning-types/transformer.js +22 -1
- package/dist/src/arm/provisioning-types/transformer.js.map +1 -1
- package/dist/src/arm/provisioning-types/types/model/model-property.d.ts +12 -0
- package/dist/src/arm/provisioning-types/types/model/model-property.d.ts.map +1 -1
- package/dist/src/arm/provisioning-types/types/model/model-property.js +41 -1
- package/dist/src/arm/provisioning-types/types/model/model-property.js.map +1 -1
- package/dist/src/arm/provisioning-types/types/namespace.d.ts +1 -2
- package/dist/src/arm/provisioning-types/types/namespace.d.ts.map +1 -1
- package/dist/src/arm/provisioning-types/types/namespace.js +3 -3
- package/dist/src/arm/provisioning-types/types/namespace.js.map +1 -1
- package/dist/src/arm/provisioning-types/types/resource.d.ts +21 -17
- package/dist/src/arm/provisioning-types/types/resource.d.ts.map +1 -1
- package/dist/src/arm/provisioning-types/types/resource.js +97 -50
- package/dist/src/arm/provisioning-types/types/resource.js.map +1 -1
- package/dist/src/arm/provisioning-types/types/type.d.ts +4 -0
- package/dist/src/arm/provisioning-types/types/type.d.ts.map +1 -1
- package/dist/src/arm/provisioning-types/types/type.js +27 -0
- package/dist/src/arm/provisioning-types/types/type.js.map +1 -1
- package/dist/src/arm/resource-analysis/analyzer.d.ts +2 -2
- package/dist/src/arm/resource-analysis/analyzer.js +12 -2
- package/dist/src/arm/resource-analysis/analyzer.js.map +1 -1
- package/dist/src/arm/resource-analysis/types.d.ts +5 -1
- package/dist/src/arm/resource-analysis/types.d.ts.map +1 -1
- package/dist/src/arm/resource-analysis/types.js +1 -1
- package/dist/src/arm/resource-analysis/types.js.map +1 -1
- package/dist/src/generation.d.ts.map +1 -1
- package/dist/src/generation.js +4 -3
- package/dist/src/generation.js.map +1 -1
- package/dist/src/lib.d.ts +10 -10
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +17 -9
- package/dist/src/lib.js.map +1 -1
- package/dist/src/renders/components/resource/naming-rules.d.ts.map +1 -1
- package/dist/src/renders/components/resource/naming-rules.js +2 -61
- package/dist/src/renders/components/resource/naming-rules.js.map +1 -1
- package/dist/src/renders/components/resource/resource-class.d.ts.map +1 -1
- package/dist/src/renders/components/resource/resource-class.js +2 -3
- package/dist/src/renders/components/resource/resource-class.js.map +1 -1
- package/dist/src/renders/components/resource/resource-constructor.d.ts +2 -3
- package/dist/src/renders/components/resource/resource-constructor.d.ts.map +1 -1
- package/dist/src/renders/components/resource/resource-constructor.js +17 -9
- package/dist/src/renders/components/resource/resource-constructor.js.map +1 -1
- package/dist/src/renders/components/type-rendering/type-renderer.d.ts +1 -1
- package/dist/src/renders/components/type-rendering/type-renderer.d.ts.map +1 -1
- package/dist/src/renders/components/type-rendering/type-renderer.js +7 -4
- package/dist/src/renders/components/type-rendering/type-renderer.js.map +1 -1
- package/dist/src/renders/provisioning-schema.d.ts +9 -2
- package/dist/src/renders/provisioning-schema.d.ts.map +1 -1
- package/dist/src/renders/provisioning-schema.js +25 -3
- package/dist/src/renders/provisioning-schema.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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
|
|
5
|
+
* compliant resource names without rewriting explicit names.
|
|
7
6
|
*/
|
|
8
7
|
import type { ResourceNamingRules } from "@azure/provisioning-core/internal";
|
|
9
|
-
import type {
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
|
|
41
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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","
|
|
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
|
-
|
|
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;
|
|
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
|
|
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":"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","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,
|
|
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","
|
|
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,
|
|
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,
|
|
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,
|
|
10
|
-
const transformer = new ProvisioningTransformer(analysis.realm.program,
|
|
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
|
|
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) {
|