@microsoft/terraform-cdk-constructs 0.0.3-pre.7 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devcontainer/devcontainer.json +2 -2
- package/.jsii +67552 -10179
- package/API.md +69252 -9464
- package/LICENSE +16 -18
- package/README.md +186 -75
- package/cdktf.json +1 -1
- package/docs/ARCHITECTURE.md +836 -0
- package/docs/azapi-testing-architecture.md +482 -0
- package/docs/monitoring-guide.md +206 -0
- package/docs/testing.md +99 -114
- package/docs/versioning-and-migrations-user-guide.md +409 -0
- package/go.mod +12 -12
- package/go.sum +27 -23
- package/lib/azure-actiongroup/index.d.ts +10 -0
- package/lib/azure-actiongroup/index.js +11 -1
- package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
- package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
- package/lib/azure-actiongroup/lib/action-group.d.ts +312 -0
- package/lib/azure-actiongroup/lib/action-group.js +201 -0
- package/lib/azure-actiongroup/lib/index.d.ts +5 -1
- package/lib/azure-actiongroup/lib/index.js +6 -2
- package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
- package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
- package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
- package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
- package/lib/azure-activitylogalert/index.d.ts +11 -0
- package/lib/azure-activitylogalert/index.js +28 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +236 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +212 -0
- package/lib/azure-activitylogalert/lib/index.d.ts +5 -0
- package/lib/azure-activitylogalert/lib/index.js +22 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
- package/lib/azure-aks/index.d.ts +9 -0
- package/lib/azure-aks/index.js +28 -0
- package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
- package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
- package/lib/azure-aks/lib/aks-cluster.d.ts +395 -0
- package/lib/azure-aks/lib/aks-cluster.js +489 -0
- package/lib/azure-aks/lib/index.d.ts +11 -0
- package/lib/azure-aks/lib/index.js +38 -0
- package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
- package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
- package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
- package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
- package/lib/azure-diagnosticsettings/index.d.ts +7 -0
- package/lib/azure-diagnosticsettings/index.js +24 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +193 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +200 -0
- package/lib/azure-diagnosticsettings/lib/index.d.ts +8 -0
- package/lib/azure-diagnosticsettings/lib/index.js +25 -0
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
- package/lib/azure-metricalert/index.d.ts +10 -1
- package/lib/azure-metricalert/index.js +11 -2
- package/lib/azure-metricalert/lib/index.d.ts +4 -0
- package/lib/azure-metricalert/lib/index.js +5 -1
- package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
- package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
- package/lib/azure-metricalert/lib/metric-alert.d.ts +337 -49
- package/lib/azure-metricalert/lib/metric-alert.js +228 -104
- package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
- package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
- package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
- package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
- package/lib/azure-networkinterface/index.d.ts +4 -0
- package/lib/azure-networkinterface/index.js +21 -0
- package/lib/azure-networkinterface/lib/index.d.ts +6 -0
- package/lib/azure-networkinterface/lib/index.js +22 -0
- package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
- package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
- package/lib/azure-networkinterface/lib/network-interface.d.ts +265 -0
- package/lib/azure-networkinterface/lib/network-interface.js +228 -0
- package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
- package/lib/azure-networkinterface/test/network-interface.integ.js +102 -0
- package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
- package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
- package/lib/azure-networksecuritygroup/index.d.ts +5 -0
- package/lib/azure-networksecuritygroup/index.js +6 -1
- package/lib/azure-networksecuritygroup/lib/index.d.ts +5 -2
- package/lib/azure-networksecuritygroup/lib/index.js +14 -17
- package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +268 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +248 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
- package/lib/azure-publicipaddress/index.d.ts +6 -0
- package/lib/azure-publicipaddress/index.js +23 -0
- package/lib/azure-publicipaddress/lib/index.d.ts +9 -0
- package/lib/azure-publicipaddress/lib/index.js +19 -0
- package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
- package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +256 -0
- package/lib/azure-publicipaddress/lib/public-ip-address.js +267 -0
- package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
- package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
- package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
- package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
- package/lib/azure-resourcegroup/index.d.ts +37 -0
- package/lib/azure-resourcegroup/index.js +39 -1
- package/lib/azure-resourcegroup/lib/index.d.ts +44 -0
- package/lib/azure-resourcegroup/lib/index.js +43 -1
- package/lib/azure-resourcegroup/lib/resource-group-schemas.d.ts +40 -0
- package/lib/azure-resourcegroup/lib/resource-group-schemas.js +243 -0
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +170 -46
- package/lib/azure-resourcegroup/lib/resource-group.js +222 -56
- package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +9 -0
- package/lib/azure-resourcegroup/test/resource-group.integ.js +72 -0
- package/lib/azure-resourcegroup/test/resource-group.spec.d.ts +9 -0
- package/lib/azure-resourcegroup/test/resource-group.spec.js +554 -0
- package/lib/azure-storageaccount/index.d.ts +19 -0
- package/lib/azure-storageaccount/index.js +20 -1
- package/lib/azure-storageaccount/lib/index.d.ts +8 -5
- package/lib/azure-storageaccount/lib/index.js +9 -6
- package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +138 -0
- package/lib/azure-storageaccount/lib/storage-account-schemas.js +378 -0
- package/lib/azure-storageaccount/lib/storage-account.d.ts +348 -0
- package/lib/azure-storageaccount/lib/storage-account.js +365 -0
- package/lib/azure-storageaccount/test/storage-account.integ.d.ts +9 -0
- package/lib/azure-storageaccount/test/storage-account.integ.js +151 -0
- package/lib/azure-storageaccount/test/storage-account.spec.d.ts +4 -0
- package/lib/azure-storageaccount/test/storage-account.spec.js +315 -0
- package/lib/azure-subnet/index.d.ts +4 -0
- package/lib/azure-subnet/index.js +21 -0
- package/lib/azure-subnet/lib/index.d.ts +5 -0
- package/lib/azure-subnet/lib/index.js +22 -0
- package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
- package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
- package/lib/azure-subnet/lib/subnet.d.ts +285 -0
- package/lib/azure-subnet/lib/subnet.js +254 -0
- package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
- package/lib/azure-subnet/test/subnet.integ.js +80 -0
- package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
- package/lib/azure-subnet/test/subnet.spec.js +396 -0
- package/lib/azure-virtualmachine/index.d.ts +6 -0
- package/lib/azure-virtualmachine/index.js +7 -1
- package/lib/azure-virtualmachine/lib/index.d.ts +11 -2
- package/lib/azure-virtualmachine/lib/index.js +22 -3
- package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
- package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +377 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.js +462 -0
- package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
- package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
- package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
- package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
- package/lib/azure-virtualnetwork/index.d.ts +9 -0
- package/lib/azure-virtualnetwork/index.js +11 -1
- package/lib/azure-virtualnetwork/lib/index.d.ts +9 -2
- package/lib/azure-virtualnetwork/lib/index.js +20 -17
- package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
- package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +213 -0
- package/lib/azure-virtualnetwork/lib/virtual-network.js +245 -0
- package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
- package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
- package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
- package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
- package/lib/azure-vmss/index.d.ts +6 -0
- package/lib/azure-vmss/index.js +23 -0
- package/lib/azure-vmss/lib/index.d.ts +9 -0
- package/lib/azure-vmss/lib/index.js +39 -0
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +258 -0
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +503 -0
- package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
- package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
- package/lib/core-azure/lib/azapi/azapi-exports.d.ts +16 -0
- package/lib/core-azure/lib/azapi/azapi-exports.js +38 -0
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +481 -0
- package/lib/core-azure/lib/azapi/azapi-resource.js +505 -0
- package/lib/core-azure/lib/azapi/azapi-resource.spec.d.ts +7 -0
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +545 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +74 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +203 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +341 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +671 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +344 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +583 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +128 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +281 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +285 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +491 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +518 -0
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +839 -0
- package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -0
- package/lib/core-azure/lib/azapi/providers-azapi/index.js +15 -0
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +447 -0
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +844 -0
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +689 -0
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +1140 -0
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +400 -0
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +706 -0
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +450 -0
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +788 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.d.ts +215 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +567 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.spec.d.ts +7 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.spec.js +630 -0
- package/lib/core-azure/lib/index.d.ts +18 -3
- package/lib/core-azure/lib/index.js +24 -4
- package/lib/core-azure/lib/version-manager/api-version-manager.d.ts +253 -0
- package/lib/core-azure/lib/version-manager/api-version-manager.js +509 -0
- package/lib/core-azure/lib/version-manager/api-version-manager.spec.d.ts +7 -0
- package/lib/core-azure/lib/version-manager/api-version-manager.spec.js +510 -0
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.d.ts +669 -0
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +202 -0
- package/lib/core-azure/lib/version-manager/version-manager.d.ts +9 -0
- package/lib/core-azure/lib/version-manager/version-manager.js +23 -0
- package/lib/index.d.ts +54 -13
- package/lib/index.js +76 -15
- package/lib/testing/index.d.ts +124 -1
- package/lib/testing/index.js +480 -4
- package/lib/testing/lib/cleanup.d.ts +229 -0
- package/lib/testing/lib/cleanup.js +331 -0
- package/lib/testing/lib/metadata.d.ts +151 -0
- package/lib/testing/lib/metadata.js +180 -0
- package/lib/testing/lib/naming.d.ts +96 -0
- package/lib/testing/lib/naming.js +336 -0
- package/lib/util/azureTenantIdHelpers.js +3 -4
- package/lib/util/randomName.js +2 -3
- package/node_modules/uuid/LICENSE.md +9 -0
- package/node_modules/uuid/README.md +510 -0
- package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
- package/node_modules/uuid/dist/cjs/index.js +31 -0
- package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/max.js +3 -0
- package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/md5.js +13 -0
- package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
- package/node_modules/uuid/dist/cjs/native.js +4 -0
- package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/nil.js +3 -0
- package/node_modules/uuid/dist/cjs/package.json +1 -0
- package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/parse.js +11 -0
- package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/regex.js +3 -0
- package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
- package/node_modules/uuid/dist/cjs/rng.js +13 -0
- package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/sha1.js +13 -0
- package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/cjs/stringify.js +39 -0
- package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
- package/node_modules/uuid/dist/cjs/types.js +2 -0
- package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
- package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
- package/node_modules/uuid/dist/cjs/v1.js +87 -0
- package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
- package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v3.js +14 -0
- package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
- package/node_modules/uuid/dist/cjs/v35.js +41 -0
- package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/v4.js +29 -0
- package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v5.js +14 -0
- package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/v6.js +19 -0
- package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
- package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v7.js +69 -0
- package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/validate.js +7 -0
- package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/version.js +10 -0
- package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
- package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
- package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
- package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
- package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
- package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
- package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
- package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
- package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
- package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
- package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
- package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
- package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
- package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
- package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
- package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
- package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
- package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
- package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
- package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
- package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
- package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
- package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
- package/node_modules/uuid/dist/esm/bin/uuid +2 -0
- package/node_modules/uuid/dist/esm/index.d.ts +15 -0
- package/node_modules/uuid/dist/esm/index.js +14 -0
- package/node_modules/uuid/dist/esm/max.d.ts +2 -0
- package/node_modules/uuid/dist/esm/max.js +1 -0
- package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
- package/node_modules/uuid/dist/esm/md5.js +11 -0
- package/node_modules/uuid/dist/esm/native.d.ts +6 -0
- package/node_modules/uuid/dist/esm/native.js +2 -0
- package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
- package/node_modules/uuid/dist/esm/nil.js +1 -0
- package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
- package/node_modules/uuid/dist/esm/parse.js +9 -0
- package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
- package/node_modules/uuid/dist/esm/regex.js +1 -0
- package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
- package/node_modules/uuid/dist/esm/rng.js +10 -0
- package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
- package/node_modules/uuid/dist/esm/sha1.js +11 -0
- package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/esm/stringify.js +35 -0
- package/node_modules/uuid/dist/esm/types.d.ts +21 -0
- package/node_modules/uuid/dist/esm/types.js +1 -0
- package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
- package/node_modules/uuid/dist/esm/v1.js +83 -0
- package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v3.js +9 -0
- package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
- package/node_modules/uuid/dist/esm/v35.js +36 -0
- package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
- package/node_modules/uuid/dist/esm/v4.js +27 -0
- package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v5.js +9 -0
- package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
- package/node_modules/uuid/dist/esm/v6.js +17 -0
- package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v7.js +65 -0
- package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
- package/node_modules/uuid/dist/esm/validate.js +5 -0
- package/node_modules/uuid/dist/esm/version.d.ts +2 -0
- package/node_modules/uuid/dist/esm/version.js +8 -0
- package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
- package/node_modules/uuid/dist/esm-browser/index.js +14 -0
- package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/max.js +1 -0
- package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
- package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/native.js +2 -0
- package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
- package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
- package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
- package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
- package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
- package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
- package/node_modules/uuid/dist/esm-browser/types.js +1 -0
- package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
- package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
- package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
- package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
- package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
- package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
- package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
- package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
- package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
- package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/version.js +8 -0
- package/node_modules/uuid/package.json +132 -0
- package/package.json +51 -33
- package/scripts/cleanup-test-resources.ts +369 -0
- package/cdktf.out/manifest.json +0 -13
- package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +0 -111
- package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +0 -588
- package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +0 -245
- package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +0 -179
- package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +0 -236
- package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +0 -436
- package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +0 -152
- package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +0 -209
- package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +0 -439
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +0 -283
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +0 -261
- package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +0 -309
- package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +0 -161
- package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +0 -271
- package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +0 -122
- package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +0 -88
- package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +0 -339
- package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +0 -264
- package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +0 -261
- package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +0 -280
- package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +0 -167
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +0 -49
- package/lib/azure-actiongroup/lib/actiongroup.js +0 -85
- package/lib/azure-actiongroup/model/action-group-props.d.ts +0 -47
- package/lib/azure-actiongroup/model/action-group-props.js +0 -3
- package/lib/azure-actiongroup/model/arm-role-receiver-props.d.ts +0 -20
- package/lib/azure-actiongroup/model/arm-role-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/azure-app-push-receiver-props.d.ts +0 -14
- package/lib/azure-actiongroup/model/azure-app-push-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/email-receiver-props.d.ts +0 -19
- package/lib/azure-actiongroup/model/email-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/eventhub-receiver-props.d.ts +0 -23
- package/lib/azure-actiongroup/model/eventhub-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/function.d.ts +0 -40
- package/lib/azure-actiongroup/model/function.js +0 -118
- package/lib/azure-actiongroup/model/index.d.ts +0 -10
- package/lib/azure-actiongroup/model/index.js +0 -27
- package/lib/azure-actiongroup/model/logic-app-receiver-props.d.ts +0 -23
- package/lib/azure-actiongroup/model/logic-app-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/sms-receiver-props.d.ts +0 -18
- package/lib/azure-actiongroup/model/sms-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/voice-receiver-props.d.ts +0 -18
- package/lib/azure-actiongroup/model/voice-receiver-props.js +0 -3
- package/lib/azure-actiongroup/model/webhook-receiver-props.d.ts +0 -18
- package/lib/azure-actiongroup/model/webhook-receiver-props.js +0 -3
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.d.ts +0 -1
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +0 -294
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +0 -5
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +0 -66
- package/lib/azure-applicationgateway/index.d.ts +0 -1
- package/lib/azure-applicationgateway/index.js +0 -18
- package/lib/azure-applicationgateway/lib/gateway.d.ts +0 -248
- package/lib/azure-applicationgateway/lib/gateway.js +0 -199
- package/lib/azure-applicationgateway/lib/index.d.ts +0 -1
- package/lib/azure-applicationgateway/lib/index.js +0 -18
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.d.ts +0 -1
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +0 -106
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +0 -5
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +0 -267
- package/lib/azure-applicationinsights/index.d.ts +0 -1
- package/lib/azure-applicationinsights/index.js +0 -18
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +0 -110
- package/lib/azure-applicationinsights/lib/appinsights.js +0 -134
- package/lib/azure-applicationinsights/lib/index.d.ts +0 -1
- package/lib/azure-applicationinsights/lib/index.js +0 -18
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.d.ts +0 -1
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +0 -55
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +0 -5
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +0 -87
- package/lib/azure-containerregistry/index.d.ts +0 -1
- package/lib/azure-containerregistry/index.js +0 -18
- package/lib/azure-containerregistry/lib/index.d.ts +0 -1
- package/lib/azure-containerregistry/lib/index.js +0 -18
- package/lib/azure-containerregistry/lib/registry.d.ts +0 -70
- package/lib/azure-containerregistry/lib/registry.js +0 -76
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.d.ts +0 -1
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +0 -50
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +0 -5
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +0 -57
- package/lib/azure-datalake/index.d.ts +0 -1
- package/lib/azure-datalake/index.js +0 -18
- package/lib/azure-datalake/lib/datalake.d.ts +0 -64
- package/lib/azure-datalake/lib/datalake.js +0 -92
- package/lib/azure-datalake/lib/filesystem.d.ts +0 -70
- package/lib/azure-datalake/lib/filesystem.js +0 -83
- package/lib/azure-datalake/lib/index.d.ts +0 -3
- package/lib/azure-datalake/lib/index.js +0 -20
- package/lib/azure-datalake/lib/path.d.ts +0 -49
- package/lib/azure-datalake/lib/path.js +0 -51
- package/lib/azure-eventhub/index.d.ts +0 -1
- package/lib/azure-eventhub/index.js +0 -18
- package/lib/azure-eventhub/lib/authorization.d.ts +0 -58
- package/lib/azure-eventhub/lib/authorization.js +0 -84
- package/lib/azure-eventhub/lib/cluster.d.ts +0 -56
- package/lib/azure-eventhub/lib/cluster.js +0 -64
- package/lib/azure-eventhub/lib/consumer.d.ts +0 -54
- package/lib/azure-eventhub/lib/consumer.js +0 -59
- package/lib/azure-eventhub/lib/index.d.ts +0 -6
- package/lib/azure-eventhub/lib/index.js +0 -23
- package/lib/azure-eventhub/lib/instance.d.ts +0 -164
- package/lib/azure-eventhub/lib/instance.js +0 -184
- package/lib/azure-eventhub/lib/kusto-connection.d.ts +0 -109
- package/lib/azure-eventhub/lib/kusto-connection.js +0 -76
- package/lib/azure-eventhub/lib/namespace.d.ts +0 -151
- package/lib/azure-eventhub/lib/namespace.js +0 -131
- package/lib/azure-eventhub/test/AzureEventhub.spec.d.ts +0 -1
- package/lib/azure-eventhub/test/AzureEventhub.spec.js +0 -56
- package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +0 -5
- package/lib/azure-eventhub/test/ExampleAzureEventhub.js +0 -72
- package/lib/azure-functionapp/index.d.ts +0 -1
- package/lib/azure-functionapp/index.js +0 -18
- package/lib/azure-functionapp/lib/functionapplinux.d.ts +0 -211
- package/lib/azure-functionapp/lib/functionapplinux.js +0 -141
- package/lib/azure-functionapp/lib/index.d.ts +0 -1
- package/lib/azure-functionapp/lib/index.js +0 -18
- package/lib/azure-functionapp/serviceplanskus.d.ts +0 -70
- package/lib/azure-functionapp/serviceplanskus.js +0 -81
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.d.ts +0 -1
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +0 -48
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +0 -5
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +0 -123
- package/lib/azure-keyvault/index.d.ts +0 -1
- package/lib/azure-keyvault/index.js +0 -18
- package/lib/azure-keyvault/lib/certificate.d.ts +0 -133
- package/lib/azure-keyvault/lib/certificate.js +0 -146
- package/lib/azure-keyvault/lib/index.d.ts +0 -5
- package/lib/azure-keyvault/lib/index.js +0 -22
- package/lib/azure-keyvault/lib/key.d.ts +0 -72
- package/lib/azure-keyvault/lib/key.js +0 -69
- package/lib/azure-keyvault/lib/policy.d.ts +0 -76
- package/lib/azure-keyvault/lib/policy.js +0 -56
- package/lib/azure-keyvault/lib/secret.d.ts +0 -70
- package/lib/azure-keyvault/lib/secret.js +0 -64
- package/lib/azure-keyvault/lib/vault.d.ts +0 -282
- package/lib/azure-keyvault/lib/vault.js +0 -392
- package/lib/azure-keyvault/test/AzureKeyVault.spec.d.ts +0 -1
- package/lib/azure-keyvault/test/AzureKeyVault.spec.js +0 -63
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +0 -5
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +0 -112
- package/lib/azure-kubernetes/index.d.ts +0 -1
- package/lib/azure-kubernetes/index.js +0 -18
- package/lib/azure-kubernetes/lib/cluster.d.ts +0 -93
- package/lib/azure-kubernetes/lib/cluster.js +0 -63
- package/lib/azure-kubernetes/lib/index.d.ts +0 -1
- package/lib/azure-kubernetes/lib/index.js +0 -18
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.d.ts +0 -1
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +0 -56
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +0 -5
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +0 -65
- package/lib/azure-kusto/index.d.ts +0 -1
- package/lib/azure-kusto/index.js +0 -18
- package/lib/azure-kusto/lib/cluster.d.ts +0 -136
- package/lib/azure-kusto/lib/cluster.js +0 -138
- package/lib/azure-kusto/lib/compute-specification.d.ts +0 -71
- package/lib/azure-kusto/lib/compute-specification.js +0 -651
- package/lib/azure-kusto/lib/database.d.ts +0 -162
- package/lib/azure-kusto/lib/database.js +0 -180
- package/lib/azure-kusto/lib/index.d.ts +0 -3
- package/lib/azure-kusto/lib/index.js +0 -20
- package/lib/azure-kusto/test/AzureKusto.spec.d.ts +0 -1
- package/lib/azure-kusto/test/AzureKusto.spec.js +0 -50
- package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +0 -5
- package/lib/azure-kusto/test/ExampleAzureKusto.js +0 -71
- package/lib/azure-loganalytics/index.d.ts +0 -1
- package/lib/azure-loganalytics/index.js +0 -18
- package/lib/azure-loganalytics/lib/index.d.ts +0 -1
- package/lib/azure-loganalytics/lib/index.js +0 -18
- package/lib/azure-loganalytics/lib/workspace.d.ts +0 -163
- package/lib/azure-loganalytics/lib/workspace.js +0 -126
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.d.ts +0 -1
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +0 -50
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +0 -5
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +0 -115
- package/lib/azure-metricalert/model/action-props.d.ts +0 -11
- package/lib/azure-metricalert/model/action-props.js +0 -3
- package/lib/azure-metricalert/model/criteria-base-props.d.ts +0 -38
- package/lib/azure-metricalert/model/criteria-base-props.js +0 -3
- package/lib/azure-metricalert/model/criteria-dimension-props.d.ts +0 -21
- package/lib/azure-metricalert/model/criteria-dimension-props.js +0 -3
- package/lib/azure-metricalert/model/criteria-props.d.ts +0 -12
- package/lib/azure-metricalert/model/criteria-props.js +0 -3
- package/lib/azure-metricalert/model/dynamic-criteria-props.d.ts +0 -29
- package/lib/azure-metricalert/model/dynamic-criteria-props.js +0 -3
- package/lib/azure-metricalert/model/function.d.ts +0 -28
- package/lib/azure-metricalert/model/function.js +0 -78
- package/lib/azure-metricalert/model/index.d.ts +0 -7
- package/lib/azure-metricalert/model/index.js +0 -24
- package/lib/azure-metricalert/model/metric-alert-props.d.ts +0 -86
- package/lib/azure-metricalert/model/metric-alert-props.js +0 -3
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.d.ts +0 -1
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +0 -63
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +0 -5
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +0 -81
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.d.ts +0 -77
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +0 -608
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +0 -190
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +0 -172
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.d.ts +0 -1
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +0 -54
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +0 -5
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +0 -97
- package/lib/azure-queryrulealert/index.d.ts +0 -1
- package/lib/azure-queryrulealert/index.js +0 -18
- package/lib/azure-queryrulealert/lib/index.d.ts +0 -1
- package/lib/azure-queryrulealert/lib/index.js +0 -18
- package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +0 -175
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +0 -205
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.d.ts +0 -1
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +0 -67
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +0 -5
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +0 -67
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.d.ts +0 -1
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +0 -41
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +0 -5
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +0 -29
- package/lib/azure-storageaccount/lib/account.d.ts +0 -232
- package/lib/azure-storageaccount/lib/account.js +0 -225
- package/lib/azure-storageaccount/lib/container.d.ts +0 -122
- package/lib/azure-storageaccount/lib/container.js +0 -167
- package/lib/azure-storageaccount/lib/fileshare.d.ts +0 -105
- package/lib/azure-storageaccount/lib/fileshare.js +0 -126
- package/lib/azure-storageaccount/lib/queue.d.ts +0 -35
- package/lib/azure-storageaccount/lib/queue.js +0 -52
- package/lib/azure-storageaccount/lib/table.d.ts +0 -38
- package/lib/azure-storageaccount/lib/table.js +0 -55
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.d.ts +0 -1
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +0 -45
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +0 -5
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +0 -102
- package/lib/azure-virtualmachine/lib/image-references.d.ts +0 -22
- package/lib/azure-virtualmachine/lib/image-references.js +0 -128
- package/lib/azure-virtualmachine/lib/vm.d.ts +0 -281
- package/lib/azure-virtualmachine/lib/vm.js +0 -283
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.d.ts +0 -1
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +0 -48
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.d.ts +0 -1
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +0 -50
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +0 -5
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +0 -106
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +0 -5
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +0 -102
- package/lib/azure-virtualmachinescaleset/index.d.ts +0 -1
- package/lib/azure-virtualmachinescaleset/index.js +0 -18
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +0 -324
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +0 -264
- package/lib/azure-virtualmachinescaleset/lib/index.d.ts +0 -1
- package/lib/azure-virtualmachinescaleset/lib/index.js +0 -18
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.d.ts +0 -1
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +0 -48
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.d.ts +0 -1
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +0 -50
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +0 -5
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +0 -107
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +0 -5
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +0 -103
- package/lib/azure-virtualnetwork/lib/network.d.ts +0 -122
- package/lib/azure-virtualnetwork/lib/network.js +0 -120
- package/lib/azure-virtualnetwork/lib/peering.d.ts +0 -90
- package/lib/azure-virtualnetwork/lib/peering.js +0 -71
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.d.ts +0 -1
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +0 -48
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +0 -5
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +0 -88
- package/lib/core-azure/lib/diagsettings.d.ts +0 -89
- package/lib/core-azure/lib/diagsettings.js +0 -83
- package/lib/core-azure/lib/rbac.d.ts +0 -50
- package/lib/core-azure/lib/rbac.js +0 -48
- package/lib/core-azure/lib/resource.d.ts +0 -62
- package/lib/core-azure/lib/resource.js +0 -118
- package/lib/core-azure/test/AzureResource.spec.d.ts +0 -1
- package/lib/core-azure/test/AzureResource.spec.js +0 -19
- package/lib/core-azure/test/ExampleAzureResource.d.ts +0 -5
- package/lib/core-azure/test/ExampleAzureResource.js +0 -67
- package/node_modules/moment/CHANGELOG.md +0 -996
- package/node_modules/moment/LICENSE +0 -22
- package/node_modules/moment/README.md +0 -55
- package/node_modules/moment/dist/locale/af.js +0 -71
- package/node_modules/moment/dist/locale/ar-dz.js +0 -156
- package/node_modules/moment/dist/locale/ar-kw.js +0 -55
- package/node_modules/moment/dist/locale/ar-ly.js +0 -171
- package/node_modules/moment/dist/locale/ar-ma.js +0 -56
- package/node_modules/moment/dist/locale/ar-ps.js +0 -112
- package/node_modules/moment/dist/locale/ar-sa.js +0 -105
- package/node_modules/moment/dist/locale/ar-tn.js +0 -55
- package/node_modules/moment/dist/locale/ar.js +0 -189
- package/node_modules/moment/dist/locale/az.js +0 -102
- package/node_modules/moment/dist/locale/be.js +0 -142
- package/node_modules/moment/dist/locale/bg.js +0 -87
- package/node_modules/moment/dist/locale/bm.js +0 -52
- package/node_modules/moment/dist/locale/bn-bd.js +0 -129
- package/node_modules/moment/dist/locale/bn.js +0 -119
- package/node_modules/moment/dist/locale/bo.js +0 -124
- package/node_modules/moment/dist/locale/br.js +0 -168
- package/node_modules/moment/dist/locale/bs.js +0 -160
- package/node_modules/moment/dist/locale/ca.js +0 -100
- package/node_modules/moment/dist/locale/cs.js +0 -181
- package/node_modules/moment/dist/locale/cv.js +0 -63
- package/node_modules/moment/dist/locale/cy.js +0 -98
- package/node_modules/moment/dist/locale/da.js +0 -53
- package/node_modules/moment/dist/locale/de-at.js +0 -79
- package/node_modules/moment/dist/locale/de-ch.js +0 -78
- package/node_modules/moment/dist/locale/de.js +0 -78
- package/node_modules/moment/dist/locale/dv.js +0 -90
- package/node_modules/moment/dist/locale/el.js +0 -106
- package/node_modules/moment/dist/locale/en-au.js +0 -68
- package/node_modules/moment/dist/locale/en-ca.js +0 -64
- package/node_modules/moment/dist/locale/en-gb.js +0 -68
- package/node_modules/moment/dist/locale/en-ie.js +0 -68
- package/node_modules/moment/dist/locale/en-il.js +0 -64
- package/node_modules/moment/dist/locale/en-in.js +0 -68
- package/node_modules/moment/dist/locale/en-nz.js +0 -68
- package/node_modules/moment/dist/locale/en-sg.js +0 -68
- package/node_modules/moment/dist/locale/eo.js +0 -68
- package/node_modules/moment/dist/locale/es-do.js +0 -108
- package/node_modules/moment/dist/locale/es-mx.js +0 -110
- package/node_modules/moment/dist/locale/es-us.js +0 -110
- package/node_modules/moment/dist/locale/es.js +0 -110
- package/node_modules/moment/dist/locale/et.js +0 -78
- package/node_modules/moment/dist/locale/eu.js +0 -65
- package/node_modules/moment/dist/locale/fa.js +0 -113
- package/node_modules/moment/dist/locale/fi.js +0 -124
- package/node_modules/moment/dist/locale/fil.js +0 -58
- package/node_modules/moment/dist/locale/fo.js +0 -57
- package/node_modules/moment/dist/locale/fr-ca.js +0 -70
- package/node_modules/moment/dist/locale/fr-ch.js +0 -74
- package/node_modules/moment/dist/locale/fr.js +0 -108
- package/node_modules/moment/dist/locale/fy.js +0 -75
- package/node_modules/moment/dist/locale/ga.js +0 -95
- package/node_modules/moment/dist/locale/gd.js +0 -95
- package/node_modules/moment/dist/locale/gl.js +0 -75
- package/node_modules/moment/dist/locale/gom-deva.js +0 -126
- package/node_modules/moment/dist/locale/gom-latn.js +0 -124
- package/node_modules/moment/dist/locale/gu.js +0 -122
- package/node_modules/moment/dist/locale/he.js +0 -94
- package/node_modules/moment/dist/locale/hi.js +0 -168
- package/node_modules/moment/dist/locale/hr.js +0 -156
- package/node_modules/moment/dist/locale/hu.js +0 -118
- package/node_modules/moment/dist/locale/hy-am.js +0 -94
- package/node_modules/moment/dist/locale/id.js +0 -76
- package/node_modules/moment/dist/locale/is.js +0 -140
- package/node_modules/moment/dist/locale/it-ch.js +0 -64
- package/node_modules/moment/dist/locale/it.js +0 -106
- package/node_modules/moment/dist/locale/ja.js +0 -148
- package/node_modules/moment/dist/locale/jv.js +0 -76
- package/node_modules/moment/dist/locale/ka.js +0 -92
- package/node_modules/moment/dist/locale/kk.js +0 -82
- package/node_modules/moment/dist/locale/km.js +0 -103
- package/node_modules/moment/dist/locale/kn.js +0 -124
- package/node_modules/moment/dist/locale/ko.js +0 -75
- package/node_modules/moment/dist/locale/ku-kmr.js +0 -121
- package/node_modules/moment/dist/locale/ku.js +0 -118
- package/node_modules/moment/dist/locale/ky.js +0 -84
- package/node_modules/moment/dist/locale/lb.js +0 -137
- package/node_modules/moment/dist/locale/lo.js +0 -66
- package/node_modules/moment/dist/locale/lt.js +0 -125
- package/node_modules/moment/dist/locale/lv.js +0 -94
- package/node_modules/moment/dist/locale/me.js +0 -117
- package/node_modules/moment/dist/locale/mi.js +0 -60
- package/node_modules/moment/dist/locale/mk.js +0 -85
- package/node_modules/moment/dist/locale/ml.js +0 -82
- package/node_modules/moment/dist/locale/mn.js +0 -100
- package/node_modules/moment/dist/locale/mr.js +0 -203
- package/node_modules/moment/dist/locale/ms-my.js +0 -76
- package/node_modules/moment/dist/locale/ms.js +0 -75
- package/node_modules/moment/dist/locale/mt.js +0 -56
- package/node_modules/moment/dist/locale/my.js +0 -91
- package/node_modules/moment/dist/locale/nb.js +0 -60
- package/node_modules/moment/dist/locale/ne.js +0 -121
- package/node_modules/moment/dist/locale/nl-be.js +0 -102
- package/node_modules/moment/dist/locale/nl.js +0 -104
- package/node_modules/moment/dist/locale/nn.js +0 -59
- package/node_modules/moment/dist/locale/oc-lnc.js +0 -85
- package/node_modules/moment/dist/locale/pa-in.js +0 -122
- package/node_modules/moment/dist/locale/pl.js +0 -140
- package/node_modules/moment/dist/locale/pt-br.js +0 -58
- package/node_modules/moment/dist/locale/pt.js +0 -63
- package/node_modules/moment/dist/locale/ro.js +0 -76
- package/node_modules/moment/dist/locale/ru.js +0 -213
- package/node_modules/moment/dist/locale/sd.js +0 -81
- package/node_modules/moment/dist/locale/se.js +0 -57
- package/node_modules/moment/dist/locale/si.js +0 -69
- package/node_modules/moment/dist/locale/sk.js +0 -145
- package/node_modules/moment/dist/locale/sl.js +0 -171
- package/node_modules/moment/dist/locale/sq.js +0 -65
- package/node_modules/moment/dist/locale/sr-cyrl.js +0 -127
- package/node_modules/moment/dist/locale/sr.js +0 -129
- package/node_modules/moment/dist/locale/ss.js +0 -84
- package/node_modules/moment/dist/locale/sv.js +0 -68
- package/node_modules/moment/dist/locale/sw.js +0 -55
- package/node_modules/moment/dist/locale/ta.js +0 -131
- package/node_modules/moment/dist/locale/te.js +0 -88
- package/node_modules/moment/dist/locale/tet.js +0 -68
- package/node_modules/moment/dist/locale/tg.js +0 -117
- package/node_modules/moment/dist/locale/th.js +0 -65
- package/node_modules/moment/dist/locale/tk.js +0 -91
- package/node_modules/moment/dist/locale/tl-ph.js +0 -57
- package/node_modules/moment/dist/locale/tlh.js +0 -124
- package/node_modules/moment/dist/locale/tr.js +0 -106
- package/node_modules/moment/dist/locale/tzl.js +0 -89
- package/node_modules/moment/dist/locale/tzm-latn.js +0 -54
- package/node_modules/moment/dist/locale/tzm.js +0 -54
- package/node_modules/moment/dist/locale/ug-cn.js +0 -111
- package/node_modules/moment/dist/locale/uk.js +0 -167
- package/node_modules/moment/dist/locale/ur.js +0 -82
- package/node_modules/moment/dist/locale/uz-latn.js +0 -54
- package/node_modules/moment/dist/locale/uz.js +0 -51
- package/node_modules/moment/dist/locale/vi.js +0 -80
- package/node_modules/moment/dist/locale/x-pseudo.js +0 -73
- package/node_modules/moment/dist/locale/yo.js +0 -53
- package/node_modules/moment/dist/locale/zh-cn.js +0 -120
- package/node_modules/moment/dist/locale/zh-hk.js +0 -101
- package/node_modules/moment/dist/locale/zh-mo.js +0 -100
- package/node_modules/moment/dist/locale/zh-tw.js +0 -99
- package/node_modules/moment/dist/moment.js +0 -5680
- package/node_modules/moment/ender.js +0 -1
- package/node_modules/moment/locale/af.js +0 -82
- package/node_modules/moment/locale/ar-dz.js +0 -167
- package/node_modules/moment/locale/ar-kw.js +0 -66
- package/node_modules/moment/locale/ar-ly.js +0 -182
- package/node_modules/moment/locale/ar-ma.js +0 -67
- package/node_modules/moment/locale/ar-ps.js +0 -123
- package/node_modules/moment/locale/ar-sa.js +0 -116
- package/node_modules/moment/locale/ar-tn.js +0 -66
- package/node_modules/moment/locale/ar.js +0 -200
- package/node_modules/moment/locale/az.js +0 -113
- package/node_modules/moment/locale/be.js +0 -153
- package/node_modules/moment/locale/bg.js +0 -98
- package/node_modules/moment/locale/bm.js +0 -62
- package/node_modules/moment/locale/bn-bd.js +0 -140
- package/node_modules/moment/locale/bn.js +0 -130
- package/node_modules/moment/locale/bo.js +0 -135
- package/node_modules/moment/locale/br.js +0 -179
- package/node_modules/moment/locale/bs.js +0 -171
- package/node_modules/moment/locale/ca.js +0 -111
- package/node_modules/moment/locale/cs.js +0 -192
- package/node_modules/moment/locale/cv.js +0 -74
- package/node_modules/moment/locale/cy.js +0 -109
- package/node_modules/moment/locale/da.js +0 -64
- package/node_modules/moment/locale/de-at.js +0 -90
- package/node_modules/moment/locale/de-ch.js +0 -87
- package/node_modules/moment/locale/de.js +0 -89
- package/node_modules/moment/locale/dv.js +0 -101
- package/node_modules/moment/locale/el.js +0 -117
- package/node_modules/moment/locale/en-au.js +0 -79
- package/node_modules/moment/locale/en-ca.js +0 -75
- package/node_modules/moment/locale/en-gb.js +0 -79
- package/node_modules/moment/locale/en-ie.js +0 -79
- package/node_modules/moment/locale/en-il.js +0 -75
- package/node_modules/moment/locale/en-in.js +0 -79
- package/node_modules/moment/locale/en-nz.js +0 -79
- package/node_modules/moment/locale/en-sg.js +0 -79
- package/node_modules/moment/locale/eo.js +0 -79
- package/node_modules/moment/locale/es-do.js +0 -119
- package/node_modules/moment/locale/es-mx.js +0 -121
- package/node_modules/moment/locale/es-us.js +0 -121
- package/node_modules/moment/locale/es.js +0 -121
- package/node_modules/moment/locale/et.js +0 -89
- package/node_modules/moment/locale/eu.js +0 -76
- package/node_modules/moment/locale/fa.js +0 -124
- package/node_modules/moment/locale/fi.js +0 -135
- package/node_modules/moment/locale/fil.js +0 -69
- package/node_modules/moment/locale/fo.js +0 -68
- package/node_modules/moment/locale/fr-ca.js +0 -81
- package/node_modules/moment/locale/fr-ch.js +0 -85
- package/node_modules/moment/locale/fr.js +0 -119
- package/node_modules/moment/locale/fy.js +0 -86
- package/node_modules/moment/locale/ga.js +0 -106
- package/node_modules/moment/locale/gd.js +0 -106
- package/node_modules/moment/locale/gl.js +0 -86
- package/node_modules/moment/locale/gom-deva.js +0 -137
- package/node_modules/moment/locale/gom-latn.js +0 -135
- package/node_modules/moment/locale/gu.js +0 -133
- package/node_modules/moment/locale/he.js +0 -105
- package/node_modules/moment/locale/hi.js +0 -179
- package/node_modules/moment/locale/hr.js +0 -167
- package/node_modules/moment/locale/hu.js +0 -129
- package/node_modules/moment/locale/hy-am.js +0 -105
- package/node_modules/moment/locale/id.js +0 -87
- package/node_modules/moment/locale/is.js +0 -151
- package/node_modules/moment/locale/it-ch.js +0 -75
- package/node_modules/moment/locale/it.js +0 -117
- package/node_modules/moment/locale/ja.js +0 -159
- package/node_modules/moment/locale/jv.js +0 -87
- package/node_modules/moment/locale/ka.js +0 -103
- package/node_modules/moment/locale/kk.js +0 -93
- package/node_modules/moment/locale/km.js +0 -114
- package/node_modules/moment/locale/kn.js +0 -135
- package/node_modules/moment/locale/ko.js +0 -86
- package/node_modules/moment/locale/ku-kmr.js +0 -125
- package/node_modules/moment/locale/ku.js +0 -129
- package/node_modules/moment/locale/ky.js +0 -95
- package/node_modules/moment/locale/lb.js +0 -148
- package/node_modules/moment/locale/lo.js +0 -77
- package/node_modules/moment/locale/lt.js +0 -136
- package/node_modules/moment/locale/lv.js +0 -105
- package/node_modules/moment/locale/me.js +0 -128
- package/node_modules/moment/locale/mi.js +0 -71
- package/node_modules/moment/locale/mk.js +0 -97
- package/node_modules/moment/locale/ml.js +0 -93
- package/node_modules/moment/locale/mn.js +0 -111
- package/node_modules/moment/locale/mr.js +0 -214
- package/node_modules/moment/locale/ms-my.js +0 -87
- package/node_modules/moment/locale/ms.js +0 -86
- package/node_modules/moment/locale/mt.js +0 -67
- package/node_modules/moment/locale/my.js +0 -102
- package/node_modules/moment/locale/nb.js +0 -71
- package/node_modules/moment/locale/ne.js +0 -132
- package/node_modules/moment/locale/nl-be.js +0 -113
- package/node_modules/moment/locale/nl.js +0 -115
- package/node_modules/moment/locale/nn.js +0 -70
- package/node_modules/moment/locale/oc-lnc.js +0 -96
- package/node_modules/moment/locale/pa-in.js +0 -133
- package/node_modules/moment/locale/pl.js +0 -151
- package/node_modules/moment/locale/pt-br.js +0 -69
- package/node_modules/moment/locale/pt.js +0 -74
- package/node_modules/moment/locale/ro.js +0 -87
- package/node_modules/moment/locale/ru.js +0 -224
- package/node_modules/moment/locale/sd.js +0 -92
- package/node_modules/moment/locale/se.js +0 -68
- package/node_modules/moment/locale/si.js +0 -80
- package/node_modules/moment/locale/sk.js +0 -156
- package/node_modules/moment/locale/sl.js +0 -182
- package/node_modules/moment/locale/sq.js +0 -76
- package/node_modules/moment/locale/sr-cyrl.js +0 -138
- package/node_modules/moment/locale/sr.js +0 -140
- package/node_modules/moment/locale/ss.js +0 -95
- package/node_modules/moment/locale/sv.js +0 -79
- package/node_modules/moment/locale/sw.js +0 -66
- package/node_modules/moment/locale/ta.js +0 -142
- package/node_modules/moment/locale/te.js +0 -99
- package/node_modules/moment/locale/tet.js +0 -79
- package/node_modules/moment/locale/tg.js +0 -128
- package/node_modules/moment/locale/th.js +0 -76
- package/node_modules/moment/locale/tk.js +0 -102
- package/node_modules/moment/locale/tl-ph.js +0 -68
- package/node_modules/moment/locale/tlh.js +0 -135
- package/node_modules/moment/locale/tr.js +0 -117
- package/node_modules/moment/locale/tzl.js +0 -100
- package/node_modules/moment/locale/tzm-latn.js +0 -65
- package/node_modules/moment/locale/tzm.js +0 -65
- package/node_modules/moment/locale/ug-cn.js +0 -122
- package/node_modules/moment/locale/uk.js +0 -178
- package/node_modules/moment/locale/ur.js +0 -93
- package/node_modules/moment/locale/uz-latn.js +0 -65
- package/node_modules/moment/locale/uz.js +0 -62
- package/node_modules/moment/locale/vi.js +0 -91
- package/node_modules/moment/locale/x-pseudo.js +0 -84
- package/node_modules/moment/locale/yo.js +0 -64
- package/node_modules/moment/locale/zh-cn.js +0 -131
- package/node_modules/moment/locale/zh-hk.js +0 -112
- package/node_modules/moment/locale/zh-mo.js +0 -111
- package/node_modules/moment/locale/zh-tw.js +0 -110
- package/node_modules/moment/min/locales.js +0 -12800
- package/node_modules/moment/min/locales.min.js +0 -2
- package/node_modules/moment/min/locales.min.js.map +0 -1
- package/node_modules/moment/min/moment-with-locales.js +0 -18472
- package/node_modules/moment/min/moment-with-locales.min.js +0 -2
- package/node_modules/moment/min/moment-with-locales.min.js.map +0 -1
- package/node_modules/moment/min/moment.min.js +0 -2
- package/node_modules/moment/min/moment.min.js.map +0 -1
- package/node_modules/moment/moment.d.ts +0 -796
- package/node_modules/moment/moment.js +0 -5688
- package/node_modules/moment/package.js +0 -11
- package/node_modules/moment/package.json +0 -116
- package/node_modules/moment/src/lib/create/check-overflow.js +0 -57
- package/node_modules/moment/src/lib/create/date-from-array.js +0 -35
- package/node_modules/moment/src/lib/create/from-anything.js +0 -117
- package/node_modules/moment/src/lib/create/from-array.js +0 -187
- package/node_modules/moment/src/lib/create/from-object.js +0 -20
- package/node_modules/moment/src/lib/create/from-string-and-array.js +0 -67
- package/node_modules/moment/src/lib/create/from-string-and-format.js +0 -135
- package/node_modules/moment/src/lib/create/from-string.js +0 -258
- package/node_modules/moment/src/lib/create/local.js +0 -5
- package/node_modules/moment/src/lib/create/parsing-flags.js +0 -28
- package/node_modules/moment/src/lib/create/utc.js +0 -5
- package/node_modules/moment/src/lib/create/valid.js +0 -51
- package/node_modules/moment/src/lib/duration/abs.js +0 -18
- package/node_modules/moment/src/lib/duration/add-subtract.js +0 -21
- package/node_modules/moment/src/lib/duration/as.js +0 -76
- package/node_modules/moment/src/lib/duration/bubble.js +0 -68
- package/node_modules/moment/src/lib/duration/clone.js +0 -5
- package/node_modules/moment/src/lib/duration/constructor.js +0 -42
- package/node_modules/moment/src/lib/duration/create.js +0 -133
- package/node_modules/moment/src/lib/duration/duration.js +0 -16
- package/node_modules/moment/src/lib/duration/get.js +0 -27
- package/node_modules/moment/src/lib/duration/humanize.js +0 -114
- package/node_modules/moment/src/lib/duration/iso-string.js +0 -68
- package/node_modules/moment/src/lib/duration/prototype.js +0 -78
- package/node_modules/moment/src/lib/duration/valid.js +0 -55
- package/node_modules/moment/src/lib/format/format.js +0 -104
- package/node_modules/moment/src/lib/locale/base-config.js +0 -41
- package/node_modules/moment/src/lib/locale/calendar.js +0 -15
- package/node_modules/moment/src/lib/locale/constructor.js +0 -5
- package/node_modules/moment/src/lib/locale/en.js +0 -39
- package/node_modules/moment/src/lib/locale/formats.js +0 -36
- package/node_modules/moment/src/lib/locale/invalid.js +0 -5
- package/node_modules/moment/src/lib/locale/lists.js +0 -93
- package/node_modules/moment/src/lib/locale/locale.js +0 -45
- package/node_modules/moment/src/lib/locale/locales.js +0 -249
- package/node_modules/moment/src/lib/locale/ordinal.js +0 -8
- package/node_modules/moment/src/lib/locale/pre-post-format.js +0 -3
- package/node_modules/moment/src/lib/locale/prototype.js +0 -88
- package/node_modules/moment/src/lib/locale/relative.js +0 -32
- package/node_modules/moment/src/lib/locale/set.js +0 -56
- package/node_modules/moment/src/lib/moment/add-subtract.js +0 -61
- package/node_modules/moment/src/lib/moment/calendar.js +0 -53
- package/node_modules/moment/src/lib/moment/clone.js +0 -5
- package/node_modules/moment/src/lib/moment/compare.js +0 -72
- package/node_modules/moment/src/lib/moment/constructor.js +0 -80
- package/node_modules/moment/src/lib/moment/creation-data.js +0 -9
- package/node_modules/moment/src/lib/moment/diff.js +0 -79
- package/node_modules/moment/src/lib/moment/format.js +0 -78
- package/node_modules/moment/src/lib/moment/from.js +0 -20
- package/node_modules/moment/src/lib/moment/get-set.js +0 -117
- package/node_modules/moment/src/lib/moment/locale.js +0 -34
- package/node_modules/moment/src/lib/moment/min-max.js +0 -62
- package/node_modules/moment/src/lib/moment/moment.js +0 -28
- package/node_modules/moment/src/lib/moment/now.js +0 -3
- package/node_modules/moment/src/lib/moment/prototype.js +0 -197
- package/node_modules/moment/src/lib/moment/start-end-of.js +0 -164
- package/node_modules/moment/src/lib/moment/to-type.js +0 -42
- package/node_modules/moment/src/lib/moment/to.js +0 -20
- package/node_modules/moment/src/lib/moment/valid.js +0 -15
- package/node_modules/moment/src/lib/parse/regex.js +0 -84
- package/node_modules/moment/src/lib/parse/token.js +0 -36
- package/node_modules/moment/src/lib/units/aliases.js +0 -75
- package/node_modules/moment/src/lib/units/constants.js +0 -9
- package/node_modules/moment/src/lib/units/day-of-month.js +0 -35
- package/node_modules/moment/src/lib/units/day-of-week.js +0 -432
- package/node_modules/moment/src/lib/units/day-of-year.js +0 -28
- package/node_modules/moment/src/lib/units/era.js +0 -293
- package/node_modules/moment/src/lib/units/hour.js +0 -152
- package/node_modules/moment/src/lib/units/millisecond.js +0 -66
- package/node_modules/moment/src/lib/units/minute.js +0 -24
- package/node_modules/moment/src/lib/units/month.js +0 -340
- package/node_modules/moment/src/lib/units/offset.js +0 -249
- package/node_modules/moment/src/lib/units/priorities.js +0 -34
- package/node_modules/moment/src/lib/units/quarter.js +0 -24
- package/node_modules/moment/src/lib/units/second.js +0 -24
- package/node_modules/moment/src/lib/units/timestamp.js +0 -20
- package/node_modules/moment/src/lib/units/timezone.js +0 -16
- package/node_modules/moment/src/lib/units/units.js +0 -20
- package/node_modules/moment/src/lib/units/week-calendar-utils.js +0 -66
- package/node_modules/moment/src/lib/units/week-year.js +0 -128
- package/node_modules/moment/src/lib/units/week.js +0 -62
- package/node_modules/moment/src/lib/units/year.js +0 -75
- package/node_modules/moment/src/lib/utils/abs-ceil.js +0 -7
- package/node_modules/moment/src/lib/utils/abs-floor.js +0 -8
- package/node_modules/moment/src/lib/utils/abs-round.js +0 -7
- package/node_modules/moment/src/lib/utils/compare-arrays.js +0 -18
- package/node_modules/moment/src/lib/utils/defaults.js +0 -10
- package/node_modules/moment/src/lib/utils/deprecate.js +0 -69
- package/node_modules/moment/src/lib/utils/extend.js +0 -19
- package/node_modules/moment/src/lib/utils/has-own-prop.js +0 -3
- package/node_modules/moment/src/lib/utils/hooks.js +0 -13
- package/node_modules/moment/src/lib/utils/index-of.js +0 -18
- package/node_modules/moment/src/lib/utils/is-array.js +0 -6
- package/node_modules/moment/src/lib/utils/is-calendar-spec.js +0 -25
- package/node_modules/moment/src/lib/utils/is-date.js +0 -6
- package/node_modules/moment/src/lib/utils/is-function.js +0 -6
- package/node_modules/moment/src/lib/utils/is-leap-year.js +0 -3
- package/node_modules/moment/src/lib/utils/is-moment-input.js +0 -75
- package/node_modules/moment/src/lib/utils/is-number.js +0 -6
- package/node_modules/moment/src/lib/utils/is-object-empty.js +0 -15
- package/node_modules/moment/src/lib/utils/is-object.js +0 -8
- package/node_modules/moment/src/lib/utils/is-string.js +0 -3
- package/node_modules/moment/src/lib/utils/is-undefined.js +0 -3
- package/node_modules/moment/src/lib/utils/keys.js +0 -20
- package/node_modules/moment/src/lib/utils/map.js +0 -9
- package/node_modules/moment/src/lib/utils/mod.js +0 -3
- package/node_modules/moment/src/lib/utils/some.js +0 -20
- package/node_modules/moment/src/lib/utils/to-int.js +0 -12
- package/node_modules/moment/src/lib/utils/zero-fill.js +0 -10
- package/node_modules/moment/src/locale/af.js +0 -71
- package/node_modules/moment/src/locale/ar-dz.js +0 -156
- package/node_modules/moment/src/locale/ar-kw.js +0 -55
- package/node_modules/moment/src/locale/ar-ly.js +0 -171
- package/node_modules/moment/src/locale/ar-ma.js +0 -56
- package/node_modules/moment/src/locale/ar-ps.js +0 -112
- package/node_modules/moment/src/locale/ar-sa.js +0 -105
- package/node_modules/moment/src/locale/ar-tn.js +0 -55
- package/node_modules/moment/src/locale/ar.js +0 -189
- package/node_modules/moment/src/locale/az.js +0 -102
- package/node_modules/moment/src/locale/be.js +0 -142
- package/node_modules/moment/src/locale/bg.js +0 -87
- package/node_modules/moment/src/locale/bm.js +0 -52
- package/node_modules/moment/src/locale/bn-bd.js +0 -129
- package/node_modules/moment/src/locale/bn.js +0 -119
- package/node_modules/moment/src/locale/bo.js +0 -124
- package/node_modules/moment/src/locale/br.js +0 -168
- package/node_modules/moment/src/locale/bs.js +0 -160
- package/node_modules/moment/src/locale/ca.js +0 -100
- package/node_modules/moment/src/locale/cs.js +0 -181
- package/node_modules/moment/src/locale/cv.js +0 -63
- package/node_modules/moment/src/locale/cy.js +0 -98
- package/node_modules/moment/src/locale/da.js +0 -53
- package/node_modules/moment/src/locale/de-at.js +0 -79
- package/node_modules/moment/src/locale/de-ch.js +0 -78
- package/node_modules/moment/src/locale/de.js +0 -78
- package/node_modules/moment/src/locale/dv.js +0 -90
- package/node_modules/moment/src/locale/el.js +0 -106
- package/node_modules/moment/src/locale/en-au.js +0 -68
- package/node_modules/moment/src/locale/en-ca.js +0 -64
- package/node_modules/moment/src/locale/en-gb.js +0 -68
- package/node_modules/moment/src/locale/en-ie.js +0 -68
- package/node_modules/moment/src/locale/en-il.js +0 -64
- package/node_modules/moment/src/locale/en-in.js +0 -68
- package/node_modules/moment/src/locale/en-nz.js +0 -68
- package/node_modules/moment/src/locale/en-sg.js +0 -68
- package/node_modules/moment/src/locale/eo.js +0 -68
- package/node_modules/moment/src/locale/es-do.js +0 -108
- package/node_modules/moment/src/locale/es-mx.js +0 -110
- package/node_modules/moment/src/locale/es-us.js +0 -110
- package/node_modules/moment/src/locale/es.js +0 -110
- package/node_modules/moment/src/locale/et.js +0 -78
- package/node_modules/moment/src/locale/eu.js +0 -65
- package/node_modules/moment/src/locale/fa.js +0 -113
- package/node_modules/moment/src/locale/fi.js +0 -124
- package/node_modules/moment/src/locale/fil.js +0 -58
- package/node_modules/moment/src/locale/fo.js +0 -57
- package/node_modules/moment/src/locale/fr-ca.js +0 -70
- package/node_modules/moment/src/locale/fr-ch.js +0 -74
- package/node_modules/moment/src/locale/fr.js +0 -108
- package/node_modules/moment/src/locale/fy.js +0 -75
- package/node_modules/moment/src/locale/ga.js +0 -95
- package/node_modules/moment/src/locale/gd.js +0 -95
- package/node_modules/moment/src/locale/gl.js +0 -75
- package/node_modules/moment/src/locale/gom-deva.js +0 -126
- package/node_modules/moment/src/locale/gom-latn.js +0 -124
- package/node_modules/moment/src/locale/gu.js +0 -122
- package/node_modules/moment/src/locale/he.js +0 -94
- package/node_modules/moment/src/locale/hi.js +0 -168
- package/node_modules/moment/src/locale/hr.js +0 -156
- package/node_modules/moment/src/locale/hu.js +0 -118
- package/node_modules/moment/src/locale/hy-am.js +0 -94
- package/node_modules/moment/src/locale/id.js +0 -76
- package/node_modules/moment/src/locale/is.js +0 -140
- package/node_modules/moment/src/locale/it-ch.js +0 -64
- package/node_modules/moment/src/locale/it.js +0 -106
- package/node_modules/moment/src/locale/ja.js +0 -148
- package/node_modules/moment/src/locale/jv.js +0 -76
- package/node_modules/moment/src/locale/ka.js +0 -92
- package/node_modules/moment/src/locale/kk.js +0 -82
- package/node_modules/moment/src/locale/km.js +0 -103
- package/node_modules/moment/src/locale/kn.js +0 -124
- package/node_modules/moment/src/locale/ko.js +0 -75
- package/node_modules/moment/src/locale/ku-kmr.js +0 -121
- package/node_modules/moment/src/locale/ku.js +0 -118
- package/node_modules/moment/src/locale/ky.js +0 -84
- package/node_modules/moment/src/locale/lb.js +0 -137
- package/node_modules/moment/src/locale/lo.js +0 -66
- package/node_modules/moment/src/locale/lt.js +0 -125
- package/node_modules/moment/src/locale/lv.js +0 -94
- package/node_modules/moment/src/locale/me.js +0 -117
- package/node_modules/moment/src/locale/mi.js +0 -60
- package/node_modules/moment/src/locale/mk.js +0 -85
- package/node_modules/moment/src/locale/ml.js +0 -82
- package/node_modules/moment/src/locale/mn.js +0 -100
- package/node_modules/moment/src/locale/mr.js +0 -203
- package/node_modules/moment/src/locale/ms-my.js +0 -76
- package/node_modules/moment/src/locale/ms.js +0 -75
- package/node_modules/moment/src/locale/mt.js +0 -56
- package/node_modules/moment/src/locale/my.js +0 -91
- package/node_modules/moment/src/locale/nb.js +0 -60
- package/node_modules/moment/src/locale/ne.js +0 -121
- package/node_modules/moment/src/locale/nl-be.js +0 -102
- package/node_modules/moment/src/locale/nl.js +0 -104
- package/node_modules/moment/src/locale/nn.js +0 -59
- package/node_modules/moment/src/locale/oc-lnc.js +0 -85
- package/node_modules/moment/src/locale/pa-in.js +0 -122
- package/node_modules/moment/src/locale/pl.js +0 -140
- package/node_modules/moment/src/locale/pt-br.js +0 -58
- package/node_modules/moment/src/locale/pt.js +0 -63
- package/node_modules/moment/src/locale/ro.js +0 -76
- package/node_modules/moment/src/locale/ru.js +0 -213
- package/node_modules/moment/src/locale/sd.js +0 -81
- package/node_modules/moment/src/locale/se.js +0 -57
- package/node_modules/moment/src/locale/si.js +0 -69
- package/node_modules/moment/src/locale/sk.js +0 -145
- package/node_modules/moment/src/locale/sl.js +0 -171
- package/node_modules/moment/src/locale/sq.js +0 -65
- package/node_modules/moment/src/locale/sr-cyrl.js +0 -127
- package/node_modules/moment/src/locale/sr.js +0 -129
- package/node_modules/moment/src/locale/ss.js +0 -84
- package/node_modules/moment/src/locale/sv.js +0 -68
- package/node_modules/moment/src/locale/sw.js +0 -55
- package/node_modules/moment/src/locale/ta.js +0 -131
- package/node_modules/moment/src/locale/te.js +0 -88
- package/node_modules/moment/src/locale/tet.js +0 -68
- package/node_modules/moment/src/locale/tg.js +0 -117
- package/node_modules/moment/src/locale/th.js +0 -65
- package/node_modules/moment/src/locale/tk.js +0 -91
- package/node_modules/moment/src/locale/tl-ph.js +0 -57
- package/node_modules/moment/src/locale/tlh.js +0 -124
- package/node_modules/moment/src/locale/tr.js +0 -106
- package/node_modules/moment/src/locale/tzl.js +0 -89
- package/node_modules/moment/src/locale/tzm-latn.js +0 -54
- package/node_modules/moment/src/locale/tzm.js +0 -54
- package/node_modules/moment/src/locale/ug-cn.js +0 -111
- package/node_modules/moment/src/locale/uk.js +0 -167
- package/node_modules/moment/src/locale/ur.js +0 -82
- package/node_modules/moment/src/locale/uz-latn.js +0 -54
- package/node_modules/moment/src/locale/uz.js +0 -51
- package/node_modules/moment/src/locale/vi.js +0 -80
- package/node_modules/moment/src/locale/x-pseudo.js +0 -73
- package/node_modules/moment/src/locale/yo.js +0 -53
- package/node_modules/moment/src/locale/zh-cn.js +0 -120
- package/node_modules/moment/src/locale/zh-hk.js +0 -101
- package/node_modules/moment/src/locale/zh-mo.js +0 -100
- package/node_modules/moment/src/locale/zh-tw.js +0 -99
- package/node_modules/moment/src/moment.js +0 -93
- package/node_modules/moment/ts3.1-typings/moment.d.ts +0 -785
- package/node_modules/nanoid/LICENSE +0 -20
- package/node_modules/nanoid/README.md +0 -38
- package/node_modules/nanoid/async/index.browser.js +0 -33
- package/node_modules/nanoid/async/index.d.ts +0 -56
- package/node_modules/nanoid/async/index.js +0 -34
- package/node_modules/nanoid/async/index.native.js +0 -25
- package/node_modules/nanoid/bin/nanoid.js +0 -46
- package/node_modules/nanoid/index.browser.js +0 -33
- package/node_modules/nanoid/index.d.ts +0 -91
- package/node_modules/nanoid/index.js +0 -45
- package/node_modules/nanoid/nanoid.js +0 -1
- package/node_modules/nanoid/non-secure/index.d.ts +0 -33
- package/node_modules/nanoid/non-secure/index.js +0 -20
- package/node_modules/nanoid/package.json +0 -46
- package/node_modules/nanoid/url-alphabet/index.js +0 -2
- package/node_modules/ts-md5/LICENSE +0 -21
- package/node_modules/ts-md5/README.md +0 -101
- package/node_modules/ts-md5/dist/cjs/index.d.ts +0 -3
- package/node_modules/ts-md5/dist/cjs/index.js +0 -10
- package/node_modules/ts-md5/dist/cjs/index.js.map +0 -1
- package/node_modules/ts-md5/dist/cjs/md5.d.ts +0 -70
- package/node_modules/ts-md5/dist/cjs/md5.js +0 -429
- package/node_modules/ts-md5/dist/cjs/md5.js.map +0 -1
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.d.ts +0 -25
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js +0 -96
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js.map +0 -1
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.d.ts +0 -22
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.js +0 -69
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.js.map +0 -1
- package/node_modules/ts-md5/dist/esm/index.d.ts +0 -3
- package/node_modules/ts-md5/dist/esm/index.js +0 -4
- package/node_modules/ts-md5/dist/esm/index.js.map +0 -1
- package/node_modules/ts-md5/dist/esm/md5.d.ts +0 -70
- package/node_modules/ts-md5/dist/esm/md5.js +0 -421
- package/node_modules/ts-md5/dist/esm/md5.js.map +0 -1
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.d.ts +0 -25
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.js +0 -89
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.js.map +0 -1
- package/node_modules/ts-md5/dist/esm/parallel_hasher.d.ts +0 -22
- package/node_modules/ts-md5/dist/esm/parallel_hasher.js +0 -64
- package/node_modules/ts-md5/dist/esm/parallel_hasher.js.map +0 -1
- package/node_modules/ts-md5/dist/md5.js +0 -429
- package/node_modules/ts-md5/dist/md5_worker.js +0 -523
- package/node_modules/ts-md5/package.json +0 -82
- package/node_modules/ts-md5/src/index.ts +0 -4
- package/node_modules/ts-md5/src/md5.ts +0 -473
- package/node_modules/ts-md5/src/md5_file_hasher.ts +0 -110
- package/node_modules/ts-md5/src/parallel_hasher.ts +0 -90
- package/node_modules/ts-md5/src/worker.js +0 -20
- package/tfsec.json +0 -4
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ApiVersionManager = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* ApiVersionManager - A JSII-compliant singleton for managing Azure API versions
|
|
8
|
+
*
|
|
9
|
+
* This class provides centralized version management for Azure resources, including:
|
|
10
|
+
* - Version registry and metadata storage
|
|
11
|
+
* - Version resolution and compatibility analysis
|
|
12
|
+
* - Migration analysis between versions
|
|
13
|
+
* - Thread-safe singleton operations
|
|
14
|
+
*
|
|
15
|
+
* The singleton pattern is implemented in a JSII-compliant way using instance methods
|
|
16
|
+
* rather than static classes to ensure multi-language compatibility.
|
|
17
|
+
*
|
|
18
|
+
* @packageDocumentation
|
|
19
|
+
*/
|
|
20
|
+
const version_interfaces_1 = require("./interfaces/version-interfaces");
|
|
21
|
+
/**
|
|
22
|
+
* ApiVersionManager singleton class for centralized version management
|
|
23
|
+
*
|
|
24
|
+
* This class manages API versions for Azure resources, providing version resolution,
|
|
25
|
+
* compatibility analysis, and migration guidance. It implements a JSII-compliant
|
|
26
|
+
* singleton pattern for thread-safe operations across multiple language bindings.
|
|
27
|
+
*
|
|
28
|
+
* Key Features:
|
|
29
|
+
* - Thread-safe singleton implementation
|
|
30
|
+
* - Version registry management with full lifecycle support
|
|
31
|
+
* - Advanced version resolution with constraint-based selection
|
|
32
|
+
* - Comprehensive migration analysis with effort estimation
|
|
33
|
+
* - Extensive validation and error handling
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const manager = ApiVersionManager.getInstance();
|
|
37
|
+
* manager.registerResourceType('Microsoft.Resources/resourceGroups', versions);
|
|
38
|
+
* const latest = manager.getLatestVersion('Microsoft.Resources/resourceGroups');
|
|
39
|
+
* const analysis = manager.analyzeMigration('Microsoft.Resources/resourceGroups', '2024-01-01', '2024-11-01');
|
|
40
|
+
*
|
|
41
|
+
* @stability stable
|
|
42
|
+
*/
|
|
43
|
+
class ApiVersionManager {
|
|
44
|
+
/**
|
|
45
|
+
* Gets the singleton instance of ApiVersionManager
|
|
46
|
+
*
|
|
47
|
+
* This method implements a thread-safe singleton pattern that's compatible
|
|
48
|
+
* with JSII multi-language bindings. The instance is lazily created on
|
|
49
|
+
* first access and reused for all subsequent calls.
|
|
50
|
+
*
|
|
51
|
+
* @returns The singleton ApiVersionManager instance
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const manager = ApiVersionManager.instance();
|
|
55
|
+
*/
|
|
56
|
+
static instance() {
|
|
57
|
+
if (!ApiVersionManager._instance) {
|
|
58
|
+
ApiVersionManager._instance = new ApiVersionManager();
|
|
59
|
+
}
|
|
60
|
+
return ApiVersionManager._instance;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Private constructor to enforce singleton pattern
|
|
64
|
+
* Initializes the internal registries and data structures
|
|
65
|
+
*/
|
|
66
|
+
constructor() {
|
|
67
|
+
this._resourceRegistry = {};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Registers a resource type with its version configurations
|
|
71
|
+
*
|
|
72
|
+
* This method stores version metadata for a specific Azure resource type,
|
|
73
|
+
* including schemas, lifecycle information, and migration data. It validates
|
|
74
|
+
* the input and maintains internal indexes for efficient lookups.
|
|
75
|
+
*
|
|
76
|
+
* @param resourceType - The Azure resource type (e.g., 'Microsoft.Resources/resourceGroups')
|
|
77
|
+
* @param versions - Array of version configurations for the resource type
|
|
78
|
+
*
|
|
79
|
+
* @throws Error if resourceType is empty or versions array is empty
|
|
80
|
+
* @throws Error if duplicate versions are found in the versions array
|
|
81
|
+
* @throws Error if version configurations are invalid
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* manager.registerResourceType('Microsoft.Resources/resourceGroups', [
|
|
85
|
+
* {
|
|
86
|
+
* version: '2024-01-01',
|
|
87
|
+
* schema: { resourceType: 'Microsoft.Resources/resourceGroups', version: '2024-01-01', properties: {}, required: [] },
|
|
88
|
+
* supportLevel: VersionSupportLevel.ACTIVE,
|
|
89
|
+
* releaseDate: '2024-01-01'
|
|
90
|
+
* }
|
|
91
|
+
* ]);
|
|
92
|
+
*/
|
|
93
|
+
registerResourceType(resourceType, versions) {
|
|
94
|
+
this._validateResourceTypeInput(resourceType, versions);
|
|
95
|
+
const versionMap = {};
|
|
96
|
+
let latestVersion;
|
|
97
|
+
let latestReleaseDate = new Date(0); // Start with epoch
|
|
98
|
+
// Process and validate each version
|
|
99
|
+
for (const versionConfig of versions) {
|
|
100
|
+
this._validateVersionConfig(versionConfig, resourceType);
|
|
101
|
+
// Check for duplicate versions
|
|
102
|
+
if (versionConfig.version in versionMap) {
|
|
103
|
+
throw new Error(`Duplicate version '${versionConfig.version}' found for resource type '${resourceType}'`);
|
|
104
|
+
}
|
|
105
|
+
versionMap[versionConfig.version] = versionConfig;
|
|
106
|
+
// Track the latest version based on release date and support level
|
|
107
|
+
const releaseDate = new Date(versionConfig.releaseDate);
|
|
108
|
+
if (releaseDate >= latestReleaseDate &&
|
|
109
|
+
versionConfig.supportLevel === version_interfaces_1.VersionSupportLevel.ACTIVE) {
|
|
110
|
+
latestVersion = versionConfig.version;
|
|
111
|
+
latestReleaseDate = releaseDate;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Store the registry entry
|
|
115
|
+
const registryEntry = {
|
|
116
|
+
resourceType,
|
|
117
|
+
versions: versionMap,
|
|
118
|
+
latestVersion,
|
|
119
|
+
};
|
|
120
|
+
this._resourceRegistry[resourceType] = registryEntry;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Gets the latest active version for a resource type
|
|
124
|
+
*
|
|
125
|
+
* Returns the most recent version with ACTIVE support level. If no active
|
|
126
|
+
* versions are found, returns the most recent version regardless of support level.
|
|
127
|
+
*
|
|
128
|
+
* @param resourceType - The Azure resource type to get the latest version for
|
|
129
|
+
* @returns The latest version string, or undefined if the resource type is not registered
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* const latest = manager.latestVersion('Microsoft.Resources/resourceGroups');
|
|
133
|
+
* // Returns: "2024-11-01"
|
|
134
|
+
*/
|
|
135
|
+
latestVersion(resourceType) {
|
|
136
|
+
const registry = this._resourceRegistry[resourceType];
|
|
137
|
+
if (!registry) {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
return registry.latestVersion;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Gets the configuration for a specific version of a resource type
|
|
144
|
+
*
|
|
145
|
+
* Retrieves the complete version configuration including schema, lifecycle
|
|
146
|
+
* information, breaking changes, and migration metadata.
|
|
147
|
+
*
|
|
148
|
+
* @param resourceType - The Azure resource type
|
|
149
|
+
* @param version - The specific version to retrieve
|
|
150
|
+
* @returns The version configuration, or undefined if not found
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* const config = manager.versionConfig('Microsoft.Resources/resourceGroups', '2024-01-01');
|
|
154
|
+
* if (config) {
|
|
155
|
+
* console.log(`Support level: ${config.supportLevel}`);
|
|
156
|
+
* console.log(`Release date: ${config.releaseDate}`);
|
|
157
|
+
* }
|
|
158
|
+
*/
|
|
159
|
+
versionConfig(resourceType, version) {
|
|
160
|
+
const registry = this._resourceRegistry[resourceType];
|
|
161
|
+
if (!registry) {
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
return registry.versions[version];
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Gets all supported versions for a resource type
|
|
168
|
+
*
|
|
169
|
+
* Returns an array of all registered version strings for the specified
|
|
170
|
+
* resource type, sorted by release date (newest first).
|
|
171
|
+
*
|
|
172
|
+
* @param resourceType - The Azure resource type
|
|
173
|
+
* @returns Array of supported version strings, empty if resource type not registered
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* const versions = manager.supportedVersions('Microsoft.Resources/resourceGroups');
|
|
177
|
+
* // Returns: ["2024-11-01", "2024-01-01", "2023-07-01"]
|
|
178
|
+
*/
|
|
179
|
+
supportedVersions(resourceType) {
|
|
180
|
+
const registry = this._resourceRegistry[resourceType];
|
|
181
|
+
if (!registry) {
|
|
182
|
+
return [];
|
|
183
|
+
}
|
|
184
|
+
// Sort versions by release date (newest first)
|
|
185
|
+
return Object.values(registry.versions)
|
|
186
|
+
.sort((a, b) => new Date(b.releaseDate).getTime() - new Date(a.releaseDate).getTime())
|
|
187
|
+
.map((config) => config.version);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Analyzes migration requirements between two versions
|
|
191
|
+
*
|
|
192
|
+
* Performs comprehensive analysis of the migration path between source and
|
|
193
|
+
* target versions, including compatibility assessment, breaking changes
|
|
194
|
+
* identification, effort estimation, and upgrade feasibility.
|
|
195
|
+
*
|
|
196
|
+
* @param resourceType - The Azure resource type
|
|
197
|
+
* @param fromVersion - The source version to migrate from
|
|
198
|
+
* @param toVersion - The target version to migrate to
|
|
199
|
+
* @returns Detailed migration analysis results
|
|
200
|
+
*
|
|
201
|
+
* @throws Error if either version is not registered for the resource type
|
|
202
|
+
* @throws Error if resourceType is not registered
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* const analysis = manager.analyzeMigration(
|
|
206
|
+
* 'Microsoft.Resources/resourceGroups',
|
|
207
|
+
* '2024-01-01',
|
|
208
|
+
* '2024-11-01'
|
|
209
|
+
* );
|
|
210
|
+
*
|
|
211
|
+
* console.log(`Compatible: ${analysis.compatible}`);
|
|
212
|
+
* console.log(`Effort: ${analysis.estimatedEffort}`);
|
|
213
|
+
* console.log(`Breaking changes: ${analysis.breakingChanges.length}`);
|
|
214
|
+
*/
|
|
215
|
+
analyzeMigration(resourceType, fromVersion, toVersion) {
|
|
216
|
+
// Validate inputs and get configurations
|
|
217
|
+
const fromConfig = this.versionConfig(resourceType, fromVersion);
|
|
218
|
+
const toConfig = this.versionConfig(resourceType, toVersion);
|
|
219
|
+
if (!fromConfig) {
|
|
220
|
+
throw new Error(`Source version '${fromVersion}' not found for resource type '${resourceType}'`);
|
|
221
|
+
}
|
|
222
|
+
if (!toConfig) {
|
|
223
|
+
throw new Error(`Target version '${toVersion}' not found for resource type '${resourceType}'`);
|
|
224
|
+
}
|
|
225
|
+
// Analyze compatibility and changes
|
|
226
|
+
const allBreakingChanges = this._collectBreakingChanges(resourceType, fromVersion, toVersion);
|
|
227
|
+
const compatible = allBreakingChanges.length === 0;
|
|
228
|
+
const warnings = this._generateMigrationWarnings(fromConfig, toConfig);
|
|
229
|
+
const estimatedEffort = this._calculateMigrationEffort(allBreakingChanges);
|
|
230
|
+
const automaticUpgradePossible = this._canAutoUpgrade(allBreakingChanges);
|
|
231
|
+
return {
|
|
232
|
+
fromVersion,
|
|
233
|
+
toVersion,
|
|
234
|
+
compatible,
|
|
235
|
+
breakingChanges: allBreakingChanges,
|
|
236
|
+
warnings,
|
|
237
|
+
estimatedEffort,
|
|
238
|
+
automaticUpgradePossible,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Validates whether a version is supported for a resource type
|
|
243
|
+
*
|
|
244
|
+
* Checks if the specified version is registered and available for use
|
|
245
|
+
* with the given resource type.
|
|
246
|
+
*
|
|
247
|
+
* @param resourceType - The Azure resource type
|
|
248
|
+
* @param version - The version to validate
|
|
249
|
+
* @returns True if the version is supported, false otherwise
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* if (manager.validateVersionSupport('Microsoft.Resources/resourceGroups', '2024-01-01')) {
|
|
253
|
+
* // Version is supported, proceed with resource creation
|
|
254
|
+
* } else {
|
|
255
|
+
* // Handle unsupported version
|
|
256
|
+
* }
|
|
257
|
+
*/
|
|
258
|
+
validateVersionSupport(resourceType, version) {
|
|
259
|
+
const registry = this._resourceRegistry[resourceType];
|
|
260
|
+
if (!registry) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
return version in registry.versions;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Gets all registered resource types
|
|
267
|
+
*
|
|
268
|
+
* Returns an array of all Azure resource types that have been registered
|
|
269
|
+
* with the version manager.
|
|
270
|
+
*
|
|
271
|
+
* @returns Array of registered resource type strings
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* const resourceTypes = manager.registeredResourceTypes();
|
|
275
|
+
* // Returns: ["Microsoft.Resources/resourceGroups", "Microsoft.Storage/storageAccounts", ...]
|
|
276
|
+
*/
|
|
277
|
+
registeredResourceTypes() {
|
|
278
|
+
return Object.keys(this._resourceRegistry);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Gets version lifecycle information for a specific version
|
|
282
|
+
*
|
|
283
|
+
* Provides lifecycle metadata including current phase, transition dates,
|
|
284
|
+
* and projected sunset timeline.
|
|
285
|
+
*
|
|
286
|
+
* @param resourceType - The Azure resource type
|
|
287
|
+
* @param version - The version to get lifecycle information for
|
|
288
|
+
* @returns Version lifecycle information, or undefined if not found
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* const lifecycle = manager.versionLifecycle('Microsoft.Resources/resourceGroups', '2024-01-01');
|
|
292
|
+
* if (lifecycle) {
|
|
293
|
+
* console.log(`Current phase: ${lifecycle.phase}`);
|
|
294
|
+
* console.log(`Sunset date: ${lifecycle.estimatedSunsetDate}`);
|
|
295
|
+
* }
|
|
296
|
+
*/
|
|
297
|
+
versionLifecycle(resourceType, version) {
|
|
298
|
+
const config = this.versionConfig(resourceType, version);
|
|
299
|
+
if (!config) {
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
return {
|
|
303
|
+
version: config.version,
|
|
304
|
+
phase: config.supportLevel,
|
|
305
|
+
transitionDate: config.releaseDate,
|
|
306
|
+
nextPhase: this._determineNextPhase(config.supportLevel),
|
|
307
|
+
estimatedSunsetDate: config.sunsetDate,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Finds the best version matching the given constraints
|
|
312
|
+
*
|
|
313
|
+
* Selects the optimal version for a resource type based on specified
|
|
314
|
+
* constraints such as support level, feature requirements, and age limits.
|
|
315
|
+
*
|
|
316
|
+
* @param resourceType - The Azure resource type
|
|
317
|
+
* @param constraints - Version selection constraints
|
|
318
|
+
* @returns The best matching version, or undefined if no version matches
|
|
319
|
+
* @internal
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* const version = manager._findVersionByConstraints('Microsoft.Resources/resourceGroups', {
|
|
323
|
+
* supportLevel: VersionSupportLevel.ACTIVE,
|
|
324
|
+
* excludeDeprecated: true,
|
|
325
|
+
* notOlderThan: new Date('2024-01-01')
|
|
326
|
+
* });
|
|
327
|
+
*/
|
|
328
|
+
_findVersionByConstraints(resourceType, constraints) {
|
|
329
|
+
const registry = this._resourceRegistry[resourceType];
|
|
330
|
+
if (!registry) {
|
|
331
|
+
return undefined;
|
|
332
|
+
}
|
|
333
|
+
const candidates = Object.values(registry.versions).filter((config) => {
|
|
334
|
+
// Check support level constraint
|
|
335
|
+
if (constraints.supportLevel &&
|
|
336
|
+
config.supportLevel !== constraints.supportLevel) {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
// Check exclude deprecated constraint
|
|
340
|
+
if (constraints.excludeDeprecated !== false &&
|
|
341
|
+
config.supportLevel === version_interfaces_1.VersionSupportLevel.DEPRECATED) {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
// Check age constraint
|
|
345
|
+
if (constraints.notOlderThan) {
|
|
346
|
+
const releaseDate = new Date(config.releaseDate);
|
|
347
|
+
if (releaseDate < constraints.notOlderThan) {
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Check required features (simplified check)
|
|
352
|
+
if (constraints.requiredFeatures &&
|
|
353
|
+
constraints.requiredFeatures.length > 0) {
|
|
354
|
+
// This would need to be implemented based on feature metadata
|
|
355
|
+
// For now, we assume all versions support all features
|
|
356
|
+
}
|
|
357
|
+
return true;
|
|
358
|
+
});
|
|
359
|
+
if (candidates.length === 0) {
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
// Sort by release date and return the newest
|
|
363
|
+
candidates.sort((a, b) => new Date(b.releaseDate).getTime() - new Date(a.releaseDate).getTime());
|
|
364
|
+
return candidates[0].version;
|
|
365
|
+
}
|
|
366
|
+
// =============================================================================
|
|
367
|
+
// PRIVATE HELPER METHODS
|
|
368
|
+
// =============================================================================
|
|
369
|
+
/**
|
|
370
|
+
* Validates resource type and versions input
|
|
371
|
+
*/
|
|
372
|
+
_validateResourceTypeInput(resourceType, versions) {
|
|
373
|
+
if (!resourceType || resourceType.trim().length === 0) {
|
|
374
|
+
throw new Error("Resource type cannot be empty");
|
|
375
|
+
}
|
|
376
|
+
if (!versions || versions.length === 0) {
|
|
377
|
+
throw new Error("Versions array cannot be empty");
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Validates a single version configuration
|
|
382
|
+
*/
|
|
383
|
+
_validateVersionConfig(config, resourceType) {
|
|
384
|
+
if (!config.version || config.version.trim().length === 0) {
|
|
385
|
+
throw new Error(`Version string cannot be empty for resource type '${resourceType}'`);
|
|
386
|
+
}
|
|
387
|
+
if (!config.schema) {
|
|
388
|
+
throw new Error(`Schema is required for version '${config.version}' of resource type '${resourceType}'`);
|
|
389
|
+
}
|
|
390
|
+
if (config.schema.resourceType !== resourceType) {
|
|
391
|
+
throw new Error(`Schema resource type '${config.schema.resourceType}' does not match registered resource type '${resourceType}'`);
|
|
392
|
+
}
|
|
393
|
+
if (config.schema.version !== config.version) {
|
|
394
|
+
throw new Error(`Schema version '${config.schema.version}' does not match config version '${config.version}'`);
|
|
395
|
+
}
|
|
396
|
+
if (!config.supportLevel) {
|
|
397
|
+
throw new Error(`Support level is required for version '${config.version}' of resource type '${resourceType}'`);
|
|
398
|
+
}
|
|
399
|
+
if (!config.releaseDate || config.releaseDate.trim().length === 0) {
|
|
400
|
+
throw new Error(`Release date is required for version '${config.version}' of resource type '${resourceType}'`);
|
|
401
|
+
}
|
|
402
|
+
// Validate date format
|
|
403
|
+
if (isNaN(new Date(config.releaseDate).getTime())) {
|
|
404
|
+
throw new Error(`Invalid release date format '${config.releaseDate}' for version '${config.version}' of resource type '${resourceType}'`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Collects all breaking changes between two versions
|
|
409
|
+
*/
|
|
410
|
+
_collectBreakingChanges(resourceType, fromVersion, toVersion) {
|
|
411
|
+
const registry = this._resourceRegistry[resourceType];
|
|
412
|
+
if (!registry) {
|
|
413
|
+
return [];
|
|
414
|
+
}
|
|
415
|
+
const allVersions = Object.values(registry.versions).sort((a, b) => new Date(a.releaseDate).getTime() - new Date(b.releaseDate).getTime());
|
|
416
|
+
const fromIndex = allVersions.findIndex((v) => v.version === fromVersion);
|
|
417
|
+
const toIndex = allVersions.findIndex((v) => v.version === toVersion);
|
|
418
|
+
if (fromIndex === -1 || toIndex === -1) {
|
|
419
|
+
return [];
|
|
420
|
+
}
|
|
421
|
+
const breakingChanges = [];
|
|
422
|
+
// Collect breaking changes from all versions between fromVersion and toVersion
|
|
423
|
+
for (let i = fromIndex + 1; i <= toIndex; i++) {
|
|
424
|
+
const versionConfig = allVersions[i];
|
|
425
|
+
if (versionConfig.breakingChanges) {
|
|
426
|
+
breakingChanges.push(...versionConfig.breakingChanges);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
return breakingChanges;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Generates migration warnings
|
|
433
|
+
*/
|
|
434
|
+
_generateMigrationWarnings(fromConfig, toConfig) {
|
|
435
|
+
const warnings = [];
|
|
436
|
+
if (fromConfig.supportLevel === version_interfaces_1.VersionSupportLevel.DEPRECATED) {
|
|
437
|
+
warnings.push(`Source version '${fromConfig.version}' is deprecated. Consider migrating to avoid future compatibility issues.`);
|
|
438
|
+
}
|
|
439
|
+
if (toConfig.supportLevel === version_interfaces_1.VersionSupportLevel.DEPRECATED) {
|
|
440
|
+
warnings.push(`Target version '${toConfig.version}' is deprecated. Consider using a newer version.`);
|
|
441
|
+
}
|
|
442
|
+
if (fromConfig.sunsetDate) {
|
|
443
|
+
const sunsetDate = new Date(fromConfig.sunsetDate);
|
|
444
|
+
const now = new Date();
|
|
445
|
+
if (sunsetDate < now) {
|
|
446
|
+
warnings.push(`Source version '${fromConfig.version}' has reached sunset date (${fromConfig.sunsetDate}). Immediate migration is required.`);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
return warnings;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Calculates migration effort based on breaking changes and version differences
|
|
453
|
+
*/
|
|
454
|
+
_calculateMigrationEffort(breakingChanges) {
|
|
455
|
+
if (breakingChanges.length === 0) {
|
|
456
|
+
return version_interfaces_1.MigrationEffort.LOW;
|
|
457
|
+
}
|
|
458
|
+
// Count different types of breaking changes
|
|
459
|
+
const propertyRemoved = breakingChanges.filter((bc) => bc.changeType === version_interfaces_1.BreakingChangeType.PROPERTY_REMOVED).length;
|
|
460
|
+
const schemaRestructured = breakingChanges.filter((bc) => bc.changeType === version_interfaces_1.BreakingChangeType.SCHEMA_RESTRUCTURED).length;
|
|
461
|
+
const propertyTypeChanged = breakingChanges.filter((bc) => bc.changeType === version_interfaces_1.BreakingChangeType.PROPERTY_TYPE_CHANGED).length;
|
|
462
|
+
// Calculate effort based on breaking change severity
|
|
463
|
+
if (schemaRestructured > 0 ||
|
|
464
|
+
propertyRemoved > 3 ||
|
|
465
|
+
propertyTypeChanged > 3) {
|
|
466
|
+
return version_interfaces_1.MigrationEffort.BREAKING;
|
|
467
|
+
}
|
|
468
|
+
if (propertyRemoved > 1 ||
|
|
469
|
+
propertyTypeChanged > 1 ||
|
|
470
|
+
breakingChanges.length > 5) {
|
|
471
|
+
return version_interfaces_1.MigrationEffort.HIGH;
|
|
472
|
+
}
|
|
473
|
+
if (breakingChanges.length > 2) {
|
|
474
|
+
return version_interfaces_1.MigrationEffort.MEDIUM;
|
|
475
|
+
}
|
|
476
|
+
return version_interfaces_1.MigrationEffort.LOW;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Determines if automatic upgrade is possible
|
|
480
|
+
*/
|
|
481
|
+
_canAutoUpgrade(breakingChanges) {
|
|
482
|
+
// Automatic upgrade is not possible if there are certain types of breaking changes
|
|
483
|
+
const blockingChangeTypes = [
|
|
484
|
+
version_interfaces_1.BreakingChangeType.PROPERTY_REMOVED,
|
|
485
|
+
version_interfaces_1.BreakingChangeType.SCHEMA_RESTRUCTURED,
|
|
486
|
+
version_interfaces_1.BreakingChangeType.PROPERTY_TYPE_CHANGED,
|
|
487
|
+
];
|
|
488
|
+
return !breakingChanges.some((bc) => blockingChangeTypes.includes(bc.changeType));
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Determines the next phase in the version lifecycle
|
|
492
|
+
*/
|
|
493
|
+
_determineNextPhase(currentPhase) {
|
|
494
|
+
switch (currentPhase) {
|
|
495
|
+
case version_interfaces_1.VersionSupportLevel.ACTIVE:
|
|
496
|
+
return version_interfaces_1.VersionSupportLevel.MAINTENANCE;
|
|
497
|
+
case version_interfaces_1.VersionSupportLevel.MAINTENANCE:
|
|
498
|
+
return version_interfaces_1.VersionSupportLevel.DEPRECATED;
|
|
499
|
+
case version_interfaces_1.VersionSupportLevel.DEPRECATED:
|
|
500
|
+
return version_interfaces_1.VersionSupportLevel.SUNSET;
|
|
501
|
+
default:
|
|
502
|
+
return undefined;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
exports.ApiVersionManager = ApiVersionManager;
|
|
507
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
508
|
+
ApiVersionManager[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ApiVersionManager", version: "1.2.0" };
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXZlcnNpb24tbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvYXBpLXZlcnNpb24tbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCx3RUFTeUM7QUFXekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQWEsaUJBQWlCO0lBQzVCOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFPRDs7O09BR0c7SUFDSDtRQUNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXVCRztJQUNJLG9CQUFvQixDQUN6QixZQUFvQixFQUNwQixRQUF5QjtRQUV6QixJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXhELE1BQU0sVUFBVSxHQUF5QyxFQUFFLENBQUM7UUFDNUQsSUFBSSxhQUFpQyxDQUFDO1FBQ3RDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7UUFFeEQsb0NBQW9DO1FBQ3BDLEtBQUssTUFBTSxhQUFhLElBQUksUUFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUV6RCwrQkFBK0I7WUFDL0IsSUFBSSxhQUFhLENBQUMsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLElBQUksS0FBSyxDQUNiLHNCQUFzQixhQUFhLENBQUMsT0FBTyw4QkFBOEIsWUFBWSxHQUFHLENBQ3pGLENBQUM7WUFDSixDQUFDO1lBRUQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxhQUFhLENBQUM7WUFFbEQsbUVBQW1FO1lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RCxJQUNFLFdBQVcsSUFBSSxpQkFBaUI7Z0JBQ2hDLGFBQWEsQ0FBQyxZQUFZLEtBQUssd0NBQW1CLENBQUMsTUFBTSxFQUN6RCxDQUFDO2dCQUNELGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO2dCQUN0QyxpQkFBaUIsR0FBRyxXQUFXLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxhQUFhLEdBQXlCO1lBQzFDLFlBQVk7WUFDWixRQUFRLEVBQUUsVUFBVTtZQUNwQixhQUFhO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLGFBQWEsQ0FBQyxZQUFvQjtRQUN2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSSxhQUFhLENBQ2xCLFlBQW9CLEVBQ3BCLE9BQWU7UUFFZixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksaUJBQWlCLENBQUMsWUFBb0I7UUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELCtDQUErQztRQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzthQUNwQyxJQUFJLENBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDUCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUN4RTthQUNBLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCRztJQUNJLGdCQUFnQixDQUNyQixZQUFvQixFQUNwQixXQUFtQixFQUNuQixTQUFpQjtRQUVqQix5Q0FBeUM7UUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLFdBQVcsa0NBQWtDLFlBQVksR0FBRyxDQUNoRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLFNBQVMsa0NBQWtDLFlBQVksR0FBRyxDQUM5RSxDQUFDO1FBQ0osQ0FBQztRQUVELG9DQUFvQztRQUNwQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FDckQsWUFBWSxFQUNaLFdBQVcsRUFDWCxTQUFTLENBQ1YsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRSxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxRSxPQUFPO1lBQ0wsV0FBVztZQUNYLFNBQVM7WUFDVCxVQUFVO1lBQ1YsZUFBZSxFQUFFLGtCQUFrQjtZQUNuQyxRQUFRO1lBQ1IsZUFBZTtZQUNmLHdCQUF3QjtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksc0JBQXNCLENBQzNCLFlBQW9CLEVBQ3BCLE9BQWU7UUFFZixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNJLGdCQUFnQixDQUNyQixZQUFvQixFQUNwQixPQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQzFCLGNBQWMsRUFBRSxNQUFNLENBQUMsV0FBVztZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDeEQsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLFVBQVU7U0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSSx5QkFBeUIsQ0FDOUIsWUFBb0IsRUFDcEIsV0FBK0I7UUFFL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwRSxpQ0FBaUM7WUFDakMsSUFDRSxXQUFXLENBQUMsWUFBWTtnQkFDeEIsTUFBTSxDQUFDLFlBQVksS0FBSyxXQUFXLENBQUMsWUFBWSxFQUNoRCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELHNDQUFzQztZQUN0QyxJQUNFLFdBQVcsQ0FBQyxpQkFBaUIsS0FBSyxLQUFLO2dCQUN2QyxNQUFNLENBQUMsWUFBWSxLQUFLLHdDQUFtQixDQUFDLFVBQVUsRUFDdEQsQ0FBQztnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCx1QkFBdUI7WUFDdkIsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDakQsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUMzQyxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztZQUVELDZDQUE2QztZQUM3QyxJQUNFLFdBQVcsQ0FBQyxnQkFBZ0I7Z0JBQzVCLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN2QyxDQUFDO2dCQUNELDhEQUE4RDtnQkFDOUQsdURBQXVEO1lBQ3pELENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsVUFBVSxDQUFDLElBQUksQ0FDYixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNQLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQ3hFLENBQUM7UUFDRixPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssMEJBQTBCLENBQ2hDLFlBQW9CLEVBQ3BCLFFBQXlCO1FBRXpCLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQixDQUM1QixNQUFxQixFQUNyQixZQUFvQjtRQUVwQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksS0FBSyxDQUNiLHFEQUFxRCxZQUFZLEdBQUcsQ0FDckUsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLE1BQU0sQ0FBQyxPQUFPLHVCQUF1QixZQUFZLEdBQUcsQ0FDeEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQ2IseUJBQXlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSw4Q0FBOEMsWUFBWSxHQUFHLENBQ2pILENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLG9DQUFvQyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQzlGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksS0FBSyxDQUNiLDBDQUEwQyxNQUFNLENBQUMsT0FBTyx1QkFBdUIsWUFBWSxHQUFHLENBQy9GLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FDYix5Q0FBeUMsTUFBTSxDQUFDLE9BQU8sdUJBQXVCLFlBQVksR0FBRyxDQUM5RixDQUFDO1FBQ0osQ0FBQztRQUVELHVCQUF1QjtRQUN2QixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0NBQWdDLE1BQU0sQ0FBQyxXQUFXLGtCQUFrQixNQUFNLENBQUMsT0FBTyx1QkFBdUIsWUFBWSxHQUFHLENBQ3pILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssdUJBQXVCLENBQzdCLFlBQW9CLEVBQ3BCLFdBQW1CLEVBQ25CLFNBQWlCO1FBRWpCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3ZELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ1AsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FDeEUsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDMUUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQztRQUV0RSxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1FBRTdDLCtFQUErRTtRQUMvRSxLQUFLLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDbEMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNLLDBCQUEwQixDQUNoQyxVQUF5QixFQUN6QixRQUF1QjtRQUV2QixNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFFOUIsSUFBSSxVQUFVLENBQUMsWUFBWSxLQUFLLHdDQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQy9ELFFBQVEsQ0FBQyxJQUFJLENBQ1gsbUJBQW1CLFVBQVUsQ0FBQyxPQUFPLDJFQUEyRSxDQUNqSCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLFlBQVksS0FBSyx3Q0FBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3RCxRQUFRLENBQUMsSUFBSSxDQUNYLG1CQUFtQixRQUFRLENBQUMsT0FBTyxrREFBa0QsQ0FDdEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixJQUFJLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDckIsUUFBUSxDQUFDLElBQUksQ0FDWCxtQkFBbUIsVUFBVSxDQUFDLE9BQU8sOEJBQThCLFVBQVUsQ0FBQyxVQUFVLHFDQUFxQyxDQUM5SCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSyx5QkFBeUIsQ0FBQyxlQUFpQztRQUNqRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxvQ0FBZSxDQUFDLEdBQUcsQ0FBQztRQUM3QixDQUFDO1FBRUQsNENBQTRDO1FBQzVDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQzVDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxLQUFLLHVDQUFrQixDQUFDLGdCQUFnQixDQUM5RCxDQUFDLE1BQU0sQ0FBQztRQUNULE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEtBQUssdUNBQWtCLENBQUMsbUJBQW1CLENBQ2pFLENBQUMsTUFBTSxDQUFDO1FBQ1QsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUNoRCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsS0FBSyx1Q0FBa0IsQ0FBQyxxQkFBcUIsQ0FDbkUsQ0FBQyxNQUFNLENBQUM7UUFFVCxxREFBcUQ7UUFDckQsSUFDRSxrQkFBa0IsR0FBRyxDQUFDO1lBQ3RCLGVBQWUsR0FBRyxDQUFDO1lBQ25CLG1CQUFtQixHQUFHLENBQUMsRUFDdkIsQ0FBQztZQUNELE9BQU8sb0NBQWUsQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQ0UsZUFBZSxHQUFHLENBQUM7WUFDbkIsbUJBQW1CLEdBQUcsQ0FBQztZQUN2QixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDMUIsQ0FBQztZQUNELE9BQU8sb0NBQWUsQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLG9DQUFlLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLG9DQUFlLENBQUMsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxlQUFpQztRQUN2RCxtRkFBbUY7UUFDbkYsTUFBTSxtQkFBbUIsR0FBRztZQUMxQix1Q0FBa0IsQ0FBQyxnQkFBZ0I7WUFDbkMsdUNBQWtCLENBQUMsbUJBQW1CO1lBQ3RDLHVDQUFrQixDQUFDLHFCQUFxQjtTQUN6QyxDQUFDO1FBRUYsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNsQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQWlCLENBQUMsQ0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLFlBQW9CO1FBQzlDLFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyx3Q0FBbUIsQ0FBQyxNQUFNO2dCQUM3QixPQUFPLHdDQUFtQixDQUFDLFdBQVcsQ0FBQztZQUN6QyxLQUFLLHdDQUFtQixDQUFDLFdBQVc7Z0JBQ2xDLE9BQU8sd0NBQW1CLENBQUMsVUFBVSxDQUFDO1lBQ3hDLEtBQUssd0NBQW1CLENBQUMsVUFBVTtnQkFDakMsT0FBTyx3Q0FBbUIsQ0FBQyxNQUFNLENBQUM7WUFDcEM7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7O0FBN21CSCw4Q0E4bUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcGlWZXJzaW9uTWFuYWdlciAtIEEgSlNJSS1jb21wbGlhbnQgc2luZ2xldG9uIGZvciBtYW5hZ2luZyBBenVyZSBBUEkgdmVyc2lvbnNcbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGNlbnRyYWxpemVkIHZlcnNpb24gbWFuYWdlbWVudCBmb3IgQXp1cmUgcmVzb3VyY2VzLCBpbmNsdWRpbmc6XG4gKiAtIFZlcnNpb24gcmVnaXN0cnkgYW5kIG1ldGFkYXRhIHN0b3JhZ2VcbiAqIC0gVmVyc2lvbiByZXNvbHV0aW9uIGFuZCBjb21wYXRpYmlsaXR5IGFuYWx5c2lzXG4gKiAtIE1pZ3JhdGlvbiBhbmFseXNpcyBiZXR3ZWVuIHZlcnNpb25zXG4gKiAtIFRocmVhZC1zYWZlIHNpbmdsZXRvbiBvcGVyYXRpb25zXG4gKlxuICogVGhlIHNpbmdsZXRvbiBwYXR0ZXJuIGlzIGltcGxlbWVudGVkIGluIGEgSlNJSS1jb21wbGlhbnQgd2F5IHVzaW5nIGluc3RhbmNlIG1ldGhvZHNcbiAqIHJhdGhlciB0aGFuIHN0YXRpYyBjbGFzc2VzIHRvIGVuc3VyZSBtdWx0aS1sYW5ndWFnZSBjb21wYXRpYmlsaXR5LlxuICpcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICovXG5cbmltcG9ydCB7XG4gIFZlcnNpb25Db25maWcsXG4gIE1pZ3JhdGlvbkFuYWx5c2lzLFxuICBCcmVha2luZ0NoYW5nZSxcbiAgVmVyc2lvblN1cHBvcnRMZXZlbCxcbiAgTWlncmF0aW9uRWZmb3J0LFxuICBWZXJzaW9uTGlmZWN5Y2xlLFxuICBWZXJzaW9uQ29uc3RyYWludHMsXG4gIEJyZWFraW5nQ2hhbmdlVHlwZSxcbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBSZWdpc3RyeSBlbnRyeSBmb3IgYSByZXNvdXJjZSB0eXBlIGNvbnRhaW5pbmcgYWxsIHZlcnNpb24gY29uZmlndXJhdGlvbnNcbiAqL1xuaW50ZXJmYWNlIFJlc291cmNlVHlwZVJlZ2lzdHJ5IHtcbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb25zOiB7IFt2ZXJzaW9uOiBzdHJpbmddOiBWZXJzaW9uQ29uZmlnIH07XG4gIHJlYWRvbmx5IGxhdGVzdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXBpVmVyc2lvbk1hbmFnZXIgc2luZ2xldG9uIGNsYXNzIGZvciBjZW50cmFsaXplZCB2ZXJzaW9uIG1hbmFnZW1lbnRcbiAqXG4gKiBUaGlzIGNsYXNzIG1hbmFnZXMgQVBJIHZlcnNpb25zIGZvciBBenVyZSByZXNvdXJjZXMsIHByb3ZpZGluZyB2ZXJzaW9uIHJlc29sdXRpb24sXG4gKiBjb21wYXRpYmlsaXR5IGFuYWx5c2lzLCBhbmQgbWlncmF0aW9uIGd1aWRhbmNlLiBJdCBpbXBsZW1lbnRzIGEgSlNJSS1jb21wbGlhbnRcbiAqIHNpbmdsZXRvbiBwYXR0ZXJuIGZvciB0aHJlYWQtc2FmZSBvcGVyYXRpb25zIGFjcm9zcyBtdWx0aXBsZSBsYW5ndWFnZSBiaW5kaW5ncy5cbiAqXG4gKiBLZXkgRmVhdHVyZXM6XG4gKiAtIFRocmVhZC1zYWZlIHNpbmdsZXRvbiBpbXBsZW1lbnRhdGlvblxuICogLSBWZXJzaW9uIHJlZ2lzdHJ5IG1hbmFnZW1lbnQgd2l0aCBmdWxsIGxpZmVjeWNsZSBzdXBwb3J0XG4gKiAtIEFkdmFuY2VkIHZlcnNpb24gcmVzb2x1dGlvbiB3aXRoIGNvbnN0cmFpbnQtYmFzZWQgc2VsZWN0aW9uXG4gKiAtIENvbXByZWhlbnNpdmUgbWlncmF0aW9uIGFuYWx5c2lzIHdpdGggZWZmb3J0IGVzdGltYXRpb25cbiAqIC0gRXh0ZW5zaXZlIHZhbGlkYXRpb24gYW5kIGVycm9yIGhhbmRsaW5nXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5nZXRJbnN0YW5jZSgpO1xuICogbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZSgnTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycsIHZlcnNpb25zKTtcbiAqIGNvbnN0IGxhdGVzdCA9IG1hbmFnZXIuZ2V0TGF0ZXN0VmVyc2lvbignTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycpO1xuICogY29uc3QgYW5hbHlzaXMgPSBtYW5hZ2VyLmFuYWx5emVNaWdyYXRpb24oJ01pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHMnLCAnMjAyNC0wMS0wMScsICcyMDI0LTExLTAxJyk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEFwaVZlcnNpb25NYW5hZ2VyIHtcbiAgLyoqXG4gICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiBBcGlWZXJzaW9uTWFuYWdlclxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpbXBsZW1lbnRzIGEgdGhyZWFkLXNhZmUgc2luZ2xldG9uIHBhdHRlcm4gdGhhdCdzIGNvbXBhdGlibGVcbiAgICogd2l0aCBKU0lJIG11bHRpLWxhbmd1YWdlIGJpbmRpbmdzLiBUaGUgaW5zdGFuY2UgaXMgbGF6aWx5IGNyZWF0ZWQgb25cbiAgICogZmlyc3QgYWNjZXNzIGFuZCByZXVzZWQgZm9yIGFsbCBzdWJzZXF1ZW50IGNhbGxzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2luZ2xldG9uIEFwaVZlcnNpb25NYW5hZ2VyIGluc3RhbmNlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IG1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5pbnN0YW5jZSgpO1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpOiBBcGlWZXJzaW9uTWFuYWdlciB7XG4gICAgaWYgKCFBcGlWZXJzaW9uTWFuYWdlci5faW5zdGFuY2UpIHtcbiAgICAgIEFwaVZlcnNpb25NYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBBcGlWZXJzaW9uTWFuYWdlcigpO1xuICAgIH1cbiAgICByZXR1cm4gQXBpVmVyc2lvbk1hbmFnZXIuX2luc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBBcGlWZXJzaW9uTWFuYWdlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb3VyY2VSZWdpc3RyeToge1xuICAgIFtyZXNvdXJjZVR5cGU6IHN0cmluZ106IFJlc291cmNlVHlwZVJlZ2lzdHJ5O1xuICB9O1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIGVuZm9yY2Ugc2luZ2xldG9uIHBhdHRlcm5cbiAgICogSW5pdGlhbGl6ZXMgdGhlIGludGVybmFsIHJlZ2lzdHJpZXMgYW5kIGRhdGEgc3RydWN0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9yZXNvdXJjZVJlZ2lzdHJ5ID0ge307XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgcmVzb3VyY2UgdHlwZSB3aXRoIGl0cyB2ZXJzaW9uIGNvbmZpZ3VyYXRpb25zXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHN0b3JlcyB2ZXJzaW9uIG1ldGFkYXRhIGZvciBhIHNwZWNpZmljIEF6dXJlIHJlc291cmNlIHR5cGUsXG4gICAqIGluY2x1ZGluZyBzY2hlbWFzLCBsaWZlY3ljbGUgaW5mb3JtYXRpb24sIGFuZCBtaWdyYXRpb24gZGF0YS4gSXQgdmFsaWRhdGVzXG4gICAqIHRoZSBpbnB1dCBhbmQgbWFpbnRhaW5zIGludGVybmFsIGluZGV4ZXMgZm9yIGVmZmljaWVudCBsb29rdXBzLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIC0gVGhlIEF6dXJlIHJlc291cmNlIHR5cGUgKGUuZy4sICdNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzJylcbiAgICogQHBhcmFtIHZlcnNpb25zIC0gQXJyYXkgb2YgdmVyc2lvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHJlc291cmNlIHR5cGVcbiAgICpcbiAgICogQHRocm93cyBFcnJvciBpZiByZXNvdXJjZVR5cGUgaXMgZW1wdHkgb3IgdmVyc2lvbnMgYXJyYXkgaXMgZW1wdHlcbiAgICogQHRocm93cyBFcnJvciBpZiBkdXBsaWNhdGUgdmVyc2lvbnMgYXJlIGZvdW5kIGluIHRoZSB2ZXJzaW9ucyBhcnJheVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZlcnNpb24gY29uZmlndXJhdGlvbnMgYXJlIGludmFsaWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZSgnTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycsIFtcbiAgICogICB7XG4gICAqICAgICB2ZXJzaW9uOiAnMjAyNC0wMS0wMScsXG4gICAqICAgICBzY2hlbWE6IHsgcmVzb3VyY2VUeXBlOiAnTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycsIHZlcnNpb246ICcyMDI0LTAxLTAxJywgcHJvcGVydGllczoge30sIHJlcXVpcmVkOiBbXSB9LFxuICAgKiAgICAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgICogICAgIHJlbGVhc2VEYXRlOiAnMjAyNC0wMS0wMSdcbiAgICogICB9XG4gICAqIF0pO1xuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyUmVzb3VyY2VUeXBlKFxuICAgIHJlc291cmNlVHlwZTogc3RyaW5nLFxuICAgIHZlcnNpb25zOiBWZXJzaW9uQ29uZmlnW10sXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRlUmVzb3VyY2VUeXBlSW5wdXQocmVzb3VyY2VUeXBlLCB2ZXJzaW9ucyk7XG5cbiAgICBjb25zdCB2ZXJzaW9uTWFwOiB7IFt2ZXJzaW9uOiBzdHJpbmddOiBWZXJzaW9uQ29uZmlnIH0gPSB7fTtcbiAgICBsZXQgbGF0ZXN0VmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBsYXRlc3RSZWxlYXNlRGF0ZSA9IG5ldyBEYXRlKDApOyAvLyBTdGFydCB3aXRoIGVwb2NoXG5cbiAgICAvLyBQcm9jZXNzIGFuZCB2YWxpZGF0ZSBlYWNoIHZlcnNpb25cbiAgICBmb3IgKGNvbnN0IHZlcnNpb25Db25maWcgb2YgdmVyc2lvbnMpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlVmVyc2lvbkNvbmZpZyh2ZXJzaW9uQ29uZmlnLCByZXNvdXJjZVR5cGUpO1xuXG4gICAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHZlcnNpb25zXG4gICAgICBpZiAodmVyc2lvbkNvbmZpZy52ZXJzaW9uIGluIHZlcnNpb25NYXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEdXBsaWNhdGUgdmVyc2lvbiAnJHt2ZXJzaW9uQ29uZmlnLnZlcnNpb259JyBmb3VuZCBmb3IgcmVzb3VyY2UgdHlwZSAnJHtyZXNvdXJjZVR5cGV9J2AsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHZlcnNpb25NYXBbdmVyc2lvbkNvbmZpZy52ZXJzaW9uXSA9IHZlcnNpb25Db25maWc7XG5cbiAgICAgIC8vIFRyYWNrIHRoZSBsYXRlc3QgdmVyc2lvbiBiYXNlZCBvbiByZWxlYXNlIGRhdGUgYW5kIHN1cHBvcnQgbGV2ZWxcbiAgICAgIGNvbnN0IHJlbGVhc2VEYXRlID0gbmV3IERhdGUodmVyc2lvbkNvbmZpZy5yZWxlYXNlRGF0ZSk7XG4gICAgICBpZiAoXG4gICAgICAgIHJlbGVhc2VEYXRlID49IGxhdGVzdFJlbGVhc2VEYXRlICYmXG4gICAgICAgIHZlcnNpb25Db25maWcuc3VwcG9ydExldmVsID09PSBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRVxuICAgICAgKSB7XG4gICAgICAgIGxhdGVzdFZlcnNpb24gPSB2ZXJzaW9uQ29uZmlnLnZlcnNpb247XG4gICAgICAgIGxhdGVzdFJlbGVhc2VEYXRlID0gcmVsZWFzZURhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RvcmUgdGhlIHJlZ2lzdHJ5IGVudHJ5XG4gICAgY29uc3QgcmVnaXN0cnlFbnRyeTogUmVzb3VyY2VUeXBlUmVnaXN0cnkgPSB7XG4gICAgICByZXNvdXJjZVR5cGUsXG4gICAgICB2ZXJzaW9uczogdmVyc2lvbk1hcCxcbiAgICAgIGxhdGVzdFZlcnNpb24sXG4gICAgfTtcblxuICAgIHRoaXMuX3Jlc291cmNlUmVnaXN0cnlbcmVzb3VyY2VUeXBlXSA9IHJlZ2lzdHJ5RW50cnk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGF0ZXN0IGFjdGl2ZSB2ZXJzaW9uIGZvciBhIHJlc291cmNlIHR5cGVcbiAgICpcbiAgICogUmV0dXJucyB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbiB3aXRoIEFDVElWRSBzdXBwb3J0IGxldmVsLiBJZiBubyBhY3RpdmVcbiAgICogdmVyc2lvbnMgYXJlIGZvdW5kLCByZXR1cm5zIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIHJlZ2FyZGxlc3Mgb2Ygc3VwcG9ydCBsZXZlbC5cbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSAtIFRoZSBBenVyZSByZXNvdXJjZSB0eXBlIHRvIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZm9yXG4gICAqIEByZXR1cm5zIFRoZSBsYXRlc3QgdmVyc2lvbiBzdHJpbmcsIG9yIHVuZGVmaW5lZCBpZiB0aGUgcmVzb3VyY2UgdHlwZSBpcyBub3QgcmVnaXN0ZXJlZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBsYXRlc3QgPSBtYW5hZ2VyLmxhdGVzdFZlcnNpb24oJ01pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHMnKTtcbiAgICogLy8gUmV0dXJuczogXCIyMDI0LTExLTAxXCJcbiAgICovXG4gIHB1YmxpYyBsYXRlc3RWZXJzaW9uKHJlc291cmNlVHlwZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuX3Jlc291cmNlUmVnaXN0cnlbcmVzb3VyY2VUeXBlXTtcbiAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiByZWdpc3RyeS5sYXRlc3RWZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIHJlc291cmNlIHR5cGVcbiAgICpcbiAgICogUmV0cmlldmVzIHRoZSBjb21wbGV0ZSB2ZXJzaW9uIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIHNjaGVtYSwgbGlmZWN5Y2xlXG4gICAqIGluZm9ybWF0aW9uLCBicmVha2luZyBjaGFuZ2VzLCBhbmQgbWlncmF0aW9uIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIC0gVGhlIEF6dXJlIHJlc291cmNlIHR5cGVcbiAgICogQHBhcmFtIHZlcnNpb24gLSBUaGUgc3BlY2lmaWMgdmVyc2lvbiB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyBUaGUgdmVyc2lvbiBjb25maWd1cmF0aW9uLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGNvbmZpZyA9IG1hbmFnZXIudmVyc2lvbkNvbmZpZygnTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycsICcyMDI0LTAxLTAxJyk7XG4gICAqIGlmIChjb25maWcpIHtcbiAgICogICBjb25zb2xlLmxvZyhgU3VwcG9ydCBsZXZlbDogJHtjb25maWcuc3VwcG9ydExldmVsfWApO1xuICAgKiAgIGNvbnNvbGUubG9nKGBSZWxlYXNlIGRhdGU6ICR7Y29uZmlnLnJlbGVhc2VEYXRlfWApO1xuICAgKiB9XG4gICAqL1xuICBwdWJsaWMgdmVyc2lvbkNvbmZpZyhcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICk6IFZlcnNpb25Db25maWcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gdGhpcy5fcmVzb3VyY2VSZWdpc3RyeVtyZXNvdXJjZVR5cGVdO1xuICAgIGlmICghcmVnaXN0cnkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZ2lzdHJ5LnZlcnNpb25zW3ZlcnNpb25dO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHN1cHBvcnRlZCB2ZXJzaW9ucyBmb3IgYSByZXNvdXJjZSB0eXBlXG4gICAqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHJlZ2lzdGVyZWQgdmVyc2lvbiBzdHJpbmdzIGZvciB0aGUgc3BlY2lmaWVkXG4gICAqIHJlc291cmNlIHR5cGUsIHNvcnRlZCBieSByZWxlYXNlIGRhdGUgKG5ld2VzdCBmaXJzdCkuXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgLSBUaGUgQXp1cmUgcmVzb3VyY2UgdHlwZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzdXBwb3J0ZWQgdmVyc2lvbiBzdHJpbmdzLCBlbXB0eSBpZiByZXNvdXJjZSB0eXBlIG5vdCByZWdpc3RlcmVkXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHZlcnNpb25zID0gbWFuYWdlci5zdXBwb3J0ZWRWZXJzaW9ucygnTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycpO1xuICAgKiAvLyBSZXR1cm5zOiBbXCIyMDI0LTExLTAxXCIsIFwiMjAyNC0wMS0wMVwiLCBcIjIwMjMtMDctMDFcIl1cbiAgICovXG4gIHB1YmxpYyBzdXBwb3J0ZWRWZXJzaW9ucyhyZXNvdXJjZVR5cGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuX3Jlc291cmNlUmVnaXN0cnlbcmVzb3VyY2VUeXBlXTtcbiAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLy8gU29ydCB2ZXJzaW9ucyBieSByZWxlYXNlIGRhdGUgKG5ld2VzdCBmaXJzdClcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZWdpc3RyeS52ZXJzaW9ucylcbiAgICAgIC5zb3J0KFxuICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICBuZXcgRGF0ZShiLnJlbGVhc2VEYXRlKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShhLnJlbGVhc2VEYXRlKS5nZXRUaW1lKCksXG4gICAgICApXG4gICAgICAubWFwKChjb25maWcpID0+IGNvbmZpZy52ZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbmFseXplcyBtaWdyYXRpb24gcmVxdWlyZW1lbnRzIGJldHdlZW4gdHdvIHZlcnNpb25zXG4gICAqXG4gICAqIFBlcmZvcm1zIGNvbXByZWhlbnNpdmUgYW5hbHlzaXMgb2YgdGhlIG1pZ3JhdGlvbiBwYXRoIGJldHdlZW4gc291cmNlIGFuZFxuICAgKiB0YXJnZXQgdmVyc2lvbnMsIGluY2x1ZGluZyBjb21wYXRpYmlsaXR5IGFzc2Vzc21lbnQsIGJyZWFraW5nIGNoYW5nZXNcbiAgICogaWRlbnRpZmljYXRpb24sIGVmZm9ydCBlc3RpbWF0aW9uLCBhbmQgdXBncmFkZSBmZWFzaWJpbGl0eS5cbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSAtIFRoZSBBenVyZSByZXNvdXJjZSB0eXBlXG4gICAqIEBwYXJhbSBmcm9tVmVyc2lvbiAtIFRoZSBzb3VyY2UgdmVyc2lvbiB0byBtaWdyYXRlIGZyb21cbiAgICogQHBhcmFtIHRvVmVyc2lvbiAtIFRoZSB0YXJnZXQgdmVyc2lvbiB0byBtaWdyYXRlIHRvXG4gICAqIEByZXR1cm5zIERldGFpbGVkIG1pZ3JhdGlvbiBhbmFseXNpcyByZXN1bHRzXG4gICAqXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgZWl0aGVyIHZlcnNpb24gaXMgbm90IHJlZ2lzdGVyZWQgZm9yIHRoZSByZXNvdXJjZSB0eXBlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgcmVzb3VyY2VUeXBlIGlzIG5vdCByZWdpc3RlcmVkXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGFuYWx5c2lzID0gbWFuYWdlci5hbmFseXplTWlncmF0aW9uKFxuICAgKiAgICdNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzJyxcbiAgICogICAnMjAyNC0wMS0wMScsXG4gICAqICAgJzIwMjQtMTEtMDEnXG4gICAqICk7XG4gICAqXG4gICAqIGNvbnNvbGUubG9nKGBDb21wYXRpYmxlOiAke2FuYWx5c2lzLmNvbXBhdGlibGV9YCk7XG4gICAqIGNvbnNvbGUubG9nKGBFZmZvcnQ6ICR7YW5hbHlzaXMuZXN0aW1hdGVkRWZmb3J0fWApO1xuICAgKiBjb25zb2xlLmxvZyhgQnJlYWtpbmcgY2hhbmdlczogJHthbmFseXNpcy5icmVha2luZ0NoYW5nZXMubGVuZ3RofWApO1xuICAgKi9cbiAgcHVibGljIGFuYWx5emVNaWdyYXRpb24oXG4gICAgcmVzb3VyY2VUeXBlOiBzdHJpbmcsXG4gICAgZnJvbVZlcnNpb246IHN0cmluZyxcbiAgICB0b1ZlcnNpb246IHN0cmluZyxcbiAgKTogTWlncmF0aW9uQW5hbHlzaXMge1xuICAgIC8vIFZhbGlkYXRlIGlucHV0cyBhbmQgZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgY29uc3QgZnJvbUNvbmZpZyA9IHRoaXMudmVyc2lvbkNvbmZpZyhyZXNvdXJjZVR5cGUsIGZyb21WZXJzaW9uKTtcbiAgICBjb25zdCB0b0NvbmZpZyA9IHRoaXMudmVyc2lvbkNvbmZpZyhyZXNvdXJjZVR5cGUsIHRvVmVyc2lvbik7XG5cbiAgICBpZiAoIWZyb21Db25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFNvdXJjZSB2ZXJzaW9uICcke2Zyb21WZXJzaW9ufScgbm90IGZvdW5kIGZvciByZXNvdXJjZSB0eXBlICcke3Jlc291cmNlVHlwZX0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0b0NvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGFyZ2V0IHZlcnNpb24gJyR7dG9WZXJzaW9ufScgbm90IGZvdW5kIGZvciByZXNvdXJjZSB0eXBlICcke3Jlc291cmNlVHlwZX0nYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQW5hbHl6ZSBjb21wYXRpYmlsaXR5IGFuZCBjaGFuZ2VzXG4gICAgY29uc3QgYWxsQnJlYWtpbmdDaGFuZ2VzID0gdGhpcy5fY29sbGVjdEJyZWFraW5nQ2hhbmdlcyhcbiAgICAgIHJlc291cmNlVHlwZSxcbiAgICAgIGZyb21WZXJzaW9uLFxuICAgICAgdG9WZXJzaW9uLFxuICAgICk7XG4gICAgY29uc3QgY29tcGF0aWJsZSA9IGFsbEJyZWFraW5nQ2hhbmdlcy5sZW5ndGggPT09IDA7XG4gICAgY29uc3Qgd2FybmluZ3MgPSB0aGlzLl9nZW5lcmF0ZU1pZ3JhdGlvbldhcm5pbmdzKGZyb21Db25maWcsIHRvQ29uZmlnKTtcbiAgICBjb25zdCBlc3RpbWF0ZWRFZmZvcnQgPSB0aGlzLl9jYWxjdWxhdGVNaWdyYXRpb25FZmZvcnQoYWxsQnJlYWtpbmdDaGFuZ2VzKTtcbiAgICBjb25zdCBhdXRvbWF0aWNVcGdyYWRlUG9zc2libGUgPSB0aGlzLl9jYW5BdXRvVXBncmFkZShhbGxCcmVha2luZ0NoYW5nZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb21WZXJzaW9uLFxuICAgICAgdG9WZXJzaW9uLFxuICAgICAgY29tcGF0aWJsZSxcbiAgICAgIGJyZWFraW5nQ2hhbmdlczogYWxsQnJlYWtpbmdDaGFuZ2VzLFxuICAgICAgd2FybmluZ3MsXG4gICAgICBlc3RpbWF0ZWRFZmZvcnQsXG4gICAgICBhdXRvbWF0aWNVcGdyYWRlUG9zc2libGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHZlcnNpb24gaXMgc3VwcG9ydGVkIGZvciBhIHJlc291cmNlIHR5cGVcbiAgICpcbiAgICogQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBpcyByZWdpc3RlcmVkIGFuZCBhdmFpbGFibGUgZm9yIHVzZVxuICAgKiB3aXRoIHRoZSBnaXZlbiByZXNvdXJjZSB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIC0gVGhlIEF6dXJlIHJlc291cmNlIHR5cGVcbiAgICogQHBhcmFtIHZlcnNpb24gLSBUaGUgdmVyc2lvbiB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2ZXJzaW9uIGlzIHN1cHBvcnRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGlmIChtYW5hZ2VyLnZhbGlkYXRlVmVyc2lvblN1cHBvcnQoJ01pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHMnLCAnMjAyNC0wMS0wMScpKSB7XG4gICAqICAgLy8gVmVyc2lvbiBpcyBzdXBwb3J0ZWQsIHByb2NlZWQgd2l0aCByZXNvdXJjZSBjcmVhdGlvblxuICAgKiB9IGVsc2Uge1xuICAgKiAgIC8vIEhhbmRsZSB1bnN1cHBvcnRlZCB2ZXJzaW9uXG4gICAqIH1cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZVZlcnNpb25TdXBwb3J0KFxuICAgIHJlc291cmNlVHlwZTogc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVnaXN0cnkgPSB0aGlzLl9yZXNvdXJjZVJlZ2lzdHJ5W3Jlc291cmNlVHlwZV07XG4gICAgaWYgKCFyZWdpc3RyeSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJzaW9uIGluIHJlZ2lzdHJ5LnZlcnNpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHJlZ2lzdGVyZWQgcmVzb3VyY2UgdHlwZXNcbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgQXp1cmUgcmVzb3VyY2UgdHlwZXMgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZFxuICAgKiB3aXRoIHRoZSB2ZXJzaW9uIG1hbmFnZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHJlZ2lzdGVyZWQgcmVzb3VyY2UgdHlwZSBzdHJpbmdzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJlc291cmNlVHlwZXMgPSBtYW5hZ2VyLnJlZ2lzdGVyZWRSZXNvdXJjZVR5cGVzKCk7XG4gICAqIC8vIFJldHVybnM6IFtcIk1pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHNcIiwgXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIiwgLi4uXVxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyZWRSZXNvdXJjZVR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fcmVzb3VyY2VSZWdpc3RyeSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB2ZXJzaW9uIGxpZmVjeWNsZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyB2ZXJzaW9uXG4gICAqXG4gICAqIFByb3ZpZGVzIGxpZmVjeWNsZSBtZXRhZGF0YSBpbmNsdWRpbmcgY3VycmVudCBwaGFzZSwgdHJhbnNpdGlvbiBkYXRlcyxcbiAgICogYW5kIHByb2plY3RlZCBzdW5zZXQgdGltZWxpbmUuXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgLSBUaGUgQXp1cmUgcmVzb3VyY2UgdHlwZVxuICAgKiBAcGFyYW0gdmVyc2lvbiAtIFRoZSB2ZXJzaW9uIHRvIGdldCBsaWZlY3ljbGUgaW5mb3JtYXRpb24gZm9yXG4gICAqIEByZXR1cm5zIFZlcnNpb24gbGlmZWN5Y2xlIGluZm9ybWF0aW9uLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGxpZmVjeWNsZSA9IG1hbmFnZXIudmVyc2lvbkxpZmVjeWNsZSgnTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3VwcycsICcyMDI0LTAxLTAxJyk7XG4gICAqIGlmIChsaWZlY3ljbGUpIHtcbiAgICogICBjb25zb2xlLmxvZyhgQ3VycmVudCBwaGFzZTogJHtsaWZlY3ljbGUucGhhc2V9YCk7XG4gICAqICAgY29uc29sZS5sb2coYFN1bnNldCBkYXRlOiAke2xpZmVjeWNsZS5lc3RpbWF0ZWRTdW5zZXREYXRlfWApO1xuICAgKiB9XG4gICAqL1xuICBwdWJsaWMgdmVyc2lvbkxpZmVjeWNsZShcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICk6IFZlcnNpb25MaWZlY3ljbGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMudmVyc2lvbkNvbmZpZyhyZXNvdXJjZVR5cGUsIHZlcnNpb24pO1xuICAgIGlmICghY29uZmlnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uOiBjb25maWcudmVyc2lvbixcbiAgICAgIHBoYXNlOiBjb25maWcuc3VwcG9ydExldmVsLFxuICAgICAgdHJhbnNpdGlvbkRhdGU6IGNvbmZpZy5yZWxlYXNlRGF0ZSxcbiAgICAgIG5leHRQaGFzZTogdGhpcy5fZGV0ZXJtaW5lTmV4dFBoYXNlKGNvbmZpZy5zdXBwb3J0TGV2ZWwpLFxuICAgICAgZXN0aW1hdGVkU3Vuc2V0RGF0ZTogY29uZmlnLnN1bnNldERhdGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgYmVzdCB2ZXJzaW9uIG1hdGNoaW5nIHRoZSBnaXZlbiBjb25zdHJhaW50c1xuICAgKlxuICAgKiBTZWxlY3RzIHRoZSBvcHRpbWFsIHZlcnNpb24gZm9yIGEgcmVzb3VyY2UgdHlwZSBiYXNlZCBvbiBzcGVjaWZpZWRcbiAgICogY29uc3RyYWludHMgc3VjaCBhcyBzdXBwb3J0IGxldmVsLCBmZWF0dXJlIHJlcXVpcmVtZW50cywgYW5kIGFnZSBsaW1pdHMuXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgLSBUaGUgQXp1cmUgcmVzb3VyY2UgdHlwZVxuICAgKiBAcGFyYW0gY29uc3RyYWludHMgLSBWZXJzaW9uIHNlbGVjdGlvbiBjb25zdHJhaW50c1xuICAgKiBAcmV0dXJucyBUaGUgYmVzdCBtYXRjaGluZyB2ZXJzaW9uLCBvciB1bmRlZmluZWQgaWYgbm8gdmVyc2lvbiBtYXRjaGVzXG4gICAqIEBpbnRlcm5hbFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCB2ZXJzaW9uID0gbWFuYWdlci5fZmluZFZlcnNpb25CeUNvbnN0cmFpbnRzKCdNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzJywge1xuICAgKiAgIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gICAqICAgZXhjbHVkZURlcHJlY2F0ZWQ6IHRydWUsXG4gICAqICAgbm90T2xkZXJUaGFuOiBuZXcgRGF0ZSgnMjAyNC0wMS0wMScpXG4gICAqIH0pO1xuICAgKi9cbiAgcHVibGljIF9maW5kVmVyc2lvbkJ5Q29uc3RyYWludHMoXG4gICAgcmVzb3VyY2VUeXBlOiBzdHJpbmcsXG4gICAgY29uc3RyYWludHM6IFZlcnNpb25Db25zdHJhaW50cyxcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuX3Jlc291cmNlUmVnaXN0cnlbcmVzb3VyY2VUeXBlXTtcbiAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBPYmplY3QudmFsdWVzKHJlZ2lzdHJ5LnZlcnNpb25zKS5maWx0ZXIoKGNvbmZpZykgPT4ge1xuICAgICAgLy8gQ2hlY2sgc3VwcG9ydCBsZXZlbCBjb25zdHJhaW50XG4gICAgICBpZiAoXG4gICAgICAgIGNvbnN0cmFpbnRzLnN1cHBvcnRMZXZlbCAmJlxuICAgICAgICBjb25maWcuc3VwcG9ydExldmVsICE9PSBjb25zdHJhaW50cy5zdXBwb3J0TGV2ZWxcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGV4Y2x1ZGUgZGVwcmVjYXRlZCBjb25zdHJhaW50XG4gICAgICBpZiAoXG4gICAgICAgIGNvbnN0cmFpbnRzLmV4Y2x1ZGVEZXByZWNhdGVkICE9PSBmYWxzZSAmJlxuICAgICAgICBjb25maWcuc3VwcG9ydExldmVsID09PSBWZXJzaW9uU3VwcG9ydExldmVsLkRFUFJFQ0FURURcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGFnZSBjb25zdHJhaW50XG4gICAgICBpZiAoY29uc3RyYWludHMubm90T2xkZXJUaGFuKSB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VEYXRlID0gbmV3IERhdGUoY29uZmlnLnJlbGVhc2VEYXRlKTtcbiAgICAgICAgaWYgKHJlbGVhc2VEYXRlIDwgY29uc3RyYWludHMubm90T2xkZXJUaGFuKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHJlcXVpcmVkIGZlYXR1cmVzIChzaW1wbGlmaWVkIGNoZWNrKVxuICAgICAgaWYgKFxuICAgICAgICBjb25zdHJhaW50cy5yZXF1aXJlZEZlYXR1cmVzICYmXG4gICAgICAgIGNvbnN0cmFpbnRzLnJlcXVpcmVkRmVhdHVyZXMubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoaXMgd291bGQgbmVlZCB0byBiZSBpbXBsZW1lbnRlZCBiYXNlZCBvbiBmZWF0dXJlIG1ldGFkYXRhXG4gICAgICAgIC8vIEZvciBub3csIHdlIGFzc3VtZSBhbGwgdmVyc2lvbnMgc3VwcG9ydCBhbGwgZmVhdHVyZXNcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gU29ydCBieSByZWxlYXNlIGRhdGUgYW5kIHJldHVybiB0aGUgbmV3ZXN0XG4gICAgY2FuZGlkYXRlcy5zb3J0KFxuICAgICAgKGEsIGIpID0+XG4gICAgICAgIG5ldyBEYXRlKGIucmVsZWFzZURhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGEucmVsZWFzZURhdGUpLmdldFRpbWUoKSxcbiAgICApO1xuICAgIHJldHVybiBjYW5kaWRhdGVzWzBdLnZlcnNpb247XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyByZXNvdXJjZSB0eXBlIGFuZCB2ZXJzaW9ucyBpbnB1dFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVSZXNvdXJjZVR5cGVJbnB1dChcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgICB2ZXJzaW9uczogVmVyc2lvbkNvbmZpZ1tdLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXJlc291cmNlVHlwZSB8fCByZXNvdXJjZVR5cGUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2UgdHlwZSBjYW5ub3QgYmUgZW1wdHlcIik7XG4gICAgfVxuXG4gICAgaWYgKCF2ZXJzaW9ucyB8fCB2ZXJzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlZlcnNpb25zIGFycmF5IGNhbm5vdCBiZSBlbXB0eVwiKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGEgc2luZ2xlIHZlcnNpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVWZXJzaW9uQ29uZmlnKFxuICAgIGNvbmZpZzogVmVyc2lvbkNvbmZpZyxcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFjb25maWcudmVyc2lvbiB8fCBjb25maWcudmVyc2lvbi50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBWZXJzaW9uIHN0cmluZyBjYW5ub3QgYmUgZW1wdHkgZm9yIHJlc291cmNlIHR5cGUgJyR7cmVzb3VyY2VUeXBlfSdgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5zY2hlbWEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFNjaGVtYSBpcyByZXF1aXJlZCBmb3IgdmVyc2lvbiAnJHtjb25maWcudmVyc2lvbn0nIG9mIHJlc291cmNlIHR5cGUgJyR7cmVzb3VyY2VUeXBlfSdgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNjaGVtYS5yZXNvdXJjZVR5cGUgIT09IHJlc291cmNlVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgU2NoZW1hIHJlc291cmNlIHR5cGUgJyR7Y29uZmlnLnNjaGVtYS5yZXNvdXJjZVR5cGV9JyBkb2VzIG5vdCBtYXRjaCByZWdpc3RlcmVkIHJlc291cmNlIHR5cGUgJyR7cmVzb3VyY2VUeXBlfSdgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNjaGVtYS52ZXJzaW9uICE9PSBjb25maWcudmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgU2NoZW1hIHZlcnNpb24gJyR7Y29uZmlnLnNjaGVtYS52ZXJzaW9ufScgZG9lcyBub3QgbWF0Y2ggY29uZmlnIHZlcnNpb24gJyR7Y29uZmlnLnZlcnNpb259J2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLnN1cHBvcnRMZXZlbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgU3VwcG9ydCBsZXZlbCBpcyByZXF1aXJlZCBmb3IgdmVyc2lvbiAnJHtjb25maWcudmVyc2lvbn0nIG9mIHJlc291cmNlIHR5cGUgJyR7cmVzb3VyY2VUeXBlfSdgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5yZWxlYXNlRGF0ZSB8fCBjb25maWcucmVsZWFzZURhdGUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUmVsZWFzZSBkYXRlIGlzIHJlcXVpcmVkIGZvciB2ZXJzaW9uICcke2NvbmZpZy52ZXJzaW9ufScgb2YgcmVzb3VyY2UgdHlwZSAnJHtyZXNvdXJjZVR5cGV9J2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGRhdGUgZm9ybWF0XG4gICAgaWYgKGlzTmFOKG5ldyBEYXRlKGNvbmZpZy5yZWxlYXNlRGF0ZSkuZ2V0VGltZSgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCByZWxlYXNlIGRhdGUgZm9ybWF0ICcke2NvbmZpZy5yZWxlYXNlRGF0ZX0nIGZvciB2ZXJzaW9uICcke2NvbmZpZy52ZXJzaW9ufScgb2YgcmVzb3VyY2UgdHlwZSAnJHtyZXNvdXJjZVR5cGV9J2AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0cyBhbGwgYnJlYWtpbmcgY2hhbmdlcyBiZXR3ZWVuIHR3byB2ZXJzaW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBfY29sbGVjdEJyZWFraW5nQ2hhbmdlcyhcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgICBmcm9tVmVyc2lvbjogc3RyaW5nLFxuICAgIHRvVmVyc2lvbjogc3RyaW5nLFxuICApOiBCcmVha2luZ0NoYW5nZVtdIHtcbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuX3Jlc291cmNlUmVnaXN0cnlbcmVzb3VyY2VUeXBlXTtcbiAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgYWxsVmVyc2lvbnMgPSBPYmplY3QudmFsdWVzKHJlZ2lzdHJ5LnZlcnNpb25zKS5zb3J0KFxuICAgICAgKGEsIGIpID0+XG4gICAgICAgIG5ldyBEYXRlKGEucmVsZWFzZURhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGIucmVsZWFzZURhdGUpLmdldFRpbWUoKSxcbiAgICApO1xuXG4gICAgY29uc3QgZnJvbUluZGV4ID0gYWxsVmVyc2lvbnMuZmluZEluZGV4KCh2KSA9PiB2LnZlcnNpb24gPT09IGZyb21WZXJzaW9uKTtcbiAgICBjb25zdCB0b0luZGV4ID0gYWxsVmVyc2lvbnMuZmluZEluZGV4KCh2KSA9PiB2LnZlcnNpb24gPT09IHRvVmVyc2lvbik7XG5cbiAgICBpZiAoZnJvbUluZGV4ID09PSAtMSB8fCB0b0luZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGJyZWFraW5nQ2hhbmdlczogQnJlYWtpbmdDaGFuZ2VbXSA9IFtdO1xuXG4gICAgLy8gQ29sbGVjdCBicmVha2luZyBjaGFuZ2VzIGZyb20gYWxsIHZlcnNpb25zIGJldHdlZW4gZnJvbVZlcnNpb24gYW5kIHRvVmVyc2lvblxuICAgIGZvciAobGV0IGkgPSBmcm9tSW5kZXggKyAxOyBpIDw9IHRvSW5kZXg7IGkrKykge1xuICAgICAgY29uc3QgdmVyc2lvbkNvbmZpZyA9IGFsbFZlcnNpb25zW2ldO1xuICAgICAgaWYgKHZlcnNpb25Db25maWcuYnJlYWtpbmdDaGFuZ2VzKSB7XG4gICAgICAgIGJyZWFraW5nQ2hhbmdlcy5wdXNoKC4uLnZlcnNpb25Db25maWcuYnJlYWtpbmdDaGFuZ2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYnJlYWtpbmdDaGFuZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBtaWdyYXRpb24gd2FybmluZ3NcbiAgICovXG4gIHByaXZhdGUgX2dlbmVyYXRlTWlncmF0aW9uV2FybmluZ3MoXG4gICAgZnJvbUNvbmZpZzogVmVyc2lvbkNvbmZpZyxcbiAgICB0b0NvbmZpZzogVmVyc2lvbkNvbmZpZyxcbiAgKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGZyb21Db25maWcuc3VwcG9ydExldmVsID09PSBWZXJzaW9uU3VwcG9ydExldmVsLkRFUFJFQ0FURUQpIHtcbiAgICAgIHdhcm5pbmdzLnB1c2goXG4gICAgICAgIGBTb3VyY2UgdmVyc2lvbiAnJHtmcm9tQ29uZmlnLnZlcnNpb259JyBpcyBkZXByZWNhdGVkLiBDb25zaWRlciBtaWdyYXRpbmcgdG8gYXZvaWQgZnV0dXJlIGNvbXBhdGliaWxpdHkgaXNzdWVzLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0b0NvbmZpZy5zdXBwb3J0TGV2ZWwgPT09IFZlcnNpb25TdXBwb3J0TGV2ZWwuREVQUkVDQVRFRCkge1xuICAgICAgd2FybmluZ3MucHVzaChcbiAgICAgICAgYFRhcmdldCB2ZXJzaW9uICcke3RvQ29uZmlnLnZlcnNpb259JyBpcyBkZXByZWNhdGVkLiBDb25zaWRlciB1c2luZyBhIG5ld2VyIHZlcnNpb24uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGZyb21Db25maWcuc3Vuc2V0RGF0ZSkge1xuICAgICAgY29uc3Qgc3Vuc2V0RGF0ZSA9IG5ldyBEYXRlKGZyb21Db25maWcuc3Vuc2V0RGF0ZSk7XG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgaWYgKHN1bnNldERhdGUgPCBub3cpIHtcbiAgICAgICAgd2FybmluZ3MucHVzaChcbiAgICAgICAgICBgU291cmNlIHZlcnNpb24gJyR7ZnJvbUNvbmZpZy52ZXJzaW9ufScgaGFzIHJlYWNoZWQgc3Vuc2V0IGRhdGUgKCR7ZnJvbUNvbmZpZy5zdW5zZXREYXRlfSkuIEltbWVkaWF0ZSBtaWdyYXRpb24gaXMgcmVxdWlyZWQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gd2FybmluZ3M7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyBtaWdyYXRpb24gZWZmb3J0IGJhc2VkIG9uIGJyZWFraW5nIGNoYW5nZXMgYW5kIHZlcnNpb24gZGlmZmVyZW5jZXNcbiAgICovXG4gIHByaXZhdGUgX2NhbGN1bGF0ZU1pZ3JhdGlvbkVmZm9ydChicmVha2luZ0NoYW5nZXM6IEJyZWFraW5nQ2hhbmdlW10pOiBzdHJpbmcge1xuICAgIGlmIChicmVha2luZ0NoYW5nZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gTWlncmF0aW9uRWZmb3J0LkxPVztcbiAgICB9XG5cbiAgICAvLyBDb3VudCBkaWZmZXJlbnQgdHlwZXMgb2YgYnJlYWtpbmcgY2hhbmdlc1xuICAgIGNvbnN0IHByb3BlcnR5UmVtb3ZlZCA9IGJyZWFraW5nQ2hhbmdlcy5maWx0ZXIoXG4gICAgICAoYmMpID0+IGJjLmNoYW5nZVR5cGUgPT09IEJyZWFraW5nQ2hhbmdlVHlwZS5QUk9QRVJUWV9SRU1PVkVELFxuICAgICkubGVuZ3RoO1xuICAgIGNvbnN0IHNjaGVtYVJlc3RydWN0dXJlZCA9IGJyZWFraW5nQ2hhbmdlcy5maWx0ZXIoXG4gICAgICAoYmMpID0+IGJjLmNoYW5nZVR5cGUgPT09IEJyZWFraW5nQ2hhbmdlVHlwZS5TQ0hFTUFfUkVTVFJVQ1RVUkVELFxuICAgICkubGVuZ3RoO1xuICAgIGNvbnN0IHByb3BlcnR5VHlwZUNoYW5nZWQgPSBicmVha2luZ0NoYW5nZXMuZmlsdGVyKFxuICAgICAgKGJjKSA9PiBiYy5jaGFuZ2VUeXBlID09PSBCcmVha2luZ0NoYW5nZVR5cGUuUFJPUEVSVFlfVFlQRV9DSEFOR0VELFxuICAgICkubGVuZ3RoO1xuXG4gICAgLy8gQ2FsY3VsYXRlIGVmZm9ydCBiYXNlZCBvbiBicmVha2luZyBjaGFuZ2Ugc2V2ZXJpdHlcbiAgICBpZiAoXG4gICAgICBzY2hlbWFSZXN0cnVjdHVyZWQgPiAwIHx8XG4gICAgICBwcm9wZXJ0eVJlbW92ZWQgPiAzIHx8XG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VkID4gM1xuICAgICkge1xuICAgICAgcmV0dXJuIE1pZ3JhdGlvbkVmZm9ydC5CUkVBS0lORztcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wZXJ0eVJlbW92ZWQgPiAxIHx8XG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VkID4gMSB8fFxuICAgICAgYnJlYWtpbmdDaGFuZ2VzLmxlbmd0aCA+IDVcbiAgICApIHtcbiAgICAgIHJldHVybiBNaWdyYXRpb25FZmZvcnQuSElHSDtcbiAgICB9XG5cbiAgICBpZiAoYnJlYWtpbmdDaGFuZ2VzLmxlbmd0aCA+IDIpIHtcbiAgICAgIHJldHVybiBNaWdyYXRpb25FZmZvcnQuTUVESVVNO1xuICAgIH1cblxuICAgIHJldHVybiBNaWdyYXRpb25FZmZvcnQuTE9XO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYXV0b21hdGljIHVwZ3JhZGUgaXMgcG9zc2libGVcbiAgICovXG4gIHByaXZhdGUgX2NhbkF1dG9VcGdyYWRlKGJyZWFraW5nQ2hhbmdlczogQnJlYWtpbmdDaGFuZ2VbXSk6IGJvb2xlYW4ge1xuICAgIC8vIEF1dG9tYXRpYyB1cGdyYWRlIGlzIG5vdCBwb3NzaWJsZSBpZiB0aGVyZSBhcmUgY2VydGFpbiB0eXBlcyBvZiBicmVha2luZyBjaGFuZ2VzXG4gICAgY29uc3QgYmxvY2tpbmdDaGFuZ2VUeXBlcyA9IFtcbiAgICAgIEJyZWFraW5nQ2hhbmdlVHlwZS5QUk9QRVJUWV9SRU1PVkVELFxuICAgICAgQnJlYWtpbmdDaGFuZ2VUeXBlLlNDSEVNQV9SRVNUUlVDVFVSRUQsXG4gICAgICBCcmVha2luZ0NoYW5nZVR5cGUuUFJPUEVSVFlfVFlQRV9DSEFOR0VELFxuICAgIF07XG5cbiAgICByZXR1cm4gIWJyZWFraW5nQ2hhbmdlcy5zb21lKChiYykgPT5cbiAgICAgIGJsb2NraW5nQ2hhbmdlVHlwZXMuaW5jbHVkZXMoYmMuY2hhbmdlVHlwZSBhcyBhbnkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgbmV4dCBwaGFzZSBpbiB0aGUgdmVyc2lvbiBsaWZlY3ljbGVcbiAgICovXG4gIHByaXZhdGUgX2RldGVybWluZU5leHRQaGFzZShjdXJyZW50UGhhc2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoIChjdXJyZW50UGhhc2UpIHtcbiAgICAgIGNhc2UgVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkU6XG4gICAgICAgIHJldHVybiBWZXJzaW9uU3VwcG9ydExldmVsLk1BSU5URU5BTkNFO1xuICAgICAgY2FzZSBWZXJzaW9uU3VwcG9ydExldmVsLk1BSU5URU5BTkNFOlxuICAgICAgICByZXR1cm4gVmVyc2lvblN1cHBvcnRMZXZlbC5ERVBSRUNBVEVEO1xuICAgICAgY2FzZSBWZXJzaW9uU3VwcG9ydExldmVsLkRFUFJFQ0FURUQ6XG4gICAgICAgIHJldHVybiBWZXJzaW9uU3VwcG9ydExldmVsLlNVTlNFVDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive tests for ApiVersionManager - Version management framework
|
|
3
|
+
*
|
|
4
|
+
* This test suite validates all functionality of the ApiVersionManager singleton,
|
|
5
|
+
* including version registration, resolution, migration analysis, and lifecycle management.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|