@drunk-pulumi/azure 1.0.21 → 1.0.23

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 (180) hide show
  1. package/Aks/Helper.js +7 -6
  2. package/Aks/Identity.d.ts +1 -1
  3. package/Aks/Identity.js +1 -1
  4. package/Aks/index.d.ts +2 -3
  5. package/Aks/index.js +2 -2
  6. package/AzAd/B2C.d.ts +2 -2
  7. package/AzAd/B2C.js +13 -14
  8. package/AzAd/EnvRoles.Consts.d.ts +7 -5
  9. package/AzAd/EnvRoles.Consts.js +54 -42
  10. package/AzAd/EnvRoles.js +3 -3
  11. package/AzAd/Helper.js +14 -8
  12. package/AzAd/Identities/AzDevOpsIdentity.d.ts +1 -1
  13. package/AzAd/Identities/AzDevOpsIdentity.js +1 -1
  14. package/AzAd/Identities/AzUserAdRevertSync.d.ts +1 -1
  15. package/AzAd/Identity.d.ts +2 -11
  16. package/AzAd/Identity.js +4 -3
  17. package/AzAd/UserAssignedIdentity.js +7 -2
  18. package/Builder/AcrBuilder.d.ts +3 -0
  19. package/Builder/AcrBuilder.js +143 -0
  20. package/Builder/ApimApiBuilder.js +2 -3
  21. package/Builder/ApimBuilder.js +2 -2
  22. package/Builder/ApimProductBuilder.js +3 -4
  23. package/Builder/AppCertBuilder.d.ts +3 -0
  24. package/Builder/AppCertBuilder.js +75 -0
  25. package/Builder/AppConfigBuilder.d.ts +3 -0
  26. package/Builder/AppConfigBuilder.js +152 -0
  27. package/Builder/AutomationBuilder.d.ts +3 -0
  28. package/Builder/AutomationBuilder.js +106 -0
  29. package/Builder/IotHubBuilder.d.ts +3 -0
  30. package/Builder/IotHubBuilder.js +240 -0
  31. package/Builder/LogicAppBuilder.d.ts +3 -0
  32. package/Builder/LogicAppBuilder.js +69 -0
  33. package/Builder/MySqlBuilder.d.ts +3 -0
  34. package/Builder/MySqlBuilder.js +229 -0
  35. package/Builder/PostgreSqlBuilder.d.ts +3 -0
  36. package/Builder/PostgreSqlBuilder.js +235 -0
  37. package/Builder/RedisCacheBuilder.d.ts +3 -0
  38. package/Builder/RedisCacheBuilder.js +151 -0
  39. package/Builder/ResourceBuilder.js +52 -20
  40. package/Builder/ServiceBusBuilder.d.ts +3 -0
  41. package/Builder/ServiceBusBuilder.js +330 -0
  42. package/Builder/SignalRBuilder.d.ts +3 -0
  43. package/Builder/SignalRBuilder.js +179 -0
  44. package/Builder/StorageBuilder.js +3 -3
  45. package/Builder/VdiBuilder.js +2 -2
  46. package/Builder/index.d.ts +11 -0
  47. package/Builder/index.js +24 -2
  48. package/Builder/types/acrBuilder.d.ts +18 -0
  49. package/Builder/types/acrBuilder.js +3 -0
  50. package/Builder/types/appCertBuilder.d.ts +14 -0
  51. package/Builder/types/appCertBuilder.js +3 -0
  52. package/Builder/types/appConfigBuilder.d.ts +15 -0
  53. package/Builder/types/appConfigBuilder.js +3 -0
  54. package/Builder/types/automationBuilder.d.ts +11 -0
  55. package/Builder/types/automationBuilder.js +3 -0
  56. package/Builder/types/index.d.ts +12 -0
  57. package/Builder/types/index.js +13 -1
  58. package/Builder/types/iotHubBuilder.d.ts +31 -0
  59. package/Builder/types/iotHubBuilder.js +3 -0
  60. package/Builder/types/logicAppBuilder.d.ts +10 -0
  61. package/Builder/types/logicAppBuilder.js +3 -0
  62. package/Builder/types/mySqlBuilder.d.ts +45 -0
  63. package/Builder/types/mySqlBuilder.js +3 -0
  64. package/Builder/types/posgreSqlBuilder.d.ts +45 -0
  65. package/Builder/types/posgreSqlBuilder.js +3 -0
  66. package/Builder/types/redisCacheBuilder.d.ts +15 -0
  67. package/Builder/types/redisCacheBuilder.js +3 -0
  68. package/Builder/types/resourceBuilder.d.ts +2 -0
  69. package/Builder/types/serviceBusBuilder.d.ts +23 -0
  70. package/Builder/types/serviceBusBuilder.js +3 -0
  71. package/Builder/types/signalRBuilder.d.ts +38 -0
  72. package/Builder/types/signalRBuilder.js +3 -0
  73. package/Builder/types/storageBuilder.d.ts +3 -4
  74. package/Cdn/CdnEndpoint.js +2 -2
  75. package/Cdn/index.js +2 -2
  76. package/Common/AzureEnv.js +1 -1
  77. package/Common/GlobalEnv.js +6 -3
  78. package/Common/Naming/Rulers.d.ts +288 -0
  79. package/Common/Naming/Rulers.js +537 -0
  80. package/Common/Naming/index.d.ts +10 -0
  81. package/Common/Naming/index.js +112 -0
  82. package/Common/OpenApi/index.js +37 -0
  83. package/{Web → Common/OpenApi}/types.js +1 -1
  84. package/Common/RsInfo/Helper.d.ts +3 -3
  85. package/Common/RsInfo/Helper.js +12 -34
  86. package/Common/RsInfo/index.d.ts +24 -24
  87. package/Common/RsInfo/index.js +14 -14
  88. package/Common/index.d.ts +2 -4
  89. package/Common/index.js +8 -6
  90. package/Core/KeyGenerators.js +2 -2
  91. package/Core/Random.d.ts +1 -0
  92. package/Core/Random.js +9 -4
  93. package/CustomRoles/index.js +4 -4
  94. package/KeyVault/CustomHelper.js +4 -3
  95. package/KeyVault/Helper.d.ts +4 -0
  96. package/KeyVault/Helper.js +30 -4
  97. package/KeyVault/index.js +2 -2
  98. package/Logs/AppInsight.js +2 -2
  99. package/Logs/Helpers.js +7 -4
  100. package/Logs/LogAnalytics.js +2 -2
  101. package/Logs/WebTest.js +3 -3
  102. package/Logs/index.d.ts +1 -1
  103. package/Sql/Helper.js +3 -3
  104. package/Sql/SqlDb.js +2 -2
  105. package/Sql/index.js +3 -4
  106. package/Storage/Helper.js +6 -6
  107. package/Storage/ManagementRules.d.ts +2 -2
  108. package/Storage/ManagementRules.js +4 -4
  109. package/Storage/index.d.ts +4 -8
  110. package/Storage/index.js +50 -18
  111. package/VM/DiskEncryptionSet.js +2 -2
  112. package/VM/index.js +3 -3
  113. package/VNet/Bastion.js +2 -2
  114. package/VNet/Firewall.d.ts +2 -2
  115. package/VNet/Firewall.js +4 -4
  116. package/VNet/FirewallPolicy.js +2 -2
  117. package/VNet/GlobalNetworkPeering.js +4 -4
  118. package/VNet/IpAddress.js +1 -1
  119. package/VNet/IpAddressPrefix.js +2 -2
  120. package/VNet/NSGRules/ApimSecurityRule.d.ts +1 -1
  121. package/VNet/NSGRules/ApimSecurityRule.js +20 -20
  122. package/VNet/NatGateway.d.ts +2 -2
  123. package/VNet/NatGateway.js +3 -3
  124. package/VNet/NetworkPeering.js +1 -1
  125. package/VNet/PrivateEndpoint.d.ts +1 -0
  126. package/VNet/PrivateEndpoint.js +2 -2
  127. package/VNet/RouteTable.js +4 -5
  128. package/VNet/SecurityGroup.d.ts +3 -3
  129. package/VNet/SecurityGroup.js +3 -3
  130. package/VNet/VPNGateway.js +2 -2
  131. package/VNet/Vnet.js +2 -2
  132. package/package.json +3 -3
  133. package/types.d.ts +29 -3
  134. package/Apim/ApiProduct/OpenApi.js +0 -3
  135. package/Apim/ApiProduct/SwaggerHelper.js +0 -37
  136. package/Apps/LogicApp.d.ts +0 -5
  137. package/Apps/LogicApp.js +0 -38
  138. package/Automation/index.d.ts +0 -6
  139. package/Automation/index.js +0 -78
  140. package/Common/Naming.d.ts +0 -68
  141. package/Common/Naming.js +0 -190
  142. package/Common/ResourceEnv.d.ts +0 -2
  143. package/Common/ResourceEnv.js +0 -65
  144. package/ContainerRegistry/Helper.d.ts +0 -15
  145. package/ContainerRegistry/Helper.js +0 -77
  146. package/ContainerRegistry/index.d.ts +0 -15
  147. package/ContainerRegistry/index.js +0 -93
  148. package/Core/ResourceGroup.d.ts +0 -18
  149. package/Core/ResourceGroup.js +0 -36
  150. package/CosmosDb/index.d.ts +0 -28
  151. package/CosmosDb/index.js +0 -142
  152. package/IOT/Hub/index.d.ts +0 -26
  153. package/IOT/Hub/index.js +0 -191
  154. package/MySql/index.d.ts +0 -16
  155. package/MySql/index.js +0 -185
  156. package/Postgresql/index.d.ts +0 -16
  157. package/Postgresql/index.js +0 -157
  158. package/RedisCache/index.d.ts +0 -15
  159. package/RedisCache/index.js +0 -112
  160. package/ServiceBus/ServiceBusHelper.d.ts +0 -21
  161. package/ServiceBus/ServiceBusHelper.js +0 -35
  162. package/ServiceBus/index.d.ts +0 -88
  163. package/ServiceBus/index.js +0 -405
  164. package/SignalR/index.d.ts +0 -19
  165. package/SignalR/index.js +0 -128
  166. package/Web/AppCertOrder.d.ts +0 -8
  167. package/Web/AppCertOrder.js +0 -52
  168. package/Web/AppConfig.d.ts +0 -10
  169. package/Web/AppConfig.js +0 -93
  170. package/Web/AppGateway.d.ts +0 -15
  171. package/Web/AppGateway.js +0 -58
  172. package/Web/FuncApp.d.ts +0 -11
  173. package/Web/FuncApp.js +0 -41
  174. package/Web/WebAppPlan.d.ts +0 -6
  175. package/Web/WebAppPlan.js +0 -45
  176. package/Web/types.d.ts +0 -37
  177. package/z_tests/_tools/Mocks.d.ts +0 -2
  178. package/z_tests/_tools/Mocks.js +0 -69
  179. /package/{Apim/ApiProduct/SwaggerHelper.d.ts → Common/OpenApi/index.d.ts} +0 -0
  180. /package/{Apim/ApiProduct/OpenApi.d.ts → Common/OpenApi/types.d.ts} +0 -0
