index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.refreshKMSCredentials = exports.isEmptyCredentials = void 0;
  4. const aws_1 = require("./aws");
  5. const azure_1 = require("./azure");
  6. const gcp_1 = require("./gcp");
  7. /**
  8. * Auto credential fetching should only occur when the provider is defined on the kmsProviders map
  9. * and the settings are an empty object.
  10. *
  11. * This is distinct from a nullish provider key.
  12. *
  13. * @internal - exposed for testing purposes only
  14. */
  15. function isEmptyCredentials(providerName, kmsProviders) {
  16. const provider = kmsProviders[providerName];
  17. if (provider == null) {
  18. return false;
  19. }
  20. return typeof provider === 'object' && Object.keys(provider).length === 0;
  21. }
  22. exports.isEmptyCredentials = isEmptyCredentials;
  23. /**
  24. * Load cloud provider credentials for the user provided KMS providers.
  25. * Credentials will only attempt to get loaded if they do not exist
  26. * and no existing credentials will get overwritten.
  27. *
  28. * @internal
  29. */
  30. async function refreshKMSCredentials(kmsProviders) {
  31. let finalKMSProviders = kmsProviders;
  32. if (isEmptyCredentials('aws', kmsProviders)) {
  33. finalKMSProviders = await (0, aws_1.loadAWSCredentials)(finalKMSProviders);
  34. }
  35. if (isEmptyCredentials('gcp', kmsProviders)) {
  36. finalKMSProviders = await (0, gcp_1.loadGCPCredentials)(finalKMSProviders);
  37. }
  38. if (isEmptyCredentials('azure', kmsProviders)) {
  39. finalKMSProviders = await (0, azure_1.loadAzureCredentials)(finalKMSProviders);
  40. }
  41. return finalKMSProviders;
  42. }
  43. exports.refreshKMSCredentials = refreshKMSCredentials;
  44. //# sourceMappingURL=index.js.map