@decaf-ts/integrations 0.14.0 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/dist/integrations.cjs +3317 -2
- package/dist/integrations.js +3665 -2
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/calendar/CalendarService.cjs +2 -2
- package/lib/cjs/calendar/environment.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
- package/lib/cjs/calendar/index.cjs +2 -2
- package/lib/cjs/calendar/types.cjs +2 -2
- package/lib/cjs/calendar/validators/cron.cjs +2 -2
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
- package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
- package/lib/cjs/comms/discord/index.cjs +2 -2
- package/lib/cjs/comms/email/EmailService.cjs +2 -2
- package/lib/cjs/comms/email/index.cjs +2 -2
- package/lib/cjs/comms/email/mime.cjs +2 -2
- package/lib/cjs/comms/email/smtp.cjs +2 -2
- package/lib/cjs/comms/environment.cjs +2 -2
- package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
- package/lib/cjs/comms/gmail/index.cjs +2 -2
- package/lib/cjs/comms/index.cjs +2 -2
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
- package/lib/cjs/comms/outlook/index.cjs +2 -2
- package/lib/cjs/comms/slack/SlackService.cjs +2 -2
- package/lib/cjs/comms/slack/index.cjs +2 -2
- package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
- package/lib/cjs/comms/teams/index.cjs +2 -2
- package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
- package/lib/cjs/comms/telegram/index.cjs +2 -2
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
- package/lib/cjs/comms/whatsapp/index.cjs +2 -2
- package/lib/cjs/devops/environment.cjs +2 -2
- package/lib/cjs/devops/github/GithubService.cjs +2 -2
- package/lib/cjs/devops/github/index.cjs +2 -2
- package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
- package/lib/cjs/devops/gitlab/index.cjs +2 -2
- package/lib/cjs/devops/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
- package/lib/cjs/io/airtable/index.cjs +2 -2
- package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
- package/lib/cjs/io/confluence/index.cjs +2 -2
- package/lib/cjs/io/environment.cjs +2 -2
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
- package/lib/cjs/io/google-docs/index.cjs +2 -2
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
- package/lib/cjs/io/google-sheets/index.cjs +2 -2
- package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
- package/lib/cjs/io/graphql/index.cjs +2 -2
- package/lib/cjs/io/index.cjs +2 -2
- package/lib/cjs/io/jira/JiraService.cjs +2 -2
- package/lib/cjs/io/jira/index.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
- package/lib/cjs/io/spreadsheet/index.cjs +2 -2
- package/lib/cjs/keycloak/broker.cjs +2 -2
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/assets.cjs +2 -2
- package/lib/cjs/loader/config.cjs +2 -2
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/nest.cjs +2 -2
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/rls/index.cjs +2 -2
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
- package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/redis/RedisContextLock.cjs +2 -2
- package/lib/cjs/redis/RedisDispatch.cjs +2 -2
- package/lib/cjs/redis/RedisPaginator.cjs +2 -2
- package/lib/cjs/redis/RedisStatement.cjs +2 -2
- package/lib/cjs/redis/adapter.cjs +2 -2
- package/lib/cjs/redis/constants.cjs +2 -2
- package/lib/cjs/redis/handlers.cjs +2 -2
- package/lib/cjs/redis/index.cjs +2 -2
- package/lib/cjs/redis/serialization.cjs +2 -2
- package/lib/cjs/redis/types.cjs +2 -2
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +3 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/fs/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +34 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +479 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +4 -0
- package/lib/cjs/secrets/kubernetes/index.cjs +27 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
- package/lib/cjs/sftp/aws/index.cjs +24 -0
- package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
- package/lib/cjs/sftp/core/index.cjs +2 -2
- package/lib/cjs/sftp/index.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
- package/lib/cjs/sftp/ssh2/index.cjs +24 -0
- package/lib/cjs/shared/environmentValue.cjs +2 -2
- package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
- package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
- package/lib/cjs/shared/http/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobEnvironment.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/calendar/CalendarService.js +1 -1
- package/lib/esm/calendar/environment.js +1 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
- package/lib/esm/calendar/google-calendar/index.js +1 -1
- package/lib/esm/calendar/index.js +1 -1
- package/lib/esm/calendar/types.js +1 -1
- package/lib/esm/calendar/validators/cron.js +1 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
- package/lib/esm/comms/discord/DiscordService.js +1 -1
- package/lib/esm/comms/discord/index.js +1 -1
- package/lib/esm/comms/email/EmailService.js +1 -1
- package/lib/esm/comms/email/index.js +1 -1
- package/lib/esm/comms/email/mime.js +1 -1
- package/lib/esm/comms/email/smtp.js +1 -1
- package/lib/esm/comms/environment.js +1 -1
- package/lib/esm/comms/gmail/GmailService.js +1 -1
- package/lib/esm/comms/gmail/index.js +1 -1
- package/lib/esm/comms/index.js +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
- package/lib/esm/comms/outlook/index.js +1 -1
- package/lib/esm/comms/slack/SlackService.js +1 -1
- package/lib/esm/comms/slack/index.js +1 -1
- package/lib/esm/comms/teams/TeamsService.js +1 -1
- package/lib/esm/comms/teams/index.js +1 -1
- package/lib/esm/comms/telegram/TelegramService.js +1 -1
- package/lib/esm/comms/telegram/index.js +1 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
- package/lib/esm/comms/whatsapp/index.js +1 -1
- package/lib/esm/devops/environment.js +1 -1
- package/lib/esm/devops/github/GithubService.js +1 -1
- package/lib/esm/devops/github/index.js +1 -1
- package/lib/esm/devops/gitlab/GitlabService.js +1 -1
- package/lib/esm/devops/gitlab/index.js +1 -1
- package/lib/esm/devops/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/io/airtable/AirtableService.js +1 -1
- package/lib/esm/io/airtable/index.js +1 -1
- package/lib/esm/io/confluence/ConfluenceService.js +1 -1
- package/lib/esm/io/confluence/index.js +1 -1
- package/lib/esm/io/environment.js +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
- package/lib/esm/io/google-docs/index.js +1 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
- package/lib/esm/io/google-sheets/index.js +1 -1
- package/lib/esm/io/graphql/GraphqlService.js +1 -1
- package/lib/esm/io/graphql/index.js +1 -1
- package/lib/esm/io/index.js +1 -1
- package/lib/esm/io/jira/JiraService.js +1 -1
- package/lib/esm/io/jira/index.js +1 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
- package/lib/esm/io/microsoft-excel/index.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
- package/lib/esm/io/spreadsheet/index.js +1 -1
- package/lib/esm/keycloak/broker.js +1 -1
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/assets.js +1 -1
- package/lib/esm/loader/config.js +1 -1
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/nest.js +1 -1
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/credential.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/rls/index.js +1 -1
- package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
- package/lib/esm/namespaces/rls/rls.constants.js +1 -1
- package/lib/esm/namespaces/rls/rls.template.js +1 -1
- package/lib/esm/namespaces/rls/rls.types.js +1 -1
- package/lib/esm/namespaces/rls/session-binding.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/credential.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/redis/RedisContextLock.js +1 -1
- package/lib/esm/redis/RedisDispatch.js +1 -1
- package/lib/esm/redis/RedisPaginator.js +1 -1
- package/lib/esm/redis/RedisStatement.js +1 -1
- package/lib/esm/redis/adapter.js +1 -1
- package/lib/esm/redis/constants.js +1 -1
- package/lib/esm/redis/handlers.js +1 -1
- package/lib/esm/redis/index.js +1 -1
- package/lib/esm/redis/serialization.js +1 -1
- package/lib/esm/redis/types.js +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
- package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +2 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/fs/FsSecretService.js +1 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/fs/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +30 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +474 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +9 -0
- package/lib/esm/secrets/kubernetes/index.js +10 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
- package/lib/esm/sftp/aws/index.js +7 -0
- package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
- package/lib/esm/sftp/core/SftpSource.js +1 -1
- package/lib/esm/sftp/core/index.js +1 -1
- package/lib/esm/sftp/index.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
- package/lib/esm/sftp/ssh2/index.js +7 -0
- package/lib/esm/shared/environmentValue.js +1 -1
- package/lib/esm/shared/http/HttpApiService.js +1 -1
- package/lib/esm/shared/http/hermeticBoot.js +1 -1
- package/lib/esm/shared/http/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/secrets/core/SecretTypes.d.cts +13 -1
- package/lib/types/secrets/core/SecretTypes.d.mts +13 -1
- package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.cts +34 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.mts +34 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretService.d.cts +45 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretService.d.mts +45 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.cts +49 -0
- package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.mts +49 -0
- package/lib/types/secrets/kubernetes/index.d.cts +9 -0
- package/lib/types/secrets/kubernetes/index.d.mts +9 -0
- package/lib/types/sftp/aws/index.d.cts +6 -0
- package/lib/types/sftp/aws/index.d.mts +6 -0
- package/lib/types/sftp/ssh2/index.d.cts +6 -0
- package/lib/types/sftp/ssh2/index.d.mts +6 -0
- package/package.json +180 -55
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/calendar/CalendarService.cjs.map +0 -1
- package/lib/cjs/calendar/environment.cjs.map +0 -1
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +0 -1
- package/lib/cjs/calendar/google-calendar/index.cjs.map +0 -1
- package/lib/cjs/calendar/index.cjs.map +0 -1
- package/lib/cjs/calendar/types.cjs.map +0 -1
- package/lib/cjs/calendar/validators/cron.cjs.map +0 -1
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +0 -1
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +0 -1
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +0 -1
- package/lib/cjs/comms/discord/DiscordService.cjs.map +0 -1
- package/lib/cjs/comms/discord/index.cjs.map +0 -1
- package/lib/cjs/comms/email/EmailService.cjs.map +0 -1
- package/lib/cjs/comms/email/index.cjs.map +0 -1
- package/lib/cjs/comms/email/mime.cjs.map +0 -1
- package/lib/cjs/comms/email/smtp.cjs.map +0 -1
- package/lib/cjs/comms/environment.cjs.map +0 -1
- package/lib/cjs/comms/gmail/GmailService.cjs.map +0 -1
- package/lib/cjs/comms/gmail/index.cjs.map +0 -1
- package/lib/cjs/comms/index.cjs.map +0 -1
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +0 -1
- package/lib/cjs/comms/outlook/index.cjs.map +0 -1
- package/lib/cjs/comms/slack/SlackService.cjs.map +0 -1
- package/lib/cjs/comms/slack/index.cjs.map +0 -1
- package/lib/cjs/comms/teams/TeamsService.cjs.map +0 -1
- package/lib/cjs/comms/teams/index.cjs.map +0 -1
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +0 -1
- package/lib/cjs/comms/telegram/index.cjs.map +0 -1
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +0 -1
- package/lib/cjs/comms/whatsapp/index.cjs.map +0 -1
- package/lib/cjs/devops/environment.cjs.map +0 -1
- package/lib/cjs/devops/github/GithubService.cjs.map +0 -1
- package/lib/cjs/devops/github/index.cjs.map +0 -1
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +0 -1
- package/lib/cjs/devops/gitlab/index.cjs.map +0 -1
- package/lib/cjs/devops/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +0 -1
- package/lib/cjs/feature-flags/constants.cjs.map +0 -1
- package/lib/cjs/feature-flags/decorators.cjs.map +0 -1
- package/lib/cjs/feature-flags/environment.cjs.map +0 -1
- package/lib/cjs/feature-flags/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +0 -1
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +0 -1
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +0 -1
- package/lib/cjs/feature-flags/readers/index.cjs.map +0 -1
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +0 -1
- package/lib/cjs/feature-flags/types.cjs.map +0 -1
- package/lib/cjs/feature-flags/utils.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/io/airtable/AirtableService.cjs.map +0 -1
- package/lib/cjs/io/airtable/index.cjs.map +0 -1
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +0 -1
- package/lib/cjs/io/confluence/index.cjs.map +0 -1
- package/lib/cjs/io/environment.cjs.map +0 -1
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +0 -1
- package/lib/cjs/io/google-docs/index.cjs.map +0 -1
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +0 -1
- package/lib/cjs/io/google-sheets/index.cjs.map +0 -1
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +0 -1
- package/lib/cjs/io/graphql/index.cjs.map +0 -1
- package/lib/cjs/io/index.cjs.map +0 -1
- package/lib/cjs/io/jira/JiraService.cjs.map +0 -1
- package/lib/cjs/io/jira/index.cjs.map +0 -1
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +0 -1
- package/lib/cjs/io/microsoft-excel/index.cjs.map +0 -1
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +0 -1
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +0 -1
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +0 -1
- package/lib/cjs/io/spreadsheet/index.cjs.map +0 -1
- package/lib/cjs/keycloak/broker.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +0 -1
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +0 -1
- package/lib/cjs/kibana/builders/index.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/loader/ObjectLoader.cjs.map +0 -1
- package/lib/cjs/loader/assets.cjs.map +0 -1
- package/lib/cjs/loader/config.cjs.map +0 -1
- package/lib/cjs/loader/families.cjs.map +0 -1
- package/lib/cjs/loader/index.cjs.map +0 -1
- package/lib/cjs/loader/nest.cjs.map +0 -1
- package/lib/cjs/loader/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/credential.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/index.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +0 -1
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/credential.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/decorators.cjs.map +0 -1
- package/lib/cjs/nest/index.cjs.map +0 -1
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
- package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
- package/lib/cjs/nest/logging.cjs.map +0 -1
- package/lib/cjs/nest/types.cjs.map +0 -1
- package/lib/cjs/nest/utils.cjs.map +0 -1
- package/lib/cjs/plugins/contract.cjs.map +0 -1
- package/lib/cjs/plugins/index.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/host.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/index.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/installer.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/manifest.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/templates.cjs.map +0 -1
- package/lib/cjs/plugins/kibana/types.cjs.map +0 -1
- package/lib/cjs/plugins/superset/host.cjs.map +0 -1
- package/lib/cjs/plugins/superset/index.cjs.map +0 -1
- package/lib/cjs/plugins/superset/installer.cjs.map +0 -1
- package/lib/cjs/plugins/superset/manifest.cjs.map +0 -1
- package/lib/cjs/plugins/superset/templates.cjs.map +0 -1
- package/lib/cjs/plugins/superset/types.cjs.map +0 -1
- package/lib/cjs/redis/RedisContextLock.cjs.map +0 -1
- package/lib/cjs/redis/RedisDispatch.cjs.map +0 -1
- package/lib/cjs/redis/RedisPaginator.cjs.map +0 -1
- package/lib/cjs/redis/RedisStatement.cjs.map +0 -1
- package/lib/cjs/redis/adapter.cjs.map +0 -1
- package/lib/cjs/redis/constants.cjs.map +0 -1
- package/lib/cjs/redis/handlers.cjs.map +0 -1
- package/lib/cjs/redis/index.cjs.map +0 -1
- package/lib/cjs/redis/serialization.cjs.map +0 -1
- package/lib/cjs/redis/types.cjs.map +0 -1
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/aws/index.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
- package/lib/cjs/secrets/core/index.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/fs/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
- package/lib/cjs/secrets/index.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
- package/lib/cjs/secrets/model/index.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/vault/index.cjs.map +0 -1
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +0 -1
- package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/core/SftpSource.cjs.map +0 -1
- package/lib/cjs/sftp/core/index.cjs.map +0 -1
- package/lib/cjs/sftp/index.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +0 -1
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +0 -1
- package/lib/cjs/shared/environmentValue.cjs.map +0 -1
- package/lib/cjs/shared/http/HttpApiService.cjs.map +0 -1
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +0 -1
- package/lib/cjs/shared/http/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/user-requests/index.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
- package/lib/esm/blob/azure/index.js.map +0 -1
- package/lib/esm/blob/core/BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/core/BlobErrors.js.map +0 -1
- package/lib/esm/blob/core/BlobKey.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
- package/lib/esm/blob/core/BlobTypes.js.map +0 -1
- package/lib/esm/blob/core/BlobValue.js.map +0 -1
- package/lib/esm/blob/core/index.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/gcp/index.js.map +0 -1
- package/lib/esm/blob/index.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
- package/lib/esm/blob/local/index.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
- package/lib/esm/blob/memory/index.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/calendar/CalendarService.js.map +0 -1
- package/lib/esm/calendar/environment.js.map +0 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +0 -1
- package/lib/esm/calendar/google-calendar/index.js.map +0 -1
- package/lib/esm/calendar/index.js.map +0 -1
- package/lib/esm/calendar/types.js.map +0 -1
- package/lib/esm/calendar/validators/cron.js.map +0 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js.map +0 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js.map +0 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js.map +0 -1
- package/lib/esm/comms/discord/DiscordService.js.map +0 -1
- package/lib/esm/comms/discord/index.js.map +0 -1
- package/lib/esm/comms/email/EmailService.js.map +0 -1
- package/lib/esm/comms/email/index.js.map +0 -1
- package/lib/esm/comms/email/mime.js.map +0 -1
- package/lib/esm/comms/email/smtp.js.map +0 -1
- package/lib/esm/comms/environment.js.map +0 -1
- package/lib/esm/comms/gmail/GmailService.js.map +0 -1
- package/lib/esm/comms/gmail/index.js.map +0 -1
- package/lib/esm/comms/index.js.map +0 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +0 -1
- package/lib/esm/comms/outlook/index.js.map +0 -1
- package/lib/esm/comms/slack/SlackService.js.map +0 -1
- package/lib/esm/comms/slack/index.js.map +0 -1
- package/lib/esm/comms/teams/TeamsService.js.map +0 -1
- package/lib/esm/comms/teams/index.js.map +0 -1
- package/lib/esm/comms/telegram/TelegramService.js.map +0 -1
- package/lib/esm/comms/telegram/index.js.map +0 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +0 -1
- package/lib/esm/comms/whatsapp/index.js.map +0 -1
- package/lib/esm/devops/environment.js.map +0 -1
- package/lib/esm/devops/github/GithubService.js.map +0 -1
- package/lib/esm/devops/github/index.js.map +0 -1
- package/lib/esm/devops/gitlab/GitlabService.js.map +0 -1
- package/lib/esm/devops/gitlab/index.js.map +0 -1
- package/lib/esm/devops/index.js.map +0 -1
- package/lib/esm/docker/DockerComposeService.js.map +0 -1
- package/lib/esm/docker/index.js.map +0 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +0 -1
- package/lib/esm/feature-flags/constants.js.map +0 -1
- package/lib/esm/feature-flags/decorators.js.map +0 -1
- package/lib/esm/feature-flags/environment.js.map +0 -1
- package/lib/esm/feature-flags/index.js.map +0 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +0 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +0 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +0 -1
- package/lib/esm/feature-flags/readers/index.js.map +0 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +0 -1
- package/lib/esm/feature-flags/types.js.map +0 -1
- package/lib/esm/feature-flags/utils.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/io/airtable/AirtableService.js.map +0 -1
- package/lib/esm/io/airtable/index.js.map +0 -1
- package/lib/esm/io/confluence/ConfluenceService.js.map +0 -1
- package/lib/esm/io/confluence/index.js.map +0 -1
- package/lib/esm/io/environment.js.map +0 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +0 -1
- package/lib/esm/io/google-docs/index.js.map +0 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +0 -1
- package/lib/esm/io/google-sheets/index.js.map +0 -1
- package/lib/esm/io/graphql/GraphqlService.js.map +0 -1
- package/lib/esm/io/graphql/index.js.map +0 -1
- package/lib/esm/io/index.js.map +0 -1
- package/lib/esm/io/jira/JiraService.js.map +0 -1
- package/lib/esm/io/jira/index.js.map +0 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +0 -1
- package/lib/esm/io/microsoft-excel/index.js.map +0 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +0 -1
- package/lib/esm/io/microsoft-sharepoint/index.js.map +0 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +0 -1
- package/lib/esm/io/spreadsheet/index.js.map +0 -1
- package/lib/esm/keycloak/broker.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +0 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +0 -1
- package/lib/esm/kibana/builders/index.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/loader/ObjectLoader.js.map +0 -1
- package/lib/esm/loader/assets.js.map +0 -1
- package/lib/esm/loader/config.js.map +0 -1
- package/lib/esm/loader/families.js.map +0 -1
- package/lib/esm/loader/index.js.map +0 -1
- package/lib/esm/loader/nest.js.map +0 -1
- package/lib/esm/loader/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/credential.model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/rls/index.js.map +0 -1
- package/lib/esm/namespaces/rls/principal-resolver.js.map +0 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.constants.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.template.js.map +0 -1
- package/lib/esm/namespaces/rls/rls.types.js.map +0 -1
- package/lib/esm/namespaces/rls/session-binding.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/credential.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/decorators.js.map +0 -1
- package/lib/esm/nest/index.js.map +0 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
- package/lib/esm/nest/keycloakModule.js.map +0 -1
- package/lib/esm/nest/logging.js.map +0 -1
- package/lib/esm/nest/types.js.map +0 -1
- package/lib/esm/nest/utils.js.map +0 -1
- package/lib/esm/plugins/contract.js.map +0 -1
- package/lib/esm/plugins/index.js.map +0 -1
- package/lib/esm/plugins/kibana/host.js.map +0 -1
- package/lib/esm/plugins/kibana/index.js.map +0 -1
- package/lib/esm/plugins/kibana/installer.js.map +0 -1
- package/lib/esm/plugins/kibana/manifest.js.map +0 -1
- package/lib/esm/plugins/kibana/templates.js.map +0 -1
- package/lib/esm/plugins/kibana/types.js.map +0 -1
- package/lib/esm/plugins/superset/host.js.map +0 -1
- package/lib/esm/plugins/superset/index.js.map +0 -1
- package/lib/esm/plugins/superset/installer.js.map +0 -1
- package/lib/esm/plugins/superset/manifest.js.map +0 -1
- package/lib/esm/plugins/superset/templates.js.map +0 -1
- package/lib/esm/plugins/superset/types.js.map +0 -1
- package/lib/esm/redis/RedisContextLock.js.map +0 -1
- package/lib/esm/redis/RedisDispatch.js.map +0 -1
- package/lib/esm/redis/RedisPaginator.js.map +0 -1
- package/lib/esm/redis/RedisStatement.js.map +0 -1
- package/lib/esm/redis/adapter.js.map +0 -1
- package/lib/esm/redis/constants.js.map +0 -1
- package/lib/esm/redis/handlers.js.map +0 -1
- package/lib/esm/redis/index.js.map +0 -1
- package/lib/esm/redis/serialization.js.map +0 -1
- package/lib/esm/redis/types.js.map +0 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/aws/index.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
- package/lib/esm/secrets/core/SecretName.js.map +0 -1
- package/lib/esm/secrets/core/SecretReference.js.map +0 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
- package/lib/esm/secrets/core/SecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
- package/lib/esm/secrets/core/index.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretService.js.map +0 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/fs/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
- package/lib/esm/secrets/gcp/index.js.map +0 -1
- package/lib/esm/secrets/index.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/model/Secret.js.map +0 -1
- package/lib/esm/secrets/model/index.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/onepassword/index.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/vault/index.js.map +0 -1
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/aws/AwsSftpService.js.map +0 -1
- package/lib/esm/sftp/core/SftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/core/SftpSource.js.map +0 -1
- package/lib/esm/sftp/core/index.js.map +0 -1
- package/lib/esm/sftp/index.js.map +0 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +0 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +0 -1
- package/lib/esm/shared/environmentValue.js.map +0 -1
- package/lib/esm/shared/http/HttpApiService.js.map +0 -1
- package/lib/esm/shared/http/hermeticBoot.js.map +0 -1
- package/lib/esm/shared/http/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/user-requests/index.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
import { ApiException, CoreV1Api, KubeConfig, } from "@kubernetes/client-node";
|
|
2
|
+
import { AuthorizationError } from "@decaf-ts/core";
|
|
3
|
+
import { ClientBasedSecretService, SecretError, } from "./../core/index.js";
|
|
4
|
+
import { validateSecretName, normalizeSecretName } from "./../core/index.js";
|
|
5
|
+
import { serializeSecretPayload, deserializeSecretPayload, } from "./../core/index.js";
|
|
6
|
+
import { KubernetesSecretEnvironment } from "./KubernetesSecretEnvironment.js";
|
|
7
|
+
import { envBoolean, envString } from "./../../shared/environmentValue.js";
|
|
8
|
+
import { BadRequestError, BaseError, ConflictError, InternalError, NotFoundError, } from "@decaf-ts/db-decorators";
|
|
9
|
+
const PAYLOAD_DATA_KEY = "payload";
|
|
10
|
+
const MANAGED_LABEL = "decaf-ts.io/managed";
|
|
11
|
+
const ANNOTATION_PREFIX = "decaf-ts.io/";
|
|
12
|
+
const ENCODING_ANNOTATION = `${ANNOTATION_PREFIX}encoding`;
|
|
13
|
+
const CONTENT_TYPE_ANNOTATION = `${ANNOTATION_PREFIX}content-type`;
|
|
14
|
+
const TAGS_ANNOTATION = `${ANNOTATION_PREFIX}tags`;
|
|
15
|
+
const VERSION_ANNOTATION = `${ANNOTATION_PREFIX}version`;
|
|
16
|
+
const UPDATED_AT_ANNOTATION = `${ANNOTATION_PREFIX}updated-at`;
|
|
17
|
+
const TENANT_ANNOTATION = `${ANNOTATION_PREFIX}tenant-id`;
|
|
18
|
+
const ORG_UNIT_ANNOTATION = `${ANNOTATION_PREFIX}org-unit-id`;
|
|
19
|
+
const OWNER_ANNOTATION = `${ANNOTATION_PREFIX}owner-principal-id`;
|
|
20
|
+
const DNS_SUBDOMAIN_PATTERN = /^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$/;
|
|
21
|
+
const DNS_LABEL_PATTERN = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;
|
|
22
|
+
function assertKubernetesName(name) {
|
|
23
|
+
if (name.length > 253 || !DNS_SUBDOMAIN_PATTERN.test(name)) {
|
|
24
|
+
throw new SecretError("SECRET_INVALID_NAME", `Invalid Kubernetes secret name: "${name}". Names must be lowercase DNS-1123 subdomains (letters, digits, '-', and '.').`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function assertKubernetesNamespace(namespace) {
|
|
28
|
+
if (namespace.length > 63 || !DNS_LABEL_PATTERN.test(namespace)) {
|
|
29
|
+
throw new SecretError("SECRET_INVALID_NAME", `Invalid Kubernetes namespace: "${namespace}". Namespaces must be lowercase DNS-1123 labels.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function toDate(value) {
|
|
33
|
+
if (!value)
|
|
34
|
+
return undefined;
|
|
35
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
36
|
+
return Number.isNaN(date.getTime()) ? undefined : date;
|
|
37
|
+
}
|
|
38
|
+
function parseTags(raw) {
|
|
39
|
+
if (!raw)
|
|
40
|
+
return undefined;
|
|
41
|
+
try {
|
|
42
|
+
const parsed = JSON.parse(raw);
|
|
43
|
+
return parsed && typeof parsed === "object"
|
|
44
|
+
? parsed
|
|
45
|
+
: undefined;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @class KubernetesSecretService
|
|
53
|
+
* @summary Native Kubernetes Secrets backend.
|
|
54
|
+
* @description Implements the {@link SecretService} contract on top of
|
|
55
|
+
* namespaced Kubernetes `Secret` objects. Each DECAF secret is stored as an
|
|
56
|
+
* `Opaque` Secret whose `payload` data key holds the serialized
|
|
57
|
+
* {@link SerializedSecretPayload} envelope, while encoding, content type, tags,
|
|
58
|
+
* logical version, and ownership hints live in `decaf-ts.io/*` annotations.
|
|
59
|
+
*
|
|
60
|
+
* Authentication uses the standard Kubernetes client resolution order:
|
|
61
|
+
* explicit `server` credentials, an explicit `kubeconfig` path, `KUBECONFIG`,
|
|
62
|
+
* `~/.kube/config`, and finally the in-cluster service account.
|
|
63
|
+
*/
|
|
64
|
+
export class KubernetesSecretService extends ClientBasedSecretService {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
this.provider = "kubernetes";
|
|
68
|
+
}
|
|
69
|
+
configFromEnvironment() {
|
|
70
|
+
const env = KubernetesSecretEnvironment.secrets.kubernetes;
|
|
71
|
+
const namespace = envString(env?.namespace);
|
|
72
|
+
const kubeconfig = envString(env?.kubeconfig);
|
|
73
|
+
const context = envString(env?.context);
|
|
74
|
+
const server = envString(env?.server);
|
|
75
|
+
if (!namespace && !kubeconfig && !context && !server)
|
|
76
|
+
return undefined;
|
|
77
|
+
return {
|
|
78
|
+
provider: "kubernetes",
|
|
79
|
+
namespace,
|
|
80
|
+
kubeconfig,
|
|
81
|
+
context,
|
|
82
|
+
server,
|
|
83
|
+
token: envString(env.token),
|
|
84
|
+
tokenFile: envString(env.tokenFile),
|
|
85
|
+
caFile: envString(env.caFile),
|
|
86
|
+
caData: envString(env.caData),
|
|
87
|
+
certFile: envString(env.certFile),
|
|
88
|
+
keyFile: envString(env.keyFile),
|
|
89
|
+
certData: envString(env.certData),
|
|
90
|
+
keyData: envString(env.keyData),
|
|
91
|
+
skipTLSVerify: envBoolean(env.skipTLSVerify),
|
|
92
|
+
serviceAccount: envBoolean(env.serviceAccount),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
async initialize(...args) {
|
|
96
|
+
const { log } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
|
|
97
|
+
const config = this.getConfigFromArgs(...args);
|
|
98
|
+
const kubeConfig = this.buildKubeConfig(config);
|
|
99
|
+
const namespace = this.resolveNamespace(config, kubeConfig);
|
|
100
|
+
const resolved = { ...config, namespace };
|
|
101
|
+
const client = kubeConfig.makeApiClient(CoreV1Api);
|
|
102
|
+
this._config = resolved;
|
|
103
|
+
this._client = client;
|
|
104
|
+
log.verbose(`Initialized Kubernetes secret service for namespace "${namespace}"`);
|
|
105
|
+
return { config: resolved, client };
|
|
106
|
+
}
|
|
107
|
+
async store(name, value, options = {}, ...args) {
|
|
108
|
+
const { log } = (await this.logCtx(args, "store", true)).for(this.store);
|
|
109
|
+
const normalizedName = this.normalizeName(name);
|
|
110
|
+
const namespace = this.resolveNamespaceOption(options.namespace);
|
|
111
|
+
log.verbose(`Storing secret ${normalizedName} in namespace ${namespace}`);
|
|
112
|
+
const serialized = serializeSecretPayload(value);
|
|
113
|
+
const body = this.buildSecret(normalizedName, namespace, serialized, options);
|
|
114
|
+
try {
|
|
115
|
+
await this.client.createNamespacedSecret({ namespace, body });
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (this.statusOf(error) === 409) {
|
|
119
|
+
try {
|
|
120
|
+
const existing = await this.client.readNamespacedSecret({
|
|
121
|
+
name: normalizedName,
|
|
122
|
+
namespace,
|
|
123
|
+
});
|
|
124
|
+
body.metadata = {
|
|
125
|
+
...(body.metadata || {}),
|
|
126
|
+
resourceVersion: existing.metadata?.resourceVersion,
|
|
127
|
+
};
|
|
128
|
+
await this.client.replaceNamespacedSecret({
|
|
129
|
+
name: normalizedName,
|
|
130
|
+
namespace,
|
|
131
|
+
body,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (replaceError) {
|
|
135
|
+
throw this.parseError(replaceError);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
throw this.parseError(error);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
provider: this.provider,
|
|
144
|
+
name: normalizedName,
|
|
145
|
+
namespace,
|
|
146
|
+
version: options.version,
|
|
147
|
+
uri: `kubernetes://${namespace}/${normalizedName}`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
async retrieve(nameOrRef, options = {}, ...args) {
|
|
151
|
+
const { log } = (await this.logCtx(args, "retrieve", true)).for(this.retrieve);
|
|
152
|
+
const { name, namespace, version } = this.resolveReference(nameOrRef, options);
|
|
153
|
+
log.verbose(`Retrieving secret ${name} from namespace ${namespace}`);
|
|
154
|
+
const secret = await this.readSecret(name, namespace);
|
|
155
|
+
this.assertVersion(secret, version);
|
|
156
|
+
const raw = secret.data?.[PAYLOAD_DATA_KEY];
|
|
157
|
+
if (!raw) {
|
|
158
|
+
throw new NotFoundError(`No secret value found for "${name}" in namespace "${namespace}"`);
|
|
159
|
+
}
|
|
160
|
+
let payload;
|
|
161
|
+
try {
|
|
162
|
+
payload = JSON.parse(Buffer.from(raw, "base64").toString("utf8"));
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
throw new SecretError("SECRET_DESERIALIZATION_FAILED", `Failed to parse secret payload for "${name}": ${error.message}`, error);
|
|
166
|
+
}
|
|
167
|
+
return deserializeSecretPayload(payload);
|
|
168
|
+
}
|
|
169
|
+
async delete(nameOrRef, options = {}, ...args) {
|
|
170
|
+
const { log } = (await this.logCtx(args, "delete", true)).for(this.delete);
|
|
171
|
+
const { name, namespace, version } = this.resolveReference(nameOrRef, options);
|
|
172
|
+
log.verbose(`Deleting secret ${name} from namespace ${namespace}`);
|
|
173
|
+
if (version) {
|
|
174
|
+
const secret = await this.readSecret(name, namespace);
|
|
175
|
+
this.assertVersion(secret, version);
|
|
176
|
+
}
|
|
177
|
+
try {
|
|
178
|
+
await this.client.deleteNamespacedSecret({ name, namespace });
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
throw this.parseError(error);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async exists(nameOrRef, options = {}, ...args) {
|
|
185
|
+
const { log } = (await this.logCtx(args, "exists", true)).for(this.exists);
|
|
186
|
+
const { name, namespace, version } = this.resolveReference(nameOrRef, options);
|
|
187
|
+
log.verbose(`Checking if secret ${name} exists in namespace ${namespace}`);
|
|
188
|
+
try {
|
|
189
|
+
const secret = await this.readSecret(name, namespace);
|
|
190
|
+
this.assertVersion(secret, version);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (error instanceof NotFoundError)
|
|
195
|
+
return false;
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async list(options = {}, ...args) {
|
|
200
|
+
const { log } = (await this.logCtx(args, "list", true)).for(this.list);
|
|
201
|
+
const namespace = this.resolveNamespaceOption(options.namespace);
|
|
202
|
+
log.verbose(`Listing secrets in namespace ${namespace}`);
|
|
203
|
+
const result = [];
|
|
204
|
+
let continueToken;
|
|
205
|
+
try {
|
|
206
|
+
do {
|
|
207
|
+
const response = await this.client.listNamespacedSecret({
|
|
208
|
+
namespace,
|
|
209
|
+
labelSelector: `${MANAGED_LABEL}=true`,
|
|
210
|
+
limit: 100,
|
|
211
|
+
_continue: continueToken,
|
|
212
|
+
});
|
|
213
|
+
for (const secret of response.items || []) {
|
|
214
|
+
result.push(this.toMetadata(secret, namespace));
|
|
215
|
+
}
|
|
216
|
+
continueToken = response.metadata?._continue;
|
|
217
|
+
} while (continueToken);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
throw this.parseError(error);
|
|
221
|
+
}
|
|
222
|
+
const filtered = result.filter((meta) => {
|
|
223
|
+
if (options.enabled === false)
|
|
224
|
+
return false;
|
|
225
|
+
if (!options.tags)
|
|
226
|
+
return true;
|
|
227
|
+
return Object.entries(options.tags).every(([key, value]) => meta.tags?.[key] === value);
|
|
228
|
+
});
|
|
229
|
+
const offset = options.offset ?? 0;
|
|
230
|
+
const end = typeof options.limit === "number" ? offset + options.limit : undefined;
|
|
231
|
+
return filtered.slice(offset, end);
|
|
232
|
+
}
|
|
233
|
+
async metadata(nameOrRef, options = {}, ...args) {
|
|
234
|
+
const { log } = (await this.logCtx(args, "metadata", true)).for(this.metadata);
|
|
235
|
+
const { name, namespace, version } = this.resolveReference(nameOrRef, options);
|
|
236
|
+
log.verbose(`Getting metadata for secret ${name} in namespace ${namespace}`);
|
|
237
|
+
try {
|
|
238
|
+
const secret = await this.readSecret(name, namespace);
|
|
239
|
+
this.assertVersion(secret, version);
|
|
240
|
+
return this.toMetadata(secret, namespace);
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
if (error instanceof NotFoundError)
|
|
244
|
+
return undefined;
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
async rotate(nameOrRef, value, options = {}, ...args) {
|
|
249
|
+
const { name, namespace } = this.resolveReference(nameOrRef, options);
|
|
250
|
+
return this.store(name, value, { version: options.newVersion, namespace }, ...args);
|
|
251
|
+
}
|
|
252
|
+
buildKubeConfig(config) {
|
|
253
|
+
const kubeConfig = new KubeConfig();
|
|
254
|
+
try {
|
|
255
|
+
if (config.serviceAccount) {
|
|
256
|
+
kubeConfig.loadFromCluster();
|
|
257
|
+
}
|
|
258
|
+
else if (config.server) {
|
|
259
|
+
const clusterName = "decaf-cluster";
|
|
260
|
+
const userName = "decaf-user";
|
|
261
|
+
const contextName = "decaf-context";
|
|
262
|
+
kubeConfig.loadFromOptions({
|
|
263
|
+
clusters: [
|
|
264
|
+
{
|
|
265
|
+
name: clusterName,
|
|
266
|
+
server: config.server,
|
|
267
|
+
caData: config.caData,
|
|
268
|
+
caFile: config.caFile,
|
|
269
|
+
skipTLSVerify: config.skipTLSVerify,
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
users: [
|
|
273
|
+
{
|
|
274
|
+
name: userName,
|
|
275
|
+
token: config.token,
|
|
276
|
+
tokenFile: config.tokenFile,
|
|
277
|
+
certData: config.certData,
|
|
278
|
+
certFile: config.certFile,
|
|
279
|
+
keyData: config.keyData,
|
|
280
|
+
keyFile: config.keyFile,
|
|
281
|
+
},
|
|
282
|
+
],
|
|
283
|
+
contexts: [
|
|
284
|
+
{
|
|
285
|
+
name: contextName,
|
|
286
|
+
cluster: clusterName,
|
|
287
|
+
user: userName,
|
|
288
|
+
namespace: config.namespace,
|
|
289
|
+
},
|
|
290
|
+
],
|
|
291
|
+
currentContext: contextName,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
else if (config.kubeconfig) {
|
|
295
|
+
kubeConfig.loadFromFile(config.kubeconfig);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
kubeConfig.loadFromDefault();
|
|
299
|
+
}
|
|
300
|
+
if (config.context) {
|
|
301
|
+
kubeConfig.setCurrentContext(config.context);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
throw this.parseError(error);
|
|
306
|
+
}
|
|
307
|
+
return kubeConfig;
|
|
308
|
+
}
|
|
309
|
+
resolveNamespace(config, kubeConfig) {
|
|
310
|
+
const namespace = config.namespace ||
|
|
311
|
+
kubeConfig.getContextObject(kubeConfig.getCurrentContext())?.namespace ||
|
|
312
|
+
"default";
|
|
313
|
+
assertKubernetesNamespace(namespace);
|
|
314
|
+
return namespace;
|
|
315
|
+
}
|
|
316
|
+
resolveNamespaceOption(namespace) {
|
|
317
|
+
const resolved = namespace || this.config.namespace || "default";
|
|
318
|
+
assertKubernetesNamespace(resolved);
|
|
319
|
+
return resolved;
|
|
320
|
+
}
|
|
321
|
+
resolveReference(nameOrRef, options) {
|
|
322
|
+
const name = typeof nameOrRef === "string" ? nameOrRef : nameOrRef.name;
|
|
323
|
+
const namespace = options.namespace ||
|
|
324
|
+
(typeof nameOrRef === "string" ? undefined : nameOrRef.namespace) ||
|
|
325
|
+
this.config.namespace ||
|
|
326
|
+
"default";
|
|
327
|
+
assertKubernetesNamespace(namespace);
|
|
328
|
+
const version = options.version ||
|
|
329
|
+
(typeof nameOrRef === "string" ? undefined : nameOrRef.version);
|
|
330
|
+
return { name: this.normalizeName(name), namespace, version };
|
|
331
|
+
}
|
|
332
|
+
normalizeName(name) {
|
|
333
|
+
try {
|
|
334
|
+
validateSecretName(name);
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
throw this.parseError(error);
|
|
338
|
+
}
|
|
339
|
+
const normalizedName = normalizeSecretName(name);
|
|
340
|
+
assertKubernetesName(normalizedName);
|
|
341
|
+
return normalizedName;
|
|
342
|
+
}
|
|
343
|
+
buildSecret(name, namespace, serialized, options) {
|
|
344
|
+
const annotations = {
|
|
345
|
+
[ENCODING_ANNOTATION]: serialized.encoding,
|
|
346
|
+
[UPDATED_AT_ANNOTATION]: new Date().toISOString(),
|
|
347
|
+
};
|
|
348
|
+
if (options.contentType) {
|
|
349
|
+
annotations[CONTENT_TYPE_ANNOTATION] = options.contentType;
|
|
350
|
+
}
|
|
351
|
+
if (options.tags) {
|
|
352
|
+
annotations[TAGS_ANNOTATION] = JSON.stringify(options.tags);
|
|
353
|
+
}
|
|
354
|
+
if (options.version) {
|
|
355
|
+
annotations[VERSION_ANNOTATION] = options.version;
|
|
356
|
+
}
|
|
357
|
+
if (options.tenantId) {
|
|
358
|
+
annotations[TENANT_ANNOTATION] = options.tenantId;
|
|
359
|
+
}
|
|
360
|
+
if (options.orgUnitId) {
|
|
361
|
+
annotations[ORG_UNIT_ANNOTATION] = options.orgUnitId;
|
|
362
|
+
}
|
|
363
|
+
if (options.ownerPrincipalId) {
|
|
364
|
+
annotations[OWNER_ANNOTATION] = options.ownerPrincipalId;
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
apiVersion: "v1",
|
|
368
|
+
kind: "Secret",
|
|
369
|
+
type: "Opaque",
|
|
370
|
+
metadata: {
|
|
371
|
+
name,
|
|
372
|
+
namespace,
|
|
373
|
+
labels: {
|
|
374
|
+
[MANAGED_LABEL]: "true",
|
|
375
|
+
},
|
|
376
|
+
annotations,
|
|
377
|
+
},
|
|
378
|
+
stringData: {
|
|
379
|
+
[PAYLOAD_DATA_KEY]: JSON.stringify(serialized),
|
|
380
|
+
},
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
async readSecret(name, namespace) {
|
|
384
|
+
try {
|
|
385
|
+
return await this.client.readNamespacedSecret({ name, namespace });
|
|
386
|
+
}
|
|
387
|
+
catch (error) {
|
|
388
|
+
throw this.parseError(error);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
assertVersion(secret, version) {
|
|
392
|
+
if (!version)
|
|
393
|
+
return;
|
|
394
|
+
const stored = secret.metadata?.annotations?.[VERSION_ANNOTATION];
|
|
395
|
+
if (stored !== version) {
|
|
396
|
+
throw new NotFoundError(`Secret "${secret.metadata?.name}" version "${version}" not found`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
toMetadata(secret, namespace) {
|
|
400
|
+
const annotations = secret.metadata?.annotations || {};
|
|
401
|
+
const updatedAt = annotations[UPDATED_AT_ANNOTATION];
|
|
402
|
+
const name = secret.metadata?.name || "";
|
|
403
|
+
return {
|
|
404
|
+
provider: this.provider,
|
|
405
|
+
name,
|
|
406
|
+
version: annotations[VERSION_ANNOTATION],
|
|
407
|
+
createdAt: toDate(secret.metadata?.creationTimestamp),
|
|
408
|
+
updatedAt: updatedAt
|
|
409
|
+
? new Date(updatedAt)
|
|
410
|
+
: toDate(secret.metadata?.creationTimestamp),
|
|
411
|
+
enabled: true,
|
|
412
|
+
contentType: annotations[CONTENT_TYPE_ANNOTATION],
|
|
413
|
+
tags: parseTags(annotations[TAGS_ANNOTATION]),
|
|
414
|
+
externalId: secret.metadata?.uid,
|
|
415
|
+
uri: `kubernetes://${namespace}/${name}`,
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
statusOf(error) {
|
|
419
|
+
if (error instanceof ApiException)
|
|
420
|
+
return error.code;
|
|
421
|
+
const candidate = error;
|
|
422
|
+
if (typeof candidate?.code === "number")
|
|
423
|
+
return candidate.code;
|
|
424
|
+
if (typeof candidate?.statusCode === "number") {
|
|
425
|
+
return candidate.statusCode;
|
|
426
|
+
}
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
messageOf(error) {
|
|
430
|
+
const err = error;
|
|
431
|
+
return err?.body?.message || err?.body?.reason || err?.message || err?.name || "Unknown error";
|
|
432
|
+
}
|
|
433
|
+
parseError(error) {
|
|
434
|
+
if (error instanceof BaseError)
|
|
435
|
+
return error;
|
|
436
|
+
const status = this.statusOf(error);
|
|
437
|
+
const message = this.messageOf(error);
|
|
438
|
+
const lowerMessage = message.toLowerCase();
|
|
439
|
+
if (status === 404 ||
|
|
440
|
+
lowerMessage.includes("not found") ||
|
|
441
|
+
lowerMessage.includes("404")) {
|
|
442
|
+
return new NotFoundError(message);
|
|
443
|
+
}
|
|
444
|
+
if (status === 409 ||
|
|
445
|
+
lowerMessage.includes("already exists") ||
|
|
446
|
+
lowerMessage.includes("conflict") ||
|
|
447
|
+
lowerMessage.includes("409")) {
|
|
448
|
+
return new ConflictError(message);
|
|
449
|
+
}
|
|
450
|
+
if (status === 401 || lowerMessage.includes("unauthorized")) {
|
|
451
|
+
return new AuthorizationError(`Authentication failed: ${message}`);
|
|
452
|
+
}
|
|
453
|
+
if (status === 403 || lowerMessage.includes("forbidden")) {
|
|
454
|
+
return new AuthorizationError(`Permission denied: ${message}`);
|
|
455
|
+
}
|
|
456
|
+
if (status === 400 ||
|
|
457
|
+
status === 422 ||
|
|
458
|
+
lowerMessage.includes("bad request")) {
|
|
459
|
+
return new BadRequestError(message);
|
|
460
|
+
}
|
|
461
|
+
if (status === 429 || lowerMessage.includes("rate limit")) {
|
|
462
|
+
return new SecretError("SECRET_PROVIDER_RATE_LIMITED", `Rate limited: ${message}`, error);
|
|
463
|
+
}
|
|
464
|
+
if (status === undefined ||
|
|
465
|
+
(status !== undefined && status >= 500) ||
|
|
466
|
+
lowerMessage.includes("connection") ||
|
|
467
|
+
lowerMessage.includes("timeout") ||
|
|
468
|
+
lowerMessage.includes("unavailable")) {
|
|
469
|
+
return new SecretError("SECRET_PROVIDER_UNAVAILABLE", `Provider unavailable: ${message}`, error);
|
|
470
|
+
}
|
|
471
|
+
return new InternalError(message);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS3ViZXJuZXRlc1NlY3JldFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9rdWJlcm5ldGVzL0t1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsR0FFWCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBMkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFdBQVcsR0FNWiwyQkFBMkI7QUFVNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQjtBQUM3RSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHdCQUF3QixHQUV6QiwyQkFBMkI7QUFFNUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHlDQUFzQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUNuQyxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQztBQUM1QyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztBQUN6QyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQztBQUMzRCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsaUJBQWlCLGNBQWMsQ0FBQztBQUNuRSxNQUFNLGVBQWUsR0FBRyxHQUFHLGlCQUFpQixNQUFNLENBQUM7QUFDbkQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLGlCQUFpQixTQUFTLENBQUM7QUFDekQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLGlCQUFpQixZQUFZLENBQUM7QUFD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QWEsQ0FBQyxFQUNwQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMxRCxPQUFPLElBQUksV0FBVyxDQUNwQiw4QkFBOEIsRUFDOUIsaUJBQWlCLE9BQU8sRUFBRSxFQUMxQixLQUFjLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLE1BQU0sS0FBSyxTQUFTO1lBQ3BCLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLElBQUksR0FBRyxDQUFDO1lBQ3ZDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ25DLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ2hDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQ3BDLENBQUM7WUFDRCxPQUFPLElBQUksV0FBVyxDQUNwQiw2QkFBNkIsRUFDN0IseUJBQXlCLE9BQU8sRUFBRSxFQUNsQyxLQUFjLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwaUV4Y2VwdGlvbixcbiAgQ29yZVYxQXBpLFxuICBLdWJlQ29uZmlnLFxuICB0eXBlIFYxU2VjcmV0LFxufSBmcm9tIFwiQGt1YmVybmV0ZXMvY2xpZW50LW5vZGVcIjtcbmltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciwgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIENsaWVudEJhc2VkU2VjcmV0U2VydmljZSxcbiAgU2VjcmV0RXJyb3IsXG4gIFNlY3JldFByb3ZpZGVyLFxuICBTZWNyZXROYW1lLFxuICBTZWNyZXRQYXlsb2FkLFxuICBTZWNyZXRSZWZlcmVuY2UsXG4gIFNlY3JldE1ldGFkYXRhLFxufSBmcm9tIFwiLi4vLi4vc2VjcmV0cy9jb3JlXCI7XG5pbXBvcnQge1xuICBTdG9yZVNlY3JldE9wdGlvbnMsXG4gIFJldHJpZXZlU2VjcmV0T3B0aW9ucyxcbiAgRGVsZXRlU2VjcmV0T3B0aW9ucyxcbiAgRXhpc3RzU2VjcmV0T3B0aW9ucyxcbiAgTGlzdFNlY3JldHNPcHRpb25zLFxuICBTZWNyZXRNZXRhZGF0YU9wdGlvbnMsXG4gIFJvdGF0ZVNlY3JldE9wdGlvbnMsXG59IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7IHZhbGlkYXRlU2VjcmV0TmFtZSwgbm9ybWFsaXplU2VjcmV0TmFtZSB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZVNlY3JldFBheWxvYWQsXG4gIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZCxcbiAgdHlwZSBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbn0gZnJvbSBcIi4uLy4uL3NlY3JldHMvY29yZVwiO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWcgfSBmcm9tIFwiLi9LdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZ1wiO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4vS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZCb29sZWFuLCBlbnZTdHJpbmcgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWVcIjtcbmltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQmFzZUVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuY29uc3QgUEFZTE9BRF9EQVRBX0tFWSA9IFwicGF5bG9hZFwiO1xuY29uc3QgTUFOQUdFRF9MQUJFTCA9IFwiZGVjYWYtdHMuaW8vbWFuYWdlZFwiO1xuY29uc3QgQU5OT1RBVElPTl9QUkVGSVggPSBcImRlY2FmLXRzLmlvL1wiO1xuY29uc3QgRU5DT0RJTkdfQU5OT1RBVElPTiA9IGAke0FOTk9UQVRJT05fUFJFRklYfWVuY29kaW5nYDtcbmNvbnN0IENPTlRFTlRfVFlQRV9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9Y29udGVudC10eXBlYDtcbmNvbnN0IFRBR1NfQU5OT1RBVElPTiA9IGAke0FOTk9UQVRJT05fUFJFRklYfXRhZ3NgO1xuY29uc3QgVkVSU0lPTl9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9dmVyc2lvbmA7XG5jb25zdCBVUERBVEVEX0FUX0FOTk9UQVRJT04gPSBgJHtBTk5PVEFUSU9OX1BSRUZJWH11cGRhdGVkLWF0YDtcbmNvbnN0IFRFTkFOVF9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9dGVuYW50LWlkYDtcbmNvbnN0IE9SR19VTklUX0FOTk9UQVRJT04gPSBgJHtBTk5PVEFUSU9OX1BSRUZJWH1vcmctdW5pdC1pZGA7XG5jb25zdCBPV05FUl9BTk5PVEFUSU9OID0gYCR7QU5OT1RBVElPTl9QUkVGSVh9b3duZXItcHJpbmNpcGFsLWlkYDtcblxuY29uc3QgRE5TX1NVQkRPTUFJTl9QQVRURVJOID1cbiAgL15bYS16MC05XShbLWEtejAtOS5dKlthLXowLTldKT8kLztcbmNvbnN0IEROU19MQUJFTF9QQVRURVJOID0gL15bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyQvO1xuXG5mdW5jdGlvbiBhc3NlcnRLdWJlcm5ldGVzTmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKG5hbWUubGVuZ3RoID4gMjUzIHx8ICFETlNfU1VCRE9NQUlOX1BBVFRFUk4udGVzdChuYW1lKSkge1xuICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX0lOVkFMSURfTkFNRVwiLFxuICAgICAgYEludmFsaWQgS3ViZXJuZXRlcyBzZWNyZXQgbmFtZTogXCIke25hbWV9XCIuIE5hbWVzIG11c3QgYmUgbG93ZXJjYXNlIEROUy0xMTIzIHN1YmRvbWFpbnMgKGxldHRlcnMsIGRpZ2l0cywgJy0nLCBhbmQgJy4nKS5gXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRLdWJlcm5ldGVzTmFtZXNwYWNlKG5hbWVzcGFjZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChuYW1lc3BhY2UubGVuZ3RoID4gNjMgfHwgIUROU19MQUJFTF9QQVRURVJOLnRlc3QobmFtZXNwYWNlKSkge1xuICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgIFwiU0VDUkVUX0lOVkFMSURfTkFNRVwiLFxuICAgICAgYEludmFsaWQgS3ViZXJuZXRlcyBuYW1lc3BhY2U6IFwiJHtuYW1lc3BhY2V9XCIuIE5hbWVzcGFjZXMgbXVzdCBiZSBsb3dlcmNhc2UgRE5TLTExMjMgbGFiZWxzLmBcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvRGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IERhdGUgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBkYXRlID0gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIHJldHVybiBOdW1iZXIuaXNOYU4oZGF0ZS5nZXRUaW1lKCkpID8gdW5kZWZpbmVkIDogZGF0ZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VUYWdzKHJhdzogc3RyaW5nIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghcmF3KSByZXR1cm4gdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gcGFyc2VkICYmIHR5cGVvZiBwYXJzZWQgPT09IFwib2JqZWN0XCJcbiAgICAgID8gKHBhcnNlZCBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBAY2xhc3MgS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VcbiAqIEBzdW1tYXJ5IE5hdGl2ZSBLdWJlcm5ldGVzIFNlY3JldHMgYmFja2VuZC5cbiAqIEBkZXNjcmlwdGlvbiBJbXBsZW1lbnRzIHRoZSB7QGxpbmsgU2VjcmV0U2VydmljZX0gY29udHJhY3Qgb24gdG9wIG9mXG4gKiBuYW1lc3BhY2VkIEt1YmVybmV0ZXMgYFNlY3JldGAgb2JqZWN0cy4gRWFjaCBERUNBRiBzZWNyZXQgaXMgc3RvcmVkIGFzIGFuXG4gKiBgT3BhcXVlYCBTZWNyZXQgd2hvc2UgYHBheWxvYWRgIGRhdGEga2V5IGhvbGRzIHRoZSBzZXJpYWxpemVkXG4gKiB7QGxpbmsgU2VyaWFsaXplZFNlY3JldFBheWxvYWR9IGVudmVsb3BlLCB3aGlsZSBlbmNvZGluZywgY29udGVudCB0eXBlLCB0YWdzLFxuICogbG9naWNhbCB2ZXJzaW9uLCBhbmQgb3duZXJzaGlwIGhpbnRzIGxpdmUgaW4gYGRlY2FmLXRzLmlvLypgIGFubm90YXRpb25zLlxuICpcbiAqIEF1dGhlbnRpY2F0aW9uIHVzZXMgdGhlIHN0YW5kYXJkIEt1YmVybmV0ZXMgY2xpZW50IHJlc29sdXRpb24gb3JkZXI6XG4gKiBleHBsaWNpdCBgc2VydmVyYCBjcmVkZW50aWFscywgYW4gZXhwbGljaXQgYGt1YmVjb25maWdgIHBhdGgsIGBLVUJFQ09ORklHYCxcbiAqIGB+Ly5rdWJlL2NvbmZpZ2AsIGFuZCBmaW5hbGx5IHRoZSBpbi1jbHVzdGVyIHNlcnZpY2UgYWNjb3VudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEt1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZWNyZXRTZXJ2aWNlPFxuICBDb3JlVjFBcGksXG4gIEt1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlQ29uZmlnXG4+IHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFNlY3JldFByb3ZpZGVyID0gXCJrdWJlcm5ldGVzXCI7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOlxuICAgIHwgS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWdcbiAgICB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZW52ID0gS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50LnNlY3JldHMua3ViZXJuZXRlcztcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBlbnZTdHJpbmcoZW52Py5uYW1lc3BhY2UpO1xuICAgIGNvbnN0IGt1YmVjb25maWcgPSBlbnZTdHJpbmcoZW52Py5rdWJlY29uZmlnKTtcbiAgICBjb25zdCBjb250ZXh0ID0gZW52U3RyaW5nKGVudj8uY29udGV4dCk7XG4gICAgY29uc3Qgc2VydmVyID0gZW52U3RyaW5nKGVudj8uc2VydmVyKTtcbiAgICBpZiAoIW5hbWVzcGFjZSAmJiAha3ViZWNvbmZpZyAmJiAhY29udGV4dCAmJiAhc2VydmVyKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogXCJrdWJlcm5ldGVzXCIsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBrdWJlY29uZmlnLFxuICAgICAgY29udGV4dCxcbiAgICAgIHNlcnZlcixcbiAgICAgIHRva2VuOiBlbnZTdHJpbmcoZW52LnRva2VuKSxcbiAgICAgIHRva2VuRmlsZTogZW52U3RyaW5nKGVudi50b2tlbkZpbGUpLFxuICAgICAgY2FGaWxlOiBlbnZTdHJpbmcoZW52LmNhRmlsZSksXG4gICAgICBjYURhdGE6IGVudlN0cmluZyhlbnYuY2FEYXRhKSxcbiAgICAgIGNlcnRGaWxlOiBlbnZTdHJpbmcoZW52LmNlcnRGaWxlKSxcbiAgICAgIGtleUZpbGU6IGVudlN0cmluZyhlbnYua2V5RmlsZSksXG4gICAgICBjZXJ0RGF0YTogZW52U3RyaW5nKGVudi5jZXJ0RGF0YSksXG4gICAgICBrZXlEYXRhOiBlbnZTdHJpbmcoZW52LmtleURhdGEpLFxuICAgICAgc2tpcFRMU1ZlcmlmeTogZW52Qm9vbGVhbihlbnYuc2tpcFRMU1ZlcmlmeSksXG4gICAgICBzZXJ2aWNlQWNjb3VudDogZW52Qm9vbGVhbihlbnYuc2VydmljZUFjY291bnQpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEt1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlQ29uZmlnOyBjbGllbnQ6IENvcmVWMUFwaSB9PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVxuICAgICk7XG4gICAgY29uc3QgY29uZmlnID1cbiAgICAgIHRoaXMuZ2V0Q29uZmlnRnJvbUFyZ3M8S3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWc+KC4uLmFyZ3MpO1xuICAgIGNvbnN0IGt1YmVDb25maWcgPSB0aGlzLmJ1aWxkS3ViZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMucmVzb2x2ZU5hbWVzcGFjZShjb25maWcsIGt1YmVDb25maWcpO1xuICAgIGNvbnN0IHJlc29sdmVkOiBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyA9IHsgLi4uY29uZmlnLCBuYW1lc3BhY2UgfTtcbiAgICBjb25zdCBjbGllbnQgPSBrdWJlQ29uZmlnLm1ha2VBcGlDbGllbnQoQ29yZVYxQXBpKTtcbiAgICB0aGlzLl9jb25maWcgPSByZXNvbHZlZDtcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgSW5pdGlhbGl6ZWQgS3ViZXJuZXRlcyBzZWNyZXQgc2VydmljZSBmb3IgbmFtZXNwYWNlIFwiJHtuYW1lc3BhY2V9XCJgXG4gICAgKTtcbiAgICByZXR1cm4geyBjb25maWc6IHJlc29sdmVkLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHN0b3JlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZTogU2VjcmV0TmFtZSxcbiAgICB2YWx1ZTogVCxcbiAgICBvcHRpb25zOiBTdG9yZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzdG9yZVwiLCB0cnVlKSkuZm9yKHRoaXMuc3RvcmUpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWROYW1lID0gdGhpcy5ub3JtYWxpemVOYW1lKG5hbWUpO1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMucmVzb2x2ZU5hbWVzcGFjZU9wdGlvbihvcHRpb25zLm5hbWVzcGFjZSk7XG4gICAgbG9nLnZlcmJvc2UoYFN0b3Jpbmcgc2VjcmV0ICR7bm9ybWFsaXplZE5hbWV9IGluIG5hbWVzcGFjZSAke25hbWVzcGFjZX1gKTtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTZWNyZXRQYXlsb2FkKHZhbHVlKTtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5idWlsZFNlY3JldChub3JtYWxpemVkTmFtZSwgbmFtZXNwYWNlLCBzZXJpYWxpemVkLCBvcHRpb25zKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5jcmVhdGVOYW1lc3BhY2VkU2VjcmV0KHsgbmFtZXNwYWNlLCBib2R5IH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAodGhpcy5zdGF0dXNPZihlcnJvcikgPT09IDQwOSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5jbGllbnQucmVhZE5hbWVzcGFjZWRTZWNyZXQoe1xuICAgICAgICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYm9keS5tZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLihib2R5Lm1ldGFkYXRhIHx8IHt9KSxcbiAgICAgICAgICAgIHJlc291cmNlVmVyc2lvbjogZXhpc3RpbmcubWV0YWRhdGE/LnJlc291cmNlVmVyc2lvbixcbiAgICAgICAgICB9O1xuICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlcGxhY2VOYW1lc3BhY2VkU2VjcmV0KHtcbiAgICAgICAgICAgIG5hbWU6IG5vcm1hbGl6ZWROYW1lLFxuICAgICAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAocmVwbGFjZUVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKHJlcGxhY2VFcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyLFxuICAgICAgbmFtZTogbm9ybWFsaXplZE5hbWUsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICB2ZXJzaW9uOiBvcHRpb25zLnZlcnNpb24sXG4gICAgICB1cmk6IGBrdWJlcm5ldGVzOi8vJHtuYW1lc3BhY2V9LyR7bm9ybWFsaXplZE5hbWV9YCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmV0cmlldmU8VCBleHRlbmRzIFNlY3JldFBheWxvYWQgPSBTZWNyZXRQYXlsb2FkPihcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogUmV0cmlldmVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldHJpZXZlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJldHJpZXZlXG4gICAgKTtcbiAgICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgdmVyc2lvbiB9ID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKFxuICAgICAgbmFtZU9yUmVmLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYFJldHJpZXZpbmcgc2VjcmV0ICR7bmFtZX0gZnJvbSBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9YCk7XG5cbiAgICBjb25zdCBzZWNyZXQgPSBhd2FpdCB0aGlzLnJlYWRTZWNyZXQobmFtZSwgbmFtZXNwYWNlKTtcbiAgICB0aGlzLmFzc2VydFZlcnNpb24oc2VjcmV0LCB2ZXJzaW9uKTtcblxuICAgIGNvbnN0IHJhdyA9IHNlY3JldC5kYXRhPy5bUEFZTE9BRF9EQVRBX0tFWV07XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgTm8gc2VjcmV0IHZhbHVlIGZvdW5kIGZvciBcIiR7bmFtZX1cIiBpbiBuYW1lc3BhY2UgXCIke25hbWVzcGFjZX1cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHBheWxvYWQ6IFNlcmlhbGl6ZWRTZWNyZXRQYXlsb2FkO1xuICAgIHRyeSB7XG4gICAgICBwYXlsb2FkID0gSlNPTi5wYXJzZShcbiAgICAgICAgQnVmZmVyLmZyb20ocmF3LCBcImJhc2U2NFwiKS50b1N0cmluZyhcInV0ZjhcIilcbiAgICAgICkgYXMgU2VyaWFsaXplZFNlY3JldFBheWxvYWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBTZWNyZXRFcnJvcihcbiAgICAgICAgXCJTRUNSRVRfREVTRVJJQUxJWkFUSU9OX0ZBSUxFRFwiLFxuICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIHNlY3JldCBwYXlsb2FkIGZvciBcIiR7bmFtZX1cIjogJHsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2V9YCxcbiAgICAgICAgZXJyb3IgYXMgRXJyb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2VyaWFsaXplU2VjcmV0UGF5bG9hZChwYXlsb2FkKSBhcyBUO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICBvcHRpb25zOiBEZWxldGVTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgdmVyc2lvbiB9ID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKFxuICAgICAgbmFtZU9yUmVmLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYERlbGV0aW5nIHNlY3JldCAke25hbWV9IGZyb20gbmFtZXNwYWNlICR7bmFtZXNwYWNlfWApO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IHRoaXMucmVhZFNlY3JldChuYW1lLCBuYW1lc3BhY2UpO1xuICAgICAgdGhpcy5hc3NlcnRWZXJzaW9uKHNlY3JldCwgdmVyc2lvbik7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZU5hbWVzcGFjZWRTZWNyZXQoeyBuYW1lLCBuYW1lc3BhY2UgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhpc3RzKFxuICAgIG5hbWVPclJlZjogU2VjcmV0TmFtZSB8IFNlY3JldFJlZmVyZW5jZSxcbiAgICBvcHRpb25zOiBFeGlzdHNTZWNyZXRPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImV4aXN0c1wiLCB0cnVlKSkuZm9yKHRoaXMuZXhpc3RzKTtcbiAgICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgdmVyc2lvbiB9ID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKFxuICAgICAgbmFtZU9yUmVmLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gICAgbG9nLnZlcmJvc2UoYENoZWNraW5nIGlmIHNlY3JldCAke25hbWV9IGV4aXN0cyBpbiBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9YCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgdGhpcy5yZWFkU2VjcmV0KG5hbWUsIG5hbWVzcGFjZSk7XG4gICAgICB0aGlzLmFzc2VydFZlcnNpb24oc2VjcmV0LCB2ZXJzaW9uKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSByZXR1cm4gZmFsc2U7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaXN0KFxuICAgIG9wdGlvbnM6IExpc3RTZWNyZXRzT3B0aW9ucyA9IHt9LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8U2VjcmV0TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsaXN0XCIsIHRydWUpKS5mb3IodGhpcy5saXN0KTtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSB0aGlzLnJlc29sdmVOYW1lc3BhY2VPcHRpb24ob3B0aW9ucy5uYW1lc3BhY2UpO1xuICAgIGxvZy52ZXJib3NlKGBMaXN0aW5nIHNlY3JldHMgaW4gbmFtZXNwYWNlICR7bmFtZXNwYWNlfWApO1xuXG4gICAgY29uc3QgcmVzdWx0OiBTZWNyZXRNZXRhZGF0YVtdID0gW107XG4gICAgbGV0IGNvbnRpbnVlVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICBkbyB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQubGlzdE5hbWVzcGFjZWRTZWNyZXQoe1xuICAgICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgICBsYWJlbFNlbGVjdG9yOiBgJHtNQU5BR0VEX0xBQkVMfT10cnVlYCxcbiAgICAgICAgICBsaW1pdDogMTAwLFxuICAgICAgICAgIF9jb250aW51ZTogY29udGludWVUb2tlbixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBzZWNyZXQgb2YgcmVzcG9uc2UuaXRlbXMgfHwgW10pIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnRvTWV0YWRhdGEoc2VjcmV0LCBuYW1lc3BhY2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRpbnVlVG9rZW4gPSByZXNwb25zZS5tZXRhZGF0YT8uX2NvbnRpbnVlO1xuICAgICAgfSB3aGlsZSAoY29udGludWVUb2tlbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSByZXN1bHQuZmlsdGVyKChtZXRhKSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5lbmFibGVkID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCFvcHRpb25zLnRhZ3MpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMudGFncykuZXZlcnkoXG4gICAgICAgIChba2V5LCB2YWx1ZV0pID0+IG1ldGEudGFncz8uW2tleV0gPT09IHZhbHVlXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQgPz8gMDtcbiAgICBjb25zdCBlbmQgPVxuICAgICAgdHlwZW9mIG9wdGlvbnMubGltaXQgPT09IFwibnVtYmVyXCIgPyBvZmZzZXQgKyBvcHRpb25zLmxpbWl0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBmaWx0ZXJlZC5zbGljZShvZmZzZXQsIGVuZCk7XG4gIH1cblxuICBhc3luYyBtZXRhZGF0YShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczogU2VjcmV0TWV0YWRhdGFPcHRpb25zID0ge30sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxTZWNyZXRNZXRhZGF0YSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJtZXRhZGF0YVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5tZXRhZGF0YVxuICAgICk7XG4gICAgY29uc3QgeyBuYW1lLCBuYW1lc3BhY2UsIHZlcnNpb24gfSA9IHRoaXMucmVzb2x2ZVJlZmVyZW5jZShcbiAgICAgIG5hbWVPclJlZixcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICAgIGxvZy52ZXJib3NlKGBHZXR0aW5nIG1ldGFkYXRhIGZvciBzZWNyZXQgJHtuYW1lfSBpbiBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9YCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgdGhpcy5yZWFkU2VjcmV0KG5hbWUsIG5hbWVzcGFjZSk7XG4gICAgICB0aGlzLmFzc2VydFZlcnNpb24oc2VjcmV0LCB2ZXJzaW9uKTtcbiAgICAgIHJldHVybiB0aGlzLnRvTWV0YWRhdGEoc2VjcmV0LCBuYW1lc3BhY2UpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcm90YXRlPFQgZXh0ZW5kcyBTZWNyZXRQYXlsb2FkID0gU2VjcmV0UGF5bG9hZD4oXG4gICAgbmFtZU9yUmVmOiBTZWNyZXROYW1lIHwgU2VjcmV0UmVmZXJlbmNlLFxuICAgIHZhbHVlOiBULFxuICAgIG9wdGlvbnM6IFJvdGF0ZVNlY3JldE9wdGlvbnMgPSB7fSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPFNlY3JldFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgbmFtZXNwYWNlIH0gPSB0aGlzLnJlc29sdmVSZWZlcmVuY2UobmFtZU9yUmVmLCBvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5zdG9yZShcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHsgdmVyc2lvbjogb3B0aW9ucy5uZXdWZXJzaW9uLCBuYW1lc3BhY2UgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEt1YmVDb25maWcoY29uZmlnOiBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyk6IEt1YmVDb25maWcge1xuICAgIGNvbnN0IGt1YmVDb25maWcgPSBuZXcgS3ViZUNvbmZpZygpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoY29uZmlnLnNlcnZpY2VBY2NvdW50KSB7XG4gICAgICAgIGt1YmVDb25maWcubG9hZEZyb21DbHVzdGVyKCk7XG4gICAgICB9IGVsc2UgaWYgKGNvbmZpZy5zZXJ2ZXIpIHtcbiAgICAgICAgY29uc3QgY2x1c3Rlck5hbWUgPSBcImRlY2FmLWNsdXN0ZXJcIjtcbiAgICAgICAgY29uc3QgdXNlck5hbWUgPSBcImRlY2FmLXVzZXJcIjtcbiAgICAgICAgY29uc3QgY29udGV4dE5hbWUgPSBcImRlY2FmLWNvbnRleHRcIjtcbiAgICAgICAga3ViZUNvbmZpZy5sb2FkRnJvbU9wdGlvbnMoe1xuICAgICAgICAgIGNsdXN0ZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IGNsdXN0ZXJOYW1lLFxuICAgICAgICAgICAgICBzZXJ2ZXI6IGNvbmZpZy5zZXJ2ZXIsXG4gICAgICAgICAgICAgIGNhRGF0YTogY29uZmlnLmNhRGF0YSxcbiAgICAgICAgICAgICAgY2FGaWxlOiBjb25maWcuY2FGaWxlLFxuICAgICAgICAgICAgICBza2lwVExTVmVyaWZ5OiBjb25maWcuc2tpcFRMU1ZlcmlmeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICB1c2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiB1c2VyTmFtZSxcbiAgICAgICAgICAgICAgdG9rZW46IGNvbmZpZy50b2tlbixcbiAgICAgICAgICAgICAgdG9rZW5GaWxlOiBjb25maWcudG9rZW5GaWxlLFxuICAgICAgICAgICAgICBjZXJ0RGF0YTogY29uZmlnLmNlcnREYXRhLFxuICAgICAgICAgICAgICBjZXJ0RmlsZTogY29uZmlnLmNlcnRGaWxlLFxuICAgICAgICAgICAgICBrZXlEYXRhOiBjb25maWcua2V5RGF0YSxcbiAgICAgICAgICAgICAga2V5RmlsZTogY29uZmlnLmtleUZpbGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgY29udGV4dHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogY29udGV4dE5hbWUsXG4gICAgICAgICAgICAgIGNsdXN0ZXI6IGNsdXN0ZXJOYW1lLFxuICAgICAgICAgICAgICB1c2VyOiB1c2VyTmFtZSxcbiAgICAgICAgICAgICAgbmFtZXNwYWNlOiBjb25maWcubmFtZXNwYWNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGN1cnJlbnRDb250ZXh0OiBjb250ZXh0TmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbmZpZy5rdWJlY29uZmlnKSB7XG4gICAgICAgIGt1YmVDb25maWcubG9hZEZyb21GaWxlKGNvbmZpZy5rdWJlY29uZmlnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGt1YmVDb25maWcubG9hZEZyb21EZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcuY29udGV4dCkge1xuICAgICAgICBrdWJlQ29uZmlnLnNldEN1cnJlbnRDb250ZXh0KGNvbmZpZy5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIGt1YmVDb25maWc7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVOYW1lc3BhY2UoXG4gICAgY29uZmlnOiBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyxcbiAgICBrdWJlQ29uZmlnOiBLdWJlQ29uZmlnXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZXNwYWNlID1cbiAgICAgIGNvbmZpZy5uYW1lc3BhY2UgfHxcbiAgICAgIGt1YmVDb25maWcuZ2V0Q29udGV4dE9iamVjdChrdWJlQ29uZmlnLmdldEN1cnJlbnRDb250ZXh0KCkpPy5uYW1lc3BhY2UgfHxcbiAgICAgIFwiZGVmYXVsdFwiO1xuICAgIGFzc2VydEt1YmVybmV0ZXNOYW1lc3BhY2UobmFtZXNwYWNlKTtcbiAgICByZXR1cm4gbmFtZXNwYWNlO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlTmFtZXNwYWNlT3B0aW9uKG5hbWVzcGFjZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuYW1lc3BhY2UgfHwgdGhpcy5jb25maWcubmFtZXNwYWNlIHx8IFwiZGVmYXVsdFwiO1xuICAgIGFzc2VydEt1YmVybmV0ZXNOYW1lc3BhY2UocmVzb2x2ZWQpO1xuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVJlZmVyZW5jZShcbiAgICBuYW1lT3JSZWY6IFNlY3JldE5hbWUgfCBTZWNyZXRSZWZlcmVuY2UsXG4gICAgb3B0aW9uczoge1xuICAgICAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAgICAgdmVyc2lvbj86IHN0cmluZztcbiAgICB9XG4gICk6IHsgbmFtZTogc3RyaW5nOyBuYW1lc3BhY2U6IHN0cmluZzsgdmVyc2lvbj86IHN0cmluZyB9IHtcbiAgICBjb25zdCBuYW1lID1cbiAgICAgIHR5cGVvZiBuYW1lT3JSZWYgPT09IFwic3RyaW5nXCIgPyBuYW1lT3JSZWYgOiBuYW1lT3JSZWYubmFtZTtcbiAgICBjb25zdCBuYW1lc3BhY2UgPVxuICAgICAgb3B0aW9ucy5uYW1lc3BhY2UgfHxcbiAgICAgICh0eXBlb2YgbmFtZU9yUmVmID09PSBcInN0cmluZ1wiID8gdW5kZWZpbmVkIDogbmFtZU9yUmVmLm5hbWVzcGFjZSkgfHxcbiAgICAgIHRoaXMuY29uZmlnLm5hbWVzcGFjZSB8fFxuICAgICAgXCJkZWZhdWx0XCI7XG4gICAgYXNzZXJ0S3ViZXJuZXRlc05hbWVzcGFjZShuYW1lc3BhY2UpO1xuICAgIGNvbnN0IHZlcnNpb24gPVxuICAgICAgb3B0aW9ucy52ZXJzaW9uIHx8XG4gICAgICAodHlwZW9mIG5hbWVPclJlZiA9PT0gXCJzdHJpbmdcIiA/IHVuZGVmaW5lZCA6IG5hbWVPclJlZi52ZXJzaW9uKTtcbiAgICByZXR1cm4geyBuYW1lOiB0aGlzLm5vcm1hbGl6ZU5hbWUobmFtZSksIG5hbWVzcGFjZSwgdmVyc2lvbiB9O1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkYXRlU2VjcmV0TmFtZShuYW1lKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVTZWNyZXROYW1lKG5hbWUpO1xuICAgIGFzc2VydEt1YmVybmV0ZXNOYW1lKG5vcm1hbGl6ZWROYW1lKTtcbiAgICByZXR1cm4gbm9ybWFsaXplZE5hbWU7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU2VjcmV0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBuYW1lc3BhY2U6IHN0cmluZyxcbiAgICBzZXJpYWxpemVkOiBTZXJpYWxpemVkU2VjcmV0UGF5bG9hZCxcbiAgICBvcHRpb25zOiBTdG9yZVNlY3JldE9wdGlvbnNcbiAgKTogVjFTZWNyZXQge1xuICAgIGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgW0VOQ09ESU5HX0FOTk9UQVRJT05dOiBzZXJpYWxpemVkLmVuY29kaW5nLFxuICAgICAgW1VQREFURURfQVRfQU5OT1RBVElPTl06IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgaWYgKG9wdGlvbnMuY29udGVudFR5cGUpIHtcbiAgICAgIGFubm90YXRpb25zW0NPTlRFTlRfVFlQRV9BTk5PVEFUSU9OXSA9IG9wdGlvbnMuY29udGVudFR5cGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRhZ3MpIHtcbiAgICAgIGFubm90YXRpb25zW1RBR1NfQU5OT1RBVElPTl0gPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLnRhZ3MpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy52ZXJzaW9uKSB7XG4gICAgICBhbm5vdGF0aW9uc1tWRVJTSU9OX0FOTk9UQVRJT05dID0gb3B0aW9ucy52ZXJzaW9uO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50ZW5hbnRJZCkge1xuICAgICAgYW5ub3RhdGlvbnNbVEVOQU5UX0FOTk9UQVRJT05dID0gb3B0aW9ucy50ZW5hbnRJZDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMub3JnVW5pdElkKSB7XG4gICAgICBhbm5vdGF0aW9uc1tPUkdfVU5JVF9BTk5PVEFUSU9OXSA9IG9wdGlvbnMub3JnVW5pdElkO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5vd25lclByaW5jaXBhbElkKSB7XG4gICAgICBhbm5vdGF0aW9uc1tPV05FUl9BTk5PVEFUSU9OXSA9IG9wdGlvbnMub3duZXJQcmluY2lwYWxJZDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXBpVmVyc2lvbjogXCJ2MVwiLFxuICAgICAga2luZDogXCJTZWNyZXRcIixcbiAgICAgIHR5cGU6IFwiT3BhcXVlXCIsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgIFtNQU5BR0VEX0xBQkVMXTogXCJ0cnVlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGFubm90YXRpb25zLFxuICAgICAgfSxcbiAgICAgIHN0cmluZ0RhdGE6IHtcbiAgICAgICAgW1BBWUxPQURfREFUQV9LRVldOiBKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZFNlY3JldChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxWMVNlY3JldD4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5jbGllbnQucmVhZE5hbWVzcGFjZWRTZWNyZXQoeyBuYW1lLCBuYW1lc3BhY2UgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3NlcnRWZXJzaW9uKHNlY3JldDogVjFTZWNyZXQsIHZlcnNpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXZlcnNpb24pIHJldHVybjtcbiAgICBjb25zdCBzdG9yZWQgPSBzZWNyZXQubWV0YWRhdGE/LmFubm90YXRpb25zPy5bVkVSU0lPTl9BTk5PVEFUSU9OXTtcbiAgICBpZiAoc3RvcmVkICE9PSB2ZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgICAgYFNlY3JldCBcIiR7c2VjcmV0Lm1ldGFkYXRhPy5uYW1lfVwiIHZlcnNpb24gXCIke3ZlcnNpb259XCIgbm90IGZvdW5kYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvTWV0YWRhdGEoc2VjcmV0OiBWMVNlY3JldCwgbmFtZXNwYWNlOiBzdHJpbmcpOiBTZWNyZXRNZXRhZGF0YSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSBzZWNyZXQubWV0YWRhdGE/LmFubm90YXRpb25zIHx8IHt9O1xuICAgIGNvbnN0IHVwZGF0ZWRBdCA9IGFubm90YXRpb25zW1VQREFURURfQVRfQU5OT1RBVElPTl07XG4gICAgY29uc3QgbmFtZSA9IHNlY3JldC5tZXRhZGF0YT8ubmFtZSB8fCBcIlwiO1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlcixcbiAgICAgIG5hbWUsXG4gICAgICB2ZXJzaW9uOiBhbm5vdGF0aW9uc1tWRVJTSU9OX0FOTk9UQVRJT05dLFxuICAgICAgY3JlYXRlZEF0OiB0b0RhdGUoc2VjcmV0Lm1ldGFkYXRhPy5jcmVhdGlvblRpbWVzdGFtcCksXG4gICAgICB1cGRhdGVkQXQ6IHVwZGF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHVwZGF0ZWRBdClcbiAgICAgICAgOiB0b0RhdGUoc2VjcmV0Lm1ldGFkYXRhPy5jcmVhdGlvblRpbWVzdGFtcCksXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgY29udGVudFR5cGU6IGFubm90YXRpb25zW0NPTlRFTlRfVFlQRV9BTk5PVEFUSU9OXSxcbiAgICAgIHRhZ3M6IHBhcnNlVGFncyhhbm5vdGF0aW9uc1tUQUdTX0FOTk9UQVRJT05dKSxcbiAgICAgIGV4dGVybmFsSWQ6IHNlY3JldC5tZXRhZGF0YT8udWlkLFxuICAgICAgdXJpOiBga3ViZXJuZXRlczovLyR7bmFtZXNwYWNlfS8ke25hbWV9YCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0dXNPZihlcnJvcjogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQXBpRXhjZXB0aW9uKSByZXR1cm4gZXJyb3IuY29kZTtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBlcnJvciBhcyB7IGNvZGU/OiB1bmtub3duOyBzdGF0dXNDb2RlPzogdW5rbm93biB9O1xuICAgIGlmICh0eXBlb2YgY2FuZGlkYXRlPy5jb2RlID09PSBcIm51bWJlclwiKSByZXR1cm4gY2FuZGlkYXRlLmNvZGU7XG4gICAgaWYgKHR5cGVvZiBjYW5kaWRhdGU/LnN0YXR1c0NvZGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGUuc3RhdHVzQ29kZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgbWVzc2FnZU9mKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBjb25zdCBlcnIgPSBlcnJvciBhcyB7XG4gICAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgIGJvZHk/OiB7IG1lc3NhZ2U/OiBzdHJpbmc7IHJlYXNvbj86IHN0cmluZyB9O1xuICAgIH07XG4gICAgcmV0dXJuIGVycj8uYm9keT8ubWVzc2FnZSB8fCBlcnI/LmJvZHk/LnJlYXNvbiB8fCBlcnI/Lm1lc3NhZ2UgfHwgZXJyPy5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IHVua25vd24pOiBFcnJvciB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQmFzZUVycm9yKSByZXR1cm4gZXJyb3I7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNPZihlcnJvcik7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZU9mKGVycm9yKTtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoXG4gICAgICBzdGF0dXMgPT09IDQwNCB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzdGF0dXMgPT09IDQwOSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHxcbiAgICAgIGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEF1dGhvcml6YXRpb25FcnJvcihgQXV0aGVudGljYXRpb24gZmFpbGVkOiAke21lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cyA9PT0gNDAzIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoYFBlcm1pc3Npb24gZGVuaWVkOiAke21lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc3RhdHVzID09PSA0MDAgfHxcbiAgICAgIHN0YXR1cyA9PT0gNDIyIHx8XG4gICAgICBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cyA9PT0gNDI5IHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInJhdGUgbGltaXRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX1JBVEVfTElNSVRFRFwiLFxuICAgICAgICBgUmF0ZSBsaW1pdGVkOiAke21lc3NhZ2V9YCxcbiAgICAgICAgZXJyb3IgYXMgRXJyb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc3RhdHVzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNTAwKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29ubmVjdGlvblwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidGltZW91dFwiKSB8fFxuICAgICAgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdmFpbGFibGVcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXcgU2VjcmV0RXJyb3IoXG4gICAgICAgIFwiU0VDUkVUX1BST1ZJREVSX1VOQVZBSUxBQkxFXCIsXG4gICAgICAgIGBQcm92aWRlciB1bmF2YWlsYWJsZTogJHttZXNzYWdlfWAsXG4gICAgICAgIGVycm9yIGFzIEVycm9yXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/kubernetes/config
|
|
3
|
+
* @summary Kubernetes secret service configuration.
|
|
4
|
+
* @description Configuration schema for the native Kubernetes Secrets integration,
|
|
5
|
+
* including kubeconfig selection, explicit API-server credentials, and the
|
|
6
|
+
* default namespace used by every operation.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS3ViZXJuZXRlc1NlY3JldFNlcnZpY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9rdWJlcm5ldGVzL0t1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvc2VjcmV0cy9rdWJlcm5ldGVzL2NvbmZpZ1xuICogQHN1bW1hcnkgS3ViZXJuZXRlcyBzZWNyZXQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gc2NoZW1hIGZvciB0aGUgbmF0aXZlIEt1YmVybmV0ZXMgU2VjcmV0cyBpbnRlZ3JhdGlvbixcbiAqIGluY2x1ZGluZyBrdWJlY29uZmlnIHNlbGVjdGlvbiwgZXhwbGljaXQgQVBJLXNlcnZlciBjcmVkZW50aWFscywgYW5kIHRoZVxuICogZGVmYXVsdCBuYW1lc3BhY2UgdXNlZCBieSBldmVyeSBvcGVyYXRpb24uXG4gKi9cblxuaW1wb3J0IHsgU2VjcmV0U2VydmljZUNvbmZpZyB9IGZyb20gXCIuLi8uLi9zZWNyZXRzL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBLdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZyBleHRlbmRzIFNlY3JldFNlcnZpY2VDb25maWcge1xuICBwcm92aWRlcjogXCJrdWJlcm5ldGVzXCI7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTmFtZXNwYWNlIHRoYXQgb3ducyB0aGUgc2VjcmV0cy5cbiAgICogQHN1bW1hcnkgRGVmYXVsdHMgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgYWN0aXZlIGt1YmVjb25maWcgY29udGV4dCwgdGhlblxuICAgKiB0byBgZGVmYXVsdGAuIEluZGl2aWR1YWwgb3BlcmF0aW9ucyBtYXkgb3ZlcnJpZGUgaXQgdGhyb3VnaCB0aGVpciBvcHRpb25zLlxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhdGggdG8gYSBrdWJlY29uZmlnIGZpbGUuXG4gICAqIEBzdW1tYXJ5IFdoZW4gb21pdHRlZCB0aGUgY2xpZW50IGZhbGxzIGJhY2sgdG8gYEtVQkVDT05GSUdgLFxuICAgKiBgfi8ua3ViZS9jb25maWdgLCBhbmQgZmluYWxseSBpbi1jbHVzdGVyIHNlcnZpY2UtYWNjb3VudCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAga3ViZWNvbmZpZz86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBLdWJlY29uZmlnIGNvbnRleHQgdG8gc2VsZWN0IGFmdGVyIGxvYWRpbmcuXG4gICAqL1xuICBjb250ZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4cGxpY2l0IEt1YmVybmV0ZXMgQVBJIHNlcnZlciBVUkwuXG4gICAqIEBzdW1tYXJ5IFdoZW4gcHJlc2VudCB0aGUgY2xpZW50IGlzIGJ1aWx0IGZyb20gdGhlIGV4cGxpY2l0IHNlcnZlcixcbiAgICogdG9rZW4vY2VydGlmaWNhdGUgZmllbGRzLCBhbmQgbmFtZXNwYWNlIGluc3RlYWQgb2YgYSBrdWJlY29uZmlnIGZpbGUuXG4gICAqL1xuICBzZXJ2ZXI/OiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICB0b2tlbkZpbGU/OiBzdHJpbmc7XG4gIGNhRmlsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCYXNlNjQgZW5jb2RlZCBQRU0gY2VydGlmaWNhdGUgYXV0aG9yaXR5IGJ1bmRsZS5cbiAgICovXG4gIGNhRGF0YT86IHN0cmluZztcbiAgY2VydEZpbGU/OiBzdHJpbmc7XG4gIGtleUZpbGU/OiBzdHJpbmc7XG4gIGNlcnREYXRhPzogc3RyaW5nO1xuICBrZXlEYXRhPzogc3RyaW5nO1xuICBza2lwVExTVmVyaWZ5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGb3JjZSBsb2FkaW5nIHRoZSBpbi1jbHVzdGVyIHNlcnZpY2UtYWNjb3VudCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgc2VydmljZUFjY291bnQ/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/secrets/kubernetes
|
|
3
|
+
* @summary Kubernetes secret service exports.
|
|
4
|
+
* @description Re-exports the native Kubernetes Secrets service, its configuration,
|
|
5
|
+
* and its environment slice.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./KubernetesSecretService.js";
|
|
8
|
+
export * from "./KubernetesSecretServiceConfig.js";
|
|
9
|
+
export * from "./KubernetesSecretEnvironment.js";
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9rdWJlcm5ldGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsNkNBQTBDO0FBQzFDLG1EQUFnRDtBQUNoRCxpREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3NlY3JldHMva3ViZXJuZXRlc1xuICogQHN1bW1hcnkgS3ViZXJuZXRlcyBzZWNyZXQgc2VydmljZSBleHBvcnRzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIG5hdGl2ZSBLdWJlcm5ldGVzIFNlY3JldHMgc2VydmljZSwgaXRzIGNvbmZpZ3VyYXRpb24sXG4gKiBhbmQgaXRzIGVudmlyb25tZW50IHNsaWNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL0t1YmVybmV0ZXNTZWNyZXRTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LdWJlcm5ldGVzU2VjcmV0U2VydmljZUNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vS3ViZXJuZXRlc1NlY3JldEVudmlyb25tZW50XCI7XG4iXX0=
|
|
@@ -70,4 +70,4 @@ export function extractKeyFromDerivedKey(derivedKey) {
|
|
|
70
70
|
const key = buffer.slice(16).toString("base64");
|
|
71
71
|
return { salt, key };
|
|
72
72
|
}
|
|
73
|
-
//# sourceMappingURL=
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VjcmV0cy9tb2RlbC9Nb2RlbFNlY3JldENyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNuRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckIsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE9BQWUsRUFDZixLQUFhLEVBQ2IsR0FBVztJQUVYLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxTQUFTLEVBQUUsQ0FBUSxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxFQUFFLENBQUM7UUFFakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQ3hDLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxDQUFDLFNBQVMsQ0FBQyxDQUNaLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsTUFBTSxlQUFlLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUMx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QUMsQ0FBQztJQUM3RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxhQUFhLENBQ3JCLHlCQUEwQixLQUFlLENBQUMsT0FBTyxFQUFFLENBQ3BELENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxVQUFrQjtJQUl6RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWV4cGVjdC1lcnJvciAtIGNyeXB0byBpcyBhIHBlZXIgZGVwZW5kZW5jeSB3aXRoIGV4cG9ydHMgZmllbGRcbmltcG9ydCB7IGdldENyeXB0bywgZ2V0U3VidGxlIH0gZnJvbSBcIkBkZWNhZi10cy9jcnlwdG8vaW50ZWdyYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhIH0gZnJvbSBcIi4vU2VjcmV0XCI7XG5cbmNvbnN0IEFMR09SSVRITSA9IHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMjU2IH07XG5jb25zdCBJVl9MRU5HVEggPSAxMjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRQYXlsb2FkKFxuICBwYXlsb2FkOiBzdHJpbmcsXG4gIGtleUlkOiBzdHJpbmcsXG4gIGtleTogc3RyaW5nXG4pOiBQcm9taXNlPHsgZW5jcnlwdGVkRGF0YTogc3RyaW5nOyBtZXRhZGF0YTogU2VjcmV0RW5jcnlwdGlvbk1ldGFkYXRhIH0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjcnlwdG8gPSAoYXdhaXQgZ2V0Q3J5cHRvKCkpIGFzIGFueTtcbiAgICBjb25zdCBzdWJ0bGUgPSBhd2FpdCBnZXRTdWJ0bGUoKTtcblxuICAgIGNvbnN0IHNhbHQgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoSVZfTEVOR1RIKTtcbiAgICBjb25zdCBrZXlCdWZmZXIgPSBCdWZmZXIuZnJvbShrZXksIFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGltcG9ydGVkS2V5ID0gYXdhaXQgc3VidGxlLmltcG9ydEtleShcbiAgICAgIFwicmF3XCIsXG4gICAgICBrZXlCdWZmZXIsXG4gICAgICBBTEdPUklUSE0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuXG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IGRhdGEgPSBlbmNvZGVyLmVuY29kZShwYXlsb2FkKTtcbiAgICBjb25zdCBlbmNyeXB0ZWRCdWZmZXIgPSBhd2FpdCBzdWJ0bGUuZW5jcnlwdChcbiAgICAgIHtcbiAgICAgICAgLi4uQUxHT1JJVEhNLFxuICAgICAgICBpdjogc2FsdCxcbiAgICAgIH0sXG4gICAgICBpbXBvcnRlZEtleSxcbiAgICAgIGRhdGFcbiAgICApO1xuXG4gICAgY29uc3QgZW5jcnlwdGVkQnl0ZXMgPSBuZXcgVWludDhBcnJheShlbmNyeXB0ZWRCdWZmZXIpO1xuICAgIGNvbnN0IGNvbWJpbmVkID0gbmV3IFVpbnQ4QXJyYXkoSVZfTEVOR1RIICsgZW5jcnlwdGVkQnl0ZXMubGVuZ3RoKTtcbiAgICBjb21iaW5lZC5zZXQoc2FsdCk7XG4gICAgY29tYmluZWQuc2V0KGVuY3J5cHRlZEJ5dGVzLCBJVl9MRU5HVEgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVuY3J5cHRlZERhdGE6IEJ1ZmZlci5mcm9tKGNvbWJpbmVkKS50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIGtleUlkLFxuICAgICAgICBpdjogc2FsdC50b1N0cmluZyhcImJhc2U2NFwiKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gZW5jcnlwdCBwYXlsb2FkOiAkeyhlcnJvciBhcyBFcnJvcikubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdFBheWxvYWQoXG4gIGVuY3J5cHRlZERhdGE6IHN0cmluZyxcbiAga2V5OiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3VidGxlID0gYXdhaXQgZ2V0U3VidGxlKCk7XG5cbiAgICBjb25zdCBjb21iaW5lZCA9IEJ1ZmZlci5mcm9tKGVuY3J5cHRlZERhdGEsIFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGl2ID0gY29tYmluZWQuc2xpY2UoMCwgSVZfTEVOR1RIKTtcbiAgICBjb25zdCBjaXBoZXJUZXh0ID0gY29tYmluZWQuc2xpY2UoSVZfTEVOR1RIKTtcblxuICAgIGNvbnN0IGtleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGtleSwgXCJiYXNlNjRcIik7XG4gICAgY29uc3QgaW1wb3J0ZWRLZXkgPSBhd2FpdCBzdWJ0bGUuaW1wb3J0S2V5KFxuICAgICAgXCJyYXdcIixcbiAgICAgIGtleUJ1ZmZlcixcbiAgICAgIEFMR09SSVRITSxcbiAgICAgIGZhbHNlLFxuICAgICAgW1wiZGVjcnlwdFwiXVxuICAgICk7XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRCdWZmZXIgPSBhd2FpdCBzdWJ0bGUuZGVjcnlwdChcbiAgICAgIHtcbiAgICAgICAgLi4uQUxHT1JJVEhNLFxuICAgICAgICBpdjogaXYsXG4gICAgICB9LFxuICAgICAgaW1wb3J0ZWRLZXksXG4gICAgICBjaXBoZXJUZXh0XG4gICAgKTtcblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoZGVjcnlwdGVkQnVmZmVyKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gZGVjcnlwdCBwYXlsb2FkOiAkeyhlcnJvciBhcyBFcnJvcikubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVyaXZlS2V5RnJvbVNlY3JldChcbiAgc2VjcmV0OiBzdHJpbmcsXG4gIHNhbHQ/OiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgY3J5cHRvID0gKGF3YWl0IGdldENyeXB0bygpKSBhcyBhbnk7XG4gICAgY29uc3Qgc2FsdEJ1ZmZlciA9IHNhbHRcbiAgICAgID8gQnVmZmVyLmZyb20oc2FsdCwgXCJiYXNlNjRcIilcbiAgICAgIDogY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KTtcbiAgICBjb25zdCBrZXkgPSBjcnlwdG8ucGJrZGYyU3luYyhzZWNyZXQsIHNhbHRCdWZmZXIsIDEwMF8wMDAsIDMyLCBcInNoYTI1NlwiKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbc2FsdEJ1ZmZlciwga2V5XSkudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgRmFpbGVkIHRvIGRlcml2ZSBrZXk6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWBcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0S2V5RnJvbURlcml2ZWRLZXkoZGVyaXZlZEtleTogc3RyaW5nKToge1xuICBzYWx0OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGRlcml2ZWRLZXksIFwiYmFzZTY0XCIpO1xuICBjb25zdCBzYWx0ID0gYnVmZmVyLnNsaWNlKDAsIDE2KS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgY29uc3Qga2V5ID0gYnVmZmVyLnNsaWNlKDE2KS50b1N0cmluZyhcImJhc2U2NFwiKTtcbiAgcmV0dXJuIHsgc2FsdCwga2V5IH07XG59XG4iXX0=
|
|
@@ -14,4 +14,4 @@ export const ModelSecretEnvironment = SecretEnvironment.accumulate({
|
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZWNyZXRFbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWNyZXRzL21vZGVsL01vZGVsU2VjcmV0RW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVDQUFrQztBQWE5RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDakUsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsRUFBRTtTQUNWO0tBQ0Y7Q0FDNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9zZWNyZXRzL21vZGVsL2Vudmlyb25tZW50XG4gKiBAc3VtbWFyeSBNb2RlbC1iYWNrZWQgc2VjcmV0IGVudmlyb25tZW50LlxuICogQGRlc2NyaXB0aW9uIEV4dGVuZHMgdGhlIGNvbW1vbiBzZWNyZXRzIGVudmlyb25tZW50IHdpdGggdGhlIGBzZWNyZXRzLm1vZGVsYCBzaGFwZVxuICogbWF0Y2hpbmcge0BsaW5rIE1vZGVsU2VjcmV0U2VydmljZUNvbmZpZ30sIHNvIHtAbGluayBNb2RlbFNlY3JldFNlcnZpY2V9IGNhbiBmYWxsXG4gKiBiYWNrIHRvIGl0IHdoZW4gbm8gY29uZmlnIGlzIHBhc3NlZCB0byBgaW5pdGlhbGl6ZWAuXG4gKi9cbmltcG9ydCB7IFNlY3JldEVudmlyb25tZW50IH0gZnJvbSBcIi4uL2NvcmUvU2VjcmV0RW52aXJvbm1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbFNlY3JldEVudmlyb25tZW50Q29uZmlnIHtcbiAga2V5U2VjcmV0OiBzdHJpbmc7XG4gIGtleUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsU2VjcmV0RW52aXJvbm1lbnRTaGFwZSB7XG4gIHNlY3JldHM6IHtcbiAgICBtb2RlbDogTW9kZWxTZWNyZXRFbnZpcm9ubWVudENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE1vZGVsU2VjcmV0RW52aXJvbm1lbnQgPSBTZWNyZXRFbnZpcm9ubWVudC5hY2N1bXVsYXRlKHtcbiAgc2VjcmV0czoge1xuICAgIG1vZGVsOiB7XG4gICAgICBrZXlTZWNyZXQ6IFwiXCIsXG4gICAgICBrZXlJZDogXCJcIixcbiAgICB9LFxuICB9LFxufSBhcyBNb2RlbFNlY3JldEVudmlyb25tZW50U2hhcGUpO1xuIl19
|