@react-native-kakao/share 3.0.0 → 3.1.0-next.1

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/RNCKakaoShare.podspec +0 -1
  3. package/android/build.gradle +1 -2
  4. package/android/src/main/java/net/mjstudio/rnkakao/share/RNCKakaoShareModule.kt +359 -11
  5. package/android/src/main/java/net/mjstudio/rnkakao/share/RNCKakaoShareTemplates.kt +5 -2
  6. package/ios/RNCKakaoShare.mm +69 -5
  7. package/ios/RNCKakaoShareManager.swift +349 -36
  8. package/lib/commonjs/index.js +145 -29
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/index.web.js +267 -48
  11. package/lib/commonjs/index.web.js.map +1 -1
  12. package/lib/commonjs/spec/NativeKakaoShare.ts +89 -3
  13. package/lib/commonjs/validateSharePickerSettings.js +33 -0
  14. package/lib/commonjs/validateSharePickerSettings.js.map +1 -0
  15. package/lib/module/index.js +135 -29
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/index.web.js +258 -49
  18. package/lib/module/index.web.js.map +1 -1
  19. package/lib/module/spec/NativeKakaoShare.ts +89 -3
  20. package/lib/module/validateSharePickerSettings.js +29 -0
  21. package/lib/module/validateSharePickerSettings.js.map +1 -0
  22. package/lib/typescript/src/index.d.ts +88 -23
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/lib/typescript/src/spec/NativeKakaoShare.d.ts +84 -1
  25. package/lib/typescript/src/spec/NativeKakaoShare.d.ts.map +1 -1
  26. package/lib/typescript/src/validateSharePickerSettings.d.ts +6 -0
  27. package/lib/typescript/src/validateSharePickerSettings.d.ts.map +1 -0
  28. package/package.json +5 -5
  29. package/src/index.ts +271 -15
  30. package/src/index.web.ts +305 -62
  31. package/src/spec/NativeKakaoShare.ts +89 -3
  32. package/src/validateSharePickerSettings.ts +38 -0
