@apps-in-toss/native-modules 2.0.1 → 2.0.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.
@@ -77,7 +77,7 @@
77
77
  },
78
78
  {
79
79
  "identifier": "getTossShareLink",
80
- "dts": "/**\n * @public\n * @category 공유\n * @kind function\n * @name getTossShareLink\n * @description\n * `getTossShareLink` 함수는 사용자가 지정한 경로를 토스 앱에서 열 수 있는 공유 링크를 반환해요.\n * 이 링크를 다른 사람과 공유하면 토스 앱이 실행되면서 지정한 경로로 진입해요. 토스앱이 없는 사람은 iOS 일 때는 앱스토어로 이동하고, Android 일 때는 플레이스토어로 이동해요.\n *\n * 경로는 토스 앱 내부 특정 화면을 나타내는 딥링크(deep link) 형식이어야 해요.\n * 예를 들어 `intoss://<앱 이름>`이나 `intoss://<앱 이름>/about?name=test`처럼 작성해요.\n *\n * 이 함수를 사용하면 `deep_link_value`를 포함한 완성된 공유 링크를 만들 수 있어요.\n *\n * @param path - 딥링크로 열고 싶은 경로예요. `intoss://`로 시작하는 문자열이어야 해요.\n * @returns {Promise<string>} `deep_link_value`가 포함된 토스 공유 링크를 반환해요.\n *\n * @example\n * ```tsx\n * import { share } from '@granite-js/react-native';\n * import { getTossShareLink } from '@apps-in-toss/framework';\n *\n * // '/' 경로를 딥링크로 포함한 토스 공유 링크를 생성해요.\n * const tossLink = await getTossShareLink('intoss://my-app');\n *\n * // 생성한 링크를 메시지로 공유해요.\n * await share({ message: tossLink });\n * ```\n */\nexport declare function getTossShareLink(path: string): Promise<string>;\n\nexport {};\n"
80
+ "dts": "/**\n * @public\n * @category 공유\n * @kind function\n * @name getTossShareLink\n * @description\n * `getTossShareLink` 함수는 사용자가 지정한 경로를 토스 앱에서 열 수 있는 공유 링크를 반환해요.\n * 이 링크를 다른 사람과 공유하면 토스 앱이 실행되면서 지정한 경로로 진입해요. 토스앱이 없는 사람은 iOS 일 때는 앱스토어로 이동하고, Android 일 때는 플레이스토어로 이동해요.\n *\n * 경로는 토스 앱 내부 특정 화면을 나타내는 딥링크(deep link) 형식이어야 해요.\n * 예를 들어 `intoss://<앱 이름>`이나 `intoss://<앱 이름>/about?name=test`처럼 작성해요.\n *\n * 이 함수를 사용하면 `deep_link_value`를 포함한 완성된 공유 링크를 만들 수 있어요.\n *\n * @param path - 딥링크로 열고 싶은 경로예요. `intoss://`로 시작하는 문자열이어야 해요.\n * @returns {Promise<string>} `deep_link_value`가 포함된 토스 공유 링크를 반환해요.\n *\n * @example\n * ```tsx\n * import { share } from '@granite-js/react-native';\n * import { getTossShareLink } from '@apps-in-toss/framework';\n *\n * // '/' 경로를 딥링크로 포함한 토스 공유 링크를 생성해요.\n * const tossLink = await getTossShareLink('intoss://my-app');\n *\n * // 생성한 링크를 메시지로 공유해요.\n * await share({ message: tossLink });\n * ```\n */\nexport declare function getTossShareLink(path: string, ogImageUrl?: string): Promise<string>;\n\nexport {};\n"
81
81
  },
