@apps-in-toss/web-framework 0.0.8 → 0.0.10

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 (96) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +20 -0
  3. package/bin.js +2 -1
  4. package/dist/chunk-CH3CIAIW.js +7688 -0
  5. package/dist/chunk-DI2VGQ6M.js +53 -0
  6. package/dist/chunk-HL7M3JLX.js +53 -0
  7. package/dist/chunk-I3ZDGLIW.js +19 -0
  8. package/dist/chunk-LJBVSTWE.js +7687 -0
  9. package/dist/chunk-TZCMTMV7.js +38 -0
  10. package/dist/{chunk-MHAJE5QI.js → cli/chunk-HDRFXOPA.js} +30 -1
  11. package/dist/cli/chunk-RUDG2MMT.js +173587 -0
  12. package/dist/cli/index.cjs +644 -0
  13. package/dist/cli/index.d.cts +2 -0
  14. package/dist/cli/index.d.ts +2 -0
  15. package/dist/cli/index.js +96448 -0
  16. package/dist/{lib-EUN4APCZ.js → cli/lib-NMFBQRQ2.js} +1 -1
  17. package/dist/cli/typescript-THSIDFIK.js +6 -0
  18. package/dist/cli.cjs +480 -4518
  19. package/dist/cli.d.cts +1 -2
  20. package/dist/cli.d.ts +1 -2
  21. package/dist/cli.js +446 -3492
  22. package/dist/closeView.d.ts +24 -0
  23. package/dist/config/index.d.ts +47 -60
  24. package/dist/config/index.js +6 -7974
  25. package/dist/fetchAlbumPhotos.d.ts +75 -0
  26. package/dist/fetchContacts.d.ts +92 -0
  27. package/dist/generateHapticFeedback.d.ts +52 -0
  28. package/dist/getClipboardText.d.ts +42 -0
  29. package/dist/getCurrentLocation.d.ts +109 -0
  30. package/dist/getDeviceId.d.ts +32 -0
  31. package/dist/getLocale.d.ts +31 -0
  32. package/dist/getNetworkStatus.d.ts +55 -0
  33. package/dist/getSchemeUri.d.ts +26 -0
  34. package/dist/index.cjs +18 -0
  35. package/dist/index.d.cts +2 -0
  36. package/dist/index.d.ts +16 -0
  37. package/dist/index.js +1 -0
  38. package/dist/openCamera.d.ts +75 -0
  39. package/dist/plugins/index.cjs +7682 -0
  40. package/dist/plugins/index.d.cts +15 -0
  41. package/dist/plugins/index.d.ts +15 -0
  42. package/dist/plugins/index.js +11 -0
  43. package/dist/prebuilt/dev.android.js +155792 -0
  44. package/dist/prebuilt/dev.ios.js +155733 -0
  45. package/dist/prebuilt/prod.android.js +20 -0
  46. package/dist/prebuilt/prod.ios.js +20 -0
  47. package/dist/prebuilt/prod.json +14 -0
  48. package/dist/setClipboardText.d.ts +34 -0
  49. package/dist/setScreenAwakeMode.d.ts +69 -0
  50. package/dist/setSecureScreen.d.ts +34 -0
  51. package/dist/share.d.ts +37 -0
  52. package/dist/startUpdateLocation.d.ts +151 -0
  53. package/hermesc/0_72_6/linux64-bin/hermesc +0 -0
  54. package/hermesc/0_72_6/osx-bin/hermesc +0 -0
  55. package/hermesc/0_72_6/win64-bin/hermesc.exe +0 -0
  56. package/hermesc/0_72_6/win64-bin/icudt64.dll +0 -0
  57. package/hermesc/0_72_6/win64-bin/icuin64.dll +0 -0
  58. package/hermesc/0_72_6/win64-bin/icuio64.dll +0 -0
  59. package/hermesc/0_72_6/win64-bin/icutest64.dll +0 -0
  60. package/hermesc/0_72_6/win64-bin/icutu64.dll +0 -0
  61. package/hermesc/0_72_6/win64-bin/icuuc64.dll +0 -0
  62. package/hermesc/0_72_6/win64-bin/msvcp140.dll +0 -0
  63. package/hermesc/0_72_6/win64-bin/vcruntime140.dll +0 -0
  64. package/hermesc/0_72_6/win64-bin/vcruntime140_1.dll +0 -0
  65. package/package.json +52 -29
  66. package/src-web/appLogin.d.ts +30 -0
  67. package/src-web/closeView.d.ts +1 -2
  68. package/src-web/fetchAlbumPhotos.d.ts +2 -4
  69. package/src-web/fetchContacts.d.ts +1 -3
  70. package/src-web/generateHapticFeedback.d.ts +24 -27
  71. package/src-web/getClipboardText.d.ts +1 -3
  72. package/src-web/getCurrentLocation.d.ts +48 -13
  73. package/src-web/getDeviceId.d.ts +1 -2
  74. package/src-web/getLocale.d.ts +1 -2
  75. package/src-web/getNetworkStatus.d.ts +1 -2
  76. package/src-web/getOperationalEnvironment.d.ts +35 -0
  77. package/src-web/getPlatformOS.d.ts +28 -0
  78. package/src-web/getSchemeUri.d.ts +1 -2
  79. package/src-web/index.d.ts +3 -0
  80. package/src-web/index.js +1 -1
  81. package/src-web/openCamera.d.ts +1 -3
  82. package/src-web/setClipboardText.d.ts +1 -3
  83. package/src-web/setScreenAwakeMode.d.ts +1 -2
  84. package/src-web/setSecureScreen.d.ts +1 -2
  85. package/src-web/share.d.ts +1 -2
  86. package/src-web/startUpdateLocation.d.ts +45 -13
  87. package/dist/chunk-5AYTRYXW.js +0 -27
  88. package/dist/lib-OD73GAMK.js +0 -1007
  89. package/react-native/.babelrc +0 -41
  90. package/react-native/ait.d.ts +0 -8
  91. package/react-native/context.ts +0 -10
  92. package/react-native/index.ts +0 -4
  93. package/react-native/pages/_404.tsx +0 -1
  94. package/react-native/pages/index.tsx +0 -10
  95. package/react-native/react-native.config.cjs +0 -3
  96. package/react-native/src/_app.tsx +0 -12
