@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.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, C as Call,
|
|
1
|
+
export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, u as BrandBubbleType, v as BrandFreeSendParams, w as BrandMessageCreateParams, x as BrandSendParams, y as BrandTemplateSendParams, C as Call, z as CallContextParam, D as CallControlResponse, E as CallCreateParams, F as CallListParams, G as CallUpdateParams, H as Calls, I as ClawOps, J as ClawOpsError, K as ClawOpsErrorCode, L as ClawOpsOptions, M as ConflictError, N as InternalServerError, O as Kakao, P as KakaoBrandImage, Q as KakaoBrandImages, R as KakaoBrandTemplate, S as KakaoBrandTemplateListParams, T as KakaoBrandTemplates, U as KakaoChannel, V as KakaoChannelCategory, W as KakaoChannelCategoryList, X as KakaoChannelConnectParams, Y as KakaoChannelListParams, Z as KakaoChannelStatus, _ as KakaoChannels, $ as KakaoFallbackParams, a0 as KakaoMessageCreateParams, a1 as KakaoSendParams, a2 as KakaoTemplate, a3 as KakaoTemplateListParams, a4 as KakaoTemplates, a5 as KakaoTokenRequest, a6 as KakaoTokenRequestParams, a7 as Message, a8 as MessageCreateParams, a9 as MessageListParams, aa as Messages, ab as NotFoundError, ac as NumberCreateParams, ad as NumberListItem, ae as NumberUpdateParams, af as NumberUpdateResponse, ag as Numbers, ah as Page, ai as PermissionDeniedError, aj as PhoneNumber, ak as RateLimitError, al as RecordingDownload, am as Recordings, an as RoutingType, ao as ServiceUnavailableError, ap as SipCredential, aq as SipCredentials, ar as SipEndpoint, as as SipEndpoints, at as SolapiBridgeError, au as TextMessageCreateParams, av as UnprocessableEntityError, aw as WebhookLog, ax as WebhookLogs, ay as WebhookVerificationError, az as Webhooks, I as default } from './client-DOMZ2phc.cjs';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
declare const VERSION: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, C as Call,
|
|
1
|
+
export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, u as BrandBubbleType, v as BrandFreeSendParams, w as BrandMessageCreateParams, x as BrandSendParams, y as BrandTemplateSendParams, C as Call, z as CallContextParam, D as CallControlResponse, E as CallCreateParams, F as CallListParams, G as CallUpdateParams, H as Calls, I as ClawOps, J as ClawOpsError, K as ClawOpsErrorCode, L as ClawOpsOptions, M as ConflictError, N as InternalServerError, O as Kakao, P as KakaoBrandImage, Q as KakaoBrandImages, R as KakaoBrandTemplate, S as KakaoBrandTemplateListParams, T as KakaoBrandTemplates, U as KakaoChannel, V as KakaoChannelCategory, W as KakaoChannelCategoryList, X as KakaoChannelConnectParams, Y as KakaoChannelListParams, Z as KakaoChannelStatus, _ as KakaoChannels, $ as KakaoFallbackParams, a0 as KakaoMessageCreateParams, a1 as KakaoSendParams, a2 as KakaoTemplate, a3 as KakaoTemplateListParams, a4 as KakaoTemplates, a5 as KakaoTokenRequest, a6 as KakaoTokenRequestParams, a7 as Message, a8 as MessageCreateParams, a9 as MessageListParams, aa as Messages, ab as NotFoundError, ac as NumberCreateParams, ad as NumberListItem, ae as NumberUpdateParams, af as NumberUpdateResponse, ag as Numbers, ah as Page, ai as PermissionDeniedError, aj as PhoneNumber, ak as RateLimitError, al as RecordingDownload, am as Recordings, an as RoutingType, ao as ServiceUnavailableError, ap as SipCredential, aq as SipCredentials, ar as SipEndpoint, as as SipEndpoints, at as SolapiBridgeError, au as TextMessageCreateParams, av as UnprocessableEntityError, aw as WebhookLog, ax as WebhookLogs, ay as WebhookVerificationError, az as Webhooks, I as default } from './client-DOMZ2phc.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
declare const VERSION: string;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DEFAULT_BASE_URL, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, INITIAL_RETRY_DELAY, MAX_RETRY_DELAY } from './chunk-35XJNMFU.js';
|
|
2
|
-
import { APITimeoutError, APIConnectionError, makeStatusError, APIResponseValidationError, ClawOpsError } from './chunk-
|
|
3
|
-
export { APIConnectionError, APIError, APIResponseValidationError, APIStatusError, APITimeoutError, AgentConnectionError, AgentError, AuthenticationError, BadRequestError, ClawOpsError, ConflictError, InternalServerError, NotFoundError, PermissionDeniedError, RateLimitError, ServiceUnavailableError, SolapiBridgeError, UnprocessableEntityError } from './chunk-
|
|
4
|
-
import { VERSION } from './chunk-
|
|
5
|
-
export { VERSION } from './chunk-
|
|
2
|
+
import { APITimeoutError, APIConnectionError, makeStatusError, APIResponseValidationError, ClawOpsError } from './chunk-SXXOAPMG.js';
|
|
3
|
+
export { APIConnectionError, APIError, APIResponseValidationError, APIStatusError, APITimeoutError, AgentConnectionError, AgentError, AuthenticationError, BadRequestError, ClawOpsError, ConflictError, InternalServerError, NotFoundError, PermissionDeniedError, RateLimitError, ServiceUnavailableError, SolapiBridgeError, UnprocessableEntityError } from './chunk-SXXOAPMG.js';
|
|
4
|
+
import { VERSION } from './chunk-R6UEIVYE.js';
|
|
5
|
+
export { VERSION } from './chunk-R6UEIVYE.js';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { timingSafeEqual, createHmac } from 'crypto';
|
|
8
8
|
|
|
@@ -21,6 +21,11 @@ function validateBaseUrl(url) {
|
|
|
21
21
|
`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.`
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
|
+
function serializeBody(body) {
|
|
25
|
+
if (body instanceof FormData) return { payload: body, contentType: null };
|
|
26
|
+
if (!body) return { payload: void 0, contentType: "application/json" };
|
|
27
|
+
return { payload: JSON.stringify(body), contentType: "application/json" };
|
|
28
|
+
}
|
|
24
29
|
var APIClient = class {
|
|
25
30
|
_apiKey;
|
|
26
31
|
_baseURL;
|
|
@@ -49,6 +54,9 @@ var APIClient = class {
|
|
|
49
54
|
}
|
|
50
55
|
async _send(method2, path, options = {}) {
|
|
51
56
|
const headers = this._buildHeaders(options.extraHeaders);
|
|
57
|
+
const { payload, contentType } = serializeBody(options.body);
|
|
58
|
+
if (contentType === null) delete headers["Content-Type"];
|
|
59
|
+
else headers["Content-Type"] = contentType;
|
|
52
60
|
const params = new URLSearchParams();
|
|
53
61
|
const queryObj = { ...options.query, ...options.extraQuery };
|
|
54
62
|
for (const [k, v] of Object.entries(queryObj)) {
|
|
@@ -66,7 +74,7 @@ var APIClient = class {
|
|
|
66
74
|
response = await this._fetch(url, {
|
|
67
75
|
method: method2,
|
|
68
76
|
headers,
|
|
69
|
-
body:
|
|
77
|
+
body: payload,
|
|
70
78
|
signal: controller.signal
|
|
71
79
|
});
|
|
72
80
|
} catch (err) {
|
|
@@ -689,6 +697,37 @@ var KakaoTemplateSchema = z.object({
|
|
|
689
697
|
createdAt: z.string(),
|
|
690
698
|
updatedAt: z.string()
|
|
691
699
|
}).passthrough();
|
|
700
|
+
var KakaoBrandTemplateSchema = z.object({
|
|
701
|
+
/** ClawOps 템플릿 리소스 ID. 발송의 `brand.templateId` 에 이 값을 쓴다. */
|
|
702
|
+
id: z.string(),
|
|
703
|
+
/** ClawOps 채널 리소스 ID. 발송의 `brand.channelId` 와 같은 값이다. */
|
|
704
|
+
channelId: z.string(),
|
|
705
|
+
name: z.string(),
|
|
706
|
+
chatBubbleType: z.string(),
|
|
707
|
+
/**
|
|
708
|
+
* 말풍선 본문.
|
|
709
|
+
*
|
|
710
|
+
* ⚠️ **유형에 따라 `null` 이다.** 본문이 담기는 자리가 유형마다 달라 `TEXT`·`IMAGE`·
|
|
711
|
+
* `WIDE` 에만 채워진다 — 나머지는 헤더·카드·상품명이 그 자리를 대신한다.
|
|
712
|
+
*/
|
|
713
|
+
content: z.string().nullable(),
|
|
714
|
+
/** 와이드리스트형의 머리말. 다른 유형에서는 `null`. */
|
|
715
|
+
header: z.string().nullable(),
|
|
716
|
+
/** 발송 시 `brand.variables` 에 모두 채워야 하는 변수 이름. */
|
|
717
|
+
variables: z.array(z.string()),
|
|
718
|
+
createdAt: z.string(),
|
|
719
|
+
updatedAt: z.string()
|
|
720
|
+
}).passthrough();
|
|
721
|
+
var KakaoBrandImageSchema = z.object({
|
|
722
|
+
id: z.string(),
|
|
723
|
+
/** 업로드할 때 지정한 말풍선 유형. 규격이 유형마다 달라 다른 유형엔 재사용할 수 없다. */
|
|
724
|
+
bubbleType: z.string(),
|
|
725
|
+
/** `'main'` | `'sub'`. 서브는 와이드리스트형에만 있다(메인 2:1, 서브 1:1). */
|
|
726
|
+
slot: z.string(),
|
|
727
|
+
/** 업로드한 원본 파일 이름. */
|
|
728
|
+
name: z.string().nullable(),
|
|
729
|
+
createdAt: z.string()
|
|
730
|
+
}).passthrough();
|
|
692
731
|
var KakaoChannelCategorySchema = z.object({
|
|
693
732
|
/** 채널 연결의 `categoryCode` 에 그대로 보내는 값. */
|
|
694
733
|
code: z.string(),
|
|
@@ -834,6 +873,89 @@ var KakaoTemplates = class extends APIResource {
|
|
|
834
873
|
return page;
|
|
835
874
|
}
|
|
836
875
|
};
|
|
876
|
+
var KakaoBrandTemplates = class extends APIResource {
|
|
877
|
+
/**
|
|
878
|
+
* 한 채널의 브랜드 메시지 템플릿 목록.
|
|
879
|
+
*
|
|
880
|
+
* 응답의 `data[].id` 를 발송의 `brand.templateId` 로, `data[].channelId` 를
|
|
881
|
+
* `brand.channelId` 로 쓴다. `variables` 의 모든 항목을 `brand.variables` 에 채워야 한다.
|
|
882
|
+
*
|
|
883
|
+
* ⭐ **알림톡과 달리 검수가 없어** `sendable` 같은 칸이 없다 — 목록에 있으면 곧 보낼 수 있다.
|
|
884
|
+
*/
|
|
885
|
+
async list(params, options = {}) {
|
|
886
|
+
const query = stripNotGiven({
|
|
887
|
+
channelId: params.channelId,
|
|
888
|
+
page: params.page,
|
|
889
|
+
pageSize: params.pageSize
|
|
890
|
+
});
|
|
891
|
+
const path = `${this._basePath}/kakao/brand-templates`;
|
|
892
|
+
const raw = await this._client._get(path, {
|
|
893
|
+
castTo: PageSchema(KakaoBrandTemplateSchema),
|
|
894
|
+
query: Object.keys(query).length ? query : void 0,
|
|
895
|
+
...options
|
|
896
|
+
});
|
|
897
|
+
const page = new Page(raw.data, raw.meta);
|
|
898
|
+
page._setClient(this._client, path, KakaoBrandTemplateSchema, query);
|
|
899
|
+
return page;
|
|
900
|
+
}
|
|
901
|
+
};
|
|
902
|
+
var KakaoBrandImages = class extends APIResource {
|
|
903
|
+
get _path() {
|
|
904
|
+
return `${this._basePath}/kakao/brand-images`;
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* 이미지를 올리고 발송에 쓸 `id` 를 받는다.
|
|
908
|
+
*
|
|
909
|
+
* ```ts
|
|
910
|
+
* const image = await client.kakao.brandImages.upload({
|
|
911
|
+
* file: readFileSync('banner.png'),
|
|
912
|
+
* filename: 'banner.png',
|
|
913
|
+
* bubbleType: 'WIDE',
|
|
914
|
+
* });
|
|
915
|
+
* await client.messages.create({
|
|
916
|
+
* to: '01012345678',
|
|
917
|
+
* from: '07012345678',
|
|
918
|
+
* brand: {
|
|
919
|
+
* channelId,
|
|
920
|
+
* free: { chatBubbleType: 'WIDE', content: '신메뉴가 나왔어요.', imageId: image.id },
|
|
921
|
+
* },
|
|
922
|
+
* });
|
|
923
|
+
* ```
|
|
924
|
+
*
|
|
925
|
+
* ⚠️ `TEXT` 는 이미지 자리가 없어 `400` 이다. 자동완성에 뜨지만 쓸 수 없다.
|
|
926
|
+
*
|
|
927
|
+
* ⚠️ **상한은 5MB 다.** 넘으면 `400`, 10MB 를 넘으면 업로드 검증기가 먼저 끊어 `413` 이고
|
|
928
|
+
* **`code` 가 없다** — 즉 "너무 크다" 가 두 모양으로 온다.
|
|
929
|
+
*
|
|
930
|
+
* @param params.filename 원본 파일 이름. 목록에서 사람이 알아볼 유일한 단서다.
|
|
931
|
+
* @param params.slot 와이드리스트형에서 작은 항목에 쓸 이미지면 `'sub'`. 기본은 `'main'`.
|
|
932
|
+
*/
|
|
933
|
+
async upload(params, options = {}) {
|
|
934
|
+
const form = new FormData();
|
|
935
|
+
const blob = params.file instanceof Blob ? params.file : new Blob([params.file]);
|
|
936
|
+
form.append("image", blob, params.filename);
|
|
937
|
+
form.append("bubbleType", params.bubbleType);
|
|
938
|
+
if (params.slot) form.append("slot", params.slot);
|
|
939
|
+
return this._client._post(this._path, {
|
|
940
|
+
body: form,
|
|
941
|
+
castTo: z.object({ id: z.string() }).passthrough(),
|
|
942
|
+
...options
|
|
943
|
+
});
|
|
944
|
+
}
|
|
945
|
+
/** 올려 둔 이미지 목록. **`id` 를 잃었을 때 되찾는 경로다.** */
|
|
946
|
+
async list(params = {}, options = {}) {
|
|
947
|
+
const query = stripNotGiven({ page: params.page, pageSize: params.pageSize });
|
|
948
|
+
const path = this._path;
|
|
949
|
+
const raw = await this._client._get(path, {
|
|
950
|
+
castTo: PageSchema(KakaoBrandImageSchema),
|
|
951
|
+
query: Object.keys(query).length ? query : void 0,
|
|
952
|
+
...options
|
|
953
|
+
});
|
|
954
|
+
const page = new Page(raw.data, raw.meta);
|
|
955
|
+
page._setClient(this._client, path, KakaoBrandImageSchema, query);
|
|
956
|
+
return page;
|
|
957
|
+
}
|
|
958
|
+
};
|
|
837
959
|
var Kakao = class extends APIResource {
|
|
838
960
|
get channels() {
|
|
839
961
|
return new KakaoChannels(this._client, this._accountId);
|
|
@@ -841,6 +963,14 @@ var Kakao = class extends APIResource {
|
|
|
841
963
|
get templates() {
|
|
842
964
|
return new KakaoTemplates(this._client, this._accountId);
|
|
843
965
|
}
|
|
966
|
+
/** 브랜드 메시지 템플릿. 알림톡 템플릿(`templates`)과 **다른 표**다. */
|
|
967
|
+
get brandTemplates() {
|
|
968
|
+
return new KakaoBrandTemplates(this._client, this._accountId);
|
|
969
|
+
}
|
|
970
|
+
/** 자유형 말풍선에 실을 이미지. 템플릿형은 이미지가 템플릿에 들어 있어 필요 없다. */
|
|
971
|
+
get brandImages() {
|
|
972
|
+
return new KakaoBrandImages(this._client, this._accountId);
|
|
973
|
+
}
|
|
844
974
|
/**
|
|
845
975
|
* 채널 연결 시 지정할 업종 카테고리 목록.
|
|
846
976
|
*
|
|
@@ -883,12 +1013,18 @@ var MessageSchema = z.object({
|
|
|
883
1013
|
}).passthrough();
|
|
884
1014
|
|
|
885
1015
|
// src/resources/messages.ts
|
|
1016
|
+
var sendBlock = (p) => p && stripNotGiven({
|
|
1017
|
+
ChannelId: p.channelId,
|
|
1018
|
+
TemplateId: p.templateId,
|
|
1019
|
+
Variables: p.variables,
|
|
1020
|
+
Free: p.free
|
|
1021
|
+
});
|
|
886
1022
|
var Messages = class extends APIResource {
|
|
887
1023
|
/**
|
|
888
|
-
* 문자(SMS/LMS/MMS) 또는 카카오
|
|
1024
|
+
* 문자(SMS/LMS/MMS) 또는 카카오 알림톡·브랜드 메시지를 발송합니다.
|
|
889
1025
|
*
|
|
890
|
-
*
|
|
891
|
-
* 실을 수 없습니다(본문은
|
|
1026
|
+
* 셋은 배타적입니다 — `kakao` 를 실으면 알림톡, `brand` 를 실으면 브랜드 메시지이고,
|
|
1027
|
+
* 이때 `body`·`subject`·`mediaUrl` 은 실을 수 없습니다(본문은 템플릿이 정합니다).
|
|
892
1028
|
*
|
|
893
1029
|
* ```ts
|
|
894
1030
|
* // 문자
|
|
@@ -901,6 +1037,14 @@ var Messages = class extends APIResource {
|
|
|
901
1037
|
* kakao: { channelId, templateId, variables: { 고객명: '홍길동' } },
|
|
902
1038
|
* fallback: { body: '주문이 접수되었습니다.' },
|
|
903
1039
|
* });
|
|
1040
|
+
*
|
|
1041
|
+
* // 브랜드 메시지 — 채널을 추가한 친구에게 나가는 광고성 메시지
|
|
1042
|
+
* // ⚠️ 야간 제한과 대체발송 없음 — 제약은 `BrandMessageCreateParams` 참고.
|
|
1043
|
+
* await client.messages.create({
|
|
1044
|
+
* to: '010…',
|
|
1045
|
+
* from: '070…',
|
|
1046
|
+
* brand: { channelId, templateId, variables: { 고객명: '홍길동' } },
|
|
1047
|
+
* });
|
|
904
1048
|
* ```
|
|
905
1049
|
*/
|
|
906
1050
|
async create(params, options = {}) {
|
|
@@ -913,11 +1057,8 @@ var Messages = class extends APIResource {
|
|
|
913
1057
|
MediaUrl: params.mediaUrl,
|
|
914
1058
|
IdempotencyKey: params.idempotencyKey,
|
|
915
1059
|
// 중첩 객체는 손으로 조립한다 — stripNotGiven 은 한 겹만 훑는다.
|
|
916
|
-
Kakao: params.kakao
|
|
917
|
-
|
|
918
|
-
TemplateId: params.kakao.templateId,
|
|
919
|
-
Variables: params.kakao.variables
|
|
920
|
-
}),
|
|
1060
|
+
Kakao: sendBlock(params.kakao),
|
|
1061
|
+
Brand: sendBlock(params.brand),
|
|
921
1062
|
Fallback: params.fallback && stripNotGiven({
|
|
922
1063
|
Type: params.fallback.type,
|
|
923
1064
|
Subject: params.fallback.subject,
|
|
@@ -1325,6 +1466,6 @@ var ClawOps = class extends APIClient {
|
|
|
1325
1466
|
// src/client-default.ts
|
|
1326
1467
|
var client_default_default = ClawOps;
|
|
1327
1468
|
|
|
1328
|
-
export { APIClient, AccountContext, AssignmentLinks, BlockedRecipients, Calls, ClawOps, Kakao, KakaoChannels, KakaoTemplates, Messages, Numbers, Page, Recordings, SipCredentials, SipEndpoints, WebhookLogs, WebhookVerificationError, Webhooks, client_default_default as default };
|
|
1469
|
+
export { APIClient, AccountContext, AssignmentLinks, BlockedRecipients, Calls, ClawOps, Kakao, KakaoBrandImages, KakaoBrandTemplates, KakaoChannels, KakaoTemplates, Messages, Numbers, Page, Recordings, SipCredentials, SipEndpoints, WebhookLogs, WebhookVerificationError, Webhooks, client_default_default as default };
|
|
1329
1470
|
//# sourceMappingURL=index.js.map
|
|
1330
1471
|
//# sourceMappingURL=index.js.map
|