@grabjs/superapp-sdk 2.0.0-beta.23 → 2.0.0-beta.29

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 (167) hide show
  1. package/README.md +14 -155
  2. package/api-reference/api.json +43962 -0
  3. package/dist/index.d.ts +2140 -2608
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +1 -1
  6. package/package.json +14 -9
  7. package/skills/SKILL.md +405 -0
  8. package/api-reference/json/api.json +0 -27688
  9. package/api-reference/markdown/README.md +0 -194
  10. package/api-reference/markdown/classes/BaseModule.md +0 -123
  11. package/api-reference/markdown/classes/CameraModule.md +0 -177
  12. package/api-reference/markdown/classes/CheckoutModule.md +0 -181
  13. package/api-reference/markdown/classes/ContainerModule.md +0 -751
  14. package/api-reference/markdown/classes/DeviceCapabilityModule.md +0 -161
  15. package/api-reference/markdown/classes/FileModule.md +0 -178
  16. package/api-reference/markdown/classes/IdentityModule.md +0 -299
  17. package/api-reference/markdown/classes/LocaleModule.md +0 -161
  18. package/api-reference/markdown/classes/LocationModule.md +0 -239
  19. package/api-reference/markdown/classes/MediaModule.md +0 -219
  20. package/api-reference/markdown/classes/PlatformModule.md +0 -162
  21. package/api-reference/markdown/classes/ProfileModule.md +0 -224
  22. package/api-reference/markdown/classes/ScopeModule.md +0 -219
  23. package/api-reference/markdown/classes/StorageModule.md +0 -608
  24. package/api-reference/markdown/classes/SystemWebViewKitModule.md +0 -177
  25. package/api-reference/markdown/classes/UserAttributesModule.md +0 -164
  26. package/api-reference/markdown/functions/isClientError.md +0 -37
  27. package/api-reference/markdown/functions/isErrorResponse.md +0 -40
  28. package/api-reference/markdown/functions/isRedirection.md +0 -37
  29. package/api-reference/markdown/functions/isServerError.md +0 -37
  30. package/api-reference/markdown/functions/isSuccess.md +0 -39
  31. package/api-reference/markdown/globals.md +0 -176
  32. package/api-reference/markdown/interfaces/GrabAppInfo.md +0 -23
  33. package/api-reference/markdown/interfaces/InvokeOptions.md +0 -63
  34. package/api-reference/markdown/interfaces/Version.md +0 -23
  35. package/api-reference/markdown/interfaces/WrappedModule.md +0 -51
  36. package/api-reference/markdown/type-aliases/AuthorizeRequest.md +0 -79
  37. package/api-reference/markdown/type-aliases/AuthorizeResponse.md +0 -58
  38. package/api-reference/markdown/type-aliases/AuthorizeResult.md +0 -33
  39. package/api-reference/markdown/type-aliases/BackResponse.md +0 -37
  40. package/api-reference/markdown/type-aliases/BackResult.md +0 -8
  41. package/api-reference/markdown/type-aliases/BridgeClientError.md +0 -9
  42. package/api-reference/markdown/type-aliases/BridgeError.md +0 -8
  43. package/api-reference/markdown/type-aliases/BridgeRedirection.md +0 -8
  44. package/api-reference/markdown/type-aliases/BridgeResponse.md +0 -40
  45. package/api-reference/markdown/type-aliases/BridgeServerError.md +0 -8
  46. package/api-reference/markdown/type-aliases/BridgeStatusCode.md +0 -7
  47. package/api-reference/markdown/type-aliases/BridgeStream.md +0 -29
  48. package/api-reference/markdown/type-aliases/BridgeStreamHandlers.md +0 -25
  49. package/api-reference/markdown/type-aliases/BridgeSuccessResponse.md +0 -14
  50. package/api-reference/markdown/type-aliases/ClearAuthorizationArtifactsResponse.md +0 -18
  51. package/api-reference/markdown/type-aliases/ClearAuthorizationArtifactsResult.md +0 -8
  52. package/api-reference/markdown/type-aliases/CloseResponse.md +0 -37
  53. package/api-reference/markdown/type-aliases/CloseResult.md +0 -8
  54. package/api-reference/markdown/type-aliases/DRMContentConfig.md +0 -34
  55. package/api-reference/markdown/type-aliases/DRMPlaybackEvent.md +0 -43
  56. package/api-reference/markdown/type-aliases/DownloadFileRequest.md +0 -32
  57. package/api-reference/markdown/type-aliases/DownloadFileResponse.md +0 -48
  58. package/api-reference/markdown/type-aliases/DownloadFileResult.md +0 -11
  59. package/api-reference/markdown/type-aliases/ErrorResponse.md +0 -32
  60. package/api-reference/markdown/type-aliases/FetchEmailResponse.md +0 -58
  61. package/api-reference/markdown/type-aliases/FetchEmailResult.md +0 -21
  62. package/api-reference/markdown/type-aliases/GetAuthorizationArtifactsResponse.md +0 -42
  63. package/api-reference/markdown/type-aliases/GetAuthorizationArtifactsResult.md +0 -57
  64. package/api-reference/markdown/type-aliases/GetBooleanRequest.md +0 -21
  65. package/api-reference/markdown/type-aliases/GetBooleanResponse.md +0 -57
  66. package/api-reference/markdown/type-aliases/GetBooleanResult.md +0 -27
  67. package/api-reference/markdown/type-aliases/GetCoordinateResponse.md +0 -49
  68. package/api-reference/markdown/type-aliases/GetCoordinateResult.md +0 -29
  69. package/api-reference/markdown/type-aliases/GetCountryCodeResponse.md +0 -57
  70. package/api-reference/markdown/type-aliases/GetCountryCodeResult.md +0 -25
  71. package/api-reference/markdown/type-aliases/GetDoubleRequest.md +0 -21
  72. package/api-reference/markdown/type-aliases/GetDoubleResponse.md +0 -57
  73. package/api-reference/markdown/type-aliases/GetDoubleResult.md +0 -27
  74. package/api-reference/markdown/type-aliases/GetIntRequest.md +0 -21
  75. package/api-reference/markdown/type-aliases/GetIntResponse.md +0 -57
  76. package/api-reference/markdown/type-aliases/GetIntResult.md +0 -27
  77. package/api-reference/markdown/type-aliases/GetLanguageLocaleIdentifierResponse.md +0 -48
  78. package/api-reference/markdown/type-aliases/GetLanguageLocaleIdentifierResult.md +0 -31
  79. package/api-reference/markdown/type-aliases/GetSelectedTravelDestinationResponse.md +0 -48
  80. package/api-reference/markdown/type-aliases/GetSelectedTravelDestinationResult.md +0 -17
  81. package/api-reference/markdown/type-aliases/GetSessionParamsResponse.md +0 -40
  82. package/api-reference/markdown/type-aliases/GetSessionParamsResult.md +0 -27
  83. package/api-reference/markdown/type-aliases/GetStringRequest.md +0 -21
  84. package/api-reference/markdown/type-aliases/GetStringResponse.md +0 -57
  85. package/api-reference/markdown/type-aliases/GetStringResult.md +0 -27
  86. package/api-reference/markdown/type-aliases/HasAccessToResponse.md +0 -66
  87. package/api-reference/markdown/type-aliases/HasAccessToResult.md +0 -27
  88. package/api-reference/markdown/type-aliases/HideBackButtonResponse.md +0 -37
  89. package/api-reference/markdown/type-aliases/HideBackButtonResult.md +0 -8
  90. package/api-reference/markdown/type-aliases/HideLoaderResponse.md +0 -37
  91. package/api-reference/markdown/type-aliases/HideLoaderResult.md +0 -8
  92. package/api-reference/markdown/type-aliases/HideRefreshButtonResponse.md +0 -37
  93. package/api-reference/markdown/type-aliases/HideRefreshButtonResult.md +0 -8
  94. package/api-reference/markdown/type-aliases/IsConnectedResponse.md +0 -31
  95. package/api-reference/markdown/type-aliases/IsConnectedResult.md +0 -27
  96. package/api-reference/markdown/type-aliases/IsEsimSupportedResponse.md +0 -48
  97. package/api-reference/markdown/type-aliases/IsEsimSupportedResult.md +0 -17
  98. package/api-reference/markdown/type-aliases/ObserveDRMPlaybackResponse.md +0 -15
  99. package/api-reference/markdown/type-aliases/ObserveLocationChangeResponse.md +0 -15
  100. package/api-reference/markdown/type-aliases/OnContentLoadedResponse.md +0 -37
  101. package/api-reference/markdown/type-aliases/OnContentLoadedResult.md +0 -8
  102. package/api-reference/markdown/type-aliases/OnCtaTapRequest.md +0 -13
  103. package/api-reference/markdown/type-aliases/OnCtaTapResponse.md +0 -37
  104. package/api-reference/markdown/type-aliases/OnCtaTapResult.md +0 -8
  105. package/api-reference/markdown/type-aliases/OpenExternalLinkRequest.md +0 -13
  106. package/api-reference/markdown/type-aliases/OpenExternalLinkResponse.md +0 -46
  107. package/api-reference/markdown/type-aliases/OpenExternalLinkResult.md +0 -8
  108. package/api-reference/markdown/type-aliases/Platform.md +0 -7
  109. package/api-reference/markdown/type-aliases/PlayDRMContentResponse.md +0 -43
  110. package/api-reference/markdown/type-aliases/PlayDRMContentResult.md +0 -8
  111. package/api-reference/markdown/type-aliases/RedirectToSystemWebViewRequest.md +0 -23
  112. package/api-reference/markdown/type-aliases/RedirectToSystemWebViewResponse.md +0 -55
  113. package/api-reference/markdown/type-aliases/RedirectToSystemWebViewResult.md +0 -8
  114. package/api-reference/markdown/type-aliases/ReloadScopesResponse.md +0 -46
  115. package/api-reference/markdown/type-aliases/ReloadScopesResult.md +0 -8
  116. package/api-reference/markdown/type-aliases/RemoveAllResponse.md +0 -37
  117. package/api-reference/markdown/type-aliases/RemoveAllResult.md +0 -8
  118. package/api-reference/markdown/type-aliases/RemoveResponse.md +0 -46
  119. package/api-reference/markdown/type-aliases/RemoveResult.md +0 -8
  120. package/api-reference/markdown/type-aliases/ResponseStatusCode200.md +0 -34
  121. package/api-reference/markdown/type-aliases/ResponseStatusCode204.md +0 -20
  122. package/api-reference/markdown/type-aliases/ResponseStatusCode302.md +0 -20
  123. package/api-reference/markdown/type-aliases/ResponseStatusCode400.md +0 -7
  124. package/api-reference/markdown/type-aliases/ResponseStatusCode401.md +0 -7
  125. package/api-reference/markdown/type-aliases/ResponseStatusCode403.md +0 -7
  126. package/api-reference/markdown/type-aliases/ResponseStatusCode404.md +0 -7
  127. package/api-reference/markdown/type-aliases/ResponseStatusCode424.md +0 -7
  128. package/api-reference/markdown/type-aliases/ResponseStatusCode426.md +0 -12
  129. package/api-reference/markdown/type-aliases/ResponseStatusCode500.md +0 -7
  130. package/api-reference/markdown/type-aliases/ResponseStatusCode501.md +0 -12
  131. package/api-reference/markdown/type-aliases/ScanQRCodeRequest.md +0 -27
  132. package/api-reference/markdown/type-aliases/ScanQRCodeResponse.md +0 -64
  133. package/api-reference/markdown/type-aliases/ScanQRCodeResult.md +0 -21
  134. package/api-reference/markdown/type-aliases/SendAnalyticsEventRequest.md +0 -56
  135. package/api-reference/markdown/type-aliases/SendAnalyticsEventResponse.md +0 -46
  136. package/api-reference/markdown/type-aliases/SendAnalyticsEventResult.md +0 -8
  137. package/api-reference/markdown/type-aliases/SetBackgroundColorRequest.md +0 -13
  138. package/api-reference/markdown/type-aliases/SetBackgroundColorResponse.md +0 -46
  139. package/api-reference/markdown/type-aliases/SetBackgroundColorResult.md +0 -8
  140. package/api-reference/markdown/type-aliases/SetBooleanResponse.md +0 -46
  141. package/api-reference/markdown/type-aliases/SetBooleanResult.md +0 -8
  142. package/api-reference/markdown/type-aliases/SetDoubleResponse.md +0 -46
  143. package/api-reference/markdown/type-aliases/SetDoubleResult.md +0 -8
  144. package/api-reference/markdown/type-aliases/SetIntResponse.md +0 -46
  145. package/api-reference/markdown/type-aliases/SetIntResult.md +0 -8
  146. package/api-reference/markdown/type-aliases/SetStringResponse.md +0 -46
  147. package/api-reference/markdown/type-aliases/SetStringResult.md +0 -8
  148. package/api-reference/markdown/type-aliases/SetTitleRequest.md +0 -13
  149. package/api-reference/markdown/type-aliases/SetTitleResponse.md +0 -46
  150. package/api-reference/markdown/type-aliases/SetTitleResult.md +0 -8
  151. package/api-reference/markdown/type-aliases/ShowBackButtonResponse.md +0 -37
  152. package/api-reference/markdown/type-aliases/ShowBackButtonResult.md +0 -8
  153. package/api-reference/markdown/type-aliases/ShowLoaderResponse.md +0 -37
  154. package/api-reference/markdown/type-aliases/ShowLoaderResult.md +0 -8
  155. package/api-reference/markdown/type-aliases/ShowRefreshButtonResponse.md +0 -37
  156. package/api-reference/markdown/type-aliases/ShowRefreshButtonResult.md +0 -8
  157. package/api-reference/markdown/type-aliases/StatusCodeMap.md +0 -80
  158. package/api-reference/markdown/type-aliases/Subscription.md +0 -12
  159. package/api-reference/markdown/type-aliases/TriggerCheckoutRequest.md +0 -26
  160. package/api-reference/markdown/type-aliases/TriggerCheckoutResponse.md +0 -76
  161. package/api-reference/markdown/type-aliases/TriggerCheckoutResult.md +0 -75
  162. package/api-reference/markdown/type-aliases/VerifyEmailRequest.md +0 -32
  163. package/api-reference/markdown/type-aliases/VerifyEmailResponse.md +0 -55
  164. package/api-reference/markdown/type-aliases/VerifyEmailResult.md +0 -8
  165. package/api-reference/markdown/variables/ContainerAnalyticsEventData.md +0 -21
  166. package/api-reference/markdown/variables/ContainerAnalyticsEventName.md +0 -13
  167. package/api-reference/markdown/variables/ContainerAnalyticsEventState.md +0 -25
