@grabjs/superapp-sdk 2.0.0-beta.34 → 2.0.0-beta.37

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.
package/dist/index.d.ts CHANGED
@@ -1104,19 +1104,19 @@ export declare class ContainerModule extends BaseModule {
1104
1104
  }
1105
1105
 
1106
1106
  /**
1107
- * JSBridge module for querying native device capability information.
1107
+ * JSBridge module for querying native device information.
1108
1108
  *
1109
1109
  * @group Modules
1110
1110
  *
1111
1111
  * @remarks
1112
- * Provides access to device capability checks exposed by the native Grab app bridge.
1112
+ * Provides access to device checks exposed by the native Grab app bridge.
1113
1113
  * This code must run on the Grab SuperApp's WebView to function correctly.
1114
1114
  *
1115
1115
  * @example
1116
1116
  * **ES Module:**
1117
1117
  * ```typescript
1118
- * import { DeviceCapabilityModule } from '@grabjs/superapp-sdk';
1119
- * const deviceCapabilityModule = new DeviceCapabilityModule();
1118
+ * import { DeviceModule } from '@grabjs/superapp-sdk';
1119
+ * const deviceModule = new DeviceModule();
1120
1120
  * ```
1121
1121
  *
1122
1122
  * @example
@@ -1124,14 +1124,14 @@ export declare class ContainerModule extends BaseModule {
1124
1124
  * ```html
1125
1125
  * <script src="https://cdn.jsdelivr.net/npm/@grabjs/superapp-sdk/dist/index.js"></script>
1126
1126
  * <script>
1127
- * const deviceCapabilityModule = new SuperAppSDK.DeviceCapabilityModule();
1127
+ * const deviceModule = new SuperAppSDK.DeviceModule();
1128
1128
  * </script>
1129
1129
  * ```
1130
1130
  *
1131
1131
  * @public
1132
1132
  * @noInheritDoc
1133
1133
  */