82
82
  {
83
83
  "identifier": "setDeviceOrientation",
package/dist/index.cjs CHANGED
@@ -645,7 +645,21 @@ function getTossAppVersion() {
645
645
  }
646
646
 
647
647
  // src/MiniAppModule/native-modules/getTossShareLink.ts
648
- async function getTossShareLink(path) {
648
+ var V2_MIN_VERSION = {
649
+ android: "5.240.0",
650
+ ios: "5.239.0"
651
+ };
652
+ async function getTossShareLink(path, ogImageUrl) {
653
+ if (!isMinVersionSupported(V2_MIN_VERSION)) {
654
+ return await getTossShareLinkV1(path);
655
+ }
656
+ const { shareLink } = await safePostMessage("getTossShareLink", {
657
+ url: path,
658
+ ogImageUrl
659
+ });
660
+ return shareLink;
661
+ }
662
+ async function getTossShareLinkV1(path) {
649
663
  const { shareLink } = await safePostMessage("getTossShareLink", {});
650
664
  const shareUrl = new URL(shareLink);
651
665
  shareUrl.searchParams.set("deep_link_value", path);
@@ -1011,7 +1025,7 @@ function getGroupId() {
1011
1025
 
1012
1026
  // src/MiniAppModule/native-modules/shareWithScheme.ts
1013
1027
  function shareWithScheme(params) {
1014
- safeSyncPostMessage("shareWithScheme", params);
1028
+ return safePostMessage("shareWithScheme", params);
1015
1029
  }
1016
1030
 
1017
1031
  // src/MiniAppModule/native-modules/getServerTime.ts
package/dist/index.d.cts CHANGED
@@ -1116,6 +1116,9 @@ interface AsyncMethodsMap {
1116
1116
  getServerTime: (params: CompatiblePlaceholderArgument) => Promise<{
1117
1117
  serverTime: number;
1118
1118
  }>;
1119
+ shareWithScheme: (params: {
1120
+ schemeURL: string;
1121
+ }) => Promise<void>;
1119
1122
  }
1120
1123
  /**
1121
1124
  * Sync Methods Map
@@ -1125,9 +1128,6 @@ interface SyncMethodsMap {
1125
1128
  getWebBundleURL: (params: CompatiblePlaceholderArgument) => {
1126
1129
  url: string;
1127
1130
  };
1128
- shareWithScheme: (params: {
1129
- schemeURL: string;
1130
- }) => void;
1131
1131
  stopUpdateLocation: (params: object) => void;
1132
1132
  }
1133
1133
  /**
@@ -2397,7 +2397,7 @@ declare function getTossAppVersion(): string;
2397
2397
  * await share({ message: tossLink });
2398
2398
  * ```
2399
2399
  */
2400
- declare function getTossShareLink(path: string): Promise<string>;
2400
+ declare function getTossShareLink(path: string, ogImageUrl?: string): Promise<string>;
2401
2401
 
2402
2402
  /**
2403
2403
  * @public
@@ -2700,7 +2700,7 @@ declare function getGroupId(): string;
2700
2700
  */
2701
2701
  declare function shareWithScheme(params: {
2702
2702
  schemeURL: string;
2703
- }): void;
2703
+ }): Promise<void>;
2704
2704
 
2705
2705
  /**
2706
2706
  * @public
package/dist/index.d.ts CHANGED
@@ -1116,6 +1116,9 @@ interface AsyncMethodsMap {
1116
1116
  getServerTime: (params: CompatiblePlaceholderArgument) => Promise<{
1117
1117
  serverTime: number;
1118
1118
  }>;
1119
+ shareWithScheme: (params: {
1120
+ schemeURL: string;
1121
+ }) => Promise<void>;
1119
1122
  }
1120
1123
  /**
1121
1124
  * Sync Methods Map
@@ -1125,9 +1128,6 @@ interface SyncMethodsMap {
1125
1128
  getWebBundleURL: (params: CompatiblePlaceholderArgument) => {
1126
1129
  url: string;
1127
1130
  };
1128
- shareWithScheme: (params: {
1129
- schemeURL: string;
1130
- }) => void;
1131
1131
  stopUpdateLocation: (params: object) => void;
1132
1132
  }
1133
1133
  /**
@@ -2397,7 +2397,7 @@ declare function getTossAppVersion(): string;
2397
2397
  * await share({ message: tossLink });
2398
2398
  * ```
2399
2399
  */
2400
- declare function getTossShareLink(path: string): Promise<string>;
2400
+ declare function getTossShareLink(path: string, ogImageUrl?: string): Promise<string>;
2401
2401
 
2402
2402
  /**
2403
2403
  * @public
@@ -2700,7 +2700,7 @@ declare function getGroupId(): string;
2700
2700
  */
2701
2701
  declare function shareWithScheme(params: {
2702
2702
  schemeURL: string;
2703
- }): void;
2703
+ }): Promise<void>;
2704
2704
 
