@smartsheet-extensions/handler 1.0.0-alpha.7 → 1.0.0-beta.11
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/lib/enhancers/handleBigPayLoad.d.ts +6 -1
- package/lib/enhancers/handleBigPayLoad.d.ts.map +1 -1
- package/lib/enhancers/handleBigPayLoad.js +123 -51
- package/lib/enhancers/handleBigPayLoad.js.map +1 -1
- package/lib/errors/PayloadLimitExceedError.d.ts +8 -0
- package/lib/errors/PayloadLimitExceedError.d.ts.map +1 -0
- package/lib/errors/PayloadLimitExceedError.js +19 -0
- package/lib/errors/PayloadLimitExceedError.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/constants.d.ts +7 -0
- package/lib/utils/constants.d.ts.map +1 -0
- package/lib/utils/constants.js +10 -0
- package/lib/utils/constants.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import FormData from 'form-data';
|
|
1
2
|
import { ExtensionHandlerEnhancer } from '../handler';
|
|
2
|
-
export
|
|
3
|
+
export interface PostResult {
|
|
4
|
+
data: FormData;
|
|
5
|
+
url: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const handleBigPayLoad: ExtensionHandlerEnhancer<import("../handler").DefaultExtensionHandler, import("../handler").DefaultExtensionHandler>;
|
|
3
8
|
//# sourceMappingURL=handleBigPayLoad.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleBigPayLoad.d.ts","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleBigPayLoad.d.ts","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAgBtD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAqMD,eAAO,MAAM,gBAAgB,sHAa5B,CAAC"}
|
|
@@ -15,39 +15,77 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.handleBigPayLoad = void 0;
|
|
16
16
|
const axios_1 = __importDefault(require("axios"));
|
|
17
17
|
const form_data_1 = __importDefault(require("form-data"));
|
|
18
|
-
const PlatformResponse_1 = require("../responses/PlatformResponse");
|
|
19
18
|
const PayloadFetchError_1 = require("../errors/PayloadFetchError");
|
|
19
|
+
const PayloadLimitExceedError_1 = require("../errors/PayloadLimitExceedError");
|
|
20
20
|
const PayloadPostError_1 = require("../errors/PayloadPostError");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
21
|
+
const PlatformResponse_1 = require("../responses/PlatformResponse");
|
|
22
|
+
const constants_1 = require("../utils/constants");
|
|
23
|
+
const normalizeError_1 = require("../utils/normalizeError");
|
|
24
|
+
const xorHandler_1 = require("./xorHandler");
|
|
25
|
+
const retryWrapper = (func, retryTimes) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
for (let counter = retryTimes - 1; counter >= 0; counter -= 1) {
|
|
27
|
+
try {
|
|
28
|
+
// eslint-disable-next-line no-await-in-loop
|
|
29
|
+
const resp = yield func();
|
|
30
|
+
return resp.data;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (counter === 0) {
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line no-console
|
|
37
|
+
console.warn(`Request to s3 failed. Retry attempts remaining ${counter} (of ${retryTimes})`);
|
|
38
|
+
// eslint-disable-next-line no-await-in-loop
|
|
39
|
+
yield new Promise(resolve => {
|
|
40
|
+
setTimeout(resolve, constants_1.S3_REQUEST_DELAY_MS);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
23
45
|
const getPayloadFromS3 = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
-
const
|
|
25
|
-
|
|
46
|
+
const config = {
|
|
47
|
+
timeout: constants_1.S3_REQUEST_TIMEOUT_MS,
|
|
48
|
+
};
|
|
49
|
+
const resp = yield retryWrapper(() => __awaiter(void 0, void 0, void 0, function* () { return axios_1.default.get(url, config); }), constants_1.S3_GET_RETRY_LIMIT);
|
|
50
|
+
return resp;
|
|
26
51
|
});
|
|
27
|
-
const
|
|
28
|
-
|
|
52
|
+
const preparePostData = (urlObj, payload) => {
|
|
53
|
+
let payloadStr = JSON.stringify(payload);
|
|
54
|
+
if (payloadStr.length > constants_1.PAYLOAD_LIMIT) {
|
|
55
|
+
payloadStr = JSON.stringify(normalizeError_1.normalizeError(new PayloadLimitExceedError_1.PayloadLimitExceedError()).toJSON());
|
|
56
|
+
}
|
|
29
57
|
const formData = new form_data_1.default();
|
|
30
|
-
|
|
31
|
-
urlObj.searchParams.forEach(function (value, key) {
|
|
58
|
+
urlObj.searchParams.forEach((value, key) => {
|
|
32
59
|
formData.append(key, value);
|
|
33
60
|
});
|
|
34
|
-
formData.append('file',
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
});
|
|
41
|
-
return resp.data;
|
|
42
|
-
});
|
|
43
|
-
const isStreamExecution = (payload) => {
|
|
44
|
-
if (payload.meta !== undefined && payload.meta.type !== undefined) {
|
|
45
|
-
return payload.meta.type === STREAM_EXECUTION;
|
|
46
|
-
}
|
|
61
|
+
formData.append('file', payloadStr);
|
|
62
|
+
return formData;
|
|
63
|
+
};
|
|
64
|
+
const preparePostUrl = (urlObj) => {
|
|
65
|
+
const url = urlObj.origin + urlObj.pathname;
|
|
66
|
+
return url;
|
|
47
67
|
};
|
|
68
|
+
const postPayloadToS3 = (url, result) => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
const resp = yield retryWrapper(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
+
const urlObj = new URL(decodeURI(url));
|
|
71
|
+
const data = preparePostData(urlObj, result);
|
|
72
|
+
const config = {
|
|
73
|
+
headers: {
|
|
74
|
+
'Content-Type': 'multipart/form-data',
|
|
75
|
+
'Content-Length': data.getLengthSync(),
|
|
76
|
+
},
|
|
77
|
+
maxContentLength: Infinity,
|
|
78
|
+
maxBodyLength: Infinity,
|
|
79
|
+
timeout: constants_1.S3_REQUEST_TIMEOUT_MS,
|
|
80
|
+
};
|
|
81
|
+
const postUrl = preparePostUrl(urlObj);
|
|
82
|
+
return axios_1.default.post(postUrl, data, config);
|
|
83
|
+
}), constants_1.S3_POST_RETRY_LIMIT);
|
|
84
|
+
return resp;
|
|
85
|
+
});
|
|
48
86
|
const isS3Execution = (payload) => {
|
|
49
87
|
if (payload.meta !== undefined && payload.meta.type !== undefined) {
|
|
50
|
-
return payload.meta.type === S3_EXECUTION;
|
|
88
|
+
return payload.meta.type === constants_1.S3_EXECUTION;
|
|
51
89
|
}
|
|
52
90
|
};
|
|
53
91
|
const wrapS3Response = (result) => {
|
|
@@ -56,7 +94,9 @@ const wrapS3Response = (result) => {
|
|
|
56
94
|
data: result,
|
|
57
95
|
};
|
|
58
96
|
};
|
|
59
|
-
const
|
|
97
|
+
const handleGetError = (err) => {
|
|
98
|
+
// eslint-disable-next-line no-console
|
|
99
|
+
console.error(err);
|
|
60
100
|
if (axios_1.default.isAxiosError(err)) {
|
|
61
101
|
if (err.response) {
|
|
62
102
|
return new PayloadFetchError_1.PayloadFetchError(err.response.data);
|
|
@@ -70,6 +110,8 @@ const handleFetchError = (err) => {
|
|
|
70
110
|
}
|
|
71
111
|
};
|
|
72
112
|
const handlePostError = (err) => {
|
|
113
|
+
// eslint-disable-next-line no-console
|
|
114
|
+
console.error(err);
|
|
73
115
|
if (axios_1.default.isAxiosError(err)) {
|
|
74
116
|
if (err.response) {
|
|
75
117
|
return new PayloadPostError_1.PayloadPostError(err.response.data);
|
|
@@ -82,39 +124,69 @@ const handlePostError = (err) => {
|
|
|
82
124
|
return new PayloadPostError_1.PayloadPostError(err.stack);
|
|
83
125
|
}
|
|
84
126
|
};
|
|
85
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Handles payloads that aren't wrapped.
|
|
129
|
+
*/
|
|
130
|
+
const handlePassThroughPayload = create => {
|
|
86
131
|
return () => {
|
|
87
132
|
const handler = create();
|
|
88
133
|
return (payload, callback) => {
|
|
89
|
-
|
|
90
|
-
getPayloadFromS3(payload.body.getURL)
|
|
91
|
-
.then(resultFromS3 => {
|
|
92
|
-
handler(resultFromS3, (err, result) => {
|
|
93
|
-
if (err) {
|
|
94
|
-
callback(err);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
putPayloadToS3(payload.body.postURL, result)
|
|
98
|
-
.then(resultNext => {
|
|
99
|
-
callback(err, wrapS3Response(resultNext));
|
|
100
|
-
})
|
|
101
|
-
.catch(s3Error => {
|
|
102
|
-
callback(handlePostError(s3Error));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
})
|
|
107
|
-
.catch(s3GetErr => {
|
|
108
|
-
callback(handleFetchError(s3GetErr));
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
else if (isStreamExecution(payload)) {
|
|
112
|
-
handler(payload.body.payload, callback);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
134
|
+
try {
|
|
115
135
|
handler(payload, callback);
|
|
116
136
|
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
callback(err);
|
|
139
|
+
}
|
|
117
140
|
};
|
|
118
141
|
};
|
|
119
142
|
};
|
|
143
|
+
/**
|
|
144
|
+
* Handles payloads that are wrapped and `meta.type === 's3Execution'`.
|
|
145
|
+
* The payload is fetched from S3 and the response is posted to S3.
|
|
146
|
+
* Only Platform errors are returned via the callback.
|
|
147
|
+
*/
|
|
148
|
+
const handleS3PayLoad = create => {
|
|
149
|
+
return () => {
|
|
150
|
+
const handler = create();
|
|
151
|
+
const handlerAsPromise = (payload) => new Promise((resolve, reject) => {
|
|
152
|
+
handler(payload, (err, result) => {
|
|
153
|
+
if (err) {
|
|
154
|
+
reject(err);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
resolve(result);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
return ({ body: { getURL, postURL } }, callback) => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
|
+
getPayloadFromS3(getURL).then((payload) => {
|
|
163
|
+
return handlerAsPromise(payload)
|
|
164
|
+
.catch(upstreamErr => normalizeError_1.normalizeError(upstreamErr).toJSON())
|
|
165
|
+
.then(result => {
|
|
166
|
+
// All upstream results, including errors.
|
|
167
|
+
postPayloadToS3(postURL, result).then(response => {
|
|
168
|
+
callback(null, wrapS3Response(response));
|
|
169
|
+
}, s3Error => {
|
|
170
|
+
// Only putPayloadToS3 error
|
|
171
|
+
callback(handlePostError(s3Error));
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}, s3GetErr => {
|
|
175
|
+
// Only getPayloadFromS3 error
|
|
176
|
+
callback(handleGetError(s3GetErr));
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
exports.handleBigPayLoad = xorHandler_1.xorHandler({
|
|
182
|
+
passThroughPayload: handlePassThroughPayload,
|
|
183
|
+
s3Payload: handleS3PayLoad,
|
|
184
|
+
}, {
|
|
185
|
+
getFunctionKey: (payload) => {
|
|
186
|
+
if (isS3Execution(payload)) {
|
|
187
|
+
return 's3Payload';
|
|
188
|
+
}
|
|
189
|
+
return 'passThroughPayload';
|
|
190
|
+
},
|
|
191
|
+
});
|
|
120
192
|
//# sourceMappingURL=handleBigPayLoad.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleBigPayLoad.js","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"handleBigPayLoad.js","sourceRoot":"","sources":["../../src/enhancers/handleBigPayLoad.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAiE;AACjE,0DAAiC;AACjC,mEAAgE;AAChE,+EAA4E;AAC5E,iEAA8D;AAE9D,oEAGuC;AACvC,kDAO4B;AAC5B,4DAAyD;AACzD,6CAA0C;AAO1C,MAAM,YAAY,GAAG,CACnB,IAA8C,EAC9C,UAAkB,EACgB,EAAE;IACpC,KAAK,IAAI,OAAO,GAAG,UAAU,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE;QAC7D,IAAI;YACF,4CAA4C;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,OAAO,KAAK,CAAC,EAAE;gBACjB,MAAM,KAAK,CAAC;aACb;YAED,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,kDAAkD,OAAO,QAAQ,UAAU,GAAG,CAC/E,CAAC;YACF,4CAA4C;YAC5C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,UAAU,CAAC,OAAO,EAAE,+BAAmB,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;SACJ;KACF;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAO,GAAW,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAuB;QACjC,OAAO,EAAE,iCAAqB;KAC/B,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,GAAS,EAAE,kDAAC,OAAA,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,GAAA,EAClC,8BAAkB,CACnB,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,CAAA,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,OAAY,EAAY,EAAE;IAC9D,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,MAAM,GAAG,yBAAa,EAAE;QACrC,UAAU,GAAG,IAAI,CAAC,SAAS,CACzB,+BAAc,CAAC,IAAI,iDAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CACvD,CAAC;KACH;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAChC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACzC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAW,EAAU,EAAE;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAO,GAAW,EAAE,MAAW,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAS,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAuB;YACjC,OAAO,EAAE;gBACP,cAAc,EAAE,qBAAqB;gBACrC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE;aACvC;YACD,gBAAgB,EAAE,QAAQ;YAC1B,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,iCAAqB;SAC/B,CAAC;QAEF,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,eAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAA,EAAE,+BAAmB,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC,CAAA,CAAC;AAYF,MAAM,aAAa,GAAG,CAAC,OAAY,EAA0B,EAAE;IAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QACjE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAY,CAAC;KAC3C;AACH,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,MAAW,EAAoB,EAAE;IACvD,OAAO;QACL,MAAM,EAAE,iCAAc,CAAC,OAAO;QAC9B,IAAI,EAAE,MAAM;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,GAAU,EAAqB,EAAE;IACvD,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnB,IAAI,eAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;QAC3B,IAAI,GAAG,CAAC,QAAQ,EAAE;YAChB,OAAO,IAAI,qCAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACjD;QACD,IAAI,GAAG,CAAC,OAAO,EAAE;YACf,OAAO,IAAI,qCAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChD;KACF;SAAM;QACL,OAAO,IAAI,qCAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACzC;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,GAAU,EAAoB,EAAE;IACvD,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnB,IAAI,eAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;QAC3B,IAAI,GAAG,CAAC,QAAQ,EAAE;YAChB,OAAO,IAAI,mCAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChD;QACD,IAAI,GAAG,CAAC,OAAO,EAAE;YACf,OAAO,IAAI,mCAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C;KACF;SAAM;QACL,OAAO,IAAI,mCAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,wBAAwB,GAA6B,MAAM,CAAC,EAAE;IAClE,OAAO,GAAG,EAAE;QACV,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC3B,IAAI;gBACF,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aAC5B;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,CAAC,GAAG,CAAC,CAAC;aACf;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,eAAe,GAA6B,MAAM,CAAC,EAAE;IACzD,OAAO,GAAG,EAAE;QACV,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,CAAC,OAAY,EAAE,EAAE,CACxC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBAC/B,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,MAAM,CAAC,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,OAAO,CAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAe,EAAE,QAAQ,EAAE,EAAE;YACpE,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3B,CAAC,OAAgB,EAAE,EAAE;gBACnB,OAAO,gBAAgB,CAAC,OAAO,CAAC;qBAC7B,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,+BAAc,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC1D,IAAI,CAAC,MAAM,CAAC,EAAE;oBACb,0CAA0C;oBAC1C,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CACnC,QAAQ,CAAC,EAAE;wBACT,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC3C,CAAC,EACD,OAAO,CAAC,EAAE;wBACR,4BAA4B;wBAC5B,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrC,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACP,CAAC,EACD,QAAQ,CAAC,EAAE;gBACT,8BAA8B;gBAC9B,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,CAAC,CACF,CAAC;QACJ,CAAC,CAAA,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,gBAAgB,GAAG,uBAAU,CACxC;IACE,kBAAkB,EAAE,wBAAwB;IAC5C,SAAS,EAAE,eAAe;CAC3B,EACD;IACE,cAAc,EAAE,CAAC,OAAgB,EAAE,EAAE;QACnC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,WAAW,CAAC;SACpB;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF,CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AbstractError } from './AbstractError';
|
|
2
|
+
export declare class PayloadLimitExceedError extends AbstractError {
|
|
3
|
+
static CODE: string;
|
|
4
|
+
static STATUS: number;
|
|
5
|
+
static DESCRIPTION: string;
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=PayloadLimitExceedError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayloadLimitExceedError.d.ts","sourceRoot":"","sources":["../../src/errors/PayloadLimitExceedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAc,IAAI,SAAgC;IAClD,OAAc,MAAM,SAAO;IAC3B,OAAc,WAAW,SACiC;;CAQ3D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PayloadLimitExceedError = void 0;
|
|
4
|
+
const AbstractError_1 = require("./AbstractError");
|
|
5
|
+
const InternalError_1 = require("./InternalError");
|
|
6
|
+
class PayloadLimitExceedError extends AbstractError_1.AbstractError {
|
|
7
|
+
constructor() {
|
|
8
|
+
super({
|
|
9
|
+
httpStatus: InternalError_1.InternalError.STATUS,
|
|
10
|
+
code: PayloadLimitExceedError.CODE,
|
|
11
|
+
description: PayloadLimitExceedError.DESCRIPTION,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.PayloadLimitExceedError = PayloadLimitExceedError;
|
|
16
|
+
PayloadLimitExceedError.CODE = 'PAYLOAD_LIMIT_EXCEED_ERROR';
|
|
17
|
+
PayloadLimitExceedError.STATUS = 413;
|
|
18
|
+
PayloadLimitExceedError.DESCRIPTION = 'Platform does not support payloads larger than 48 MB.';
|
|
19
|
+
//# sourceMappingURL=PayloadLimitExceedError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayloadLimitExceedError.js","sourceRoot":"","sources":["../../src/errors/PayloadLimitExceedError.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,mDAAgD;AAEhD,MAAa,uBAAwB,SAAQ,6BAAa;IAKxD;QACE,KAAK,CAAC;YACJ,UAAU,EAAE,6BAAa,CAAC,MAAM;YAChC,IAAI,EAAE,uBAAuB,CAAC,IAAI;YAClC,WAAW,EAAE,uBAAuB,CAAC,WAAW;SACjD,CAAC,CAAC;IACL,CAAC;;AAXH,0DAYC;AAXe,4BAAI,GAAG,4BAA4B,CAAC;AACpC,8BAAM,GAAG,GAAG,CAAC;AACb,mCAAW,GACvB,uDAAuD,CAAC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -30,4 +30,5 @@ __exportStar(require("./transports/httpTransport"), exports);
|
|
|
30
30
|
__exportStar(require("./transports/lambdaTransport"), exports);
|
|
31
31
|
__exportStar(require("./utils/compose"), exports);
|
|
32
32
|
__exportStar(require("./utils/serializable"), exports);
|
|
33
|
+
__exportStar(require("./utils/constants"), exports);
|
|
33
34
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C;AAC9C,yDAAuC;AACvC,6DAA2C;AAC3C,2DAAyC;AACzC,mEAAiD;AACjD,yDAAuC;AACvC,+DAA6C;AAC7C,yDAAuC;AACvC,2DAAyC;AACzC,0DAAwC;AACxC,yDAAuC;AACvC,yDAAuC;AACvC,yDAAuC;AACvC,4CAA0B;AAC1B,4DAA0C;AAC1C,gEAA8C;AAC9C,6DAA2C;AAC3C,+DAA6C;AAC7C,kDAAgC;AAChC,uDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C;AAC9C,yDAAuC;AACvC,6DAA2C;AAC3C,2DAAyC;AACzC,mEAAiD;AACjD,yDAAuC;AACvC,+DAA6C;AAC7C,yDAAuC;AACvC,2DAAyC;AACzC,0DAAwC;AACxC,yDAAuC;AACvC,yDAAuC;AACvC,yDAAuC;AACvC,4CAA0B;AAC1B,4DAA0C;AAC1C,gEAA8C;AAC9C,6DAA2C;AAC3C,+DAA6C;AAC7C,kDAAgC;AAChC,uDAAqC;AACrC,oDAAkC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const S3_EXECUTION = "s3Execution";
|
|
2
|
+
export declare const PAYLOAD_LIMIT: number;
|
|
3
|
+
export declare const S3_GET_RETRY_LIMIT: number;
|
|
4
|
+
export declare const S3_POST_RETRY_LIMIT: number;
|
|
5
|
+
export declare const S3_REQUEST_DELAY_MS: number;
|
|
6
|
+
export declare const S3_REQUEST_TIMEOUT_MS: number;
|
|
7
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,aAAa,QAAmB,CAAC;AAE9C,eAAO,MAAM,kBAAkB,EAAE,MAAW,CAAC;AAC7C,eAAO,MAAM,mBAAmB,EAAE,MAAW,CAAC;AAC9C,eAAO,MAAM,mBAAmB,EAAE,MAAY,CAAC;AAC/C,eAAO,MAAM,qBAAqB,EAAE,MAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3_REQUEST_TIMEOUT_MS = exports.S3_REQUEST_DELAY_MS = exports.S3_POST_RETRY_LIMIT = exports.S3_GET_RETRY_LIMIT = exports.PAYLOAD_LIMIT = exports.S3_EXECUTION = void 0;
|
|
4
|
+
exports.S3_EXECUTION = 's3Execution';
|
|
5
|
+
exports.PAYLOAD_LIMIT = 48 * 1024 * 1024;
|
|
6
|
+
exports.S3_GET_RETRY_LIMIT = 10;
|
|
7
|
+
exports.S3_POST_RETRY_LIMIT = 10;
|
|
8
|
+
exports.S3_REQUEST_DELAY_MS = 200;
|
|
9
|
+
exports.S3_REQUEST_TIMEOUT_MS = 20 * 1000;
|
|
10
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,aAAa,CAAC;AAC7B,QAAA,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,QAAA,kBAAkB,GAAW,EAAE,CAAC;AAChC,QAAA,mBAAmB,GAAW,EAAE,CAAC;AACjC,QAAA,mBAAmB,GAAW,GAAG,CAAC;AAClC,QAAA,qBAAqB,GAAW,EAAE,GAAG,IAAI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartsheet-extensions/handler",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta.11",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
},
|
|
12
12
|
"author": "graeme.cassels@smartsheet.com",
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@types/aws-lambda": "^8.10.89",
|
|
15
14
|
"@types/supertest": "^2.0.8",
|
|
16
15
|
"body-parser": "^1.19.0",
|
|
17
16
|
"express": "^4.17.1",
|
|
@@ -19,6 +18,7 @@
|
|
|
19
18
|
"supertest": "^4.0.2"
|
|
20
19
|
},
|
|
21
20
|
"dependencies": {
|
|
21
|
+
"@types/aws-lambda": "^8.10.89",
|
|
22
22
|
"@types/express": "^4.17.0",
|
|
23
23
|
"axios": "^0.27.2",
|
|
24
24
|
"form-data": "^4.0.0"
|