@allthings/cloud-toolkit 5.1.0-beta.1 → 5.1.0-beta.2

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/dist/lib.cjs.js CHANGED
@@ -967,16 +967,32 @@ const getSecrets = async (ssm, config, parameters_, defaultValues) => {
967
967
  return defaultValues;
968
968
  }
969
969
  };
970
+ const fetchParameterValue = async (ssm, config, parameter_) => {
971
+ const parameter = await ssm.send(new clientSsm.GetParameterCommand({
972
+ Name: `${config.prefix ?? ''}${parameter_}`,
973
+ WithDecryption: true,
974
+ }));
975
+ return parameter?.Parameter?.Value;
976
+ };
977
+ const getRequiredSecret = async (ssm, config, parameter_) => {
978
+ const value = await fetchParameterValue(ssm, config, parameter_);
979
+ if (value === undefined) {
980
+ throw new Error(`Could not retrieve parameter ${parameter_} from AWS SSM parameter store`);
981
+ }
982
+ return value;
983
+ };
970
984
  const getSecret = async (ssm, config, parameter_, defaultValue) => {
985
+ if (defaultValue === undefined) {
986
+ if (config.onlyDefault) {
987
+ throw new Error(`Cannot retrieve parameter ${parameter_}: onlyDefault is enabled and no default value was provided`);
988
+ }
989
+ return getRequiredSecret(ssm, config, parameter_);
990
+ }
971
991
  if (config.onlyDefault) {
972
992
  return defaultValue;
973
993
  }
974
994
  try {
975
- const parameter = await ssm.send(new clientSsm.GetParameterCommand({
976
- Name: `${config.prefix ?? ''}${parameter_}`,
977
- WithDecryption: true,
978
- }));
979
- return parameter?.Parameter?.Value ?? defaultValue;
995
+ return (await fetchParameterValue(ssm, config, parameter_)) ?? defaultValue;
980
996
  }
981
997
  catch (error) {
982
998
  if (config.logger) {
@@ -985,19 +1001,6 @@ const getSecret = async (ssm, config, parameter_, defaultValue) => {
985
1001
  return defaultValue;
986
1002
  }
987
1003
  };
988
- const getSecureStringParameter = async (ssm, config, parameter_) => {
989
- if (config.onlyDefault) {
990
- throw new Error(`Cannot retrieve parameter ${parameter_}: getSecureStringParameter has no default value, but onlyDefault is enabled`);
991
- }
992
- const parameter = await ssm.send(new clientSsm.GetParameterCommand({
993
- Name: `${config.prefix ?? ''}${parameter_}`,
994
- WithDecryption: true,
995
- }));
996
- if (parameter?.Parameter?.Value === undefined) {
997
- throw new Error(`Could not retrieve parameter ${parameter_} from AWS SSM parameter store`);
998
- }
999
- return parameter.Parameter.Value;
1000
- };
1001
1004
  const parameterStore = (userConfig) => {
1002
1005
  const { clientConfig, ...config } = {
1003
1006
  ...DEFAULT_CLIENT_CONFIG$1,
@@ -1005,9 +1008,8 @@ const parameterStore = (userConfig) => {
1005
1008
  };
1006
1009
  const ssm = new clientSsm.SSMClient(clientConfig);
1007
1010
  return {
1008
- getSecret: (parameter, defaultValue = '') => getSecret(ssm, config, parameter, defaultValue),
1011
+ getSecret: (parameter, defaultValue) => getSecret(ssm, config, parameter, defaultValue),
1009
1012
  getSecrets: (parameters, defaultValues = []) => getSecrets(ssm, config, parameters, defaultValues),
1010
- getSecureStringParameter: (parameter) => getSecureStringParameter(ssm, config, parameter),
1011
1013
  };
1012
1014
  };
1013
1015
 
package/dist/lib.esm.mjs CHANGED
@@ -7,7 +7,7 @@ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
7
7
  import { DynamoDBDocumentClient, UpdateCommand, ScanCommand, QueryCommand, PutCommand, GetCommand, DeleteCommand, BatchWriteCommand } from '@aws-sdk/lib-dynamodb';
8
8
  import Bottleneck from 'bottleneck';
9
9
  import { LambdaClient, InvokeCommand } from '@aws-sdk/client-lambda';
10
- import { SSMClient, GetParameterCommand, GetParametersCommand } from '@aws-sdk/client-ssm';
10
+ import { SSMClient, GetParametersCommand, GetParameterCommand } from '@aws-sdk/client-ssm';
11
11
  import { SESv2Client, SendEmailCommand } from '@aws-sdk/client-sesv2';
12
12
  import { createTransport } from 'nodemailer';
13
13
  import { SQSClient, SendMessageCommand, SendMessageBatchCommand, GetQueueUrlCommand, ReceiveMessageCommand, DeleteMessageCommand } from '@aws-sdk/client-sqs';
@@ -945,16 +945,32 @@ const getSecrets = async (ssm, config, parameters_, defaultValues) => {
945
945
  return defaultValues;
946
946
  }
947
947
  };
948
+ const fetchParameterValue = async (ssm, config, parameter_) => {
949
+ const parameter = await ssm.send(new GetParameterCommand({
950
+ Name: `${config.prefix ?? ''}${parameter_}`,
951
+ WithDecryption: true,
952
+ }));
953
+ return parameter?.Parameter?.Value;
954
+ };
955
+ const getRequiredSecret = async (ssm, config, parameter_) => {
956
+ const value = await fetchParameterValue(ssm, config, parameter_);
957
+ if (value === undefined) {
958
+ throw new Error(`Could not retrieve parameter ${parameter_} from AWS SSM parameter store`);
959
+ }
960
+ return value;
961
+ };
948
962
  const getSecret = async (ssm, config, parameter_, defaultValue) => {
963
+ if (defaultValue === undefined) {
964
+ if (config.onlyDefault) {
965
+ throw new Error(`Cannot retrieve parameter ${parameter_}: onlyDefault is enabled and no default value was provided`);
966
+ }
967
+ return getRequiredSecret(ssm, config, parameter_);
968
+ }
949
969
  if (config.onlyDefault) {
950
970
  return defaultValue;
951
971
  }
952
972
  try {
953
- const parameter = await ssm.send(new GetParameterCommand({
954
- Name: `${config.prefix ?? ''}${parameter_}`,
955
- WithDecryption: true,
956
- }));
957
- return parameter?.Parameter?.Value ?? defaultValue;
973
+ return (await fetchParameterValue(ssm, config, parameter_)) ?? defaultValue;
958
974
  }
959
975
  catch (error) {
960
976
  if (config.logger) {
@@ -963,19 +979,6 @@ const getSecret = async (ssm, config, parameter_, defaultValue) => {
963
979
  return defaultValue;
964
980
  }
965
981
  };
966
- const getSecureStringParameter = async (ssm, config, parameter_) => {
967
- if (config.onlyDefault) {
968
- throw new Error(`Cannot retrieve parameter ${parameter_}: getSecureStringParameter has no default value, but onlyDefault is enabled`);
969
- }
970
- const parameter = await ssm.send(new GetParameterCommand({
971
- Name: `${config.prefix ?? ''}${parameter_}`,
972
- WithDecryption: true,
973
- }));
974
- if (parameter?.Parameter?.Value === undefined) {
975
- throw new Error(`Could not retrieve parameter ${parameter_} from AWS SSM parameter store`);
976
- }
977
- return parameter.Parameter.Value;
978
- };
979
982
  const parameterStore = (userConfig) => {
980
983
  const { clientConfig, ...config } = {
981
984
  ...DEFAULT_CLIENT_CONFIG$1,
@@ -983,9 +986,8 @@ const parameterStore = (userConfig) => {
983
986
  };
984
987
  const ssm = new SSMClient(clientConfig);
985
988
  return {
986
- getSecret: (parameter, defaultValue = '') => getSecret(ssm, config, parameter, defaultValue),
989
+ getSecret: (parameter, defaultValue) => getSecret(ssm, config, parameter, defaultValue),
987
990
  getSecrets: (parameters, defaultValues = []) => getSecrets(ssm, config, parameters, defaultValues),
988
- getSecureStringParameter: (parameter) => getSecureStringParameter(ssm, config, parameter),
989
991
  };
990
992
  };
991
993
 
@@ -1,5 +1,5 @@
1
1
  export { default as dynamodb, IDynamoDBConfig, IDynamoDBInstance, IUnprocessedItems, TBatchWriteItems, TDeleteItem, TGetItem, TPutItem, TQueryTable, TScanTable, TUpdateItem, } from './dynamodb';
2
2
  export { ILambda, ILambdaInstance, default as lambda, TInvokeLambda, } from './lambda';
3
- export { DEFAULT_CLIENT_CONFIG as DEFAULT_PARAMETER_STORE_CLIENT_CONFIG, IParameterStore, IParameterStoreInstance, default as parameterStore, TGetSecret, TGetSecrets, TGetSecureStringParameter, } from './parameterStore';
3
+ export { DEFAULT_CLIENT_CONFIG as DEFAULT_PARAMETER_STORE_CLIENT_CONFIG, IParameterStore, IParameterStoreInstance, default as parameterStore, TGetSecret, TGetSecrets, } from './parameterStore';
4
4
  export { DEFAULT_CLIENT_CONFIG as DEFAULT_SES_CLIENT_CONFIG, IEmailAttachment, IEmailOptions, ISES, ISESInstance, default as ses, TSendMail, } from './ses';
5
5
  export { ISQS, ISQSInstance, default as sqs, TDeleteQueueItem, TGetQueueItems, TGetQueueUrl, TSendMessage, } from './sqs';
@@ -13,12 +13,10 @@ interface IParameter {
13
13
  }
14
14
  export type TGetSecret = (parameter: string, defaultValue?: string) => Promise<string>;
15
15
  export type TGetSecrets = (parameters: string[], defaultValues?: IParameter[]) => Promise<IParameter[]>;
16
- export type TGetSecureStringParameter = (parameter: string) => Promise<string>;
17
16
  export declare const DEFAULT_CLIENT_CONFIG: IParameterStore;
18
17
  export interface IParameterStoreInstance {
19
18
  getSecret: TGetSecret;
20
19
  getSecrets: TGetSecrets;
21
- getSecureStringParameter: TGetSecureStringParameter;
22
20
  }
23
21
  declare const parameterStore: (userConfig: IParameterStore) => IParameterStoreInstance;
24
22
  export default parameterStore;
@@ -1,5 +1,5 @@
1
1
  export { Alagarr, default as alagarr, ClientError, HandlerFunction, IInterfaceAlagarrOptions, IInterfaceHeaders, IInterfaceQueryParameters, IInterfaceRequest, IInterfaceResponse, ServerError, } from './alagarr';
2
- export { DEFAULT_PARAMETER_STORE_CLIENT_CONFIG, DEFAULT_SES_CLIENT_CONFIG, dynamodb, IDynamoDBConfig, IDynamoDBInstance, IEmailAttachment, IEmailOptions, ILambda, ILambdaInstance, IParameterStore, IParameterStoreInstance, ISES, ISESInstance, ISQS, ISQSInstance, IUnprocessedItems, lambda, parameterStore, ses, sqs, TBatchWriteItems, TDeleteItem, TDeleteQueueItem, TGetItem, TGetQueueItems, TGetQueueUrl, TGetSecret, TGetSecrets, TGetSecureStringParameter, TInvokeLambda, TPutItem, TQueryTable, TScanTable, TSendMail, TSendMessage, TUpdateItem, } from './aws';
2
+ export { DEFAULT_PARAMETER_STORE_CLIENT_CONFIG, DEFAULT_SES_CLIENT_CONFIG, dynamodb, IDynamoDBConfig, IDynamoDBInstance, IEmailAttachment, IEmailOptions, ILambda, ILambdaInstance, IParameterStore, IParameterStoreInstance, ISES, ISESInstance, ISQS, ISQSInstance, IUnprocessedItems, lambda, parameterStore, ses, sqs, TBatchWriteItems, TDeleteItem, TDeleteQueueItem, TGetItem, TGetQueueItems, TGetQueueUrl, TGetSecret, TGetSecrets, TInvokeLambda, TPutItem, TQueryTable, TScanTable, TSendMail, TSendMessage, TUpdateItem, } from './aws';
3
3
  export { atob, btoa } from './base64';
4
4
  export { default as logger } from './logger/logger';
5
5
  export { asyncReduce, deepFlatten, flatten, List, partial, splitEvery, times, until, } from './utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allthings/cloud-toolkit",
3
- "version": "5.1.0-beta.1",
3
+ "version": "5.1.0-beta.2",
4
4
  "description": "",
5
5
  "author": "Allthings GmbH",
6
6
  "keywords": [