serverless-simple-middleware 0.0.60 → 0.0.62

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.
Files changed (44) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +0 -1
  3. package/dist/aws/config.d.ts +2 -2
  4. package/dist/aws/config.js +6 -4
  5. package/dist/aws/define.d.ts +0 -12
  6. package/dist/aws/define.js +2 -1
  7. package/dist/aws/index.js +17 -6
  8. package/dist/aws/simple.d.ts +22 -17
  9. package/dist/aws/simple.js +334 -227
  10. package/dist/index.js +17 -6
  11. package/dist/internal/AwsError.d.ts +5 -0
  12. package/dist/internal/AwsError.js +33 -0
  13. package/dist/internal/s3.d.ts +38 -0
  14. package/dist/internal/s3.js +2 -0
  15. package/dist/middleware/aws.d.ts +2 -2
  16. package/dist/middleware/aws.js +12 -9
  17. package/dist/middleware/base.d.ts +8 -8
  18. package/dist/middleware/base.js +9 -8
  19. package/dist/middleware/build.d.ts +1 -1
  20. package/dist/middleware/build.js +68 -45
  21. package/dist/middleware/index.d.ts +2 -2
  22. package/dist/middleware/index.js +20 -8
  23. package/dist/middleware/logger.js +8 -4
  24. package/dist/middleware/mysql.d.ts +3 -3
  25. package/dist/middleware/mysql.js +17 -13
  26. package/dist/middleware/trace.d.ts +2 -2
  27. package/dist/middleware/trace.js +21 -21
  28. package/dist/utils/index.js +16 -5
  29. package/dist/utils/logger.d.ts +3 -3
  30. package/dist/utils/logger.js +9 -7
  31. package/dist/utils/misc.d.ts +1 -1
  32. package/dist/utils/misc.js +10 -3
  33. package/package.json +18 -10
  34. package/src/aws/config.ts +1 -1
  35. package/src/aws/define.ts +0 -19
  36. package/src/aws/simple.ts +326 -204
  37. package/src/internal/AwsError.ts +13 -0
  38. package/src/internal/s3.ts +75 -0
  39. package/src/middleware/aws.ts +1 -1
  40. package/src/middleware/base.ts +5 -4
  41. package/src/middleware/build.ts +31 -31
  42. package/src/middleware/mysql.ts +11 -7
  43. package/src/middleware/trace.ts +15 -19
  44. package/src/utils/misc.ts +11 -2
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v18
package/README.md CHANGED
@@ -1,4 +1,3 @@
1
1
  # Serverless simple middleware
2
2
 
3
3
  This is just simple middleware for me to translate the interface of lambda's handler to use `request => response`.
