cogfy-messenger 0.1.7 → 0.1.9
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/dist/clients/broadcasts/index.d.ts +1 -0
- package/dist/clients/broadcasts/index.js +1 -0
- package/dist/clients/conversations/conversations-client.d.ts +2 -2
- package/dist/clients/conversations/types/send-interactive-order-details-message.d.ts +2 -2
- package/dist/clients/messages/index.d.ts +1 -0
- package/dist/clients/messages/index.js +1 -0
- package/dist/clients/messages/messages-client.d.ts +61 -1
- package/dist/clients/messages/messages-client.js +100 -0
- package/dist/clients/messages/types/index.d.ts +10 -0
- package/dist/clients/messages/types/index.js +10 -0
- package/dist/clients/messages/types/send-audio.d.ts +11 -0
- package/dist/clients/messages/types/send-audio.js +2 -0
- package/dist/clients/messages/types/send-contacts.d.ts +45 -0
- package/dist/clients/messages/types/send-contacts.js +2 -0
- package/dist/clients/messages/types/send-document.d.ts +13 -0
- package/dist/clients/messages/types/send-document.js +2 -0
- package/dist/clients/messages/types/send-image.d.ts +12 -0
- package/dist/clients/messages/types/send-image.js +2 -0
- package/dist/clients/messages/types/send-interactive-button.d.ts +28 -0
- package/dist/clients/messages/types/send-interactive-button.js +2 -0
- package/dist/clients/messages/types/send-interactive-flow.d.ts +29 -0
- package/dist/clients/messages/types/send-interactive-flow.js +2 -0
- package/dist/clients/messages/types/send-interactive-list.d.ts +30 -0
- package/dist/clients/messages/types/send-interactive-list.js +2 -0
- package/dist/clients/messages/types/send-reaction.d.ts +11 -0
- package/dist/clients/messages/types/send-reaction.js +2 -0
- package/dist/clients/messages/types/send-sticker.d.ts +11 -0
- package/dist/clients/messages/types/send-sticker.js +2 -0
- package/dist/clients/messages/types/send-video.d.ts +12 -0
- package/dist/clients/messages/types/send-video.js +2 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseClient } from '../base-client';
|
|
2
2
|
import { SendMessageCommand, SendMessageResult } from './types/send-message';
|
|
3
|
-
import { GetConversationResult, GetMessagesResult, ListConversationsParams, ListConversationsResult, ListMessagesParams,
|
|
3
|
+
import { GetConversationResult, GetMessagesResult, ListConversationsParams, ListConversationsResult, ListMessagesParams, SendInteractiveOrderDetailsConversationMessageCommand, SendInteractiveOrderDetailsConversationMessageResult } from './types';
|
|
4
4
|
export declare class ConversationsClient extends BaseClient {
|
|
5
5
|
/**
|
|
6
6
|
* Calls the GET /conversations/:id endpoint
|
|
@@ -26,7 +26,7 @@ export declare class ConversationsClient extends BaseClient {
|
|
|
26
26
|
* @param payload The message payload to send
|
|
27
27
|
* @returns The response from the API
|
|
28
28
|
*/
|
|
29
|
-
sendInteractiveOrderDetailsMessage(id: string, payload:
|
|
29
|
+
sendInteractiveOrderDetailsMessage(id: string, payload: SendInteractiveOrderDetailsConversationMessageCommand): Promise<SendInteractiveOrderDetailsConversationMessageResult>;
|
|
30
30
|
/**
|
|
31
31
|
* Calls the POST /conversations/:id/messages endpoint
|
|
32
32
|
* @param id The ID of the conversation to send a message to
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type SendInteractiveOrderDetailsConversationMessageCommand = {
|
|
2
2
|
content: InteractiveOrderDetailsContent;
|
|
3
3
|
};
|
|
4
|
-
export type
|
|
4
|
+
export type SendInteractiveOrderDetailsConversationMessageResult = {
|
|
5
5
|
id: string;
|
|
6
6
|
};
|
|
7
7
|
type Amount = {
|
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
import { BaseClient } from '../base-client';
|
|
2
|
-
import { SendInteractiveCtaUrlMessageCommand, SendInteractiveCtaUrlMessageResult, SendInteractiveOrderDetailsMessageCommand, SendInteractiveOrderDetailsMessageResult, SendInteractiveOrderStatusMessageCommand, SendInteractiveOrderStatusMessageResult, SendLocationMessageCommand, SendLocationMessageResult, SendTemplateMessageCommand, SendTemplateMessageResult, SendTextMessageCommand, SendTextMessageResult } from './types';
|
|
2
|
+
import { SendAudioMessageCommand, SendAudioMessageResult, SendContactsMessageCommand, SendContactsMessageResult, SendDocumentMessageCommand, SendDocumentMessageResult, SendImageMessageCommand, SendImageMessageResult, SendInteractiveButtonMessageCommand, SendInteractiveButtonMessageResult, SendInteractiveCtaUrlMessageCommand, SendInteractiveCtaUrlMessageResult, SendInteractiveFlowMessageCommand, SendInteractiveFlowMessageResult, SendInteractiveListMessageCommand, SendInteractiveListMessageResult, SendInteractiveOrderDetailsMessageCommand, SendInteractiveOrderDetailsMessageResult, SendInteractiveOrderStatusMessageCommand, SendInteractiveOrderStatusMessageResult, SendLocationMessageCommand, SendLocationMessageResult, SendReactionMessageCommand, SendReactionMessageResult, SendStickerMessageCommand, SendStickerMessageResult, SendTemplateMessageCommand, SendTemplateMessageResult, SendTextMessageCommand, SendTextMessageResult, SendVideoMessageCommand, SendVideoMessageResult } from './types';
|
|
3
3
|
export declare class MessagesClient extends BaseClient {
|
|
4
|
+
/**
|
|
5
|
+
* Calls the POST /messages/audio endpoint
|
|
6
|
+
* @param payload The message data to send
|
|
7
|
+
* @returns The result of the sent message
|
|
8
|
+
*/
|
|
9
|
+
sendAudio(payload: SendAudioMessageCommand): Promise<SendAudioMessageResult>;
|
|
10
|
+
/**
|
|
11
|
+
* Calls the POST /messages/contacts endpoint
|
|
12
|
+
* @param payload The message data to send
|
|
13
|
+
* @returns The result of the sent message
|
|
14
|
+
*/
|
|
15
|
+
sendContacts(payload: SendContactsMessageCommand): Promise<SendContactsMessageResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Calls the POST /messages/document endpoint
|
|
18
|
+
* @param payload The message data to send
|
|
19
|
+
* @returns The result of the sent message
|
|
20
|
+
*/
|
|
21
|
+
sendDocument(payload: SendDocumentMessageCommand): Promise<SendDocumentMessageResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Calls the POST /messages/image endpoint
|
|
24
|
+
* @param payload The message data to send
|
|
25
|
+
* @returns The result of the sent message
|
|
26
|
+
*/
|
|
27
|
+
sendImage(payload: SendImageMessageCommand): Promise<SendImageMessageResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Calls the POST /messages/interactive/flow endpoint
|
|
30
|
+
* @param payload The message data to send
|
|
31
|
+
* @returns The result of the sent message
|
|
32
|
+
*/
|
|
33
|
+
sendInteractiveFlow(payload: SendInteractiveFlowMessageCommand): Promise<SendInteractiveFlowMessageResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Calls the POST /messages/interactive/list endpoint
|
|
36
|
+
* @param payload The message data to send
|
|
37
|
+
* @returns The result of the sent message
|
|
38
|
+
*/
|
|
39
|
+
sendInteractiveList(payload: SendInteractiveListMessageCommand): Promise<SendInteractiveListMessageResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Calls the POST /messages/interactive/button endpoint
|
|
42
|
+
* @param payload The message data to send
|
|
43
|
+
* @returns The result of the sent message
|
|
44
|
+
*/
|
|
45
|
+
sendInteractiveButton(payload: SendInteractiveButtonMessageCommand): Promise<SendInteractiveButtonMessageResult>;
|
|
4
46
|
/**
|
|
5
47
|
* Calls the POST /messages/interactive/cta_url endpoint
|
|
6
48
|
* @param payload The message data to send
|
|
@@ -25,6 +67,18 @@ export declare class MessagesClient extends BaseClient {
|
|
|
25
67
|
* @returns The result of the sent message
|
|
26
68
|
*/
|
|
27
69
|
sendLocation(payload: SendLocationMessageCommand): Promise<SendLocationMessageResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Calls the POST /messages/reaction endpoint
|
|
72
|
+
* @param payload The message data to send
|
|
73
|
+
* @returns The result of the sent message
|
|
74
|
+
*/
|
|
75
|
+
sendReaction(payload: SendReactionMessageCommand): Promise<SendReactionMessageResult>;
|
|
76
|
+
/**
|
|
77
|
+
* Calls the POST /messages/sticker endpoint
|
|
78
|
+
* @param payload The message data to send
|
|
79
|
+
* @returns The result of the sent message
|
|
80
|
+
*/
|
|
81
|
+
sendSticker(payload: SendStickerMessageCommand): Promise<SendStickerMessageResult>;
|
|
28
82
|
/**
|
|
29
83
|
* Calls the POST /messages/template endpoint
|
|
30
84
|
* @param payload The message data to send
|
|
@@ -37,4 +91,10 @@ export declare class MessagesClient extends BaseClient {
|
|
|
37
91
|
* @returns The result of the sent message
|
|
38
92
|
*/
|
|
39
93
|
sendText(payload: SendTextMessageCommand): Promise<SendTextMessageResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Calls the POST /messages/video endpoint
|
|
96
|
+
* @param payload The message data to send
|
|
97
|
+
* @returns The result of the sent message
|
|
98
|
+
*/
|
|
99
|
+
sendVideo(payload: SendVideoMessageCommand): Promise<SendVideoMessageResult>;
|
|
40
100
|
}
|
|
@@ -12,6 +12,76 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.MessagesClient = void 0;
|
|
13
13
|
const base_client_1 = require("../base-client");
|
|
14
14
|
class MessagesClient extends base_client_1.BaseClient {
|
|
15
|
+
/**
|
|
16
|
+
* Calls the POST /messages/audio endpoint
|
|
17
|
+
* @param payload The message data to send
|
|
18
|
+
* @returns The result of the sent message
|
|
19
|
+
*/
|
|
20
|
+
sendAudio(payload) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
return (yield this.axios.post('/messages/audio', payload)).data;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Calls the POST /messages/contacts endpoint
|
|
27
|
+
* @param payload The message data to send
|
|
28
|
+
* @returns The result of the sent message
|
|
29
|
+
*/
|
|
30
|
+
sendContacts(payload) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return (yield this.axios.post('/messages/contacts', payload)).data;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Calls the POST /messages/document endpoint
|
|
37
|
+
* @param payload The message data to send
|
|
38
|
+
* @returns The result of the sent message
|
|
39
|
+
*/
|
|
40
|
+
sendDocument(payload) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
return (yield this.axios.post('/messages/document', payload)).data;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Calls the POST /messages/image endpoint
|
|
47
|
+
* @param payload The message data to send
|
|
48
|
+
* @returns The result of the sent message
|
|
49
|
+
*/
|
|
50
|
+
sendImage(payload) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
return (yield this.axios.post('/messages/image', payload)).data;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Calls the POST /messages/interactive/flow endpoint
|
|
57
|
+
* @param payload The message data to send
|
|
58
|
+
* @returns The result of the sent message
|
|
59
|
+
*/
|
|
60
|
+
sendInteractiveFlow(payload) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
return (yield this.axios.post('/messages/interactive/flow', payload)).data;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Calls the POST /messages/interactive/list endpoint
|
|
67
|
+
* @param payload The message data to send
|
|
68
|
+
* @returns The result of the sent message
|
|
69
|
+
*/
|
|
70
|
+
sendInteractiveList(payload) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
return (yield this.axios.post('/messages/interactive/list', payload)).data;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Calls the POST /messages/interactive/button endpoint
|
|
77
|
+
* @param payload The message data to send
|
|
78
|
+
* @returns The result of the sent message
|
|
79
|
+
*/
|
|
80
|
+
sendInteractiveButton(payload) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
return (yield this.axios.post('/messages/interactive/button', payload)).data;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
15
85
|
/**
|
|
16
86
|
* Calls the POST /messages/interactive/cta_url endpoint
|
|
17
87
|
* @param payload The message data to send
|
|
@@ -52,6 +122,26 @@ class MessagesClient extends base_client_1.BaseClient {
|
|
|
52
122
|
return (yield this.axios.post('/messages/location', payload)).data;
|
|
53
123
|
});
|
|
54
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Calls the POST /messages/reaction endpoint
|
|
127
|
+
* @param payload The message data to send
|
|
128
|
+
* @returns The result of the sent message
|
|
129
|
+
*/
|
|
130
|
+
sendReaction(payload) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
return (yield this.axios.post('/messages/reaction', payload)).data;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Calls the POST /messages/sticker endpoint
|
|
137
|
+
* @param payload The message data to send
|
|
138
|
+
* @returns The result of the sent message
|
|
139
|
+
*/
|
|
140
|
+
sendSticker(payload) {
|
|
141
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
142
|
+
return (yield this.axios.post('/messages/sticker', payload)).data;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
55
145
|
/**
|
|
56
146
|
* Calls the POST /messages/template endpoint
|
|
57
147
|
* @param payload The message data to send
|
|
@@ -72,5 +162,15 @@ class MessagesClient extends base_client_1.BaseClient {
|
|
|
72
162
|
return (yield this.axios.post('/messages/text', payload)).data;
|
|
73
163
|
});
|
|
74
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Calls the POST /messages/video endpoint
|
|
167
|
+
* @param payload The message data to send
|
|
168
|
+
* @returns The result of the sent message
|
|
169
|
+
*/
|
|
170
|
+
sendVideo(payload) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
return (yield this.axios.post('/messages/video', payload)).data;
|
|
173
|
+
});
|
|
174
|
+
}
|
|
75
175
|
}
|
|
76
176
|
exports.MessagesClient = MessagesClient;
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
export * from './send-audio';
|
|
2
|
+
export * from './send-contacts';
|
|
3
|
+
export * from './send-document';
|
|
4
|
+
export * from './send-image';
|
|
5
|
+
export * from './send-interactive-button';
|
|
1
6
|
export * from './send-interactive-cta-url';
|
|
7
|
+
export * from './send-interactive-flow';
|
|
8
|
+
export * from './send-interactive-list';
|
|
2
9
|
export * from './send-interactive-order-details';
|
|
3
10
|
export * from './send-interactive-order-status';
|
|
4
11
|
export * from './send-location';
|
|
12
|
+
export * from './send-reaction';
|
|
13
|
+
export * from './send-sticker';
|
|
5
14
|
export * from './send-template';
|
|
6
15
|
export * from './send-text';
|
|
16
|
+
export * from './send-video';
|
|
@@ -14,9 +14,19 @@ 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("./send-audio"), exports);
|
|
18
|
+
__exportStar(require("./send-contacts"), exports);
|
|
19
|
+
__exportStar(require("./send-document"), exports);
|
|
20
|
+
__exportStar(require("./send-image"), exports);
|
|
21
|
+
__exportStar(require("./send-interactive-button"), exports);
|
|
17
22
|
__exportStar(require("./send-interactive-cta-url"), exports);
|
|
23
|
+
__exportStar(require("./send-interactive-flow"), exports);
|
|
24
|
+
__exportStar(require("./send-interactive-list"), exports);
|
|
18
25
|
__exportStar(require("./send-interactive-order-details"), exports);
|
|
19
26
|
__exportStar(require("./send-interactive-order-status"), exports);
|
|
20
27
|
__exportStar(require("./send-location"), exports);
|
|
28
|
+
__exportStar(require("./send-reaction"), exports);
|
|
29
|
+
__exportStar(require("./send-sticker"), exports);
|
|
21
30
|
__exportStar(require("./send-template"), exports);
|
|
22
31
|
__exportStar(require("./send-text"), exports);
|
|
32
|
+
__exportStar(require("./send-video"), exports);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type SendContactsMessageCommand = {
|
|
2
|
+
from: string;
|
|
3
|
+
to: string;
|
|
4
|
+
contacts: Array<{
|
|
5
|
+
name: {
|
|
6
|
+
formatted_name: string;
|
|
7
|
+
first_name?: string;
|
|
8
|
+
last_name?: string;
|
|
9
|
+
middle_name?: string;
|
|
10
|
+
suffix?: string;
|
|
11
|
+
prefix?: string;
|
|
12
|
+
};
|
|
13
|
+
phones?: Array<{
|
|
14
|
+
phone: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
wa_id?: string;
|
|
17
|
+
}>;
|
|
18
|
+
addresses?: Array<{
|
|
19
|
+
street?: string;
|
|
20
|
+
city?: string;
|
|
21
|
+
state?: string;
|
|
22
|
+
zip?: string;
|
|
23
|
+
country?: string;
|
|
24
|
+
country_code?: string;
|
|
25
|
+
type?: string;
|
|
26
|
+
}>;
|
|
27
|
+
birthday?: string;
|
|
28
|
+
emails?: Array<{
|
|
29
|
+
email?: string;
|
|
30
|
+
type?: string;
|
|
31
|
+
}>;
|
|
32
|
+
org?: {
|
|
33
|
+
company?: string;
|
|
34
|
+
department?: string;
|
|
35
|
+
title?: string;
|
|
36
|
+
};
|
|
37
|
+
urls?: Array<{
|
|
38
|
+
url?: string;
|
|
39
|
+
type?: string;
|
|
40
|
+
}>;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
export type SendContactsMessageResult = {
|
|
44
|
+
id: string;
|
|
45
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type SendInteractiveButtonMessageCommand = {
|
|
2
|
+
from: string;
|
|
3
|
+
to: string;
|
|
4
|
+
interactive: {
|
|
5
|
+
type?: 'button';
|
|
6
|
+
header?: {
|
|
7
|
+
type: 'text' | 'image' | 'video' | 'document';
|
|
8
|
+
};
|
|
9
|
+
body: {
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
footer?: {
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
action: {
|
|
16
|
+
buttons: Array<{
|
|
17
|
+
type: string;
|
|
18
|
+
reply: {
|
|
19
|
+
id: string;
|
|
20
|
+
title: string;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export type SendInteractiveButtonMessageResult = {
|
|
27
|
+
id: string;
|
|
28
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type SendInteractiveFlowMessageCommand = {
|
|
2
|
+
from: string;
|
|
3
|
+
to: string;
|
|
4
|
+
interactive: {
|
|
5
|
+
type?: 'flow';
|
|
6
|
+
header?: {
|
|
7
|
+
type: 'text' | 'image' | 'video' | 'document';
|
|
8
|
+
};
|
|
9
|
+
body: {
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
footer?: {
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
action: {
|
|
16
|
+
name?: 'flow';
|
|
17
|
+
parameters: {
|
|
18
|
+
flow_cta: string;
|
|
19
|
+
flow_name: string;
|
|
20
|
+
flow_message_version?: number;
|
|
21
|
+
flow_action?: 'navigate' | 'data_exchange';
|
|
22
|
+
flow_action_payload?: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export type SendInteractiveFlowMessageResult = {
|
|
28
|
+
id: string;
|
|
29
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type SendInteractiveListMessageCommand = {
|
|
2
|
+
from: string;
|
|
3
|
+
to: string;
|
|
4
|
+
interactive: {
|
|
5
|
+
type?: 'list';
|
|
6
|
+
header?: {
|
|
7
|
+
type: 'text';
|
|
8
|
+
};
|
|
9
|
+
body: {
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
footer?: {
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
action: {
|
|
16
|
+
button: string;
|
|
17
|
+
sections: {
|
|
18
|
+
title: string;
|
|
19
|
+
rows: {
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
}[];
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export type SendInteractiveListMessageResult = {
|
|
29
|
+
id: string;
|
|
30
|
+
};
|