ag-common 0.0.458 → 0.0.460

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.
@@ -2,13 +2,13 @@ export * from './api';
2
2
  export * from './aws';
3
3
  export * from './cloudfront';
4
4
  export * from './dynamo';
5
- export * from './dynamoInfra';
6
5
  export * from './enforceDynamoProvisionCap';
7
6
  export * from './openApiHelpers';
8
7
  export * from './s3';
9
8
  export * from './ses';
10
9
  export * from './sqs';
11
10
  export * from './ssm';
11
+ export * from './ssmInfra';
12
12
  export * from './sts';
13
13
  export * from './validateOpenApi';
14
14
  export * from './validations';
@@ -18,13 +18,13 @@ __exportStar(require("./api"), exports);
18
18
  __exportStar(require("./aws"), exports);
19
19
  __exportStar(require("./cloudfront"), exports);
20
20
  __exportStar(require("./dynamo"), exports);
21
- __exportStar(require("./dynamoInfra"), exports);
22
21
  __exportStar(require("./enforceDynamoProvisionCap"), exports);
23
22
  __exportStar(require("./openApiHelpers"), exports);
24
23
  __exportStar(require("./s3"), exports);
25
24
  __exportStar(require("./ses"), exports);
26
25
  __exportStar(require("./sqs"), exports);
27
26
  __exportStar(require("./ssm"), exports);
27
+ __exportStar(require("./ssmInfra"), exports);
28
28
  __exportStar(require("./sts"), exports);
29
29
  __exportStar(require("./validateOpenApi"), exports);
30
30
  __exportStar(require("./validations"), exports);
