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

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
@@ -969,6 +969,9 @@ const getSecrets = async (ssm, config, parameters_, defaultValues) => {
969
969
  };
970
970
  const getSecret = async (ssm, config, parameter_, defaultValue) => {
971
971
  if (config.onlyDefault) {
972
+ if (defaultValue === undefined) {
973
+ throw new Error(`Cannot retrieve parameter ${parameter_}: onlyDefault is enabled and no default value was provided`);
974
+ }
972
975
  return defaultValue;
973
976
  }
974
977
  try {
@@ -976,28 +979,22 @@ const getSecret = async (ssm, config, parameter_, defaultValue) => {
976
979
  Name: `${config.prefix ?? ''}${parameter_}`,
977
980
  WithDecryption: true,
978
981
  }));
979
- return parameter?.Parameter?.Value ?? defaultValue;
982
+ const value = parameter?.Parameter?.Value;
983
+ if (value === undefined) {
984
+ throw new Error(`Could not retrieve parameter ${parameter_} from AWS SSM parameter store`);
985
+ }
986
+ return value;
980
987
  }
981
988
  catch (error) {
982
989
  if (config.logger) {
983
990
  config.logger.error(error);
984
991
  }
992
+ if (defaultValue === undefined) {
993
+ throw error;
994
+ }
985
995
  return defaultValue;
986
996
  }
987
997
  };
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
998
  const parameterStore = (userConfig) => {
1002
999
  const { clientConfig, ...config } = {
1003
1000
  ...DEFAULT_CLIENT_CONFIG$1,
@@ -1005,9 +1002,8 @@ const parameterStore = (userConfig) => {
1005
1002
  };
1006
1003
  const ssm = new clientSsm.SSMClient(clientConfig);
1007
1004
  return {
1008
- getSecret: (parameter, defaultValue = '') => getSecret(ssm, config, parameter, defaultValue),
1005
+ getSecret: (parameter, defaultValue) => getSecret(ssm, config, parameter, defaultValue),
1009
1006
  getSecrets: (parameters, defaultValues = []) => getSecrets(ssm, config, parameters, defaultValues),
1010
- getSecureStringParameter: (parameter) => getSecureStringParameter(ssm, config, parameter),
1011
1007
  };
1012
1008
  };
1013
1009
 
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';
@@ -947,6 +947,9 @@ const getSecrets = async (ssm, config, parameters_, defaultValues) => {
947
947
  };
948
948
  const getSecret = async (ssm, config, parameter_, defaultValue) => {
949
949
  if (config.onlyDefault) {
950
+ if (defaultValue === undefined) {
951
+ throw new Error(`Cannot retrieve parameter ${parameter_}: onlyDefault is enabled and no default value was provided`);
952
+ }
950
953
  return defaultValue;
951
954
  }
952
955
  try {
@@ -954,28 +957,22 @@ const getSecret = async (ssm, config, parameter_, defaultValue) => {
954
957
  Name: `${config.prefix ?? ''}${parameter_}`,
955
958
  WithDecryption: true,
956
959
  }));
957
- return parameter?.Parameter?.Value ?? defaultValue;
960
+ const value = parameter?.Parameter?.Value;
961
+ if (value === undefined) {
962
+ throw new Error(`Could not retrieve parameter ${parameter_} from AWS SSM parameter store`);
963
+ }
964
+ return value;
958
965
  }
959
966
  catch (error) {
960
967
  if (config.logger) {
961
968
  config.logger.error(error);
962
969
  }
970
+ if (defaultValue === undefined) {
971
+ throw error;
972
+ }
963
973
  return defaultValue;
964
974
  }
965
975
  };
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
976
  const parameterStore = (userConfig) => {
980
977
  const { clientConfig, ...config } = {
981
978
  ...DEFAULT_CLIENT_CONFIG$1,
@@ -983,9 +980,8 @@ const parameterStore = (userConfig) => {
983
980
  };
984
981
  const ssm = new SSMClient(clientConfig);
985
982
  return {
986
- getSecret: (parameter, defaultValue = '') => getSecret(ssm, config, parameter, defaultValue),
983
+ getSecret: (parameter, defaultValue) => getSecret(ssm, config, parameter, defaultValue),
987
984
  getSecrets: (parameters, defaultValues = []) => getSecrets(ssm, config, parameters, defaultValues),
988
- getSecureStringParameter: (parameter) => getSecureStringParameter(ssm, config, parameter),
989
985
  };
990
986
  };
991
987
 
@@ -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",
4
4
  "description": "",
5
5
  "author": "Allthings GmbH",
6
6
  "keywords": [