@react-native-kakao/share 3.1.0-next.0 → 3.1.0-next.2

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