package/README.md CHANGED
@@ -12,125 +12,24 @@ Each module encapsulates a specific domain of functionality, offering strongly-t
12
12
  - **Streaming Support** — Real-time data streams for location updates and media events
13
13
  - **Automatic Fallbacks** — Graceful degradation when native features are unavailable
14
14
 
15
- ## Installation
16
-
17
- ### NPM (ES Modules)
18
-
19
- ```bash
20
- npm install @grabjs/superapp-sdk
21
- ```
22
-
23
- ```typescript
24
- import { ContainerModule, LocationModule } from '@grabjs/superapp-sdk';
25
- ```
26
-
27
- ### CDN (UMD Bundle)
28
-
29
- ```html
30
- <script src="https://cdn.jsdelivr.net/npm/@grabjs/superapp-sdk/dist/index.js"></script>
31
- <script>
32
- const { ContainerModule, LocationModule } = window.SuperAppSDK;
33
- </script>
34
- ```
35
-
36
- ## Usage
37
-
38
- ### Basic Module Initialization
39
-
40
- All modules are instantiated with a simple constructor call:
41
-
42
- ```typescript
43
- import { ContainerModule, LocationModule, IdentityModule } from '@grabjs/superapp-sdk';
44
-
45
- // Initialize modules
46
- const container = new ContainerModule();
47
- const location = new LocationModule();
48
- const identity = new IdentityModule();
49
- ```
50
-
51
- ### Handling Responses
52
-
53
- All SDK methods return a standardized response with HTTP-style status codes:
54
-
55
- ```typescript
56
- import { CameraModule } from '@grabjs/superapp-sdk';
57
-
58
- const camera = new CameraModule();
59
- const response = await camera.scanQRCode({ title: 'Scan Payment QR' });
60
-
61
- switch (response.status_code) {
62
- case 200:
63
- // Successfully scanned - result contains the QR code data
64
- console.log('QR Code scanned:', response.result.qrCode);
65
- break;
66
- case 204:
67
- // User cancelled the scanning operation
68
- console.log('Scanning cancelled');
69
- break;
70
- case 400:
71
- // Bad request - invalid request parameters
72
- console.error('Invalid request:', response.error);
73
- break;
74
- case 403:
75
- // Camera permission not granted to the Grab app
76
- console.error('Camera permission denied:', response.error);
77
- break;
78
- case 501:
79
- // Not implemented - not running in Grab app
80
- console.error('Requires Grab SuperApp environment');
81
- break;
82
- default:
83
- console.error('Unexpected error:', response);
84
- }
85
- ```
86
-
87
- ### Working with Streams
88
-
89
- Some modules provide streaming methods for real-time data:
90
-
91
- ```typescript
92
- import { LocationModule } from '@grabjs/superapp-sdk';
93
-
94
- const location = new LocationModule();
95
-
96
- // Subscribe to location updates
97
- const stream = location.observeLocationChange();
98
-
99
- const subscription = stream.subscribe({
100
- next: (response) => {
101
- if (response.status_code === 200) {
102
- console.log('Location:', response.result);
103
- }
104
- },
105
- complete: () => {
106
- console.log('Stream ended');
107
- },
108
- });
109
-
110
- // Unsubscribe when done
111
- subscription.unsubscribe();
112
- ```
113
-
114
15
  ## Available Modules