@@ -0,0 +1,151 @@
1
+
2
+
3
+ export interface EventEmitterSchema<K extends string, P extends unknown[]> {
4
+ name: K;
5
+ params: P;
6
+ }
7
+ declare enum Accuracy {
8
+ /**
9
+ * 오차범위 3KM 이내
10
+ */
11
+ Lowest = 1,
12
+ /**
13
+ * 오차범위 1KM 이내
14
+ */
15
+ Low,
16
+ /**
17
+ * 오차범위 몇 백미터 이내
18
+ */
19
+ Balanced,
20
+ /**
21
+ * 오차범위 10M 이내
22
+ */
23
+ High,
24
+ /**
25
+ * 가장 높은 정확도
26
+ */
27
+ Highest,
28
+ /**
29
+ * 네비게이션을 위한 최고 정확도
30
+ */
31
+ BestForNavigation
32
+ }
33
+ export interface Location {
34
+ /**
35
+ * Android에서만 지원하는 옵션이에요.
36
+ *
37
+ * - `FINE`: 정확한 위치
38
+ * - `COARSE`: 대략적인 위치
39
+ *
40
+ * @see https://developer.android.com/codelabs/approximate-location
41
+ */
42
+ accessLocation?: "FINE" | "COARSE";
43
+ /**
44
+ * 위치가 업데이트된 시점의 유닉스 타임스탬프예요.
45
+ */
46
+ timestamp: number;
47
+ coords: {
48
+ latitude: number; // 위도
49
+ longitude: number; // 경도
50
+ altitude: number; // 높이
51
+ accuracy: number; // 위치 정확도 (미터)
52
+ altitudeAccuracy: number; // 고도 정확도 (미터)
53
+ heading: number; // 방향 (북: 0°, 동: 90°, 남: 180°, 서: 270°)
54
+ };
55
+ }
56
+ export interface StartUpdateLocationOptions {
57
+ /**
58
+ * 위치 정확도를 설정해요.
59
+ */
60
+ accuracy: Accuracy;
61
+ /**
62
+ * 위치 업데이트 주기를 밀리초(ms) 단위로 설정해요.
63
+ */
64
+ timeInterval: number;
65
+ /**
66
+ * 위치 변경 거리를 미터(m) 단위로 설정해요.
67
+ */
68
+ distanceInterval: number;
69
+ }
70
+ export interface StartUpdateLocationSubscription extends EmitterSubscription {
71
+ remove: () => Promise<void>;
72
+ }
73
+ /**
74
+ * @name UpdateLocationEventEmitter
75
+ * @kind typedef
76
+ * @description
77
+ * 디바이스의 위치 정보 변경을 감지해요
78
+ * @extends {EventEmitterSchema<'updateLocation', [Location]>}
79
+ */
80
+ export interface UpdateLocationEventEmitter extends EventEmitterSchema<"updateLocation", [
81
+ Location
82
+ ]> {
83
+ }
84
+ /**
85
+ * @public
86
+ * @tag AppsInTossModule
87
+ * @category AppsInTossModules
88
+ * @kind function
89
+ * @name startUpdateLocation
90
+ * @description 디바이스의 위치 정보를 지속적으로 감지하고, 위치가 변경되면 콜백을 실행하는 함수예요. 콜백 함수를 등록하면 위치가 변경될 때마다 자동으로 호출돼요.
91
+ * 실시간 위치 추적이 필요한 기능을 구현할 때 사용할 수 있어요. 예를 들어 지도 앱에서 사용자의 현재 위치를 실시간으로 업데이트할 때, 운동 앱에서 사용자의 이동 거리를 기록할 때 등이에요.
92
+ * 위치 업데이트 주기와 정확도를 조정해 배터리 소모를 최소화하면서도 필요한 정보를 얻을 수 있어요.
93
+ *
94
+ * @param {StartUpdateLocationOptions} options - 위치 정보 감지에 필요한 설정 객체에요.
95
+ * @param {number} [options.accuracy] 위치 정확도를 설정해요.
96
+ * @param {number} [options.timeInterval] 위치 정보를 업데이트하는 최소 주기로, 단위는 밀리초(ms)예요. 이 값은 위치 업데이트가 발생하는 가장 짧은 간격을 설정하지만, 시스템이나 환경의 영향을 받아 지정한 주기보다 더 긴 간격으로 업데이트될 수 있어요.
97
+ * @param {number} [options.distanceInterval] 위치 변경 거리를 미터(m) 단위로 설정해요.
98
+ * @param {(location: Location) => void} [options.callback] 위치 정보가 변경될 때 호출되는 콜백 함수예요.
99
+ *
100
+ * @example
101
+ * ### 위치 정보 변경 감지하기
102
+ *
103
+ * ```tsx
104
+ * import React, { useState, useEffect } from 'react';
105
+ *
106
+ * import { startUpdateLocation } from '@apps-in-toss/web-framework';
107
+ *
108
+ * // 위치 정보 변경 감지하기
109
+ * function LocationWatcher() {
110
+ * const [location, setLocation] = useState(null);
111
+ *
112
+ * useEffect(() => {
113
+ * return startUpdateLocation({
114
+ * options: {
115
+ * accuracy: Accuracy.Default,
116
+ * timeInterval: 3000,
117
+ * distanceInterval: 10,
118
+ * },
119
+ * onEvent: (location) => {
120
+ * setLocation(location);
121
+ * },
122
+ * onError: (error) => {
123
+ * console.error('위치 정보를 가져오는데 실패했어요:', error);
124
+ * },
125
+ * });
126
+ * }, []);
127
+ *
128
+ * if (location == null) {
129
+ * return <span>위치 정보를 가져오는 중이에요...</span>;
130
+ * }
131
+ *
132
+ * return (
133
+ * <div>
134
+ * <span>위도: {location.coords.latitude}</span>
135
+ * <span>경도: {location.coords.longitude}</span>
136
+ * <span>위치 정확도: {location.coords.accuracy}m</span>
137
+ * <span>높이: {location.coords.altitude}m</span>
138
+ * <span>고도 정확도: {location.coords.altitudeAccuracy}m</span>
139
+ * <span>방향: {location.coords.heading}°</span>
140
+ * </div>
141
+ * );
142
+ * }
143
+ * ```
144
+ */
145
+ export declare function startUpdateLocation(eventParams: {
146
+ onEvent: (response: Location) => void;
147
+ onError: (error: unknown) => void;
148
+ options: StartUpdateLocationOptions;
149
+ }): () => void;
150
+
151
+ export {};
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apps-in-toss/web-framework",
3
3
  "type": "module",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "description": "Web Framework for Apps In Toss",