1134
- export declare class DeviceCapabilityModule extends BaseModule {
1134
+ export declare class DeviceModule extends BaseModule {
1135
1135
  constructor();
1136
1136
  /**
1137
1137
  * Checks whether the current device supports eSIM.
@@ -1141,13 +1141,13 @@ export declare class DeviceCapabilityModule extends BaseModule {
1141
1141
  * @example
1142
1142
  * **Simple usage**
1143
1143
  * ```typescript
1144
- * import { DeviceCapabilityModule, isSuccess, isError } from '@grabjs/superapp-sdk';
1144
+ * import { DeviceModule, isSuccess, isError } from '@grabjs/superapp-sdk';
1145
1145
  *
1146
- * // Initialize the device capability module
1147
- * const deviceCapability = new DeviceCapabilityModule();
1146
+ * // Initialize the device module
1147
+ * const device = new DeviceModule();
1148
1148
  *
1149
1149
  * // Check eSIM support
1150
- * const response = await deviceCapability.isEsimSupported();
1150
+ * const response = await device.isEsimSupported();
1151
1151
  *
1152
1152
  * // Handle the response
1153
1153
  * if (isSuccess(response)) {
@@ -2335,6 +2335,27 @@ export declare type HasAccessToResult = InferOutput<typeof HasAccessToResultSche
2335
2335
  */
2336
2336
  export declare const HasAccessToResultSchema: v.BooleanSchema<undefined>;
2337
2337
 
2338
+ /**
2339
+ * Type guard to check if a JSBridge response has a defined result (not null or undefined).
2340
+ *
2341
+ * @param response - The JSBridge response to check
2342
+ * @returns True if the response has a result that is neither null nor undefined, false otherwise
2343
+ *
2344
+ * @example
2345
+ * ```typescript
2346
+ * const response = await someBridgeMethod();
2347
+ * if (isSuccess(response) && hasResult(response)) {
2348
+ * // response.result is guaranteed to be defined
2349
+ * console.log('Result:', response.result);
2350
+ * }
2351
+ * ```
2352
+ *
2353
+ * @public
2354
+ */
2355
+ export declare function hasResult<T extends BridgeResponse>(response: T): response is Extract<T, {
2356
+ result: NonNullable<unknown>;
2357
+ }>;
2358
+
2338
2359
  /**
2339
2360
  * Response when hiding the back button.
2340
2361
  *
@@ -2750,7 +2771,7 @@ export declare interface InvokeOptions {
2750
2771
  * Type guard to check if a JSBridge response is a client error (4xx status codes).
2751
2772
  *
2752
2773
  * @param response - The JSBridge response to check
2753
- * @returns True if the response is a client error (400, 401, 403, 404, 424, 426), false otherwise
2774
+ * @returns True if the response is a client error (400-499), false otherwise
2754
2775
  *
2755
2776
  * @example
2756
2777
  * ```typescript
@@ -2957,7 +2978,7 @@ export declare function isRedirection<T extends BridgeResponse>(response: T): re
2957
2978
  * Type guard to check if a JSBridge response is a server error (5xx status codes).
2958
2979
  *
2959
2980
  * @param response - The JSBridge response to check
2960
- * @returns True if the response is a server error (500, 501), false otherwise
2981
+ * @returns True if the response is a server error (500-599), false otherwise
2961
2982
  *
2962
2983
  * @example
2963
2984
  * ```typescript
@@ -2974,19 +2995,17 @@ export declare function isServerError<T extends BridgeResponse>(response: T): re
2974
2995
  }>;
2975
2996
 
2976
2997
  /**
2977
- * Type guard to check if a JSBridge response is successful (status codes 200 or 204).
2998
+ * Type guard to check if a JSBridge response is successful (2xx status codes).
2978
2999
  *
2979
3000
  * @param response - The JSBridge response to check
2980
- * @returns True if the response is successful (200 or 204), false otherwise
3001
+ * @returns True if the response is successful (200-299), false otherwise
2981
3002
  *
2982
3003
  * @example
2983
3004
  * ```typescript
2984
3005
  * const response = await someBridgeMethod();
2985
3006
  * if (isSuccess(response)) {
2986
- * // response narrowed to the 200/204 variants of the response union
2987
- * if (response.status_code === 200) {
2988
- * console.log(response.result);
2989
- * }
3007
+ * // response narrowed to success variants result is available
3008
+ * console.log(response.result);
2990
3009
  * }
2991
3010
  * ```
2992
3011
  *
@@ -3339,6 +3358,77 @@ export declare class MediaModule extends BaseModule {
3339
3358
  observePlayDRMContent(data: DRMContentConfig): ObserveDRMPlaybackResponse;
3340
3359
  }
3341
3360
 
3361
+ /**
3362
+ * JSBridge module for making network requests via the native bridge.
3363
+ *
3364
+ * @group Modules
3365
+ *
3366
+ * @remarks
3367
+ * Provides access to native network functionality for making HTTP requests.
3368
+ * This module is **only** for MiniApps hosted on the Grab domain to call authenticated Grab API endpoints.
3369
+ * It should **not** be used by external MiniApps (not on Grab domain) or for non-authenticated Grab APIs.
3370
+ * This code must run on the Grab SuperApp's WebView to function correctly.
3371
+ *
3372
+ * @example
3373
+ * **ES Module:**
3374
+ * ```typescript
3375
+ * import { NetworkModule } from '@grabjs/superapp-sdk';
3376
+ * const networkModule = new NetworkModule();
3377
+ * ```
3378
+ *
3379
+ * @example
3380
+ * **CDN (UMD):**
3381
+ * ```html
3382
+ * <script src="https://cdn.jsdelivr.net/npm/@grabjs/superapp-sdk/dist/index.js"></script>
3383
+ * <script>
3384
+ * const networkModule = new SuperAppSDK.NetworkModule();
3385
+ * </script>
3386
+ * ```
3387
+ *
3388
+ * @public
3389
+ * @noInheritDoc
3390
+ */
3391
+ export declare class NetworkModule extends BaseModule {
3392
+ constructor();
3393
+ /**
3394
+ * Sends a network request via the native bridge.
3395
+ *
3396
+ * @param request - The network request parameters including endpoint, method, headers, query, body, and timeout. See {@link SendRequest}.
3397
+ *
3398
+ * @returns The network response containing the result data or error information. See {@link SendResponse}.
3399
+ *
3400
+ * @example
3401
+ * **Simple usage**
3402
+ * ```typescript
3403
+ * import { NetworkModule, isSuccess, isError, hasResult } from '@grabjs/superapp-sdk';
3404
+ *
3405
+ * // Initialize the network module
3406
+ * const network = new NetworkModule();
3407
+ *
3408
+ * // Send a POST request with headers and body
3409
+ * const response = await network.send({
3410
+ * endpoint: 'https://api.example.com/users',
3411
+ * method: 'POST',
3412
+ * headers: { 'Content-Type': 'application/json' },
3413
+ * body: { name: 'John', email: 'john@example.com' },
3414
+ * timeout: 30
3415
+ * });
3416
+ *
3417
+ * // Handle the response
3418
+ * if (isSuccess(response) && hasResult(response)) {
3419
+ * console.log('Success:', response.result);
3420
+ * } else if (isError(response)) {
3421
+ * console.error(`Error ${response.status_code}: ${response.error}`);
3422
+ * } else {
3423
+ * console.error('Unhandled response');
3424
+ * }
3425
+ * ```
3426
+ *
3427
+ * @public
3428
+ */
3429
+ send(request: SendRequest): Promise<SendResponse>;
3430
+ }
3431
+
3342
3432
  /**
3343
3433
  * Response stream for observing DRM playback events.
3344
3434
  *
@@ -4256,6 +4346,137 @@ export declare const SendAnalyticsEventResponseSchema: v.UnionSchema<[v.ObjectSc
4256
4346
  */
4257
4347
  export declare type SendAnalyticsEventResult = void;
4258
4348
 
4349
+ /**
4350
+ * Request parameters for sending a network request.
4351
+ *
4352
+ * @example
4353
+ * **GET request with headers:**
4354
+ * ```typescript
4355
+ * {
4356
+ * endpoint: 'https://api.example.com/users',
4357
+ * method: 'GET',
4358
+ * headers: { 'Authorization': 'Bearer token123' }
4359
+ * }
4360
+ * ```
4361
+ *
4362
+ * @example
4363
+ * **POST request with body:**
4364
+ * ```typescript
4365
+ * {
4366
+ * endpoint: 'https://api.example.com/users',
4367
+ * method: 'POST',
4368
+ * headers: { 'Content-Type': 'application/json' },
4369
+ * body: { name: 'John Doe', email: 'john@example.com' }
4370
+ * }
4371
+ * ```
4372
+ *
4373
+ * @example
4374
+ * **Request with query parameters and timeout:**
4375
+ * ```typescript
4376
+ * {
4377
+ * endpoint: 'https://api.example.com/search',
4378
+ * method: 'GET',
4379
+ * query: { q: 'grab', limit: '10' },
4380
+ * timeout: 30
4381
+ * }
4382
+ * ```
4383
+ *
4384
+ * @public
4385
+ */
4386
+ export declare type SendRequest = InferOutput<typeof SendRequestSchema>;
4387
+
4388
+ /**
4389
+ * Valibot schema for {@link SendRequest}.
4390
+ *
4391
+ * @remarks
4392
+ * This schema defines the structure of a network request with the following properties:
4393
+ * - `endpoint`: API endpoint URL to send the request to
4394
+ * - `method`: HTTP method (e.g., 'GET', 'POST', 'PUT', 'DELETE')
4395
+ * - `headers`: Optional HTTP headers to include in the request
4396
+ * - `query`: Optional query parameters to append to the URL
4397
+ * - `body`: Optional request body data
4398
+ * - `timeout`: Optional timeout in seconds (default is 60 seconds)
4399
+ *
4400
+ * @public
4401
+ */
4402
+ export declare const SendRequestSchema: v.ObjectSchema<{
4403
+ readonly endpoint: v.StringSchema<undefined>;
4404
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"], undefined>;
4405
+ readonly headers: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
4406
+ readonly query: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
4407
+ readonly body: v.OptionalSchema<v.UnknownSchema, undefined>;
4408
+ readonly timeout: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
4409
+ }, undefined>;
4410
+
4411
+ /**
4412
+ * Response when sending a network request.
4413
+ *
4414
+ * @remarks
4415
+ * This response can have any HTTP status code returned by the external API:
4416
+ * - Success codes (2xx): Contains the `result` with response data, except 204 which has no body.
4417
+ * - Client error codes (4xx): Contains an `error` message from the API.
4418
+ * - Server error codes (5xx): Contains an `error` message from the API.
4419
+ * - SDK error codes (400, 500, 501): Invalid request, internal SDK error, or not implemented.
4420
+ *
4421
+ * @public
4422
+ */
4423
+ export declare type SendResponse = InferOutput<typeof SendResponseSchema>;
4424
+
4425
+ /**
4426
+ * Valibot schema for {@link SendResponse}.
4427
+ *
4428
+ * @public
4429
+ */
4430
+ export declare const SendResponseSchema: v.UnionSchema<[v.ObjectSchema<{
4431
+ readonly status_code: v.LiteralSchema<200, undefined>;
4432
+ readonly result: v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>;
4433
+ }, undefined>, v.ObjectSchema<{
4434
+ readonly status_code: v.LiteralSchema<204, undefined>;
4435
+ }, undefined>, v.ObjectSchema<{
4436
+ readonly status_code: v.LiteralSchema<400, undefined>;
4437
+ readonly error: v.StringSchema<undefined>;
4438
+ }, undefined>, v.ObjectSchema<{
4439
+ readonly status_code: v.LiteralSchema<401, undefined>;
4440
+ readonly error: v.StringSchema<undefined>;
4441
+ }, undefined>, v.ObjectSchema<{
4442
+ readonly status_code: v.LiteralSchema<403, undefined>;
4443
+ readonly error: v.StringSchema<undefined>;
4444
+ }, undefined>, v.ObjectSchema<{
4445
+ readonly status_code: v.LiteralSchema<404, undefined>;
4446
+ readonly error: v.StringSchema<undefined>;
4447
+ }, undefined>, v.ObjectSchema<{
4448
+ readonly status_code: v.LiteralSchema<424, undefined>;
4449
+ readonly error: v.StringSchema<undefined>;
4450
+ }, undefined>, v.ObjectSchema<{
4451
+ readonly status_code: v.LiteralSchema<426, undefined>;
4452
+ readonly error: v.StringSchema<undefined>;
4453
+ }, undefined>, v.ObjectSchema<{
4454
+ readonly status_code: v.LiteralSchema<500, undefined>;
4455
+ readonly error: v.StringSchema<undefined>;
4456
+ }, undefined>, v.ObjectSchema<{
4457
+ readonly status_code: v.LiteralSchema<501, undefined>;
4458
+ readonly error: v.StringSchema<undefined>;
4459
+ }, undefined>], undefined>;
4460
+
4461
+ /**
4462
+ * Result object containing the network response data.
4463
+ *
4464
+ * @remarks
4465
+ * The result type is `Record<string, unknown>` as response bodies are always
4466
+ * returned as objects. String responses from the native bridge are automatically
4467
+ * parsed to JSON.
4468
+ *
4469
+ * @public
4470
+ */
4471
+ export declare type SendResult = InferOutput<typeof SendResultSchema>;
4472
+
4473
+ /**
4474
+ * Valibot schema for {@link SendResult}.
4475
+ *
4476
+ * @public
4477
+ */
4478
+ export declare const SendResultSchema: v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>;
4479
+
4259
4480
  /**
4260
4481
  * Request parameters for setting the background color.
4261
4482
  *
package/dist/index.esm.js CHANGED
@@ -4,4 +4,4 @@
4
4
  * This source code is licensed under the MIT license found in the LICENSE file in the root
5
5
  * directory of this source tree.
6
6
  */
7
- var e,t={exports:{}},n=(e||(e=1,function(e){function t(e){var t=!1;return{isUnsubscribed:function(){return t},unsubscribe:function(){t||(e(),t=!0)}}}function n(e){return{subscribe:e,then:function(t,n){return new Promise(function(r,s){try{var o=null,a=!1;o=e({next:function(e){r(null==t?void 0:t(e)),o&&o.unsubscribe(),a=!0}}),a&&o&&o.unsubscribe()}catch(e){null==n?s(e):r(n(e))}})}}}function r(r,s){return s.funcNameToWrap,function(r,s){var o=s.callbackNameFunc,a=s.funcToWrap;return n(function(n){var s,i=o();return r[i]=function(t){if(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(!e)return!1;var r=function(e){return Object.keys(e).concat(Object.getOwnPropertyNames(Object.getPrototypeOf(e)))}(e);return t.every(function(e){return 0<=r.indexOf(e)})}(t.result,"event"))t.result.event===e.StreamEvent.STREAM_TERMINATED&&s.unsubscribe();else{var r=t.result,o=t.error,a=t.status_code;n&&n.next&&n.next({result:null===r?void 0:r,error:null===o?void 0:o,status_code:null===a?void 0:a})}},a(i),s=t(function(){r[i]=void 0,n&&n.complete&&n.complete()})})}(r,function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&(n[r[s]]=e[r[s]])}return n}(s,["funcNameToWrap"]))}(e.StreamEvent||(e.StreamEvent={})).STREAM_TERMINATED="STREAM_TERMINATED",e.createDataStream=n,e.createSubscription=t,e.getModuleEnvironment=function(e,t){return e[t]?"android":e.webkit&&e.webkit.messageHandlers&&e.webkit.messageHandlers[t]?"ios":void 0},e.wrapModule=function(e,t){var n;e[(n=t,"Wrapped"+n)]=function(e,t,n){return{invoke:function(s,o){return r(e,{funcNameToWrap:s,callbackNameFunc:function(){return function(e,t){var n=t.moduleName,r=t.funcName,s=0;return function(){for(var t,o,a="";(a=(t={moduleName:n,funcName:r,requestID:s}).moduleName+"_"+t.funcName+"Callback"+(null!==(o=t.requestID)?"_"+o:""))in e;)s+=1;return s+=1,a}()}(e,{moduleName:t,funcName:s})},funcToWrap:function(e){return n({callback:e,method:s,module:t,parameters:null!=o?o:{}})}})}}}(e,t,function(n){if(e[t]&&e[t][n.method]instanceof Function)e[t][n.method](JSON.stringify(n));else{if(!(e.webkit&&e.webkit.messageHandlers&&e.webkit.messageHandlers[t]))throw new Error("Unexpected method '"+n.method+"' for module '"+t+"'");e.webkit.messageHandlers[t].postMessage(n)}})},Object.defineProperty(e,"__esModule",{value:!0})}(t.exports)),t.exports);function r(e){return{lang:e?.lang??void 0,message:e?.message,abortEarly:e?.abortEarly??void 0,abortPipeEarly:e?.abortPipeEarly??void 0}}function s(e){const t=typeof e;return"string"===t?`"${e}"`:"number"===t||"bigint"===t||"boolean"===t?`${e}`:"object"===t||"function"===t?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function o(e,t,n,r,o){const a=o&&"input"in o?o.input:n.value,i=o?.expected??e.expects??null,c=o?.received??s(a),u={kind:e.kind,type:e.type,input:a,expected:i,received:c,message:`Invalid ${t}: ${i?`Expected ${i} but r`:"R"}eceived ${c}`,requirement:e.requirement,path:o?.path,issues:o?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},d="schema"===e.kind,l=o?.message??e.message??(e.reference,void u.lang)??(d?void u.lang:null)??r.message??void u.lang;void 0!==l&&(u.message="function"==typeof l?l(u):l),d&&(n.typed=!1),n.issues?n.issues.push(u):n.issues=[u]}function a(e){return{version:1,vendor:"valibot",validate:t=>e["~run"]({value:t},r())}}function i(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}function c(e,t){const n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??"never"}function u(e,t){return{kind:"validation",type:"min_length",reference:u,async:!1,expects:`>=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.length<this.requirement&&o(this,"length",e,t,{received:`${e.value.length}`}),e}}}function d(e){return{kind:"validation",type:"url",reference:d,async:!1,expects:null,requirement(e){try{return new URL(e),!0}catch{return!1}},message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&o(this,"URL",e,t),e}}}function l(e,t,n){return"function"==typeof e.fallback?e.fallback(t,n):e.fallback}function h(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function p(e){return{kind:"schema",type:"boolean",reference:p,expects:"boolean",async:!1,message:e,get"~standard"(){return a(this)},"~run"(e,t){return"boolean"==typeof e.value?e.typed=!0:o(this,"type",e,t),e}}}function m(e,t){return{kind:"schema",type:"literal",reference:m,expects:s(e),async:!1,literal:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){return e.value===this.literal?e.typed=!0:o(this,"type",e,t),e}}}function g(e,t){return{kind:"schema",type:"nullable",reference:g,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,get"~standard"(){return a(this)},"~run"(e,t){return null===e.value&&(void 0!==this.default&&(e.value=h(this,e,t)),null===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function f(e){return{kind:"schema",type:"number",reference:f,expects:"number",async:!1,message:e,get"~standard"(){return a(this)},"~run"(e,t){return"number"!=typeof e.value||isNaN(e.value)?o(this,"type",e,t):e.typed=!0,e}}}function v(e,t){return{kind:"schema",type:"object",reference:v,expects:"Object",async:!1,entries:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in this.entries){const s=this.entries[r];if(r in n||("exact_optional"===s.type||"optional"===s.type||"nullish"===s.type)&&void 0!==s.default){const o=r in n?n[r]:h(s),a=s["~run"]({value:o},t);if(a.issues){const s={type:"object",origin:"value",input:n,key:r,value:o};for(const t of a.issues)t.path?t.path.unshift(s):t.path=[s],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value[r]=a.value}else if(void 0!==s.fallback)e.value[r]=l(s);else if("exact_optional"!==s.type&&"optional"!==s.type&&"nullish"!==s.type&&(o(this,"key",e,t,{input:void 0,expected:`"${r}"`,path:[{type:"object",origin:"key",input:n,key:r,value:n[r]}]}),t.abortEarly))break}}else o(this,"type",e,t);return e}}}function y(e,t){return{kind:"schema",type:"optional",reference:y,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return a(this)},"~run"(e,t){return void 0===e.value&&(void 0!==this.default&&(e.value=h(this,e,t)),void 0===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function w(e,t){return{kind:"schema",type:"picklist",reference:w,expects:c(e.map(s),"|"),async:!1,options:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){return this.options.includes(e.value)?e.typed=!0:o(this,"type",e,t),e}}}function k(e,t,n){return{kind:"schema",type:"record",reference:k,expects:"Object",async:!1,key:e,value:t,message:n,get"~standard"(){return a(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in n)if(i(n,r)){const s=n[r],o=this.key["~run"]({value:r},t);if(o.issues){const a={type:"object",origin:"key",input:n,key:r,value:s};for(const t of o.issues)t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=o.issues),t.abortEarly){e.typed=!1;break}}const a=this.value["~run"]({value:s},t);if(a.issues){const o={type:"object",origin:"value",input:n,key:r,value:s};for(const t of a.issues)t.path?t.path.unshift(o):t.path=[o],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}o.typed&&a.typed||(e.typed=!1),o.typed&&(e.value[o.value]=a.value)}}else o(this,"type",e,t);return e}}}function b(e){return{kind:"schema",type:"string",reference:b,expects:"string",async:!1,message:e,get"~standard"(){return a(this)},"~run"(e,t){return"string"==typeof e.value?e.typed=!0:o(this,"type",e,t),e}}}function _(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function x(e,t){return{kind:"schema",type:"union",reference:x,expects:c(e.map(e=>e.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){let n,r,s;for(const o of this.options){const a=o["~run"]({value:e.value},t);if(a.typed){if(!a.issues){n=a;break}r?r.push(a):r=[a]}else s?s.push(a):s=[a]}if(n)return n;if(r){if(1===r.length)return r[0];o(this,"type",e,t,{issues:_(r)}),e.typed=!0}else{if(1===s?.length)return s[0];o(this,"type",e,t,{issues:_(s)})}return e}}}function S(){return{kind:"schema",type:"unknown",reference:S,expects:"unknown",async:!1,get"~standard"(){return a(this)},"~run":e=>(e.typed=!0,e)}}function E(...e){return{...e[0],pipe:e,get"~standard"(){return a(this)},"~run"(t,n){for(const r of e)if("metadata"!==r.kind){if(t.issues&&("schema"===r.kind||"transformation"===r.kind)){t.typed=!1;break}t.issues&&(n.abortEarly||n.abortPipeEarly)||(t=r["~run"](t,n))}return t}}}function U(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message}class C{constructor(e){this.moduleName=e}formatPrefix(e){return`[SuperAppSDK][${this.moduleName}.${e}]`}warn(e,t){console.warn(`${this.formatPrefix(e)} ${t}`)}error(e,t){console.error(`${this.formatPrefix(e)} ${t}`)}}function $(){if("undefined"==typeof window||!window.navigator)return null;const e=window.navigator.userAgent;return e?function(e){if(!e||"string"!=typeof e)return null;const t=e.match(/(Grab|GrabBeta|GrabBetaDebug|GrabTaxi|GrabEarlyAccess)\/v?([0-9]+)\.([0-9]+)\.([0-9]+) \(.*(Android|iOS).*\)/i);return t?{appName:t[1],version:{major:Number(t[2]),minor:Number(t[3]),patch:Number(t[4])},platform:t[5]}:null}(e):null}class A{get wrappedModule(){return window[`Wrapped${this.name}`]}constructor(e){if(this.name=e,this.logger=new C(e),!this.wrappedModule)try{n.wrapModule(window,this.name)}catch(e){throw new Error(`Failed to initialize ${this.name}${U(e)?`: ${e.message}`:""}`,{cause:e})}}validate(e,t){const n=function(e,t){const n=e["~run"]({value:t},r(void 0));return{typed:n.typed,success:!n.issues,output:n.value,issues:n.issues}}(e,t);return n.success?null:n.issues.map(e=>{const t=e.path?.map(e=>String(e.key)).join(".");return t?`${t}: ${e.message}`:e.message}).join(", ")}checkSupport(e){const t=$();return t?e(t)?null:{status_code:426,error:"Upgrade Required: This method requires a newer version of the Grab app"}:{status_code:501,error:"Not implemented: This method requires the Grab app environment"}}async invoke(e){const{method:t,params:n}=e;try{return $()?await this.wrappedModule.invoke(t,n):{status_code:501,error:"Not implemented: This method requires the Grab app environment"}}catch(e){return{status_code:500,error:`Failed to invoke method: ${U(e)?e.message:"Unknown error"}`}}}createErrorStream(e){return{subscribe:t=>(t?.next?.(e),t?.complete?.(),{isUnsubscribed:()=>!0,unsubscribe:()=>{}}),then:t=>Promise.resolve(e).then(t)}}invokeStream(e){const{method:t,params:n}=e;try{return $()?this.wrappedModule.invoke(t,n):this.createErrorStream({status_code:501,error:"Not implemented: This method requires the Grab app environment"})}catch(e){return this.createErrorStream({status_code:500,error:`Failed to invoke method: ${U(e)?e.message:"Unknown error"}`})}}}function I(e){return 200===e.status_code||204===e.status_code}function M(e){return 200===e.status_code}function T(e){return 204===e.status_code}function O(e){return 302===e.status_code}function N(e){return 302===e.status_code}function P(e){const t=e.status_code;return 400===t||401===t||403===t||404===t||424===t||426===t}function R(e){return 500===e.status_code||501===e.status_code}function L(e){return"string"==typeof e.error&&e.error.length>0}const B=e=>v({status_code:m(e),error:b()}),j=e=>v({status_code:m(200),result:e}),D=v({status_code:m(204)}),z=v({status_code:m(302)}),K=v({title:y(b())}),G=v({qrCode:b()}),W=x([j(G),D,B(400),B(403),B(500),B(501)]);class F extends A{constructor(){super("CameraModule")}async scanQRCode(e={}){const t=this.validate(K,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"scanQRCode",params:e}),r=this.validate(W,n);return r&&this.logger.warn("scanQRCode",`Unexpected response shape: ${r}`),n}}const q=k(b(),S()),V=function e(t,n,r){return{kind:"schema",type:"variant",reference:e,expects:"Object",async:!1,key:t,options:n,message:r,get"~standard"(){return a(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){let r,s=0,a=this.key,i=[];const u=(e,o)=>{for(const c of e.options){if("variant"===c.type)u(c,new Set(o).add(c.key));else{let e=!0,u=0;for(const t of o){const r=c.entries[t];if(t in n?r["~run"]({typed:!1,value:n[t]},{abortEarly:!0}).issues:"exact_optional"!==r.type&&"optional"!==r.type&&"nullish"!==r.type){e=!1,a!==t&&(s<u||s===u&&t in n&&!(a in n))&&(s=u,a=t,i=[]),a===t&&i.push(c.entries[t].expects);break}u++}if(e){const e=c["~run"]({value:n},t);(!r||!r.typed&&e.typed)&&(r=e)}}if(r&&!r.issues)break}};if(u(this,new Set([this.key])),r)return r;o(this,"type",e,t,{input:n[a],expected:c(i,"|"),path:[{type:"object",origin:"value",input:n,key:a,value:n[a]}]})}else o(this,"type",e,t);return e}}}("status",[v({status:m("success"),transactionID:b()}),v({status:m("failure"),transactionID:b(),errorMessage:b(),errorCode:b()}),v({status:m("pending"),transactionID:b()}),v({status:m("userInitiatedCancel")})]),H=x([j(V),B(400),B(500),B(501)]);class Y extends A{constructor(){super("CheckoutModule")}async triggerCheckout(e){const t=this.validate(q,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"triggerCheckout",params:e}),r=this.validate(H,n);return r&&this.logger.warn("triggerCheckout",`Unexpected response shape: ${r}`),n}}const Q={HOMEPAGE:"HOMEPAGE",CHECKOUT_PAGE:"CHECKOUT_PAGE",BOOKING_COMPLETION:"BOOKING_COMPLETION",CUSTOM:"CUSTOM"},J={DEFAULT:"DEFAULT"},X={TRANSACTION_AMOUNT:"transaction_amount",TRANSACTION_CURRENCY:"transaction_currency",PAGE:"page"},Z=x([j(p()),D,B(400),B(500),B(501)]),ee=x([j(p()),D,B(400),B(500),B(501)]),te=x([j(p()),D,B(500),B(501)]),ne=x([j(p()),D,B(500),B(501)]),re=x([j(p()),D,B(500),B(501)]),se=x([j(p()),D,B(500),B(501)]),oe=x([j(p()),D,B(500),B(501)]),ae=x([j(p()),D,B(500),B(501)]),ie=x([j(p()),D,B(500),B(501)]),ce=x([j(p()),D,B(500),B(501)]),ue=x([j(p()),D,B(400),B(500),B(501)]),de=x([j(p()),B(500),B(501)]),le=v({state:E(b(),u(1)),name:E(b(),u(1)),data:y(k(b(),S()))}),he=x([j(p()),D,B(400),B(500),B(501)]),pe=v({connected:p()}),me=x([j(pe),B(404)]),ge=b(),fe=x([j(ge),D,B(500),B(501)]);class ve extends A{constructor(){super("ContainerModule")}async setBackgroundColor(e){const t=await this.invoke({method:"setBackgroundColor",params:{backgroundColor:e}}),n=this.validate(Z,t);return n&&this.logger.warn("setBackgroundColor",`Unexpected response shape: ${n}`),t}async setTitle(e){const t=await this.invoke({method:"setTitle",params:{title:e}}),n=this.validate(ee,t);return n&&this.logger.warn("setTitle",`Unexpected response shape: ${n}`),t}async hideBackButton(){const e=await this.invoke({method:"hideBackButton"}),t=this.validate(te,e);return t&&this.logger.warn("hideBackButton",`Unexpected response shape: ${t}`),e}async showBackButton(){const e=await this.invoke({method:"showBackButton"}),t=this.validate(ne,e);return t&&this.logger.warn("showBackButton",`Unexpected response shape: ${t}`),e}async hideRefreshButton(){const e=await this.invoke({method:"hideRefreshButton"}),t=this.validate(re,e);return t&&this.logger.warn("hideRefreshButton",`Unexpected response shape: ${t}`),e}async showRefreshButton(){const e=await this.invoke({method:"showRefreshButton"}),t=this.validate(se,e);return t&&this.logger.warn("showRefreshButton",`Unexpected response shape: ${t}`),e}async close(){const e=await this.invoke({method:"close"}),t=this.validate(oe,e);return t&&this.logger.warn("close",`Unexpected response shape: ${t}`),e}async onContentLoaded(){const e=await this.invoke({method:"onContentLoaded"}),t=this.validate(ae,e);return t&&this.logger.warn("onContentLoaded",`Unexpected response shape: ${t}`),e}async showLoader(){const e=await this.invoke({method:"showLoader"}),t=this.validate(ie,e);return t&&this.logger.warn("showLoader",`Unexpected response shape: ${t}`),e}async hideLoader(){const e=await this.invoke({method:"hideLoader"}),t=this.validate(ce,e);return t&&this.logger.warn("hideLoader",`Unexpected response shape: ${t}`),e}async openExternalLink(e){const t=await this.invoke({method:"openExternalLink",params:{url:e}}),n=this.validate(ue,t);return n&&this.logger.warn("openExternalLink",`Unexpected response shape: ${n}`),t}async onCtaTap(e){const t=await this.invoke({method:"onCtaTap",params:{action:e}}),n=this.validate(de,t);return n&&this.logger.warn("onCtaTap",`Unexpected response shape: ${n}`),t}async sendAnalyticsEvent(e){const t=this.validate(le,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"sendAnalyticsEvent",params:{state:e.state,name:e.name,data:e.data?JSON.stringify(e.data):null}}),r=this.validate(he,n);return r&&this.logger.warn("sendAnalyticsEvent",`Unexpected response shape: ${r}`),n}async isConnected(){return null!==$()?{status_code:200,result:{connected:!0}}:{status_code:404,error:"Not connected to Grab app"}}async getSessionParams(){const e=await this.invoke({method:"getSessionParams"}),t=this.validate(fe,e);return t&&this.logger.warn("getSessionParams",`Unexpected response shape: ${t}`),e}}const ye=p(),we=x([j(ye),B(500),B(501)]);class ke extends A{constructor(){super("DeviceCapabilityModule")}async isEsimSupported(){const e=await this.invoke({method:"isEsimSupported"}),t=this.validate(we,e);return t&&this.logger.warn("isEsimSupported",`Unexpected response shape: ${t}`),e}}const be=v({fileUrl:E(b(),d()),fileName:E(b(),u(1))}),_e=x([D,B(400),B(500),B(501)]);class xe extends A{constructor(){super("FileModule")}async downloadFile(e){const t=this.validate(be,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"downloadFile",params:e}),r=this.validate(_e,n);return r&&this.logger.warn("downloadFile",`Unexpected response shape: ${r}`),n}}function Se(e){const t=new Uint32Array(e);crypto.getRandomValues(t);let n="";for(let r=0;r<e;r+=1)n+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(t[r]%62);return n}async function Ee(e){const t=(new TextEncoder).encode(e);return function(e){const t=new Uint8Array(e);let n="";for(let e=0;e<t.byteLength;e+=1)n+=String.fromCharCode(t[e]);return btoa(n).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(await crypto.subtle.digest("SHA-256",t))}function Ue(e,t){return e.major!==t.major?e.major>t.major:e.minor!==t.minor?e.minor>t.minor:e.patch>=t.patch}const Ce="grabid",$e={staging:"https://partner-api.stg-myteksi.com/grabid/v1/oauth2/.well-known/openid-configuration",production:"https://partner-api.grab.com/grabid/v1/oauth2/.well-known/openid-configuration"};class Ae extends Error{constructor(e,t){super(e),this.cause=t,this.name="AuthorizationConfigurationError"}}const Ie=v({clientId:E(b(),u(1)),redirectUri:E(b(),d()),scope:E(b(),u(1)),environment:w(["staging","production"]),responseMode:y(w(["redirect","in_place"]))}),Me=v({code:b(),state:b()}),Te=x([j(Me),D,z,B(400),B(403),B(500),B(501)]),Oe=v({state:b(),codeVerifier:b(),nonce:b(),redirectUri:b()}),Ne=x([j(Oe),D,B(400)]),Pe=x([D]);class Re extends A{constructor(){super("IdentityModule")}async fetchAuthorizationEndpoint(e){const t=$e[e];if(!t)throw new Error(`Invalid environment: ${e}. Must be 'staging' or 'production'`);try{const e=await fetch(t);if(!e.ok)throw console.error(`Failed to fetch OpenID configuration from ${t}: ${e.status} ${e.statusText}`),new Ae("Failed to fetch authorization configuration");const n=await e.json();if(!n.authorization_endpoint)throw console.error("authorization_endpoint not found in OpenID configuration response"),new Ae("Invalid authorization configuration");return n.authorization_endpoint}catch(e){if(console.error("Error fetching authorization endpoint:",e),e instanceof Ae)throw e;throw new Error("Something wrong happened when fetching authorization configuration",{cause:e})}}async generatePKCEArtifacts(){const e=Se(16),t=Se(32),n=(r=Se(64),btoa(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"));var r;return{nonce:e,state:t,codeVerifier:n,codeChallenge:await Ee(n),codeChallengeMethod:"S256"}}storePKCEArtifacts(e){this.setStorageItem("nonce",e.nonce),this.setStorageItem("state",e.state),this.setStorageItem("code_verifier",e.codeVerifier),this.setStorageItem("redirect_uri",e.redirectUri)}async getAuthorizationArtifacts(){const e=this.getStorageItem("state"),t=this.getStorageItem("code_verifier"),n=this.getStorageItem("nonce"),r=this.getStorageItem("redirect_uri");return null===e&&null===t&&null===n&&null===r?{status_code:204}:null!==e&&null!==t&&null!==n&&null!==r?{status_code:200,result:{state:e,codeVerifier:t,nonce:n,redirectUri:r}}:{status_code:400,error:"Inconsistent authorization artifacts in storage"}}async clearAuthorizationArtifacts(){return window.localStorage.removeItem(`${Ce}:nonce`),window.localStorage.removeItem(`${Ce}:state`),window.localStorage.removeItem(`${Ce}:code_verifier`),window.localStorage.removeItem(`${Ce}:redirect_uri`),window.localStorage.removeItem(`${Ce}:login_return_uri`),{status_code:204}}setStorageItem(e,t){window.localStorage.setItem(`${Ce}:${e}`,t)}getStorageItem(e){return window.localStorage.getItem(`${Ce}:${e}`)}static normalizeUrl(e){const t=new URL(e);return`${t.origin}${t.pathname}`}static buildAuthorizeUrl(e,t){return`${e}?${Object.entries(t).filter(e=>void 0!==e[1]&&null!==e[1]).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}`}static shouldUseWebConsent(e){const t=$();return!t||"staging"!==e.environment&&!Ue(t.version,{major:5,minor:396,patch:0})}async performWebAuthorization(e){let t;this.setStorageItem("login_return_uri",window.location.href),this.setStorageItem("redirect_uri",e.redirectUri);try{t=await this.fetchAuthorizationEndpoint(e.environment)}catch(e){return{status_code:400,error:U(e)?e.message:"Could not fetch authorization endpoint"}}const n={client_id:e.clientId,scope:e.scope,response_type:"code",redirect_uri:e.redirectUri,nonce:e.nonce,state:e.state,code_challenge_method:e.codeChallengeMethod,code_challenge:e.codeChallenge},r=Re.buildAuthorizeUrl(t,n);return window.location.assign(r),{status_code:302}}async performNativeAuthorization(e){const t=await this.invoke({method:"authorize",params:{clientId:e.clientId,redirectUri:e.actualRedirectUri,scope:e.scope,nonce:e.nonce,state:e.state,codeChallenge:e.codeChallenge,codeChallengeMethod:e.codeChallengeMethod,responseMode:e.responseMode}}),n=this.validate(Te,t);return n&&this.logger.warn("authorize",`Unexpected response shape: ${n}`),t}async authorize(e){const t=this.validate(Ie,e);if(t)return{status_code:400,error:t};const n=await this.generatePKCEArtifacts(),r=e.responseMode||"redirect",s="in_place"===r?Re.normalizeUrl(window.location.href):e.redirectUri;this.storePKCEArtifacts({...n,redirectUri:s});const o={clientId:e.clientId,redirectUri:e.redirectUri,scope:e.scope,nonce:n.nonce,state:n.state,codeChallenge:n.codeChallenge,codeChallengeMethod:n.codeChallengeMethod};if(Re.shouldUseWebConsent(e))return this.performWebAuthorization({...o,environment:e.environment});try{const t=await this.performNativeAuthorization({...o,actualRedirectUri:s,responseMode:r});return 400===t.status_code||403===t.status_code||500===t.status_code||501===t.status_code?(console.error(`Native authorization returned ${t.status_code}, falling back to web flow:`,t.error),this.performWebAuthorization({...o,environment:e.environment})):t}catch(t){return console.error("Native authorization failed, falling back to web flow:",t),this.performWebAuthorization({...o,environment:e.environment})}}}const Le=b(),Be=x([j(Le),D,B(400),B(500),B(501)]);class je extends A{constructor(){super("LocaleModule")}async getLanguageLocaleIdentifier(){const e=await this.invoke({method:"getLanguageLocaleIdentifier"}),t=this.validate(Be,e);return t&&this.logger.warn("getLanguageLocaleIdentifier",`Unexpected response shape: ${t}`),e}}const De=v({latitude:f(),longitude:f()}),ze=x([j(De),B(403),B(424),B(500),B(501)]),Ke=b(),Ge=x([j(Ke),D,B(403),B(424),B(500),B(501)]);class We extends A{constructor(){super("LocationModule")}async getCoordinate(){const e=await this.invoke({method:"getCoordinate"}),t=this.validate(ze,e);return t&&this.logger.warn("getCoordinate",`Unexpected response shape: ${t}`),e}observeLocationChange(){return this.invokeStream({method:"observeLocationChange"})}async getCountryCode(){const e=await this.invoke({method:"getCountryCode"}),t=this.validate(Ge,e);return t&&this.logger.warn("getCountryCode",`Unexpected response shape: ${t}`),e}}const Fe=v({type:w(["START_PLAYBACK","PROGRESS_PLAYBACK","START_SEEK","STOP_SEEK","STOP_PLAYBACK","CLOSE_PLAYBACK","PAUSE_PLAYBACK","RESUME_PLAYBACK","FAST_FORWARD_PLAYBACK","REWIND_PLAYBACK","ERROR_PLAYBACK","CHANGE_VOLUME"]),titleId:b(),position:f(),length:f()}),qe=x([j(Fe),D,B(400),B(424),B(500),B(501)]),Ve=x([j(Fe),B(500),B(501)]);class He extends A{constructor(){super("MediaModule")}async playDRMContent(e){const t=await this.invoke({method:"playDRMContent",params:{data:e}}),n=this.validate(qe,t);return n&&this.logger.warn("playDRMContent",`Unexpected response shape: ${n}`),t}observePlayDRMContent(e){return this.invokeStream({method:"observePlayDRMContent",params:{data:e}})}}const Ye=x([D,B(500),B(501)]);class Qe extends A{constructor(){super("PlatformModule")}async back(){const e=await this.invoke({method:"back"}),t=this.validate(Ye,e);return t&&this.logger.warn("back",`Unexpected response shape: ${t}`),e}}const Je=v({email:b()}),Xe=x([j(Je),D,B(400),B(403),B(426),B(500),B(501)]),Ze=v({email:y(E(b(),u(1))),skipUserInput:y(p())}),et=v({email:b()}),tt=x([j(et),D,B(400),B(403),B(426),B(500),B(501)]);class nt extends A{constructor(){super("ProfileModule")}async fetchEmail(){const e=this.checkSupport(e=>Ue(e.version,nt.MINIMUM_VERSION));if(e)return e;const t=await this.invoke({method:"fetchEmail"}),n=this.validate(Xe,t);return n&&this.logger.warn("fetchEmail",`Unexpected response shape: ${n}`),t}async verifyEmail(e){const t=this.checkSupport(e=>Ue(e.version,nt.MINIMUM_VERSION));if(t)return t;const n=this.validate(Ze,e??{});if(n)return{status_code:400,error:n};const r=await this.invoke({method:"verifyEmail",params:e}),s=this.validate(tt,r);return s&&this.logger.warn("verifyEmail",`Unexpected response shape: ${s}`),r}}nt.MINIMUM_VERSION={major:5,minor:399,patch:0};const rt=v({module:E(b(),u(1)),method:E(b(),u(1))}),st=p(),ot=x([j(st),B(400),B(424),B(500),B(501)]),at=x([D,B(424),B(500),B(501)]);class it extends A{constructor(){super("ScopeModule")}async hasAccessTo(e,t){const n={module:e,method:t},r=this.validate(rt,n);if(r)return{status_code:400,error:r};const s=await this.invoke({method:"hasAccessTo",params:n}),o=this.validate(ot,s);return o&&this.logger.warn("hasAccessTo",`Unexpected response shape: ${o}`),s}async reloadScopes(){const e=await this.invoke({method:"reloadScopes"}),t=this.validate(at,e);return t&&this.logger.warn("reloadScopes",`Unexpected response shape: ${t}`),e}}const ct=x([D,B(400),B(403),B(500),B(501)]);class ut extends A{constructor(){super("SplashScreenModule")}async dismiss(){const e=await this.invoke({method:"dismiss"}),t=this.validate(ct,e);return t&&this.logger.warn("dismiss",`Unexpected response shape: ${t}`),e}}const dt=v({key:E(b(),u(1))}),lt=x([D,B(400),B(424),B(500),B(501)]),ht=dt,pt=v({value:g(p())}),mt=x([j(pt),B(400),B(424),B(500),B(501)]),gt=x([D,B(400),B(424),B(500),B(501)]),ft=dt,vt=v({value:g(f())}),yt=x([j(vt),B(400),B(424),B(500),B(501)]),wt=x([D,B(400),B(424),B(500),B(501)]),kt=dt,bt=v({value:g(b())}),_t=x([j(bt),B(400),B(424),B(500),B(501)]),xt=x([D,B(400),B(424),B(500),B(501)]),St=dt,Et=v({value:g(f())}),Ut=x([j(Et),B(400),B(424),B(500),B(501)]),Ct=dt,$t=x([D,B(400),B(424),B(500),B(501)]),At=x([D,B(424),B(500),B(501)]);class It extends A{constructor(){super("StorageModule")}async setBoolean(e,t){const n=await this.invoke({method:"setBoolean",params:{key:e,value:t}}),r=this.validate(lt,n);return r&&this.logger.warn("setBoolean",`Unexpected response shape: ${r}`),n}async getBoolean(e){const t={key:e},n=this.validate(ht,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getBoolean",params:t}),s=this.validate(mt,r);return s&&this.logger.warn("getBoolean",`Unexpected response shape: ${s}`),r}async setInt(e,t){const n=await this.invoke({method:"setInt",params:{key:e,value:t}}),r=this.validate(gt,n);return r&&this.logger.warn("setInt",`Unexpected response shape: ${r}`),n}async getInt(e){const t={key:e},n=this.validate(ft,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getInt",params:t}),s=this.validate(yt,r);return s&&this.logger.warn("getInt",`Unexpected response shape: ${s}`),r}async setString(e,t){const n=await this.invoke({method:"setString",params:{key:e,value:t}}),r=this.validate(wt,n);return r&&this.logger.warn("setString",`Unexpected response shape: ${r}`),n}async getString(e){const t={key:e},n=this.validate(kt,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getString",params:t}),s=this.validate(_t,r);return s&&this.logger.warn("getString",`Unexpected response shape: ${s}`),r}async setDouble(e,t){const n=await this.invoke({method:"setDouble",params:{key:e,value:t}}),r=this.validate(xt,n);return r&&this.logger.warn("setDouble",`Unexpected response shape: ${r}`),n}async getDouble(e){const t={key:e},n=this.validate(St,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getDouble",params:t}),s=this.validate(Ut,r);return s&&this.logger.warn("getDouble",`Unexpected response shape: ${s}`),r}async remove(e){const t={key:e},n=this.validate(Ct,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"remove",params:t}),s=this.validate($t,r);return s&&this.logger.warn("remove",`Unexpected response shape: ${s}`),r}async removeAll(){const e=await this.invoke({method:"removeAll"}),t=this.validate(At,e);return t&&this.logger.warn("removeAll",`Unexpected response shape: ${t}`),e}}const Mt=v({url:E(b(),d())}),Tt=x([j(b()),B(400),B(424),B(500),B(501)]);class Ot extends A{constructor(){super("SystemWebViewKitModule")}async redirectToSystemWebView(e){const t=this.validate(Mt,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"redirectToSystemWebView",params:e}),r=this.validate(Tt,n);return r&&this.logger.warn("redirectToSystemWebView",`Unexpected response shape: ${r}`),n}}const Nt=b(),Pt=x([j(Nt),D,B(500),B(501)]);class Rt extends A{constructor(){super("UserAttributesModule")}async getSelectedTravelDestination(){const e=await this.invoke({method:"getSelectedTravelDestination"}),t=this.validate(Pt,e);return t&&this.logger.warn("getSelectedTravelDestination",`Unexpected response shape: ${t}`),e}}export{Ie as AuthorizeRequestSchema,Te as AuthorizeResponseSchema,Me as AuthorizeResultSchema,Ye as BackResponseSchema,A as BaseModule,F as CameraModule,Y as CheckoutModule,Pe as ClearAuthorizationArtifactsResponseSchema,oe as CloseResponseSchema,X as ContainerAnalyticsEventData,J as ContainerAnalyticsEventName,Q as ContainerAnalyticsEventState,ve as ContainerModule,Fe as DRMPlaybackEventSchema,ke as DeviceCapabilityModule,ct as DismissSplashScreenResponseSchema,be as DownloadFileRequestSchema,_e as DownloadFileResponseSchema,Xe as FetchEmailResponseSchema,Je as FetchEmailResultSchema,xe as FileModule,Ne as GetAuthorizationArtifactsResponseSchema,Oe as GetAuthorizationArtifactsResultSchema,ht as GetBooleanRequestSchema,mt as GetBooleanResponseSchema,pt as GetBooleanResultSchema,ze as GetCoordinateResponseSchema,De as GetCoordinateResultSchema,Ge as GetCountryCodeResponseSchema,Ke as GetCountryCodeResultSchema,St as GetDoubleRequestSchema,Ut as GetDoubleResponseSchema,Et as GetDoubleResultSchema,ft as GetIntRequestSchema,yt as GetIntResponseSchema,vt as GetIntResultSchema,Be as GetLanguageLocaleIdentifierResponseSchema,Le as GetLanguageLocaleIdentifierResultSchema,Pt as GetSelectedTravelDestinationResponseSchema,Nt as GetSelectedTravelDestinationResultSchema,fe as GetSessionParamsResponseSchema,ge as GetSessionParamsResultSchema,kt as GetStringRequestSchema,_t as GetStringResponseSchema,bt as GetStringResultSchema,rt as HasAccessToRequestSchema,ot as HasAccessToResponseSchema,st as HasAccessToResultSchema,te as HideBackButtonResponseSchema,ce as HideLoaderResponseSchema,re as HideRefreshButtonResponseSchema,Re as IdentityModule,me as IsConnectedResponseSchema,pe as IsConnectedResultSchema,we as IsEsimSupportedResponseSchema,ye as IsEsimSupportedResultSchema,je as LocaleModule,We as LocationModule,C as Logger,He as MediaModule,Ve as ObserveDRMPlaybackResponseSchema,ae as OnContentLoadedResponseSchema,de as OnCtaTapResponseSchema,ue as OpenExternalLinkResponseSchema,Qe as PlatformModule,qe as PlayDRMContentResponseSchema,nt as ProfileModule,Mt as RedirectToSystemWebViewRequestSchema,Tt as RedirectToSystemWebViewResponseSchema,at as ReloadScopesResponseSchema,At as RemoveAllResponseSchema,$t as RemoveResponseSchema,K as ScanQRCodeRequestSchema,W as ScanQRCodeResponseSchema,G as ScanQRCodeResultSchema,it as ScopeModule,le as SendAnalyticsEventRequestSchema,he as SendAnalyticsEventResponseSchema,Z as SetBackgroundColorResponseSchema,lt as SetBooleanResponseSchema,xt as SetDoubleResponseSchema,gt as SetIntResponseSchema,wt as SetStringResponseSchema,ee as SetTitleResponseSchema,ne as ShowBackButtonResponseSchema,ie as ShowLoaderResponseSchema,se as ShowRefreshButtonResponseSchema,ut as SplashScreenModule,It as StorageModule,Ot as SystemWebViewKitModule,q as TriggerCheckoutRequestSchema,H as TriggerCheckoutResponseSchema,V as TriggerCheckoutResultSchema,Rt as UserAttributesModule,Ze as VerifyEmailRequestSchema,tt as VerifyEmailResponseSchema,et as VerifyEmailResultSchema,P as isClientError,L as isError,N as isFound,T as isNoContent,M as isOk,O as isRedirection,R as isServerError,I as isSuccess};
7
+ var e,t={exports:{}},n=(e||(e=1,function(e){function t(e){var t=!1;return{isUnsubscribed:function(){return t},unsubscribe:function(){t||(e(),t=!0)}}}function n(e){return{subscribe:e,then:function(t,n){return new Promise(function(r,s){try{var o=null,a=!1;o=e({next:function(e){r(null==t?void 0:t(e)),o&&o.unsubscribe(),a=!0}}),a&&o&&o.unsubscribe()}catch(e){null==n?s(e):r(n(e))}})}}}function r(r,s){return s.funcNameToWrap,function(r,s){var o=s.callbackNameFunc,a=s.funcToWrap;return n(function(n){var s,i=o();return r[i]=function(t){if(function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(!e)return!1;var r=function(e){return Object.keys(e).concat(Object.getOwnPropertyNames(Object.getPrototypeOf(e)))}(e);return t.every(function(e){return 0<=r.indexOf(e)})}(t.result,"event"))t.result.event===e.StreamEvent.STREAM_TERMINATED&&s.unsubscribe();else{var r=t.result,o=t.error,a=t.status_code;n&&n.next&&n.next({result:null===r?void 0:r,error:null===o?void 0:o,status_code:null===a?void 0:a})}},a(i),s=t(function(){r[i]=void 0,n&&n.complete&&n.complete()})})}(r,function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);s<r.length;s++)t.indexOf(r[s])<0&&(n[r[s]]=e[r[s]])}return n}(s,["funcNameToWrap"]))}(e.StreamEvent||(e.StreamEvent={})).STREAM_TERMINATED="STREAM_TERMINATED",e.createDataStream=n,e.createSubscription=t,e.getModuleEnvironment=function(e,t){return e[t]?"android":e.webkit&&e.webkit.messageHandlers&&e.webkit.messageHandlers[t]?"ios":void 0},e.wrapModule=function(e,t){var n;e[(n=t,"Wrapped"+n)]=function(e,t,n){return{invoke:function(s,o){return r(e,{funcNameToWrap:s,callbackNameFunc:function(){return function(e,t){var n=t.moduleName,r=t.funcName,s=0;return function(){for(var t,o,a="";(a=(t={moduleName:n,funcName:r,requestID:s}).moduleName+"_"+t.funcName+"Callback"+(null!==(o=t.requestID)?"_"+o:""))in e;)s+=1;return s+=1,a}()}(e,{moduleName:t,funcName:s})},funcToWrap:function(e){return n({callback:e,method:s,module:t,parameters:null!=o?o:{}})}})}}}(e,t,function(n){if(e[t]&&e[t][n.method]instanceof Function)e[t][n.method](JSON.stringify(n));else{if(!(e.webkit&&e.webkit.messageHandlers&&e.webkit.messageHandlers[t]))throw new Error("Unexpected method '"+n.method+"' for module '"+t+"'");e.webkit.messageHandlers[t].postMessage(n)}})},Object.defineProperty(e,"__esModule",{value:!0})}(t.exports)),t.exports);function r(e){return{lang:e?.lang??void 0,message:e?.message,abortEarly:e?.abortEarly??void 0,abortPipeEarly:e?.abortPipeEarly??void 0}}function s(e){const t=typeof e;return"string"===t?`"${e}"`:"number"===t||"bigint"===t||"boolean"===t?`${e}`:"object"===t||"function"===t?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function o(e,t,n,r,o){const a=o&&"input"in o?o.input:n.value,i=o?.expected??e.expects??null,c=o?.received??s(a),u={kind:e.kind,type:e.type,input:a,expected:i,received:c,message:`Invalid ${t}: ${i?`Expected ${i} but r`:"R"}eceived ${c}`,requirement:e.requirement,path:o?.path,issues:o?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},d="schema"===e.kind,l=o?.message??e.message??(e.reference,void u.lang)??(d?void u.lang:null)??r.message??void u.lang;void 0!==l&&(u.message="function"==typeof l?l(u):l),d&&(n.typed=!1),n.issues?n.issues.push(u):n.issues=[u]}function a(e){return{version:1,vendor:"valibot",validate:t=>e["~run"]({value:t},r())}}function i(e,t){return Object.hasOwn(e,t)&&"__proto__"!==t&&"prototype"!==t&&"constructor"!==t}function c(e,t){const n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??"never"}function u(e,t){return{kind:"validation",type:"min_length",reference:u,async:!1,expects:`>=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.length<this.requirement&&o(this,"length",e,t,{received:`${e.value.length}`}),e}}}function d(e){return{kind:"validation",type:"url",reference:d,async:!1,expects:null,requirement(e){try{return new URL(e),!0}catch{return!1}},message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&o(this,"URL",e,t),e}}}function l(e,t,n){return"function"==typeof e.fallback?e.fallback(t,n):e.fallback}function h(e,t,n){return"function"==typeof e.default?e.default(t,n):e.default}function p(e){return{kind:"schema",type:"boolean",reference:p,expects:"boolean",async:!1,message:e,get"~standard"(){return a(this)},"~run"(e,t){return"boolean"==typeof e.value?e.typed=!0:o(this,"type",e,t),e}}}function g(e,t){return{kind:"schema",type:"literal",reference:g,expects:s(e),async:!1,literal:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){return e.value===this.literal?e.typed=!0:o(this,"type",e,t),e}}}function m(e,t){return{kind:"schema",type:"nullable",reference:m,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,get"~standard"(){return a(this)},"~run"(e,t){return null===e.value&&(void 0!==this.default&&(e.value=h(this,e,t)),null===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function f(e){return{kind:"schema",type:"number",reference:f,expects:"number",async:!1,message:e,get"~standard"(){return a(this)},"~run"(e,t){return"number"!=typeof e.value||isNaN(e.value)?o(this,"type",e,t):e.typed=!0,e}}}function v(e,t){return{kind:"schema",type:"object",reference:v,expects:"Object",async:!1,entries:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in this.entries){const s=this.entries[r];if(r in n||("exact_optional"===s.type||"optional"===s.type||"nullish"===s.type)&&void 0!==s.default){const o=r in n?n[r]:h(s),a=s["~run"]({value:o},t);if(a.issues){const s={type:"object",origin:"value",input:n,key:r,value:o};for(const t of a.issues)t.path?t.path.unshift(s):t.path=[s],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value[r]=a.value}else if(void 0!==s.fallback)e.value[r]=l(s);else if("exact_optional"!==s.type&&"optional"!==s.type&&"nullish"!==s.type&&(o(this,"key",e,t,{input:void 0,expected:`"${r}"`,path:[{type:"object",origin:"key",input:n,key:r,value:n[r]}]}),t.abortEarly))break}}else o(this,"type",e,t);return e}}}function y(e,t){return{kind:"schema",type:"optional",reference:y,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,get"~standard"(){return a(this)},"~run"(e,t){return void 0===e.value&&(void 0!==this.default&&(e.value=h(this,e,t)),void 0===e.value)?(e.typed=!0,e):this.wrapped["~run"](e,t)}}}function w(e,t){return{kind:"schema",type:"picklist",reference:w,expects:c(e.map(s),"|"),async:!1,options:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){return this.options.includes(e.value)?e.typed=!0:o(this,"type",e,t),e}}}function k(e,t,n){return{kind:"schema",type:"record",reference:k,expects:"Object",async:!1,key:e,value:t,message:n,get"~standard"(){return a(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){e.typed=!0,e.value={};for(const r in n)if(i(n,r)){const s=n[r],o=this.key["~run"]({value:r},t);if(o.issues){const a={type:"object",origin:"key",input:n,key:r,value:s};for(const t of o.issues)t.path=[a],e.issues?.push(t);if(e.issues||(e.issues=o.issues),t.abortEarly){e.typed=!1;break}}const a=this.value["~run"]({value:s},t);if(a.issues){const o={type:"object",origin:"value",input:n,key:r,value:s};for(const t of a.issues)t.path?t.path.unshift(o):t.path=[o],e.issues?.push(t);if(e.issues||(e.issues=a.issues),t.abortEarly){e.typed=!1;break}}o.typed&&a.typed||(e.typed=!1),o.typed&&(e.value[o.value]=a.value)}}else o(this,"type",e,t);return e}}}function b(e){return{kind:"schema",type:"string",reference:b,expects:"string",async:!1,message:e,get"~standard"(){return a(this)},"~run"(e,t){return"string"==typeof e.value?e.typed=!0:o(this,"type",e,t),e}}}function _(e){let t;if(e)for(const n of e)t?t.push(...n.issues):t=n.issues;return t}function x(e,t){return{kind:"schema",type:"union",reference:x,expects:c(e.map(e=>e.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return a(this)},"~run"(e,t){let n,r,s;for(const o of this.options){const a=o["~run"]({value:e.value},t);if(a.typed){if(!a.issues){n=a;break}r?r.push(a):r=[a]}else s?s.push(a):s=[a]}if(n)return n;if(r){if(1===r.length)return r[0];o(this,"type",e,t,{issues:_(r)}),e.typed=!0}else{if(1===s?.length)return s[0];o(this,"type",e,t,{issues:_(s)})}return e}}}function S(){return{kind:"schema",type:"unknown",reference:S,expects:"unknown",async:!1,get"~standard"(){return a(this)},"~run":e=>(e.typed=!0,e)}}function E(...e){return{...e[0],pipe:e,get"~standard"(){return a(this)},"~run"(t,n){for(const r of e)if("metadata"!==r.kind){if(t.issues&&("schema"===r.kind||"transformation"===r.kind)){t.typed=!1;break}t.issues&&(n.abortEarly||n.abortPipeEarly)||(t=r["~run"](t,n))}return t}}}function U(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message}class ${constructor(e){this.moduleName=e}formatPrefix(e){return`[SuperAppSDK][${this.moduleName}.${e}]`}warn(e,t){console.warn(`${this.formatPrefix(e)} ${t}`)}error(e,t){console.error(`${this.formatPrefix(e)} ${t}`)}}function C(){if("undefined"==typeof window||!window.navigator)return null;const e=window.navigator.userAgent;return e?function(e){if(!e||"string"!=typeof e)return null;const t=e.match(/(Grab|GrabBeta|GrabBetaDebug|GrabTaxi|GrabEarlyAccess)\/v?([0-9]+)\.([0-9]+)\.([0-9]+) \(.*(Android|iOS).*\)/i);return t?{appName:t[1],version:{major:Number(t[2]),minor:Number(t[3]),patch:Number(t[4])},platform:t[5]}:null}(e):null}class A{get wrappedModule(){return window[`Wrapped${this.name}`]}constructor(e){if(this.name=e,this.logger=new $(e),!this.wrappedModule)try{n.wrapModule(window,this.name)}catch(e){throw new Error(`Failed to initialize ${this.name}${U(e)?`: ${e.message}`:""}`,{cause:e})}}validate(e,t){const n=function(e,t){const n=e["~run"]({value:t},r(void 0));return{typed:n.typed,success:!n.issues,output:n.value,issues:n.issues}}(e,t);return n.success?null:n.issues.map(e=>{const t=e.path?.map(e=>String(e.key)).join(".");return t?`${t}: ${e.message}`:e.message}).join(", ")}checkSupport(e){const t=C();return t?e(t)?null:{status_code:426,error:"Upgrade Required: This method requires a newer version of the Grab app"}:{status_code:501,error:"Not implemented: This method requires the Grab app environment"}}async invoke(e){const{method:t,params:n}=e;try{return C()?await this.wrappedModule.invoke(t,n):{status_code:501,error:"Not implemented: This method requires the Grab app environment"}}catch(e){return{status_code:500,error:`Failed to invoke method: ${U(e)?e.message:"Unknown error"}`}}}createErrorStream(e){return{subscribe:t=>(t?.next?.(e),t?.complete?.(),{isUnsubscribed:()=>!0,unsubscribe:()=>{}}),then:t=>Promise.resolve(e).then(t)}}invokeStream(e){const{method:t,params:n}=e;try{return C()?this.wrappedModule.invoke(t,n):this.createErrorStream({status_code:501,error:"Not implemented: This method requires the Grab app environment"})}catch(e){return this.createErrorStream({status_code:500,error:`Failed to invoke method: ${U(e)?e.message:"Unknown error"}`})}}}function I(e){return e.status_code>=200&&e.status_code<300}function M(e){return 200===e.status_code}function T(e){return 204===e.status_code}function O(e){return 302===e.status_code}function N(e){return 302===e.status_code}function P(e){return e.status_code>=400&&e.status_code<500}function R(e){return e.status_code>=500&&e.status_code<600}function L(e){return e.status_code>=400&&e.status_code<600||"string"==typeof e.error&&e.error.length>0}function B(e){return"result"in e&&null!==e.result&&void 0!==e.result}const j=e=>v({status_code:g(e),error:b()}),D=e=>v({status_code:g(200),result:e}),z=v({status_code:g(204)}),K=v({status_code:g(302)}),G=v({title:y(b())}),W=v({qrCode:b()}),F=x([D(W),z,j(400),j(403),j(500),j(501)]);class q extends A{constructor(){super("CameraModule")}async scanQRCode(e={}){const t=this.validate(G,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"scanQRCode",params:e}),r=this.validate(F,n);return r&&this.logger.warn("scanQRCode",`Unexpected response shape: ${r}`),n}}const H=k(b(),S()),V=function e(t,n,r){return{kind:"schema",type:"variant",reference:e,expects:"Object",async:!1,key:t,options:n,message:r,get"~standard"(){return a(this)},"~run"(e,t){const n=e.value;if(n&&"object"==typeof n){let r,s=0,a=this.key,i=[];const u=(e,o)=>{for(const c of e.options){if("variant"===c.type)u(c,new Set(o).add(c.key));else{let e=!0,u=0;for(const t of o){const r=c.entries[t];if(t in n?r["~run"]({typed:!1,value:n[t]},{abortEarly:!0}).issues:"exact_optional"!==r.type&&"optional"!==r.type&&"nullish"!==r.type){e=!1,a!==t&&(s<u||s===u&&t in n&&!(a in n))&&(s=u,a=t,i=[]),a===t&&i.push(c.entries[t].expects);break}u++}if(e){const e=c["~run"]({value:n},t);(!r||!r.typed&&e.typed)&&(r=e)}}if(r&&!r.issues)break}};if(u(this,new Set([this.key])),r)return r;o(this,"type",e,t,{input:n[a],expected:c(i,"|"),path:[{type:"object",origin:"value",input:n,key:a,value:n[a]}]})}else o(this,"type",e,t);return e}}}("status",[v({status:g("success"),transactionID:b()}),v({status:g("failure"),transactionID:b(),errorMessage:b(),errorCode:b()}),v({status:g("pending"),transactionID:b()}),v({status:g("userInitiatedCancel")})]),Y=x([D(V),j(400),j(500),j(501)]);class J extends A{constructor(){super("CheckoutModule")}async triggerCheckout(e){const t=this.validate(H,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"triggerCheckout",params:e}),r=this.validate(Y,n);return r&&this.logger.warn("triggerCheckout",`Unexpected response shape: ${r}`),n}}const Q={HOMEPAGE:"HOMEPAGE",CHECKOUT_PAGE:"CHECKOUT_PAGE",BOOKING_COMPLETION:"BOOKING_COMPLETION",CUSTOM:"CUSTOM"},X={DEFAULT:"DEFAULT"},Z={TRANSACTION_AMOUNT:"transaction_amount",TRANSACTION_CURRENCY:"transaction_currency",PAGE:"page"},ee=x([D(p()),z,j(400),j(500),j(501)]),te=x([D(p()),z,j(400),j(500),j(501)]),ne=x([D(p()),z,j(500),j(501)]),re=x([D(p()),z,j(500),j(501)]),se=x([D(p()),z,j(500),j(501)]),oe=x([D(p()),z,j(500),j(501)]),ae=x([D(p()),z,j(500),j(501)]),ie=x([D(p()),z,j(500),j(501)]),ce=x([D(p()),z,j(500),j(501)]),ue=x([D(p()),z,j(500),j(501)]),de=x([D(p()),z,j(400),j(500),j(501)]),le=x([D(p()),j(500),j(501)]),he=v({state:E(b(),u(1)),name:E(b(),u(1)),data:y(k(b(),S()))}),pe=x([D(p()),z,j(400),j(500),j(501)]),ge=v({connected:p()}),me=x([D(ge),j(404)]),fe=b(),ve=x([D(fe),z,j(500),j(501)]);class ye extends A{constructor(){super("ContainerModule")}async setBackgroundColor(e){const t=await this.invoke({method:"setBackgroundColor",params:{backgroundColor:e}}),n=this.validate(ee,t);return n&&this.logger.warn("setBackgroundColor",`Unexpected response shape: ${n}`),t}async setTitle(e){const t=await this.invoke({method:"setTitle",params:{title:e}}),n=this.validate(te,t);return n&&this.logger.warn("setTitle",`Unexpected response shape: ${n}`),t}async hideBackButton(){const e=await this.invoke({method:"hideBackButton"}),t=this.validate(ne,e);return t&&this.logger.warn("hideBackButton",`Unexpected response shape: ${t}`),e}async showBackButton(){const e=await this.invoke({method:"showBackButton"}),t=this.validate(re,e);return t&&this.logger.warn("showBackButton",`Unexpected response shape: ${t}`),e}async hideRefreshButton(){const e=await this.invoke({method:"hideRefreshButton"}),t=this.validate(se,e);return t&&this.logger.warn("hideRefreshButton",`Unexpected response shape: ${t}`),e}async showRefreshButton(){const e=await this.invoke({method:"showRefreshButton"}),t=this.validate(oe,e);return t&&this.logger.warn("showRefreshButton",`Unexpected response shape: ${t}`),e}async close(){const e=await this.invoke({method:"close"}),t=this.validate(ae,e);return t&&this.logger.warn("close",`Unexpected response shape: ${t}`),e}async onContentLoaded(){const e=await this.invoke({method:"onContentLoaded"}),t=this.validate(ie,e);return t&&this.logger.warn("onContentLoaded",`Unexpected response shape: ${t}`),e}async showLoader(){const e=await this.invoke({method:"showLoader"}),t=this.validate(ce,e);return t&&this.logger.warn("showLoader",`Unexpected response shape: ${t}`),e}async hideLoader(){const e=await this.invoke({method:"hideLoader"}),t=this.validate(ue,e);return t&&this.logger.warn("hideLoader",`Unexpected response shape: ${t}`),e}async openExternalLink(e){const t=await this.invoke({method:"openExternalLink",params:{url:e}}),n=this.validate(de,t);return n&&this.logger.warn("openExternalLink",`Unexpected response shape: ${n}`),t}async onCtaTap(e){const t=await this.invoke({method:"onCtaTap",params:{action:e}}),n=this.validate(le,t);return n&&this.logger.warn("onCtaTap",`Unexpected response shape: ${n}`),t}async sendAnalyticsEvent(e){const t=this.validate(he,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"sendAnalyticsEvent",params:{state:e.state,name:e.name,data:e.data?JSON.stringify(e.data):null}}),r=this.validate(pe,n);return r&&this.logger.warn("sendAnalyticsEvent",`Unexpected response shape: ${r}`),n}async isConnected(){return null!==C()?{status_code:200,result:{connected:!0}}:{status_code:404,error:"Not connected to Grab app"}}async getSessionParams(){const e=await this.invoke({method:"getSessionParams"}),t=this.validate(ve,e);return t&&this.logger.warn("getSessionParams",`Unexpected response shape: ${t}`),e}}const we=p(),ke=x([D(we),j(500),j(501)]);class be extends A{constructor(){super("DeviceModule")}async isEsimSupported(){const e=await this.invoke({method:"isEsimSupported"}),t=this.validate(ke,e);return t&&this.logger.warn("isEsimSupported",`Unexpected response shape: ${t}`),e}}const _e=v({fileUrl:E(b(),d()),fileName:E(b(),u(1))}),xe=x([z,j(400),j(500),j(501)]);class Se extends A{constructor(){super("FileModule")}async downloadFile(e){const t=this.validate(_e,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"downloadFile",params:e}),r=this.validate(xe,n);return r&&this.logger.warn("downloadFile",`Unexpected response shape: ${r}`),n}}function Ee(e){const t=new Uint32Array(e);crypto.getRandomValues(t);let n="";for(let r=0;r<e;r+=1)n+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(t[r]%62);return n}async function Ue(e){const t=(new TextEncoder).encode(e);return function(e){const t=new Uint8Array(e);let n="";for(let e=0;e<t.byteLength;e+=1)n+=String.fromCharCode(t[e]);return btoa(n).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(await crypto.subtle.digest("SHA-256",t))}function $e(e,t){return e.major!==t.major?e.major>t.major:e.minor!==t.minor?e.minor>t.minor:e.patch>=t.patch}const Ce="grabid",Ae={staging:"https://partner-api.stg-myteksi.com/grabid/v1/oauth2/.well-known/openid-configuration",production:"https://partner-api.grab.com/grabid/v1/oauth2/.well-known/openid-configuration"};class Ie extends Error{constructor(e,t){super(e),this.cause=t,this.name="AuthorizationConfigurationError"}}const Me=v({clientId:E(b(),u(1)),redirectUri:E(b(),d()),scope:E(b(),u(1)),environment:w(["staging","production"]),responseMode:y(w(["redirect","in_place"]))}),Te=v({code:b(),state:b()}),Oe=x([D(Te),z,K,j(400),j(403),j(500),j(501)]),Ne=v({state:b(),codeVerifier:b(),nonce:b(),redirectUri:b()}),Pe=x([D(Ne),z,j(400)]),Re=x([z]);class Le extends A{constructor(){super("IdentityModule")}async fetchAuthorizationEndpoint(e){const t=Ae[e];if(!t)throw new Error(`Invalid environment: ${e}. Must be 'staging' or 'production'`);try{const e=await fetch(t);if(!e.ok)throw console.error(`Failed to fetch OpenID configuration from ${t}: ${e.status} ${e.statusText}`),new Ie("Failed to fetch authorization configuration");const n=await e.json();if(!n.authorization_endpoint)throw console.error("authorization_endpoint not found in OpenID configuration response"),new Ie("Invalid authorization configuration");return n.authorization_endpoint}catch(e){if(console.error("Error fetching authorization endpoint:",e),e instanceof Ie)throw e;throw new Error("Something wrong happened when fetching authorization configuration",{cause:e})}}async generatePKCEArtifacts(){const e=Ee(16),t=Ee(32),n=(r=Ee(64),btoa(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"));var r;return{nonce:e,state:t,codeVerifier:n,codeChallenge:await Ue(n),codeChallengeMethod:"S256"}}storePKCEArtifacts(e){this.setStorageItem("nonce",e.nonce),this.setStorageItem("state",e.state),this.setStorageItem("code_verifier",e.codeVerifier),this.setStorageItem("redirect_uri",e.redirectUri)}async getAuthorizationArtifacts(){const e=this.getStorageItem("state"),t=this.getStorageItem("code_verifier"),n=this.getStorageItem("nonce"),r=this.getStorageItem("redirect_uri");return null===e&&null===t&&null===n&&null===r?{status_code:204}:null!==e&&null!==t&&null!==n&&null!==r?{status_code:200,result:{state:e,codeVerifier:t,nonce:n,redirectUri:r}}:{status_code:400,error:"Inconsistent authorization artifacts in storage"}}async clearAuthorizationArtifacts(){return window.localStorage.removeItem(`${Ce}:nonce`),window.localStorage.removeItem(`${Ce}:state`),window.localStorage.removeItem(`${Ce}:code_verifier`),window.localStorage.removeItem(`${Ce}:redirect_uri`),window.localStorage.removeItem(`${Ce}:login_return_uri`),{status_code:204}}setStorageItem(e,t){window.localStorage.setItem(`${Ce}:${e}`,t)}getStorageItem(e){return window.localStorage.getItem(`${Ce}:${e}`)}static normalizeUrl(e){const t=new URL(e);return`${t.origin}${t.pathname}`}static buildAuthorizeUrl(e,t){return`${e}?${Object.entries(t).filter(e=>void 0!==e[1]&&null!==e[1]).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}`}static shouldUseWebConsent(e){const t=C();return!t||"staging"!==e.environment&&!$e(t.version,{major:5,minor:396,patch:0})}async performWebAuthorization(e){let t;this.setStorageItem("login_return_uri",window.location.href),this.setStorageItem("redirect_uri",e.redirectUri);try{t=await this.fetchAuthorizationEndpoint(e.environment)}catch(e){return{status_code:400,error:U(e)?e.message:"Could not fetch authorization endpoint"}}const n={client_id:e.clientId,scope:e.scope,response_type:"code",redirect_uri:e.redirectUri,nonce:e.nonce,state:e.state,code_challenge_method:e.codeChallengeMethod,code_challenge:e.codeChallenge},r=Le.buildAuthorizeUrl(t,n);return window.location.assign(r),{status_code:302}}async performNativeAuthorization(e){const t=await this.invoke({method:"authorize",params:{clientId:e.clientId,redirectUri:e.actualRedirectUri,scope:e.scope,nonce:e.nonce,state:e.state,codeChallenge:e.codeChallenge,codeChallengeMethod:e.codeChallengeMethod,responseMode:e.responseMode}}),n=this.validate(Oe,t);return n&&this.logger.warn("authorize",`Unexpected response shape: ${n}`),t}async authorize(e){const t=this.validate(Me,e);if(t)return{status_code:400,error:t};const n=await this.generatePKCEArtifacts(),r=e.responseMode||"redirect",s="in_place"===r?Le.normalizeUrl(window.location.href):e.redirectUri;this.storePKCEArtifacts({...n,redirectUri:s});const o={clientId:e.clientId,redirectUri:e.redirectUri,scope:e.scope,nonce:n.nonce,state:n.state,codeChallenge:n.codeChallenge,codeChallengeMethod:n.codeChallengeMethod};if(Le.shouldUseWebConsent(e))return this.performWebAuthorization({...o,environment:e.environment});try{const t=await this.performNativeAuthorization({...o,actualRedirectUri:s,responseMode:r});return 400===t.status_code||403===t.status_code||500===t.status_code||501===t.status_code?(console.error(`Native authorization returned ${t.status_code}, falling back to web flow:`,t.error),this.performWebAuthorization({...o,environment:e.environment})):t}catch(t){return console.error("Native authorization failed, falling back to web flow:",t),this.performWebAuthorization({...o,environment:e.environment})}}}const Be=b(),je=x([D(Be),z,j(400),j(500),j(501)]);class De extends A{constructor(){super("LocaleModule")}async getLanguageLocaleIdentifier(){const e=await this.invoke({method:"getLanguageLocaleIdentifier"}),t=this.validate(je,e);return t&&this.logger.warn("getLanguageLocaleIdentifier",`Unexpected response shape: ${t}`),e}}const ze=v({latitude:f(),longitude:f()}),Ke=x([D(ze),j(403),j(424),j(500),j(501)]),Ge=b(),We=x([D(Ge),z,j(403),j(424),j(500),j(501)]);class Fe extends A{constructor(){super("LocationModule")}async getCoordinate(){const e=await this.invoke({method:"getCoordinate"}),t=this.validate(Ke,e);return t&&this.logger.warn("getCoordinate",`Unexpected response shape: ${t}`),e}observeLocationChange(){return this.invokeStream({method:"observeLocationChange"})}async getCountryCode(){const e=await this.invoke({method:"getCountryCode"}),t=this.validate(We,e);return t&&this.logger.warn("getCountryCode",`Unexpected response shape: ${t}`),e}}const qe=v({type:w(["START_PLAYBACK","PROGRESS_PLAYBACK","START_SEEK","STOP_SEEK","STOP_PLAYBACK","CLOSE_PLAYBACK","PAUSE_PLAYBACK","RESUME_PLAYBACK","FAST_FORWARD_PLAYBACK","REWIND_PLAYBACK","ERROR_PLAYBACK","CHANGE_VOLUME"]),titleId:b(),position:f(),length:f()}),He=x([D(qe),z,j(400),j(424),j(500),j(501)]),Ve=x([D(qe),j(500),j(501)]);class Ye extends A{constructor(){super("MediaModule")}async playDRMContent(e){const t=await this.invoke({method:"playDRMContent",params:{data:e}}),n=this.validate(He,t);return n&&this.logger.warn("playDRMContent",`Unexpected response shape: ${n}`),t}observePlayDRMContent(e){return this.invokeStream({method:"observePlayDRMContent",params:{data:e}})}}const Je=v({endpoint:b(),method:w(["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"]),headers:y(k(b(),b())),query:y(k(b(),b())),body:y(S()),timeout:y(f())}),Qe=k(b(),S()),Xe=x([D(Qe),z,j(400),j(401),j(403),j(404),j(424),j(426),j(500),j(501)]),Ze=x([b(),Qe]),et=x([D(Ze),z,j(400),j(401),j(403),j(404),j(424),j(426),j(500),j(501)]);class tt extends A{constructor(){super("NetworkModule")}async send(e){const t=this.validate(Je,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"send",params:e}),r=this.validate(et,n);if(r&&this.logger.warn("send",`Unexpected raw response shape: ${r}`),I(n)&&B(n)&&"string"==typeof n.result)try{const e=JSON.parse(n.result),t={...n,result:e},r=this.validate(Xe,t);return r&&this.logger.warn("send",`Unexpected response shape after parsing: ${r}`),t}catch{return{status_code:500,error:"Failed to parse response result as JSON"}}const s=n,o=this.validate(Xe,s);return o&&this.logger.warn("send",`Unexpected response shape: ${o}`),s}}const nt=x([z,j(500),j(501)]);class rt extends A{constructor(){super("PlatformModule")}async back(){const e=await this.invoke({method:"back"}),t=this.validate(nt,e);return t&&this.logger.warn("back",`Unexpected response shape: ${t}`),e}}const st=v({email:b()}),ot=x([D(st),z,j(400),j(403),j(426),j(500),j(501)]),at=v({email:y(E(b(),u(1))),skipUserInput:y(p())}),it=v({email:b()}),ct=x([D(it),z,j(400),j(403),j(426),j(500),j(501)]);class ut extends A{constructor(){super("ProfileModule")}async fetchEmail(){const e=this.checkSupport(e=>$e(e.version,ut.MINIMUM_VERSION));if(e)return e;const t=await this.invoke({method:"fetchEmail"}),n=this.validate(ot,t);return n&&this.logger.warn("fetchEmail",`Unexpected response shape: ${n}`),t}async verifyEmail(e){const t=this.checkSupport(e=>$e(e.version,ut.MINIMUM_VERSION));if(t)return t;const n=this.validate(at,e??{});if(n)return{status_code:400,error:n};const r=await this.invoke({method:"verifyEmail",params:e}),s=this.validate(ct,r);return s&&this.logger.warn("verifyEmail",`Unexpected response shape: ${s}`),r}}ut.MINIMUM_VERSION={major:5,minor:399,patch:0};const dt=v({module:E(b(),u(1)),method:E(b(),u(1))}),lt=p(),ht=x([D(lt),j(400),j(424),j(500),j(501)]),pt=x([z,j(424),j(500),j(501)]);class gt extends A{constructor(){super("ScopeModule")}async hasAccessTo(e,t){const n={module:e,method:t},r=this.validate(dt,n);if(r)return{status_code:400,error:r};const s=await this.invoke({method:"hasAccessTo",params:n}),o=this.validate(ht,s);return o&&this.logger.warn("hasAccessTo",`Unexpected response shape: ${o}`),s}async reloadScopes(){const e=await this.invoke({method:"reloadScopes"}),t=this.validate(pt,e);return t&&this.logger.warn("reloadScopes",`Unexpected response shape: ${t}`),e}}const mt=x([z,j(400),j(403),j(500),j(501)]);class ft extends A{constructor(){super("SplashScreenModule")}async dismiss(){const e=await this.invoke({method:"dismiss"}),t=this.validate(mt,e);return t&&this.logger.warn("dismiss",`Unexpected response shape: ${t}`),e}}const vt=v({key:E(b(),u(1))}),yt=x([z,j(400),j(424),j(500),j(501)]),wt=vt,kt=v({value:m(p())}),bt=x([D(kt),j(400),j(424),j(500),j(501)]),_t=x([z,j(400),j(424),j(500),j(501)]),xt=vt,St=v({value:m(f())}),Et=x([D(St),j(400),j(424),j(500),j(501)]),Ut=x([z,j(400),j(424),j(500),j(501)]),$t=vt,Ct=v({value:m(b())}),At=x([D(Ct),j(400),j(424),j(500),j(501)]),It=x([z,j(400),j(424),j(500),j(501)]),Mt=vt,Tt=v({value:m(f())}),Ot=x([D(Tt),j(400),j(424),j(500),j(501)]),Nt=vt,Pt=x([z,j(400),j(424),j(500),j(501)]),Rt=x([z,j(424),j(500),j(501)]);class Lt extends A{constructor(){super("StorageModule")}async setBoolean(e,t){const n=await this.invoke({method:"setBoolean",params:{key:e,value:t}}),r=this.validate(yt,n);return r&&this.logger.warn("setBoolean",`Unexpected response shape: ${r}`),n}async getBoolean(e){const t={key:e},n=this.validate(wt,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getBoolean",params:t}),s=this.validate(bt,r);return s&&this.logger.warn("getBoolean",`Unexpected response shape: ${s}`),r}async setInt(e,t){const n=await this.invoke({method:"setInt",params:{key:e,value:t}}),r=this.validate(_t,n);return r&&this.logger.warn("setInt",`Unexpected response shape: ${r}`),n}async getInt(e){const t={key:e},n=this.validate(xt,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getInt",params:t}),s=this.validate(Et,r);return s&&this.logger.warn("getInt",`Unexpected response shape: ${s}`),r}async setString(e,t){const n=await this.invoke({method:"setString",params:{key:e,value:t}}),r=this.validate(Ut,n);return r&&this.logger.warn("setString",`Unexpected response shape: ${r}`),n}async getString(e){const t={key:e},n=this.validate($t,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getString",params:t}),s=this.validate(At,r);return s&&this.logger.warn("getString",`Unexpected response shape: ${s}`),r}async setDouble(e,t){const n=await this.invoke({method:"setDouble",params:{key:e,value:t}}),r=this.validate(It,n);return r&&this.logger.warn("setDouble",`Unexpected response shape: ${r}`),n}async getDouble(e){const t={key:e},n=this.validate(Mt,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"getDouble",params:t}),s=this.validate(Ot,r);return s&&this.logger.warn("getDouble",`Unexpected response shape: ${s}`),r}async remove(e){const t={key:e},n=this.validate(Nt,t);if(n)return{status_code:400,error:n};const r=await this.invoke({method:"remove",params:t}),s=this.validate(Pt,r);return s&&this.logger.warn("remove",`Unexpected response shape: ${s}`),r}async removeAll(){const e=await this.invoke({method:"removeAll"}),t=this.validate(Rt,e);return t&&this.logger.warn("removeAll",`Unexpected response shape: ${t}`),e}}const Bt=v({url:E(b(),d())}),jt=x([D(b()),j(400),j(424),j(500),j(501)]);class Dt extends A{constructor(){super("SystemWebViewKitModule")}async redirectToSystemWebView(e){const t=this.validate(Bt,e);if(t)return{status_code:400,error:t};const n=await this.invoke({method:"redirectToSystemWebView",params:e}),r=this.validate(jt,n);return r&&this.logger.warn("redirectToSystemWebView",`Unexpected response shape: ${r}`),n}}const zt=b(),Kt=x([D(zt),z,j(500),j(501)]);class Gt extends A{constructor(){super("UserAttributesModule")}async getSelectedTravelDestination(){const e=await this.invoke({method:"getSelectedTravelDestination"}),t=this.validate(Kt,e);return t&&this.logger.warn("getSelectedTravelDestination",`Unexpected response shape: ${t}`),e}}export{Me as AuthorizeRequestSchema,Oe as AuthorizeResponseSchema,Te as AuthorizeResultSchema,nt as BackResponseSchema,A as BaseModule,q as CameraModule,J as CheckoutModule,Re as ClearAuthorizationArtifactsResponseSchema,ae as CloseResponseSchema,Z as ContainerAnalyticsEventData,X as ContainerAnalyticsEventName,Q as ContainerAnalyticsEventState,ye as ContainerModule,qe as DRMPlaybackEventSchema,be as DeviceModule,mt as DismissSplashScreenResponseSchema,_e as DownloadFileRequestSchema,xe as DownloadFileResponseSchema,ot as FetchEmailResponseSchema,st as FetchEmailResultSchema,Se as FileModule,Pe as GetAuthorizationArtifactsResponseSchema,Ne as GetAuthorizationArtifactsResultSchema,wt as GetBooleanRequestSchema,bt as GetBooleanResponseSchema,kt as GetBooleanResultSchema,Ke as GetCoordinateResponseSchema,ze as GetCoordinateResultSchema,We as GetCountryCodeResponseSchema,Ge as GetCountryCodeResultSchema,Mt as GetDoubleRequestSchema,Ot as GetDoubleResponseSchema,Tt as GetDoubleResultSchema,xt as GetIntRequestSchema,Et as GetIntResponseSchema,St as GetIntResultSchema,je as GetLanguageLocaleIdentifierResponseSchema,Be as GetLanguageLocaleIdentifierResultSchema,Kt as GetSelectedTravelDestinationResponseSchema,zt as GetSelectedTravelDestinationResultSchema,ve as GetSessionParamsResponseSchema,fe as GetSessionParamsResultSchema,$t as GetStringRequestSchema,At as GetStringResponseSchema,Ct as GetStringResultSchema,dt as HasAccessToRequestSchema,ht as HasAccessToResponseSchema,lt as HasAccessToResultSchema,ne as HideBackButtonResponseSchema,ue as HideLoaderResponseSchema,se as HideRefreshButtonResponseSchema,Le as IdentityModule,me as IsConnectedResponseSchema,ge as IsConnectedResultSchema,ke as IsEsimSupportedResponseSchema,we as IsEsimSupportedResultSchema,De as LocaleModule,Fe as LocationModule,$ as Logger,Ye as MediaModule,tt as NetworkModule,Ve as ObserveDRMPlaybackResponseSchema,ie as OnContentLoadedResponseSchema,le as OnCtaTapResponseSchema,de as OpenExternalLinkResponseSchema,rt as PlatformModule,He as PlayDRMContentResponseSchema,ut as ProfileModule,Bt as RedirectToSystemWebViewRequestSchema,jt as RedirectToSystemWebViewResponseSchema,pt as ReloadScopesResponseSchema,Rt as RemoveAllResponseSchema,Pt as RemoveResponseSchema,G as ScanQRCodeRequestSchema,F as ScanQRCodeResponseSchema,W as ScanQRCodeResultSchema,gt as ScopeModule,he as SendAnalyticsEventRequestSchema,pe as SendAnalyticsEventResponseSchema,Je as SendRequestSchema,Xe as SendResponseSchema,Qe as SendResultSchema,ee as SetBackgroundColorResponseSchema,yt as SetBooleanResponseSchema,It as SetDoubleResponseSchema,_t as SetIntResponseSchema,Ut as SetStringResponseSchema,te as SetTitleResponseSchema,re as ShowBackButtonResponseSchema,ce as ShowLoaderResponseSchema,oe as ShowRefreshButtonResponseSchema,ft as SplashScreenModule,Lt as StorageModule,Dt as SystemWebViewKitModule,H as TriggerCheckoutRequestSchema,Y as TriggerCheckoutResponseSchema,V as TriggerCheckoutResultSchema,Gt as UserAttributesModule,at as VerifyEmailRequestSchema,ct as VerifyEmailResponseSchema,it as VerifyEmailResultSchema,B as hasResult,P as isClientError,L as isError,N as isFound,T as isNoContent,M as isOk,O as isRedirection,R as isServerError,I as isSuccess};