115
16
 
116
- - **[ContainerModule](https://grab.github.io/superapp-sdk/classes/ContainerModule.html)** — Control the WebView container UI and lifecycle (header, loading indicators, analytics, connection verification)
117
-
118
- - **[IdentityModule](https://grab.github.io/superapp-sdk/classes/IdentityModule.html)** — Authenticate users via GrabID OAuth2/OIDC with PKCE support
119
-
120
- - **[LocationModule](https://grab.github.io/superapp-sdk/classes/LocationModule.html)** — Access device location services and subscribe to location updates
121
-
122
- - **[StorageModule](https://grab.github.io/superapp-sdk/classes/StorageModule.html)** — Persist key-value data locally with type-safe storage
123
-
124
17
  - **[CameraModule](https://grab.github.io/superapp-sdk/classes/CameraModule.html)** — Access device camera capabilities for QR code scanning
125
18
 
126
19
  - **[CheckoutModule](https://grab.github.io/superapp-sdk/classes/CheckoutModule.html)** — Trigger native checkout flows for payment processing
127
20
 
21
+ - **[ContainerModule](https://grab.github.io/superapp-sdk/classes/ContainerModule.html)** — Control the WebView container UI and lifecycle (header, loading indicators, analytics, connection verification)
22
+
128
23
  - **[DeviceCapabilityModule](https://grab.github.io/superapp-sdk/classes/DeviceCapabilityModule.html)** — Query device hardware capabilities
129
24
 
130
25
  - **[FileModule](https://grab.github.io/superapp-sdk/classes/FileModule.html)** — Handle file operations including downloading from remote URLs
131
26
 
27
+ - **[IdentityModule](https://grab.github.io/superapp-sdk/classes/IdentityModule.html)** — Authenticate users via GrabID OAuth2/OIDC with PKCE support
28
+
132
29
  - **[LocaleModule](https://grab.github.io/superapp-sdk/classes/LocaleModule.html)** — Access device locale and localization settings
133
30
 
31
+ - **[LocationModule](https://grab.github.io/superapp-sdk/classes/LocationModule.html)** — Access device location services and subscribe to location updates
32
+
134
33
  - **[MediaModule](https://grab.github.io/superapp-sdk/classes/MediaModule.html)** — Handle media playback including DRM-protected content
135
34
 
136
35
  - **[PlatformModule](https://grab.github.io/superapp-sdk/classes/PlatformModule.html)** — Access platform information and navigation controls
@@ -139,56 +38,16 @@ subscription.unsubscribe();
139
38
 
140
39
  - **[ScopeModule](https://grab.github.io/superapp-sdk/classes/ScopeModule.html)** — Manage permission scopes from GrabID
141
40
 
142
- - **[SystemWebViewKitModule](https://grab.github.io/superapp-sdk/classes/SystemWebViewKitModule.html)** — Handle system WebView operations and external browser redirections
41
+ - **[SplashScreenModule](https://grab.github.io/superapp-sdk/classes/SplashScreenModule.html)** — Control the native splash/loading screen
143
42
 
144
- - **[UserAttributesModule](https://grab.github.io/superapp-sdk/classes/UserAttributesModule.html)** — Access user attribute data
145
-
146
- > **Important:** Always call `ScopeModule.reloadScopes()` after an OAuth redirect to load the latest permissions from GrabID. Without this, module methods may return 403 errors even when permissions have been granted.
147
-
148
- ## Response Status Codes
149
-
150
- The SDK uses HTTP-style status codes for all responses:
151
-
152
- | Code | Type | Description |
153
- | ----- | ----------------- | --------------------------------------------------- |
154
- | `200` | OK | Request successful, `result` contains response data |
155
- | `204` | No Content | Request successful, no data returned |
156
- | `302` | Redirect | OAuth redirect in progress |
157
- | `400` | Bad Request | Invalid request parameters |
158
- | `401` | Unauthorized | Authentication required |
159
- | `403` | Forbidden | Insufficient permissions for this operation |
160
- | `404` | Not Found | Resource not found |
161
- | `424` | Failed Dependency | Underlying native request failed |
162
- | `426` | Upgrade Required | Requires newer Grab app version |
163
- | `500` | Internal Error | Unexpected SDK error |
164
- | `501` | Not Implemented | Method requires Grab SuperApp environment |
165
-
166
- ## Type Guards
167
-
168
- The SDK provides type guards for response validation:
169
-
170
- ```typescript
171
- import { isSuccess, isErrorResponse, isClientError, isServerError } from '@grabjs/superapp-sdk';
172
-
173
- const response = await someModule.someMethod();
174
-
175
- if (isSuccess(response)) {
176
- // TypeScript knows response.result is available
177
- console.log(response.result);
178
- }
179
-
180
- if (isErrorResponse(response)) {
181
- // TypeScript knows response.error is available
182
- console.error(response.error);
183
- }
184
- ```
185
-
186
- ## Best Practices
43
+ - **[StorageModule](https://grab.github.io/superapp-sdk/classes/StorageModule.html)** — Persist key-value data locally with type-safe storage
187
44
 
188
- 2. **Handle all status codes** in your switch statements, including unexpected ones.
45
+ - **[SystemWebViewKitModule](https://grab.github.io/superapp-sdk/classes/SystemWebViewKitModule.html)** Handle system WebView operations and external browser redirections
189
46
 
190
- 3. **Use type guards** for cleaner response handling and better type inference.
47
+ - **[UserAttributesModule](https://grab.github.io/superapp-sdk/classes/UserAttributesModule.html)** Access user attribute data
191
48
 
192
- 4. **Call `reloadScopes()` when your MiniApp launches and after OAuth** before accessing protected resources.
49
+ ## Documentation
193
50
 
194
- 5. **Unsubscribe from streams** when your component unmounts or you no longer need updates.
51
+ - [Setup Guide](https://grab.github.io/superapp-sdk/documents/Setup.html) installation, importing, environment requirements
52
+ - [Core Concepts](https://grab.github.io/superapp-sdk/documents/Core_Concepts.html) — response pattern, status codes, type guards
53
+ - [Integration Guide](https://grab.github.io/superapp-sdk/documents/Integration_Guide.html) — initialization sequence, permission handling, navigation