4
-
@@ -5,8 +5,8 @@ export interface AWSConfig {
5
5
  export interface AWSConfigs {
6
6
  [service: string]: AWSConfig;
7
7
  }
8
- export declare type AWSConfigResolver = (service: string) => AWSConfig;
9
- export declare type SimpleAWSConfigLoadParam = AWSConfigs | string;
8
+ export type AWSConfigResolver = (service: string) => AWSConfig;
9
+ export type SimpleAWSConfigLoadParam = AWSConfigs | string;
10
10
  export declare class SimpleAWSConfig {
11
11
  private configs;
12
12
  constructor(configs?: AWSConfigs);
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadAWSConfig = exports.SimpleAWSConfig = void 0;
3
4
  var cross_fetch_1 = require("cross-fetch");
4
5
  var fs = require("fs");
5
6
  var SimpleAWSConfig = /** @class */ (function () {
@@ -13,17 +14,18 @@ var SimpleAWSConfig = /** @class */ (function () {
13
14
  return SimpleAWSConfig;
14
15
  }());
15
16
  exports.SimpleAWSConfig = SimpleAWSConfig;
16
- exports.loadAWSConfig = function (newConfigsOrUrl) {
17
+ var loadAWSConfig = function (newConfigsOrUrl) {
17
18
  if (typeof newConfigsOrUrl === 'string') {
18
19
  if (/^http.*json$/.test(newConfigsOrUrl)) {
19
- return cross_fetch_1.default(newConfigsOrUrl)
20
+ return (0, cross_fetch_1.default)(newConfigsOrUrl)
20
21
  .then(function (r) { return r.json(); })
21
22
  .then(exports.loadAWSConfig);
22
23
  }
23
24
  else if (/json$/.test(newConfigsOrUrl)) {
24
- return exports.loadAWSConfig(JSON.parse(fs.readFileSync(newConfigsOrUrl, 'utf-8')));
25
+ return (0, exports.loadAWSConfig)(JSON.parse(fs.readFileSync(newConfigsOrUrl, 'utf-8')));
25
26
  }
26
- return exports.loadAWSConfig(JSON.parse(newConfigsOrUrl));
27
+ return (0, exports.loadAWSConfig)(JSON.parse(newConfigsOrUrl));
27
28
  }
28
29
  return Promise.resolve(new SimpleAWSConfig(newConfigsOrUrl));
29
30
  };
31
+ exports.loadAWSConfig = loadAWSConfig;
@@ -7,15 +7,3 @@ export interface SQSMessageBody<T> {
7
7
  handle: string;
8
8
  body?: T;
9
9
  }
10
- export interface S3SignedUrlParams {
11
- Key?: string;
12
- Expires?: number;
13
- ContentType?: string;
14
- ACL?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read' | string;
15
- ResponseContentDisposition?: string;
16
- ResponseContentType?: string;
17
- }
18
- export interface S3SignedUrlResult {
19
- key: string;
20
- url: string;
21
- }
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AWSComponent = void 0;
3
4
  var AWSComponent;
4
5
  (function (AWSComponent) {
5
6
  AWSComponent["s3"] = "s3";
6
7
  AWSComponent["sqs"] = "sqs";
7
8
  AWSComponent["dynamodb"] = "dynamodb";
8
- })(AWSComponent = exports.AWSComponent || (exports.AWSComponent = {}));
9
+ })(AWSComponent || (exports.AWSComponent = AWSComponent = {}));
package/dist/aws/index.js CHANGED
@@ -1,8 +1,19 @@
1
1
  "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
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
+ };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./define"));
7
- __export(require("./config"));
8
- __export(require("./simple"));
17
+ __exportStar(require("./define"), exports);
18
+ __exportStar(require("./config"), exports);
19
+ __exportStar(require("./simple"), exports);
@@ -1,7 +1,11 @@
1
- /// <reference types="node" />
2
- import * as AWS from 'aws-sdk';
1
+ import { CloudfrontSignedCookiesOutput } from '@aws-sdk/cloudfront-signer';
3
2
  import { SimpleAWSConfig } from './config';
4
- import { S3SignedUrlParams, S3SignedUrlResult, SQSMessageBody } from './define';
3
+ import { SQSMessageBody } from './define';
4
+ import { DynamoDB } from '@aws-sdk/client-dynamodb';
5
+ import { S3, Tag } from '@aws-sdk/client-s3';
6
+ import { SQS } from '@aws-sdk/client-sqs';
7
+ import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
8
+ import { PresignerOptions } from '../internal/s3';
5
9
  export declare class SimpleAWS {
6
10
  private queueUrls;
7
11
  private config;
@@ -9,38 +13,39 @@ export declare class SimpleAWS {
9
13
  private lazySqs;
10
14
  private lazyDynamodb;
11
15
  private lazyDynamodbAdmin;
16
+ private static readonly stageTag;
17
+ private static readonly stringifiedStageTag;
12
18
  constructor(config?: SimpleAWSConfig);
13
- readonly s3: AWS.S3;
14
- readonly sqs: AWS.SQS;
15
- readonly dynamodb: AWS.DynamoDB.DocumentClient;
16
- readonly dynamodbAdmin: AWS.DynamoDB;
19
+ get s3(): S3;
20
+ get sqs(): SQS;
21
+ get dynamodb(): DynamoDBDocument;
22
+ get dynamodbAdmin(): DynamoDB;
17
23
  getQueueUrl: (queueName: string) => Promise<string>;
18
24
  enqueue: (queueName: string, data: any) => Promise<number>;
19
- dequeue: <T>(queueName: string, fetchSize?: number, waitSeconds?: number, visibilityTimeout?: number) => Promise<SQSMessageBody<T>[]>;
20
- dequeueAll: <T>(queueName: string, limitSize?: number, visibilityTimeout?: number) => Promise<SQSMessageBody<T>[]>;
25
+ dequeue: <T>(queueName: string, fetchSize?: number, waitSeconds?: number, visibilityTimeout?: number) => Promise<Array<SQSMessageBody<T>>>;
26
+ dequeueAll: <T>(queueName: string, limitSize?: number, visibilityTimeout?: number) => Promise<Array<SQSMessageBody<T>>>;
21
27
  retainMessage: (queueName: string, handle: string, seconds: number) => Promise<string>;
22
28
  completeMessage: (queueName: string, handle: string) => Promise<string>;
23
29
  completeMessages: (queueName: string, handles: string[]) => Promise<string[]>;
24
30
  download: (bucket: string, key: string, localPath: string) => Promise<string>;
25
31
  readFile: (bucket: string, key: string) => Promise<string>;
26
32
  readFileBuffer: (bucket: string, key: string) => Promise<Buffer>;
27
- upload: (bucket: string, localPath: string, key: string) => Promise<string>;
28
- uploadFromBuffer: (bucket: string, key: string, buffer: Buffer) => Promise<string>;
33
+ upload: (bucket: string, localPath: string, key: string, tags?: Tag[]) => Promise<string>;
34
+ uploadFromBuffer: (bucket: string, key: string, buffer: Buffer, tags?: Tag[]) => Promise<string>;
29
35
  writeFile: (bucket: string, key: string, content: string) => Promise<void>;
30
- getSignedUrl: (bucketName: string, key: string, operation?: "getObject" | "putObject", params?: S3SignedUrlParams | undefined) => S3SignedUrlResult;
31
- getSignedCookie: (keyPairId: string, privateKey: string, url: string, expires: number) => AWS.CloudFront.Signer.CustomPolicy;
32
- getAttachmentUrl: (bucketName: string, key: string, fileName: string, params?: S3SignedUrlParams | undefined) => S3SignedUrlResult;
36
+ getSignedUrl(options: PresignerOptions): Promise<string>;
37
+ getSignedCookie: (keyPairId: string, privateKey: string, url: string, expires: number) => CloudfrontSignedCookiesOutput;
33
38
  getDynamoDbItem: <T>(tableName: string, key: {
34
39
  [keyColumn: string]: string;
35
- }, defaultValue?: T | undefined) => Promise<T | undefined>;
40
+ }, defaultValue?: T) => Promise<T | undefined>;
36
41
  updateDynamoDbItem: (tableName: string, key: {
37
42
  [keyColumn: string]: string;
38
43
  }, columnValues: {
39
44
  [column: string]: any;
40
- }) => Promise<import("aws-sdk/lib/request").PromiseResult<AWS.DynamoDB.DocumentClient.UpdateItemOutput, AWS.AWSError>>;
45
+ }) => Promise<import("@aws-sdk/lib-dynamodb").UpdateCommandOutput>;
41
46
  setupQueue: (queueName: string) => Promise<boolean>;
42
47
  setupStorage: (bucketName: string, cors: {
43
- methods: ("DELETE" | "GET" | "POST" | "PUT" | "HEAD")[];
48
+ methods: Array<"GET" | "POST" | "PUT" | "DELETE" | "HEAD">;
44
49
  origins: string[];
45
50
  }) => Promise<boolean>;
46
51
  setupDynamoDb: (tableName: string, keyColumn: string) => Promise<boolean>;