@ingestkorea/client-sens 1.7.0 → 1.9.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/LICENSE +1 -1
- package/README.md +98 -63
- package/dist-cjs/SensClient.js +57 -28
- package/dist-cjs/commands/GetAlimtalkResultCommand.js +5 -32
- package/dist-cjs/commands/GetAlimtalkStatusCommand.js +7 -35
- package/dist-cjs/commands/GetAlimtalkTemplateCommand.js +5 -32
- package/dist-cjs/commands/GetSMSResultCommand.js +8 -33
- package/dist-cjs/commands/GetSMSStatusCommand.js +7 -33
- package/dist-cjs/commands/ListAlimtalkChannelsCommand.js +6 -33
- package/dist-cjs/commands/ListAlimtalkStatusCommand.js +29 -35
- package/dist-cjs/commands/ListAlimtalkTemplatesCommand.js +5 -32
- package/dist-cjs/commands/ListSMSStatusCommand.js +37 -0
- package/dist-cjs/commands/SendAlimtalkCommand.js +36 -44
- package/dist-cjs/commands/SendMMSCommand.js +67 -103
- package/dist-cjs/commands/SendSMSCommand.js +38 -71
- package/dist-cjs/commands/constants.js +57 -14
- package/dist-cjs/commands/index.js +12 -11
- package/dist-cjs/index.js +2 -2
- package/dist-cjs/middleware/constants.js +10 -0
- package/dist-cjs/middleware/index.js +3 -4
- package/dist-cjs/middleware/middleware-metadata.js +4 -5
- package/dist-cjs/middleware/middleware-retry.js +32 -27
- package/dist-cjs/middleware/middleware-sign.js +10 -9
- package/dist-cjs/models/SendAlimtalk.js +3 -0
- package/dist-cjs/models/SendMMS.js +3 -0
- package/dist-cjs/models/SensClient.js +2 -0
- package/dist-cjs/models/SensErrorInfo.js +13 -0
- package/dist-cjs/models/SensMiddleware.js +2 -0
- package/dist-cjs/models/index.js +17 -14
- package/dist-cjs/protocols/GetAlimtalkResult.js +19 -22
- package/dist-cjs/protocols/GetAlimtalkStatus.js +39 -40
- package/dist-cjs/protocols/GetAlimtalkTemplate.js +56 -90
- package/dist-cjs/protocols/GetSMSResult.js +31 -48
- package/dist-cjs/protocols/GetSMSStatus.js +51 -37
- package/dist-cjs/protocols/ListAlimtalkChannels.js +27 -31
- package/dist-cjs/protocols/ListAlimtalkStatus.js +22 -19
- package/dist-cjs/protocols/ListAlimtalkTemplates.js +33 -25
- package/dist-cjs/protocols/ListSMSStatus.js +48 -0
- package/dist-cjs/protocols/SendAlimtalk.js +23 -27
- package/dist-cjs/protocols/SendMMS.js +8 -38
- package/dist-cjs/protocols/SendSMS.js +20 -22
- package/dist-cjs/protocols/constants.js +103 -34
- package/dist-es/SensClient.js +63 -30
- package/dist-es/commands/GetAlimtalkResultCommand.js +9 -19
- package/dist-es/commands/GetAlimtalkStatusCommand.js +12 -19
- package/dist-es/commands/GetAlimtalkTemplateCommand.js +9 -19
- package/dist-es/commands/GetSMSResultCommand.js +10 -20
- package/dist-es/commands/GetSMSStatusCommand.js +13 -20
- package/dist-es/commands/ListAlimtalkChannelsCommand.js +10 -22
- package/dist-es/commands/ListAlimtalkStatusCommand.js +39 -28
- package/dist-es/commands/ListAlimtalkTemplatesCommand.js +9 -19
- package/dist-es/commands/ListSMSStatusCommand.js +48 -0
- package/dist-es/commands/SendAlimtalkCommand.js +35 -30
- package/dist-es/commands/SendMMSCommand.js +70 -100
- package/dist-es/commands/SendSMSCommand.js +51 -66
- package/dist-es/commands/constants.js +65 -15
- package/dist-es/commands/index.js +28 -11
- package/dist-es/index.js +18 -2
- package/dist-es/middleware/constants.js +10 -0
- package/dist-es/middleware/index.js +19 -4
- package/dist-es/middleware/middleware-metadata.js +11 -5
- package/dist-es/middleware/middleware-retry.js +39 -30
- package/dist-es/middleware/middleware-sign.js +19 -14
- package/dist-es/models/GetAlimtalkResult.js +2 -1
- package/dist-es/models/GetAlimtalkStatus.js +2 -1
- package/dist-es/models/GetAlimtalkTemplate.js +2 -1
- package/dist-es/models/GetSMSResult.js +2 -1
- package/dist-es/models/GetSMSStatus.js +2 -1
- package/dist-es/models/ListAlimtalkChannels.js +2 -1
- package/dist-es/models/ListAlimtalkStatus.js +2 -1
- package/dist-es/models/ListAlimtalkTemplates.js +2 -1
- package/dist-es/models/ListSMSStatus.js +2 -0
- package/dist-es/models/MetadataBearer.js +2 -1
- package/dist-es/models/SendAlimtalk.js +5 -1
- package/dist-es/models/SendMMS.js +5 -1
- package/dist-es/models/SendSMS.js +2 -1
- package/dist-es/models/SensClient.js +2 -0
- package/dist-es/models/SensCommand.js +5 -1
- package/dist-es/models/SensErrorInfo.js +13 -0
- package/dist-es/models/SensMiddleware.js +2 -0
- package/dist-es/models/index.js +33 -14
- package/dist-es/protocols/GetAlimtalkResult.js +24 -23
- package/dist-es/protocols/GetAlimtalkStatus.js +51 -47
- package/dist-es/protocols/GetAlimtalkTemplate.js +78 -87
- package/dist-es/protocols/GetSMSResult.js +40 -47
- package/dist-es/protocols/GetSMSStatus.js +55 -37
- package/dist-es/protocols/ListAlimtalkChannels.js +31 -31
- package/dist-es/protocols/ListAlimtalkStatus.js +26 -32
- package/dist-es/protocols/ListAlimtalkTemplates.js +37 -24
- package/dist-es/protocols/ListSMSStatus.js +42 -0
- package/dist-es/protocols/SendAlimtalk.js +27 -26
- package/dist-es/protocols/SendMMS.js +10 -49
- package/dist-es/protocols/SendSMS.js +24 -31
- package/dist-es/protocols/constants.js +119 -39
- package/dist-types/SensClient.d.ts +3 -20
- package/dist-types/commands/GetAlimtalkResultCommand.d.ts +5 -10
- package/dist-types/commands/GetAlimtalkStatusCommand.d.ts +5 -10
- package/dist-types/commands/GetAlimtalkTemplateCommand.d.ts +5 -10
- package/dist-types/commands/GetSMSResultCommand.d.ts +5 -10
- package/dist-types/commands/GetSMSStatusCommand.d.ts +5 -10
- package/dist-types/commands/ListAlimtalkChannelsCommand.d.ts +5 -10
- package/dist-types/commands/ListAlimtalkStatusCommand.d.ts +5 -10
- package/dist-types/commands/ListAlimtalkTemplatesCommand.d.ts +5 -10
- package/dist-types/commands/ListSMSStatusCommand.d.ts +11 -0
- package/dist-types/commands/SendAlimtalkCommand.d.ts +5 -10
- package/dist-types/commands/SendMMSCommand.d.ts +5 -10
- package/dist-types/commands/SendSMSCommand.d.ts +9 -10
- package/dist-types/commands/constants.d.ts +14 -4
- package/dist-types/commands/index.d.ts +12 -11
- package/dist-types/index.d.ts +2 -2
- package/dist-types/middleware/constants.d.ts +7 -0
- package/dist-types/middleware/index.d.ts +3 -4
- package/dist-types/middleware/middleware-metadata.d.ts +2 -2
- package/dist-types/middleware/middleware-retry.d.ts +2 -2
- package/dist-types/middleware/middleware-sign.d.ts +2 -2
- package/dist-types/models/GetAlimtalkResult.d.ts +3 -3
- package/dist-types/models/GetAlimtalkStatus.d.ts +8 -5
- package/dist-types/models/GetAlimtalkTemplate.d.ts +5 -5
- package/dist-types/models/GetSMSResult.d.ts +7 -15
- package/dist-types/models/GetSMSStatus.d.ts +19 -4
- package/dist-types/models/ListAlimtalkChannels.d.ts +4 -4
- package/dist-types/models/ListAlimtalkStatus.d.ts +8 -8
- package/dist-types/models/ListAlimtalkTemplates.d.ts +2 -2
- package/dist-types/models/ListSMSStatus.d.ts +15 -0
- package/dist-types/models/MetadataBearer.d.ts +3 -3
- package/dist-types/models/SendAlimtalk.d.ts +7 -4
- package/dist-types/models/SendMMS.d.ts +5 -3
- package/dist-types/models/SendSMS.d.ts +2 -2
- package/dist-types/models/SensClient.d.ts +17 -0
- package/dist-types/models/SensCommand.d.ts +4 -6
- package/dist-types/models/SensErrorInfo.d.ts +21 -0
- package/dist-types/models/SensMiddleware.d.ts +8 -0
- package/dist-types/models/index.d.ts +17 -14
- package/dist-types/protocols/GetAlimtalkResult.d.ts +4 -11
- package/dist-types/protocols/GetAlimtalkStatus.d.ts +6 -12
- package/dist-types/protocols/GetAlimtalkTemplate.d.ts +4 -14
- package/dist-types/protocols/GetSMSResult.d.ts +4 -12
- package/dist-types/protocols/GetSMSStatus.d.ts +6 -11
- package/dist-types/protocols/ListAlimtalkChannels.d.ts +4 -11
- package/dist-types/protocols/ListAlimtalkStatus.d.ts +4 -10
- package/dist-types/protocols/ListAlimtalkTemplates.d.ts +5 -12
- package/dist-types/protocols/ListSMSStatus.d.ts +4 -0
- package/dist-types/protocols/SendAlimtalk.d.ts +5 -12
- package/dist-types/protocols/SendMMS.d.ts +4 -10
- package/dist-types/protocols/SendSMS.d.ts +5 -10
- package/dist-types/protocols/constants.d.ts +4 -2
- package/package.json +20 -4
- package/.github/pull_request_template.md +0 -19
- package/dist-cjs/middleware/middleware-sort-headers.js +0 -25
- package/dist-cjs/protocols/index.js +0 -28
- package/dist-es/middleware/middleware-sort-headers.js +0 -12
- package/dist-es/models/Middleware.js +0 -1
- package/dist-es/protocols/index.js +0 -12
- package/dist-types/middleware/middleware-sort-headers.d.ts +0 -2
- package/dist-types/models/Middleware.d.ts +0 -12
- package/dist-types/protocols/index.d.ts +0 -12
- /package/dist-cjs/models/{Middleware.js → ListSMSStatus.js} +0 -0
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
exports.LMS_MAX = 2000;
|
|
6
|
-
exports.MMS_FILE_MAX = 300; // KiByte
|
|
3
|
+
exports.resolveRequestDuration = exports.getDefaultRequestDuration = exports.convertToKst = exports.convertToUtc = exports.getContentLength = exports.prettyPhoneNum = exports.trimText = void 0;
|
|
4
|
+
const index_js_1 = require("../models/index.js");
|
|
7
5
|
const trimText = (input) => input.trim();
|
|
8
6
|
exports.trimText = trimText;
|
|
9
7
|
const prettyPhoneNum = (input) => input.replace(/\-/gi, "");
|
|
@@ -18,14 +16,59 @@ const getContentLength = (input) => {
|
|
|
18
16
|
}, 0);
|
|
19
17
|
};
|
|
20
18
|
exports.getContentLength = getContentLength;
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const hours_ms = hours * 60 * 60 * 1000;
|
|
25
|
-
const current_ms = new Date().getTime() + OFFSET;
|
|
26
|
-
const startTime_ms = current_ms - hours_ms;
|
|
27
|
-
let current_kst = new Date(current_ms).toISOString().replace(/\.\d{3}Z$/, "");
|
|
28
|
-
let startTime_kst = new Date(startTime_ms).toISOString().replace(/\.\d{3}Z$/, "");
|
|
29
|
-
return { startTime: startTime_kst, endTime: current_kst };
|
|
19
|
+
const convertToUtc = (input) => {
|
|
20
|
+
const utcRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/;
|
|
21
|
+
return utcRegex.test(input) ? input : new Date(input.replace(" ", "T") + "+09:00").toISOString();
|
|
30
22
|
};
|
|
31
|
-
exports.
|
|
23
|
+
exports.convertToUtc = convertToUtc;
|
|
24
|
+
const convertToKst = (input) => {
|
|
25
|
+
const KST_OFFSET = 9 * 3600000;
|
|
26
|
+
return new Date(input + KST_OFFSET).toISOString().replace(/\.\d{3}Z$/, "");
|
|
27
|
+
};
|
|
28
|
+
exports.convertToKst = convertToKst;
|
|
29
|
+
// UTC
|
|
30
|
+
const getDefaultRequestDuration = (config) => {
|
|
31
|
+
const now = Date.now();
|
|
32
|
+
return {
|
|
33
|
+
startTime: new Date(now - config.durationLimitMs).toISOString(),
|
|
34
|
+
endTime: new Date(now).toISOString(),
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.getDefaultRequestDuration = getDefaultRequestDuration;
|
|
38
|
+
// UTC
|
|
39
|
+
const resolveRequestDuration = (input, config) => {
|
|
40
|
+
const start = new Date(input.startTime).getTime();
|
|
41
|
+
const end = new Date(input.endTime).getTime();
|
|
42
|
+
const diff = end - start;
|
|
43
|
+
if (diff < 0) {
|
|
44
|
+
throw new index_js_1.SensError({
|
|
45
|
+
code: 400,
|
|
46
|
+
type: "Bad Request",
|
|
47
|
+
message: `조회 가능 날짜 오류`,
|
|
48
|
+
invalidInputs: [
|
|
49
|
+
{
|
|
50
|
+
type: "not-valid.args",
|
|
51
|
+
message: "종료일이 시작일보다 빠를 수 없습니다.",
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (diff > config.durationLimitMs) {
|
|
57
|
+
throw new index_js_1.SensError({
|
|
58
|
+
code: 400,
|
|
59
|
+
type: "Bad Request",
|
|
60
|
+
message: `조회 가능 날짜 범위 오류`,
|
|
61
|
+
invalidInputs: [
|
|
62
|
+
{
|
|
63
|
+
type: "not-valid.args",
|
|
64
|
+
message: `조회 가능한 날짜 범위는 최대 ${config.durationLimitMs / (24 * 3600000)}일 이내여야 합니다.`,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
startTimeMs: start,
|
|
71
|
+
endTimeMs: end,
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
exports.resolveRequestDuration = resolveRequestDuration;
|
|
@@ -14,14 +14,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./GetAlimtalkStatusCommand"), exports);
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./
|
|
21
|
-
__exportStar(require("./
|
|
22
|
-
__exportStar(require("./
|
|
23
|
-
__exportStar(require("./
|
|
24
|
-
__exportStar(require("./
|
|
25
|
-
__exportStar(require("./
|
|
26
|
-
__exportStar(require("./
|
|
27
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./GetAlimtalkResultCommand.js"), exports);
|
|
18
|
+
__exportStar(require("./GetAlimtalkStatusCommand.js"), exports);
|
|
19
|
+
__exportStar(require("./GetAlimtalkTemplateCommand.js"), exports);
|
|
20
|
+
__exportStar(require("./GetSMSResultCommand.js"), exports);
|
|
21
|
+
__exportStar(require("./GetSMSStatusCommand.js"), exports);
|
|
22
|
+
__exportStar(require("./ListAlimtalkChannelsCommand.js"), exports);
|
|
23
|
+
__exportStar(require("./ListAlimtalkStatusCommand.js"), exports);
|
|
24
|
+
__exportStar(require("./ListAlimtalkTemplatesCommand.js"), exports);
|
|
25
|
+
__exportStar(require("./ListSMSStatusCommand.js"), exports);
|
|
26
|
+
__exportStar(require("./SendAlimtalkCommand.js"), exports);
|
|
27
|
+
__exportStar(require("./SendMMSCommand.js"), exports);
|
|
28
|
+
__exportStar(require("./SendSMSCommand.js"), exports);
|
package/dist-cjs/index.js
CHANGED
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./commands"), exports);
|
|
18
|
-
__exportStar(require("./SensClient"), exports);
|
|
17
|
+
__exportStar(require("./commands/index.js"), exports);
|
|
18
|
+
__exportStar(require("./SensClient.js"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NCP_SIGNATURE = exports.NCP_TIMESTAMP = exports.NCP_ACCESS_KEY = exports.INGESTKOREA_RETRY_DELAY = exports.INGESTKOREA_RETRY = exports.INGESTKOREA_REQUEST_LOG = exports.INGESTKOREA_USER_AGENT = void 0;
|
|
4
|
+
exports.INGESTKOREA_USER_AGENT = "x-ingestkorea-user-agent";
|
|
5
|
+
exports.INGESTKOREA_REQUEST_LOG = "x-ingestkorea-request";
|
|
6
|
+
exports.INGESTKOREA_RETRY = "x-ingestkorea-attempts";
|
|
7
|
+
exports.INGESTKOREA_RETRY_DELAY = "x-ingestkorea-total-retry-delay";
|
|
8
|
+
exports.NCP_ACCESS_KEY = "x-ncp-iam-access-key";
|
|
9
|
+
exports.NCP_TIMESTAMP = "x-ncp-apigw-timestamp";
|
|
10
|
+
exports.NCP_SIGNATURE = "x-ncp-apigw-signature-v2";
|
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./middleware-
|
|
18
|
-
__exportStar(require("./middleware-
|
|
19
|
-
__exportStar(require("./middleware-
|
|
20
|
-
__exportStar(require("./middleware-sort-headers"), exports);
|
|
17
|
+
__exportStar(require("./middleware-metadata.js"), exports);
|
|
18
|
+
__exportStar(require("./middleware-retry.js"), exports);
|
|
19
|
+
__exportStar(require("./middleware-sign.js"), exports);
|
|
@@ -10,10 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.middlewareIngestkoreaMetadata = void 0;
|
|
13
|
-
const
|
|
14
|
-
const middlewareIngestkoreaMetadata = (
|
|
15
|
-
request.headers[
|
|
16
|
-
|
|
17
|
-
return request;
|
|
13
|
+
const constants_js_1 = require("./constants.js");
|
|
14
|
+
const middlewareIngestkoreaMetadata = (next) => (input, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
input.request.headers = Object.assign(Object.assign({}, input.request.headers), { [constants_js_1.INGESTKOREA_USER_AGENT]: "@ingestkorea/client-sens/1.8.x" });
|
|
16
|
+
return next(input, context);
|
|
18
17
|
});
|
|
19
18
|
exports.middlewareIngestkoreaMetadata = middlewareIngestkoreaMetadata;
|
|
@@ -11,48 +11,53 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.middlewareRetry = void 0;
|
|
13
13
|
const util_error_handler_1 = require("@ingestkorea/util-error-handler");
|
|
14
|
-
const
|
|
15
|
-
const middlewareRetry = (
|
|
16
|
-
|
|
14
|
+
const constants_js_1 = require("./constants.js");
|
|
15
|
+
const middlewareRetry = (next) => (input, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
var _c;
|
|
18
|
+
const MAX_RETRIES = 3;
|
|
19
|
+
const BASE_DELAY_MS = 500;
|
|
20
|
+
const MAX_DELAY_MS = 5000;
|
|
17
21
|
let attempts = 0;
|
|
18
22
|
let totalRetryDelay = 0;
|
|
23
|
+
(_a = (_c = input.request).headers) !== null && _a !== void 0 ? _a : (_c.headers = {});
|
|
19
24
|
let lastError = new util_error_handler_1.IngestkoreaError({
|
|
20
25
|
code: 400,
|
|
21
26
|
type: "Bad Request",
|
|
22
27
|
message: "Invalid Request",
|
|
23
|
-
description: { attempts,
|
|
28
|
+
description: { attempts, maxRetries: MAX_RETRIES, totalRetryDelay },
|
|
24
29
|
});
|
|
25
|
-
while (
|
|
30
|
+
while (attempts < MAX_RETRIES) {
|
|
31
|
+
const attemptNo = attempts + 1;
|
|
32
|
+
const requestLog = `attempt=${attemptNo}; max=${MAX_RETRIES}; totalRetryDelay=${totalRetryDelay}`;
|
|
33
|
+
input.request.headers[constants_js_1.INGESTKOREA_REQUEST_LOG] = requestLog;
|
|
26
34
|
try {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
$metadata: {
|
|
32
|
-
attempts: attempts + 1,
|
|
33
|
-
totalRetryDelay: totalRetryDelay,
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
response,
|
|
37
|
-
};
|
|
35
|
+
const { response } = yield next(input, context);
|
|
36
|
+
response.headers[constants_js_1.INGESTKOREA_RETRY] = attemptNo.toString();
|
|
37
|
+
response.headers[constants_js_1.INGESTKOREA_RETRY_DELAY] = totalRetryDelay.toString();
|
|
38
|
+
return { response };
|
|
38
39
|
}
|
|
39
|
-
catch (
|
|
40
|
+
catch (error) {
|
|
40
41
|
attempts++;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
lastError.error.description = { attempts, maxRetries: MAX_RETRIES, totalRetryDelay };
|
|
43
|
+
if (error instanceof util_error_handler_1.IngestkoreaError) {
|
|
44
|
+
lastError.error.description = Object.assign(Object.assign({}, lastError.error.description), { detail: error.error.description });
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
lastError.error.description = { attempts, maxAttempts, totalRetryDelay };
|
|
48
|
-
if (err instanceof util_error_handler_1.IngestkoreaError) {
|
|
49
|
-
lastError.error.description = Object.assign(Object.assign({}, lastError.error.description), { detail: err.error.description });
|
|
46
|
+
else {
|
|
47
|
+
lastError.error.description = Object.assign(Object.assign({}, lastError.error.description), { detail: String((_b = error === null || error === void 0 ? void 0 : error.message) !== null && _b !== void 0 ? _b : error) });
|
|
50
48
|
}
|
|
51
|
-
if (
|
|
52
|
-
lastError.error.description =
|
|
49
|
+
if (attempts >= MAX_RETRIES) {
|
|
50
|
+
lastError.error.description = { attempts, maxRetries: MAX_RETRIES, totalRetryDelay };
|
|
51
|
+
throw lastError;
|
|
53
52
|
}
|
|
53
|
+
const exp = BASE_DELAY_MS * Math.pow(2, (attempts - 1));
|
|
54
|
+
const capped = Math.min(MAX_DELAY_MS, exp);
|
|
55
|
+
const delay = Math.floor(Math.random() * capped);
|
|
56
|
+
totalRetryDelay += delay;
|
|
57
|
+
lastError.error.description = { attempts, maxRetries: MAX_RETRIES, totalRetryDelay };
|
|
54
58
|
yield new Promise((resolve) => setTimeout(resolve, delay));
|
|
55
59
|
}
|
|
56
60
|
}
|
|
61
|
+
throw lastError;
|
|
57
62
|
});
|
|
58
63
|
exports.middlewareRetry = middlewareRetry;
|
|
@@ -9,20 +9,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.middlewareNcpSign = void 0;
|
|
13
13
|
const crypto_1 = require("crypto");
|
|
14
14
|
const util_http_handler_1 = require("@ingestkorea/util-http-handler");
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
15
|
+
const constants_js_1 = require("./constants.js");
|
|
16
|
+
const middlewareNcpSign = (next) => (input, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
const { accessKey, secretKey } = context.credentials;
|
|
18
|
+
const method = input.request.method;
|
|
19
|
+
const queryString = (0, util_http_handler_1.buildQueryString)(input.request.query);
|
|
20
|
+
const path = queryString ? `${input.request.path}?${queryString}` : input.request.path;
|
|
20
21
|
const space = " ";
|
|
21
22
|
const newLine = "\n";
|
|
22
23
|
const timestamp = new Date().getTime().toString();
|
|
23
24
|
const stringToSign = [method + space + path, timestamp, accessKey].join(newLine);
|
|
24
25
|
const signature = (0, crypto_1.createHmac)("sha256", secretKey).update(stringToSign).digest("base64");
|
|
25
|
-
request.headers = Object.assign(Object.assign({}, request.headers), { [
|
|
26
|
-
return
|
|
26
|
+
input.request.headers = Object.assign(Object.assign({}, input.request.headers), { [constants_js_1.NCP_ACCESS_KEY]: accessKey, [constants_js_1.NCP_TIMESTAMP]: timestamp, [constants_js_1.NCP_SIGNATURE]: signature });
|
|
27
|
+
return next(input, context);
|
|
27
28
|
});
|
|
28
|
-
exports.
|
|
29
|
+
exports.middlewareNcpSign = middlewareNcpSign;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ALIMTALK_MAX_CONTENT_LENGTH = exports.ALIMTALK_MAX_RECIPIENTS = void 0;
|
|
4
|
+
exports.ALIMTALK_MAX_RECIPIENTS = 100;
|
|
5
|
+
exports.ALIMTALK_MAX_CONTENT_LENGTH = 1000;
|
|
3
6
|
const ALIMTALK_BUTTON_TYPES = ["DS", "WL", "AL", "BK", "MD", "AC"];
|
|
4
7
|
const ALIMTALK_BUTTON_NAMES = ["배송 조회", "웹 링크", "앱 링크", "봇 키워드", "메시지 전달", "채널 추가"];
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MMS_SUPPORT_FILE_EXTENSION = exports.MMS_MAX_SUPPORT_FILE_SIZE = void 0;
|
|
4
|
+
exports.MMS_MAX_SUPPORT_FILE_SIZE = 300; // KiByte
|
|
5
|
+
exports.MMS_SUPPORT_FILE_EXTENSION = [".jpg", ".jpeg"];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SensError = void 0;
|
|
4
|
+
class SensError extends Error {
|
|
5
|
+
constructor(info) {
|
|
6
|
+
super(info.message);
|
|
7
|
+
this.name = "SensError";
|
|
8
|
+
this.code = info.code;
|
|
9
|
+
this.type = info.type;
|
|
10
|
+
this.invalidInputs = info.invalidInputs || [];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.SensError = SensError;
|
package/dist-cjs/models/index.js
CHANGED
|
@@ -14,17 +14,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./
|
|
21
|
-
__exportStar(require("./
|
|
22
|
-
__exportStar(require("./
|
|
23
|
-
__exportStar(require("./
|
|
24
|
-
__exportStar(require("./
|
|
25
|
-
__exportStar(require("./
|
|
26
|
-
__exportStar(require("./
|
|
27
|
-
__exportStar(require("./
|
|
28
|
-
__exportStar(require("./SendMMS"), exports);
|
|
29
|
-
__exportStar(require("./
|
|
30
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./GetAlimtalkResult.js"), exports);
|
|
18
|
+
__exportStar(require("./GetAlimtalkStatus.js"), exports);
|
|
19
|
+
__exportStar(require("./GetAlimtalkTemplate.js"), exports);
|
|
20
|
+
__exportStar(require("./GetSMSResult.js"), exports);
|
|
21
|
+
__exportStar(require("./GetSMSStatus.js"), exports);
|
|
22
|
+
__exportStar(require("./ListAlimtalkChannels.js"), exports);
|
|
23
|
+
__exportStar(require("./ListAlimtalkStatus.js"), exports);
|
|
24
|
+
__exportStar(require("./ListAlimtalkTemplates.js"), exports);
|
|
25
|
+
__exportStar(require("./ListSMSStatus.js"), exports);
|
|
26
|
+
__exportStar(require("./MetadataBearer.js"), exports);
|
|
27
|
+
__exportStar(require("./SendAlimtalk.js"), exports);
|
|
28
|
+
__exportStar(require("./SendMMS.js"), exports);
|
|
29
|
+
__exportStar(require("./SendSMS.js"), exports);
|
|
30
|
+
__exportStar(require("./SensClient.js"), exports);
|
|
31
|
+
__exportStar(require("./SensCommand.js"), exports);
|
|
32
|
+
__exportStar(require("./SensErrorInfo.js"), exports);
|
|
33
|
+
__exportStar(require("./SensMiddleware.js"), exports);
|
|
@@ -9,10 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.de_GetAlimtalkResultCommand = exports.se_GetAlimtalkResultCommand = void 0;
|
|
13
13
|
const util_http_handler_1 = require("@ingestkorea/util-http-handler");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const constants_js_1 = require("./constants.js");
|
|
15
|
+
const GetAlimtalkStatus_js_1 = require("./GetAlimtalkStatus.js");
|
|
16
|
+
const se_GetAlimtalkResultCommand = (input, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
17
|
const hostname = "sens.apigw.ntruss.com";
|
|
17
18
|
const path = "/alimtalk/v2/services/" + config.serviceId.kakao + "/messages/" + input.messageId;
|
|
18
19
|
const headers = {
|
|
@@ -21,27 +22,24 @@ const serializeIngestkorea_restJson_GetAlimtalkResultCommand = (input, config) =
|
|
|
21
22
|
return new util_http_handler_1.HttpRequest({
|
|
22
23
|
protocol: "https:",
|
|
23
24
|
method: "GET",
|
|
24
|
-
hostname
|
|
25
|
-
path
|
|
26
|
-
headers
|
|
25
|
+
hostname,
|
|
26
|
+
path,
|
|
27
|
+
headers,
|
|
27
28
|
});
|
|
28
29
|
});
|
|
29
|
-
exports.
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
contents = yield (0, exports.deserializeIngestkorea_restJson_GetAlimtalkResultOutput)(data);
|
|
37
|
-
return Object.assign({ $metadata: Object.assign(Object.assign({}, (0, _1.deserializeMetadata)(httpResponse)), output.$metadata) }, contents);
|
|
30
|
+
exports.se_GetAlimtalkResultCommand = se_GetAlimtalkResultCommand;
|
|
31
|
+
const de_GetAlimtalkResultCommand = (response, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
if (response.statusCode >= 300)
|
|
33
|
+
yield (0, constants_js_1.parseErrorBody)(response);
|
|
34
|
+
const data = yield (0, constants_js_1.parseBody)(response);
|
|
35
|
+
const contents = de_GetAlimtalkResultResult(data);
|
|
36
|
+
return Object.assign({ $metadata: (0, constants_js_1.deserializeMetadata)(response) }, (0, constants_js_1.compact)(contents));
|
|
38
37
|
});
|
|
39
|
-
exports.
|
|
40
|
-
const
|
|
41
|
-
return Object.assign(Object.assign({}, (0,
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const deserializeIngestkorea_restJson_AlimtalkFailover = (output) => {
|
|
38
|
+
exports.de_GetAlimtalkResultCommand = de_GetAlimtalkResultCommand;
|
|
39
|
+
const de_GetAlimtalkResultResult = (output) => {
|
|
40
|
+
return Object.assign(Object.assign({}, (0, GetAlimtalkStatus_js_1.de_AlimtalkMessageStatus)(output)), { failover: output.failover ? de_Failover(output.failover) : undefined });
|
|
41
|
+
};
|
|
42
|
+
const de_Failover = (output) => {
|
|
45
43
|
return {
|
|
46
44
|
smsServiceId: output.smsServiceId != undefined ? output.smsServiceId : undefined,
|
|
47
45
|
requestId: output.requestId != undefined ? output.requestId : undefined,
|
|
@@ -55,4 +53,3 @@ const deserializeIngestkorea_restJson_AlimtalkFailover = (output) => {
|
|
|
55
53
|
messageStatusDesc: output.messageStatusDesc != undefined ? output.messageStatusDesc : undefined,
|
|
56
54
|
};
|
|
57
55
|
};
|
|
58
|
-
exports.deserializeIngestkorea_restJson_AlimtalkFailover = deserializeIngestkorea_restJson_AlimtalkFailover;
|
|
@@ -9,59 +9,58 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.de_AlimtalkMessageStatus = exports.de_GetAlimtalkStatusResult = exports.de_GetAlimtalkStatusCommand = exports.se_GetAlimtalkStatusCommand = void 0;
|
|
13
13
|
const util_http_handler_1 = require("@ingestkorea/util-http-handler");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const constants_js_1 = require("./constants.js");
|
|
15
|
+
const SendAlimtalk_js_1 = require("./SendAlimtalk.js");
|
|
16
|
+
const se_GetAlimtalkStatusCommand = (input, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
17
|
const hostname = "sens.apigw.ntruss.com";
|
|
17
18
|
const path = "/alimtalk/v2/services/" + config.serviceId.kakao + "/messages";
|
|
18
19
|
const headers = {
|
|
19
20
|
host: hostname,
|
|
20
21
|
};
|
|
21
|
-
const query = {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const query = Object.entries(input).reduce((acc, [key, value]) => {
|
|
23
|
+
if (value !== undefined && value !== null) {
|
|
24
|
+
acc[key] = String(value);
|
|
25
|
+
}
|
|
26
|
+
return acc;
|
|
27
|
+
}, {});
|
|
24
28
|
return new util_http_handler_1.HttpRequest({
|
|
25
29
|
protocol: "https:",
|
|
26
30
|
method: "GET",
|
|
27
|
-
hostname
|
|
28
|
-
path
|
|
29
|
-
headers
|
|
30
|
-
query
|
|
31
|
+
hostname,
|
|
32
|
+
path,
|
|
33
|
+
headers,
|
|
34
|
+
query,
|
|
31
35
|
});
|
|
32
36
|
});
|
|
33
|
-
exports.
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
contents = yield (0, exports.deserializeIngestkorea_restJson_GetAlimtalkStatusOutput)(data);
|
|
41
|
-
return Object.assign({ $metadata: Object.assign(Object.assign({}, (0, _1.deserializeMetadata)(httpResponse)), output.$metadata) }, contents);
|
|
37
|
+
exports.se_GetAlimtalkStatusCommand = se_GetAlimtalkStatusCommand;
|
|
38
|
+
const de_GetAlimtalkStatusCommand = (response, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
if (response.statusCode >= 300)
|
|
40
|
+
yield (0, constants_js_1.parseErrorBody)(response);
|
|
41
|
+
const data = yield (0, constants_js_1.parseBody)(response);
|
|
42
|
+
const contents = (0, exports.de_GetAlimtalkStatusResult)(data);
|
|
43
|
+
return Object.assign({ $metadata: (0, constants_js_1.deserializeMetadata)(response) }, (0, constants_js_1.compact)(contents));
|
|
42
44
|
});
|
|
43
|
-
exports.
|
|
44
|
-
const
|
|
45
|
+
exports.de_GetAlimtalkStatusCommand = de_GetAlimtalkStatusCommand;
|
|
46
|
+
const de_GetAlimtalkStatusResult = (output) => {
|
|
45
47
|
return {
|
|
46
|
-
requestId: output.requestId
|
|
47
|
-
statusCode: output.statusCode
|
|
48
|
-
statusName: output.statusName
|
|
49
|
-
messages: output.messages
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
hasMore: output.hasMore != undefined ? output.hasMore : undefined,
|
|
48
|
+
requestId: output.requestId ? output.requestId : undefined,
|
|
49
|
+
statusCode: output.statusCode ? output.statusCode : undefined,
|
|
50
|
+
statusName: output.statusName ? output.statusName : undefined,
|
|
51
|
+
messages: output.messages ? de_AlimtalkMessageStatusList(output.messages) : [],
|
|
52
|
+
pageSize: output.pageSize !== undefined ? output.pageSize : undefined,
|
|
53
|
+
pageIndex: output.pageIndex !== undefined ? output.pageIndex : undefined,
|
|
54
|
+
itemCount: output.itemCount !== undefined ? output.itemCount : undefined,
|
|
55
|
+
hasMore: output.hasMore !== undefined ? output.hasMore : undefined,
|
|
56
|
+
nextToken: output.nextToken ? output.nextToken : undefined,
|
|
56
57
|
};
|
|
57
|
-
});
|
|
58
|
-
exports.deserializeIngestkorea_restJson_GetAlimtalkStatusOutput = deserializeIngestkorea_restJson_GetAlimtalkStatusOutput;
|
|
59
|
-
const deserializeIngestkorea_restJson_GetAlimtalkStatusMessages = (outputs) => {
|
|
60
|
-
const result = outputs.map(exports.parseStatusMessage);
|
|
61
|
-
return result;
|
|
62
58
|
};
|
|
63
|
-
exports.
|
|
64
|
-
const
|
|
65
|
-
return
|
|
59
|
+
exports.de_GetAlimtalkStatusResult = de_GetAlimtalkStatusResult;
|
|
60
|
+
const de_AlimtalkMessageStatusList = (output) => {
|
|
61
|
+
return (output || []).filter((e) => e != null).map((entry) => (0, exports.de_AlimtalkMessageStatus)(entry));
|
|
62
|
+
};
|
|
63
|
+
const de_AlimtalkMessageStatus = (output) => {
|
|
64
|
+
return Object.assign(Object.assign({}, (0, SendAlimtalk_js_1.de_AlimtalkMessageRequestStatus)(output)), { requestId: output.requestId ? output.requestId : undefined, requestTime: output.requestTime ? (0, constants_js_1.convertToUtc)(output.requestTime) : undefined, plusFriendId: output.plusFriendId ? output.plusFriendId : undefined, templateCode: output.templateCode ? output.templateCode : undefined, completeTime: output.completeTime ? (0, constants_js_1.convertToUtc)(output.completeTime) : undefined, messageStatusCode: output.messageStatusCode ? output.messageStatusCode : undefined, messageStatusName: output.messageStatusName ? output.messageStatusName : undefined, messageStatusDesc: output.messageStatusDesc ? output.messageStatusDesc : undefined });
|
|
66
65
|
};
|
|
67
|
-
exports.
|
|
66
|
+
exports.de_AlimtalkMessageStatus = de_AlimtalkMessageStatus;
|