package/src/index.ts CHANGED
@@ -3,9 +3,15 @@ import type { Double, UnsafeObject } from 'react-native/Libraries/Types/CodegenT
3
3
  import type {
4
4
  KakaoCalendarTemplate,
5
5
  KakaoCommerceTemplate,
6
+ KakaoDefaultTemplateParams,
6
7
  KakaoFeedTemplate,
8
+ KakaoImageUploadResult,
7
9
  KakaoListTemplate,
8
10
  KakaoLocationTemplate,
11
+ KakaoMessageSendResult,
12
+ KakaoSharePickerSettings,
13
+ KakaoShareTemplateDiagnostics,
14
+ KakaoShareTemplateDiagnosticsParams,
9
15
  KakaoTemplateButton,
10
16
  KakaoTemplateCommerce,
11
17
  KakaoTemplateContent,
@@ -17,6 +23,7 @@ import type {
17
23
  } from './spec/NativeKakaoShare';
18
24
  import Native from './spec/NativeKakaoShare';
19
25
  import { swapMobileExecutionParamsFieldValueIntoStringInIOS } from './util/swapMobileExecutionParamsFieldValueIntoStringInIOS';
26
+ import { validateSharePickerSettings } from './validateSharePickerSettings';
20
27
 
21
28
  export type {
22
29
  KakaoTemplateSocial,
@@ -28,12 +35,22 @@ export type {
28
35
  KakaoTemplateCommerce,
29
36
  KakaoTemplateButton,
30
37
  KakaoLocationTemplate,
38
+ KakaoMessageSendResult,
39
+ KakaoSharePickerSettings,
40
+ KakaoShareTemplateDiagnostics,
41
+ KakaoShareTemplateDiagnosticsParams,
31
42
  KakaoListTemplate,
32
43
  KakaoFeedTemplate,
33
44
  KakaoCommerceTemplate,
34
45
  KakaoCalendarTemplate,
46
+ KakaoImageUploadResult,
47
+ KakaoDefaultTemplateParams,
35
48
  };
36
49
 
50
+ export function isKakaoTalkSharingAvailable(): Promise<boolean> {
51
+ return Native.isKakaoTalkSharingAvailable();
52
+ }
53
+
37
54
  function shareOrSendMeOrSendFriendOrWhatever(
38
55
  /* share, send-me, send-friend */
39
56
  sendType: string,
@@ -48,8 +65,10 @@ function shareOrSendMeOrSendFriendOrWhatever(
48
65
  useWebBrowserIfKakaoTalkNotAvailable: boolean,
49
66
  templateArgs: Readonly<{ [key: string]: string }>,
50
67
  serverCallbackArgs: Readonly<{ [key: string]: string }>,
68
+ includeFailureInfo?: boolean,
69
+ pickerSettings?: KakaoSharePickerSettings,
51
70
  ): Promise<any> {
52
- return Native.shareOrSendMeOrSendFriendOrWhatever(
71
+ const response = Native.shareOrSendMeOrSendFriendOrWhatever(
53
72
  sendType,
54
73
  templateType,
55
74
  templateId,
@@ -58,12 +77,26 @@ function shareOrSendMeOrSendFriendOrWhatever(
58
77
  useWebBrowserIfKakaoTalkNotAvailable,
59
78
  templateArgs,
60
79
  serverCallbackArgs,
80
+ validateSharePickerSettings(pickerSettings),
61
81
  );
82
+
83
+ if (sendType === SendTypes.sendFriend) {
84
+ return response.then((result: KakaoMessageSendResult) =>
85
+ includeFailureInfo ? result : result.successfulReceiverUuids,
86
+ );
87
+ }
88
+
89
+ return response;
62
90
  }
63
91
 
92
+ export type KakaoFriendMessageResult<T extends boolean = false> = T extends true
93
+ ? KakaoMessageSendResult
94
+ : string[];
95
+
64
96
  const SendTypes = { share: 'share', sendMe: 'send-me', sendFriend: 'send-friend' };
65
97
  const TemplateTypes = {
66
98
  custom: 'custom',
99
+ scrap: 'scrap',
67
100
  feed: 'feed',
68
101
  list: 'list',
69
102
  location: 'location',
@@ -71,17 +104,163 @@ const TemplateTypes = {
71
104
  text: 'text',
72
105
  calendar: 'calendar',
73
106
  };
107
+ const DefaultScrapTemplateId = -1;
108
+
109
+ export async function getShareTemplateDiagnostics(
110
+ params: KakaoShareTemplateDiagnosticsParams,
111
+ ): Promise<KakaoShareTemplateDiagnostics> {
112
+ const template =
113
+ 'template' in params
114
+ ? params.template
115
+ : 'requestUrl' in params
116
+ ? { requestUrl: params.requestUrl }
117
+ : {};
118
+
119
+ return Native.getTemplateDiagnostics(
120
+ params.templateType,
121
+ 'templateId' in params ? params.templateId ?? DefaultScrapTemplateId : DefaultScrapTemplateId,
122
+ swapMobileExecutionParamsFieldValueIntoStringInIOS(template),
123
+ 'templateArgs' in params ? params.templateArgs ?? {} : {},
124
+ params.serverCallbackArgs ?? {},
125
+ validateSharePickerSettings(params.pickerSettings),
126
+ );
127
+ }
128
+
129
+ export async function makeDefaultTemplateUrl({
130
+ templateType,
131
+ template,
132
+ serverCallbackArgs = {},
133
+ }: KakaoDefaultTemplateParams): Promise<string> {
134
+ return Native.makeTemplateUrl(
135
+ templateType,
136
+ DefaultScrapTemplateId,
137
+ swapMobileExecutionParamsFieldValueIntoStringInIOS(template),
138
+ {},
139
+ serverCallbackArgs,
140
+ );
141
+ }
142
+
143
+ export async function makeCustomTemplateUrl({
144
+ templateId,
145
+ templateArgs = {},
146
+ serverCallbackArgs = {},
147
+ }: {
148
+ templateId: number;
149
+ templateArgs?: Record<string, string>;
150
+ serverCallbackArgs?: Record<string, string>;
151
+ }): Promise<string> {
152
+ return Native.makeTemplateUrl(
153
+ TemplateTypes.custom,
154
+ templateId,
155
+ {},
156
+ templateArgs,
157
+ serverCallbackArgs,
158
+ );
159
+ }
160
+
161
+ export async function makeScrapTemplateUrl({
162
+ requestUrl,
163
+ templateId = DefaultScrapTemplateId,
164
+ templateArgs = {},
165
+ serverCallbackArgs = {},
166
+ }: {
167
+ requestUrl: string;
168
+ templateId?: number;
169
+ templateArgs?: Record<string, string>;
170
+ serverCallbackArgs?: Record<string, string>;
171
+ }): Promise<string> {
172
+ return Native.makeTemplateUrl(
173
+ TemplateTypes.scrap,
174
+ templateId,
175
+ { requestUrl },
176
+ templateArgs,
177
+ serverCallbackArgs,
178
+ );
179
+ }
180
+
181
+ export type KakaoScrapMessageParams = {
182
+ requestUrl: string;
183
+ templateId?: number;
184
+ templateArgs?: Record<string, string>;
185
+ };
186
+
187
+ export async function sendScrapTemplateToMe({
188
+ requestUrl,
189
+ templateId = DefaultScrapTemplateId,
190
+ templateArgs = {},
191
+ }: KakaoScrapMessageParams) {
192
+ await Native.shareOrSendMeOrSendFriendOrWhatever(
193
+ SendTypes.sendMe,
194
+ TemplateTypes.scrap,
195
+ templateId,
196
+ { requestUrl },
197
+ [],
198
+ false,
199
+ templateArgs,
200
+ {},
201
+ undefined,
202
+ );
203
+ }
204
+
205
+ export function sendScrapTemplateToFriends<T extends boolean = false>({
206
+ requestUrl,
207
+ templateId = DefaultScrapTemplateId,
208
+ templateArgs = {},
209
+ receiverUuids,
210
+ includeFailureInfo,
211
+ }: KakaoScrapMessageParams & { receiverUuids: string[]; includeFailureInfo?: T }): Promise<
212
+ KakaoFriendMessageResult<T>
213
+ > {
214
+ return shareOrSendMeOrSendFriendOrWhatever(
215
+ SendTypes.sendFriend,
216
+ TemplateTypes.scrap,
217
+ templateId,
218
+ { requestUrl },
219
+ receiverUuids,
220
+ false,
221
+ templateArgs,
222
+ {},
223
+ includeFailureInfo,
224
+ );
225
+ }
226
+
227
+ export function shareScrapTemplate({
228
+ requestUrl,
229
+ templateId,
230
+ templateArgs = {},
231
+ serverCallbackArgs = {},
232
+ pickerSettings,
233
+ useWebBrowserIfKakaoTalkNotAvailable = true,
234
+ }: {
235
+ requestUrl: string;
236
+ templateId?: number;
237
+ templateArgs?: Record<string, string>;
238
+ serverCallbackArgs?: Record<string, string>;
239
+ pickerSettings?: KakaoSharePickerSettings;
240
+ useWebBrowserIfKakaoTalkNotAvailable?: boolean;
241
+ }): Promise<void> {
242
+ return Native.shareScrapTemplate(
243
+ requestUrl,
244
+ useWebBrowserIfKakaoTalkNotAvailable,
245
+ templateId,
246
+ templateArgs,
247
+ serverCallbackArgs,
248
+ validateSharePickerSettings(pickerSettings),
249
+ );
250
+ }
74
251
 
75
252
  export function shareCustomTemplate({
76
253
  templateId,
77
254
  useWebBrowserIfKakaoTalkNotAvailable = true,
78
255
  serverCallbackArgs = {},
256
+ pickerSettings,
79
257
  templateArgs = {},
80
258
  }: {
81
259
  templateId: number;
82
260
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
83
261
  templateArgs?: Record<string, string>;
84
262
  serverCallbackArgs?: Record<string, string>;
263
+ pickerSettings?: KakaoSharePickerSettings;
85
264
  }) {
86
265
  return shareOrSendMeOrSendFriendOrWhatever(
87
266
  SendTypes.share,
@@ -92,6 +271,8 @@ export function shareCustomTemplate({
92
271
  useWebBrowserIfKakaoTalkNotAvailable,
93
272
  templateArgs,
94
273
  serverCallbackArgs,
274
+ undefined,
275
+ pickerSettings,
95
276
  );
96
277
  }
97
278
 
@@ -114,15 +295,17 @@ export function sendCustomTemplateToMe({
114
295
  );
115
296
  }
116
297
 
117
- export function sendCustomTemplateToFriends({
298
+ export function sendCustomTemplateToFriends<T extends boolean = false>({
118
299
  templateId,
119
300
  templateArgs = {},
120
301
  receiverUuids,
302
+ includeFailureInfo,
121
303
  }: {
122
304
  templateId: number;
123
305
  templateArgs?: Record<string, string>;
124
306
  receiverUuids: string[];
125
- }): Promise<string[]> {
307
+ includeFailureInfo?: T;
308
+ }): Promise<KakaoFriendMessageResult<T>> {
126
309
  return shareOrSendMeOrSendFriendOrWhatever(
127
310
  SendTypes.sendFriend,
128
311
  TemplateTypes.custom,
@@ -132,6 +315,7 @@ export function sendCustomTemplateToFriends({
132
315
  false,
133
316
  templateArgs,
134
317
  {},
318
+ includeFailureInfo,
135
319
  );
136
320
  }
137
321
 
@@ -139,10 +323,12 @@ export function shareFeedTemplate({
139
323
  template,
140
324
  useWebBrowserIfKakaoTalkNotAvailable = true,
141
325
  serverCallbackArgs = {},
326
+ pickerSettings,
142
327
  }: {
143
328
  template: KakaoFeedTemplate;
144
329
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
145
330
  serverCallbackArgs?: Record<string, string>;
331
+ pickerSettings?: KakaoSharePickerSettings;
146
332
  }) {
147
333
  return shareOrSendMeOrSendFriendOrWhatever(
148
334
  SendTypes.share,
@@ -153,6 +339,8 @@ export function shareFeedTemplate({
153
339
  useWebBrowserIfKakaoTalkNotAvailable,
154
340
  {},
155
341
  serverCallbackArgs,
342
+ undefined,
343
+ pickerSettings,
156
344
  );
157
345
  }
158
346
 
@@ -169,13 +357,15 @@ export function sendFeedTemplateToMe({ template }: { template: KakaoFeedTemplate
169
357
  );
170
358
  }
171
359
 
172
- export function sendFeedTemplateToFriends({
360
+ export function sendFeedTemplateToFriends<T extends boolean = false>({
173
361
  template,
174
362
  receiverUuids,
363
+ includeFailureInfo,
175
364
  }: {
176
365
  template: KakaoFeedTemplate;
177
366
  receiverUuids: string[];
178
- }): Promise<string[]> {
367
+ includeFailureInfo?: T;
368
+ }): Promise<KakaoFriendMessageResult<T>> {
179
369
  return shareOrSendMeOrSendFriendOrWhatever(
180
370
  SendTypes.sendFriend,
181
371
  TemplateTypes.feed,
@@ -185,6 +375,7 @@ export function sendFeedTemplateToFriends({
185
375
  false,
186
376
  {},
187
377
  {},
378
+ includeFailureInfo,
188
379
  );
189
380
  }
190
381
 
@@ -192,10 +383,12 @@ export function shareListTemplate({
192
383
  template,
193
384
  useWebBrowserIfKakaoTalkNotAvailable = true,
194
385
  serverCallbackArgs = {},
386
+ pickerSettings,
195
387
  }: {
196
388
  template: KakaoListTemplate;
197
389
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
198
390
  serverCallbackArgs?: Record<string, string>;
391
+ pickerSettings?: KakaoSharePickerSettings;
199
392
  }) {
200
393
  return shareOrSendMeOrSendFriendOrWhatever(
201
394
  SendTypes.share,
@@ -206,6 +399,8 @@ export function shareListTemplate({
206
399
  useWebBrowserIfKakaoTalkNotAvailable,
207
400
  {},
208
401
  serverCallbackArgs,
402
+ undefined,
403
+ pickerSettings,
209
404
  );
210
405
  }
211
406
 
@@ -222,13 +417,15 @@ export function sendListTemplateToMe({ template }: { template: KakaoListTemplate
222
417
  );
223
418
  }
224
419
 
225
- export function sendListTemplateToFriends({
420
+ export function sendListTemplateToFriends<T extends boolean = false>({
226
421
  template,
227
422
  receiverUuids,
423
+ includeFailureInfo,
228
424
  }: {
229
425
  template: KakaoListTemplate;
230
426
  receiverUuids: string[];
231
- }): Promise<string[]> {
427
+ includeFailureInfo?: T;
428
+ }): Promise<KakaoFriendMessageResult<T>> {
232
429
  return shareOrSendMeOrSendFriendOrWhatever(
233
430
  SendTypes.sendFriend,
234
431
  TemplateTypes.list,
@@ -238,6 +435,7 @@ export function sendListTemplateToFriends({
238
435
  false,
239
436
  {},
240
437
  {},
438
+ includeFailureInfo,
241
439
  );
242
440
  }
243
441
 
@@ -245,10 +443,12 @@ export function shareLocationTemplate({
245
443
  template,
246
444
  useWebBrowserIfKakaoTalkNotAvailable = true,
247
445
  serverCallbackArgs = {},
446
+ pickerSettings,
248
447
  }: {
249
448
  template: KakaoLocationTemplate;
250
449
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
251
450
  serverCallbackArgs?: Record<string, string>;
451
+ pickerSettings?: KakaoSharePickerSettings;
252
452
  }) {
253
453
  return shareOrSendMeOrSendFriendOrWhatever(
254
454
  SendTypes.share,
@@ -259,6 +459,8 @@ export function shareLocationTemplate({
259
459
  useWebBrowserIfKakaoTalkNotAvailable,
260
460
  {},
261
461
  serverCallbackArgs,
462
+ undefined,
463
+ pickerSettings,
262
464
  );
263
465
  }
264
466
 
@@ -275,13 +477,15 @@ export function sendLocationTemplateToMe({ template }: { template: KakaoLocation
275
477
  );
276
478
  }
277
479
 
278
- export function sendLocationTemplateToFriends({
480
+ export function sendLocationTemplateToFriends<T extends boolean = false>({
279
481
  template,
280
482
  receiverUuids,
483
+ includeFailureInfo,
281
484
  }: {
282
485
  template: KakaoLocationTemplate;
283
486
  receiverUuids: string[];
284
- }): Promise<string[]> {
487
+ includeFailureInfo?: T;
488
+ }): Promise<KakaoFriendMessageResult<T>> {
285
489
  return shareOrSendMeOrSendFriendOrWhatever(
286
490
  SendTypes.sendFriend,
287
491
  TemplateTypes.location,
@@ -291,6 +495,7 @@ export function sendLocationTemplateToFriends({
291
495
  false,
292
496
  {},
293
497
  {},
498
+ includeFailureInfo,
294
499
  );
295
500
  }
296
501
 
@@ -298,10 +503,12 @@ export function shareCommerceTemplate({
298
503
  template,
299
504
  useWebBrowserIfKakaoTalkNotAvailable = true,
300
505
  serverCallbackArgs = {},
506
+ pickerSettings,
301
507
  }: {
302
508
  template: KakaoCommerceTemplate;
303
509
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
304
510
  serverCallbackArgs?: Record<string, string>;
511
+ pickerSettings?: KakaoSharePickerSettings;
305
512
  }) {
306
513
  return shareOrSendMeOrSendFriendOrWhatever(
307
514
  SendTypes.share,
@@ -312,6 +519,8 @@ export function shareCommerceTemplate({
312
519
  useWebBrowserIfKakaoTalkNotAvailable,
313
520
  {},
314
521
  serverCallbackArgs,
522
+ undefined,
523
+ pickerSettings,
315
524
  );
316
525
  }
317
526
 
@@ -328,13 +537,15 @@ export function sendCommerceTemplateToMe({ template }: { template: KakaoCommerce
328
537
  );
329
538
  }
330
539
 
331
- export function sendCommerceTemplateToFriends({
540
+ export function sendCommerceTemplateToFriends<T extends boolean = false>({
332
541
  template,
333
542
  receiverUuids,
543
+ includeFailureInfo,
334
544
  }: {
335
545
  template: KakaoCommerceTemplate;
336
546
  receiverUuids: string[];
337
- }): Promise<string[]> {
547
+ includeFailureInfo?: T;
548
+ }): Promise<KakaoFriendMessageResult<T>> {
338
549
  return shareOrSendMeOrSendFriendOrWhatever(
339
550
  SendTypes.sendFriend,
340
551
  TemplateTypes.commerce,
@@ -344,6 +555,7 @@ export function sendCommerceTemplateToFriends({
344
555
  false,
345
556
  {},
346
557
  {},
558
+ includeFailureInfo,
347
559
  );
348
560
  }
349
561
 
@@ -351,10 +563,12 @@ export function shareTextTemplate({
351
563
  template,
352
564
  useWebBrowserIfKakaoTalkNotAvailable = true,
353
565
  serverCallbackArgs = {},
566
+ pickerSettings,
354
567
  }: {
355
568
  template: KakaoTextTemplate;
356
569
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
357
570
  serverCallbackArgs?: Record<string, string>;
571
+ pickerSettings?: KakaoSharePickerSettings;
358
572
  }) {
359
573
  return shareOrSendMeOrSendFriendOrWhatever(
360
574
  SendTypes.share,
@@ -365,6 +579,8 @@ export function shareTextTemplate({
365
579
  useWebBrowserIfKakaoTalkNotAvailable,
366
580
  {},
367
581
  serverCallbackArgs,
582
+ undefined,
583
+ pickerSettings,
368
584
  );
369
585
  }
370
586
 
@@ -381,13 +597,15 @@ export function sendTextTemplateToMe({ template }: { template: KakaoTextTemplate
381
597
  );
382
598
  }
383
599
 
384
- export function sendTextTemplateToFriends({
600
+ export function sendTextTemplateToFriends<T extends boolean = false>({
385
601
  template,
386
602
  receiverUuids,
603
+ includeFailureInfo,
387
604
  }: {
388
605
  template: KakaoTextTemplate;
389
606
  receiverUuids: string[];
390
- }): Promise<string[]> {
607
+ includeFailureInfo?: T;
608
+ }): Promise<KakaoFriendMessageResult<T>> {
391
609
  return shareOrSendMeOrSendFriendOrWhatever(
392
610
  SendTypes.sendFriend,
393
611
  TemplateTypes.text,
@@ -397,6 +615,7 @@ export function sendTextTemplateToFriends({
397
615
  false,
398
616
  {},
399
617
  {},
618
+ includeFailureInfo,
400
619
  );
401
620
  }
402
621
 
@@ -404,10 +623,12 @@ export function shareCalendarTemplate({
404
623
  template,
405
624
  useWebBrowserIfKakaoTalkNotAvailable = true,
406
625
  serverCallbackArgs = {},
626
+ pickerSettings,
407
627
  }: {
408
628
  template: KakaoCalendarTemplate;
409
629
  useWebBrowserIfKakaoTalkNotAvailable?: boolean;
410
630
  serverCallbackArgs?: Record<string, string>;
631
+ pickerSettings?: KakaoSharePickerSettings;
411
632
  }) {
412
633
  return shareOrSendMeOrSendFriendOrWhatever(
413
634
  SendTypes.share,
@@ -418,6 +639,8 @@ export function shareCalendarTemplate({
418
639
  useWebBrowserIfKakaoTalkNotAvailable,
419
640
  {},
420
641
  serverCallbackArgs,
642
+ undefined,
643
+ pickerSettings,
421
644
  );
422
645
  }
423
646
 
@@ -434,13 +657,15 @@ export function sendCalendarTemplateToMe({ template }: { template: KakaoCalendar
434
657
  );
435
658
  }
436
659
 
437
- export function sendCalendarTemplateToFriends({
660
+ export function sendCalendarTemplateToFriends<T extends boolean = false>({
438
661
  template,
439
662
  receiverUuids,
663
+ includeFailureInfo,
440
664
  }: {
441
665
  template: KakaoCalendarTemplate;
442
666
  receiverUuids: string[];
443
- }): Promise<string[]> {
667
+ includeFailureInfo?: T;
668
+ }): Promise<KakaoFriendMessageResult<T>> {
444
669
  return shareOrSendMeOrSendFriendOrWhatever(
445
670
  SendTypes.sendFriend,
446
671
  TemplateTypes.calendar,
@@ -450,10 +675,41 @@ export function sendCalendarTemplateToFriends({
450
675
  false,
451
676
  {},
452
677
  {},
678
+ includeFailureInfo,
453
679
  );
454
680
  }
455
681
 
682
+ export function uploadImage({
683
+ imageUri,
684
+ secureResource = true,
685
+ }: {
686
+ imageUri: string;
687
+ secureResource?: boolean;
688
+ }) {
689
+ return Native.uploadImage(imageUri, secureResource);
690
+ }
691
+
692
+ export function scrapImage({
693
+ imageUrl,
694
+ secureResource = true,
695
+ }: {
696
+ imageUrl: string;
697
+ secureResource?: boolean;
698
+ }) {
699
+ return Native.scrapImage(imageUrl, secureResource);
700
+ }
701
+
456
702
  const KakaoShare = {
703
+ isKakaoTalkSharingAvailable,
704
+ getShareTemplateDiagnostics,
705
+ makeDefaultTemplateUrl,
706
+ makeCustomTemplateUrl,
707
+ makeScrapTemplateUrl,
708
+ uploadImage,
709
+ shareScrapTemplate,
710
+ sendScrapTemplateToMe,
711
+ sendScrapTemplateToFriends,
712
+ scrapImage,
457
713
  shareCustomTemplate,
458
714
  sendCustomTemplateToMe,
459
715
  sendCustomTemplateToFriends,