6
6
  "scripts": {
7
7
  "prepack": "yarn build",
@@ -10,19 +10,31 @@
10
10
  "build": "tsup",
11
11
  "sync-bridge": "bridgepack build"
12
12
  },
13
- "main": "./src-web/index.cjs",
14
- "module": "./src-web/index.js",
13
+ "main": "./src-web/index.js",
15
14
  "types": "./src-web/index.d.ts",
16
15
  "exports": {
17
16
  ".": {
18
17
  "types": "./src-web/index.d.ts",
19
- "import": "./src-web/index.js",
20
- "require": "./src-web/index.cjs"
18
+ "default": "./src-web/index.js"
21
19
  },
22
20
  "./config": {
23
21
  "types": "./dist/config/index.d.ts",
24
- "import": "./dist/config/index.js",
25
- "require": "./dist/config/index.cjs"
22
+ "default": "./dist/config/index.js"
23
+ },
24
+ "./prebuilt/dev/ios": {
25
+ "default": "./dist/prebuilt/dev.ios.js"
26
+ },
27
+ "./prebuilt/dev/android": {
28
+ "default": "./dist/prebuilt/dev.android.js"
29
+ },
30
+ "./prebuilt/prod/ios": {
31
+ "default": "./dist/prebuilt/prod.ios.js"
32
+ },
33
+ "./prebuilt/prod/android": {
34
+ "default": "./dist/prebuilt/prod.android.js"
35
+ },
36
+ "./prebuilt/prod.json": {
37
+ "default": "./dist/prebuilt/prod.json"
26
38
  },
27
39
  "./package.json": "./package.json"
28
40
  },