@@ -0,0 +1,537 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rules = void 0;
4
+ const AzureEnv_1 = require("../AzureEnv");
5
+ const StackEnv_1 = require("../StackEnv");
6
+ exports.rules = {
7
+ getResourceGroupName: {
8
+ cleanName: false,
9
+ suffix: `grp-${StackEnv_1.organization}`,
10
+ maxLength: 90,
11
+ },
12
+ getStorageName: {
13
+ cleanName: true,
14
+ maxLength: 24,
15
+ includeOrgName: true,
16
+ suffix: 'stg',
17
+ replaces: [{ from: /[-.]/g, to: '' }],
18
+ },
19
+ getAppPlanName: {
20
+ cleanName: true,
21
+ includeOrgName: false,
22
+ suffix: 'app-plan',
23
+ maxLength: 80,
24
+ },
25
+ getAutomationAccountName: {
26
+ cleanName: true,
27
+ maxLength: 80,
28
+ suffix: 'acc-auto',
29
+ },
30
+ getB2cName: {
31
+ cleanName: true,
32
+ maxLength: 80,
33
+ suffix: 'b2c',
34
+ },
35
+ getCosmosDbName: {
36
+ cleanName: true,
37
+ maxLength: 80,
38
+ suffix: 'cdb',
39
+ },
40
+ getAppConfigName: {
41
+ cleanName: true,
42
+ maxLength: 80,
43
+ suffix: 'cfg',
44
+ },
45
+ getApimName: {
46
+ cleanName: true,
47
+ maxLength: 80,
48
+ suffix: 'apim',
49
+ },
50
+ getDiskEncryptionName: {
51
+ cleanName: true,
52
+ maxLength: 80,
53
+ suffix: 'disk-encrypt',
54
+ },
55
+ getSshName: {
56
+ cleanName: true,
57
+ maxLength: 80,
58
+ suffix: 'ssh',
59
+ },
60
+ getIdentityName: {
61
+ cleanName: true,
62
+ maxLength: 80,
63
+ suffix: '',
64
+ },
65
+ getUIDName: {
66
+ cleanName: true,
67
+ maxLength: 80,
68
+ suffix: 'uid',
69
+ },
70
+ getAksName: {
71
+ cleanName: true,
72
+ maxLength: 80,
73
+ suffix: 'aks',
74
+ },
75
+ getK8sProviderName: {
76
+ cleanName: true,
77
+ maxLength: 80,
78
+ suffix: 'ks-pvd',
79
+ },
80
+ getAppInsightName: {
81
+ cleanName: true,
82
+ maxLength: 80,
83
+ suffix: 'isg',
84
+ },
85
+ getLogWpName: {
86
+ cleanName: true,
87
+ maxLength: 80,
88
+ suffix: 'wp',
89
+ },
90
+ getWebAppName: {
91
+ cleanName: true,
92
+ maxLength: 80,
93
+ suffix: 'web',
94
+ },
95
+ getFuncAppName: {
96
+ cleanName: true,
97
+ maxLength: 80,
98
+ suffix: 'func',
99
+ },
100
+ getWebTestName: {
101
+ cleanName: true,
102
+ maxLength: 80,
103
+ suffix: 'wt',
104
+ },
105
+ getAlertName: {
106
+ cleanName: true,
107
+ maxLength: 80,
108
+ suffix: 'alt',
109
+ },
110
+ getRedisCacheName: {
111
+ cleanName: true,
112
+ maxLength: 80,
113
+ suffix: 'rds',
114
+ },
115
+ getServiceBusName: {
116
+ cleanName: true,
117
+ maxLength: 80,
118
+ suffix: 'bus',
119
+ },
120
+ getPrivateEndpointName: {
121
+ cleanName: true,
122
+ maxLength: 80,
123
+ suffix: 'pre',
124
+ },
125
+ getSignalRName: {
126
+ cleanName: true,
127
+ maxLength: 80,
128
+ suffix: 'sigr',
129
+ },
130
+ getElasticPoolName: {
131
+ cleanName: true,
132
+ maxLength: 80,
133
+ suffix: 'elp',
134
+ },
135
+ getSqlDbName: {
136
+ cleanName: true,
137
+ maxLength: 128,
138
+ suffix: 'db',
139
+ },
140
+ getSqlServerName: {
141
+ cleanName: true,
142
+ maxLength: 80,
143
+ suffix: 'sql',
144
+ },
145
+ getPostgresqlName: {
146
+ cleanName: true,
147
+ maxLength: 80,
148
+ suffix: 'postgres',
149
+ },
150
+ getMySqlName: {
151
+ cleanName: true,
152
+ maxLength: 80,
153
+ suffix: 'mysql',
154
+ },
155
+ getFirewallName: {
156
+ cleanName: true,
157
+ maxLength: 80,
158
+ suffix: 'fw',
159
+ },
160
+ getFirewallPolicyName: {
161
+ cleanName: true,
162
+ maxLength: 80,
163
+ suffix: 'fwp',
164
+ },
165
+ getFirewallPolicyGroupName: {
166
+ cleanName: true,
167
+ maxLength: 80,
168
+ suffix: 'fw-pg',
169
+ },
170
+ getVMName: {
171
+ cleanName: true,
172
+ maxLength: 80,
173
+ suffix: 'vm',
174
+ },
175
+ getNICName: {
176
+ cleanName: true,
177
+ maxLength: 80,
178
+ suffix: 'nic',
179
+ },
180
+ getVdiName: {
181
+ cleanName: true,
182
+ maxLength: 80,
183
+ suffix: 'vdi',
184
+ },
185
+ getVpnName: {
186
+ cleanName: true,
187
+ maxLength: 80,
188
+ suffix: 'vpn',
189
+ },
190
+ getVnetName: {
191
+ cleanName: true,
192
+ maxLength: 80,
193
+ suffix: 'vnt',
194
+ },
195
+ getWanName: {
196
+ cleanName: true,
197
+ maxLength: 80,
198
+ suffix: 'wan',
199
+ },
200
+ getHubName: {
201
+ cleanName: true,
202
+ maxLength: 80,
203
+ suffix: 'hub',
204
+ },
205
+ getIotHubName: {
206
+ cleanName: true,
207
+ maxLength: 80,
208
+ suffix: 'iot',
209
+ },
210
+ getRouteName: {
211
+ cleanName: true,
212
+ maxLength: 80,
213
+ suffix: 'route',
214
+ },
215
+ //getRouteItemName: { cleanName: true, maxLength: 80, suffix: 'item' },
216
+ getWorkflowName: {
217
+ cleanName: true,
218
+ maxLength: 80,
219
+ suffix: 'wkp',
220
+ },
221
+ getNetworkSGName: {
222
+ cleanName: true,
223
+ maxLength: 80,
224
+ suffix: 'nsg',
225
+ },
226
+ getIpAddressName: {
227
+ cleanName: true,
228
+ maxLength: 80,
229
+ suffix: 'ip',
230
+ },
231
+ getIpAddressPrefixName: {
232
+ cleanName: true,
233
+ maxLength: 80,
234
+ suffix: 'ipx',
235
+ },
236
+ getAppGatewayName: {
237
+ cleanName: true,
238
+ maxLength: 80,
239
+ suffix: 'gtw',
240
+ },
241
+ getNatGatewayName: {
242
+ cleanName: true,
243
+ maxLength: 80,
244
+ suffix: 'nat',
245
+ },
246
+ getBastionName: {
247
+ cleanName: true,
248
+ maxLength: 80,
249
+ suffix: 'bst',
250
+ },
251
+ getKeyVaultName: {
252
+ cleanName: true,
253
+ maxLength: 24,
254
+ suffix: 'vlt',
255
+ includeOrgName: true,
256
+ },
257
+ getCdnEndpointName: {
258
+ cleanName: true,
259
+ maxLength: 80,
260
+ suffix: 'cdn',
261
+ },
262
+ getCdnProfileName: {
263
+ cleanName: true,
264
+ maxLength: 80,
265
+ suffix: 'cdn-pfl',
266
+ },
267
+ getAcrName: {
268
+ cleanName: true,
269
+ maxLength: 24,
270
+ prefix: '',
271
+ suffix: 'acr',
272
+ region: AzureEnv_1.currentCountryCode,
273
+ includeOrgName: true,
274
+ replaces: [{ from: /[-.]/g, to: '' }],
275
+ },
276
+ getCertOrderName: {
277
+ maxLength: 80,
278
+ prefix: '',
279
+ suffix: 'cert',
280
+ replaces: [{ from: '.', to: '-' }],
281
+ },
282
+ };
283
+ // /** Get Azure Storage Account and CosmosDb Name*/
284
+ // export const getStorageName = (
285
+ // name: string,
286
+ // convention: ConventionProps = {},
287
+ // ): string => {
288
+ // name = getResourceName(name, {
289
+ // ...convention,
290
+ // includeOrgName: true,
291
+ // suffix: 'stg',
292
+ // });
293
+ // // Replace all dashes and dots with empty strings, convert to lowercase, and limit to 24 characters
294
+ // name = name.replace(/[-.]/g, '').toLowerCase().substring(0, 24);
295
+ // return removeLeadingAndTrailingDash(name);
296
+ // };
297
+ // export const getAppPlanName = (
298
+ // name: string,
299
+ // convention: ConventionProps = {},
300
+ // ) =>
301
+ // getResourceName(name, {
302
+ // ...convention,
303
+ // includeOrgName: false,
304
+ // suffix: 'app-plan',
305
+ // });
306
+ // export const getCertName = (name: string) => {
307
+ // name = getSecretName(name);
308
+ // return `${name}-cert`;
309
+ // };
310
+ // export const getConnectionName = (
311
+ // name: string,
312
+ // type: 'primary' | 'secondary',
313
+ // ) => `${getVaultItemName(name)}-conn-${type}`;
314
+ // export const getKeyName = (name: string, type: 'primary' | 'secondary') =>
315
+ // `${getSecretName(name)}-key-${type}`;
316
+ // export const getPasswordName = (
317
+ // name: string,
318
+ // type: 'primary' | 'secondary' | null,
319
+ // ) =>
320
+ // type === null
321
+ // ? getResourceName(name, { suffix: 'pwd' })
322
+ // : `${getSecretName(name)}-pwd-${type}`;
323
+ // export const getAutomationAccountName = (
324
+ // name: string,
325
+ // convention: ConventionProps = {},
326
+ // ) => getResourceName(name, { ...convention, suffix: 'acc-auto' });
327
+ // export const getB2cName = (name: string, convention: ConventionProps = {}) =>
328
+ // getResourceName(name, { ...convention, suffix: 'b2c' });
329
+ // export const getCosmosDbName = (
330
+ // name: string,
331
+ // convention: ConventionProps = {},
332
+ // ) => getResourceName(name, { ...convention, suffix: 'cdb' });
333
+ // export const getAppConfigName = (
334
+ // name: string,
335
+ // convention: ConventionProps = {},
336
+ // ) => getResourceName(name, { ...convention, suffix: 'cfg' });
337
+ // export const getApimName = (name: string, convention: ConventionProps = {}) =>
338
+ // getResourceName(name, { ...convention, suffix: 'apim' });
339
+ //
340
+ // export const getDiskEncryptionName = (
341
+ // name: string,
342
+ // convention: ConventionProps = {},
343
+ // ) => getResourceName(name, { ...convention, suffix: 'disk-encrypt' });
344
+ // export const getSshName = (name: string, convention: ConventionProps = {}) =>
345
+ // getResourceName(name, { ...convention, suffix: 'ssh' });
346
+ // export const getIdentityName = (name: string) => getResourceName(name);
347
+ // export const getUIDName = (name: string, convention: ConventionProps = {}) =>
348
+ // getResourceName(name, { ...convention, suffix: 'uid' });
349
+ // export const getAksName = (name: string, convention: ConventionProps = {}) =>
350
+ // getResourceName(name, { ...convention, suffix: 'aks' });
351
+ // export const getK8sProviderName = (
352
+ // name: string,
353
+ // convention: ConventionProps = {},
354
+ // ) => getResourceName(name, { ...convention, suffix: 'ks-pvd' });
355
+ //
356
+ // export const getAppInsightName = (
357
+ // name: string,
358
+ // convention: ConventionProps = {},
359
+ // ) => getResourceName(name, { ...convention, suffix: 'isg' });
360
+ // export const getLogWpName = (name: string, convention: ConventionProps = {}) =>
361
+ // getResourceName(name, { ...convention, suffix: 'wp' });
362
+ //
363
+ // export const getWebAppName = (name: string, convention: ConventionProps = {}) =>
364
+ // getResourceName(name, { ...convention, suffix: 'web' });
365
+ // export const getFuncAppName = (
366
+ // name: string,
367
+ // convention: ConventionProps = {},
368
+ // ) => getResourceName(name, { ...convention, suffix: 'func' });
369
+ //
370
+ // export const getWebTestName = (
371
+ // name: string,
372
+ // convention: ConventionProps = {},
373
+ // ) => getResourceName(name, { ...convention, suffix: 'hlz' });
374
+ // export const getAlertName = (name: string, convention: ConventionProps = {}) =>
375
+ // getResourceName(name, { ...convention, suffix: 'alt' });
376
+ //
377
+ // export const getRedisCacheName = (
378
+ // name: string,
379
+ // convention: ConventionProps = {},
380
+ // ) => getResourceName(name, { ...convention, suffix: 'rds' });
381
+ // export const getServiceBusName = (
382
+ // name: string,
383
+ // convention: ConventionProps = {},
384
+ // ) => getResourceName(name, { ...convention, suffix: 'bus' });
385
+ // export const getPrivateEndpointName = (
386
+ // name: string,
387
+ // convention: ConventionProps = {},
388
+ // ) => getResourceName(name, { ...convention, suffix: 'pre' });
389
+ //
390
+ // export const getSignalRName = (
391
+ // name: string,
392
+ // convention: ConventionProps = {},
393
+ // ) => getResourceName(name, { ...convention, suffix: 'sigr' });
394
+ // export const getElasticPoolName = (
395
+ // name: string,
396
+ // convention: ConventionProps = {},
397
+ // ) => getResourceName(name, { ...convention, suffix: 'elp' });
398
+ //
399
+ // export const getSqlDbName = (name: string, convention: ConventionProps = {}) =>
400
+ // getResourceName(name, { ...convention, suffix: 'db' });
401
+ //
402
+ // export const getSqlServerName = (
403
+ // name: string,
404
+ // convention: ConventionProps = {},
405
+ // ) => getResourceName(name, { ...convention, suffix: 'sql' });
406
+ // export const getPostgresqlName = (
407
+ // name: string,
408
+ // convention: ConventionProps = {},
409
+ // ) => getResourceName(name, { ...convention, suffix: 'postgres' });
410
+ //
411
+ // export const getMySqlName = (name: string, convention: ConventionProps = {}) =>
412
+ // getResourceName(name, { ...convention, suffix: 'mysql' });
413
+ //
414
+ // export const getFirewallName = (
415
+ // name: string,
416
+ // convention: ConventionProps = {},
417
+ // ) => getResourceName(name, { ...convention, suffix: 'fw' });
418
+ // export const getFirewallPolicyName = (
419
+ // name: string,
420
+ // convention: ConventionProps = {},
421
+ // ) => getResourceName(name, { ...convention, suffix: 'fwp' });
422
+ //
423
+ // export const getFirewallPolicyGroupName = (
424
+ // name: string,
425
+ // convention: ConventionProps = {},
426
+ // ) => getResourceName(name, { ...convention, suffix: 'fw-pg' });
427
+ // export const getVMName = (name: string, convention: ConventionProps = {}) =>
428
+ // getResourceName(name, { ...convention, suffix: 'vm' });
429
+ //
430
+ // export const getNICName = (name: string, convention: ConventionProps = {}) =>
431
+ // getResourceName(name, { ...convention, suffix: 'nic' });
432
+ //
433
+ // export const getVdiName = (name: string, convention: ConventionProps = {}) =>
434
+ // getResourceName(name, { ...convention, suffix: 'vdi' });
435
+ //
436
+ // export const getVpnName = (name: string, convention: ConventionProps = {}) =>
437
+ // getResourceName(name, { ...convention, suffix: 'vpn' });
438
+ // export const getVnetName = (name: string, convention: ConventionProps = {}) =>
439
+ // getResourceName(name, { ...convention, suffix: 'vnt' });
440
+ //
441
+ // export const getWanName = (name: string, convention: ConventionProps = {}) =>
442
+ // getResourceName(name, { ...convention, suffix: 'wan' });
443
+ //
444
+ // export const getHubName = (name: string, convention: ConventionProps = {}) =>
445
+ // getResourceName(name, { ...convention, suffix: 'hub' });
446
+ //
447
+ // export const getIotHubName = (name: string, convention: ConventionProps = {}) =>
448
+ // getResourceName(name, { ...convention, suffix: 'iot' });
449
+ //
450
+ // export const getRouteName = (name: string, convention: ConventionProps = {}) =>
451
+ // getResourceName(name, { ...convention, suffix: 'route' });
452
+ // export const getRouteItemName = (
453
+ // name: string,
454
+ // convention: ConventionProps = {},
455
+ // ) =>
456
+ // getResourceName(name, { ...convention, suffix: '', includeOrgName: false });
457
+ // export const getWorkflowName = (
458
+ // name: string,
459
+ // convention: ConventionProps = {},
460
+ // ) => getResourceName(name, { ...convention, suffix: 'wkp' });
461
+ //
462
+ // export const getNetworkSecurityGroupName = (
463
+ // name: string,
464
+ // convention: ConventionProps = {},
465
+ // ) => getResourceName(name, { ...convention, suffix: 'nsg' });
466
+ //
467
+ // export const getIpAddressName = (
468
+ // name: string,
469
+ // convention: ConventionProps = {},
470
+ // ) => getResourceName(name, { ...convention, suffix: 'ip' });
471
+ //
472
+ // export const getIpAddressPrefixName = (
473
+ // name: string,
474
+ // convention: ConventionProps = {},
475
+ // ) => getResourceName(name, { ...convention, suffix: 'ipx' });
476
+ //
477
+ // export const getAppGatewayName = (
478
+ // name: string,
479
+ // convention: ConventionProps = {},
480
+ // ) => getResourceName(name, { ...convention, suffix: 'gtw' });
481
+ // export const getNatGatewayName = (
482
+ // name: string,
483
+ // convention: ConventionProps = {},
484
+ // ) => getResourceName(name, { ...convention, suffix: 'ngw' });
485
+ //
486
+ // export const getBastionName = (
487
+ // name: string,
488
+ // convention: ConventionProps = {},
489
+ // ) => getResourceName(name, { ...convention, suffix: 'bst' });
490
+ /**Key vault allow to disable or custom the convention. The max length of vault name is 24*/
491
+ // export const getKeyVaultName = (
492
+ // name: string,
493
+ // convention: ConventionProps = {},
494
+ // ) => {
495
+ // name = getResourceName(name, {
496
+ // ...convention,
497
+ // suffix: 'vlt',
498
+ // includeOrgName: true,
499
+ // }).substring(0, 24);
500
+ // return removeLeadingAndTrailingDash(name);
501
+ // };
502
+ // export const getCdnEndpointName = (
503
+ // name: string,
504
+ // convention: ConventionProps = {},
505
+ // ) => getResourceName(name, { ...convention, suffix: 'cdn' });
506
+ //
507
+ // /**The CDN Profile is created to Global group so no prefix*/
508
+ // export const getCdnProfileName = (
509
+ // name: string,
510
+ // convention: ConventionProps = {},
511
+ // ) => getResourceName(name, { ...convention, suffix: 'cdn-pfl' });
512
+ /**The Azure Container Registry is created to Global group so no prefix*/
513
+ // export const getAcrName = (name: string, convention: ConventionProps = {}) => {
514
+ // name = replaceAll(
515
+ // getResourceName(name, {
516
+ // ...convention,
517
+ // prefix: '',
518
+ // suffix: 'acr',
519
+ // region: currentCountryCode,
520
+ // includeOrgName: true,
521
+ // }),
522
+ // '-',
523
+ // '',
524
+ // ).substring(0, 24);
525
+ // return removeLeadingAndTrailingDash(name);
526
+ // };
527
+ /**The App Cert Order is created to Global group so no prefix*/
528
+ // export const getCertOrderName = (
529
+ // name: string,
530
+ // convention: ConventionProps = {},
531
+ // ) =>
532
+ // getResourceName(name.replace('.', '-'), {
533
+ // ...convention,
534
+ // prefix: '',
535
+ // suffix: 'ca',
536
+ // });
537
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVsZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbW1vbi9OYW1pbmcvUnVsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBDQUFpRDtBQUNqRCwwQ0FBMkM7QUFFOUIsUUFBQSxLQUFLLEdBQUc7SUFDbkIsb0JBQW9CLEVBQUU7UUFDcEIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsTUFBTSxFQUFFLE9BQU8sdUJBQVksRUFBRTtRQUM3QixTQUFTLEVBQUUsRUFBRTtLQUNkO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsU0FBUyxFQUFFLElBQUk7UUFDZixTQUFTLEVBQUUsRUFBRTtRQUNiLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztLQUN0QztJQUNELGNBQWMsRUFBRTtRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsY0FBYyxFQUFFLEtBQUs7UUFDckIsTUFBTSxFQUFFLFVBQVU7UUFDbEIsU0FBUyxFQUFFLEVBQUU7S0FDZDtJQUNELHdCQUF3QixFQUFFO1FBQ3hCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsU0FBUyxFQUFFLEVBQUU7UUFDYixNQUFNLEVBQUUsVUFBVTtLQUNuQjtJQUNELFVBQVUsRUFBRTtRQUNWLFNBQVMsRUFBRSxJQUFJO1FBQ2YsU0FBUyxFQUFFLEVBQUU7UUFDYixNQUFNLEVBQUUsS0FBSztLQUNkO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsU0FBUyxFQUFFLElBQUk7UUFDZixTQUFTLEVBQUUsRUFBRTtRQUNiLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxFQUFFO1FBQ2IsTUFBTSxFQUFFLEtBQUs7S0FDZDtJQUNELFdBQVcsRUFBRTtRQUNYLFNBQVMsRUFBRSxJ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
@@ -0,0 +1,10 @@
1
+ import { ConventionProps, ReplacePattern, NamingType } from '../../types';
2
+ export type NamingFunc = (name: NamingType) => string;
3
+ export declare const replaceInString: (val: string, pattern: ReplacePattern) => string;
4
+ export declare const removeNumberAndDash: (s: string) => string;
5
+ export declare const removeLeadingAndTrailingDash: (s: string) => string;
6
+ export declare const replaceSpaceWithDash: (s: string) => string;
7
+ export declare const cleanName: (name: string) => string;
8
+ export declare const getResourceName: (name: string, convention?: ConventionProps) => string;
9
+ export declare const creators: Record<"getResourceGroupName" | "getStorageName" | "getAppPlanName" | "getAutomationAccountName" | "getB2cName" | "getCosmosDbName" | "getAppConfigName" | "getApimName" | "getDiskEncryptionName" | "getSshName" | "getIdentityName" | "getUIDName" | "getAksName" | "getK8sProviderName" | "getAppInsightName" | "getLogWpName" | "getWebAppName" | "getFuncAppName" | "getWebTestName" | "getAlertName" | "getRedisCacheName" | "getServiceBusName" | "getPrivateEndpointName" | "getSignalRName" | "getElasticPoolName" | "getSqlDbName" | "getSqlServerName" | "getPostgresqlName" | "getMySqlName" | "getFirewallName" | "getFirewallPolicyName" | "getFirewallPolicyGroupName" | "getVMName" | "getNICName" | "getVdiName" | "getVpnName" | "getVnetName" | "getWanName" | "getHubName" | "getIotHubName" | "getRouteName" | "getWorkflowName" | "getNetworkSGName" | "getIpAddressName" | "getIpAddressPrefixName" | "getAppGatewayName" | "getNatGatewayName" | "getBastionName" | "getKeyVaultName" | "getCdnEndpointName" | "getCdnProfileName" | "getAcrName" | "getCertOrderName", NamingFunc>;
10
+ export default creators;
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.creators = exports.getResourceName = exports.cleanName = exports.replaceSpaceWithDash = exports.removeLeadingAndTrailingDash = exports.removeNumberAndDash = exports.replaceInString = void 0;
27
+ const Rulers_1 = require("./Rulers");
28
+ const process = __importStar(require("node:process"));
29
+ const AzureEnv_1 = require("../AzureEnv");
30
+ const StackEnv_1 = require("../StackEnv");
31
+ const replaceInString = (val, pattern) => {
32
+ let regex;
33
+ if (pattern.from instanceof RegExp) {
34
+ // If 'from' is already a RegExp, use it directly
35
+ regex = pattern.from;
36
+ }
37
+ else {
38
+ // If 'from' is a string, convert it to a RegExp
39
+ regex = new RegExp(pattern.from, 'g');
40
+ }
41
+ // Replace occurrences of 'from' with 'to'
42
+ return val.replace(regex, pattern.to);
43
+ };
44
+ exports.replaceInString = replaceInString;
45
+ const removeNumberAndDash = (s) => s.replace(/^\d+-/, '');
46
+ exports.removeNumberAndDash = removeNumberAndDash;
47
+ const removeLeadingAndTrailingDash = (s) => s.replace(/^-|-$/g, '');
48
+ exports.removeLeadingAndTrailingDash = removeLeadingAndTrailingDash;
49
+ const replaceSpaceWithDash = (s) => s.replace(/\s+/g, '-');
50
+ exports.replaceSpaceWithDash = replaceSpaceWithDash;
51
+ const cleanName = (name) => {
52
+ name = (0, exports.removeNumberAndDash)(name);
53
+ name = (0, exports.removeLeadingAndTrailingDash)(name);
54
+ return name;
55
+ };
56
+ exports.cleanName = cleanName;
57
+ const getResourceName = (name, convention = {}) => {
58
+ if (process.env.DPA_NAMING_DISABLE_PREFIX === 'true')
59
+ convention.prefix = undefined;
60
+ else if (convention.prefix === undefined)
61
+ convention.prefix = StackEnv_1.stack;
62
+ if (process.env.DPA_NAMING_DISABLE_SUFFIX === 'true')
63
+ convention.suffix = undefined;
64
+ if (process.env.DPA_NAMING_DISABLE_REGION === 'true')
65
+ convention.region = undefined;
66
+ else if (convention.region === undefined)
67
+ convention.region = AzureEnv_1.currentCountryCode;
68
+ if (!name)
69
+ return name;
70
+ name = (0, exports.replaceSpaceWithDash)(name).toLowerCase();
71
+ if (convention.cleanName)
72
+ name = (0, exports.cleanName)(name);
73
+ const rs = [];
74
+ //Add prefix
75
+ if (convention.prefix && !name.startsWith(convention.prefix.toLowerCase())) {
76
+ rs.push(convention.prefix.toLowerCase());
77
+ }
78
+ rs.push(name);
79
+ //Organization
80
+ if (convention.includeOrgName && !name.includes(StackEnv_1.organization.toLowerCase())) {
81
+ rs.push(StackEnv_1.organization.toLowerCase());
82
+ }
83
+ //Region
84
+ if (convention.region && !name.includes(convention.region.toLowerCase())) {
85
+ rs.push(convention.region.toLowerCase());
86
+ }
87
+ //Add the suffix
88
+ if (convention.suffix && !name.endsWith(convention.suffix.toLowerCase()))
89
+ rs.push(convention.suffix.toLowerCase());
90
+ name = rs.join('-');
91
+ if (convention.replaces)
92
+ convention.replaces.forEach((p) => (name = (0, exports.replaceInString)(name, p)));
93
+ if (convention.maxLength && name.length > convention.maxLength)
94
+ name = (0, exports.removeLeadingAndTrailingDash)(name.substring(0, convention.maxLength));
95
+ return name;
96
+ };
97
+ exports.getResourceName = getResourceName;
98
+ const namingCreator = () => {
99
+ const rs = {};
100
+ Object.keys(Rulers_1.rules).forEach((r) => {
101
+ const rule = Rulers_1.rules[r];
102
+ rs[r] = (name) => {
103
+ const n = typeof name === 'string' ? name : name.val;
104
+ const c = typeof name === 'string' ? undefined : name.rule;
105
+ return (0, exports.getResourceName)(n, { ...c, ...rule });
106
+ };
107
+ });
108
+ return rs;
109
+ };
110
+ exports.creators = namingCreator();
111
+ exports.default = exports.creators;
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQ29tbW9uL05hbWluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFpQztBQUVqQyxzREFBd0M7QUFDeEMsMENBQWlEO0FBQ2pELDBDQUFrRDtBQU0zQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixHQUFXLEVBQ1gsT0FBdUIsRUFDZixFQUFFO0lBQ1YsSUFBSSxLQUFhLENBQUM7SUFFbEIsSUFBSSxPQUFPLENBQUMsSUFBSSxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQ25DLGlEQUFpRDtRQUNqRCxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO1NBQU0sQ0FBQztRQUNOLGdEQUFnRDtRQUNoRCxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsMENBQTBDO0lBQzFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FBQztBQWZXLFFBQUEsZUFBZSxtQkFlMUI7QUFFSyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUE1RCxRQUFBLG1CQUFtQix1QkFBeUM7QUFDbEUsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQ3hELENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRGIsUUFBQSw0QkFBNEIsZ0NBQ2Y7QUFDbkIsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVB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