@@ -52,8 +52,8 @@ const setupLambda = ({ lambdaConfig, pathV, verb, seenPermissions, authorizers,
52
52
  seenPermissions.default = true;
53
53
  }
54
54
  //
55
- const readTables = (0, array_1.distinctBy)([...(((_a = def === null || def === void 0 ? void 0 : def.dynamo) === null || _a === void 0 ? void 0 : _a.reads) || []), ...(((_b = lp === null || lp === void 0 ? void 0 : lp.dynamo) === null || _b === void 0 ? void 0 : _b.reads) || [])], (s) => s.shortName);
56
- const writeTables = (0, array_1.distinctBy)([...(((_c = def === null || def === void 0 ? void 0 : def.dynamo) === null || _c === void 0 ? void 0 : _c.writes) || []), ...(((_d = lp === null || lp === void 0 ? void 0 : lp.dynamo) === null || _d === void 0 ? void 0 : _d.writes) || [])], (s) => s.shortName);
55
+ const readTables = (0, array_1.distinctBy)([...(((_a = def === null || def === void 0 ? void 0 : def.dynamo) === null || _a === void 0 ? void 0 : _a.reads) || []), ...(((_b = lp === null || lp === void 0 ? void 0 : lp.dynamo) === null || _b === void 0 ? void 0 : _b.reads) || [])], (s) => s.tableName);
56
+ const writeTables = (0, array_1.distinctBy)([...(((_c = def === null || def === void 0 ? void 0 : def.dynamo) === null || _c === void 0 ? void 0 : _c.writes) || []), ...(((_d = lp === null || lp === void 0 ? void 0 : lp.dynamo) === null || _d === void 0 ? void 0 : _d.writes) || [])], (s) => s.tableName);
57
57
  const policies = [...(def.policies || []), ...((lp === null || lp === void 0 ? void 0 : lp.policies) || [])].filter(array_1.notEmpty);
58
58
  const layers = [...(def.layers || []), ...((lp === null || lp === void 0 ? void 0 : lp.layers) || [])].filter(array_1.notEmpty);
59
59
  const memory = (lp === null || lp === void 0 ? void 0 : lp.memory) || (def === null || def === void 0 ? void 0 : def.memory) || 128;
@@ -79,11 +79,7 @@ const setupLambda = ({ lambdaConfig, pathV, verb, seenPermissions, authorizers,
79
79
  ? undefined
80
80
  : authorizers === null || authorizers === void 0 ? void 0 : authorizers[authorizerName];
81
81
  const env = Object.assign(Object.assign({}, (def.env || {})), ((lp === null || lp === void 0 ? void 0 : lp.env) || {}));
82
- const tables = [...readTables, ...writeTables];
83
82
  const environment = env;
84
- Object.values(tables).forEach((v) => {
85
- environment[v.shortName] = v.table.tableName;
86
- });
87
83
  return {
88
84
  environment,
89
85
  readTables,
@@ -145,15 +141,12 @@ const openApiImpl = (p) => {
145
141
  timeout: lc.timeout,
146
142
  description: '(cdk)',
147
143
  entry: entry,
148
- bundling: {
149
- externalModules: ['aws-sdk', 'aws-lambda'],
150
- },
151
144
  reservedConcurrentExecutions: lc.reservedConcurrentExecutions,
152
145
  logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.FIVE_DAYS,
153
146
  layers: lc.layers,
154
147
  });
155
- lc.readTables.forEach((t) => t.table.grantReadData(lambdaV));
156
- lc.writeTables.forEach((t) => t.table.grantReadWriteData(lambdaV));
148
+ lc.readTables.forEach((t) => t.grantReadData(lambdaV));
149
+ lc.writeTables.forEach((t) => t.grantReadWriteData(lambdaV));
157
150
  lc.policies.forEach((p1) => lambdaV.addToRolePolicy(p1));
158
151
  //
159
152
  apiPath.addMethod(verb.toUpperCase(), new aws_cdk_lib_1.aws_apigateway.LambdaIntegration(lambdaV, {}), { authorizer: lc.authorizer });
@@ -15,6 +15,12 @@ export declare const loadSsmString: ({ stack, path, }: {
15
15
  /** eg `/${NODE_ENV}/${shortStackName}/service/key` */
16
16
  path: string;
17
17
  }) => string;
18
+ /** load a string from ssm at synth time*/
19
+ export declare const loadSsmStringSynth: ({ stack, path, }: {
20
+ stack: Stack;
21
+ /** eg `/${NODE_ENV}/${shortStackName}/service/key` */
22
+ path: string;
23
+ }) => string;
18
24
  /** load a csv from ssm */
19
25
  export declare const loadSsmStringList: ({ stack, path, }: {
20
26
  stack: Stack;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadSsmStringList = exports.loadSsmString = exports.saveToSsm = void 0;
3
+ exports.loadSsmStringList = exports.loadSsmStringSynth = exports.loadSsmString = exports.saveToSsm = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const base64_1 = require("../../common/helpers/string/base64");
6
6
  /**
@@ -21,6 +21,9 @@ exports.saveToSsm = saveToSsm;
21
21
  /** load a string from ssm */
22
22
  const loadSsmString = ({ stack, path, }) => aws_cdk_lib_1.aws_ssm.StringParameter.valueForStringParameter(stack, path);
23
23
  exports.loadSsmString = loadSsmString;
24
+ /** load a string from ssm at synth time*/
25
+ const loadSsmStringSynth = ({ stack, path, }) => aws_cdk_lib_1.aws_ssm.StringParameter.valueFromLookup(stack, path);
26
+ exports.loadSsmStringSynth = loadSsmStringSynth;
24
27
  /** load a csv from ssm */
25
28
  const loadSsmStringList = ({ stack, path, }) => aws_cdk_lib_1.Fn.split(',', (0, exports.loadSsmString)({ stack, path }));
26
29
  exports.loadSsmStringList = loadSsmStringList;
@@ -1,15 +1,13 @@
1
1
  import { aws_dynamodb as dynamodb, Stack } from 'aws-cdk-lib';
2
- import { IGeneratedDynamoData } from '../types';
3
2
  export declare const generateTableRef: ({ stack, baseKey, hasStream, hasGSI, }: {
4
3
  hasStream: boolean;
5
4
  hasGSI: boolean;
6
5
  stack: Stack;
7
6
  baseKey: string;
8
- }) => IGeneratedDynamoData;
9
- export declare const generateSSMParams: ({ stack, table, baseKey, gsi, shortName, }: {
7
+ }) => dynamodb.ITable;
8
+ export declare const generateDynamoSSMParams: ({ stack, table, baseKey, gsi, }: {
10
9
  stack: Stack;
11
10
  table: dynamodb.ITable;
12
11
  baseKey: string;
13
12
  gsi?: string[] | undefined;
14
- shortName: string;
15
13
  }) => void;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateDynamoSSMParams = exports.generateTableRef = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const ssm_1 = require("../ssm");
6
+ const generateTableRef = ({ stack, baseKey, hasStream, hasGSI, }) => {
7
+ const tableArn = (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/arn` });
8
+ const ret = aws_cdk_lib_1.aws_dynamodb.Table.fromTableAttributes(stack, baseKey, Object.assign(Object.assign({ tableArn }, (hasStream && {
9
+ tableStreamArn: (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/streamArn` }),
10
+ })), (hasGSI && {
11
+ globalIndexes: (0, ssm_1.loadSsmStringList)({ stack, path: `${baseKey}/gsi` }),
12
+ })));
13
+ return ret;
14
+ };
15
+ exports.generateTableRef = generateTableRef;
16
+ const generateDynamoSSMParams = ({ stack, table, baseKey, gsi, }) => {
17
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/arn`, value: table.tableArn });
18
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/name`, value: table.tableName });
19
+ if (table.tableStreamArn) {
20
+ (0, ssm_1.saveToSsm)({
21
+ stack,
22
+ path: `${baseKey}/streamArn`,
23
+ value: table.tableStreamArn,
24
+ });
25
+ }
26
+ if (gsi && (gsi === null || gsi === void 0 ? void 0 : gsi.length) > 0) {
27
+ (0, ssm_1.saveToSsm)({
28
+ stack,
29
+ path: `${baseKey}/gsi`,
30
+ value: gsi.join(','),
31
+ });
32
+ }
33
+ };
34
+ exports.generateDynamoSSMParams = generateDynamoSSMParams;
@@ -0,0 +1,3 @@
1
+ export * from './dynamo';
2
+ export * from './s3';
3
+ export * from './sqs';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dynamo"), exports);
18
+ __exportStar(require("./s3"), exports);
19
+ __exportStar(require("./sqs"), exports);
@@ -0,0 +1,10 @@
1
+ import { aws_s3 as s3, Stack } from 'aws-cdk-lib';
2
+ export declare const generateS3SSMParams: ({ stack, bucket, baseKey, }: {
3
+ stack: Stack;
4
+ bucket: s3.IBucket;
5
+ baseKey: string;
6
+ }) => void;
7
+ export declare const generateBucketRef: ({ stack, baseKey, }: {
8
+ stack: Stack;
9
+ baseKey: string;
10
+ }) => s3.IBucket;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateBucketRef = exports.generateS3SSMParams = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const ssm_1 = require("../ssm");
6
+ const generateS3SSMParams = ({ stack, bucket, baseKey, }) => {
7
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/arn`, value: bucket.bucketArn });
8
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/name`, value: bucket.bucketName });
9
+ };
10
+ exports.generateS3SSMParams = generateS3SSMParams;
11
+ const generateBucketRef = ({ stack, baseKey, }) => {
12
+ const bucketName = (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/name` });
13
+ return aws_cdk_lib_1.aws_s3.Bucket.fromBucketAttributes(stack, baseKey, {
14
+ bucketArn: (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/arn` }),
15
+ bucketName,
16
+ });
17
+ };
18
+ exports.generateBucketRef = generateBucketRef;
@@ -0,0 +1,10 @@
1
+ import { aws_sqs as sqs, Stack } from 'aws-cdk-lib';
2
+ export declare const generateSqsSSMParams: ({ stack, queue, baseKey, }: {
3
+ stack: Stack;
4
+ queue: sqs.IQueue;
5
+ baseKey: string;
6
+ }) => void;
7
+ export declare const generateQueueRef: ({ stack, baseKey, }: {
8
+ stack: Stack;
9
+ baseKey: string;
10
+ }) => sqs.IQueue;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateQueueRef = exports.generateSqsSSMParams = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const ssm_1 = require("../ssm");
6
+ const generateSqsSSMParams = ({ stack, queue, baseKey, }) => {
7
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/arn`, value: queue.queueArn });
8
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/name`, value: queue.queueName });
9
+ (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/url`, value: queue.queueUrl });
10
+ };
11
+ exports.generateSqsSSMParams = generateSqsSSMParams;
12
+ const generateQueueRef = ({ stack, baseKey, }) => {
13
+ const queueArn = (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/arn` });
14
+ return aws_cdk_lib_1.aws_sqs.Queue.fromQueueAttributes(stack, baseKey, {
15
+ queueArn,
16
+ queueName: (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/name` }),
17
+ queueUrl: (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/url` }),
18
+ });
19
+ };
20
+ exports.generateQueueRef = generateQueueRef;
@@ -13,14 +13,10 @@ export interface DYNAMOKEYS {
13
13
  PK3?: string;
14
14
  PK4?: string;
15
15
  }