@@ -32,28 +44,13 @@
32
44
  },
33
45
  "files": [
34
46
  "dist",
47
+ "hermesc",
35
48
  "bin.js",
36
49
  "src-web",
37
- "config.d.ts",
38
- "react-native"
50
+ "config.d.ts"
39
51
  ],
40
52
  "devDependencies": {
41
- "@react-native-bedrock/bridgepack": "0.0.11",
42
- "@types/babel__core": "^7.20.5",
43
- "@types/debug": "^4",
44
- "@types/node": "^22.10.2",
45
- "eslint": "^9.7.0",
46
- "execa": "^9.5.2",
47
- "find-up": "^7.0.0",
48
- "tsup": "^8.3.5",
49
- "typescript": "4.9.5",
50
- "vitest": "^3.0.5"
51
- },
52
- "dependencies": {
53
- "@apps-in-toss/babel-plugin-json": "0.0.8",
54
- "@apps-in-toss/cli": "0.0.8",
55
- "@apps-in-toss/framework": "0.0.8",
56
- "@babel/core": "7.23.9",
53
+ "@apps-in-toss/framework": "0.0.10",
57
54
  "@babel/plugin-proposal-class-properties": "^7.16.7",
58
55
  "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
59
56
  "@babel/plugin-proposal-numeric-separator": "^7.16.7",
@@ -65,18 +62,44 @@
65
62
  "@babel/preset-react": "^7.16.7",
66
63
  "@babel/preset-typescript": "^7.16.7",
67
64
  "@babel/runtime": "7.18.9",
68
- "@react-native-bedrock/mpack-next": "0.0.11",
69
- "@react-native-bedrock/native": "0.0.11",
65
+ "@babel/traverse": "^7.26.9",
66
+ "@babel/types": "^7.26.9",
67
+ "@clack/prompts": "^0.10.0",
68
+ "@hono/node-server": "^1.13.8",
69
+ "@react-native-bedrock/bridgepack": "0.0.12",
70
+ "@react-native-bedrock/cli": "0.0.12",
71
+ "@react-native-bedrock/mpack-next": "0.0.12",
72
+ "@react-native-bedrock/native": "0.0.12",
73
+ "@toss-design-system/react-native": "^0",
74
+ "@types/babel__core": "^7.20.5",
75
+ "@types/babel__traverse": "^7",
76
+ "@types/debug": "^4",
77
+ "@types/node": "^22.10.2",
70
78
  "@types/react": "18.3.3",
79
+ "clipanion": "^4.0.0-rc.4",
80
+ "cosmiconfig": "^9.0.0",
81
+ "cosmiconfig-typescript-loader": "^5.1.0",
71
82
  "es-toolkit": "^1.32.0",
83
+ "eslint": "^9.7.0",
84
+ "execa": "^9.5.2",
85
+ "find-up-simple": "^1.0.1",
86
+ "hono": "^4.7.4",
72
87
  "picocolors": "^1.1.1",
73
88
  "react": "18.2.0",
74
89
  "react-native": "0.72.6",
75
- "react-native-bedrock": "0.0.11",
90
+ "react-native-bedrock": "0.0.12",
91
+ "tsup": "^8.3.5",
92
+ "typescript": "4.9.5",
93
+ "uuidv7": "^1.0.2",
94
+ "vitest": "^3.0.5",
76
95
  "zod": "^3.24.1"
77
96
  },
