serverless-simple-middleware 0.0.46 → 0.0.50-beta.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/package.json +2 -2
- package/src/middleware/base.ts +19 -2
- package/src/middleware/build.ts +1 -0
- package/src/middleware/trace.ts +2 -0
- package/dist/aws/config.d.ts +0 -15
- package/dist/aws/config.js +0 -29
- package/dist/aws/define.d.ts +0 -21
- package/dist/aws/define.js +0 -8
- package/dist/aws/index.d.ts +0 -3
- package/dist/aws/index.js +0 -8
- package/dist/aws/simple.d.ts +0 -42
- package/dist/aws/simple.js +0 -589
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -8
- package/dist/middleware/aws.d.ts +0 -25
- package/dist/middleware/aws.js +0 -128
- package/dist/middleware/base.d.ts +0 -52
- package/dist/middleware/base.js +0 -128
- package/dist/middleware/build.d.ts +0 -3
- package/dist/middleware/build.js +0 -234
- package/dist/middleware/index.d.ts +0 -12
- package/dist/middleware/index.js +0 -22
- package/dist/middleware/logger.d.ts +0 -18
- package/dist/middleware/logger.js +0 -71
- package/dist/middleware/mysql.d.ts +0 -44
- package/dist/middleware/mysql.js +0 -289
- package/dist/middleware/trace.d.ts +0 -86
- package/dist/middleware/trace.js +0 -253
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.js +0 -7
- package/dist/utils/logger.d.ts +0 -26
- package/dist/utils/logger.js +0 -73
- package/dist/utils/misc.d.ts +0 -1
- package/dist/utils/misc.js +0 -9
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serverless-simple-middleware",
|
|
3
3
|
"description": "Simple middleware to translate the interface of lambda's handler to request => response",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.50-beta.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"author": "VoyagerX",
|
|
@@ -57,4 +57,4 @@
|
|
|
57
57
|
"singleQuote": true,
|
|
58
58
|
"trailingComma": "all"
|
|
59
59
|
}
|
|
60
|
-
}
|
|
60
|
+
}
|
package/src/middleware/base.ts
CHANGED
|
@@ -57,6 +57,7 @@ export class HandlerResponse {
|
|
|
57
57
|
|
|
58
58
|
private corsHeaders: { [header: string]: any };
|
|
59
59
|
private cookies: string[];
|
|
60
|
+
private crossOrigin?: string;
|
|
60
61
|
|
|
61
62
|
constructor(callback: any) {
|
|
62
63
|
this.callback = callback;
|
|
@@ -74,6 +75,9 @@ export class HandlerResponse {
|
|
|
74
75
|
const headers = {
|
|
75
76
|
...this.corsHeaders,
|
|
76
77
|
};
|
|
78
|
+
if (this.crossOrigin) {
|
|
79
|
+
headers['Access-Control-Allow-Origin'] = this.crossOrigin;
|
|
80
|
+
}
|
|
77
81
|
let multiValueHeaders = undefined;
|
|
78
82
|
if (this.cookies.length > 0) {
|
|
79
83
|
multiValueHeaders = { 'Set-Cookie': this.cookies };
|
|
@@ -99,12 +103,25 @@ export class HandlerResponse {
|
|
|
99
103
|
return result;
|
|
100
104
|
}
|
|
101
105
|
|
|
102
|
-
public addCookie(
|
|
106
|
+
public addCookie(
|
|
107
|
+
key: string,
|
|
108
|
+
value: string,
|
|
109
|
+
domain?: string,
|
|
110
|
+
specifyCrossOrigin?: true,
|
|
111
|
+
) {
|
|
103
112
|
const keyValueStr = `${key}=${value}`;
|
|
104
113
|
const domainStr = domain ? `Domain=${domain}` : '';
|
|
105
|
-
const
|
|
114
|
+
const sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
|
|
115
|
+
const secureStr = specifyCrossOrigin ? 'Secure' : '';
|
|
116
|
+
const cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr]
|
|
117
|
+
.filter(x => x)
|
|
118
|
+
.join('; ');
|
|
106
119
|
this.cookies.push(cookieStr);
|
|
107
120
|
}
|
|
121
|
+
|
|
122
|
+
public setCrossOrigin = (origin?: string) => {
|
|
123
|
+
this.crossOrigin = origin;
|
|
124
|
+
};
|
|
108
125
|
}
|
|
109
126
|
|
|
110
127
|
export interface HandlerAuxBase {
|
package/src/middleware/build.ts
CHANGED
package/src/middleware/trace.ts
CHANGED
package/dist/aws/config.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AWSComponent } from './define';
|
|
2
|
-
export interface AWSConfig {
|
|
3
|
-
[key: string]: string | boolean | number | undefined;
|
|
4
|
-
}
|
|
5
|
-
export interface AWSConfigs {
|
|
6
|
-
[service: string]: AWSConfig;
|
|
7
|
-
}
|
|
8
|
-
export declare type AWSConfigResolver = (service: string) => AWSConfig;
|
|
9
|
-
export declare type SimpleAWSConfigLoadParam = AWSConfigs | string;
|
|
10
|
-
export declare class SimpleAWSConfig {
|
|
11
|
-
private configs;
|
|
12
|
-
constructor(configs?: AWSConfigs);
|
|
13
|
-
get: (service: AWSComponent) => AWSConfig | undefined;
|
|
14
|
-
}
|
|
15
|
-
export declare const loadAWSConfig: (newConfigsOrUrl: SimpleAWSConfigLoadParam) => Promise<SimpleAWSConfig>;
|
package/dist/aws/config.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var cross_fetch_1 = require("cross-fetch");
|
|
4
|
-
var fs = require("fs");
|
|
5
|
-
var SimpleAWSConfig = /** @class */ (function () {
|
|
6
|
-
function SimpleAWSConfig(configs) {
|
|
7
|
-
var _this = this;
|
|
8
|
-
this.get = function (service) {
|
|
9
|
-
return _this.configs ? _this.configs[service] : undefined;
|
|
10
|
-
};
|
|
11
|
-
this.configs = configs;
|
|
12
|
-
}
|
|
13
|
-
return SimpleAWSConfig;
|
|
14
|
-
}());
|
|
15
|
-
exports.SimpleAWSConfig = SimpleAWSConfig;
|
|
16
|
-
exports.loadAWSConfig = function (newConfigsOrUrl) {
|
|
17
|
-
if (typeof newConfigsOrUrl === 'string') {
|
|
18
|
-
if (/^http.*json$/.test(newConfigsOrUrl)) {
|
|
19
|
-
return cross_fetch_1.default(newConfigsOrUrl)
|
|
20
|
-
.then(function (r) { return r.json(); })
|
|
21
|
-
.then(exports.loadAWSConfig);
|
|
22
|
-
}
|
|
23
|
-
else if (/json$/.test(newConfigsOrUrl)) {
|
|
24
|
-
return exports.loadAWSConfig(JSON.parse(fs.readFileSync(newConfigsOrUrl, 'utf-8')));
|
|
25
|
-
}
|
|
26
|
-
return exports.loadAWSConfig(JSON.parse(newConfigsOrUrl));
|
|
27
|
-
}
|
|
28
|
-
return Promise.resolve(new SimpleAWSConfig(newConfigsOrUrl));
|
|
29
|
-
};
|
package/dist/aws/define.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare enum AWSComponent {
|
|
2
|
-
s3 = "s3",
|
|
3
|
-
sqs = "sqs",
|
|
4
|
-
dynamodb = "dynamodb"
|
|
5
|
-
}
|
|
6
|
-
export interface SQSMessageBody<T> {
|
|
7
|
-
handle: string;
|
|
8
|
-
body?: T;
|
|
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
|
-
}
|
package/dist/aws/define.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var AWSComponent;
|
|
4
|
-
(function (AWSComponent) {
|
|
5
|
-
AWSComponent["s3"] = "s3";
|
|
6
|
-
AWSComponent["sqs"] = "sqs";
|
|
7
|
-
AWSComponent["dynamodb"] = "dynamodb";
|
|
8
|
-
})(AWSComponent = exports.AWSComponent || (exports.AWSComponent = {}));
|
package/dist/aws/index.d.ts
DELETED
package/dist/aws/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
function __export(m) {
|
|
3
|
-
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
|
4
|
-
}
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
__export(require("./define"));
|
|
7
|
-
__export(require("./config"));
|
|
8
|
-
__export(require("./simple"));
|
package/dist/aws/simple.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as AWS from 'aws-sdk';
|
|
2
|
-
import { SimpleAWSConfig } from './config';
|
|
3
|
-
import { S3SignedUrlParams, S3SignedUrlResult, SQSMessageBody } from './define';
|
|
4
|
-
export declare class SimpleAWS {
|
|
5
|
-
private queueUrls;
|
|
6
|
-
private config;
|
|
7
|
-
private lazyS3;
|
|
8
|
-
private lazySqs;
|
|
9
|
-
private lazyDynamodb;
|
|
10
|
-
private lazyDynamodbAdmin;
|
|
11
|
-
constructor(config?: SimpleAWSConfig);
|
|
12
|
-
readonly s3: AWS.S3;
|
|
13
|
-
readonly sqs: AWS.SQS;
|
|
14
|
-
readonly dynamodb: AWS.DynamoDB.DocumentClient;
|
|
15
|
-
readonly dynamodbAdmin: AWS.DynamoDB;
|
|
16
|
-
getQueueUrl: (queueName: string) => Promise<string>;
|
|
17
|
-
enqueue: (queueName: string, data: any) => Promise<number>;
|
|
18
|
-
dequeue: <T>(queueName: string, fetchSize?: number, waitSeconds?: number, visibilityTimeout?: number) => Promise<SQSMessageBody<T>[]>;
|
|
19
|
-
dequeueAll: <T>(queueName: string, limitSize?: number, visibilityTimeout?: number) => Promise<SQSMessageBody<T>[]>;
|
|
20
|
-
retainMessage: (queueName: string, handle: string, seconds: number) => Promise<string>;
|
|
21
|
-
completeMessage: (queueName: string, handle: string) => Promise<string>;
|
|
22
|
-
completeMessages: (queueName: string, handles: string[]) => Promise<string[]>;
|
|
23
|
-
download: (bucketName: string, key: string, localPath: string) => Promise<string>;
|
|
24
|
-
upload: (bucketName: string, localPath: string, key: string) => Promise<string>;
|
|
25
|
-
getSignedUrl: (bucketName: string, key: string, operation?: "getObject" | "putObject", params?: S3SignedUrlParams | undefined) => S3SignedUrlResult;
|
|
26
|
-
getSignedCookie: (keyPairId: string, privateKey: string, url: string, expires: number) => AWS.CloudFront.Signer.CustomPolicy;
|
|
27
|
-
getAttachmentUrl: (bucketName: string, key: string, fileName: string, params?: S3SignedUrlParams | undefined) => S3SignedUrlResult;
|
|
28
|
-
getDynamoDbItem: <T>(tableName: string, key: {
|
|
29
|
-
[keyColumn: string]: string;
|
|
30
|
-
}, defaultValue?: T | undefined) => Promise<T | undefined>;
|
|
31
|
-
updateDynamoDbItem: (tableName: string, key: {
|
|
32
|
-
[keyColumn: string]: string;
|
|
33
|
-
}, columnValues: {
|
|
34
|
-
[column: string]: any;
|
|
35
|
-
}) => Promise<import("aws-sdk/lib/request").PromiseResult<AWS.DynamoDB.DocumentClient.UpdateItemOutput, AWS.AWSError>>;
|
|
36
|
-
setupQueue: (queueName: string) => Promise<boolean>;
|
|
37
|
-
setupStorage: (bucketName: string, cors: {
|
|
38
|
-
methods: ("DELETE" | "GET" | "HEAD" | "POST" | "PUT")[];
|
|
39
|
-
origins: string[];
|
|
40
|
-
}) => Promise<boolean>;
|
|
41
|
-
setupDynamoDb: (tableName: string, keyColumn: string) => Promise<boolean>;
|
|
42
|
-
}
|