@punks/backend-entity-manager 0.0.203 → 0.0.205

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.
@@ -27,4 +27,6 @@ export interface ISecretsProvider {
27
27
  setSecret<TValue>(pageName: string, secret: AppSecret<TValue>): Promise<void>;
28
28
  defineSecret(pageName: string, definition: AppSecretDefinition): Promise<void>;
29
29
  pageInitialize(pageName: string, metadata: AppSecretsPageMetadata): Promise<void>;
30
+ pageEnsure(pageName: string, metadata: AppSecretsPageMetadata): Promise<void>;
31
+ pageExists(pageName: string): Promise<boolean>;
30
32
  }
@@ -6,6 +6,8 @@ export declare class AwsSecretsProvider implements ISecretsProvider {
6
6
  getSecrets(pageName: string): Promise<AppSecret<any>[]>;
7
7
  setSecret<TValue>(pageName: string, secret: AppSecretInput<TValue>): Promise<void>;
8
8
  defineSecret(pageName: string, definition: AppSecretDefinition): Promise<void>;
9
+ pageEnsure(pageName: string, metadata: AppSecretsPageMetadata): Promise<void>;
10
+ pageExists(pageName: string): Promise<boolean>;
9
11
  pageInitialize(pageName: string, metadata: AppSecretsPageMetadata): Promise<void>;
10
12
  private saveSecretsPage;
11
13
  private getSecretsPage;
package/dist/esm/index.js CHANGED
@@ -14,7 +14,7 @@ import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
14
14
  import { SendEmailCommand, SESClient } from '@aws-sdk/client-ses';
15
15
  import require$$2 from 'fs';
16
16
  import { MailService } from '@sendgrid/mail';
17
- import { CreateSecretCommand, GetSecretValueCommand, SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
17
+ import { GetSecretValueCommand, CreateSecretCommand, SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
18
18
 
19
19
  var BucketItemType;
20
20
  (function (BucketItemType) {
@@ -28779,16 +28779,34 @@ let AwsSecretsProvider = class AwsSecretsProvider {
28779
28779
  }
28780
28780
  async defineSecret(pageName, definition) {
28781
28781
  const secretsPage = await this.getSecretsPage(pageName);
28782
+ const currentSecret = secretsPage[definition.key];
28782
28783
  await this.saveSecretsPage(pageName, {
28783
28784
  ...secretsPage,
28784
28785
  [definition.key]: {
28785
28786
  type: definition.type,
28786
28787
  hidden: definition.hidden,
28787
- value: definition.defaultValue ?? null,
28788
+ value: currentSecret?.value ?? definition.defaultValue ?? null,
28788
28789
  timestamp: Date.now(),
28789
28790
  },
28790
28791
  });
28791
28792
  }
28793
+ async pageEnsure(pageName, metadata) {
28794
+ if (!(await this.pageExists(pageName))) {
28795
+ await this.pageInitialize(pageName, metadata);
28796
+ }
28797
+ }
28798
+ async pageExists(pageName) {
28799
+ try {
28800
+ const secrets = await this.client.send(new GetSecretValueCommand({
28801
+ SecretId: this.buildPagePath(pageName),
28802
+ }));
28803
+ return !!secrets?.ARN;
28804
+ }
28805
+ catch (e) {
28806
+ console.error("secrets manager", e);
28807
+ return false;
28808
+ }
28809
+ }
28792
28810
  async pageInitialize(pageName, metadata) {
28793
28811
  await this.client.send(new CreateSecretCommand({
28794
28812
  Name: this.buildPagePath(pageName),