97
+ "dependencies": {
98
+ "@apps-in-toss/cli": "0.0.10",
99
+ "@babel/core": "7.23.9"
100
+ },
78
101
  "publishConfig": {
79
102
  "access": "public"
80
103
  },
81
- "gitHead": "44aaa32dffa95a1fe6eb878337caea7b58736ef0"
104
+ "gitHead": "b5d671eb92caf922f31f73836dbb4b409a563e8a"
82
105
  }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @public
3
+ * @category 로그인
4
+ * @name appLogin
5
+ * @description 토스 인증으로 로그인해요. 로그인이 완료되면 다시 토스 앱으로 이동해요.
6
+ * @example
7
+ *
8
+ * ### 토스 인증을 통해 로그인을 하는 예제
9
+ *
10
+ * ```tsx
11
+ *
12
+ * import { appLogin } from '@apps-in-toss/web-framework';
13
+ *
14
+ * function Page() {
15
+ * const handleLogin = async () => {
16
+ * const { authorizationCode, referrer } = await appLogin();
17
+ *
18
+ * // 획득한 인가 코드(`authorizationCode`)와 `referrer`를 서버로 전달해요.
19
+ * }
20
+ *
21
+ * return <input type="button" value="로그인" onClick={handleLogin} />;
22
+ * }
23
+ * ```
24
+ */
25
+ export declare function appLogin(): Promise<{
26
+ authorizationCode: string;
27
+ referrer: "DEFAULT" | "SANDBOX";
28
+ }>;
29
+
30
+ export {};
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * @public
3
- * @tag BedrockModule
4
- * @category BedrockModules
3
+ * @category 화면 제어
5
4
  * @kind function
6
5
  * @name closeView
7
6
  * @description 현재 화면을 닫는 함수에요. 예를 들어, "닫기" 버튼을 눌러서 서비스를 종료할 때 사용할 수 있어요.
@@ -20,9 +20,7 @@ export interface FetchAlbumPhotosOptions {
20
20
  }
