From 823a0ef971099dc9813b28b2490dcf0c2884861b Mon Sep 17 00:00:00 2001 From: Harold Date: Mon, 14 Nov 2022 16:38:16 -0300 Subject: [PATCH] fix: replace cuid usage, remove conditional cuid generation for root ids --- package.json | 2 +- src/services/actionGroup/format.ts | 28 +- src/services/activityLogAlerts/format.ts | 26 +- src/services/adApplication/format.ts | 5 +- src/services/adGroup/format.ts | 21 +- .../format.ts | 11 +- src/services/adServicePrincipal/format.ts | 11 +- src/services/adUser/format.ts | 8 +- src/services/aksManagedCluster/format.ts | 6 +- src/services/appInsights/format.ts | 4 +- src/services/appServiceEnvironment/format.ts | 6 +- src/services/appServicePlan/format.ts | 12 +- src/services/appServiceWebApp/format.ts | 55 +- src/services/applicationGateway/format.ts | 1034 ++++++++------- src/services/arcConnectedCluster/format.ts | 3 +- src/services/authRoleDefinition/format.ts | 8 +- .../autoProvisioningSettings/format.ts | 15 +- src/services/backupInstances/format.ts | 34 +- src/services/backupPolicies/format.ts | 36 +- src/services/backupVaults/format.ts | 9 +- src/services/cdnCustomDomains/format.ts | 3 +- src/services/cdnEndpoints/format.ts | 76 +- src/services/cdnOriginGroups/format.ts | 22 +- src/services/cdnOrigins/format.ts | 7 +- src/services/cdnProfiles/format.ts | 3 +- .../cognitiveServicesAccount/format.ts | 15 +- src/services/containerRegistry/format.ts | 5 +- src/services/cosmosDb/format.ts | 35 +- src/services/dataCollectionRule/format.ts | 34 +- src/services/dataFactory/format.ts | 3 +- .../dataLakeStorageAccounts/format.ts | 3 +- .../databaseManagedSqlInstance/format.ts | 6 +- src/services/databaseMySql/format.ts | 3 +- src/services/databasePostgreSql/format.ts | 3 +- src/services/databaseSql/format.ts | 10 +- src/services/databaseSqlVm/format.ts | 3 +- src/services/diagnosticSettings/format.ts | 13 +- src/services/disk/format.ts | 3 +- src/services/dns/format.ts | 24 +- src/services/eventGrid/format.ts | 3 +- src/services/eventHub/format.ts | 3 +- src/services/expressRouteGateways/format.ts | 42 +- src/services/fileShare/format.ts | 4 +- src/services/firewall/format.ts | 22 +- src/services/functionApp/format.ts | 81 +- src/services/index.ts | 5 +- src/services/integrationRuntimes/format.ts | 16 +- src/services/keyVault/format.ts | 41 +- src/services/loadBalancer/format.ts | 17 +- src/services/logAnalyticsSolution/format.ts | 4 +- src/services/logAnalyticsWorkspace/format.ts | 4 +- src/services/logProfiles/format.ts | 3 +- .../machineLearningWorkspaces/format.ts | 13 +- src/services/metricAlert/format.ts | 104 +- src/services/mySqlServers/format.ts | 5 +- src/services/networkInterface/format.ts | 3 +- src/services/policyAssignment/format.ts | 14 +- src/services/postgreSqlServers/format.ts | 9 +- src/services/privateDns/format.ts | 3 +- src/services/recoveryInstances/format.ts | 25 +- src/services/recoveryPolicies/format.ts | 22 +- src/services/recoveryVaults/format.ts | 10 +- src/services/redisCache/format.ts | 23 +- src/services/replicationAppliances/data.ts | 9 +- src/services/replicationCenters/data.ts | 9 +- src/services/replicationCenters/format.ts | 10 +- src/services/replicationNetworks/data.ts | 9 +- src/services/replicationNetworks/format.ts | 7 +- src/services/replicationPolicies/data.ts | 9 +- src/services/securityAssesments/format.ts | 3 +- src/services/securityContacts/format.ts | 3 +- src/services/securityGroup/format.ts | 9 +- src/services/securityPricings/format.ts | 3 +- src/services/securitySettings/format.ts | 3 +- src/services/serviceBus/format.ts | 10 +- src/services/sqlServers/format.ts | 166 +-- src/services/storageAccount/format.ts | 55 +- src/services/storageBlob/format.ts | 7 +- src/services/storageContainer/format.ts | 21 +- src/services/synapseBigDataPools/data.ts | 3 +- src/services/synapseBigDataPools/format.ts | 13 +- src/services/synapseSqlPools/data.ts | 3 +- src/services/synapseSqlPools/format.ts | 5 +- src/services/synapseWorkspaces/format.ts | 20 +- src/services/trafficManagerProfile/format.ts | 37 +- src/services/virtualMachineScaleSet/format.ts | 40 +- yarn.lock | 1130 +++-------------- 87 files changed, 1703 insertions(+), 1962 deletions(-) diff --git a/package.json b/package.json index b1a0ed65..59563e1b 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@azure/identity": "^2.0.4", "@azure/storage-blob": "^12.8.0", "@azure/storage-queue": "^12.9.0", - "@cloudgraph/sdk": "0.20.0", + "@cloudgraph/sdk": "0.22.0", "@graphql-tools/load-files": "^6.5.3", "@graphql-tools/merge": "^8.2.3", "@microsoft/microsoft-graph-client": "^3.0.2", diff --git a/src/services/actionGroup/format.ts b/src/services/actionGroup/format.ts index 53b3c4fd..f0973a05 100644 --- a/src/services/actionGroup/format.ts +++ b/src/services/actionGroup/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { RawAzureActionGroup } from './data' import { AzureActionGroup } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' @@ -24,7 +24,7 @@ export default ({ Tags = {}, } = service return { - id: id || cuid(), + id, name, type, region, @@ -32,9 +32,27 @@ export default ({ resourceGroupId, enabled, groupShortName, - emailReceivers: emailReceivers.map(e => ({ id: cuid(), ...e })), - smsReceivers: smsReceivers.map(s => ({ id: cuid(), ...s })), - webhookReceivers: webhookReceivers.map(w => ({ id: cuid(), ...w })), + emailReceivers: emailReceivers.map(e => ({ + id: generateUniqueId({ + id, + ...e, + }), + ...e, + })), + smsReceivers: smsReceivers.map(s => ({ + id: generateUniqueId({ + id, + ...s, + }), + ...s, + })), + webhookReceivers: webhookReceivers.map(w => ({ + id: generateUniqueId({ + id, + ...w, + }), + ...w, + })), tags: formatTagsFromMap(Tags), } } diff --git a/src/services/activityLogAlerts/format.ts b/src/services/activityLogAlerts/format.ts index 8c800a5f..88013e50 100644 --- a/src/services/activityLogAlerts/format.ts +++ b/src/services/activityLogAlerts/format.ts @@ -1,15 +1,15 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { RawAzureActivityLogAlert } from './data' import { AzureActivityLogAlert } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' export default ({ service, - account: subscriptionId + account: subscriptionId, }: { service: RawAzureActivityLogAlert account: string -}) : AzureActivityLogAlert => { +}): AzureActivityLogAlert => { const { id, name, @@ -23,7 +23,7 @@ export default ({ Tags = {}, } = service return { - id: id || cuid(), + id, name, type, region, @@ -32,7 +32,7 @@ export default ({ enabled, condition: { allOf: condition?.allOf?.map(leaf => ({ - id: cuid(), + id: generateUniqueId({ id, ...leaf }), field: leaf?.field, equals: leaf?.equals, })), @@ -41,11 +41,17 @@ export default ({ actionGroups: actions?.actionGroups?.map(group => ({ id: group.actionGroupId, actionGroupId: group.actionGroupId, - webhookProperties: Object.entries(group?.webhookProperties || {}).map(([key, value]) => ({ - id: cuid(), - key, - value - })), + webhookProperties: Object.entries(group?.webhookProperties || {}).map( + ([key, value]) => ({ + id: generateUniqueId({ + id, + actionGroupId: group.actionGroupId, + key + }), + key, + value, + }) + ), })), }, description, diff --git a/src/services/adApplication/format.ts b/src/services/adApplication/format.ts index 49d27fca..cc4e696b 100644 --- a/src/services/adApplication/format.ts +++ b/src/services/adApplication/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureAdApplication } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureADApplication } from './data' @@ -42,7 +41,7 @@ export default ({ } = {}, } = service return { - id: id || cuid(), + id, region, appId, applicationTemplateId, @@ -52,7 +51,7 @@ export default ({ ({ appId: preAuthAppId }) => preAuthAppId ), appRoles: appRoles.map(({ id: appRoleId, ...restOfAppRole }) => ({ - id: appRoleId || cuid(), + id: appRoleId, ...restOfAppRole, })), createdDateTime, diff --git a/src/services/adGroup/format.ts b/src/services/adGroup/format.ts index 53507b2b..133f2074 100644 --- a/src/services/adGroup/format.ts +++ b/src/services/adGroup/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureAdGroup } from '../../types/generated' import { RawAzureADGroup } from './data' @@ -38,7 +38,7 @@ export default ({ service }: { service: RawAzureADGroup }): AzureAdGroup => { settings = [], } = service return { - id: id || cuid(), + id, deletedDateTime, classification, createdDateTime, @@ -67,11 +67,20 @@ export default ({ service }: { service: RawAzureADGroup }): AzureAdGroup => { allowExternalSenders, isSubscribedByMail, isArchived, - appRoleAssignments: appRoleAssignments.map(aRA => ({ id: cuid(), ...aRA })), - permissionGrants: permissionGrants.map(pG => ({ id: cuid(), ...pG })), + appRoleAssignments: appRoleAssignments.map(aRA => ({ + id: aRA.id, + ...aRA, + })), + permissionGrants: permissionGrants.map(pG => ({ + id: pG.id, + ...pG, + })), settings: settings.map(({ id: sId, values: sValues = [], ...s }) => ({ - id: sId || cuid(), - values: sValues.map(sValue => ({ id: cuid(), ...sValue })), + id: sId, + values: sValues.map(sValue => ({ + id: generateUniqueId({ id, ...sValue }), + ...sValue, + })), ...s, })), } diff --git a/src/services/adIdentitySecurityDefaultsEnforcementPolicy/format.ts b/src/services/adIdentitySecurityDefaultsEnforcementPolicy/format.ts index 092f616a..32896ece 100644 --- a/src/services/adIdentitySecurityDefaultsEnforcementPolicy/format.ts +++ b/src/services/adIdentitySecurityDefaultsEnforcementPolicy/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureAdIdentitySecurityDefaultsEnforcementPolicy } from '../../types/generated' import { RawAzureADIdentitySecurityDefaultsEnforcementPolicyClient } from './data' @@ -8,15 +7,9 @@ export default ({ service: RawAzureADIdentitySecurityDefaultsEnforcementPolicyClient account: string }): AzureAdIdentitySecurityDefaultsEnforcementPolicy => { - const { - id, - region, - description, - displayName, - isEnabled, - } = service + const { id, region, description, displayName, isEnabled } = service return { - id: id || cuid(), + id, region, description, displayName, diff --git a/src/services/adServicePrincipal/format.ts b/src/services/adServicePrincipal/format.ts index 6f066b30..eaf469fe 100644 --- a/src/services/adServicePrincipal/format.ts +++ b/src/services/adServicePrincipal/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureAdServicePrincipal } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureADServicePrincipal } from './data' @@ -42,7 +41,7 @@ export default ({ endpoints = [], } = service return { - id: id || cuid(), + id, region, deletedDateTime, accountEnabled, @@ -54,7 +53,7 @@ export default ({ appOwnerOrganizationId, appRoleAssignmentRequired, appRoles: appRoles.map(({ id: aRId, ...aR }) => ({ - id: aRId || cuid(), + id: aRId, ...aR, })), description, @@ -73,15 +72,15 @@ export default ({ tags: formatTagsFromMap(Tags), tokenEncryptionKeyId, appRoleAssignedTo: appRoleAssignedTo.map(({ id: aRaTId, ...aRaT }) => ({ - id: aRaTId || cuid(), + id: aRaTId, ...aRaT, })), appRoleAssignments: appRoleAssignments.map(({ id: aRAId, ...aRA }) => ({ - id: aRAId || cuid(), + id: aRAId, ...aRA, })), endpoints: endpoints.map(({ id: eId, ...e }) => ({ - id: eId || cuid(), + id: eId, ...e, })), } diff --git a/src/services/adUser/format.ts b/src/services/adUser/format.ts index 0b055f4b..ed94ce94 100644 --- a/src/services/adUser/format.ts +++ b/src/services/adUser/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureAdUser } from '../../types/generated' import { RawAzureADUser } from './data' @@ -52,7 +51,7 @@ export default ({ appRoleAssignments = [], } = service return { - id: id || cuid(), + id, deletedDateTime, accountEnabled, ageGroup, @@ -91,6 +90,9 @@ export default ({ userType, preferredName, responsibilities, - appRoleAssignments: appRoleAssignments.map(aRA => ({ id: cuid(), ...aRA })), + appRoleAssignments: appRoleAssignments.map(aRA => ({ + id: aRA.id, + ...aRA, + })), } } diff --git a/src/services/aksManagedCluster/format.ts b/src/services/aksManagedCluster/format.ts index fd21579b..064964a4 100644 --- a/src/services/aksManagedCluster/format.ts +++ b/src/services/aksManagedCluster/format.ts @@ -3,7 +3,7 @@ import { ManagedClusterAADProfile, ManagedClusterAgentPoolProfile, } from '@azure/arm-containerservice' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureAksManagedCluster, AzureAksManagedClusterAadProfile, @@ -26,7 +26,7 @@ const formatAgentPoolProfiles = ( tags, ...rest }) => ({ - id: cuid(), + id: generateUniqueId({ powerStateCode, upgradeMaxSurge, ...rest }), powerStateCode, upgradeMaxSurge, ...rest, @@ -113,7 +113,7 @@ export default ({ {} return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/appInsights/format.ts b/src/services/appInsights/format.ts index f69757c8..d00db337 100644 --- a/src/services/appInsights/format.ts +++ b/src/services/appInsights/format.ts @@ -1,5 +1,3 @@ -import cuid from 'cuid' - import { AzureAppInsights } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureAppInsight } from './data' @@ -36,7 +34,7 @@ export default ({ } = service return { - id: id || cuid(), + id, type, etag, resourceGroupId, diff --git a/src/services/appServiceEnvironment/format.ts b/src/services/appServiceEnvironment/format.ts index c21f7a13..a315cc49 100644 --- a/src/services/appServiceEnvironment/format.ts +++ b/src/services/appServiceEnvironment/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { formatTagsFromMap } from '../../utils/format' import { RawAzureAppServiceEnvironment } from './data' import { AzureAppServiceEnvironment } from '../../types/generated' @@ -36,7 +36,7 @@ export default ({ zoneRedundant, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, kind, @@ -54,7 +54,7 @@ export default ({ frontEndScaleFactor, suspended, clusterSettings: clusterSettings?.map(({ name: settingsName, value }) => ({ - id: cuid(), + id: generateUniqueId({ id, settingsName }), name: settingsName, value, })), diff --git a/src/services/appServicePlan/format.ts b/src/services/appServicePlan/format.ts index 0902e27d..6ffeecf3 100644 --- a/src/services/appServicePlan/format.ts +++ b/src/services/appServicePlan/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { Capability } from '@azure/arm-appservice' import { formatTagsFromMap } from '../../utils/format' import { RawAzureAppServicePlan } from './data' @@ -41,7 +41,7 @@ export default ({ zoneRedundant, } = service return { - id: id || cuid(), + id, subscriptionId: subscription || account, name, type, @@ -61,7 +61,13 @@ export default ({ resourceGroupId, skuDescription: { capabilities: - capabilities?.map((c: Capability) => ({ id: cuid(), ...c })) || [], + capabilities?.map((c: Capability) => ({ + id: generateUniqueId({ + id, + ...c, + }), + ...c, + })) || [], ...restOfSku, }, spotExpirationTime: spotExpirationTime?.toISOString(), diff --git a/src/services/appServiceWebApp/format.ts b/src/services/appServiceWebApp/format.ts index bc21787d..7c8e81a7 100644 --- a/src/services/appServiceWebApp/format.ts +++ b/src/services/appServiceWebApp/format.ts @@ -2,7 +2,7 @@ import { AzureStorageInfoValue, SiteConfigResource, } from '@azure/arm-appservice' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import isArray from 'lodash/isArray' import toString from 'lodash/toString' import { formatTagsFromMap } from '../../utils/format' @@ -29,14 +29,20 @@ const formatAzureStorageAccounts = (azureStorageAccounts: { }): RawAzureStorageInfoValue[] => { return Object.entries(azureStorageAccounts).map(([key, value]) => { if (!value) return {} as RawAzureStorageInfoValue - return { - id: cuid(), + const obj = { name: key, type: value.type, accountName: value.accountName, shareName: value.shareName, accessKey: value.accessKey, mountPath: value.mountPath, + } + return { + id: generateUniqueId({ + key, + ...obj, + }), + ...obj, state: value.state, } }) @@ -47,7 +53,10 @@ const formatHeaders = headers => { return Object.entries(headers).map(([key, value]) => { const conVal = (isArray(value) ? value : [value]) || [] return { - id: cuid(), + id: generateUniqueId({ + key, + value: conVal.map(val => toString(val)), + }), key, value: conVal.map(val => toString(val)), } @@ -74,7 +83,7 @@ const formatSiteConfig = ({ ...restConfig }: RawSiteConfigResource): AzureAppServiceWebAppSiteConfig => { return { - id: id || cuid(), + id, autoHealRules: { triggers: { @@ -82,18 +91,18 @@ const formatSiteConfig = ({ privateBytesInKB: autoHealRules?.triggers?.privateBytesInKB, statusCodes: autoHealRules?.triggers?.statusCodes?.map(s => ({ - id: cuid(), + id: generateUniqueId({ id, ...s }), ...s, })) || [], slowRequests: autoHealRules?.triggers?.slowRequests, slowRequestsWithPath: autoHealRules?.triggers?.slowRequestsWithPath?.map(s => ({ - id: cuid(), + id: generateUniqueId({ id, ...s }), ...s, })) || [], statusCodesRange: autoHealRules?.triggers?.statusCodesRange?.map(s => ({ - id: cuid(), + id: generateUniqueId({ id, ...s }), ...s, })) || [], } || {}, @@ -101,43 +110,53 @@ const formatSiteConfig = ({ }, appSettings: appSettings?.map(({ name, value }) => ({ - id: cuid(), + id: generateUniqueId({ id, name, value }), name, value, })) || [], apiDefinitionInfoUrl: apiDefinition?.url || '', apiManagementConfigId: apiManagementConfig?.id || '', connectionStrings: - connectionStrings?.map(c => ({ id: cuid(), ...c })) || [], + connectionStrings?.map(c => ({ + id: generateUniqueId({ id, ...c }), + ...c, + })) || [], requestTracingExpirationTime: requestTracingExpirationTime?.toISOString(), isPushEnabled: push?.isPushEnabled || false, virtualApplications: virtualApplications?.map(({ virtualDirectories, ...v }) => ({ - id: cuid(), + id: generateUniqueId({ id, ...v }), virtualDirectories: virtualDirectories?.map(d => ({ - id: cuid(), + id: generateUniqueId({ id, ...d }), ...d, })) || [], ...v, })) || [], experiments: { rampUpRules: - experiments?.rampUpRules?.map(r => ({ id: cuid(), ...r })) || [], + experiments?.rampUpRules?.map(r => ({ + id: generateUniqueId({ id, ...r }), + ...r, + })) || [], }, ipSecurityRestrictions: ipSecurityRestrictions?.map(({ headers, ...i }) => ({ - id: cuid(), + id: generateUniqueId({ id, ...i }), headers: formatHeaders(headers), ...i, })) || [], scmIpSecurityRestrictions: scmIpSecurityRestrictions?.map(({ headers, ...s }) => ({ - id: cuid(), + id: generateUniqueId({ id, ...s }), headers: formatHeaders(headers), ...s, })) || [], - handlerMappings: handlerMappings?.map(h => ({ id: cuid(), ...h })) || [], + handlerMappings: + handlerMappings?.map(h => ({ + id: generateUniqueId({ id, ...h }), + ...h, + })) || [], azureStorageAccounts: formatAzureStorageAccounts(azureStorageAccounts), tags: formatTagsFromMap(tags), ...restConfig, @@ -200,7 +219,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -219,7 +238,7 @@ export default ({ availabilityState, hostNameSslStates: hostNameSslStates?.map(h => ({ - id: cuid(), + id: generateUniqueId({ id, ...h }), ...(h as AzureAppServiceWebAppHostNameSslState), })) || [], serverFarmId, diff --git a/src/services/applicationGateway/format.ts b/src/services/applicationGateway/format.ts index 8274ee01..6d66e1f4 100644 --- a/src/services/applicationGateway/format.ts +++ b/src/services/applicationGateway/format.ts @@ -45,7 +45,7 @@ import { Subnet, VirtualNetworkTap, } from '@azure/arm-network' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureApplicationGateway, AzureApplicationGatewayApplicationGatewayBackendAddressPool, @@ -96,20 +96,20 @@ import { import { formatTagsFromMap } from '../../utils/format' import { RawAzureApplicationGateway } from './data' -export const formatUserAssignedIdentities = ( - userAssignedIdentities?: { - [propertyName: string]: Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties - } -): AzureApplicationGatewayUserAssignedIdentities[] => { +export const formatUserAssignedIdentities = (userAssignedIdentities?: { + [ + propertyName: string + ]: Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties +}): AzureApplicationGatewayUserAssignedIdentities[] => { const result: AzureApplicationGatewayUserAssignedIdentities[] = [] for (const [key, value] of Object.entries(userAssignedIdentities)) { - result.push({ - id: `${key}:${value}`, - key, + result.push({ + id: `${key}:${value}`, + key, property: { principalId: value?.principalId, clientId: value?.clientId, - } + }, }) } return result @@ -129,53 +129,83 @@ export const formatApplicationGatewaySslPolicy = ( export const formatApplicationGatewaySslProfile = ( profile: ApplicationGatewaySslProfile -): AzureApplicationGatewayApplicationGatewaySslProfile=> { +): AzureApplicationGatewayApplicationGatewaySslProfile => { return { id: profile.id, name: profile.name, type: profile.type, - trustedClientCertificates: profile.trustedClientCertificates?.map(c => {return {id: c.id}}) || [], + trustedClientCertificates: + profile.trustedClientCertificates?.map(c => { + return { id: c.id } + }) || [], sslPolicy: formatApplicationGatewaySslPolicy(profile.sslPolicy), - clientAuthConfiguration: profile.clientAuthConfiguration?.verifyClientCertIssuerDN, + clientAuthConfiguration: + profile.clientAuthConfiguration?.verifyClientCertIssuerDN, provisioningState: profile.provisioningState, } } -export const formatBackendAddressPool = (pool: BackendAddressPool): AzureApplicationGatewayBackendAddressPool | undefined => { +export const formatBackendAddressPool = ( + pool: BackendAddressPool +): AzureApplicationGatewayBackendAddressPool | undefined => { return { id: pool.id, name: pool.name, type: pool.type, location: pool.location, - tunnelInterfaces: pool.tunnelInterfaces?.map(r => { - return { - id: cuid(), - port: r.port, - identifier: r.identifier, - protocol: r.protocol, - type: r.type, - } - }) || [], - loadBalancerBackendAddresses: pool.loadBalancerBackendAddresses?.map(r => { - return { - id: cuid(), - name: r.name, - virtualNetwork: r.virtualNetwork?.id, - subnet: r.subnet?.id, - ipAddress: r.ipAddress, - networkInterfaceIPConfiguration: r.networkInterfaceIPConfiguration?.id, - loadBalancerFrontendIPConfiguration: r.loadBalancerFrontendIPConfiguration?.id, - inboundNatRulesPortMapping: r.inboundNatRulesPortMapping?.map(m => { - return { - id: cuid(), - inboundNatRuleName: m.inboundNatRuleName, - frontendPort: m.frontendPort, - backendPort: m.backendPort, - } - }) || [] - } - }) || [], - backendIPConfigurations: pool.backendIPConfigurations?.map(config => config), + tunnelInterfaces: + pool.tunnelInterfaces?.map(r => { + return { + id: generateUniqueId({ + port: r.port, + identifier: r.identifier, + protocol: r.protocol, + type: r.type, + }), + port: r.port, + identifier: r.identifier, + protocol: r.protocol, + type: r.type, + } + }) || [], + loadBalancerBackendAddresses: + pool.loadBalancerBackendAddresses?.map(r => { + return { + id: generateUniqueId({ + name: r.name, + virtualNetwork: r.virtualNetwork?.id, + subnet: r.subnet?.id, + networkInterfaceIPConfiguration: + r.networkInterfaceIPConfiguration?.id, + loadBalancerFrontendIPConfiguration: + r.loadBalancerFrontendIPConfiguration?.id, + }), + name: r.name, + virtualNetwork: r.virtualNetwork?.id, + subnet: r.subnet?.id, + ipAddress: r.ipAddress, + networkInterfaceIPConfiguration: + r.networkInterfaceIPConfiguration?.id, + loadBalancerFrontendIPConfiguration: + r.loadBalancerFrontendIPConfiguration?.id, + inboundNatRulesPortMapping: + r.inboundNatRulesPortMapping?.map(m => { + return { + id: generateUniqueId({ + inboundNatRuleName: m.inboundNatRuleName, + frontendPort: m.frontendPort, + backendPort: m.backendPort, + }), + inboundNatRuleName: m.inboundNatRuleName, + frontendPort: m.frontendPort, + backendPort: m.backendPort, + } + }) || [], + } + }) || [], + backendIPConfigurations: pool.backendIPConfigurations?.map( + config => config + ), loadBalancingRules: pool.loadBalancingRules.map(r => r.id) || [], outboundRule: pool.outboundRule?.id, outboundRules: pool.outboundRules.map(r => r.id) || [], @@ -184,7 +214,9 @@ export const formatBackendAddressPool = (pool: BackendAddressPool): AzureApplica } } -export const formatApplicationSecurityGroup = (group: ApplicationSecurityGroup): AzureApplicationGatewayApplicationSecurityGroup => { +export const formatApplicationSecurityGroup = ( + group: ApplicationSecurityGroup +): AzureApplicationGatewayApplicationSecurityGroup => { return { id: group.id, resourceGuid: group.resourceGuid, @@ -192,7 +224,9 @@ export const formatApplicationSecurityGroup = (group: ApplicationSecurityGroup): } } -export const formatSecurityRule = (securityRule: SecurityRule): AzureApplicationGatewaySecurityRule => { +export const formatSecurityRule = ( + securityRule: SecurityRule +): AzureApplicationGatewaySecurityRule => { return { id: securityRule.id, name: securityRule.name, @@ -203,14 +237,16 @@ export const formatSecurityRule = (securityRule: SecurityRule): AzureApplication destinationPortRange: securityRule.destinationPortRange, sourceAddressPrefix: securityRule.sourceAddressPrefix, sourceAddressPrefixes: securityRule.sourceAddressPrefixes, - sourceApplicationSecurityGroups: securityRule.sourceApplicationSecurityGroups?.map( - group => formatApplicationSecurityGroup(group) - ) || [], + sourceApplicationSecurityGroups: + securityRule.sourceApplicationSecurityGroups?.map(group => + formatApplicationSecurityGroup(group) + ) || [], destinationAddressPrefix: securityRule.destinationAddressPrefix, destinationAddressPrefixes: securityRule.destinationAddressPrefixes, - destinationApplicationSecurityGroups: securityRule.destinationApplicationSecurityGroups?.map( - group => formatApplicationSecurityGroup(group) - ) || [], + destinationApplicationSecurityGroups: + securityRule.destinationApplicationSecurityGroups?.map(group => + formatApplicationSecurityGroup(group) + ) || [], sourcePortRanges: securityRule.sourcePortRanges, destinationPortRanges: securityRule.destinationPortRanges, access: securityRule.access, @@ -260,7 +296,9 @@ export const formatPrivateEndpointIPConfiguration = ( } } -export const formatPrivateEndpoint = (pe: PrivateEndpoint): AzureApplicationGatewayPrivateEndpoint => { +export const formatPrivateEndpoint = ( + pe: PrivateEndpoint +): AzureApplicationGatewayPrivateEndpoint => { return { extendedLocation: { name: pe.extendedLocation?.name, @@ -269,11 +307,24 @@ export const formatPrivateEndpoint = (pe: PrivateEndpoint): AzureApplicationGate subnet: pe.subnet, networkInterfaces: pe.networkInterfaces?.map(ni => ni) || [], provisioningState: pe.provisioningState, - privateLinkServiceConnections: pe.privateLinkServiceConnections?.map(c => formatPrivateLinkServiceConnection(c)) || [], - manualPrivateLinkServiceConnections: pe.manualPrivateLinkServiceConnections?.map(c => formatPrivateLinkServiceConnection(c)) || [], - customDnsConfigs: pe.customDnsConfigs?.map(c => formatCustomDnsConfigPropertiesFormat(c)) || [], - applicationSecurityGroups: pe.applicationSecurityGroups?.map(sg => formatApplicationSecurityGroup(sg)) || [], - ipConfigurations: pe.ipConfigurations?.map(c => formatPrivateEndpointIPConfiguration(c)) || [], + privateLinkServiceConnections: + pe.privateLinkServiceConnections?.map(c => + formatPrivateLinkServiceConnection(c) + ) || [], + manualPrivateLinkServiceConnections: + pe.manualPrivateLinkServiceConnections?.map(c => + formatPrivateLinkServiceConnection(c) + ) || [], + customDnsConfigs: + pe.customDnsConfigs?.map(c => formatCustomDnsConfigPropertiesFormat(c)) || + [], + applicationSecurityGroups: + pe.applicationSecurityGroups?.map(sg => + formatApplicationSecurityGroup(sg) + ) || [], + ipConfigurations: + pe.ipConfigurations?.map(c => formatPrivateEndpointIPConfiguration(c)) || + [], customNetworkInterfaceName: pe.customNetworkInterfaceName, } } @@ -285,17 +336,25 @@ export const formatFrontendIPConfiguration = ( name: c.name, type: c.type, zones: c.zones, - inboundNatRuleIds: c.inboundNatRules.map(rule => {return {id: rule.id}}), - inboundNatPools: c.inboundNatPools.map(pool => {return {id: pool.id}}), - outboundRules: c.outboundRules.map(rule => {return {id: rule.id}}), - loadBalancingRules: c.loadBalancingRules.map(rule => {return {id: rule.id}}), + inboundNatRuleIds: c.inboundNatRules.map(rule => { + return { id: rule.id } + }), + inboundNatPools: c.inboundNatPools.map(pool => { + return { id: pool.id } + }), + outboundRules: c.outboundRules.map(rule => { + return { id: rule.id } + }), + loadBalancingRules: c.loadBalancingRules.map(rule => { + return { id: rule.id } + }), privateIPAddress: c.privateIPAddress, privateIPAllocationMethod: c.privateIPAllocationMethod, privateIPAddressVersion: c.privateIPAddressVersion, subnet: c.subnet, publicIPAddress: c.publicIPAddress, - publicIPPrefix: {id: c.publicIPPrefix?.id}, - gatewayLoadBalancer: {id: c.gatewayLoadBalancer?.id}, + publicIPPrefix: { id: c.publicIPPrefix?.id }, + gatewayLoadBalancer: { id: c.gatewayLoadBalancer?.id }, provisioningState: c.provisioningState, } } @@ -330,34 +389,47 @@ export const formatApplicationGatewayPrivateEndpointConnection = ( } } -export const formatPrivateLinkService = (pls: PrivateLinkService): AzureApplicationGatewayPrivateLinkService => { +export const formatPrivateLinkService = ( + pls: PrivateLinkService +): AzureApplicationGatewayPrivateLinkService => { return { id: pls.id, extendedLocation: { name: pls.extendedLocation?.name, type: pls.extendedLocation?.type, }, - loadBalancerFrontendIpConfigurations: pls.loadBalancerFrontendIpConfigurations?.map(c => formatFrontendIPConfiguration(c)) || [], - ipConfigurations: pls.ipConfigurations?.map(c => formatPrivateLinkServiceIpConfiguration(c)) || [], + loadBalancerFrontendIpConfigurations: + pls.loadBalancerFrontendIpConfigurations?.map(c => + formatFrontendIPConfiguration(c) + ) || [], + ipConfigurations: + pls.ipConfigurations?.map(c => + formatPrivateLinkServiceIpConfiguration(c) + ) || [], networkInterfaces: pls.networkInterfaces?.map(ni => ni) || [], provisioningState: pls.provisioningState, - privateEndpointConnections: pls.privateEndpointConnections?.map(c => formatApplicationGatewayPrivateEndpointConnection(c)) || [], - visibility: {subscriptions: pls.visibility?.subscriptions}, - autoApproval: {subscriptions: pls.autoApproval?.subscriptions}, + privateEndpointConnections: + pls.privateEndpointConnections?.map(c => + formatApplicationGatewayPrivateEndpointConnection(c) + ) || [], + visibility: { subscriptions: pls.visibility?.subscriptions }, + autoApproval: { subscriptions: pls.autoApproval?.subscriptions }, fqdns: pls.fqdns, alias: pls.alias, enableProxyProtocol: pls.enableProxyProtocol, } } -export const formatNetworkInterface = (ni: NetworkInterface): AzureApplicationGatewayNetworkInterface => { +export const formatNetworkInterface = ( + ni: NetworkInterface +): AzureApplicationGatewayNetworkInterface => { return { id: ni.id, extendedLocation: { name: ni.extendedLocation?.name, type: ni.extendedLocation?.type, }, - virtualMachine: {id: ni.virtualMachine?.id}, + virtualMachine: { id: ni.virtualMachine?.id }, networkSecurityGroup: ni.networkSecurityGroup, privateEndpoint: formatPrivateEndpoint(ni.privateEndpoint), ipConfigurations: ni.ipConfigurations?.map(config => config) || [], @@ -375,7 +447,7 @@ export const formatNetworkInterface = (ni: NetworkInterface): AzureApplicationGa enableAcceleratedNetworking: ni.enableAcceleratedNetworking, enableIPForwarding: ni.enableIPForwarding, hostedWorkloads: ni.hostedWorkloads, - dscpConfiguration: {id: ni.dscpConfiguration?.id}, + dscpConfiguration: { id: ni.dscpConfiguration?.id }, resourceGuid: ni.resourceGuid, provisioningState: ni.provisioningState, workloadType: ni.workloadType, @@ -385,7 +457,6 @@ export const formatNetworkInterface = (ni: NetworkInterface): AzureApplicationGa } } - export const formatFlowLog = (fl: FlowLog): AzureApplicationGatewayFlowLog => { return { id: fl.id, @@ -403,23 +474,40 @@ export const formatFlowLog = (fl: FlowLog): AzureApplicationGatewayFlowLog => { }, flowAnalyticsConfiguration: { networkWatcherFlowAnalyticsConfiguration: { - enabled: fl.flowAnalyticsConfiguration?.networkWatcherFlowAnalyticsConfiguration?.enabled, - workspaceId: fl.flowAnalyticsConfiguration?.networkWatcherFlowAnalyticsConfiguration?.workspaceId, - workspaceRegion: fl.flowAnalyticsConfiguration?.networkWatcherFlowAnalyticsConfiguration?.workspaceRegion, - workspaceResourceId: fl.flowAnalyticsConfiguration?.networkWatcherFlowAnalyticsConfiguration?.workspaceResourceId, - trafficAnalyticsInterval: fl.flowAnalyticsConfiguration?.networkWatcherFlowAnalyticsConfiguration?.trafficAnalyticsInterval, + enabled: + fl.flowAnalyticsConfiguration + ?.networkWatcherFlowAnalyticsConfiguration?.enabled, + workspaceId: + fl.flowAnalyticsConfiguration + ?.networkWatcherFlowAnalyticsConfiguration?.workspaceId, + workspaceRegion: + fl.flowAnalyticsConfiguration + ?.networkWatcherFlowAnalyticsConfiguration?.workspaceRegion, + workspaceResourceId: + fl.flowAnalyticsConfiguration + ?.networkWatcherFlowAnalyticsConfiguration?.workspaceResourceId, + trafficAnalyticsInterval: + fl.flowAnalyticsConfiguration + ?.networkWatcherFlowAnalyticsConfiguration + ?.trafficAnalyticsInterval, }, }, - provisioningState: fl.provisioningState + provisioningState: fl.provisioningState, } } -export const formatNetworkSecurityGroup = (sg: NetworkSecurityGroup): AzureApplicationGatewayNetworkSecurityGroup => { +export const formatNetworkSecurityGroup = ( + sg: NetworkSecurityGroup +): AzureApplicationGatewayNetworkSecurityGroup => { return { id: sg.id, - securityRules: sg.securityRules?.map(rule => formatSecurityRule(rule)) || [], - defaultSecurityRules: sg.defaultSecurityRules?.map(rule => formatSecurityRule(rule)) || [], - networkInterfaces: sg.networkInterfaces?.map(ni => formatNetworkInterface(ni)), + securityRules: + sg.securityRules?.map(rule => formatSecurityRule(rule)) || [], + defaultSecurityRules: + sg.defaultSecurityRules?.map(rule => formatSecurityRule(rule)) || [], + networkInterfaces: sg.networkInterfaces?.map(ni => + formatNetworkInterface(ni) + ), subnets: sg.subnets?.map(subnet => subnet) || [], flowLogs: sg.flowLogs?.map(fl => formatFlowLog(fl)) || [], resourceGuid: sg.resourceGuid, @@ -431,7 +519,11 @@ export const formatServiceEndpointPropertiesFormat = ( format: ServiceEndpointPropertiesFormat ): AzureApplicationGatewayServiceEndpointPropertiesFormat => { return { - id: cuid(), + id: generateUniqueId({ + service: format.service, + locations: format.locations, + provisioningState: format.provisioningState, + }), service: format.service, locations: format.locations, provisioningState: format.provisioningState, @@ -452,11 +544,16 @@ export const formatServiceEndpointPolicyDefinition = ( } } -export const formatServiceEndpointPolicy = (sep: ServiceEndpointPolicy): AzureApplicationGatewayServiceEndpointPolicy => { +export const formatServiceEndpointPolicy = ( + sep: ServiceEndpointPolicy +): AzureApplicationGatewayServiceEndpointPolicy => { return { id: sep.id, kind: sep.kind, - serviceEndpointPolicyDefinitions: sep.serviceEndpointPolicyDefinitions?.map(def => formatServiceEndpointPolicyDefinition(def)) || [], + serviceEndpointPolicyDefinitions: + sep.serviceEndpointPolicyDefinitions?.map(def => + formatServiceEndpointPolicyDefinition(def) + ) || [], subnets: sep.subnets?.map(subnet => subnet) || [], resourceGuid: sep.resourceGuid, provisioningState: sep.provisioningState, @@ -465,7 +562,9 @@ export const formatServiceEndpointPolicy = (sep: ServiceEndpointPolicy): AzureAp } } -export const formatIPConfigurationProfile = (profile: IPConfigurationProfile): AzureApplicationGatewayIpConfigurationProfile => { +export const formatIPConfigurationProfile = ( + profile: IPConfigurationProfile +): AzureApplicationGatewayIpConfigurationProfile => { return { id: profile.id, name: profile.name, @@ -475,7 +574,9 @@ export const formatIPConfigurationProfile = (profile: IPConfigurationProfile): A } } -export const formatResourceNavigationLink = (link: ResourceNavigationLink): AzureApplicationGatewayResourceNavigationLink => { +export const formatResourceNavigationLink = ( + link: ResourceNavigationLink +): AzureApplicationGatewayResourceNavigationLink => { return { id: link.id, name: link.name, @@ -486,9 +587,11 @@ export const formatResourceNavigationLink = (link: ResourceNavigationLink): Azur } } -export const formatServiceAssociationLink = (link: ServiceAssociationLink): AzureApplicationGatewayServiceAssociationLink => { +export const formatServiceAssociationLink = ( + link: ServiceAssociationLink +): AzureApplicationGatewayServiceAssociationLink => { return { - id: link .id, + id: link.id, name: link.name, type: link.type, linkedResourceType: link.linkedResourceType, @@ -499,7 +602,9 @@ export const formatServiceAssociationLink = (link: ServiceAssociationLink): Azur } } -export const formatDelegation = (delegation: Delegation): AzureApplicationGatewayDelegation => { +export const formatDelegation = ( + delegation: Delegation +): AzureApplicationGatewayDelegation => { return { id: delegation.id, name: delegation.name, @@ -528,7 +633,9 @@ export const formatSubnet = (subnet: Subnet): AzureApplicationGatewaySubnet => { type: subnet.type, addressPrefix: subnet.addressPrefix, addressPrefixes: subnet.addressPrefixes, - networkSecurityGroup: subnet.networkSecurityGroup ? formatNetworkSecurityGroup(subnet.networkSecurityGroup) : {}, + networkSecurityGroup: subnet.networkSecurityGroup + ? formatNetworkSecurityGroup(subnet.networkSecurityGroup) + : {}, routeTable: { id: subnet.routeTable?.id, routes: subnet.routeTable?.routes?.map(route => { @@ -548,31 +655,51 @@ export const formatSubnet = (subnet: Subnet): AzureApplicationGatewaySubnet => { provisioningState: subnet.routeTable?.provisioningState, resourceGuid: subnet.routeTable?.resourceGuid, }, - natGateway: {id: subnet.natGateway?.id}, - serviceEndpoints: subnet.serviceEndpoints?.map(e => formatServiceEndpointPropertiesFormat(e)) || [], - serviceEndpointPolicies: subnet.serviceEndpointPolicies?.map(policy => formatServiceEndpointPolicy(policy)) || [], + natGateway: { id: subnet.natGateway?.id }, + serviceEndpoints: + subnet.serviceEndpoints?.map(e => + formatServiceEndpointPropertiesFormat(e) + ) || [], + serviceEndpointPolicies: + subnet.serviceEndpointPolicies?.map(policy => + formatServiceEndpointPolicy(policy) + ) || [], privateEndpoints: subnet.privateEndpoints?.map(endpoint => endpoint) || [], ipConfigurations: subnet.ipConfigurations?.map(config => config) || [], - ipConfigurationProfiles: subnet.ipConfigurationProfiles?.map(profile => formatIPConfigurationProfile(profile)) || [], - ipAllocations: subnet.ipAllocations?.map(allocation => { - return { - id: allocation.id, - } - }) || [], - resourceNavigationLinks: subnet.resourceNavigationLinks?.map(link => formatResourceNavigationLink(link)) || [], - serviceAssociationLinks: subnet.serviceAssociationLinks?.map(link => formatServiceAssociationLink(link)) || [], - delegations: subnet.delegations?.map(delegation => formatDelegation(delegation)) || [], + ipConfigurationProfiles: + subnet.ipConfigurationProfiles?.map(profile => + formatIPConfigurationProfile(profile) + ) || [], + ipAllocations: + subnet.ipAllocations?.map(allocation => { + return { + id: allocation.id, + } + }) || [], + resourceNavigationLinks: + subnet.resourceNavigationLinks?.map(link => + formatResourceNavigationLink(link) + ) || [], + serviceAssociationLinks: + subnet.serviceAssociationLinks?.map(link => + formatServiceAssociationLink(link) + ) || [], + delegations: + subnet.delegations?.map(delegation => formatDelegation(delegation)) || [], purpose: subnet.purpose, provisioningState: subnet.provisioningState, privateEndpointNetworkPolicies: subnet.privateEndpointNetworkPolicies, privateLinkServiceNetworkPolicies: subnet.privateLinkServiceNetworkPolicies, - applicationGatewayIpConfigurations: subnet.applicationGatewayIpConfigurations?.map( - config => formatApplicationGatewayIPConfiguration(config) - ) || [], + applicationGatewayIpConfigurations: + subnet.applicationGatewayIpConfigurations?.map(config => + formatApplicationGatewayIPConfiguration(config) + ) || [], } } -export const formatIPConfiguration = (config: IPConfiguration): AzureApplicationGatewayIpConfiguration => { +export const formatIPConfiguration = ( + config: IPConfiguration +): AzureApplicationGatewayIpConfiguration => { return { id: config.id, name: config.id, @@ -584,140 +711,160 @@ export const formatIPConfiguration = (config: IPConfiguration): AzureApplication } } -const formatVirtualNetworkTap = (tap: VirtualNetworkTap): AzureApplicationGatewayVirtualNetworkTap | undefined => { - return tap +const formatVirtualNetworkTap = ( + tap: VirtualNetworkTap +): AzureApplicationGatewayVirtualNetworkTap | undefined => { + return tap ? { - id: tap.id, - name: tap.name, - type: tap.type, - networkInterfaceTapConfigurations: tap.networkInterfaceTapConfigurations?.map( - config => { - return { - id: config.id, - name: config.name, - type: config.type, - virtualNetworkTap: formatVirtualNetworkTap(config.virtualNetworkTap), - provisioningState: config.provisioningState, - } - } - ), - resourceGuid: tap.resourceGuid, - destinationNetworkInterfaceIPConfiguration: tap.destinationNetworkInterfaceIPConfiguration, - destinationLoadBalancerFrontEndIPConfiguration: - tap.destinationLoadBalancerFrontEndIPConfiguration - ? formatFrontendIPConfiguration(tap.destinationLoadBalancerFrontEndIPConfiguration) - : {}, - destinationPort: tap.destinationPort, - provisioningState: tap.provisioningState, - } + id: tap.id, + name: tap.name, + type: tap.type, + networkInterfaceTapConfigurations: + tap.networkInterfaceTapConfigurations?.map(config => { + return { + id: config.id, + name: config.name, + type: config.type, + virtualNetworkTap: formatVirtualNetworkTap( + config.virtualNetworkTap + ), + provisioningState: config.provisioningState, + } + }), + resourceGuid: tap.resourceGuid, + destinationNetworkInterfaceIPConfiguration: + tap.destinationNetworkInterfaceIPConfiguration, + destinationLoadBalancerFrontEndIPConfiguration: + tap.destinationLoadBalancerFrontEndIPConfiguration + ? formatFrontendIPConfiguration( + tap.destinationLoadBalancerFrontEndIPConfiguration + ) + : {}, + destinationPort: tap.destinationPort, + provisioningState: tap.provisioningState, + } : undefined } -const formatPublicIPAddress = (pIp: PublicIPAddress): AzureApplicationGatewayPublicIpAddress | undefined => { +const formatPublicIPAddress = ( + pIp: PublicIPAddress +): AzureApplicationGatewayPublicIpAddress | undefined => { return pIp ? { - id: pIp.id, - extendedLocation: { - name: pIp.extendedLocation?.name, - type: pIp.extendedLocation?.type, - }, - zones: pIp.zones, - publicIPAllocationMethod: pIp.publicIPAllocationMethod, - publicIPAddressVersion: pIp.publicIPAddressVersion, - ipConfiguration: pIp.ipConfiguration ? formatIPConfiguration(pIp.ipConfiguration) : undefined, - dnsDomainNameLabel: pIp.dnsSettings?.domainNameLabel, - dnsFqdn: pIp.dnsSettings?.fqdn, - dnsReverseFqdn: pIp.dnsSettings?.reverseFqdn, - ipTags: pIp.ipTags?.map(tag => { - return { - id: cuid(), - ipTagType: tag.ipTagType, - tag: tag.tag, - } - }) || [], - ipAddress: pIp.ipAddress, - publicIPPrefix: {id: pIp.publicIPPrefix?.id}, - idleTimeoutInMinutes: pIp.idleTimeoutInMinutes, - resourceGuid: pIp.resourceGuid, - provisioningState: pIp.provisioningState, - servicePublicIPAddress: pIp.servicePublicIPAddress, - natGateway: { - id: pIp.natGateway?.id, - zones: pIp.natGateway?.zones, - idleTimeoutInMinutes: pIp.natGateway?.idleTimeoutInMinutes, - publicIpAddresses: pIp.natGateway?.publicIpAddresses?.map(r => {return {id: r.id}}), - publicIpPrefixes: pIp.natGateway?.publicIpPrefixes?.map(r => {return {id: r.id}}), - subnets: pIp.natGateway?.subnets?.map(r => {return {id: r.id}}), - resourceGuid: pIp.natGateway?.resourceGuid, - provisioningState: pIp.natGateway?.provisioningState, - }, - migrationPhase: pIp.migrationPhase, - linkedPublicIPAddress: pIp.linkedPublicIPAddress, - deleteOption: pIp.deleteOption, - } + id: pIp.id, + extendedLocation: { + name: pIp.extendedLocation?.name, + type: pIp.extendedLocation?.type, + }, + zones: pIp.zones, + publicIPAllocationMethod: pIp.publicIPAllocationMethod, + publicIPAddressVersion: pIp.publicIPAddressVersion, + ipConfiguration: pIp.ipConfiguration + ? formatIPConfiguration(pIp.ipConfiguration) + : undefined, + dnsDomainNameLabel: pIp.dnsSettings?.domainNameLabel, + dnsFqdn: pIp.dnsSettings?.fqdn, + dnsReverseFqdn: pIp.dnsSettings?.reverseFqdn, + ipTags: + pIp.ipTags?.map(tag => { + return { + id: generateUniqueId({ ipTagType: tag.ipTagType, tag: tag.tag }), + ipTagType: tag.ipTagType, + tag: tag.tag, + } + }) || [], + ipAddress: pIp.ipAddress, + publicIPPrefix: { id: pIp.publicIPPrefix?.id }, + idleTimeoutInMinutes: pIp.idleTimeoutInMinutes, + resourceGuid: pIp.resourceGuid, + provisioningState: pIp.provisioningState, + servicePublicIPAddress: pIp.servicePublicIPAddress, + natGateway: { + id: pIp.natGateway?.id, + zones: pIp.natGateway?.zones, + idleTimeoutInMinutes: pIp.natGateway?.idleTimeoutInMinutes, + publicIpAddresses: pIp.natGateway?.publicIpAddresses?.map(r => { + return { id: r.id } + }), + publicIpPrefixes: pIp.natGateway?.publicIpPrefixes?.map(r => { + return { id: r.id } + }), + subnets: pIp.natGateway?.subnets?.map(r => { + return { id: r.id } + }), + resourceGuid: pIp.natGateway?.resourceGuid, + provisioningState: pIp.natGateway?.provisioningState, + }, + migrationPhase: pIp.migrationPhase, + linkedPublicIPAddress: pIp.linkedPublicIPAddress, + deleteOption: pIp.deleteOption, + } : undefined } const formatNetworkInterfaceIPConfiguration = ( config: NetworkInterfaceIPConfiguration ): AzureApplicationGatewayNetworkInterfaceIpConfiguration | undefined => { - return config - ? { - id: config.id, - name: config.name, - type: config.type, - gatewayLoadBalancer: {id: config.gatewayLoadBalancer?.id}, - virtualNetworkTaps: config.virtualNetworkTaps?.map( - tap => formatVirtualNetworkTap(tap) - ), - applicationGatewayBackendAddressPools: config.applicationGatewayBackendAddressPools?.map( - p => p - ) || [], - loadBalancerBackendAddressPools: config.loadBalancerBackendAddressPools?.map( - p => formatBackendAddressPool(p) - ) || [], - loadBalancerInboundNatRules: config.loadBalancerInboundNatRules?.map(r => { - return { - id: r.id, - name: r.name, - type: r.type, - frontendIPConfiguration: {id: r.frontendIPConfiguration?.id}, - backendIPConfiguration: formatNetworkInterfaceIPConfiguration(r.backendIPConfiguration), - protocol: r.protocol, - frontendPort: r.frontendPort, - backendPort: r.backendPort, - idleTimeoutInMinutes: r.idleTimeoutInMinutes, - enableFloatingIP: r.enableFloatingIP, - enableTcpReset: r.enableTcpReset, - frontendPortRangeStart: r.frontendPortRangeStart, - frontendPortRangeEnd: r.frontendPortRangeEnd, - backendAddressPool: {id: r.backendAddressPool?.id}, - provisioningState: r.provisioningState, - } - }) || [], - privateIPAddress: config.privateIPAddress, - privateIPAllocationMethod: config.privateIPAllocationMethod, - privateIPAddressVersion: config.privateIPAddressVersion, - subnet: config.subnet ? formatSubnet(config.subnet) : {}, - primary: config.primary, - publicIPAddress: formatPublicIPAddress(config.publicIPAddress), - applicationSecurityGroups: config.applicationSecurityGroups?.map( - g => { - return { - id: cuid(), - resourceGuid: g.resourceGuid, - provisioningState: g.provisioningState, - } + return config + ? { + id: config.id, + name: config.name, + type: config.type, + gatewayLoadBalancer: { id: config.gatewayLoadBalancer?.id }, + virtualNetworkTaps: config.virtualNetworkTaps?.map(tap => + formatVirtualNetworkTap(tap) + ), + applicationGatewayBackendAddressPools: + config.applicationGatewayBackendAddressPools?.map(p => p) || [], + loadBalancerBackendAddressPools: + config.loadBalancerBackendAddressPools?.map(p => + formatBackendAddressPool(p) + ) || [], + loadBalancerInboundNatRules: + config.loadBalancerInboundNatRules?.map(r => { + return { + id: r.id, + name: r.name, + type: r.type, + frontendIPConfiguration: { id: r.frontendIPConfiguration?.id }, + backendIPConfiguration: formatNetworkInterfaceIPConfiguration( + r.backendIPConfiguration + ), + protocol: r.protocol, + frontendPort: r.frontendPort, + backendPort: r.backendPort, + idleTimeoutInMinutes: r.idleTimeoutInMinutes, + enableFloatingIP: r.enableFloatingIP, + enableTcpReset: r.enableTcpReset, + frontendPortRangeStart: r.frontendPortRangeStart, + frontendPortRangeEnd: r.frontendPortRangeEnd, + backendAddressPool: { id: r.backendAddressPool?.id }, + provisioningState: r.provisioningState, + } + }) || [], + privateIPAddress: config.privateIPAddress, + privateIPAllocationMethod: config.privateIPAllocationMethod, + privateIPAddressVersion: config.privateIPAddressVersion, + subnet: config.subnet ? formatSubnet(config.subnet) : {}, + primary: config.primary, + publicIPAddress: formatPublicIPAddress(config.publicIPAddress), + applicationSecurityGroups: + config.applicationSecurityGroups?.map(g => { + return { + id: g.id, + resourceGuid: g.resourceGuid, + provisioningState: g.provisioningState, + } + }) || [], + provisioningState: config.provisioningState, + privateLinkConnectionProperties: { + groupId: config.privateLinkConnectionProperties?.groupId, + requiredMemberName: + config.privateLinkConnectionProperties?.requiredMemberName, + fqdns: config.privateLinkConnectionProperties?.fqdns, + }, } - ) || [], - provisioningState: config.provisioningState, - privateLinkConnectionProperties: { - groupId: config.privateLinkConnectionProperties?.groupId, - requiredMemberName: config.privateLinkConnectionProperties?.requiredMemberName, - fqdns: config.privateLinkConnectionProperties?.fqdns, - } - } - : undefined + : undefined } const formatApplicationGatewayBackendAddressPool = ( @@ -725,23 +872,24 @@ const formatApplicationGatewayBackendAddressPool = ( ): AzureApplicationGatewayApplicationGatewayBackendAddressPool | undefined => { return pool ? { - id: pool.id, - name: pool.name, - type: pool.type, - backendIPConfigurations: pool.backendIPConfigurations?.map( - c => formatNetworkInterfaceIPConfiguration(c) - ), - backendAddresses: pool.backendAddresses?.map( - a => { + id: pool.id, + name: pool.name, + type: pool.type, + backendIPConfigurations: pool.backendIPConfigurations?.map(c => + formatNetworkInterfaceIPConfiguration(c) + ), + backendAddresses: pool.backendAddresses?.map(a => { return { - id: cuid(), + id: generateUniqueId({ + fqdn: a.fqdn, + ipAddress: a.ipAddress, + }), fqdn: a.fqdn, ipAddress: a.ipAddress, } - } - ), - provisioningState: pool.provisioningState, - } + }), + provisioningState: pool.provisioningState, + } : undefined } @@ -754,7 +902,6 @@ const formatApplicationGatewayConnectionDraining = ( } } - const formatApplicationGatewayBackendHttpSettings = ( setting: ApplicationGatewayBackendHttpSettings ): AzureApplicationGatewayApplicationGatewayBackendHttpSettings => { @@ -766,14 +913,18 @@ const formatApplicationGatewayBackendHttpSettings = ( protocol: setting.protocol, cookieBasedAffinity: setting.cookieBasedAffinity, requestTimeout: setting.requestTimeout, - probe: {id: setting.probe?.id}, - authenticationCertificates: setting.authenticationCertificates?.map( - certificate => {return {id: certificate.id}} - ) || [], - trustedRootCertificates: setting.trustedRootCertificates?.map( - certificate => {return {id: certificate.id}} - ) || [], - connectionDraining: setting.connectionDraining ? formatApplicationGatewayConnectionDraining(setting.connectionDraining) : {}, + probe: { id: setting.probe?.id }, + authenticationCertificates: + setting.authenticationCertificates?.map(certificate => { + return { id: certificate.id } + }) || [], + trustedRootCertificates: + setting.trustedRootCertificates?.map(certificate => { + return { id: certificate.id } + }) || [], + connectionDraining: setting.connectionDraining + ? formatApplicationGatewayConnectionDraining(setting.connectionDraining) + : {}, hostName: setting.hostName, pickHostNameFromBackendAddress: setting.pickHostNameFromBackendAddress, affinityCookieName: setting.affinityCookieName, @@ -790,22 +941,26 @@ const formatApplicationGatewayHttpListener = ( id: listener.id, name: listener.name, type: listener.type, - frontendIPConfiguration: {id: listener.frontendIPConfiguration?.id}, - frontendPort: {id: listener.frontendPort?.id}, + frontendIPConfiguration: { id: listener.frontendIPConfiguration?.id }, + frontendPort: { id: listener.frontendPort?.id }, protocol: listener.protocol, hostName: listener.hostName, - sslCertificate: {id: listener.sslCertificate?.id}, - sslProfile: {id: listener.sslProfile?.id}, + sslCertificate: { id: listener.sslCertificate?.id }, + sslProfile: { id: listener.sslProfile?.id }, requireServerNameIndication: listener.requireServerNameIndication, provisioningState: listener.provisioningState, - customErrorConfigurations: listener.customErrorConfigurations?.map(config => { - return { - id: cuid(), - statusCode: config.statusCode, - customErrorPageUrl: config.customErrorPageUrl, - } - }) || [], - firewallPolicy: {id: listener.firewallPolicy?.id}, + customErrorConfigurations: + listener.customErrorConfigurations?.map(config => { + return { + id: generateUniqueId({ + statusCode: config.statusCode, + customErrorPageUrl: config.customErrorPageUrl, + }), + statusCode: config.statusCode, + customErrorPageUrl: config.customErrorPageUrl, + } + }) || [], + firewallPolicy: { id: listener.firewallPolicy?.id }, hostNames: listener.hostNames, } } @@ -818,13 +973,13 @@ const formatApplicationGatewayPathRule = ( name: map.name, type: map.type, paths: map.paths, - backendAddressPool: {id: map.backendAddressPool?.id}, - backendHttpSettings: {id: map.backendHttpSettings?.id}, - redirectConfiguration: {id: map.redirectConfiguration?.id}, - rewriteRuleSet: {id: map.rewriteRuleSet?.id}, - loadDistributionPolicy: {id: map.loadDistributionPolicy?.id}, + backendAddressPool: { id: map.backendAddressPool?.id }, + backendHttpSettings: { id: map.backendHttpSettings?.id }, + redirectConfiguration: { id: map.redirectConfiguration?.id }, + rewriteRuleSet: { id: map.rewriteRuleSet?.id }, + loadDistributionPolicy: { id: map.loadDistributionPolicy?.id }, provisioningState: map.provisioningState, - firewallPolicy: {id: map.firewallPolicy?.id}, + firewallPolicy: { id: map.firewallPolicy?.id }, } } @@ -835,12 +990,15 @@ const formatApplicationGatewayUrlPathMap = ( id: map.id, name: map.name, type: map.type, - defaultBackendAddressPool: {id: map.defaultBackendAddressPool?.id}, - defaultBackendHttpSettings: {id: map.defaultBackendHttpSettings?.id}, - defaultRewriteRuleSet: {id: map.defaultRewriteRuleSet?.id}, - defaultRedirectConfiguration: {id: map.defaultRedirectConfiguration?.id}, - defaultLoadDistributionPolicy: {id: map.defaultLoadDistributionPolicy?.id}, - pathRules: map.pathRules?.map(rule => formatApplicationGatewayPathRule(rule)) || [], + defaultBackendAddressPool: { id: map.defaultBackendAddressPool?.id }, + defaultBackendHttpSettings: { id: map.defaultBackendHttpSettings?.id }, + defaultRewriteRuleSet: { id: map.defaultRewriteRuleSet?.id }, + defaultRedirectConfiguration: { id: map.defaultRedirectConfiguration?.id }, + defaultLoadDistributionPolicy: { + id: map.defaultLoadDistributionPolicy?.id, + }, + pathRules: + map.pathRules?.map(rule => formatApplicationGatewayPathRule(rule)) || [], provisioningState: map.provisioningState, } } @@ -854,13 +1012,13 @@ const formatApplicationGatewayRequestRoutingRule = ( type: rule.type, ruleType: rule.ruleType, priority: rule.priority, - backendAddressPool: {id: rule.backendAddressPool?.id}, - backendHttpSettings: {id: rule.backendHttpSettings?.id}, - httpListener: {id: rule.httpListener?.id}, - urlPathMap: {id: rule.urlPathMap?.id}, - rewriteRuleSet: {id: rule.rewriteRuleSet?.id}, - redirectConfiguration: {id: rule.redirectConfiguration?.id}, - loadDistributionPolicy: {id: rule.loadDistributionPolicy?.id}, + backendAddressPool: { id: rule.backendAddressPool?.id }, + backendHttpSettings: { id: rule.backendHttpSettings?.id }, + httpListener: { id: rule.httpListener?.id }, + urlPathMap: { id: rule.urlPathMap?.id }, + rewriteRuleSet: { id: rule.rewriteRuleSet?.id }, + redirectConfiguration: { id: rule.redirectConfiguration?.id }, + loadDistributionPolicy: { id: rule.loadDistributionPolicy?.id }, provisioningState: rule.provisioningState, } } @@ -871,7 +1029,10 @@ const formatApplicationGatewayRewriteRuleSet = ( return { id: ruleSet.id, name: ruleSet.name, - rewriteRules: ruleSet.rewriteRules?.map(rule => formatApplicationGatewayRequestRoutingRule(rule)) || [], + rewriteRules: + ruleSet.rewriteRules?.map(rule => + formatApplicationGatewayRequestRoutingRule(rule) + ) || [], provisioningState: ruleSet.provisioningState, } } @@ -884,13 +1045,22 @@ const formatApplicationGatewayRedirectConfiguration = ( name: config.name, type: config.type, redirectType: config.redirectType, - targetListener: {id: config.targetListener?.id}, + targetListener: { id: config.targetListener?.id }, targetUrl: config.targetUrl, includePath: config.includePath, includeQueryString: config.includeQueryString, - requestRoutingRules: config.requestRoutingRules?.map(rule => {return {id: rule.id}}) || [], - urlPathMaps: config.urlPathMaps?.map(map => {return {id: map.id}}) || [], - pathRules: config.pathRules?.map(rule => {return {id: rule.id}}) || [], + requestRoutingRules: + config.requestRoutingRules?.map(rule => { + return { id: rule.id } + }) || [], + urlPathMaps: + config.urlPathMaps?.map(map => { + return { id: map.id } + }) || [], + pathRules: + config.pathRules?.map(rule => { + return { id: rule.id } + }) || [], } } @@ -898,7 +1068,9 @@ const formatApplicationGatewayFirewallDisabledRuleGroup = ( ruleGroup: ApplicationGatewayFirewallDisabledRuleGroup ): AzureApplicationGatewayApplicationGatewayFirewallDisabledRuleGroup => { return { - id: cuid(), + id: generateUniqueId({ + ruleGroupName: ruleGroup.ruleGroupName, + }), ruleGroupName: ruleGroup.ruleGroupName, rules: ruleGroup.rules, } @@ -908,7 +1080,11 @@ const formatApplicationGatewayFirewallExclusion = ( exclusion: ApplicationGatewayFirewallExclusion ): AzureApplicationGatewayApplicationGatewayFirewallExclusion => { return { - id: cuid(), + id: generateUniqueId({ + matchVariable: exclusion.matchVariable, + selectorMatchOperator: exclusion.selectorMatchOperator, + selector: exclusion.selector, + }), matchVariable: exclusion.matchVariable, selectorMatchOperator: exclusion.selectorMatchOperator, selector: exclusion.selector, @@ -923,12 +1099,18 @@ const formatApplicationGatewayWebApplicationFirewallConfiguration = ( firewallMode: config.firewallMode, ruleSetType: config.ruleSetType, ruleSetVersion: config.ruleSetVersion, - disabledRuleGroups: config.disabledRuleGroups?.map(ruleGroup => formatApplicationGatewayFirewallDisabledRuleGroup(ruleGroup)) || [], + disabledRuleGroups: + config.disabledRuleGroups?.map(ruleGroup => + formatApplicationGatewayFirewallDisabledRuleGroup(ruleGroup) + ) || [], requestBodyCheck: config.requestBodyCheck, maxRequestBodySize: config.maxRequestBodySize, maxRequestBodySizeInKb: config.maxRequestBodySizeInKb, fileUploadLimitInMb: config.fileUploadLimitInMb, - exclusions: config.exclusions?.map(exclusion => formatApplicationGatewayFirewallExclusion(exclusion)) || [], + exclusions: + config.exclusions?.map(exclusion => + formatApplicationGatewayFirewallExclusion(exclusion) + ) || [], } } @@ -941,7 +1123,7 @@ const formatApplicationGatewayPrivateLinkIpConfiguration = ( type: config.type, privateIPAddress: config.privateIPAddress, privateIPAllocationMethod: config.privateIPAllocationMethod, - subnet: {id: config.subnet?.id}, + subnet: { id: config.subnet?.id }, primary: config.primary, provisioningState: config.provisioningState, } @@ -954,7 +1136,10 @@ const formatApplicationGatewayPrivateLinkConfiguration = ( id: config.id, name: config.name, type: config.type, - ipConfigurations: config.ipConfigurations?.map(c => formatApplicationGatewayPrivateLinkIpConfiguration(c)) || [], + ipConfigurations: + config.ipConfigurations?.map(c => + formatApplicationGatewayPrivateLinkIpConfiguration(c) + ) || [], provisioningState: config.provisioningState, } } @@ -966,15 +1151,16 @@ const formatApplicationGatewayLoadDistributionPolicy = ( id: config.id, name: config.name, type: config.type, - loadDistributionTargets: config.loadDistributionTargets?.map(target => { - return { - id: target.id, - name: target.name, - type: target.type, - weightPerServer: target.weightPerServer, - backendAddressPool: {id: target.backendAddressPool?.id}, - } - }) || [], + loadDistributionTargets: + config.loadDistributionTargets?.map(target => { + return { + id: target.id, + name: target.name, + type: target.type, + weightPerServer: target.weightPerServer, + backendAddressPool: { id: target.backendAddressPool?.id }, + } + }) || [], loadDistributionAlgorithm: config.loadDistributionAlgorithm, provisioningState: config.provisioningState, } @@ -1028,7 +1214,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, region, tags: formatTagsFromMap(Tags), @@ -1037,166 +1223,162 @@ export default ({ principalId: identity?.principalId, tenantId: identity?.tenantId, type: identity?.type, - userAssignedIdentities: identity?.userAssignedIdentities ? formatUserAssignedIdentities(identity?.userAssignedIdentities) : [], + userAssignedIdentities: identity?.userAssignedIdentities + ? formatUserAssignedIdentities(identity?.userAssignedIdentities) + : [], }, sslPolicy: formatApplicationGatewaySslPolicy(sslPolicy), operationalState, - gatewayIPConfigurations: gatewayIPConfigurations.map( - config => { - return { - id: config.id, - name: config.name, - type: config.type, - subnetId: config.subnet?.id, - provisioningState: config.provisioningState, - } + gatewayIPConfigurations: gatewayIPConfigurations.map(config => { + return { + id: config.id, + name: config.name, + type: config.type, + subnetId: config.subnet?.id, + provisioningState: config.provisioningState, } - ), - authenticationCertificates: authenticationCertificates.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - data: c.data, - provisioningState: c.provisioningState, - } + }), + authenticationCertificates: authenticationCertificates.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + data: c.data, + provisioningState: c.provisioningState, } - ), - trustedRootCertificates: trustedRootCertificates.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - data: c.data, - keyVaultSecretId: c.keyVaultSecretId, - provisioningState: c.provisioningState, - } + }), + trustedRootCertificates: trustedRootCertificates.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + data: c.data, + keyVaultSecretId: c.keyVaultSecretId, + provisioningState: c.provisioningState, } - ), - trustedClientCertificates: trustedClientCertificates.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - data: c.data, - validatedCertData: c.validatedCertData, - clientCertIssuerDN: c.clientCertIssuerDN, - provisioningState: c.provisioningState, - } + }), + trustedClientCertificates: trustedClientCertificates.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + data: c.data, + validatedCertData: c.validatedCertData, + clientCertIssuerDN: c.clientCertIssuerDN, + provisioningState: c.provisioningState, } - ), - sslCertificates: sslCertificates.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - data: c.data, - password: c.password, - publicCertData: c.publicCertData, - keyVaultSecretId: c.keyVaultSecretId, - provisioningState: c.provisioningState, - } + }), + sslCertificates: sslCertificates.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + data: c.data, + password: c.password, + publicCertData: c.publicCertData, + keyVaultSecretId: c.keyVaultSecretId, + provisioningState: c.provisioningState, } - ), - frontendIPConfigurations: frontendIPConfigurations.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - privateIPAddress: c.privateIPAddress, - privateIPAllocationMethod: c.privateIPAllocationMethod, - subnetId: c.subnet?.id, - publicIPAddressId: c.publicIPAddress?.id, - privateLinkConfigurationId: c.privateLinkConfiguration?.id, - provisioningState: c.provisioningState, - } + }), + frontendIPConfigurations: frontendIPConfigurations.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + privateIPAddress: c.privateIPAddress, + privateIPAllocationMethod: c.privateIPAllocationMethod, + subnetId: c.subnet?.id, + publicIPAddressId: c.publicIPAddress?.id, + privateLinkConfigurationId: c.privateLinkConfiguration?.id, + provisioningState: c.provisioningState, } - ), - frontendPorts: frontendPorts.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - port: c.port, - provisioningState: c.provisioningState, - } + }), + frontendPorts: frontendPorts.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + port: c.port, + provisioningState: c.provisioningState, } - ), - probes: probes.map( - c => { - return { - id: c.id, - name: c.name, - type: c.type, - protocol: c.protocol, - host: c.host, - path: c.path, - interval: c.interval, - timeout: c.timeout, - unhealthyThreshold: c.unhealthyThreshold, - pickHostNameFromBackendHttpSettings: c.pickHostNameFromBackendHttpSettings, - minServers: c.minServers, - matchBody: c.match?.body, - matchStatusCodes: c.match?.statusCodes, - port: c.port, - provisioningState: c.provisioningState, - } + }), + probes: probes.map(c => { + return { + id: c.id, + name: c.name, + type: c.type, + protocol: c.protocol, + host: c.host, + path: c.path, + interval: c.interval, + timeout: c.timeout, + unhealthyThreshold: c.unhealthyThreshold, + pickHostNameFromBackendHttpSettings: + c.pickHostNameFromBackendHttpSettings, + minServers: c.minServers, + matchBody: c.match?.body, + matchStatusCodes: c.match?.statusCodes, + port: c.port, + provisioningState: c.provisioningState, } - ), - backendAddressPools: backendAddressPools.map( - pool => formatApplicationGatewayBackendAddressPool(pool) + }), + backendAddressPools: backendAddressPools.map(pool => + formatApplicationGatewayBackendAddressPool(pool) ), backendHttpSettingsCollection: backendHttpSettingsCollection.map( collection => formatApplicationGatewayBackendHttpSettings(collection) ), - httpListeners: httpListeners.map( - listener => formatApplicationGatewayHttpListener(listener) + httpListeners: httpListeners.map(listener => + formatApplicationGatewayHttpListener(listener) ), - sslProfiles: sslProfiles.map( - profile => formatApplicationGatewaySslProfile(profile) + sslProfiles: sslProfiles.map(profile => + formatApplicationGatewaySslProfile(profile) ), - urlPathMaps: urlPathMaps.map( - pathMap => formatApplicationGatewayUrlPathMap(pathMap) + urlPathMaps: urlPathMaps.map(pathMap => + formatApplicationGatewayUrlPathMap(pathMap) ), - requestRoutingRules: requestRoutingRules.map( - rule => formatApplicationGatewayRequestRoutingRule(rule) + requestRoutingRules: requestRoutingRules.map(rule => + formatApplicationGatewayRequestRoutingRule(rule) ), - rewriteRuleSets: rewriteRuleSets.map( - ruleSet => formatApplicationGatewayRewriteRuleSet(ruleSet) + rewriteRuleSets: rewriteRuleSets.map(ruleSet => + formatApplicationGatewayRewriteRuleSet(ruleSet) ), - redirectConfigurations: redirectConfigurations.map( - config => formatApplicationGatewayRedirectConfiguration(config) + redirectConfigurations: redirectConfigurations.map(config => + formatApplicationGatewayRedirectConfiguration(config) ), - webApplicationFirewallConfiguration: - webApplicationFirewallConfiguration - ? formatApplicationGatewayWebApplicationFirewallConfiguration(webApplicationFirewallConfiguration) + webApplicationFirewallConfiguration: webApplicationFirewallConfiguration + ? formatApplicationGatewayWebApplicationFirewallConfiguration( + webApplicationFirewallConfiguration + ) : {}, - firewallPolicy: firewallPolicy ? {id: firewallPolicy.id} : {}, + firewallPolicy: firewallPolicy ? { id: firewallPolicy.id } : {}, enableHttp2, enableFips, autoscaleConfiguration: { minCapacity: autoscaleConfiguration?.minCapacity, maxCapacity: autoscaleConfiguration?.maxCapacity, }, - privateLinkConfigurations: privateLinkConfigurations.map(c => formatApplicationGatewayPrivateLinkConfiguration(c)), - privateEndpointConnections: privateEndpointConnections.map(c => formatApplicationGatewayPrivateEndpointConnection(c)), + privateLinkConfigurations: privateLinkConfigurations.map(c => + formatApplicationGatewayPrivateLinkConfiguration(c) + ), + privateEndpointConnections: privateEndpointConnections.map(c => + formatApplicationGatewayPrivateEndpointConnection(c) + ), resourceGuid, provisioningState, customErrorConfigurations: customErrorConfigurations?.map(config => { return { - id: cuid(), + id: generateUniqueId({ + customErrorPageUrl: config.customErrorPageUrl + }), statusCode: config.statusCode, customErrorPageUrl: config.customErrorPageUrl, } }), forceFirewallPolicyAssociation, - loadDistributionPolicies: loadDistributionPolicies?.map(policy => formatApplicationGatewayLoadDistributionPolicy(policy)), + loadDistributionPolicies: loadDistributionPolicies?.map(policy => + formatApplicationGatewayLoadDistributionPolicy(policy) + ), globalConfiguration, } } diff --git a/src/services/arcConnectedCluster/format.ts b/src/services/arcConnectedCluster/format.ts index 72d98092..284066c8 100644 --- a/src/services/arcConnectedCluster/format.ts +++ b/src/services/arcConnectedCluster/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureArcConnectedCluster } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureArcConnectedCluster } from './data' @@ -43,7 +42,7 @@ export default ({ {} return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/authRoleDefinition/format.ts b/src/services/authRoleDefinition/format.ts index be2e79d2..9d236f4f 100644 --- a/src/services/authRoleDefinition/format.ts +++ b/src/services/authRoleDefinition/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureAuthRoleDefinition } from '../../types/generated' import { RawAzureAuthRoleDefinition } from './data' @@ -31,7 +31,11 @@ export default ({ description, roleType, permissions: permissions.map(item => ({ - id: cuid(), + id: generateUniqueId({ + id, + name, + ...item, + }), ...item, })), assignableScopes, diff --git a/src/services/autoProvisioningSettings/format.ts b/src/services/autoProvisioningSettings/format.ts index bb26923b..740d0a69 100644 --- a/src/services/autoProvisioningSettings/format.ts +++ b/src/services/autoProvisioningSettings/format.ts @@ -1,23 +1,16 @@ -import cuid from 'cuid' import { RawAzureAutoProvisioningSetting } from './data' import { AzureAutoProvisioningSetting } from '../../types/generated' export default ({ service, - account: subscriptionId + account: subscriptionId, }: { service: RawAzureAutoProvisioningSetting account: string -}) : AzureAutoProvisioningSetting => { - const { - id, - name, - type, - region, - autoProvision, - } = service +}): AzureAutoProvisioningSetting => { + const { id, name, type, region, autoProvision } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/backupInstances/format.ts b/src/services/backupInstances/format.ts index fdbc331f..cb2d571a 100644 --- a/src/services/backupInstances/format.ts +++ b/src/services/backupInstances/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { isEmpty } from 'lodash' import { BackupInstance } from '../../types' import { @@ -58,7 +58,12 @@ const formatProperties = ( policyParameters: { dataStoreParametersList: policyInfo?.policyParameters?.dataStoreParametersList?.map(p => ({ - id: cuid(), + id: generateUniqueId({ + policyId: policyInfo?.policyId, + dataStoreType: p.dataStoreType, + objectType: p.objectType, + resourceGroupId: p.resourceGroupId, + }), dataStoreType: p.dataStoreType, objectType: p.objectType, resourceGroupId: p.resourceGroupId, @@ -78,7 +83,10 @@ const formatProperties = ( Object.keys( protectionErrorDetails?.innerError?.additionalInfo ?? {} ).map(key => ({ - id: cuid(), + id: generateUniqueId({ + key, + value: protectionErrorDetails?.innerError?.additionalInfo?.[key], + }), key, value: protectionErrorDetails?.innerError?.additionalInfo?.[key], })) || [], @@ -86,7 +94,10 @@ const formatProperties = ( }, properties: Object.keys(protectionErrorDetails?.properties ?? {}).map(key => ({ - id: cuid(), + id: generateUniqueId({ + key, + value: protectionErrorDetails?.properties?.[key], + }), key, value: protectionErrorDetails?.properties?.[key], })) || [], @@ -105,7 +116,13 @@ const formatProperties = ( Object.keys( protectionStatus?.errorDetails?.innerError?.additionalInfo ?? {} ).map(key => ({ - id: cuid(), + id: generateUniqueId({ + key, + value: + protectionStatus?.errorDetails?.innerError?.additionalInfo?.[ + key + ], + }), key, value: protectionStatus?.errorDetails?.innerError?.additionalInfo?.[ @@ -117,7 +134,10 @@ const formatProperties = ( properties: Object.keys(protectionStatus?.errorDetails?.properties ?? {}).map( key => ({ - id: cuid(), + id: generateUniqueId({ + key, + value: protectionStatus?.errorDetails?.properties?.[key], + }), key, value: protectionStatus?.errorDetails?.properties?.[key], }) @@ -137,7 +157,7 @@ export default ({ const { id, name, type, region, properties, resourceGroupId, systemData } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/backupPolicies/format.ts b/src/services/backupPolicies/format.ts index 69c3d4ee..a687f046 100644 --- a/src/services/backupPolicies/format.ts +++ b/src/services/backupPolicies/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { isEmpty } from 'lodash' import { BackupPolicy, TriggerContext } from '../../types' import { @@ -25,7 +25,11 @@ const formatTrigger = ( taggingCriteria: trigger?.taggingCriteria?.map( ({ criteria, tagInfo, isDefault, taggingPriority }) => ({ - id: cuid(), + id: generateUniqueId({ + id: tagInfo?.id, + tagName: tagInfo?.tagName, + eTag: tagInfo?.eTag, + }), tagInfo: { id: tagInfo?.id, tagName: tagInfo?.tagName, @@ -44,10 +48,16 @@ const formatTrigger = ( scheduleTimes, weeksOfTheMonth, }) => ({ - id: cuid(), + id: generateUniqueId({ + daysOfMonth, + daysOfTheWeek, + monthsOfYear, + scheduleTimes, + weeksOfTheMonth, + }), daysOfMonth: daysOfMonth?.map(d => ({ - id: cuid(), + id: generateUniqueId({ date: d.date }), date: d.date, isLast: d.isLast, })) || [], @@ -87,7 +97,10 @@ const formatProperties = ( objectType: policyRuleObjectType, isDefault, }) => ({ - id: cuid(), + id: generateUniqueId({ + name, + objectType, + }), name, objectType: policyRuleObjectType, isDefault, @@ -111,7 +124,11 @@ const formatProperties = ( deleteAfter, sourceDataStore, }) => ({ - id: cuid(), + id: generateUniqueId({ + targetDataStoreCopySettings, + deleteAfter, + sourceDataStore, + }), deleteAfter: deleteAfter ? { duration: deleteAfter.duration, @@ -127,7 +144,10 @@ const formatProperties = ( targetDataStoreCopySettings: targetDataStoreCopySettings?.map( ({ copyAfter, dataStore: dataStoreCopySettings }) => ({ - id: cuid(), + id: generateUniqueId({ + copyAfter, + dataStoreCopySettings, + }), copyAfter: copyAfter ? { duration: copyAfter.duration, @@ -159,7 +179,7 @@ export default ({ const { id, name, type, region, properties, systemData, resourceGroupId } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/backupVaults/format.ts b/src/services/backupVaults/format.ts index d485da80..f334c858 100644 --- a/src/services/backupVaults/format.ts +++ b/src/services/backupVaults/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureBackupVault } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureBackupVault } from './data' @@ -22,7 +22,7 @@ export default ({ resourceGroupId, } = service return { - id: id || cuid(), + id, name, type, region, @@ -34,7 +34,10 @@ export default ({ provisioningState: properties?.provisioningState, storageSettings: properties?.storageSettings?.map(s => ({ - id: cuid(), + id: generateUniqueId({ + datastoreType: s.datastoreType, + type: s.type, + }), datastoreType: s.datastoreType, type: s.type, })) || [], diff --git a/src/services/cdnCustomDomains/format.ts b/src/services/cdnCustomDomains/format.ts index 375791e8..3bfcfc20 100644 --- a/src/services/cdnCustomDomains/format.ts +++ b/src/services/cdnCustomDomains/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { RawAzureCdnCustomDomain } from './data' import { AzureCdnCustomDomain } from '../../types/generated' import { transformSystemData } from '../../utils/format' @@ -28,7 +27,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/cdnEndpoints/format.ts b/src/services/cdnEndpoints/format.ts index 28f2b2f4..c8fdfb41 100644 --- a/src/services/cdnEndpoints/format.ts +++ b/src/services/cdnEndpoints/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { formatTagsFromMap } from '../../utils/format' import { RawAzureCdnEndpoint } from './data' import { AzureCdnEndpoint } from '../../types/generated' @@ -35,7 +35,7 @@ export default ({ hostName, resourceState, provisioningState, - resourceGroupId + resourceGroupId, } = service const formatActionParameters = parameters => { @@ -43,7 +43,10 @@ export default ({ return { parameterNameOverride: parameters?.parameterNameOverride?.map(p => ({ - id: cuid(), + id: generateUniqueId({ + paramIndicator: p.paramIndicator, + paramName: p.paramName, + }), paramIndicator: p.paramIndicator, paramName: p.paramName, })) || [], @@ -52,7 +55,7 @@ export default ({ } return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -66,12 +69,17 @@ export default ({ queryStringCachingBehavior, optimizationType, probePath, - geoFilters: geoFilters?.map(f => ({ - id: cuid(), - relativePath: f.relativePath, - action: f.action, - countryCodes: f.countryCodes, - })) || [], + geoFilters: + geoFilters?.map(f => ({ + id: generateUniqueId({ + relativePath: f.relativePath, + action: f.action, + countryCodes: f.countryCodes, + }), + relativePath: f.relativePath, + action: f.action, + countryCodes: f.countryCodes, + })) || [], defaultOriginGroupId: defaultOriginGroup?.id || '', urlSigningKeys: urlSigningKeys?.map(url => ({ @@ -80,23 +88,37 @@ export default ({ })) || [], deliveryPolicy: { description: deliveryPolicy?.description || '', - rules: deliveryPolicy?.rules?.map(rule => ({ - id: cuid(), - name: rule.name, - order: rule.order, - conditions: rule.conditions?.map(c => ({ - id: cuid(), - name: c.name, - parameters: (c as AzureDeliveryRuleConditionAction).parameters, + rules: + deliveryPolicy?.rules?.map(rule => ({ + id: generateUniqueId({ + name: rule.name, + order: rule.order, + }), + name: rule.name, + order: rule.order, + conditions: + rule.conditions?.map(c => ({ + id: generateUniqueId({ + conditionName: c.name, + ruleName: rule.name, + ruleOrder: rule.order, + }), + name: c.name, + parameters: (c as AzureDeliveryRuleConditionAction).parameters, + })) || [], + actions: + rule.actions?.map(a => ({ + id: generateUniqueId({ + actionName: a.name, + ruleName: rule.name, + ruleOrder: rule.order, + }), + name: a.name, + parameters: formatActionParameters( + (a as AzureDeliveryRuleConditionAction).parameters + ), + })) || [], })) || [], - actions: rule.actions?.map(a => ({ - id: cuid(), - name: a.name, - parameters: formatActionParameters( - (a as AzureDeliveryRuleConditionAction).parameters - ), - })) || [], - })) || [], }, webApplicationFirewallPolicyLinkId: webApplicationFirewallPolicyLink?.id || '', @@ -104,6 +126,6 @@ export default ({ resourceState, provisioningState, tags: formatTagsFromMap(Tags), - resourceGroupId + resourceGroupId, } } diff --git a/src/services/cdnOriginGroups/format.ts b/src/services/cdnOriginGroups/format.ts index 82d29e46..4792e3b5 100644 --- a/src/services/cdnOriginGroups/format.ts +++ b/src/services/cdnOriginGroups/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { RawAzureCdnOriginGroup } from './data' import { AzureCdnOriginGroup } from '../../types/generated' import { transformSystemData } from '../../utils/format' @@ -22,11 +22,11 @@ export default ({ responseBasedOriginErrorDetectionSettings: settings, resourceState, provisioningState, - resourceGroupId + resourceGroupId, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -39,14 +39,18 @@ export default ({ settings?.responseBasedDetectedErrorTypes, responseBasedFailoverThresholdPercentage: settings?.responseBasedFailoverThresholdPercentage, - httpErrorRanges: settings?.httpErrorRanges?.map(error => ({ - id: cuid(), - begin: error.begin, - end: error.end, - })) || [], + httpErrorRanges: + settings?.httpErrorRanges?.map(error => ({ + id: generateUniqueId({ + begin: error.begin, + end: error.end, + }), + begin: error.begin, + end: error.end, + })) || [], }, resourceState, provisioningState, - resourceGroupId + resourceGroupId, } } diff --git a/src/services/cdnOrigins/format.ts b/src/services/cdnOrigins/format.ts index 4338736e..6eef1aa1 100644 --- a/src/services/cdnOrigins/format.ts +++ b/src/services/cdnOrigins/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { RawAzureCdnOrigin } from './data' import { AzureCdnOrigin } from '../../types/generated' import { transformSystemData } from '../../utils/format' @@ -31,11 +30,11 @@ export default ({ resourceState, provisioningState, privateEndpointStatus, - resourceGroupId + resourceGroupId, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -55,6 +54,6 @@ export default ({ resourceState, provisioningState, privateEndpointStatus, - resourceGroupId + resourceGroupId, } } diff --git a/src/services/cdnProfiles/format.ts b/src/services/cdnProfiles/format.ts index a6f49fa3..807accc1 100644 --- a/src/services/cdnProfiles/format.ts +++ b/src/services/cdnProfiles/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { formatTagsFromMap } from '../../utils/format' import { RawAzureCdnProfile } from './data' import { AzureCdnProfile } from '../../types/generated' @@ -24,7 +23,7 @@ export default ({ sku, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/cognitiveServicesAccount/format.ts b/src/services/cognitiveServicesAccount/format.ts index 6b8597c5..040d3ec2 100644 --- a/src/services/cognitiveServicesAccount/format.ts +++ b/src/services/cognitiveServicesAccount/format.ts @@ -1,5 +1,5 @@ +import { generateUniqueId } from '@cloudgraph/sdk' import { ThrottlingRule } from '@azure/arm-cognitiveservices' -import cuid from 'cuid' import { RawAzureCognitiveServicesAccount } from './data' import { AzureCognitiveServicesAccount, @@ -26,7 +26,7 @@ const formatThrottlingRules = ( minCount, dynamicThrottlingEnabled, matchPatterns: matchPatterns.map(({ path, method }) => ({ - id: cuid(), + id: generateUniqueId({ path, method }), path, method, })), @@ -115,7 +115,7 @@ export default ({ } = {}, } = service return { - id: id || cuid(), + id, name, type, region, @@ -135,7 +135,10 @@ export default ({ endpoint, internalId, capabilities: capabilities.map(({ name: cName, value }) => ({ - id: cuid(), + id: generateUniqueId({ + name: cName, + value, + }), name: cName, value, })), @@ -163,7 +166,7 @@ export default ({ }, userOwnedStorage: userOwnedStorage.map( ({ resourceId, identityClientId: uOSIdentityClientId }) => ({ - id: cuid(), + id: resourceId, resourceId, identityClientId: uOSIdentityClientId, }) @@ -222,7 +225,7 @@ export default ({ disableLocalAuth, endpoints: endpoints ? Object.entries(endpoints).map(([key, value]) => ({ - id: cuid(), + id: generateUniqueId({key, value}), key, value, })) diff --git a/src/services/containerRegistry/format.ts b/src/services/containerRegistry/format.ts index 45efb5c5..40c0a39f 100644 --- a/src/services/containerRegistry/format.ts +++ b/src/services/containerRegistry/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { formatTagsFromMap } from '../../utils/format' import { RawAzureContainerRegistry } from './data' import { AzureContainerRegistry } from '../../types/generated' @@ -49,7 +48,7 @@ export default ({ zoneRedundancy, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -85,7 +84,7 @@ export default ({ dataEndpointHostNames, privateEndpointConnections: privateEndpointConnections.map(({ id: privateEndpointId, privateLinkServiceConnectionState, ...rest }) => ({ - id: privateEndpointId || cuid(), + id: privateEndpointId, privateLinkServiceConnectionStateStatus: privateLinkServiceConnectionState?.status, privateLinkServiceConnectionStateActionsRequired: privateLinkServiceConnectionState?.actionsRequired, privateLinkServiceConnectionStateDescription: privateLinkServiceConnectionState?.description, diff --git a/src/services/cosmosDb/format.ts b/src/services/cosmosDb/format.ts index 50f8ce9a..5e139b8a 100644 --- a/src/services/cosmosDb/format.ts +++ b/src/services/cosmosDb/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { BackupPolicyUnion, RestoreParameters } from '@azure/arm-cosmosdb' import { isEmpty } from 'lodash' import { AzureCosmosDb, AzureCosmosDbBackupPolicy, AzureCosmosDbRestoreParameters } from '../../types/generated' @@ -31,7 +31,9 @@ const formatRestoreParameters = ( const { restoreTimestampInUtc, databasesToRestore, ...rest } = restoreParameters return { restoreTimestampInUtc: restoreTimestampInUtc?.toISOString(), - databasesToRestore: databasesToRestore?.map(db => ({ id: cuid(), ...db })) || [], + databasesToRestore: databasesToRestore?.map(db => ({ id: generateUniqueId({ + ...db + }), ...db })) || [], ...rest, } } @@ -93,7 +95,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, type, @@ -105,7 +107,10 @@ export default ({ userAssignedIdentities: Object.keys( identity?.userAssignedIdentities ?? {} ).map(key => ({ - id: cuid(), + id: generateUniqueId({ + id, + key + }), key, value: identity?.userAssignedIdentities[key], })), @@ -114,22 +119,22 @@ export default ({ provisioningState, documentEndpoint, databaseAccountOfferType, - ipRules: ipRules?.map(r => ({ id: cuid(), ...r })) || [], + ipRules: ipRules?.map(r => ({ id: r.ipAddressOrRange, ...r })) || [], isVirtualNetworkFilterEnabled, enableAutomaticFailover, consistencyPolicy, - capabilities: capabilities?.map(c => ({ id: cuid(), ...c })) || [], + capabilities: capabilities?.map(c => ({ id: c.name, ...c })) || [], writeLocations: - writeLocations?.map(wl => ({ id: id || cuid(), ...wl })) || [], + writeLocations?.map(wl => ({ id: wl.id, ...wl })) || [], readLocations: - readLocations?.map(rl => ({ id: id || cuid(), ...rl })) || [], - locations: locations?.map(l => ({ id: id || cuid(), ...l })) || [], + readLocations?.map(rl => ({ id: rl.id, ...rl })) || [], + locations: locations?.map(l => ({ id: l.id, ...l })) || [], failoverPolicies: - failoverPolicies?.map(fp => ({ id: id || cuid(), ...fp })) || [], + failoverPolicies?.map(fp => ({ id: fp.id, ...fp })) || [], virtualNetworkRules: - virtualNetworkRules?.map(vn => ({ id: id || cuid(), ...vn })) || [], + virtualNetworkRules?.map(vn => ({ id: vn.id, ...vn })) || [], privateEndpointConnections: privateEndpointConnections?.map(({ id: endpointId, privateEndpoint, ...pe}) => ({ - id: endpointId || cuid(), + id: endpointId, privateEndpointId: privateEndpoint?.id, ...pe })) || [], @@ -149,20 +154,20 @@ export default ({ createMode, restoreParameters: formatRestoreParameters(restoreParameters), backupPolicy: formatBackupPolicy(backupPolicy), - cors: cors?.map(cp => ({ id: cuid(), ...cp })) || [], + cors: cors?.map(cp => ({ id: generateUniqueId(cp), ...cp })) || [], networkAclBypass, networkAclBypassResourceIds, disableLocalAuth, capacityTotalThroughputLimit: capacity?.totalThroughputLimit, tags: formatTagsFromMap(Tags), databases: databases?.map(({ id: databaseId, options, ...rest }) => ({ - id: databaseId || cuid(), + id: databaseId, ...rest, options: { throughput: options?.throughput, maxThroughput: options?.autoscaleSettings?.maxThroughput, }, })) || [], - azureTables: tables?.map(at => ({ id: id || cuid(), ...at })) || [], + azureTables: tables?.map(at => ({ id: at.id, ...at })) || [], } } diff --git a/src/services/dataCollectionRule/format.ts b/src/services/dataCollectionRule/format.ts index a0cce786..40040d66 100644 --- a/src/services/dataCollectionRule/format.ts +++ b/src/services/dataCollectionRule/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { RawAzureDataCollectionRule } from './data' import { AzureDataCollectionRule } from '../../types/generated' import { formatTagsFromMap, transformSystemData } from '../../utils/format' @@ -34,7 +34,7 @@ export default ({ provisioningState, } = service return { - id: id || cuid(), + id, name, type, region, @@ -53,7 +53,9 @@ export default ({ counterSpecifiers = [], name: pName, }) => ({ - id: cuid(), + id: generateUniqueId({ + id, name: pName, + }), streams, samplingFrequencyInSeconds, counterSpecifiers, @@ -63,7 +65,9 @@ export default ({ windowsEventLogs: windowsEventLogs?.map( ({ streams = [], xPathQueries = [], name: wName }) => ({ - id: cuid(), + id: generateUniqueId({ + id, name:wName + }), streams, xPathQueries, name: wName, @@ -71,28 +75,38 @@ export default ({ ) || [], syslog: syslog?.map(({ ...sls }) => ({ - id: cuid(), + id: generateUniqueId({ + id, + name: sls.name, + }), ...sls, })) || [], extensions: extensions?.map(({ ...es }) => ({ - id: cuid(), + id: generateUniqueId({ + id, name: es.name + }), ...es, })) || [], }, destinations: { azureMonitorMetricsName, logAnalyticsDestinations: logAnalyticsDestinations.map( - ({ workspaceResourceId, workspaceId, name }) => ({ - id: cuid(), + ({ workspaceResourceId, workspaceId, name: lADName }) => ({ + id: generateUniqueId({ + id, + name: lADName + }), workspaceResourceId, workspaceId, - name, + name: lADName, }) ), }, dataFlows: dataFlows.map(({ destinations, streams }) => ({ - id: cuid(), + id: generateUniqueId({ + id, destinations + }), destinations, streams, })), diff --git a/src/services/dataFactory/format.ts b/src/services/dataFactory/format.ts index b6e675d5..b7e01259 100644 --- a/src/services/dataFactory/format.ts +++ b/src/services/dataFactory/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureDataFactory } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureDataFactory } from './data' @@ -27,7 +26,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, type, diff --git a/src/services/dataLakeStorageAccounts/format.ts b/src/services/dataLakeStorageAccounts/format.ts index 7de3b1e4..8090df9a 100644 --- a/src/services/dataLakeStorageAccounts/format.ts +++ b/src/services/dataLakeStorageAccounts/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureDataLakeStorageAccount } from '../../types/generated' import { RawAzureDataLakeStorageAccount } from './data' @@ -20,7 +19,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, type, diff --git a/src/services/databaseManagedSqlInstance/format.ts b/src/services/databaseManagedSqlInstance/format.ts index ba16407f..22c634d3 100644 --- a/src/services/databaseManagedSqlInstance/format.ts +++ b/src/services/databaseManagedSqlInstance/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureDatabaseManagedSqlInstance } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureDatabaseManagedSqlInstance } from './data' @@ -46,7 +46,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, subscriptionId: account, @@ -82,7 +82,7 @@ export default ({ userAssignedIdentities: Object.keys( identity?.userAssignedIdentities ?? {} ).map(key => ({ - id: cuid(), + id: generateUniqueId({id, key}), key, value: identity?.userAssignedIdentities[key], })), diff --git a/src/services/databaseMySql/format.ts b/src/services/databaseMySql/format.ts index c4133c2a..83d785a2 100644 --- a/src/services/databaseMySql/format.ts +++ b/src/services/databaseMySql/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureDatabaseMySql } from '../../types/generated' import { RawAzureDatabaseMySql } from './data' @@ -21,7 +20,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, type, diff --git a/src/services/databasePostgreSql/format.ts b/src/services/databasePostgreSql/format.ts index feab9ae5..bd13c494 100644 --- a/src/services/databasePostgreSql/format.ts +++ b/src/services/databasePostgreSql/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureDatabasePostgreSql } from '../../types/generated' import { RawAzureDatabasePostgreSql } from './data' @@ -21,7 +20,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, type, diff --git a/src/services/databaseSql/format.ts b/src/services/databaseSql/format.ts index 4738d72d..19e29da9 100644 --- a/src/services/databaseSql/format.ts +++ b/src/services/databaseSql/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureDatabaseSql } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureDatabaseSql } from './data' @@ -65,7 +65,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, subscriptionId: account, @@ -77,12 +77,12 @@ export default ({ identity: { ...identity, userAssignedIdentities: Object.keys(identity?.userAssignedIdentities ?? {}).map(key => ({ - id: cuid(), + id: generateUniqueId({id, key}), key, value: identity?.userAssignedIdentities[key], })), delegatedResources: Object.keys(identity?.delegatedResources ?? {}).map(key => ({ - id: cuid(), + id: generateUniqueId({id, key}), key, value: identity?.delegatedResources[key], })), @@ -128,7 +128,7 @@ export default ({ primaryDelegatedIdentityClientId, transparentDataEncryptions: transparentDataEncryptions?.map(tde => ({ ...tde, - id: tde.id || cuid(), + id: tde.id, })), tags: formatTagsFromMap(Tags), } diff --git a/src/services/databaseSqlVm/format.ts b/src/services/databaseSqlVm/format.ts index 57635ff1..0c286a0b 100644 --- a/src/services/databaseSqlVm/format.ts +++ b/src/services/databaseSqlVm/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureDatabaseSqlVm } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureDatabaseSqlVm } from './data' @@ -35,7 +34,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, type, diff --git a/src/services/diagnosticSettings/format.ts b/src/services/diagnosticSettings/format.ts index e6dd845e..b31486d5 100644 --- a/src/services/diagnosticSettings/format.ts +++ b/src/services/diagnosticSettings/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureDiagnosticSetting } from '../../types/generated' import { RawAzureDiagnosticSetting } from './data' @@ -41,7 +41,7 @@ export default ({ const appropiateCategories = evalCategories() return { - id: id || cuid(), + id, name, region, subscriptionId: account, @@ -60,7 +60,10 @@ export default ({ category, enabled, }) => ({ - id: cuid(), + id: generateUniqueId({ + id, + category, + }), retentionPolicyEnabled, retentionPolicyDays, timeGrain, @@ -77,7 +80,9 @@ export default ({ category, enabled, }) => ({ - id: cuid(), + id: generateUniqueId({ + id, category + }), retentionPolicyEnabled, retentionPolicyDays, category, diff --git a/src/services/disk/format.ts b/src/services/disk/format.ts index d3194fc4..d02793aa 100644 --- a/src/services/disk/format.ts +++ b/src/services/disk/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureDisk } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureDisk } from './data' @@ -42,7 +41,7 @@ export default ({ // If the id is not present use uniqueId // uniqueId is an additional unique Guid that identifies the resource // if uniqueId doesn't exist, then create a random uid to ensure id consistency for connections - id: id || uniqueId || cuid(), + id: id || uniqueId, name, region, subscriptionId: account, diff --git a/src/services/dns/format.ts b/src/services/dns/format.ts index ac8e5f02..a699f49e 100644 --- a/src/services/dns/format.ts +++ b/src/services/dns/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureDnsZone, AzureDnsZoneRecordSet } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureDnsZone, RawAzureDnsRecordSet } from './data' @@ -41,7 +41,10 @@ const formatRecordSet = ( mxRecords: mxRecords?.map(({ exchange, preference }) => { return { - id: cuid(), + id: generateUniqueId({ + id, + exchange, + }), exchange, preference, } @@ -51,7 +54,9 @@ const formatRecordSet = ( srvRecords: srvRecords?.map(({ priority, weight, port, target }) => { return { - id: cuid(), + id: generateUniqueId({ + id, target + }), priority, weight, port, @@ -61,7 +66,10 @@ const formatRecordSet = ( txtRecords: txtRecords?.map(({ value }) => { return { - id: cuid(), + id: generateUniqueId({ + id, + value + }), value, } }) || [], @@ -79,7 +87,11 @@ const formatRecordSet = ( caaRecords: caaRecords?.map(({ flags, tag, value }) => { return { - id: cuid(), + id: generateUniqueId({ + id, + tag, + value, + }), flags, tag, value, @@ -111,7 +123,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/eventGrid/format.ts b/src/services/eventGrid/format.ts index f3b1cfe3..984ab4f9 100644 --- a/src/services/eventGrid/format.ts +++ b/src/services/eventGrid/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureEventGrid } from '../../types/generated' import { transformSystemData } from '../../utils/format' import { RawAzureEventGrid } from './data' @@ -22,7 +21,7 @@ export default ({ resourceGroupId } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/eventHub/format.ts b/src/services/eventHub/format.ts index cf547440..618363aa 100644 --- a/src/services/eventHub/format.ts +++ b/src/services/eventHub/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureEventHub } from '../../types/generated' import { transformSystemData } from '../../utils/format' import { RawAzureEventHub } from './data' @@ -27,7 +26,7 @@ export default ({ resourceGroupId, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/expressRouteGateways/format.ts b/src/services/expressRouteGateways/format.ts index b57d3d6e..8995ed3a 100644 --- a/src/services/expressRouteGateways/format.ts +++ b/src/services/expressRouteGateways/format.ts @@ -1,9 +1,10 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureExpressRouteGateway } from '../../types/generated' import { RawAzureExpressRouteGateway } from './data' import { formatTagsFromMap } from '../../utils/format' + export default ({ service, account, @@ -25,7 +26,7 @@ export default ({ Tags = {}, } = service return { - id: id || cuid(), + id, name, type, region, @@ -33,8 +34,8 @@ export default ({ etag, autoScaleConfiguration, expressRouteConnections: expressRouteConnections?.map(connection => ({ - id: cuid(), - connectionId: id, + id: connection.id, + connectionId: connection.id, name: connection?.name, provisioningState: connection?.provisioningState, authorizationKey: connection?.authorizationKey, @@ -46,22 +47,33 @@ export default ({ }, routingConfiguration: { associatedRouteTable: { - id: connection?.routingConfiguration?.associatedRouteTable?.id || cuid(), + id: connection?.routingConfiguration?.associatedRouteTable?.id, }, propagatedRouteTables: { ...connection?.routingConfiguration?.propagatedRouteTables, - ids: connection?.routingConfiguration?.propagatedRouteTables?.ids?.map(id => ({ - id: id?.id, - })), + ids: connection?.routingConfiguration?.propagatedRouteTables?.ids?.map( + id => ({ + id: id?.id, + }) + ), }, vnetRoutes: { - staticRoutes: connection?.routingConfiguration?.vnetRoutes?.staticRoutes?.map(staticRoute => ({ - id: cuid(), - ...staticRoute, - })), - bgpConnections: connection?.routingConfiguration?.vnetRoutes?.bgpConnections?.map(bgpConnection => ({ - id: bgpConnection?.id, - })), + staticRoutes: + connection?.routingConfiguration?.vnetRoutes?.staticRoutes?.map( + staticRoute => ({ + id: generateUniqueId({ + id, + name: staticRoute.name, + }), + ...staticRoute, + }) + ), + bgpConnections: + connection?.routingConfiguration?.vnetRoutes?.bgpConnections?.map( + bgpConnection => ({ + id: bgpConnection?.id, + }) + ), }, }, })), diff --git a/src/services/fileShare/format.ts b/src/services/fileShare/format.ts index 6cc5898c..a3ce4afc 100644 --- a/src/services/fileShare/format.ts +++ b/src/services/fileShare/format.ts @@ -1,5 +1,3 @@ -import cuid from 'cuid' - import { AzureFileShare } from '../../types/generated' import { RawAzureFileShareItem } from './data' @@ -35,7 +33,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, subscriptionId: account, resourceGroupId, diff --git a/src/services/firewall/format.ts b/src/services/firewall/format.ts index e3ca76a1..bd1d2031 100644 --- a/src/services/firewall/format.ts +++ b/src/services/firewall/format.ts @@ -8,7 +8,7 @@ import { AzureFirewallNetworkRule as FirewallNetworkRule, AzureFirewallIPConfiguration as FirewallIPConfiguration, } from '@azure/arm-network' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureFirewall, AzureFirewallAdditionalProperty, @@ -30,7 +30,7 @@ const formatAzureFirewallApplicationRuleProtocol = ({ port, }: FirewallApplicationRuleProtocol): AzureFirewallApplicationRuleProtocol => { return { - id: cuid(), + id: generateUniqueId({ protocolType, port }), protocolType, port, } @@ -45,7 +45,7 @@ const formatAzureFirewallApplicationRule = ({ sourceIpGroups, }: FirewallApplicationRule): AzureFirewallApplicationRule => { return { - id: cuid(), + id: generateUniqueId({ name }), name, description, sourceAddresses, @@ -68,7 +68,7 @@ const formatAzureFirewallApplicationRuleCollection = ({ provisioningState, }: FirewallApplicationRuleCollection): AzureFirewallApplicationRuleCollection => { return { - id: id || cuid(), + id, name, priority, action: action?.type || '', @@ -91,7 +91,7 @@ const formatAzureFirewallNatRule = ({ sourceIpGroups, }: FirewallNatRule): AzureFirewallNatRule => { return { - id: cuid(), + id: generateUniqueId({ name }), name, description, sourceAddresses, @@ -114,7 +114,7 @@ const formatNatRuleCollection = ({ name, }: FirewallNatRuleCollection): AzureFirewallNatRuleCollection => { return { - id: id || cuid(), + id, name, priority, action: action?.type || '', @@ -136,7 +136,7 @@ const formatAzureFirewallNetworkRule = ({ destinationIpGroups, }: FirewallNetworkRule): AzureFirewallNetworkRule => { return { - id: cuid(), + id: generateUniqueId({ name }), name, description, protocols, @@ -158,7 +158,7 @@ const formatNetworkRuleCollection = ({ provisioningState, }: FirewallNetworkRuleCollection): AzureFirewallNetworkRuleCollection => { return { - id: id || cuid(), + id, name, priority, action: action?.type || '', @@ -178,7 +178,7 @@ const formatIpConfiguration = ({ type, }: FirewallIPConfiguration): AzureFirewallIpConfiguration => { return { - id: id || cuid(), + id, name, privateIPAddress, subnet: subnet?.id || '', @@ -228,7 +228,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, subscriptionId: account, @@ -249,7 +249,7 @@ export default ({ formatIpConfiguration(ipConfiguration) ) || [], managementIpConfiguration: { - id: managementIpConfiguration?.id || cuid(), + id: managementIpConfiguration?.id, name: managementIpConfiguration?.name || '', privateIPAddress: managementIpConfiguration?.privateIPAddress || '', subnet: managementIpConfiguration?.subnet?.id || '', diff --git a/src/services/functionApp/format.ts b/src/services/functionApp/format.ts index d6122b36..2238d387 100644 --- a/src/services/functionApp/format.ts +++ b/src/services/functionApp/format.ts @@ -1,7 +1,10 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import isArray from 'lodash/isArray' import toString from 'lodash/toString' -import { AzureStorageInfoValue, SiteConfigResource } from '@azure/arm-appservice' +import { + AzureStorageInfoValue, + SiteConfigResource, +} from '@azure/arm-appservice' import { AzureFunctionApp, AzureAppServiceWebAppSiteConfig, @@ -9,7 +12,6 @@ import { import { formatTagsFromMap } from '../../utils/format' import { RawAzureFunctionApp } from './data' - export interface RawAzureStorageInfoValue extends AzureStorageInfoValue { id: string name: string @@ -27,7 +29,10 @@ const formatAzureStorageAccounts = (azureStorageAccounts: { return Object.entries(azureStorageAccounts).map(([key, value]) => { if (!value) return {} as RawAzureStorageInfoValue return { - id: cuid(), + id: generateUniqueId({ + name: key, + type: value.type, + }), name: key, type: value.type, accountName: value.accountName, @@ -41,14 +46,16 @@ const formatAzureStorageAccounts = (azureStorageAccounts: { const formatHeaders = headers => { if (!headers) return null - return Object.entries(headers).map(([key, value]) => { + return Object.entries(headers).map(([key, value]) => { const conVal = (isArray(value) ? value : [value]) || [] return { - id: cuid(), + id: generateUniqueId({ + key, + }), key, value: conVal.map(val => toString(val)), } - }) + }) } const formatSiteConfig = ({ @@ -71,7 +78,7 @@ const formatSiteConfig = ({ ...restConfig }: RawSiteConfigResource): AzureAppServiceWebAppSiteConfig => { return { - id: id || cuid(), + id, autoHealRules: { triggers: { @@ -79,18 +86,18 @@ const formatSiteConfig = ({ privateBytesInKB: autoHealRules?.triggers?.privateBytesInKB, statusCodes: autoHealRules?.triggers?.statusCodes?.map(s => ({ - id: cuid(), + id: generateUniqueId({ path: s.path }), ...s, })) || [], slowRequests: autoHealRules?.triggers?.slowRequests, slowRequestsWithPath: autoHealRules?.triggers?.slowRequestsWithPath?.map(s => ({ - id: cuid(), + id: generateUniqueId({ path: s.path }), ...s, })) || [], statusCodesRange: autoHealRules?.triggers?.statusCodesRange?.map(s => ({ - id: cuid(), + id: generateUniqueId({ path: s.path }), ...s, })) || [], } || {}, @@ -98,42 +105,53 @@ const formatSiteConfig = ({ }, appSettings: appSettings?.map(({ name, value }) => ({ - id: cuid(), + id: generateUniqueId({ name }), name, value, })) || [], apiDefinitionInfoUrl: apiDefinition?.url || '', apiManagementConfigId: apiManagementConfig?.id || '', connectionStrings: - connectionStrings?.map(c => ({ id: cuid(), ...c })) || [], + connectionStrings?.map(c => ({ id: generateUniqueId({}), ...c })) || [], requestTracingExpirationTime: requestTracingExpirationTime?.toISOString(), isPushEnabled: push?.isPushEnabled || false, virtualApplications: - virtualApplications?.map(({virtualDirectories, ...v}) => ({ - id: cuid(), - virtualDirectories: virtualDirectories?.map(d => ({ - id: cuid(), - ...d - })) || [], - ...v + virtualApplications?.map(({ virtualDirectories, ...v }) => ({ + id: generateUniqueId({ physicalPath: v.physicalPath }), + virtualDirectories: + virtualDirectories?.map(d => ({ + id: generateUniqueId({ + vPhysicalPath: v.physicalPath, + physicalPath: d.physicalPath, + }), + ...d, + })) || [], + ...v, })) || [], experiments: { rampUpRules: - experiments?.rampUpRules?.map(r => ({ id: cuid(), ...r })) || [], + experiments?.rampUpRules?.map(r => ({ + id: generateUniqueId({ name: r.name }), + ...r, + })) || [], }, ipSecurityRestrictions: - ipSecurityRestrictions?.map(({ headers, ...i}) => ({ - id: cuid(), + ipSecurityRestrictions?.map(({ headers, ...i }) => ({ + id: generateUniqueId({ name: i.name }), headers: formatHeaders(headers), - ...i + ...i, })) || [], scmIpSecurityRestrictions: - scmIpSecurityRestrictions?.map(({ headers, ...s}) => ({ - id: cuid(), + scmIpSecurityRestrictions?.map(({ headers, ...s }) => ({ + id: generateUniqueId({ name: s.name }), headers: formatHeaders(headers), - ...s + ...s, + })) || [], + handlerMappings: + handlerMappings?.map((h, index) => ({ + id: generateUniqueId({ ...h, id, index }), + ...h, })) || [], - handlerMappings: handlerMappings?.map(h => ({ id: cuid(), ...h })) || [], azureStorageAccounts: formatAzureStorageAccounts(azureStorageAccounts), tags: formatTagsFromMap(tags), ...restConfig, @@ -166,7 +184,7 @@ export default ({ ...rest } = service return { - id: id || cuid(), + id, ...rest, subscriptionId: account, region, @@ -178,7 +196,10 @@ export default ({ extendedLocation, lastModifiedTimeUtc: lastModifiedTimeUtc?.toUTCString(), suspendedTill: suspendedTill?.toUTCString(), - functions: functions.map(({ ...data }) => ({ ...data, id: cuid() })), + functions: functions.map(({ ...data }) => ({ + ...data, + id: generateUniqueId({}), + })), siteConfig: formatSiteConfig(siteConfig), tags: formatTagsFromMap(Tags), } diff --git a/src/services/index.ts b/src/services/index.ts index 60d8c5a8..408ba6bb 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -5,7 +5,6 @@ import { Subscription, SubscriptionClient } from '@azure/arm-subscriptions' import { loadFilesSync } from '@graphql-tools/load-files' import { mergeTypeDefs } from '@graphql-tools/merge' import chalk from 'chalk' -import { print } from 'graphql' import { isEmpty, merge, unionBy } from 'lodash' import path from 'path' @@ -341,12 +340,12 @@ export default class Provider extends CloudGraph.Client { * getSchema is used to get the schema for provider * @returns A string of graphql sub schemas */ - getSchema(): string { + getSchema(): any { const typesArray = loadFilesSync(path.join(__dirname), { recursive: true, extensions: ['graphql'], }) - return print(mergeTypeDefs(typesArray)) + return mergeTypeDefs(typesArray) } /** diff --git a/src/services/integrationRuntimes/format.ts b/src/services/integrationRuntimes/format.ts index fd05e05a..136b01c5 100644 --- a/src/services/integrationRuntimes/format.ts +++ b/src/services/integrationRuntimes/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { IntegrationRuntimeCustomerVirtualNetwork, CustomSetupBase, @@ -192,7 +192,11 @@ const formatProperties = ( type: expressCustomSetupPropertiesType, componentName, }): AzureCustomSetupBaseUnion => ({ - id: cuid(), + id: generateUniqueId({ + targetName, + variableName, + componentName, + }), targetName: Object.values(targetName ?? {}).join(''), variableName, variableValue, @@ -210,7 +214,11 @@ const formatProperties = ( referenceName: packageStoreLinkedServiceReferenceName, }, }): AzurePackageStore => ({ - id: cuid(), + id: generateUniqueId({ + name, + packageStoreLinkedServiceType, + packageStoreLinkedServiceReferenceName, + }), name, packageStoreLinkedServiceType, packageStoreLinkedServiceReferenceName, @@ -279,7 +287,7 @@ export default ({ const { id, name, type, resourceGroupId, etag, properties = {} } = service return { - id: id || cuid(), + id, name, region, type, diff --git a/src/services/keyVault/format.ts b/src/services/keyVault/format.ts index cee0b3af..d4f3aa0f 100644 --- a/src/services/keyVault/format.ts +++ b/src/services/keyVault/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AccessPolicyEntry } from '@azure/arm-keyvault' import { AzureKeyVault, AzureKeyVaultAccessPolicy } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' @@ -11,7 +11,10 @@ const formatKeyVaultAccessPolicyEntry = ({ permissions, }: AccessPolicyEntry): AzureKeyVaultAccessPolicy => { return { - id: cuid(), + id: generateUniqueId({ + objectId, + applicationId, + }), objectId, applicationId, permissionKeys: permissions?.keys || [], @@ -43,7 +46,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, subscriptionId: account, @@ -77,7 +80,7 @@ export default ({ resourceGroupId, keys: keys?.map(k => ({ - id: k.id || cuid(), + id: k.id, name: k.name, type: k.type, location: k.location, @@ -96,7 +99,7 @@ export default ({ })) || [], secrets: secrets?.map(s => ({ - id: s.id || cuid(), + id: s.id, name: s.name, type: s.type, location: s.location, @@ -120,7 +123,7 @@ export default ({ })) || [], diagnosticSettings: diagnosticSettings?.map(ds => ({ - id: ds.id || cuid(), + id: ds.id, name: ds.name, type: ds.type, storageAccountId: ds.storageAccountId, @@ -129,25 +132,25 @@ export default ({ eventHubName: ds.eventHubName, workspaceId: ds.workspaceId, logAnalyticsDestinationType: ds.logAnalyticsDestinationType, - metrics: ds.metrics?.map( - ({ - retentionPolicy: { - enabled: retentionPolicyEnabled, - days: retentionPolicyDays, - } = {}, - timeGrain, - category, - enabled, - }) => + metrics: + ds.metrics?.map( ({ - id: cuid(), + retentionPolicy: { + enabled: retentionPolicyEnabled, + days: retentionPolicyDays, + } = {}, + timeGrain, + category, + enabled, + }) => ({ + id: generateUniqueId({ category, type: 'metrics' }), retentionPolicyEnabled, retentionPolicyDays, timeGrain, category, enabled, }) - ) || [], + ) || [], logs: ds.logs?.map( ({ @@ -158,7 +161,7 @@ export default ({ category, enabled, }) => ({ - id: cuid(), + id: generateUniqueId({ category, type: 'logs' }), retentionPolicyEnabled, retentionPolicyDays, category, diff --git a/src/services/loadBalancer/format.ts b/src/services/loadBalancer/format.ts index 02a5c720..06f5ac4a 100644 --- a/src/services/loadBalancer/format.ts +++ b/src/services/loadBalancer/format.ts @@ -7,7 +7,6 @@ import { OutboundRule, Probe, } from '@azure/arm-network' -import cuid from 'cuid' import { AzureLbBackendAddressPool, AzureLbFrontendIpConfiguration, @@ -42,7 +41,7 @@ const formatFrontendIpConfigurations = ( // Skipping the rest of the props because they are going probably be used for connections // Candidates: subnet, privateIP and publicIP related props, can point to another gateway load balancer }) => ({ - id: id || cuid(), + id, name, etag, type, @@ -76,7 +75,7 @@ const formatBackendAddressPools = ( // tunnelInterfaces points to multiple potential load balancers? // possible connections to virtual network, subnet, networkInterface }) => ({ - id: id || cuid(), + id, name, etag, type, @@ -100,12 +99,12 @@ const formatLoadBalancingRules = ( probe, ...rest }) => ({ - id: id || cuid(), + id, ...rest, }) ) const formatProbes = (arr: Probe[]): AzureLbProbe[] => - arr.map(({ id = cuid(), loadBalancingRules, ...rest }) => ({ id, ...rest })) + arr.map(({ id, loadBalancingRules, ...rest }) => ({ id, ...rest })) const formatInboundNatRules = ( arr: InboundNatRule[] @@ -117,20 +116,20 @@ const formatInboundNatRules = ( backendIPConfiguration, backendAddressPool, ...rest - }) => ({ id: id || cuid(), ...rest }) + }) => ({ id, ...rest }) ) const formatInboundNatPools = ( arr: InboundNatPool[] ): AzureLbInboundNatPool[] => - arr.map(({ id = cuid(), frontendIPConfiguration, ...rest }) => ({ + arr.map(({ id, frontendIPConfiguration, ...rest }) => ({ id, ...rest, })) const formatOutboundRules = (arr: OutboundRule[]): AzureLbOutboundRule[] => arr.map(({ id, frontendIPConfigurations, backendAddressPool, ...rest }) => ({ - id: id || cuid(), + id, ...rest, })) @@ -160,7 +159,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, region, resourceGroupId, diff --git a/src/services/logAnalyticsSolution/format.ts b/src/services/logAnalyticsSolution/format.ts index cbb91539..6a55725a 100644 --- a/src/services/logAnalyticsSolution/format.ts +++ b/src/services/logAnalyticsSolution/format.ts @@ -1,5 +1,3 @@ -import cuid from 'cuid' - import { AzureLogAnalyticsSolution } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureLogAnalyticsSolution } from './data' @@ -38,7 +36,7 @@ export default ({ } = properties return { - id: id || cuid(), + id, name, type, resourceGroupId, diff --git a/src/services/logAnalyticsWorkspace/format.ts b/src/services/logAnalyticsWorkspace/format.ts index 856d2d7e..cb9f9bc3 100644 --- a/src/services/logAnalyticsWorkspace/format.ts +++ b/src/services/logAnalyticsWorkspace/format.ts @@ -1,5 +1,3 @@ -import cuid from 'cuid' - import { AzureLogAnalyticsWorkspace } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureLogAnalyticsWorkspace } from './data' @@ -35,7 +33,7 @@ export default ({ } = service return { - id: id || cuid(), + id, type, resourceGroupId, subscriptionId: account, diff --git a/src/services/logProfiles/format.ts b/src/services/logProfiles/format.ts index 6b5397e8..f4a6ca62 100644 --- a/src/services/logProfiles/format.ts +++ b/src/services/logProfiles/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureLogProfile } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureLogProfileResource } from './data' @@ -25,7 +24,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, subscriptionId: account, diff --git a/src/services/machineLearningWorkspaces/format.ts b/src/services/machineLearningWorkspaces/format.ts index 72d09106..e9a6eaff 100644 --- a/src/services/machineLearningWorkspaces/format.ts +++ b/src/services/machineLearningWorkspaces/format.ts @@ -1,8 +1,7 @@ -import cuid from 'cuid' -import { formatTagsFromMap } from '../../utils/format' +import { generateUniqueId } from '@cloudgraph/sdk' +import { formatTagsFromMap, transformSystemData } from '../../utils/format' import { RawAzureMachineLearningWorkspace } from './data' import { AzureMachineLearningWorkspace } from '../../types/generated' -import { transformSystemData } from '../../utils/format' export default ({ service, @@ -48,7 +47,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -73,12 +72,14 @@ export default ({ allowPublicAccessWhenBehindVnet, publicNetworkAccess, privateEndpointConnections: privateEndpointConnections?.map(connection => ({ - id: connection?.id || cuid(), + id: connection?.id, ...connection, ...transformSystemData(connection?.systemData), })), sharedPrivateLinkResources: sharedPrivateLinkResources?.map(resource => ({ - id: cuid(), + id: generateUniqueId({ + ...resource + }), ...resource, })), notebookInfo: { diff --git a/src/services/metricAlert/format.ts b/src/services/metricAlert/format.ts index 22ecc3d0..8b4cce0f 100644 --- a/src/services/metricAlert/format.ts +++ b/src/services/metricAlert/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { MetricAlertCriteriaUnion } from '@azure/arm-monitor' import { RawAzureMetricAlert } from './data' import { @@ -15,43 +15,56 @@ const formatCriteria = ({ webTestId, }: MetricAlertCriteriaUnion): AzureMetricAlertCriteria => { return { - allOf: allOf?.map( - ({ - criterionType, - name, - metricName, - metricNamespace, - timeAggregation, - dimensions = [], - skipMetricValidation, - operator, - threshold, - alertSensitivity, - failingPeriods = {}, - ignoreDataBefore, - }) => ({ - id: cuid(), - criterionType, - name, - metricName, - metricNamespace, - timeAggregation, - dimensions: dimensions?.map( - ({ name: dName, operator: dOperator, values }) => ({ - id: cuid(), - name: dName, - operator: dOperator, - values, - }) - ) || [], - skipMetricValidation, - operator, - threshold, - alertSensitivity, - failingPeriods, - ignoreDataBefore, - }) - ) || [], + allOf: + allOf?.map( + ({ + criterionType, + name, + metricName, + metricNamespace, + timeAggregation, + dimensions = [], + skipMetricValidation, + operator, + threshold, + alertSensitivity, + failingPeriods = {}, + ignoreDataBefore, + }) => ({ + id: generateUniqueId({ + name, + metricName, + metricNamespace, + criterionType, + operator, + }), + criterionType, + name, + metricName, + metricNamespace, + timeAggregation, + dimensions: + dimensions?.map( + ({ name: dName, operator: dOperator, values }, index) => ({ + id: generateUniqueId({ + name: dName, + operator, + values, + index, + }), + name: dName, + operator: dOperator, + values, + }) + ) || [], + skipMetricValidation, + operator, + threshold, + alertSensitivity, + failingPeriods, + ignoreDataBefore, + }) + ) || [], componentId, failedLocationCount, odataType, @@ -87,7 +100,7 @@ export default ({ Tags = {}, } = service return { - id: id || cuid(), + id, name, type, region, @@ -103,10 +116,15 @@ export default ({ criteria: formatCriteria(criteria), autoMitigate, isMigrated, - actions: actions?.map(({ actionGroupId }) => ({ - id: cuid(), - actionGroupId, - })) || [], + actions: + actions?.map(({ actionGroupId }, index) => ({ + id: generateUniqueId({ + actionGroupId, + id, + index, + }), + actionGroupId, + })) || [], lastUpdatedTime: lastUpdatedTime?.toISOString(), tags: formatTagsFromMap(Tags), } diff --git a/src/services/mySqlServers/format.ts b/src/services/mySqlServers/format.ts index aba6e0cf..cf324b24 100644 --- a/src/services/mySqlServers/format.ts +++ b/src/services/mySqlServers/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { formatTagsFromMap } from '../../utils/format' import { RawAzureMySqlServer } from './data' import { AzureMySqlServer } from '../../types/generated' @@ -37,7 +36,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -60,7 +59,7 @@ export default ({ publicNetworkAccess, privateEndpointConnections: privateEndpointConnections?.map(connection => ({ ...connection, - id: connection.id || cuid(), + id: connection.id, })), tags: formatTagsFromMap(Tags), } diff --git a/src/services/networkInterface/format.ts b/src/services/networkInterface/format.ts index 8b38052a..394c45a5 100644 --- a/src/services/networkInterface/format.ts +++ b/src/services/networkInterface/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureNetworkInterface, AzureNetworkInterfaceIpConfiguration, @@ -66,7 +65,7 @@ export default ({ privateIpAddress = ipConfigurations[0].privateIPAddress } return { - id: id || cuid(), + id, subscriptionId: account, region, resourceGroupId, diff --git a/src/services/policyAssignment/format.ts b/src/services/policyAssignment/format.ts index f6e4261e..210a1352 100644 --- a/src/services/policyAssignment/format.ts +++ b/src/services/policyAssignment/format.ts @@ -1,7 +1,7 @@ import isArray from 'lodash/isArray' import isObject from 'lodash/isObject' import { isString } from 'lodash' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzurePolicyAssignment, AzurePolicyAssignmentParameters, @@ -37,10 +37,14 @@ export default ({ const parameters: AzurePolicyAssignmentParameters[] = Object.entries(params).map(([k, v]) => ({ - id: cuid(), + id: generateUniqueId({ + value: v + }), key: k, value: Object.entries(v.value).map(([k2, v2]) => ({ - id: isObject(v) ? cuid() : `${k2}:${v2}`, + id: isObject(v) ? generateUniqueId({ + ...v, + }) : `${k2}:${v2}`, key: k, value: (isString(v2) && v2) || @@ -64,7 +68,9 @@ export default ({ enforcementMode, identity, nonComplianceMessages: nonComplianceMessages.map(item => ({ - id: cuid(), + id: generateUniqueId({ + ...item, + }), ...item, })), notScopes, diff --git a/src/services/postgreSqlServers/format.ts b/src/services/postgreSqlServers/format.ts index 55fe8e28..e62e4a76 100644 --- a/src/services/postgreSqlServers/format.ts +++ b/src/services/postgreSqlServers/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { formatTagsFromMap } from '../../utils/format' import { RawAzurePostgreSqlServer } from './data' import { AzurePostgreSqlServer } from '../../types/generated' @@ -39,7 +38,7 @@ export default ({ } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -62,7 +61,7 @@ export default ({ publicNetworkAccess, privateEndpointConnections: privateEndpointConnections?.map(connection => ({ ...connection, - id: connection.id || cuid(), + id: connection.id, })), tags: formatTagsFromMap(Tags), configurations: configurations.map( @@ -77,7 +76,7 @@ export default ({ allowedValues, source, }) => ({ - id: confId || cuid(), + id: confId, name: confName, type: confType, value, @@ -96,7 +95,7 @@ export default ({ startIpAddress, endIpAddress }) => ({ - id: confId || cuid(), + id: confId, name: confName, type: confType, startIpAddress, diff --git a/src/services/privateDns/format.ts b/src/services/privateDns/format.ts index 8641d041..a2b2dee3 100644 --- a/src/services/privateDns/format.ts +++ b/src/services/privateDns/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { formatTagsFromMap } from '../../utils/format' import { RawAzurePrivateDnsZone } from './data' import { AzurePrivateDnsZone } from '../../types/generated' @@ -29,7 +28,7 @@ export default ({ resourceGroupId } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, diff --git a/src/services/recoveryInstances/format.ts b/src/services/recoveryInstances/format.ts index ed66148d..df10f5eb 100644 --- a/src/services/recoveryInstances/format.ts +++ b/src/services/recoveryInstances/format.ts @@ -8,7 +8,7 @@ import { ProtectedItemHealthStatus, ProtectionState, } from '@azure/arm-recoveryservicesbackup' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { isEmpty } from 'lodash' import { AzureRecoveryInstance, @@ -86,20 +86,33 @@ const formatProperties = ( ...restExtendedInfo, }, kpisHealths: Object.keys(kpisHealths ?? {}).map(key => ({ - id: cuid(), + id: generateUniqueId({ + ...kpisHealths[key] + }), key, value: { resourceHealthStatus: kpisHealths[key]?.resourceHealthStatus, resourceHealthDetails: kpisHealths[key]?.resourceHealthDetails?.map(hd => ({ - id: cuid(), + id: generateUniqueId({ + ...hd + }), ...hd, })) || [], }, })), - healthDetails: healthDetails?.map(hd => ({ id: cuid(), ...hd })) || [], + healthDetails: + healthDetails?.map(hd => ({ + id: generateUniqueId({ + ...hd, + }), + ...hd, + })) || [], sourceAssociations: Object.keys(sourceAssociations ?? {}).map(key => ({ - id: cuid(), + id: generateUniqueId({ + key, + value: sourceAssociations[key], + }), key, value: sourceAssociations[key], })), @@ -116,7 +129,7 @@ export default ({ }): AzureRecoveryInstance => { const { id, name, type, region, eTag, properties, resourceGroupId } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/recoveryPolicies/format.ts b/src/services/recoveryPolicies/format.ts index 63465e99..905394b2 100644 --- a/src/services/recoveryPolicies/format.ts +++ b/src/services/recoveryPolicies/format.ts @@ -15,6 +15,7 @@ import { WeeklySchedule, YearlyRetentionSchedule, } from '@azure/arm-recoveryservicesbackup' +import { generateUniqueId } from '@cloudgraph/sdk' import cuid from 'cuid' import { isEmpty } from 'lodash' import { @@ -136,7 +137,14 @@ const formatRetentionPolicy = ( retentionMonthlySchedule?.retentionScheduleFormatType, retentionScheduleDaily: retentionMonthlySchedule?.retentionScheduleDaily?.daysOfTheMonth?.map( - ({ date, isLast }) => ({ id: cuid(), date, isLast }) + ({ date, isLast }) => ({ + id: generateUniqueId({ + date, + isLast, + }), + date, + isLast, + }) ) || [], retentionScheduleWeekly: retentionMonthlySchedule?.retentionScheduleWeekly, @@ -154,7 +162,11 @@ const formatRetentionPolicy = ( monthsOfYear: retentionYearlySchedule?.monthsOfYear, retentionScheduleDaily: retentionYearlySchedule?.retentionScheduleDaily?.daysOfTheMonth?.map( - ({ date, isLast }) => ({ id: cuid(), date, isLast }) + ({ date, isLast }) => ({ + id: generateUniqueId({ date, isLast }), + date, + isLast, + }) ) || [], retentionScheduleWeekly: retentionYearlySchedule?.retentionScheduleWeekly, retentionTimes: @@ -187,7 +199,9 @@ const formatProperties = ( retentionPolicy: subRetentionPolicy, ...p }) => ({ - id: cuid(), + id: generateUniqueId({ + ...subProtectionPolicy, + }), schedulePolicy: formatSchedulePolicy(subSchedulePolicy), retentionPolicy: formatRetentionPolicy(subRetentionPolicy), ...p, @@ -208,7 +222,7 @@ export default ({ }): AzureRecoveryPolicy => { const { id, name, type, region, eTag, properties, resourceGroupId } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/recoveryVaults/format.ts b/src/services/recoveryVaults/format.ts index 401faf27..ea02dfe1 100644 --- a/src/services/recoveryVaults/format.ts +++ b/src/services/recoveryVaults/format.ts @@ -1,5 +1,5 @@ import { VaultProperties } from '@azure/arm-recoveryservices' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { isEmpty } from 'lodash' import { AzureRecoveryVault, @@ -43,7 +43,7 @@ const formatProperties = ( privateEndpointConnections: privateEndpointConnections?.map( ({ id: endpointId, properties, ...pe }) => ({ - id: endpointId || cuid(), + id: endpointId, properties: { provisioningState: properties?.provisioningState, privateEndpointId: properties?.privateEndpoint?.id, @@ -88,7 +88,7 @@ export default ({ resourceGroupId, } = service return { - id: id || cuid(), + id, name, type, region, @@ -102,7 +102,9 @@ export default ({ userAssignedIdentities: Object.keys( identity?.userAssignedIdentities ?? {} ).map(key => ({ - id: cuid(), + id: generateUniqueId({ + + }), key, value: identity?.userAssignedIdentities[key], })), diff --git a/src/services/redisCache/format.ts b/src/services/redisCache/format.ts index 9e2a24b5..179fb38d 100644 --- a/src/services/redisCache/format.ts +++ b/src/services/redisCache/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureRedisCache } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' import { RawAzureRedisCache } from './data' @@ -50,8 +50,13 @@ export default ({ zones, identity: { ...identity, - userAssignedIdentities: Object.keys(identity?.userAssignedIdentities || {}).map(key => ({ - id: cuid(), + userAssignedIdentities: Object.keys( + identity?.userAssignedIdentities || {} + ).map(key => ({ + id: generateUniqueId({ + key, + value: identity?.userAssignedIdentities[key], + }), key, value: identity?.userAssignedIdentities[key], })), @@ -62,7 +67,9 @@ export default ({ replicasPerMaster, replicasPerPrimary, tenantSettings: Object.keys(tenantSettings || {}).map(key => ({ - id: cuid(), + id: generateUniqueId({ + ...tenantSettings, + }), key, value: tenantSettings[key], })), @@ -81,11 +88,15 @@ export default ({ id: server?.id, })), instances: instances?.map(instance => ({ - id: cuid(), + id: generateUniqueId({ + ...instance, + }), ...instance, })), privateEndpointConnections: privateEndpointConnections?.map(connection => ({ - id: cuid(), + id: generateUniqueId({ + ...connection, + }), ...connection, })), tags: formatTagsFromMap(Tags), diff --git a/src/services/replicationAppliances/data.ts b/src/services/replicationAppliances/data.ts index 18495acf..2724b39a 100644 --- a/src/services/replicationAppliances/data.ts +++ b/src/services/replicationAppliances/data.ts @@ -1,11 +1,10 @@ -import cuid from 'cuid' import isEmpty from 'lodash/isEmpty' import { SiteRecoveryManagementClient, ReplicationAppliance, } from '@azure/arm-recoveryservices-siterecovery' import { PagedAsyncIterableIterator } from '@azure/core-paging' -import CloudGraph from '@cloudgraph/sdk' +import CloudGraph, { generateUniqueId } from '@cloudgraph/sdk' import azureLoggerText from '../../properties/logger' import { AzureServiceInput } from '../../types' import { tryCatchWrapper } from '../../utils/index' @@ -68,7 +67,11 @@ export default async ({ const { ...rest } = replicationAppliance replicationAppliances.push({ ...rest, - id: cuid(), + id: generateUniqueId({ + ...rest, + region: regionMap.global, + resourceGroupId, + }), region: regionMap.global, resourceGroupId, }) diff --git a/src/services/replicationCenters/data.ts b/src/services/replicationCenters/data.ts index 9ceb0c1a..5e12531e 100644 --- a/src/services/replicationCenters/data.ts +++ b/src/services/replicationCenters/data.ts @@ -1,11 +1,10 @@ -import cuid from 'cuid' import isEmpty from 'lodash/isEmpty' import { SiteRecoveryManagementClient, VCenter, } from '@azure/arm-recoveryservices-siterecovery' import { PagedAsyncIterableIterator } from '@azure/core-paging' -import CloudGraph from '@cloudgraph/sdk' +import CloudGraph, { generateUniqueId } from '@cloudgraph/sdk' import azureLoggerText from '../../properties/logger' import { AzureServiceInput } from '../../types' import { tryCatchWrapper } from '../../utils/index' @@ -68,7 +67,11 @@ export default async ({ const { ...rest } = center replicationCenters.push({ ...rest, - id: cuid(), + id: generateUniqueId({ + ...rest, + region: regionMap.global, + resourceGroupId, + }), region: regionMap.global, resourceGroupId, }) diff --git a/src/services/replicationCenters/format.ts b/src/services/replicationCenters/format.ts index f6fbfe18..87b62a2d 100644 --- a/src/services/replicationCenters/format.ts +++ b/src/services/replicationCenters/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureReplicationCenter } from '../../types/generated' import { RawAzureReplicationCenter } from './data' @@ -26,10 +26,14 @@ export default ({ ...properties, healthErrors: properties?.healthErrors?.map(error => ({ ...error, - id: cuid(), + id: generateUniqueId({ + ...error, + }), creationTimeUtc: error?.creationTimeUtc?.toISOString(), innerHealthErrors: error?.innerHealthErrors?.map(innerError => ({ - id: cuid(), + id: generateUniqueId({ + ...innerError, + }), ...innerError, creationTimeUtc: innerError?.creationTimeUtc?.toISOString(), })), diff --git a/src/services/replicationNetworks/data.ts b/src/services/replicationNetworks/data.ts index 3b811efc..9511d13e 100644 --- a/src/services/replicationNetworks/data.ts +++ b/src/services/replicationNetworks/data.ts @@ -1,11 +1,10 @@ -import cuid from 'cuid' import isEmpty from 'lodash/isEmpty' import { SiteRecoveryManagementClient, Network, } from '@azure/arm-recoveryservices-siterecovery' import { PagedAsyncIterableIterator } from '@azure/core-paging' -import CloudGraph from '@cloudgraph/sdk' +import CloudGraph, { generateUniqueId } from '@cloudgraph/sdk' import azureLoggerText from '../../properties/logger' import { AzureServiceInput } from '../../types' import { tryCatchWrapper } from '../../utils/index' @@ -68,7 +67,11 @@ export default async ({ const { ...rest } = network replicationNetworks.push({ ...rest, - id: cuid(), + id: generateUniqueId({ + ...rest, + region: regionMap.global, + resourceGroupId, + }), region: regionMap.global, resourceGroupId, }) diff --git a/src/services/replicationNetworks/format.ts b/src/services/replicationNetworks/format.ts index 7a8d2b6f..80368460 100644 --- a/src/services/replicationNetworks/format.ts +++ b/src/services/replicationNetworks/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureReplicationNetwork } from '../../types/generated' import { RawAzureReplicationNetwork } from './data' @@ -26,7 +26,10 @@ export default ({ ...properties, subnets: properties?.subnets?.map(subnet => ({ ...subnet, - id: cuid(), + id: generateUniqueId({ + name: subnet.name, + friendlyName: subnet.friendlyName, + }), })), }, } diff --git a/src/services/replicationPolicies/data.ts b/src/services/replicationPolicies/data.ts index d6e0ebf5..780e1be2 100644 --- a/src/services/replicationPolicies/data.ts +++ b/src/services/replicationPolicies/data.ts @@ -1,11 +1,10 @@ -import cuid from 'cuid' import isEmpty from 'lodash/isEmpty' import { SiteRecoveryManagementClient, Policy, } from '@azure/arm-recoveryservices-siterecovery' import { PagedAsyncIterableIterator } from '@azure/core-paging' -import CloudGraph from '@cloudgraph/sdk' +import CloudGraph, { generateUniqueId } from '@cloudgraph/sdk' import azureLoggerText from '../../properties/logger' import { AzureServiceInput } from '../../types' import { tryCatchWrapper } from '../../utils/index' @@ -68,7 +67,11 @@ export default async ({ const { ...rest } = policy replicationPolicies.push({ ...rest, - id: cuid(), + id: generateUniqueId({ + ...rest, + region: regionMap.global, + resourceGroupId, + }), region: regionMap.global, resourceGroupId, }) diff --git a/src/services/securityAssesments/format.ts b/src/services/securityAssesments/format.ts index b570bded..d21064ca 100644 --- a/src/services/securityAssesments/format.ts +++ b/src/services/securityAssesments/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { AzureSecurityAssesment } from '../../types/generated' import { toCamel } from '../../utils' import { RawAzureSecurityAssesment } from './data' @@ -32,7 +31,7 @@ export default ({ value: v, })) return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/securityContacts/format.ts b/src/services/securityContacts/format.ts index f3c4bf85..cb43493d 100644 --- a/src/services/securityContacts/format.ts +++ b/src/services/securityContacts/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { RawAzureSecurityContact } from './data' import { AzureSecurityContact } from '../../types/generated' @@ -20,7 +19,7 @@ export default ({ alertsToAdmins, } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/securityGroup/format.ts b/src/services/securityGroup/format.ts index c964cc4d..da117ee2 100644 --- a/src/services/securityGroup/format.ts +++ b/src/services/securityGroup/format.ts @@ -1,5 +1,4 @@ import { ApplicationSecurityGroup, SecurityRule } from '@azure/arm-network' -import cuid from 'cuid' import { AzureNetworkSecurityGroup, AzureNetworkSecurityGroupApplication, @@ -13,7 +12,7 @@ const normalizeApplicationSecurityGroups = ( asgArr: Array ): Array => asgArr.map(({ id: asgId, ...restData }) => ({ - id: asgId || cuid(), + id: asgId, ...restData, })) @@ -27,7 +26,7 @@ const normalizeSecurityRules = ( destinationApplicationSecurityGroups: dASG = [], ...dataSR }) => ({ - id: sgId || cuid(), + id: sgId, ...dataSR, destinationApplicationSecurityGroups: normalizeApplicationSecurityGroups(dASG), @@ -54,7 +53,7 @@ const normalizeFlowLogs = ( format, flowAnalyticsConfiguration, }) => ({ - id: flowLogId || cuid(), + id: flowLogId, name, type, etag, @@ -111,7 +110,7 @@ export default ({ flowLogs = [], } = service return { - id: id || cuid(), + id, subscriptionId, name, type, diff --git a/src/services/securityPricings/format.ts b/src/services/securityPricings/format.ts index 6d5df5f7..06206fdd 100644 --- a/src/services/securityPricings/format.ts +++ b/src/services/securityPricings/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { RawAzureSecurityPricing } from './data' import { AzureSecurityPricing } from '../../types/generated' @@ -18,7 +17,7 @@ export default ({ freeTrialRemainingTime } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/securitySettings/format.ts b/src/services/securitySettings/format.ts index 67151efd..a460de1b 100644 --- a/src/services/securitySettings/format.ts +++ b/src/services/securitySettings/format.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import { RawAzureSecuritySetting } from './data' import { AzureSecuritySetting } from '../../types/generated' @@ -18,7 +17,7 @@ export default ({ enabled } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/serviceBus/format.ts b/src/services/serviceBus/format.ts index 1ba1d3ce..456da03a 100644 --- a/src/services/serviceBus/format.ts +++ b/src/services/serviceBus/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { Encryption } from '@azure/arm-servicebus' import { isEmpty } from 'lodash' import { @@ -17,7 +17,7 @@ const formatEncryption = ( const { keyVaultProperties, ...rest } = encryption return { keyVaultProperties: - keyVaultProperties?.map(kv => ({ id: cuid(), ...kv })) || [], + keyVaultProperties?.map(kv => ({ id: generateUniqueId(kv), ...kv })) || [], ...rest, } } @@ -52,7 +52,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, subscriptionId: account, @@ -64,7 +64,7 @@ export default ({ userAssignedIdentities: Object.keys( identity?.userAssignedIdentities ?? {} ).map(key => ({ - id: cuid(), + id: generateUniqueId({id, key}), key, value: identity?.userAssignedIdentities[key], })), @@ -80,7 +80,7 @@ export default ({ privateEndpointConnections: privateEndpointConnections?.map( ({ id: endpointId, systemData, ...pe }) => ({ - id: endpointId || cuid(), + id: endpointId, ...transformSystemData(systemData), ...pe, }) diff --git a/src/services/sqlServers/format.ts b/src/services/sqlServers/format.ts index af717f45..63531a37 100644 --- a/src/services/sqlServers/format.ts +++ b/src/services/sqlServers/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureSqlServer, AzureSqlServerAdAdministrator, @@ -55,7 +55,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, region, subscriptionId: account, @@ -68,7 +68,10 @@ export default ({ ? { userAssignedIdentities: Object.keys(userAssignedIdentities).map( key => ({ - id: cuid(), + id: generateUniqueId({ + key, + value: userAssignedIdentities[key], + }), key, value: userAssignedIdentities[key], }) @@ -94,7 +97,7 @@ export default ({ provisioningState, } = {}, }): AzureSqlServerPrivateEndpointConnection => ({ - id: privateEndpointConnectionId ?? cuid(), + id: privateEndpointConnectionId, properties: { privateEndpointId: privateEndpoint.id, privateLinkServiceConnectionState: { @@ -124,38 +127,39 @@ export default ({ startIpAddress, endIpAddress, }): AzureSqlServerFirewallRule => ({ - id: firewallRuleId ?? cuid(), + id: firewallRuleId, name: firewallRuleName, type: firewallRuleType, startIpAddress, endIpAddress, }) ) ?? [], - serverSecurityAlertPolicies: serverSecurityAlertPolicies?.map( - ({ - id: srvSecurityAlertPolicyId, - creationTime, - name: srvSecurityAlertPolicyName, - type: srvSecurityAlertPolicyType, - state: srvSecurityAlertPolicyState, - disabledAlerts = [], - emailAddresses = [], - emailAccountAdmins, - storageEndpoint, - retentionDays, - }): AzureSqlServerSecurityAlertPolicy => ({ - id: srvSecurityAlertPolicyId ?? cuid(), - name: srvSecurityAlertPolicyName, - type: srvSecurityAlertPolicyType, - state: srvSecurityAlertPolicyState, - disabledAlerts, - emailAddresses, - emailAccountAdmins, - storageEndpoint, - retentionDays, - creationTime: creationTime?.toISOString(), - }) - ) ?? [], + serverSecurityAlertPolicies: + serverSecurityAlertPolicies?.map( + ({ + id: srvSecurityAlertPolicyId, + creationTime, + name: srvSecurityAlertPolicyName, + type: srvSecurityAlertPolicyType, + state: srvSecurityAlertPolicyState, + disabledAlerts = [], + emailAddresses = [], + emailAccountAdmins, + storageEndpoint, + retentionDays, + }): AzureSqlServerSecurityAlertPolicy => ({ + id: srvSecurityAlertPolicyId, + name: srvSecurityAlertPolicyName, + type: srvSecurityAlertPolicyType, + state: srvSecurityAlertPolicyState, + disabledAlerts, + emailAddresses, + emailAccountAdmins, + storageEndpoint, + retentionDays, + creationTime: creationTime?.toISOString(), + }) + ) ?? [], adAdministrators: adAdministrators?.map( ({ @@ -166,7 +170,7 @@ export default ({ sid, tenantId: adAdministratorTenantId, }): AzureSqlServerAdAdministrator => ({ - id: adAdministratorId ?? cuid(), + id: adAdministratorId, name: adAdministratorName, type: adAdministratorType, administratorType: adAdministratorAdminType, @@ -189,7 +193,7 @@ export default ({ thumbprint, autoRotationEnabled, }): AzureSqlServerEncryptionProtector => ({ - id: encryptionProtectorId ?? cuid(), + id: encryptionProtectorId, name: encryptionProtectorName, type: encryptionProtectorType, kind: encryptionProtectorKind, @@ -202,54 +206,56 @@ export default ({ autoRotationEnabled, }) ) ?? [], - serverBlobAuditingPolicies: serverBlobAuditingPolicies?.map( - ({ - id: serverBlobAuditingPolicyId, - name: serverBlobAuditingPolicyName, - type: serverBlobAuditingPolicyType, - isDevopsAuditEnabled, - retentionDays, - auditActionsAndGroups, - isStorageSecondaryKeyInUse, - isAzureMonitorTargetEnabled, - queueDelayMs, - state: serverBlobAuditingPolicyState, - storageEndpoint, - storageAccountSubscriptionId, - }): AzureSqlServerBlobAuditingPolicy => ({ - id: serverBlobAuditingPolicyId || cuid(), - name: serverBlobAuditingPolicyName, - type: serverBlobAuditingPolicyType, - isDevopsAuditEnabled, - retentionDays, - auditActionsAndGroups, - isStorageSecondaryKeyInUse, - isAzureMonitorTargetEnabled, - queueDelayMs, - state: serverBlobAuditingPolicyState, - storageEndpoint, - storageAccountSubscriptionId, - }) - ) ?? [], - vulnerabilityAssessments: vulnerabilityAssessments?.map( - ({ - id: vaId, - name: vaName, - type: vaType, - storageContainerPath, - recurringScans: { isEnabled, emailSubscriptionAdmins, emails = [] }, - }): AzureSqlServerVulnerabilityAssessment => ({ - id: vaId ?? cuid(), - name: vaName, - type: vaType, - storageContainerPath, - recurringScans: { - isEnabled, - emailSubscriptionAdmins, - emails, - }, - }) - ) ?? [], + serverBlobAuditingPolicies: + serverBlobAuditingPolicies?.map( + ({ + id: serverBlobAuditingPolicyId, + name: serverBlobAuditingPolicyName, + type: serverBlobAuditingPolicyType, + isDevopsAuditEnabled, + retentionDays, + auditActionsAndGroups, + isStorageSecondaryKeyInUse, + isAzureMonitorTargetEnabled, + queueDelayMs, + state: serverBlobAuditingPolicyState, + storageEndpoint, + storageAccountSubscriptionId, + }): AzureSqlServerBlobAuditingPolicy => ({ + id: serverBlobAuditingPolicyId, + name: serverBlobAuditingPolicyName, + type: serverBlobAuditingPolicyType, + isDevopsAuditEnabled, + retentionDays, + auditActionsAndGroups, + isStorageSecondaryKeyInUse, + isAzureMonitorTargetEnabled, + queueDelayMs, + state: serverBlobAuditingPolicyState, + storageEndpoint, + storageAccountSubscriptionId, + }) + ) ?? [], + vulnerabilityAssessments: + vulnerabilityAssessments?.map( + ({ + id: vaId, + name: vaName, + type: vaType, + storageContainerPath, + recurringScans: { isEnabled, emailSubscriptionAdmins, emails = [] }, + }): AzureSqlServerVulnerabilityAssessment => ({ + id: vaId, + name: vaName, + type: vaType, + storageContainerPath, + recurringScans: { + isEnabled, + emailSubscriptionAdmins, + emails, + }, + }) + ) ?? [], tags: formatTagsFromMap(Tags), } } diff --git a/src/services/storageAccount/format.ts b/src/services/storageAccount/format.ts index 6175fa8e..672e064e 100644 --- a/src/services/storageAccount/format.ts +++ b/src/services/storageAccount/format.ts @@ -4,6 +4,7 @@ import { IPRule, PrivateEndpointConnection, } from '@azure/arm-storage' +import { generateUniqueId } from '@cloudgraph/sdk' import cuid from 'cuid' import t from '../../properties/translations' @@ -23,7 +24,11 @@ const formatPrivateEndpointConnection = ({ provisioningState, }: PrivateEndpointConnection): AzureStorageAccountPrivateEndpointConnection => { return { - id: cuid(), + id: generateUniqueId({ + privateEndpoint, + privateLinkServiceConnectionState, + provisioningState, + }), privateEndpointId: privateEndpoint?.id || '', privateLinkServiceConnectionStateStatus: privateLinkServiceConnectionState?.status || '', @@ -40,7 +45,10 @@ const formatResourceAccessRule = ({ resourceId, }: ResourceAccessRule): AzureStorageAccountResourceAccessRule => { return { - id: cuid(), + id: generateUniqueId({ + tenantId, + resourceId, + }), tenantId, resourceId, } @@ -51,7 +59,11 @@ const formatVirtualNetworkRule = ({ state, }: VirtualNetworkRule): AzureStorageAccountVirtualNetworkRule => { return { - id: cuid(), + id: generateUniqueId({ + virtualNetworkResourceId, + action, + state, + }), virtualNetworkResourceId, action, state, @@ -62,7 +74,10 @@ const formatIpRule = ({ action, }: IPRule): AzureStorageAccountIpRule => { return { - id: cuid(), + id: generateUniqueId({ + iPAddressOrRange, + action, + }), iPAddressOrRange, action, } @@ -115,7 +130,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, subscriptionId: account, resourceGroupId, @@ -257,11 +272,13 @@ export default ({ region, tags: formatTagsFromMap(Tags), blobServiceProperties: { - id: blobServiceProperties?.id || cuid(), + id: blobServiceProperties?.id, name: blobServiceProperties?.name, type: blobServiceProperties?.type, corsRules: blobServiceProperties?.cors?.corsRules?.map(({ ...rest }) => ({ - id: cuid(), + id: generateUniqueId({ + ...rest, + }), ...rest, })), deleteRetentionPolicyEnabled: @@ -272,14 +289,22 @@ export default ({ skuTier: blobServiceProperties?.sku?.tier, }, queueServiceProperties: { - logging: queueServiceProperties ? { - version: queueServiceProperties.queueAnalyticsLogging?.version, - read : queueServiceProperties.queueAnalyticsLogging?.read ?? false, - write : queueServiceProperties.queueAnalyticsLogging?.write ?? false, - delete : queueServiceProperties.queueAnalyticsLogging?.deleteProperty ?? false, - retentionPolicyEnabled : queueServiceProperties.queueAnalyticsLogging?.retentionPolicy?.enabled ?? false, - retentionPolicyDays: queueServiceProperties.queueAnalyticsLogging?.retentionPolicy?.days - } : {}, + logging: queueServiceProperties + ? { + version: queueServiceProperties.queueAnalyticsLogging?.version, + read: queueServiceProperties.queueAnalyticsLogging?.read ?? false, + write: queueServiceProperties.queueAnalyticsLogging?.write ?? false, + delete: + queueServiceProperties.queueAnalyticsLogging?.deleteProperty ?? + false, + retentionPolicyEnabled: + queueServiceProperties.queueAnalyticsLogging?.retentionPolicy + ?.enabled ?? false, + retentionPolicyDays: + queueServiceProperties.queueAnalyticsLogging?.retentionPolicy + ?.days, + } + : {}, }, } } diff --git a/src/services/storageBlob/format.ts b/src/services/storageBlob/format.ts index ebc3186b..9ec2b313 100644 --- a/src/services/storageBlob/format.ts +++ b/src/services/storageBlob/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { BlobProperties, ObjectReplicationPolicy, @@ -30,7 +30,10 @@ const formatReplicationPolicy = ({ rules, }: ObjectReplicationPolicy): AzureStorageBlobReplicationPolicy => { return { - id: cuid(), + id: generateUniqueId({ + policyId, + rules, + }), policyId, rules: rules?.map(rule => formatReplicationRule(rule)) || [], } diff --git a/src/services/storageContainer/format.ts b/src/services/storageContainer/format.ts index 1c30ebeb..0db7f682 100644 --- a/src/services/storageContainer/format.ts +++ b/src/services/storageContainer/format.ts @@ -1,5 +1,5 @@ import { UpdateHistoryProperty, TagProperty } from '@azure/arm-storage' -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { AzureStorageContainer, AzureStorageContainerImmutabilityPolicyUpdateHistory, @@ -17,7 +17,14 @@ const formatImmutabilityPolicyUpdateHistory = ({ upn, }: UpdateHistoryProperty): AzureStorageContainerImmutabilityPolicyUpdateHistory => { return { - id: cuid(), + id: generateUniqueId({ + update, + immutabilityPeriodSinceCreationInDays, + timestamp, + objectIdentifier, + tenantId, + upn, + }), update, immutabilityPeriodSinceCreationInDays, timestamp: timestamp?.toUTCString() || '', @@ -35,7 +42,13 @@ const formatLegalHoldTag = ({ upn, }: TagProperty): AzureStorageContainerLegalHoldTag => { return { - id: cuid(), + id: generateUniqueId({ + tag, + timestamp, + objectIdentifier, + tenantId, + upn, + }), tag, timestamp: timestamp?.toUTCString() || '', objectIdentifier, @@ -74,7 +87,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, region, diff --git a/src/services/synapseBigDataPools/data.ts b/src/services/synapseBigDataPools/data.ts index 5c0b874f..509b13cb 100644 --- a/src/services/synapseBigDataPools/data.ts +++ b/src/services/synapseBigDataPools/data.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import isEmpty from 'lodash/isEmpty' import { SynapseManagementClient, @@ -69,7 +68,7 @@ export default async ({ const { id, tags, ...rest } = bigDataPool bigDataPools.push({ ...rest, - id: id || cuid(), + id, region: regionMap.global, resourceGroupId, Tags: tags || {}, diff --git a/src/services/synapseBigDataPools/format.ts b/src/services/synapseBigDataPools/format.ts index 04cea9d5..72d9dff0 100644 --- a/src/services/synapseBigDataPools/format.ts +++ b/src/services/synapseBigDataPools/format.ts @@ -1,7 +1,8 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { RawAzureSynapseBigDataPool } from './data' import { AzureSynapseBigDataPool } from '../../types/generated' + export default ({ service, account: subscriptionId @@ -34,7 +35,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, region, @@ -52,9 +53,13 @@ export default ({ ...libraryRequirements, time: libraryRequirements?.time?.toISOString(), }, - customLibraries: customLibraries?.map(lib => ({ + customLibraries: customLibraries?.map((lib, index) => ({ ...lib, - id: cuid(), + id: generateUniqueId({ + name: lib.name, + path: lib.path, + index, + }), uploadedTimestamp: lib?.uploadedTimestamp?.toISOString(), })), sparkConfigProperties: { diff --git a/src/services/synapseSqlPools/data.ts b/src/services/synapseSqlPools/data.ts index 5807e9c8..e3af9158 100644 --- a/src/services/synapseSqlPools/data.ts +++ b/src/services/synapseSqlPools/data.ts @@ -1,4 +1,3 @@ -import cuid from 'cuid' import isEmpty from 'lodash/isEmpty' import { SynapseManagementClient, Workspace, SqlPool } from '@azure/arm-synapse' import { PagedAsyncIterableIterator } from '@azure/core-paging' @@ -65,7 +64,7 @@ export default async ({ const { id, tags, ...rest } = sqlPool sqlPools.push({ ...rest, - id: id || cuid(), + id, region: regionMap.global, resourceGroupId, Tags: tags || {}, diff --git a/src/services/synapseSqlPools/format.ts b/src/services/synapseSqlPools/format.ts index 196ae838..5f030337 100644 --- a/src/services/synapseSqlPools/format.ts +++ b/src/services/synapseSqlPools/format.ts @@ -1,6 +1,6 @@ -import cuid from 'cuid' import { RawAzureSynapseSqlPool } from './data' import { AzureSynapseSqlPool } from '../../types/generated' +import { formatTagsFromMap } from '../../utils/format' export default ({ service, @@ -30,7 +30,7 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, region, @@ -47,5 +47,6 @@ export default ({ creationDate: creationDate?.toISOString(), storageAccountType, sourceDatabaseDeletionDate: sourceDatabaseDeletionDate?.toISOString(), + tags: formatTagsFromMap(Tags), } } diff --git a/src/services/synapseWorkspaces/format.ts b/src/services/synapseWorkspaces/format.ts index 7af48996..711c6189 100644 --- a/src/services/synapseWorkspaces/format.ts +++ b/src/services/synapseWorkspaces/format.ts @@ -1,13 +1,13 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { RawAzureSynapseWorkspace } from './data' import { AzureSynapseWorkspace } from '../../types/generated' import { formatTagsFromMap } from '../../utils/format' export default ({ service, - account: subscriptionId + account: subscriptionId, }: { - service : RawAzureSynapseWorkspace + service: RawAzureSynapseWorkspace account: string }): AzureSynapseWorkspace => { const { @@ -38,15 +38,21 @@ export default ({ } = service return { - id: id || cuid(), + id, name, type, region, subscriptionId, identity: { ...identity, - userAssignedIdentities: Object.entries(identity?.userAssignedIdentities || {}).map(([key, value]) => ({ - id: cuid(), + userAssignedIdentities: Object.entries( + identity?.userAssignedIdentities || {} + ).map(([key, value]) => ({ + id: generateUniqueId({ + id, + key, + value, + }), key, value, })), @@ -60,7 +66,7 @@ export default ({ managedVirtualNetwork, privateEndpointConnections: privateEndpointConnections?.map(connection => ({ ...connection, - id: cuid(), + id: connection.id, })), encryption, workspaceUID, diff --git a/src/services/trafficManagerProfile/format.ts b/src/services/trafficManagerProfile/format.ts index ea3131a3..d573b1d6 100644 --- a/src/services/trafficManagerProfile/format.ts +++ b/src/services/trafficManagerProfile/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { formatTagsFromMap } from '../../utils/format' import { RawAzureTrafficManagerProfile } from './data' import { AzureTrafficManagerProfile } from '../../types/generated' @@ -28,7 +28,7 @@ export default ({ maxReturn, } = service return { - id: id || cuid(), + id, subscriptionId: account, name, type, @@ -50,22 +50,32 @@ export default ({ customHeaders: monitorConfig.customHeaders?.map( ({ name: customHeadersName, value: customHeadersValue }) => ({ - id: cuid(), + id: generateUniqueId({ + id, + customHeadersName, + customHeadersValue, + }), name: customHeadersName, value: customHeadersValue, }) ) || [], expectedStatusCodeRanges: - monitorConfig.expectedStatusCodeRanges?.map(({ min, max }) => ({ - id: cuid(), - min, - max, - })) || [], + monitorConfig.expectedStatusCodeRanges?.map( + ({ min, max }, index) => ({ + id: generateUniqueId({ + id, + index, + }), + min, + max, + }) + ) || [], } : {}, endpoints: endpoints.map( ({ + id: endpointId, targetResourceId, target, endpointStatus, @@ -80,7 +90,7 @@ export default ({ subnets = [], customHeaders = [], }) => ({ - id: cuid(), + id: endpointId, targetResourceId, target, endpointStatus, @@ -92,8 +102,11 @@ export default ({ minChildEndpointsIPv4, minChildEndpointsIPv6, geoMapping, - subnets: subnets.map(({ first, last, scope }) => ({ - id: cuid(), + subnets: subnets.map(({ first, last, scope }, index) => ({ + id: generateUniqueId({ + endpointId, + index, + }), first, last, scope, @@ -101,7 +114,7 @@ export default ({ customHeaders: customHeaders.map( ({ name: customHeadersName, value: customHeadersValue }) => ({ - id: cuid(), + id: generateUniqueId({ customHeadersName, customHeadersValue }), name: customHeadersName, value: customHeadersValue, }) diff --git a/src/services/virtualMachineScaleSet/format.ts b/src/services/virtualMachineScaleSet/format.ts index 6f1e9e78..a4eee715 100644 --- a/src/services/virtualMachineScaleSet/format.ts +++ b/src/services/virtualMachineScaleSet/format.ts @@ -1,4 +1,4 @@ -import cuid from 'cuid' +import { generateUniqueId } from '@cloudgraph/sdk' import { isEmpty } from 'lodash' import { VirtualMachineScaleSetOSProfile, @@ -40,14 +40,16 @@ const formatOsProfile = ( ? { additionalUnattendContent: windowsConfiguration.additionalUnattendContent?.map(auc => ({ - id: cuid(), + id: generateUniqueId({ auc }), ...auc, })) || [], winRM: windowsConfiguration.winRM ? { listeners: windowsConfiguration.winRM.listeners?.map(l => ({ - id: cuid(), + id: generateUniqueId({ + ...l, + }), ...l, })) || [], } @@ -61,7 +63,9 @@ const formatOsProfile = ( ? { publicKeys: linuxConfiguration.ssh.publicKeys?.map(pk => ({ - id: cuid(), + id: generateUniqueId({ + ...pk, + }), ...pk, })) || [], } @@ -70,13 +74,15 @@ const formatOsProfile = ( : {}, secrets: secrets?.map(s => ({ - id: cuid(), + id: generateUniqueId({ ...s }), sourceVault: { - id: s.sourceVault?.id || cuid(), + id: s.sourceVault?.id, }, vaultCertificates: s.vaultCertificates?.map(vc => ({ - id: cuid(), + id: generateUniqueId({ + ...vc, + }), ...vc, })) || [], })) || [], @@ -95,7 +101,7 @@ const formatStorageProfile = ( return { imageReference: imageReference ? { - id: imageReference.id || cuid(), + id: imageReference.id, publisher: imageReference.publisher, offer: imageReference.offer, sku: imageReference.sku, @@ -138,10 +144,10 @@ const formatNetworkProfile = ( ...networkInterface }) => { return { - id: id || cuid(), + id, ...networkInterface, networkSecurityGroup: { - id: networkSecurityGroup?.id || cuid(), + id: networkSecurityGroup?.id, }, ipConfigurations: ipConfigurations?.map( @@ -154,27 +160,27 @@ const formatNetworkProfile = ( loadBalancerInboundNatPools, ...ipConfiguration }) => ({ - id: cuid(), + id: ipConfiguration.id, ...ipConfiguration, subnetId: subnet?.id, applicationGatewayBackendAddressPools: applicationGatewayBackendAddressPools?.map(agb => ({ - id: agb.id || cuid(), + id: agb.id, ...agb, })) || [], applicationSecurityGroups: applicationSecurityGroups?.map(asg => ({ - id: asg.id || cuid(), + id: asg.id, ...asg, })) || [], loadBalancerBackendAddressPools: loadBalancerBackendAddressPools?.map(lbb => ({ - id: lbb.id || cuid(), + id: lbb.id, ...lbb, })) || [], loadBalancerInboundNatPools: loadBalancerInboundNatPools?.map(lbi => ({ - id: lbi.id || cuid(), + id: lbi.id, ...lbi, })) || [], }) @@ -196,7 +202,7 @@ const formatExtensionProfile = ( return ( extensionsList?.map(e => ({ - id: e.id || cuid(), + id: e.id, name: e.name, forceUpdateTag: e.forceUpdateTag, type: e.type, @@ -281,7 +287,7 @@ export default ({ // If the id is not present use uniqueId // uniqueId is an additional unique Guid that identifies the resource // if uniqueId doesn't exist, then create a random uid to ensure id consistency for connections - id: id || uniqueId || cuid(), + id: id || uniqueId, name, region, subscriptionId: account, diff --git a/yarn.lock b/yarn.lock index 55da0bd1..94360ee9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1294,10 +1294,10 @@ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cloudgraph/sdk@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@cloudgraph/sdk/-/sdk-0.20.0.tgz#fb3febad5934c53c39c509783abc63a98637c94d" - integrity sha512-34vw0bf/8rsnPy8fBSRFp0muOLnEYkpy2zfT/fL7WCqy1+4POwUqErGkOM4JUU83N7Lwn5cz9woR8DbhGHfU9A== +"@cloudgraph/sdk@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@cloudgraph/sdk/-/sdk-0.22.0.tgz#c2a4e817a70ae9b123e0fcd401d55f79e24386ab" + integrity sha512-EJ7vLgrMRh52tOH14TKHgOI62BYy9ZH4WuEhcVr8S8RDnLxBO1XsXOKKjIsE+SmawMBzck8qxiEKttppalhJ8g== dependencies: "@graphql-tools/load-files" "^6.5.3" "@graphql-tools/merge" "^8.2.1" @@ -1307,7 +1307,6 @@ inquirer "^8.1.2" jsonpath "^1.1.1" lodash "^4.17.21" - node-jq "^2.3.0" ora "^5.4.1" "@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2": @@ -1571,12 +1570,12 @@ tslib "~2.3.0" "@graphql-tools/merge@^8.2.1": - version "8.2.1" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz" - integrity sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA== + version "8.3.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.6.tgz#97a936d4c8e8f935e58a514bb516c476437b5b2c" + integrity sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ== dependencies: - "@graphql-tools/utils" "^8.5.1" - tslib "~2.3.0" + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" "@graphql-tools/merge@^8.2.3": version "8.2.3" @@ -1663,6 +1662,13 @@ value-or-promise "^1.0.11" ws "^8.3.0" +"@graphql-tools/utils@8.12.0", "@graphql-tools/utils@^8.5.1": + version "8.12.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.12.0.tgz#243bc4f5fc2edbc9e8fd1038189e57d837cbe31f" + integrity sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw== + dependencies: + tslib "^2.4.0" + "@graphql-tools/utils@8.6.1", "@graphql-tools/utils@^8.1.1", "@graphql-tools/utils@^8.3.0", "@graphql-tools/utils@^8.5.2", "@graphql-tools/utils@^8.5.3", "@graphql-tools/utils@^8.5.4", "@graphql-tools/utils@^8.6.0": version "8.6.1" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.1.tgz" @@ -1670,13 +1676,6 @@ dependencies: tslib "~2.3.0" -"@graphql-tools/utils@^8.5.1": - version "8.5.2" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.2.tgz" - integrity sha512-wxA51td/759nQziPYh+HxE0WbURRufrp1lwfOYMgfK4e8Aa6gCa1P1p6ERogUIm423NrIfOVau19Q/BBpHdolw== - dependencies: - tslib "~2.3.0" - "@graphql-tools/utils@^8.6.2": version "8.6.2" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.2.tgz" @@ -1695,18 +1694,6 @@ tslib "~2.3.0" value-or-promise "1.0.11" -"@hapi/hoek@^9.0.0": - version "9.2.1" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz" - integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" @@ -2379,33 +2366,11 @@ lodash "^4.17.4" read-pkg-up "^7.0.0" -"@sideway/address@^4.1.3": - version "4.1.3" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz" - integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" @@ -2857,7 +2822,7 @@ ansi-regex@^3.0.0: ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^2.2.1: @@ -2874,7 +2839,7 @@ ansi-styles@^3.2.1: ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" @@ -2920,13 +2885,6 @@ anymatch@^3.0.3, anymatch@~3.1.2: resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - archy@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" @@ -3214,7 +3172,7 @@ balanced-match@^1.0.0: base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: @@ -3235,17 +3193,6 @@ before-after-hook@^2.2.0: resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz" - integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - bin-links@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49" @@ -3275,17 +3222,9 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bl@^1.0.0: - version "1.2.3" - resolved "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz" - integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - bl@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -3374,40 +3313,17 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.2.1, buffer@^5.5.0, buffer@^5.7.0: +buffer@^5.5.0, buffer@^5.7.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -3485,19 +3401,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" @@ -3573,16 +3476,6 @@ cardinal@^2.1.1: ansicolors "~0.3.2" redeyed "~2.1.0" -caw@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -3657,7 +3550,7 @@ char-regex@^1.0.2: chardet@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== chokidar@^1.6.0: @@ -3745,15 +3638,15 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-spinners@^2.5.0: - version "2.6.1" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-table3@^0.6.1: version "0.6.1" @@ -3782,7 +3675,7 @@ cli-truncate@^0.2.1: cli-width@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== cliui@^6.0.0: @@ -3803,7 +3696,7 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone-response@1.0.2, clone-response@^1.0.2: +clone-response@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= @@ -3812,8 +3705,8 @@ clone-response@1.0.2, clone-response@^1.0.2: clone@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== cmd-shim@^5.0.0: version "5.0.0" @@ -3854,7 +3747,7 @@ color-convert@^1.9.0: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" @@ -3866,7 +3759,7 @@ color-name@1.1.3: color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-support@^1.1.3: @@ -3904,11 +3797,6 @@ combined-stream@^1.0.6, combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@^2.8.1: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^8.2.0: version "8.3.0" resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" @@ -3942,14 +3830,6 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - confusing-browser-globals@^1.0.10: version "1.0.11" resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz" @@ -3969,13 +3849,6 @@ constant-case@^3.0.4: tslib "^2.0.3" upper-case "^2.0.2" -content-disposition@^0.5.2: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - conventional-changelog-angular@^5.0.0: version "5.0.13" resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz" @@ -4038,7 +3911,7 @@ core-js@^2.4.0: core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig-toml-loader@1.0.0: @@ -4088,15 +3961,6 @@ cross-fetch@^3.0.4, cross-fetch@^3.0.6: dependencies: node-fetch "2.6.7" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -4165,9 +4029,9 @@ date-fns@^1.27.2: integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== date-fns@^2.25.0: - version "2.28.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== + version "2.29.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" + integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== dateformat@^3.0.0: version "3.0.3" @@ -4232,69 +4096,16 @@ decimal.js@^10.2.1: decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== -decompress-response@^3.2.0, decompress-response@^3.3.0: +decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== dependencies: mimic-response "^1.0.0" -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0, decompress@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" @@ -4316,9 +4127,9 @@ deepmerge@^4.2.2: integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" @@ -4486,40 +4297,6 @@ dotenv@^10.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -download@^6.2.2: - version "6.2.5" - resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz" - integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -download@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/download/-/download-8.0.0.tgz" - integrity sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA== - dependencies: - archive-type "^4.0.0" - content-disposition "^0.5.2" - decompress "^4.2.1" - ext-name "^5.0.0" - file-type "^11.1.0" - filenamify "^3.0.0" - get-stream "^4.1.0" - got "^8.3.1" - make-dir "^2.1.0" - p-event "^2.1.0" - pify "^4.0.1" - dset@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/dset/-/dset-3.1.1.tgz" @@ -4533,9 +4310,9 @@ duplexer2@~0.1.0: readable-stream "^2.0.2" duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== duplexer@^0.1.1: version "0.1.2" @@ -4566,7 +4343,7 @@ emittery@^0.8.1: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encoding@^0.1.12, encoding@^0.1.13: @@ -4576,9 +4353,9 @@ encoding@^0.1.12, encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -4658,8 +4435,8 @@ escalade@^3.1.1: escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" @@ -4673,7 +4450,7 @@ escape-string-regexp@^4.0.0: escodegen@^1.8.1: version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" @@ -4842,8 +4619,8 @@ espree@^7.3.0, espree@^7.3.1: esprima@1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz" - integrity sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs= + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" @@ -4876,7 +4653,7 @@ estraverse@^5.1.0, estraverse@^5.2.0: esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== event-target-shim@^5.0.0: @@ -4894,19 +4671,6 @@ events@^3.0.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" @@ -4964,21 +4728,6 @@ expect@^27.4.6: jest-matcher-utils "^27.4.6" jest-message-util "^27.4.6" -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" @@ -4996,7 +4745,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: external-editor@^3.0.3: version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" @@ -5102,13 +4851,6 @@ fbjs@^3.0.0: setimmediate "^1.0.5" ua-parser-js "^0.7.30" -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - figures@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" @@ -5126,7 +4868,7 @@ figures@^2.0.0: figures@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" @@ -5138,31 +4880,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz" - integrity sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g== - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -5173,29 +4890,6 @@ filename-regex@^2.0.0: resolved "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz" integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -filenamify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz" - integrity sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - fill-range@^2.1.0: version "2.2.4" resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz" @@ -5333,7 +5027,7 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from2@^2.1.1, from2@^2.3.0: +from2@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= @@ -5346,11 +5040,6 @@ fromentries@^1.3.2: resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" @@ -5448,34 +5137,14 @@ get-package-type@^0.1.0: resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" @@ -5605,49 +5274,6 @@ globby@^11.0.0, globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" -got@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - got@^9.6.0: version "9.6.0" resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" @@ -5665,7 +5291,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -5754,26 +5380,14 @@ has-flag@^3.0.0: has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" @@ -5868,11 +5482,6 @@ html-escaper@^2.0.0: resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" @@ -5923,7 +5532,7 @@ husky@^7.0.0: iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" @@ -5937,7 +5546,7 @@ iconv-lite@^0.6.2: ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore-walk@^5.0.1: @@ -6016,11 +5625,6 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - ini@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" @@ -6031,6 +5635,11 @@ ini@^3.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.0.tgz#2f6de95006923aa75feed8894f5686165adc08f1" integrity sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw== +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + init-package-json@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz" @@ -6044,7 +5653,7 @@ init-package-json@^3.0.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^4.0.0" -inquirer@^8.0.0, inquirer@^8.1.2: +inquirer@^8.0.0: version "8.2.0" resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz" integrity sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ== @@ -6064,6 +5673,27 @@ inquirer@^8.0.0, inquirer@^8.1.2: strip-ansi "^6.0.0" through "^2.3.6" +inquirer@^8.1.2: + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" @@ -6078,14 +5708,6 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - into-stream@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz" @@ -6266,8 +5888,8 @@ is-extendable@^1.0.1: is-extglob@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww== is-extglob@^2.1.1: version "2.1.1" @@ -6288,7 +5910,7 @@ is-fullwidth-code-point@^2.0.0: is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-fn@^2.0.0: @@ -6312,16 +5934,9 @@ is-glob@^2.0.0, is-glob@^2.0.1: is-interactive@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-invalid-path@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz" - integrity sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ= - dependencies: - is-glob "^2.0.0" - is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" @@ -6334,11 +5949,6 @@ is-lower-case@^2.0.2: dependencies: tslib "^2.0.3" -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - is-negative-zero@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" @@ -6385,11 +5995,6 @@ is-obj@^2.0.0: resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - is-observable@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz" @@ -6407,10 +6012,10 @@ is-path-inside@^3.0.2: resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: +is-plain-obj@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" @@ -6464,20 +6069,15 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - is-shared-array-buffer@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" @@ -6519,7 +6119,7 @@ is-unc-path@^1.0.0: is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-upper-case@^2.0.2: @@ -6529,13 +6129,6 @@ is-upper-case@^2.0.2: dependencies: tslib "^2.0.3" -is-valid-path@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz" - integrity sha1-EQ+f90w39mPh7HkV60UfLbk6yd8= - dependencies: - is-invalid-path "^0.1.0" - is-weakref@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" @@ -6562,8 +6155,8 @@ isarray@1.0.0, isarray@~1.0.0: isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" @@ -6643,14 +6236,6 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - iterall@^1.2.1: version "1.3.0" resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz" @@ -7080,17 +6665,6 @@ jest@^27.0.6: import-local "^3.0.2" jest-cli "^27.4.7" -joi@^17.4.0: - version "17.6.0" - resolved "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz" - integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" @@ -7151,8 +6725,8 @@ jsesc@^2.5.1: json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== json-parse-better-errors@^1.0.1: version "1.0.2" @@ -7239,7 +6813,7 @@ jsonparse@^1.2.0, jsonparse@^1.3.1: jsonpath@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== dependencies: esprima "1.2.2" @@ -7306,13 +6880,6 @@ jws@^4.0.0: jwa "^2.0.0" safe-buffer "^5.0.1" -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" @@ -7371,8 +6938,8 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -7732,11 +7299,6 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" @@ -7747,14 +7309,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" @@ -7767,21 +7321,6 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-dir@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" @@ -7967,7 +7506,7 @@ micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.51.0, mime-db@^1.28.0: +mime-db@1.51.0: version "1.51.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== @@ -7991,7 +7530,7 @@ mimic-fn@^1.0.0: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0, mimic-response@^1.0.1: @@ -8163,7 +7702,7 @@ ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: @@ -8272,18 +7811,6 @@ node-int64@^0.4.0: resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -node-jq@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/node-jq/-/node-jq-2.3.4.tgz#047b1717e86b269f3cd64fcc0b44ac8dbe21cd65" - integrity sha512-Zm0kJzDHUtVdS9a3Ypq07+rQfxJ9SdbUa5hEOP9Y+gwToLPme6onIptApQgsqIMByA1FIE7sw+EKZvrmIy1Jqw== - dependencies: - bin-build "^3.0.0" - download "^8.0.0" - is-valid-path "^0.1.1" - joi "^17.4.0" - strip-final-newline "^2.0.0" - tempfile "^3.0.0" - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz" @@ -8338,15 +7865,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - normalize-url@^4.1.0: version "4.5.1" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" @@ -8371,14 +7889,6 @@ npm-bundled@^1.1.1, npm-bundled@^1.1.2: dependencies: npm-normalize-package-bin "^1.0.1" -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - npm-install-checks@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz" @@ -8448,13 +7958,6 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.1 npm-package-arg "^9.0.1" proc-log "^2.0.0" -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" @@ -8570,10 +8073,10 @@ nwsapi@^2.2.0: resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" @@ -8660,7 +8163,7 @@ onetime@^2.0.0: onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" @@ -8681,7 +8184,7 @@ opener@^1.5.2: optionator@^0.8.1: version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -8705,7 +8208,7 @@ optionator@^0.9.1: ora@^5.4.1: version "5.4.1" - resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" @@ -8720,18 +8223,8 @@ ora@^5.4.1: os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^1.0.0: version "1.1.0" @@ -8743,20 +8236,6 @@ p-each-series@^2.1.0: resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz" integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== -p-event@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz" - integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= - dependencies: - p-timeout "^1.1.1" - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - p-filter@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz" @@ -8764,16 +8243,6 @@ p-filter@^2.0.0: dependencies: p-map "^2.0.0" -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - p-is-promise@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz" @@ -8814,13 +8283,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map-series@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz" - integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= - dependencies: - p-reduce "^1.0.0" - p-map@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" @@ -8833,11 +8295,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - p-reduce@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz" @@ -8851,20 +8308,6 @@ p-retry@^4.0.0: "@types/retry" "^0.12.0" retry "^0.13.1" -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" @@ -9014,11 +8457,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" @@ -9046,11 +8484,6 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" @@ -9061,32 +8494,10 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - pify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pirates@^4.0.4: version "4.0.5" @@ -9127,18 +8538,13 @@ prelude-ls@^1.2.1: prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== preserve@^0.2.0: version "0.2.0" @@ -9183,7 +8589,7 @@ proc-log@^2.0.0, proc-log@^2.0.1: process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: @@ -9241,16 +8647,6 @@ promzard@^0.3.0: dependencies: read "1" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" @@ -9258,7 +8654,7 @@ psl@^1.1.28, psl@^1.1.33: pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -9279,15 +8675,6 @@ qrcode-terminal@^0.12.0: resolved "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" @@ -9373,14 +8760,14 @@ read@1, read@^1.0.7, read@~1.0.7: readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -9598,7 +8985,7 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@1.0.2, responselike@^1.0.2: +responselike@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= @@ -9615,7 +9002,7 @@ restore-cursor@^2.0.0: restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -9655,7 +9042,7 @@ rimraf@^3.0.0, rimraf@^3.0.2: run-async@^2.4.0: version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: @@ -9672,21 +9059,28 @@ rxjs@^6.3.3: dependencies: tslib "^1.9.0" -rxjs@^7.2.0, rxjs@^7.5.1: +rxjs@^7.2.0, rxjs@^7.5.5: + version "7.5.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" + integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== + dependencies: + tslib "^2.1.0" + +rxjs@^7.5.1: version "7.5.2" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz" integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w== dependencies: tslib "^2.1.0" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: @@ -9698,7 +9092,7 @@ safe-regex@^1.1.0: "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@>=0.6.0: @@ -9718,13 +9112,6 @@ scuid@^1.1.0: resolved "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz" integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== -seek-bzip@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - semantic-release@^19.0.2: version "19.0.2" resolved "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.2.tgz" @@ -9778,7 +9165,7 @@ semver-regex@^3.1.2: "semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: @@ -9822,13 +9209,6 @@ setimmediate@^1.0.5: resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -9836,11 +9216,6 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" @@ -9877,16 +9252,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^3.0.3: version "3.0.6" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz" integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== -signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - signale@^1.2.1: version "1.4.0" resolved "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz" @@ -10010,27 +9385,6 @@ sonic-boom@^2.1.0: dependencies: atomic-sleep "^1.0.0" -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" @@ -10164,7 +9518,7 @@ stack-utils@^2.0.3: static-eval@2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== dependencies: escodegen "^1.8.1" @@ -10190,11 +9544,6 @@ stream-combiner2@~1.1.1: duplexer2 "~0.1.0" readable-stream "^2.0.2" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - string-argv@0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz" @@ -10257,14 +9606,14 @@ string.prototype.trimstart@^1.0.4: string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" @@ -10299,7 +9648,7 @@ strip-ansi@^4.0.0: strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" @@ -10314,21 +9663,9 @@ strip-bom@^4.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-indent@^3.0.0: @@ -10348,13 +9685,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - subarg@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz" @@ -10394,7 +9724,7 @@ supports-color@^5.3.0: supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -10448,19 +9778,6 @@ table@^6.0.9: string-width "^4.2.3" strip-ansi "^6.0.1" -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: version "6.1.11" resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" @@ -10473,32 +9790,11 @@ tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - temp-dir@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz" - integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - -tempfile@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz" - integrity sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw== - dependencies: - temp-dir "^2.0.0" - uuid "^3.3.2" - tempy@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz" @@ -10559,13 +9855,8 @@ through2@~2.0.0: through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-relative-date@^1.3.0: version "1.3.0" @@ -10581,7 +9872,7 @@ title-case@^3.0.3: tmp@^0.0.33: version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" @@ -10591,11 +9882,6 @@ tmpl@1.0.5: resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -10683,13 +9969,6 @@ trim-newlines@^3.0.0: resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - ts-jest@^27.0.4: version "27.1.3" resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz" @@ -10736,11 +10015,16 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@~2.3.0: +tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.2.0, tslib@^2.3.0, tslib@~2.3.0: version "2.3.1" resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.1.0, tslib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" @@ -10748,13 +10032,6 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - tunnel@0.0.6, tunnel@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" @@ -10769,8 +10046,8 @@ type-check@^0.4.0, type-check@~0.4.0: type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" @@ -10796,7 +10073,7 @@ type-fest@^0.20.2: type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.6.0: @@ -10846,14 +10123,6 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" @@ -10861,7 +10130,7 @@ unc-path-regex@^0.1.2: underscore@1.12.1: version "1.12.1" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== undici@^4.9.3: @@ -10961,25 +10230,13 @@ url-join@^4.0.0: resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== dependencies: prepend-http "^2.0.0" -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - use@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" @@ -10987,13 +10244,8 @@ use@^3.1.0: util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" @@ -11067,8 +10319,8 @@ walker@^1.0.7: wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -11147,13 +10399,6 @@ which-module@^2.0.0: resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.9: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -11206,8 +10451,8 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" @@ -11260,7 +10505,7 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@~4.0.1: +xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -11275,11 +10520,6 @@ y18n@^5.0.5: resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" @@ -11356,14 +10596,6 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.0.0" -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - yn@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"