2705
2705
  /**
2706
2706
  * @public
package/dist/index.js CHANGED
@@ -567,7 +567,21 @@ function getTossAppVersion() {
567
567
  }
568
568
 
569
569
  // src/MiniAppModule/native-modules/getTossShareLink.ts
570
- async function getTossShareLink(path) {
570
+ var V2_MIN_VERSION = {
571
+ android: "5.240.0",
572
+ ios: "5.239.0"
573
+ };
574
+ async function getTossShareLink(path, ogImageUrl) {
575
+ if (!isMinVersionSupported(V2_MIN_VERSION)) {
576
+ return await getTossShareLinkV1(path);
577
+ }
578
+ const { shareLink } = await safePostMessage("getTossShareLink", {
579
+ url: path,
580
+ ogImageUrl
581
+ });
582
+ return shareLink;
583
+ }
584
+ async function getTossShareLinkV1(path) {
571
585
  const { shareLink } = await safePostMessage("getTossShareLink", {});
572
586
  const shareUrl = new URL(shareLink);
573
587
  shareUrl.searchParams.set("deep_link_value", path);
@@ -933,7 +947,7 @@ function getGroupId() {
933
947
 
934
948
  // src/MiniAppModule/native-modules/shareWithScheme.ts
935
949
  function shareWithScheme(params) {
936
- safeSyncPostMessage("shareWithScheme", params);
950
+ return safePostMessage("shareWithScheme", params);
937
951
  }
938
952
 
939
953
  // src/MiniAppModule/native-modules/getServerTime.ts
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apps-in-toss/native-modules",
3
3
  "type": "module",
4
- "version": "2.0.1",
4
+ "version": "2.0.2",
5
5
  "description": "Native Modules for Apps In Toss",
6
6
  "scripts": {
7
7
  "typecheck": "tsc --noEmit",
@@ -42,7 +42,7 @@
42
42
  "vitest": "^3.2.4"
43
43
  },
44
44
  "dependencies": {
45
- "@apps-in-toss/types": "2.0.1",
45
+ "@apps-in-toss/types": "2.0.2",
46
46
  "brick-module": "0.5.0",
47
47
  "es-toolkit": "^1.39.3"
48
48
  },
@@ -1,5 +1,11 @@
1
+ import { isMinVersionSupported } from './isMinVersionSupported';
1
2
  import { safePostMessage } from '../../natives';
2
3
 
4
+ const V2_MIN_VERSION = {
5
+ android: '5.240.0',
6
+ ios: '5.239.0',
7
+ } as const;
8
+
3
9
  /**
4
10
  * @public
5
11
  * @category 공유
@@ -29,7 +35,19 @@ import { safePostMessage } from '../../natives';
29
35
  * await share({ message: tossLink });
30
36
  * ```
31
37
  */
32
- export async function getTossShareLink(path: string): Promise<string> {
38
+ export async function getTossShareLink(path: string, ogImageUrl?: string): Promise<string> {
39
+ if (!isMinVersionSupported(V2_MIN_VERSION)) {
40
+ return await getTossShareLinkV1(path);
41
+ }
42
+
43
+ const { shareLink } = await safePostMessage('getTossShareLink', {
44
+ url: path,
45
+ ogImageUrl,
46
+ });
47
+ return shareLink;
48
+ }
49
+
50
+ async function getTossShareLinkV1(path: string): Promise<string> {
33
51
  const { shareLink } = await safePostMessage('getTossShareLink', {});
34
52
  const shareUrl = new URL(shareLink);
35
53
 
@@ -1,4 +1,4 @@
1
- import { safeSyncPostMessage } from '../../natives';
1
+ import { safePostMessage } from '../../natives';
2
2
 
3
3
  /**
4
4
  * @public
@@ -18,6 +18,6 @@ import { safeSyncPostMessage } from '../../natives';
18
18
  * shareWithScheme({ schemeURL: 'intoss://my-app?referrer=share' });
19
19
  * ```
20
20
  */
21
- export function shareWithScheme(params: { schemeURL: string }): void {
22
- safeSyncPostMessage('shareWithScheme', params);
21
+ export function shareWithScheme(params: { schemeURL: string }): Promise<void> {
22
+ return safePostMessage('shareWithScheme', params);
23
23
  }
@@ -117,6 +117,7 @@ export interface AsyncMethodsMap {
117
117
  getIsTossLoginIntegratedService: (params: object) => Promise<boolean | undefined>;
118
118
 
119
119
  getServerTime: (params: CompatiblePlaceholderArgument) => Promise<{ serverTime: number }>;
120
+ shareWithScheme: (params: { schemeURL: string }) => Promise<void>;
120
121
  }
121
122
 
122
123
  /**
@@ -125,7 +126,6 @@ export interface AsyncMethodsMap {
125
126
  */
126
127
  export interface SyncMethodsMap {
127
128
  getWebBundleURL: (params: CompatiblePlaceholderArgument) => { url: string };
128
- shareWithScheme: (params: { schemeURL: string }) => void;
129
129
  stopUpdateLocation: (params: object) => void;
130
130
  }
131
131