16
- export interface IGeneratedDynamoData {
17
- table: dynamodb.ITable;
18
- shortName: string;
19
- }
20
16
  export interface ILambdaConfig {
21
17
  dynamo?: {
22
- reads?: IGeneratedDynamoData[];
23
- writes?: IGeneratedDynamoData[];
18
+ reads?: dynamodb.ITable[];
19
+ writes?: dynamodb.ITable[];
24
20
  };
25
21
  policies?: iam.PolicyStatement[];
26
22
  env?: Record<string, string>;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.458",
2
+ "version": "0.0.460",
3
3
  "name": "ag-common",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
@@ -9,8 +9,8 @@
9
9
  "scripts": {
10
10
  "preinstall": "npx only-allow pnpm",
11
11
  "format": "npx eslint --ext .ts,.tsx ./src --fix && npx eslint --ext .ts,.tsx ./stories --fix",
12
- "build": "rimraf dist && npm run lint && tsc",
13
- "lint": "npx eslint --ext .ts,.tsx ./src",
12
+ "build": "rimraf dist && tsc -p tsconfig.build.json",
13
+ "lint": "npx eslint --ext .ts,.tsx .",
14
14
  "start": "cross-env BROWSER=none cross-env storybook dev -p 6006",
15
15
  "build-storybook": "storybook build -o docs --quiet"
16
16
  },
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSSMParams = exports.generateTableRef = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const ssm_1 = require("./ssm");
6
- const generateTableRef = ({ stack, baseKey, hasStream, hasGSI, }) => {
7
- const tableStreamArn = !hasStream
8
- ? undefined
9
- : (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/streamArn` });
10
- const globalIndexes = !hasGSI
11
- ? undefined
12
- : (0, ssm_1.loadSsmStringList)({ stack, path: `${baseKey}/gsi` });
13
- const shortName = aws_cdk_lib_1.aws_ssm.StringParameter.valueFromLookup(stack, `${baseKey}/shortName`);
14
- const table = aws_cdk_lib_1.aws_dynamodb.Table.fromTableAttributes(stack, baseKey, {
15
- tableArn: (0, ssm_1.loadSsmString)({ stack, path: `${baseKey}/arn` }),
16
- tableStreamArn,
17
- globalIndexes,
18
- });
19
- return {
20
- shortName,
21
- table,
22
- };
23
- };
24
- exports.generateTableRef = generateTableRef;
25
- const generateSSMParams = ({ stack, table, baseKey, gsi, shortName, }) => {
26
- (0, ssm_1.saveToSsm)({ stack, path: `${baseKey}/arn`, value: table.tableArn });
27
- if (table.tableStreamArn) {
28
- (0, ssm_1.saveToSsm)({
29
- stack,
30
- path: `${baseKey}/streamArn`,
31
- value: table.tableStreamArn,
32
- });
33
- }
34
- if (gsi && (gsi === null || gsi === void 0 ? void 0 : gsi.length) > 0) {
35
- (0, ssm_1.saveToSsm)({
36
- stack,
37
- path: `${baseKey}/gsi`,
38
- value: gsi.join(','),
39
- });
40
- }
41
- (0, ssm_1.saveToSsm)({
42
- stack,
43
- path: `${baseKey}/shortName`,
44
- value: shortName,
45
- });
46
- };
47
- exports.generateSSMParams = generateSSMParams;