21
21
  /**
22
22
  * @public
23
- * @tag AppsInTossModule
24
- * @category AppsInTossModules
25
- * @kind function
23
+ * @category 사진
26
24
  * @name fetchAlbumPhotos
27
25
  * @description
28
26
  * 사용자의 앨범에서 사진 목록을 불러오는 함수예요.
@@ -32,7 +30,7 @@ export interface FetchAlbumPhotosOptions {
32
30
  * @param {number} [options.maxCount=10] 가져올 사진의 최대 개수를 설정해요. 숫자로 입력하며 기본값은 10이에요.
33
31
  * @param {number} [options.maxWidth=1024] 사진의 최대 폭을 제한해요. 단위는 픽셀이며 기본값은 `1024`이에요.
34
32
  * @param {boolean} [options.base64=false] 이미지를 base64 형식으로 반환할지 설정해요. 기본값은 `false`예요.
35
- * @returns {Promise<AlbumResponse[]>}
33
+ * @returns {Promise<ImageResponse[]>}
36
34
  * 앨범 사진의 고유 ID와 데이터 URI를 포함한 배열을 반환해요.
37
35
  *
38
36
  * @example
@@ -9,9 +9,7 @@ export interface ContactEntity {
9
9
  }
10
10
  /**
11
11
  * @public
12
- * @tag AppsInTossModule
13
- * @category AppsInTossModules
14
- * @kind function
12
+ * @category 연락처
15
13
  * @name fetchContacts
16
14
  * @description 사용자의 연락처 목록을 페이지 단위로 가져오는 함수예요.
17
15
  * @param size - 한 번에 가져올 연락처 개수예요. 예를 들어, 10을 전달하면 최대 10개의 연락처를 가져와요.
@@ -1,38 +1,35 @@
1
1
  export type HapticFeedbackType = "tickWeak" | "tap" | "tickMedium" | "softMedium" | "basicWeak" | "basicMedium" | "success" | "error" | "wiggle" | "confetti";
2
2
  /**
3
- * @public
4
- * @tag HapticFeedbackType
5
- * @category Types
6
- * @name HapticFeedbackOptions
7
- * @description
8
- * generateHapticFeedback 함수에 전달할 햅틱진동의 타입을 나타내요. 진동타입의 종류는 다음과 같아요.
9
- * ```typescript
10
- * type HapticFeedbackType =
11
- * | "tickWeak"
12
- * | "tap"
13
- * | "tickMedium"
14
- * | "softMedium"
15
- * | "basicWeak"
16
- * | "basicMedium"
17
- * | "success"
18
- * | "error"
19
- * | "wiggle"
20
- * | "confetti";
21
- * ```
22
- * @typedef { type: HapticFeedbackType } HapticFeedbackOptions
23
- * @typedef { "tickWeak" | "tap" | "tickMedium" | "softMedium" | "basicWeak" | "basicMedium" | "success" | "error" | "wiggle" | "confetti" } HapticFeedbackType
24
- *
25
- */
3
+ * @public
4
+ * @category 인터렉션
5
+ * @name HapticFeedbackOptions
6
+ * @description
7
+ * generateHapticFeedback 함수에 전달할 햅틱진동의 타입을 나타내요. 진동타입의 종류는 다음과 같아요.
8
+ * ```typescript
9
+ * type HapticFeedbackType =
10
+ * | "tickWeak"
11
+ * | "tap"
12
+ * | "tickMedium"
13
+ * | "softMedium"
14
+ * | "basicWeak"
15
+ * | "basicMedium"
16
+ * | "success"
17
+ * | "error"
18
+ * | "wiggle"
19
+ * | "confetti";
20
+ * ```
21
+ * @typedef { type: HapticFeedbackType } HapticFeedbackOptions
22
+ * @typedef { "tickWeak" | "tap" | "tickMedium" | "softMedium" | "basicWeak" | "basicMedium" | "success" | "error" | "wiggle" | "confetti" } HapticFeedbackType
23
+ *
24
+ */
26
25
  export interface HapticFeedbackOptions {
27
26
  type: HapticFeedbackType;
28
27
  }
