@teamlearners/clawops 0.38.0 → 0.40.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/README.md +96 -0
- package/dist/agent/index.cjs +77 -77
- package/dist/agent/index.js +4 -4
- package/dist/agent/livekit/index.cjs +9 -9
- package/dist/agent/livekit/index.js +2 -2
- package/dist/{chunk-EO25KTL4.js → chunk-AYSW63CJ.js} +3 -3
- package/dist/{chunk-EO25KTL4.js.map → chunk-AYSW63CJ.js.map} +1 -1
- package/dist/chunk-IEFCBBKV.cjs +8 -0
- package/dist/{chunk-NXCYAYFT.cjs.map → chunk-IEFCBBKV.cjs.map} +1 -1
- package/dist/{chunk-IYSPOOKH.cjs → chunk-MXEZQRIL.cjs} +2 -2
- package/dist/chunk-MXEZQRIL.cjs.map +1 -0
- package/dist/{chunk-ASQU6NA2.cjs → chunk-PO5ACGWL.cjs} +4 -4
- package/dist/{chunk-ASQU6NA2.cjs.map → chunk-PO5ACGWL.cjs.map} +1 -1
- package/dist/chunk-R6UEIVYE.js +6 -0
- package/dist/{chunk-J7UIB4EA.js.map → chunk-R6UEIVYE.js.map} +1 -1
- package/dist/{chunk-VYGIWHRU.js → chunk-SXXOAPMG.js} +2 -2
- package/dist/chunk-SXXOAPMG.js.map +1 -0
- package/dist/{client-ZOgpzAPe.d.cts → client-DOMZ2phc.d.cts} +301 -13
- package/dist/{client-ZOgpzAPe.d.ts → client-DOMZ2phc.d.ts} +301 -13
- package/dist/index.cjs +184 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +155 -14
- package/dist/index.js.map +1 -1
- package/dist/solapi/index.cjs +7 -7
- package/dist/solapi/index.d.cts +2 -2
- package/dist/solapi/index.d.ts +2 -2
- package/dist/solapi/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-IYSPOOKH.cjs.map +0 -1
- package/dist/chunk-J7UIB4EA.js +0 -6
- package/dist/chunk-NXCYAYFT.cjs +0 -8
- package/dist/chunk-VYGIWHRU.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var chunkLLPMUDNE_cjs = require('./chunk-LLPMUDNE.cjs');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
6
|
+
var chunkMXEZQRIL_cjs = require('./chunk-MXEZQRIL.cjs');
|
|
7
|
+
var chunkIEFCBBKV_cjs = require('./chunk-IEFCBBKV.cjs');
|
|
8
8
|
var zod = require('zod');
|
|
9
9
|
var crypto = require('crypto');
|
|
10
10
|
|
|
@@ -15,14 +15,19 @@ function validateBaseUrl(url) {
|
|
|
15
15
|
try {
|
|
16
16
|
parsed = new URL(url);
|
|
17
17
|
} catch {
|
|
18
|
-
throw new
|
|
18
|
+
throw new chunkMXEZQRIL_cjs.ClawOpsError(`Invalid base_url: ${url}`);
|
|
19
19
|
}
|
|
20
20
|
if (parsed.protocol === "https:") return url;
|
|
21
21
|
if (parsed.protocol === "http:" && LOCALHOST_HOSTS.has(parsed.hostname)) return url;
|
|
22
|
-
throw new
|
|
22
|
+
throw new chunkMXEZQRIL_cjs.ClawOpsError(
|
|
23
23
|
`base_url\uC740 HTTPS\uB97C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4 (\uBC1B\uC740 \uAC12: '${url}'). \uB85C\uCEEC \uAC1C\uBC1C \uC2DC\uC5D0\uB294 http://localhost\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
|
+
function serializeBody(body) {
|
|
27
|
+
if (body instanceof FormData) return { payload: body, contentType: null };
|
|
28
|
+
if (!body) return { payload: void 0, contentType: "application/json" };
|
|
29
|
+
return { payload: JSON.stringify(body), contentType: "application/json" };
|
|
30
|
+
}
|
|
26
31
|
var APIClient = class {
|
|
27
32
|
_apiKey;
|
|
28
33
|
_baseURL;
|
|
@@ -43,7 +48,7 @@ var APIClient = class {
|
|
|
43
48
|
Authorization: `Bearer ${this._apiKey}`,
|
|
44
49
|
"Content-Type": "application/json",
|
|
45
50
|
Accept: "application/json",
|
|
46
|
-
"User-Agent": `claw-ops-node/${
|
|
51
|
+
"User-Agent": `claw-ops-node/${chunkIEFCBBKV_cjs.VERSION}`,
|
|
47
52
|
...this._defaultHeaders
|
|
48
53
|
};
|
|
49
54
|
if (extra) Object.assign(headers, extra);
|
|
@@ -51,6 +56,9 @@ var APIClient = class {
|
|
|
51
56
|
}
|
|
52
57
|
async _send(method2, path, options = {}) {
|
|
53
58
|
const headers = this._buildHeaders(options.extraHeaders);
|
|
59
|
+
const { payload, contentType } = serializeBody(options.body);
|
|
60
|
+
if (contentType === null) delete headers["Content-Type"];
|
|
61
|
+
else headers["Content-Type"] = contentType;
|
|
54
62
|
const params = new URLSearchParams();
|
|
55
63
|
const queryObj = { ...options.query, ...options.extraQuery };
|
|
56
64
|
for (const [k, v] of Object.entries(queryObj)) {
|
|
@@ -68,7 +76,7 @@ var APIClient = class {
|
|
|
68
76
|
response = await this._fetch(url, {
|
|
69
77
|
method: method2,
|
|
70
78
|
headers,
|
|
71
|
-
body:
|
|
79
|
+
body: payload,
|
|
72
80
|
signal: controller.signal
|
|
73
81
|
});
|
|
74
82
|
} catch (err) {
|
|
@@ -79,14 +87,14 @@ var APIClient = class {
|
|
|
79
87
|
await this._sleep(this._retryDelay(this._maxRetries - retriesLeft));
|
|
80
88
|
continue;
|
|
81
89
|
}
|
|
82
|
-
throw new
|
|
90
|
+
throw new chunkMXEZQRIL_cjs.APITimeoutError({ method: method2, url });
|
|
83
91
|
}
|
|
84
92
|
if (retriesLeft > 0) {
|
|
85
93
|
retriesLeft--;
|
|
86
94
|
await this._sleep(this._retryDelay(this._maxRetries - retriesLeft));
|
|
87
95
|
continue;
|
|
88
96
|
}
|
|
89
|
-
throw new
|
|
97
|
+
throw new chunkMXEZQRIL_cjs.APIConnectionError({ method: method2, url });
|
|
90
98
|
} finally {
|
|
91
99
|
clearTimeout(timeoutId);
|
|
92
100
|
}
|
|
@@ -102,7 +110,7 @@ var APIClient = class {
|
|
|
102
110
|
} catch {
|
|
103
111
|
body = null;
|
|
104
112
|
}
|
|
105
|
-
throw
|
|
113
|
+
throw chunkMXEZQRIL_cjs.makeStatusError(response.status, body, response.headers, { method: method2, url });
|
|
106
114
|
}
|
|
107
115
|
}
|
|
108
116
|
async _request(method2, path, options = {}) {
|
|
@@ -113,11 +121,11 @@ var APIClient = class {
|
|
|
113
121
|
try {
|
|
114
122
|
json = await response.json();
|
|
115
123
|
} catch {
|
|
116
|
-
throw new
|
|
124
|
+
throw new chunkMXEZQRIL_cjs.APIResponseValidationError({ status: response.status }, { method: method2, url });
|
|
117
125
|
}
|
|
118
126
|
const parsed = options.castTo.safeParse(json);
|
|
119
127
|
if (!parsed.success) {
|
|
120
|
-
throw new
|
|
128
|
+
throw new chunkMXEZQRIL_cjs.APIResponseValidationError({ status: response.status }, { method: method2, url });
|
|
121
129
|
}
|
|
122
130
|
return parsed.data;
|
|
123
131
|
}
|
|
@@ -691,6 +699,37 @@ var KakaoTemplateSchema = zod.z.object({
|
|
|
691
699
|
createdAt: zod.z.string(),
|
|
692
700
|
updatedAt: zod.z.string()
|
|
693
701
|
}).passthrough();
|
|
702
|
+
var KakaoBrandTemplateSchema = zod.z.object({
|
|
703
|
+
/** ClawOps 템플릿 리소스 ID. 발송의 `brand.templateId` 에 이 값을 쓴다. */
|
|
704
|
+
id: zod.z.string(),
|
|
705
|
+
/** ClawOps 채널 리소스 ID. 발송의 `brand.channelId` 와 같은 값이다. */
|
|
706
|
+
channelId: zod.z.string(),
|
|
707
|
+
name: zod.z.string(),
|
|
708
|
+
chatBubbleType: zod.z.string(),
|
|
709
|
+
/**
|
|
710
|
+
* 말풍선 본문.
|
|
711
|
+
*
|
|
712
|
+
* ⚠️ **유형에 따라 `null` 이다.** 본문이 담기는 자리가 유형마다 달라 `TEXT`·`IMAGE`·
|
|
713
|
+
* `WIDE` 에만 채워진다 — 나머지는 헤더·카드·상품명이 그 자리를 대신한다.
|
|
714
|
+
*/
|
|
715
|
+
content: zod.z.string().nullable(),
|
|
716
|
+
/** 와이드리스트형의 머리말. 다른 유형에서는 `null`. */
|
|
717
|
+
header: zod.z.string().nullable(),
|
|
718
|
+
/** 발송 시 `brand.variables` 에 모두 채워야 하는 변수 이름. */
|
|
719
|
+
variables: zod.z.array(zod.z.string()),
|
|
720
|
+
createdAt: zod.z.string(),
|
|
721
|
+
updatedAt: zod.z.string()
|
|
722
|
+
}).passthrough();
|
|
723
|
+
var KakaoBrandImageSchema = zod.z.object({
|
|
724
|
+
id: zod.z.string(),
|
|
725
|
+
/** 업로드할 때 지정한 말풍선 유형. 규격이 유형마다 달라 다른 유형엔 재사용할 수 없다. */
|
|
726
|
+
bubbleType: zod.z.string(),
|
|
727
|
+
/** `'main'` | `'sub'`. 서브는 와이드리스트형에만 있다(메인 2:1, 서브 1:1). */
|
|
728
|
+
slot: zod.z.string(),
|
|
729
|
+
/** 업로드한 원본 파일 이름. */
|
|
730
|
+
name: zod.z.string().nullable(),
|
|
731
|
+
createdAt: zod.z.string()
|
|
732
|
+
}).passthrough();
|
|
694
733
|
var KakaoChannelCategorySchema = zod.z.object({
|
|
695
734
|
/** 채널 연결의 `categoryCode` 에 그대로 보내는 값. */
|
|
696
735
|
code: zod.z.string(),
|
|
@@ -836,6 +875,89 @@ var KakaoTemplates = class extends APIResource {
|
|
|
836
875
|
return page;
|
|
837
876
|
}
|
|
838
877
|
};
|
|
878
|
+
var KakaoBrandTemplates = class extends APIResource {
|
|
879
|
+
/**
|
|
880
|
+
* 한 채널의 브랜드 메시지 템플릿 목록.
|
|
881
|
+
*
|
|
882
|
+
* 응답의 `data[].id` 를 발송의 `brand.templateId` 로, `data[].channelId` 를
|
|
883
|
+
* `brand.channelId` 로 쓴다. `variables` 의 모든 항목을 `brand.variables` 에 채워야 한다.
|
|
884
|
+
*
|
|
885
|
+
* ⭐ **알림톡과 달리 검수가 없어** `sendable` 같은 칸이 없다 — 목록에 있으면 곧 보낼 수 있다.
|
|
886
|
+
*/
|
|
887
|
+
async list(params, options = {}) {
|
|
888
|
+
const query = stripNotGiven({
|
|
889
|
+
channelId: params.channelId,
|
|
890
|
+
page: params.page,
|
|
891
|
+
pageSize: params.pageSize
|
|
892
|
+
});
|
|
893
|
+
const path = `${this._basePath}/kakao/brand-templates`;
|
|
894
|
+
const raw = await this._client._get(path, {
|
|
895
|
+
castTo: PageSchema(KakaoBrandTemplateSchema),
|
|
896
|
+
query: Object.keys(query).length ? query : void 0,
|
|
897
|
+
...options
|
|
898
|
+
});
|
|
899
|
+
const page = new Page(raw.data, raw.meta);
|
|
900
|
+
page._setClient(this._client, path, KakaoBrandTemplateSchema, query);
|
|
901
|
+
return page;
|
|
902
|
+
}
|
|
903
|
+
};
|
|
904
|
+
var KakaoBrandImages = class extends APIResource {
|
|
905
|
+
get _path() {
|
|
906
|
+
return `${this._basePath}/kakao/brand-images`;
|
|
907
|
+
}
|
|
908
|
+
/**
|
|
909
|
+
* 이미지를 올리고 발송에 쓸 `id` 를 받는다.
|
|
910
|
+
*
|
|
911
|
+
* ```ts
|
|
912
|
+
* const image = await client.kakao.brandImages.upload({
|
|
913
|
+
* file: readFileSync('banner.png'),
|
|
914
|
+
* filename: 'banner.png',
|
|
915
|
+
* bubbleType: 'WIDE',
|
|
916
|
+
* });
|
|
917
|
+
* await client.messages.create({
|
|
918
|
+
* to: '01012345678',
|
|
919
|
+
* from: '07012345678',
|
|
920
|
+
* brand: {
|
|
921
|
+
* channelId,
|
|
922
|
+
* free: { chatBubbleType: 'WIDE', content: '신메뉴가 나왔어요.', imageId: image.id },
|
|
923
|
+
* },
|
|
924
|
+
* });
|
|
925
|
+
* ```
|
|
926
|
+
*
|
|
927
|
+
* ⚠️ `TEXT` 는 이미지 자리가 없어 `400` 이다. 자동완성에 뜨지만 쓸 수 없다.
|
|
928
|
+
*
|
|
929
|
+
* ⚠️ **상한은 5MB 다.** 넘으면 `400`, 10MB 를 넘으면 업로드 검증기가 먼저 끊어 `413` 이고
|
|
930
|
+
* **`code` 가 없다** — 즉 "너무 크다" 가 두 모양으로 온다.
|
|
931
|
+
*
|
|
932
|
+
* @param params.filename 원본 파일 이름. 목록에서 사람이 알아볼 유일한 단서다.
|
|
933
|
+
* @param params.slot 와이드리스트형에서 작은 항목에 쓸 이미지면 `'sub'`. 기본은 `'main'`.
|
|
934
|
+
*/
|
|
935
|
+
async upload(params, options = {}) {
|
|
936
|
+
const form = new FormData();
|
|
937
|
+
const blob = params.file instanceof Blob ? params.file : new Blob([params.file]);
|
|
938
|
+
form.append("image", blob, params.filename);
|
|
939
|
+
form.append("bubbleType", params.bubbleType);
|
|
940
|
+
if (params.slot) form.append("slot", params.slot);
|
|
941
|
+
return this._client._post(this._path, {
|
|
942
|
+
body: form,
|
|
943
|
+
castTo: zod.z.object({ id: zod.z.string() }).passthrough(),
|
|
944
|
+
...options
|
|
945
|
+
});
|
|
946
|
+
}
|
|
947
|
+
/** 올려 둔 이미지 목록. **`id` 를 잃었을 때 되찾는 경로다.** */
|
|
948
|
+
async list(params = {}, options = {}) {
|
|
949
|
+
const query = stripNotGiven({ page: params.page, pageSize: params.pageSize });
|
|
950
|
+
const path = this._path;
|
|
951
|
+
const raw = await this._client._get(path, {
|
|
952
|
+
castTo: PageSchema(KakaoBrandImageSchema),
|
|
953
|
+
query: Object.keys(query).length ? query : void 0,
|
|
954
|
+
...options
|
|
955
|
+
});
|
|
956
|
+
const page = new Page(raw.data, raw.meta);
|
|
957
|
+
page._setClient(this._client, path, KakaoBrandImageSchema, query);
|
|
958
|
+
return page;
|
|
959
|
+
}
|
|
960
|
+
};
|
|
839
961
|
var Kakao = class extends APIResource {
|
|
840
962
|
get channels() {
|
|
841
963
|
return new KakaoChannels(this._client, this._accountId);
|
|
@@ -843,6 +965,14 @@ var Kakao = class extends APIResource {
|
|
|
843
965
|
get templates() {
|
|
844
966
|
return new KakaoTemplates(this._client, this._accountId);
|
|
845
967
|
}
|
|
968
|
+
/** 브랜드 메시지 템플릿. 알림톡 템플릿(`templates`)과 **다른 표**다. */
|
|
969
|
+
get brandTemplates() {
|
|
970
|
+
return new KakaoBrandTemplates(this._client, this._accountId);
|
|
971
|
+
}
|
|
972
|
+
/** 자유형 말풍선에 실을 이미지. 템플릿형은 이미지가 템플릿에 들어 있어 필요 없다. */
|
|
973
|
+
get brandImages() {
|
|
974
|
+
return new KakaoBrandImages(this._client, this._accountId);
|
|
975
|
+
}
|
|
846
976
|
/**
|
|
847
977
|
* 채널 연결 시 지정할 업종 카테고리 목록.
|
|
848
978
|
*
|
|
@@ -885,12 +1015,18 @@ var MessageSchema = zod.z.object({
|
|
|
885
1015
|
}).passthrough();
|
|
886
1016
|
|
|
887
1017
|
// src/resources/messages.ts
|
|
1018
|
+
var sendBlock = (p) => p && stripNotGiven({
|
|
1019
|
+
ChannelId: p.channelId,
|
|
1020
|
+
TemplateId: p.templateId,
|
|
1021
|
+
Variables: p.variables,
|
|
1022
|
+
Free: p.free
|
|
1023
|
+
});
|
|
888
1024
|
var Messages = class extends APIResource {
|
|
889
1025
|
/**
|
|
890
|
-
* 문자(SMS/LMS/MMS) 또는 카카오
|
|
1026
|
+
* 문자(SMS/LMS/MMS) 또는 카카오 알림톡·브랜드 메시지를 발송합니다.
|
|
891
1027
|
*
|
|
892
|
-
*
|
|
893
|
-
* 실을 수 없습니다(본문은
|
|
1028
|
+
* 셋은 배타적입니다 — `kakao` 를 실으면 알림톡, `brand` 를 실으면 브랜드 메시지이고,
|
|
1029
|
+
* 이때 `body`·`subject`·`mediaUrl` 은 실을 수 없습니다(본문은 템플릿이 정합니다).
|
|
894
1030
|
*
|
|
895
1031
|
* ```ts
|
|
896
1032
|
* // 문자
|
|
@@ -903,6 +1039,14 @@ var Messages = class extends APIResource {
|
|
|
903
1039
|
* kakao: { channelId, templateId, variables: { 고객명: '홍길동' } },
|
|
904
1040
|
* fallback: { body: '주문이 접수되었습니다.' },
|
|
905
1041
|
* });
|
|
1042
|
+
*
|
|
1043
|
+
* // 브랜드 메시지 — 채널을 추가한 친구에게 나가는 광고성 메시지
|
|
1044
|
+
* // ⚠️ 야간 제한과 대체발송 없음 — 제약은 `BrandMessageCreateParams` 참고.
|
|
1045
|
+
* await client.messages.create({
|
|
1046
|
+
* to: '010…',
|
|
1047
|
+
* from: '070…',
|
|
1048
|
+
* brand: { channelId, templateId, variables: { 고객명: '홍길동' } },
|
|
1049
|
+
* });
|
|
906
1050
|
* ```
|
|
907
1051
|
*/
|
|
908
1052
|
async create(params, options = {}) {
|
|
@@ -915,11 +1059,8 @@ var Messages = class extends APIResource {
|
|
|
915
1059
|
MediaUrl: params.mediaUrl,
|
|
916
1060
|
IdempotencyKey: params.idempotencyKey,
|
|
917
1061
|
// 중첩 객체는 손으로 조립한다 — stripNotGiven 은 한 겹만 훑는다.
|
|
918
|
-
Kakao: params.kakao
|
|
919
|
-
|
|
920
|
-
TemplateId: params.kakao.templateId,
|
|
921
|
-
Variables: params.kakao.variables
|
|
922
|
-
}),
|
|
1062
|
+
Kakao: sendBlock(params.kakao),
|
|
1063
|
+
Brand: sendBlock(params.brand),
|
|
923
1064
|
Fallback: params.fallback && stripNotGiven({
|
|
924
1065
|
Type: params.fallback.type,
|
|
925
1066
|
Subject: params.fallback.subject,
|
|
@@ -1238,7 +1379,7 @@ var AccountContext = class {
|
|
|
1238
1379
|
return new Kakao(this._client, this._accountId);
|
|
1239
1380
|
}
|
|
1240
1381
|
};
|
|
1241
|
-
var WebhookVerificationError = class extends
|
|
1382
|
+
var WebhookVerificationError = class extends chunkMXEZQRIL_cjs.ClawOpsError {
|
|
1242
1383
|
constructor(message = "Webhook \uC11C\uBA85\uC774 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.") {
|
|
1243
1384
|
super(message);
|
|
1244
1385
|
this.name = "WebhookVerificationError";
|
|
@@ -1268,11 +1409,11 @@ var ClawOps = class extends APIClient {
|
|
|
1268
1409
|
constructor(options = {}) {
|
|
1269
1410
|
let apiKey = options.apiKey ?? process.env.CLAWOPS_API_KEY;
|
|
1270
1411
|
if (!apiKey) {
|
|
1271
|
-
throw new
|
|
1412
|
+
throw new chunkMXEZQRIL_cjs.ClawOpsError("apiKey\uB97C \uC9C0\uC815\uD558\uAC70\uB098 CLAWOPS_API_KEY \uD658\uACBD\uBCC0\uC218\uB97C \uC124\uC815\uD558\uC138\uC694.");
|
|
1272
1413
|
}
|
|
1273
1414
|
let accountId = options.accountId ?? process.env.CLAWOPS_ACCOUNT_ID;
|
|
1274
1415
|
if (!accountId) {
|
|
1275
|
-
throw new
|
|
1416
|
+
throw new chunkMXEZQRIL_cjs.ClawOpsError("accountId\uB97C \uC9C0\uC815\uD558\uAC70\uB098 CLAWOPS_ACCOUNT_ID \uD658\uACBD\uBCC0\uC218\uB97C \uC124\uC815\uD558\uC138\uC694.");
|
|
1276
1417
|
}
|
|
1277
1418
|
const baseURL = options.baseURL ?? process.env.CLAWOPS_BASE_URL ?? chunkLLPMUDNE_cjs.DEFAULT_BASE_URL;
|
|
1278
1419
|
super({
|
|
@@ -1329,79 +1470,79 @@ var client_default_default = ClawOps;
|
|
|
1329
1470
|
|
|
1330
1471
|
Object.defineProperty(exports, "APIConnectionError", {
|
|
1331
1472
|
enumerable: true,
|
|
1332
|
-
get: function () { return
|
|
1473
|
+
get: function () { return chunkMXEZQRIL_cjs.APIConnectionError; }
|
|
1333
1474
|
});
|
|
1334
1475
|
Object.defineProperty(exports, "APIError", {
|
|
1335
1476
|
enumerable: true,
|
|
1336
|
-
get: function () { return
|
|
1477
|
+
get: function () { return chunkMXEZQRIL_cjs.APIError; }
|
|
1337
1478
|
});
|
|
1338
1479
|
Object.defineProperty(exports, "APIResponseValidationError", {
|
|
1339
1480
|
enumerable: true,
|
|
1340
|
-
get: function () { return
|
|
1481
|
+
get: function () { return chunkMXEZQRIL_cjs.APIResponseValidationError; }
|
|
1341
1482
|
});
|
|
1342
1483
|
Object.defineProperty(exports, "APIStatusError", {
|
|
1343
1484
|
enumerable: true,
|
|
1344
|
-
get: function () { return
|
|
1485
|
+
get: function () { return chunkMXEZQRIL_cjs.APIStatusError; }
|
|
1345
1486
|
});
|
|
1346
1487
|
Object.defineProperty(exports, "APITimeoutError", {
|
|
1347
1488
|
enumerable: true,
|
|
1348
|
-
get: function () { return
|
|
1489
|
+
get: function () { return chunkMXEZQRIL_cjs.APITimeoutError; }
|
|
1349
1490
|
});
|
|
1350
1491
|
Object.defineProperty(exports, "AgentConnectionError", {
|
|
1351
1492
|
enumerable: true,
|
|
1352
|
-
get: function () { return
|
|
1493
|
+
get: function () { return chunkMXEZQRIL_cjs.AgentConnectionError; }
|
|
1353
1494
|
});
|
|
1354
1495
|
Object.defineProperty(exports, "AgentError", {
|
|
1355
1496
|
enumerable: true,
|
|
1356
|
-
get: function () { return
|
|
1497
|
+
get: function () { return chunkMXEZQRIL_cjs.AgentError; }
|
|
1357
1498
|
});
|
|
1358
1499
|
Object.defineProperty(exports, "AuthenticationError", {
|
|
1359
1500
|
enumerable: true,
|
|
1360
|
-
get: function () { return
|
|
1501
|
+
get: function () { return chunkMXEZQRIL_cjs.AuthenticationError; }
|
|
1361
1502
|
});
|
|
1362
1503
|
Object.defineProperty(exports, "BadRequestError", {
|
|
1363
1504
|
enumerable: true,
|
|
1364
|
-
get: function () { return
|
|
1505
|
+
get: function () { return chunkMXEZQRIL_cjs.BadRequestError; }
|
|
1365
1506
|
});
|
|
1366
1507
|
Object.defineProperty(exports, "ClawOpsError", {
|
|
1367
1508
|
enumerable: true,
|
|
1368
|
-
get: function () { return
|
|
1509
|
+
get: function () { return chunkMXEZQRIL_cjs.ClawOpsError; }
|
|
1369
1510
|
});
|
|
1370
1511
|
Object.defineProperty(exports, "ConflictError", {
|
|
1371
1512
|
enumerable: true,
|
|
1372
|
-
get: function () { return
|
|
1513
|
+
get: function () { return chunkMXEZQRIL_cjs.ConflictError; }
|
|
1373
1514
|
});
|
|
1374
1515
|
Object.defineProperty(exports, "InternalServerError", {
|
|
1375
1516
|
enumerable: true,
|
|
1376
|
-
get: function () { return
|
|
1517
|
+
get: function () { return chunkMXEZQRIL_cjs.InternalServerError; }
|
|
1377
1518
|
});
|
|
1378
1519
|
Object.defineProperty(exports, "NotFoundError", {
|
|
1379
1520
|
enumerable: true,
|
|
1380
|
-
get: function () { return
|
|
1521
|
+
get: function () { return chunkMXEZQRIL_cjs.NotFoundError; }
|
|
1381
1522
|
});
|
|
1382
1523
|
Object.defineProperty(exports, "PermissionDeniedError", {
|
|
1383
1524
|
enumerable: true,
|
|
1384
|
-
get: function () { return
|
|
1525
|
+
get: function () { return chunkMXEZQRIL_cjs.PermissionDeniedError; }
|
|
1385
1526
|
});
|
|
1386
1527
|
Object.defineProperty(exports, "RateLimitError", {
|
|
1387
1528
|
enumerable: true,
|
|
1388
|
-
get: function () { return
|
|
1529
|
+
get: function () { return chunkMXEZQRIL_cjs.RateLimitError; }
|
|
1389
1530
|
});
|
|
1390
1531
|
Object.defineProperty(exports, "ServiceUnavailableError", {
|
|
1391
1532
|
enumerable: true,
|
|
1392
|
-
get: function () { return
|
|
1533
|
+
get: function () { return chunkMXEZQRIL_cjs.ServiceUnavailableError; }
|
|
1393
1534
|
});
|
|
1394
1535
|
Object.defineProperty(exports, "SolapiBridgeError", {
|
|
1395
1536
|
enumerable: true,
|
|
1396
|
-
get: function () { return
|
|
1537
|
+
get: function () { return chunkMXEZQRIL_cjs.SolapiBridgeError; }
|
|
1397
1538
|
});
|
|
1398
1539
|
Object.defineProperty(exports, "UnprocessableEntityError", {
|
|
1399
1540
|
enumerable: true,
|
|
1400
|
-
get: function () { return
|
|
1541
|
+
get: function () { return chunkMXEZQRIL_cjs.UnprocessableEntityError; }
|
|
1401
1542
|
});
|
|
1402
1543
|
Object.defineProperty(exports, "VERSION", {
|
|
1403
1544
|
enumerable: true,
|
|
1404
|
-
get: function () { return
|
|
1545
|
+
get: function () { return chunkIEFCBBKV_cjs.VERSION; }
|
|
1405
1546
|
});
|
|
1406
1547
|
exports.APIClient = APIClient;
|
|
1407
1548
|
exports.AccountContext = AccountContext;
|
|
@@ -1410,6 +1551,8 @@ exports.BlockedRecipients = BlockedRecipients;
|
|
|
1410
1551
|
exports.Calls = Calls;
|
|
1411
1552
|
exports.ClawOps = ClawOps;
|
|
1412
1553
|
exports.Kakao = Kakao;
|
|
1554
|
+
exports.KakaoBrandImages = KakaoBrandImages;
|
|
1555
|
+
exports.KakaoBrandTemplates = KakaoBrandTemplates;
|
|
1413
1556
|
exports.KakaoChannels = KakaoChannels;
|
|
1414
1557
|
exports.KakaoTemplates = KakaoTemplates;
|
|
1415
1558
|
exports.Messages = Messages;
|