29
28
  /**
30
29
  * @public
31
- * @tag BedrockModule
32
- * @category BedrockModules
33
- * @kind function
30
+ * @category 인터렉션
34
31
  * @name generateHapticFeedback
35
- * @description 디바이스에 햅틱 진동을 일으키는 함수예요. 예를 들어, 버튼 터치나 화면전환에 드라마틱한 효과를 주고 싶을 때 사용할 수 있어요. [HapticFeedbackOptions](../Types/HapticFeedbackOptions.html)에서 진동타입을 확인해 보세요.
32
+ * @description 디바이스에 햅틱 진동을 일으키는 함수예요. 예를 들어, 버튼 터치나 화면전환에 드라마틱한 효과를 주고 싶을 때 사용할 수 있어요. [HapticFeedbackOptions](/reference/@apps-in-toss/web-framework/인터렉션/HapticFeedbackOptions.html)에서 진동타입을 확인해 보세요.
36
33
  * @returns {void}
37
34
  *
38
35
  * @example
@@ -1,8 +1,6 @@
1
1
  /**
2
2
  * @public
3
- * @tag AppsInTossModule
4
- * @category AppsInTossModules
5
- * @kind function
3
+ * @category 클립보드
6
4
  * @name getClipboardText
7
5
  * @description 클립보드에 저장된 텍스트를 가져오는 함수예요. 복사된 텍스트를 읽어서 다른 작업에 활용할 수 있어요.
8
6
  * @returns {Promise<string>} - 클립보드에 저장된 텍스트를 반환해요. 클립보드에 텍스트가 없으면 빈 문자열을 반환해요.
@@ -1,5 +1,8 @@
1
1
  /**
2
- * 위치 정확도 옵션이에요.
2
+ * @public
3
+ * @category 위치 정보
4
+ * @name Accuracy
5
+ * @description 위치 정확도 옵션이에요.
3
6
  */
4
7
  export enum Accuracy {
5
8
  /**
@@ -27,6 +30,12 @@ export enum Accuracy {
27
30
  */
28
31
  BestForNavigation
29
32
  }
33
+ /**
34
+ * @public
35
+ * @category 위치 정보
36
+ * @name Location
37
+ * @description 위치 정보를 나타내는 객체예요.
38
+ */
30
39
  export interface Location {
31
40
  /**
32
41
  * Android에서만 지원하는 옵션이에요.
@@ -41,14 +50,42 @@ export interface Location {
41
50
  * 위치가 업데이트된 시점의 유닉스 타임스탬프예요.
42
51
  */
43
52
  timestamp: number;
44
- coords: {
45
- latitude: number; // 위도
46
- longitude: number; // 경도
47
- altitude: number; // 높이
48
- accuracy: number; // 위치 정확도 (미터)
49
- altitudeAccuracy: number; // 고도 정확도 (미터)
50
- heading: number; // 방향 (북: 0°, 동: 90°, 남: 180°, 서: 270°)
51
- };
53
+ /**
54
+ * @description 위치 정보를 나타내는 객체예요. 자세한 내용은 [LocationCoords](/reference/framework/Types/LocationCoords.html)을 참고해주세요.
55
+ */
56
+ coords: LocationCoords;
57
+ }
58
+ /**
59
+ * @public
60
+ * @category 위치 정보
61
+ * @name LocationCoords
62
+ * @description 세부 위치 정보를 나타내는 객체예요.
63
+ */
64
+ export interface LocationCoords {
65
+ /**
66
+ * 위도
67
+ */
68
+ latitude: number;
69
+ /**
70
+ * 경도
71
+ */
72
+ longitude: number;
73
+ /**
74
+ * 높이
75
+ */
76
+ altitude: number;
77
+ /**
78
+ * 위치 정확도
79
+ */
80
+ accuracy: number;
81
+ /**
82
+ * 고도 정확도
83
+ */
84
+ altitudeAccuracy: number;
85
+ /**
86
+ * 방향
87
+ */
88
+ heading: number;
52
89
  }
53
90
  export interface GetCurrentLocationOptions {
54
91
  /**
@@ -58,9 +95,7 @@ export interface GetCurrentLocationOptions {
58
95
  }
59
96
  /**
60
97
  * @public
61
- * @tag AppsInTossModule
62
- * @category AppsInTossModules
63
- * @kind function
98
+ * @category 위치 정보
64
99
  * @name getCurrentLocation
65
100
  * @description 디바이스의 현재 위치 정보를 가져오는 함수예요.
66
101
  * 위치 기반 서비스를 구현할 때 사용되고, 한 번만 호출되어 현재 위치를 즉시 반환해요.
@@ -68,7 +103,7 @@ export interface GetCurrentLocationOptions {
68
103
  *
69
104
  * @param {GetCurrentLocationOptions} options 위치 정보를 가져올 때 사용하는 옵션 객체예요.
70
105
  * @param {Accuracy} [options.accuracy] 위치 정보의 정확도 수준이에요. 정확도는 `Accuracy` 타입으로 설정돼요.
71
- * @returns {Promise<Location>} 디바이스의 위치 정보가 담긴 객체를 반환해요.
106
+ * @returns {Promise<Location>} 디바이스의 위치 정보가 담긴 객체를 반환해요. 자세한 내용은 [Location](/reference/framework/Types/Location.html)을 참고해주세요.
72
107
  *
73
108
  * @example
74
109
  * ### 디바이스의 현재 위치 정보 가져오기
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * @public
3
- * @tag BedrockModule
4
- * @category BedrockModules
3
+ * @category 환경 확인
5
4
  * @kind function
6
5
  * @name getDeviceId
7
6
  * @description
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * @public
3
- * @tag BedrockModule
4
- * @category BedrockModules
3
+ * @category 언어
5
4
  * @kind function
6
5
  * @name getLocale
7
6
  * @description
@@ -1,8 +1,7 @@
1
1
  export type NetworkStatus = "OFFLINE" | "WIFI" | "2G" | "3G" | "4G" | "5G" | "WWAN" | "UNKNOWN";
2
2
  /**
3
3
  * @public
4
- * @tag BedrockModule
5
- * @category BedrockModules
4
+ * @category 네트워크
6
5
  * @kind function
7
6
  * @name getNetworkStatus
8
7
  * @description
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @public
3
+ * @category 환경 확인
4
+ * @kind function
5
+ * @name getOperationalEnvironment
6
+ * @description
7
+ * 현재 실행 중인 앱의 운영 환경을 확인해요.
8
+ * 토스 앱에서 실행 중이라면 `'toss'`, 샌드박스 환경에서 실행 중이라면 `'sandbox'`를 반환해요.
9
+ *
10
+ * 운영 환경은 앱이 실행되는 컨텍스트를 의미하며, 특정 기능의 사용 가능 여부를 판단하는 데 활용할 수 있어요.
11
+ *
12
+ * @returns {'toss' | 'sandbox'}
13
+ * 현재 운영 환경을 나타내는 문자열이에요.
14
+ * - `'toss'`: 토스 앱에서 실행 중이에요.
15
+ * - `'sandbox'`: 샌드박스 환경에서 실행 중이에요.
16
+ *
17
+ * @example
18
+ * ### 현재 운영 환경 확인하기
19
+ *
20
+ * ```tsx
21
+ * import { getOperationalEnvironment } from '@apps-in-toss/web-framework';
22
+ *
23
+ *
24
+ * function EnvironmentInfo() {
25
+ * const environment = getOperationalEnvironment();
26
+ *
27
+ * return (
28
+ * <span>현재 운영 환경: {environment}</span>
29
+ * );
30
+ * }
31
+ * ```
32
+ */
33
+ export declare function getOperationalEnvironment(): "toss" | "sandbox";
34
+
35
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @public
3
+ * @kind function
4
+ * @category 환경 확인
5
+ *
6
+ * @name getPlatformOS
7
+ * @signature
8
+ * ```typescript
9
+ * function getPlatformOS(): 'ios' | 'android';
10
+ * ```
11
+ *
12
+ * @description
13
+ * 현재 실행 중인 플랫폼을 확인하는 함수예요.
14
+ * 이 함수는 `react-native`의 `Platform.OS` 값을 기반으로 동작하며, `ios` 또는 `android` 중 하나의 문자열을 반환해요.
15
+ *
16
+ * @returns 현재 플랫폼을 나타내는 문자열로, `'ios'` 또는 `'android'` 중 하나예요.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import { getPlatformOS } from '@apps-in-toss/web-framework';
21
+ *
22
+ * const platform = getPlatformOS();
23
+ * console.log(`현재 플랫폼: ${platform}`);
24
+ * ```
25
+ */
26
+ export declare function getPlatformOS(): "ios" | "android";
27
+
28
+ export {};
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @public
3
3
  * @name getSchemeUri
4
- * @tag BedrockModule
5
- * @category BedrockModules
4
+ * @category 환경 확인
6
5
  * @kind function
7
6
  * @description 처음에 화면에 진입한 스킴 값이에요. 페이지 이동으로 인한 URI 변경은 반영되지 않아요.
8
7
  * @returns {string} 처음에 화면에 진입한 스킴 값을 반환해요.