expo-iap 4.0.2 → 4.1.0
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/README.md +2 -2
- package/build/types.d.ts +2 -0
- package/build/types.d.ts.map +1 -1
- package/build/types.js +1 -0
- package/build/types.js.map +1 -1
- package/build/utils/errorMapping.d.ts.map +1 -1
- package/build/utils/errorMapping.js +1 -0
- package/build/utils/errorMapping.js.map +1 -1
- package/openiap-versions.json +2 -2
- package/package.json +1 -1
- package/src/types.ts +2 -0
- package/src/utils/errorMapping.ts +1 -0
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Expo IAP is a powerful in-app purchase solution for Expo and React Native applic
|
|
|
9
9
|
|
|
10
10
|
If you're shipping an app with expo-iap, we’d love to hear about it—please share your product and feedback in [Who's using Expo IAP?](https://github.com/hyochan/expo-iap/discussions/143). Community stories help us keep improving the ecosystem.
|
|
11
11
|
|
|
12
|
-
<a href="https://openiap.dev"><img src="https://
|
|
12
|
+
<a href="https://openiap.dev"><img src="https://raw.githubusercontent.com/hyodotdev/openiap/main/logo.png" alt="Open IAP" height="40" /></a>
|
|
13
13
|
|
|
14
14
|
</div>
|
|
15
15
|
|
|
@@ -80,7 +80,7 @@ For detailed usage examples and error handling, see the [documentation](https://
|
|
|
80
80
|
|
|
81
81
|
## Powered by OpenIAP
|
|
82
82
|
|
|
83
|
-
<a href="https://openiap.dev"><img src="https://
|
|
83
|
+
<a href="https://openiap.dev"><img src="https://raw.githubusercontent.com/hyodotdev/openiap/main/logo.png" alt="OpenIAP" height="50" /></a>
|
|
84
84
|
|
|
85
85
|
Expo IAP conforms to the **[OpenIAP specification](https://openiap.dev)** — an open, vendor-neutral interoperability standard for in-app purchases. OpenIAP provides:
|
|
86
86
|
|
package/build/types.d.ts
CHANGED
|
@@ -325,6 +325,7 @@ export declare enum ErrorCode {
|
|
|
325
325
|
RemoteError = "remote-error",
|
|
326
326
|
ServiceDisconnected = "service-disconnected",
|
|
327
327
|
ServiceError = "service-error",
|
|
328
|
+
ServiceTimeout = "service-timeout",
|
|
328
329
|
SkuNotFound = "sku-not-found",
|
|
329
330
|
SkuOfferMismatch = "sku-offer-mismatch",
|
|
330
331
|
SyncError = "sync-error",
|
|
@@ -1012,6 +1013,7 @@ export interface PurchaseCommon {
|
|
|
1012
1013
|
}
|
|
1013
1014
|
export interface PurchaseError {
|
|
1014
1015
|
code: ErrorCode;
|
|
1016
|
+
debugMessage?: (string | null);
|
|
1015
1017
|
message: string;
|
|
1016
1018
|
productId?: (string | null);
|
|
1017
1019
|
}
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,MAAM,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAExF,MAAM,WAAW,6BAA6B;IAC5C,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAE7I;;;GAGG;AACH,MAAM,WAAW,uCAAuC;IACtD,2CAA2C;IAC3C,cAAc,EAAE,qBAAqB,CAAC;IACtC,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAqC;IACpD,yEAAyE;IACzE,cAAc,EAAE,qBAAqB,CAAC;IACtC;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC,gDAAgD;IAChD,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,iCAAiC,GAAG,aAAa,GAAG,mCAAmC,GAAG,yBAAyB,CAAC;AAEhI;;;;GAIG;AACH,MAAM,WAAW,mCAAmC;IAClD,mFAAmF;IACnF,cAAc,EAAE,qBAAqB,CAAC;IACtC,oDAAoD;IACpD,UAAU,EAAE,iCAAiC,CAAC;IAC9C,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,sCAAsC;IACrD;;;;OAIG;IACH,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IAChD;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,cAAc,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,8BAA8B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC;;;;OAIG;IACH,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IACjE,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IACzD,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,6BAA6B;IAC7B,IAAI,EAAE,iBAAiB,CAAC;IACxB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CAC1D;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,oBAAY,SAAS;IACnB,mBAAmB,yBAAyB;IAC5C,YAAY,kBAAkB;IAC9B,eAAe,qBAAqB;IACpC,6BAA6B,sCAAsC;IACnE,kBAAkB,wBAAwB;IAC1C,gBAAgB,sBAAsB;IACtC,eAAe,qBAAqB;IACpC,cAAc,oBAAoB;IAClC,iBAAiB,uBAAuB;IACxC,YAAY,mBAAmB;IAC/B,mBAAmB,0BAA0B;IAC7C,eAAe,sBAAsB;IACrC,cAAc,oBAAoB;IAClC,WAAW,gBAAgB;IAC3B,YAAY,mBAAmB;IAC/B,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,QAAQ,cAAc;IACtB,WAAW,iBAAiB;IAC5B,OAAO,YAAY;IACnB,aAAa,mBAAmB;IAChC,0BAA0B,iCAAiC;IAC3D,gCAAgC,wCAAwC;IACxE,4BAA4B,mCAAmC;IAC/D,YAAY,kBAAkB;IAC9B,aAAa,mBAAmB;IAChC,eAAe,qBAAqB;IACpC,qBAAqB,4BAA4B;IACjD,WAAW,iBAAiB;IAC5B,mBAAmB,yBAAyB;IAC5C,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,WAAW,kBAAkB;IAC7B,gBAAgB,uBAAuB;IACvC,SAAS,eAAe;IACxB,2BAA2B,kCAAkC;IAC7D,OAAO,YAAY;IACnB,aAAa,mBAAmB;IAChC,SAAS,eAAe;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,aAAa,GAAG,mCAAmC,GAAG,yBAAyB,CAAC;AAE5H;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,+BAA+B,GAAG,sBAAsB,CAAC;AAE/G;;;;GAIG;AACH,MAAM,WAAW,sCAAsC;IACrD,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,oCAAoC;IACnD,2EAA2E;IAC3E,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,uEAAuE;AACvE,MAAM,WAAW,yCAAyC;IACxD,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,uCAAuC,GAAG,SAAS,CAAC;AAEhE,4EAA4E;AAC5E,MAAM,WAAW,wCAAwC;IACvD,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,sCAAsC,GAAG,aAAa,GAAG,UAAU,CAAC;AAEhF,qDAAqD;AACrD,MAAM,WAAW,6BAA6B;IAC5C,wDAAwD;IACxD,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,iEAAiE;AACjE,MAAM,MAAM,4BAA4B,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,wDAAwD;IACxD,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,2CAA2C;IAC3C,MAAM,EAAE,4BAA4B,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,EAAE,GAAG,OAAO,EAAE,GAAG,mBAAmB,EAAE,GAAG,IAAI,CAAC;AAErG,MAAM,MAAM,QAAQ,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,oCAAoC,CAAC;AAE7J,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElE,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAE3K,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IACvE;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;CAC9D;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,iCAAiC,EAAE,MAAM,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C,oEAAoE;IACpE,cAAc,EAAE,qBAAqB,CAAC;IACtC,oCAAoC;IACpC,UAAU,EAAE,6BAA6B,CAAC;IAC1C,oCAAoC;IACpC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,wDAAwD;IACxD,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,0CAA0C,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,iEAAiE;IACjE,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,wDAAwD;IACxD,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC;;;;;;;;OAQG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAChE;;;;;;;OAOG;IACH,2CAA2C,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC5F,sDAAsD;IACtD,uBAAuB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,qDAAqD;IACrD,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;;;;OAOG;IACH,gCAAgC,EAAE,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACnF;;;;;;;OAOG;IACH,yBAAyB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,kDAAkD;IAClD,6BAA6B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,6DAA6D;IAC7D,8BAA8B,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACvE;;;;OAIG;IACH,qCAAqC,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChF,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D;;;;;;;OAOG;IACH,mCAAmC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,mDAAmD;IACnD,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,mCAAmC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD;;;;;OAKG;IACH,uCAAuC,EAAE,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAC5F,6EAA6E;IAC7E,0BAA0B,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/C,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9C,+DAA+D;IAC/D,0BAA0B,EAAE,OAAO,CAAC,gCAAgC,CAAC,CAAC;CACvE;AAID,MAAM,MAAM,sCAAsC,GAAG,MAAM,CAAC;AAE5D,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,kCAAkC,GAAG,MAAM,CAAC;AAExD,MAAM,MAAM,uDAAuD,GAAG,qBAAqB,CAAC;AAE5F,MAAM,MAAM,mCAAmC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;AAEvF,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC;CACzB;AAGD,MAAM,MAAM,0BAA0B,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;AAEnF,MAAM,MAAM,4CAA4C,GAAG,qBAAqB,CAAC;AAEjF,MAAM,MAAM,qCAAqC,GAAG,+BAA+B,CAAC;AAEpF,MAAM,MAAM,0CAA0C,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,2BAA2B,GACnC;IACE,0CAA0C;IAC1C,OAAO,EAAE,+BAA+B,CAAC;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,8FAA8F;IAC9F,qBAAqB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC,GACD;IACE,8CAA8C;IAC9C,OAAO,EAAE,mCAAmC,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,qBAAqB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC,CAAC;AAGN,MAAM,MAAM,mDAAmD,GAAG,uCAAuC,CAAC;AAE1G,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAE9D,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AAE7D,MAAM,MAAM,sCAAsC,GAAG,+BAA+B,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,GAAG,SAAS,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,kCAAkC,CAAC,EAAE,CAAC,wCAAwC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzF,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD;;;OAGG;IACH,+BAA+B,CAAC,EAAE,CAAC,sCAAsC,EAAE,GAAG,IAAI,CAAC,CAAC;IACpF;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wCAAwC;IACvD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,mCAAmC;IACnC,mBAAmB,CAAC,EAAE,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IAC1D,eAAe;IACf,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,yBAAyB;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD,sCAAsC;IACtC,eAAe,CAAC,EAAE,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,mBAAmB,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,WAAW,GAAG,qBAAqB,GAAG,SAAS,CAAC;AAE1F,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,GAAG,sBAAsB,CAAC;AAEtF,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,kCAAkC,CAAC,EAAE,CAAC,wCAAwC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzF,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD;;;OAGG;IACH,+BAA+B,EAAE,sCAAsC,EAAE,CAAC;IAC1E;;;;OAIG;IACH,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,sCAAsC;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,mCAAmC,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,+BAA+B,EAAE,cAAc,CAAC;IAChD,sCAAsC,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACxE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,2BAA2B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,yBAAyB,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,gBAAgB,GAAG,6BAA6B,GAAG,2BAA2B,CAAC;AAE3H;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,mBAAmB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACxB,qBAAqB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACtC,0BAA0B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,0BAA0B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IACrE,oCAAoC;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,oCAAoC;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,gCAAgC,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,oCAAoC;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,6BAA6B,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,oCAAoC;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,wBAAwB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,qBAAqB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,6BAA6B,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACjD;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3C,6CAA6C;IAC7C,yBAAyB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,KAAK;IACpB;;;OAGG;IACH,mCAAmC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;IACtD,wDAAwD;IACxD,aAAa,EAAE,OAAO,CAAC,CAAC,qBAAqB,EAAE,GAAG,OAAO,EAAE,GAAG,mBAAmB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7F,0EAA0E;IAC1E,sBAAsB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtD,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,uDAAuD;IACvD,qBAAqB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C;;;;OAIG;IACH,qCAAqC,EAAE,OAAO,CAAC,wCAAwC,CAAC,CAAC;IACzF,8DAA8D;IAC9D,yBAAyB,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,sDAAsD;IACtD,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC;;;;OAIG;IACH,0CAA0C,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,oEAAoE;IACpE,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gDAAgD;IAChD,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,2DAA2D;IAC3D,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACxD;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACtD;AAID,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAEpD,MAAM,MAAM,+BAA+B,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;AAE5E,MAAM,MAAM,8BAA8B,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;AAElF,MAAM,MAAM,8CAA8C,GAAG,sCAAsC,CAAC;AAEpG,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,+BAA+B,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;AAE5E,MAAM,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAEpD,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,0CAA0C;IAC1C,4CAA4C,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChE,0CAA0C;IAC1C,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3B,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,0CAA0C;IAC1C,OAAO,EAAE,+BAA+B,CAAC;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,8FAA8F;IAC9F,qBAAqB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC,GACD;IACE,8CAA8C;IAC9C,OAAO,EAAE,mCAAmC,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,qBAAqB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC9C,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;IAC/C,yCAAyC;IACzC,KAAK,CAAC,EAAE,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACzC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;IAC9C,oCAAoC;IACpC,GAAG,CAAC,EAAE,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;AAEjE,MAAM,WAAW,+BAA+B;IAC9C;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,6CAA6C;IAC7C,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,gCAAgC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,CAAC,6BAA6B,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9D;;;OAGG;IACH,oCAAoC,CAAC,EAAE,CAAC,2CAA2C,GAAG,IAAI,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,4CAA4C,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChE,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC7C;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mCAAmC;IAClD,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;IACnD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;IAC7C,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;IAClD,oCAAoC;IACpC,GAAG,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,yCAAyC;IACxD,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,0CAA0C;IACzD,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oCAAoC;IACnD,mEAAmE;IACnE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,CAAC,yCAAyC,GAAG,IAAI,CAAC,CAAC;IAC3D,iDAAiD;IACjD,MAAM,CAAC,EAAE,CAAC,0CAA0C,GAAG,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,qCAAqC;IACpD,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,iCAAiC,GAAG,4CAA4C,GAAG,iBAAiB,CAAC;AAE1I,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,+BAA+B,EAAE,sCAAsC,CAAC;IACxE,sEAAsE;IACtE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,aAAa,EAAE,aAAa,CAAC;IAC7B,kFAAkF;IAClF,eAAe,EAAE,QAAQ,CAAC;IAC1B;;;OAGG;IACH,wBAAwB,EAAE,wBAAwB,CAAC;CACpD;AAGD,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAClD,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,0BAA0B,CAAC;CAChD;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3B,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IACvE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnC,oCAAoC;IACpC,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3B,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,2CAA2C;IAC3C,WAAW,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACnC,yCAAyC;IACzC,MAAM,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACrC,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACrD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,0BAA0B,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAED,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC;AAEnF,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,EAAE,sBAAsB,CAAC;IAC7B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhF,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,2CAA2C;IAC1D,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,eAAe,EAAE,kCAAkC,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,MAAM,kCAAkC,GAAG,0BAA0B,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,UAAU,GAAG,eAAe,CAAC;AAEzM,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,iEAAiE;IACjE,wBAAwB,EAAE,MAAM,CAAC;IACjC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IAC5C,iDAAiD;IACjD,MAAM,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;IAC9C,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,GAAG,2BAA2B,GAAG,uBAAuB,CAAC;AAEvH,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,iEAAiE;IACjE,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACtC,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;IACvD,QAAQ,EAAE,4BAA4B,CAAC;CACxC;AAED,MAAM,WAAW,gCAAgC;IAC/C,2CAA2C;IAC3C,MAAM,CAAC,EAAE,CAAC,+BAA+B,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,qCAAqC,GAAG,IAAI,CAAC,CAAC;IACxD,QAAQ,EAAE,4BAA4B,CAAC;CACxC;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,mCAAmC,EAAE,KAAK,CAAC;IAC3C,qBAAqB,EAAE,8BAA8B,CAAC;IACtD,aAAa,EAAE,sBAAsB,CAAC;IACtC,sBAAsB,EAAE,+BAA+B,CAAC;IACxD,oBAAoB,EAAE,KAAK,CAAC;IAC5B,qBAAqB,EAAE,8BAA8B,CAAC;IACtD,qCAAqC,EAAE,8CAA8C,CAAC;IACtF,yBAAyB,EAAE,KAAK,CAAC;IACjC,qBAAqB,EAAE,KAAK,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC;IACrB,gBAAgB,EAAE,KAAK,CAAC;IACxB,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,sBAAsB,EAAE,+BAA+B,CAAC;IACxD,0CAA0C,EAAE,KAAK,CAAC;IAClD,0BAA0B,EAAE,mCAAmC,CAAC;IAChE,wBAAwB,EAAE,iCAAiC,CAAC;IAC5D,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,qBAAqB,EAAE,8BAA8B,CAAC;IACtD,kBAAkB,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,KAAK,IAC1C,YAAY,CAAC,CAAC,CAAC,SAAS,KAAK,GACzB,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAC3B,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,GAC/B,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACjD,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;CACnC,CAAC;AAIF,MAAM,MAAM,eAAe,GAAG;IAC5B,0BAA0B,EAAE,sCAAsC,CAAC;IACnE,qBAAqB,EAAE,iCAAiC,CAAC;IACzD,0CAA0C,EAAE,KAAK,CAAC;IAClD,mBAAmB,EAAE,KAAK,CAAC;IAC3B,sBAAsB,EAAE,kCAAkC,CAAC;IAC3D,oCAAoC,EAAE,KAAK,CAAC;IAC5C,2CAA2C,EAAE,uDAAuD,CAAC;IACrG,uBAAuB,EAAE,mCAAmC,CAAC;IAC7D,aAAa,EAAE,KAAK,CAAC;IACrB,iBAAiB,EAAE,6BAA6B,CAAC;IACjD,cAAc,EAAE,0BAA0B,CAAC;IAC3C,gCAAgC,EAAE,4CAA4C,CAAC;IAC/E,yBAAyB,EAAE,qCAAqC,CAAC;IACjE,6BAA6B,EAAE,KAAK,CAAC;IACrC,8BAA8B,EAAE,0CAA0C,CAAC;IAC3E,qCAAqC,EAAE,KAAK,CAAC;IAC7C,eAAe,EAAE,2BAA2B,CAAC;IAC7C,mCAAmC,EAAE,KAAK,CAAC;IAC3C,gBAAgB,EAAE,KAAK,CAAC;IACxB,mCAAmC,EAAE,KAAK,CAAC;IAC3C,uCAAuC,EAAE,mDAAmD,CAAC;IAC7F,0BAA0B,EAAE,KAAK,CAAC;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,eAAe,EAAE,2BAA2B,CAAC;IAC7C,cAAc,EAAE,0BAA0B,CAAC;IAC3C,0BAA0B,EAAE,sCAAsC,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,QAAQ,IAChD,eAAe,CAAC,CAAC,CAAC,SAAS,KAAK,GAC5B,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC9B,SAAS,SAAS,eAAe,CAAC,CAAC,CAAC,GAClC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GACvD,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;KAC5B,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;CACzC,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IAChC,+BAA+B,EAAE,KAAK,CAAC;IACvC,kBAAkB,EAAE,KAAK,CAAC;IAC1B,aAAa,EAAE,KAAK,CAAC;IACrB,eAAe,EAAE,KAAK,CAAC;IACvB,wBAAwB,EAAE,KAAK,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,YAAY,IACxD,mBAAmB,CAAC,CAAC,CAAC,SAAS,KAAK,GAChC,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAClC,SAAS,SAAS,mBAAmB,CAAC,CAAC,CAAC,GACtC,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC/D,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;CACjD,CAAC"}
|
package/build/types.js
CHANGED
|
@@ -35,6 +35,7 @@ export var ErrorCode;
|
|
|
35
35
|
ErrorCode["RemoteError"] = "remote-error";
|
|
36
36
|
ErrorCode["ServiceDisconnected"] = "service-disconnected";
|
|
37
37
|
ErrorCode["ServiceError"] = "service-error";
|
|
38
|
+
ErrorCode["ServiceTimeout"] = "service-timeout";
|
|
38
39
|
ErrorCode["SkuNotFound"] = "sku-not-found";
|
|
39
40
|
ErrorCode["SkuOfferMismatch"] = "sku-offer-mismatch";
|
|
40
41
|
ErrorCode["SyncError"] = "sync-error";
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,mEAAmE;AACnE,+EAA+E;AA6T/E,MAAM,CAAN,IAAY,SAuCX;AAvCD,WAAY,SAAS;IACnB,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,iDAAoC,CAAA;IACpC,gFAAmE,CAAA;IACnE,uDAA0C,CAAA;IAC1C,mDAAsC,CAAA;IACtC,iDAAoC,CAAA;IACpC,+CAAkC,CAAA;IAClC,qDAAwC,CAAA;IACxC,4CAA+B,CAAA;IAC/B,0DAA6C,CAAA;IAC7C,kDAAqC,CAAA;IACrC,+CAAkC,CAAA;IAClC,wCAA2B,CAAA;IAC3B,4CAA+B,CAAA;IAC/B,iDAAoC,CAAA;IACpC,2CAA8B,CAAA;IAC9B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,wEAA2D,CAAA;IAC3D,qFAAwE,CAAA;IACxE,4EAA+D,CAAA;IAC/D,2CAA8B,CAAA;IAC9B,6CAAgC,CAAA;IAChC,iDAAoC,CAAA;IACpC,8DAAiD,CAAA;IACjD,yCAA4B,CAAA;IAC5B,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,qCAAwB,CAAA;IACxB,0EAA6D,CAAA;IAC7D,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,qCAAwB,CAAA;AAC1B,CAAC,EAvCW,SAAS,KAAT,SAAS,QAuCpB;AAmlDD,mCAAmC","sourcesContent":["// ============================================================================\n// AUTO-GENERATED TYPES — DO NOT EDIT DIRECTLY\n// Run `npm run generate` after updating any *.graphql schema file.\n// ============================================================================\n\nexport interface ActiveSubscription {\n autoRenewingAndroid?: (boolean | null);\n basePlanIdAndroid?: (string | null);\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n daysUntilExpirationIOS?: (number | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n isActive: boolean;\n productId: string;\n purchaseToken?: (string | null);\n /** Required for subscription upgrade/downgrade on Android */\n purchaseTokenAndroid?: (string | null);\n /**\n * Renewal information from StoreKit 2 (iOS only). Contains details about subscription renewal status,\n * pending upgrades/downgrades, and auto-renewal preferences.\n */\n renewalInfoIOS?: (RenewalInfoIOS | null);\n transactionDate: number;\n transactionId: string;\n /**\n * @deprecated iOS only - use daysUntilExpirationIOS instead.\n * Whether the subscription will expire soon (within 7 days).\n * Consider using daysUntilExpirationIOS for more precise control.\n */\n willExpireSoon?: (boolean | null);\n}\n\n/**\n * Alternative billing mode for Android\n * Controls which billing system is used\n * @deprecated Use enableBillingProgramAndroid with BillingProgramAndroid instead.\n * Use USER_CHOICE_BILLING for user choice billing, EXTERNAL_OFFER for alternative only.\n */\nexport type AlternativeBillingModeAndroid = 'none' | 'user-choice' | 'alternative-only';\n\nexport interface AndroidSubscriptionOfferInput {\n /** Offer token */\n offerToken: string;\n /** Product SKU */\n sku: string;\n}\n\nexport interface AppTransaction {\n appId: number;\n appTransactionId?: (string | null);\n appVersion: string;\n appVersionId: number;\n bundleId: string;\n deviceVerification: string;\n deviceVerificationNonce: string;\n environment: string;\n originalAppVersion: string;\n originalPlatform?: (string | null);\n originalPurchaseDate: number;\n preorderDate?: (number | null);\n signedDate: number;\n}\n\n/**\n * Billing program types for external content links, external offers, and external payments (Android)\n * Available in Google Play Billing Library 8.2.0+, EXTERNAL_PAYMENTS added in 8.3.0\n */\nexport type BillingProgramAndroid = 'unspecified' | 'user-choice-billing' | 'external-content-link' | 'external-offer' | 'external-payments';\n\n/**\n * Result of checking billing program availability (Android)\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramAvailabilityResultAndroid {\n /** The billing program that was checked */\n billingProgram: BillingProgramAndroid;\n /** Whether the billing program is available for the user */\n isAvailable: boolean;\n}\n\n/**\n * Reporting details for transactions made outside of Google Play Billing (Android)\n * Contains the external transaction token needed for reporting\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramReportingDetailsAndroid {\n /** The billing program that the reporting details are associated with */\n billingProgram: BillingProgramAndroid;\n /**\n * External transaction token used to report transactions made outside of Google Play Billing.\n * This token must be used when reporting the external transaction to Google.\n */\n externalTransactionToken: string;\n}\n\n/**\n * Extended billing result with sub-response code (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport interface BillingResultAndroid {\n /** Debug message from the billing library */\n debugMessage?: (string | null);\n /** The response code from the billing operation */\n responseCode: number;\n /**\n * Sub-response code for more granular error information (8.0+).\n * Provides additional context when responseCode indicates an error.\n */\n subResponseCode?: (SubResponseCodeAndroid | null);\n}\n\nexport interface DeepLinkOptions {\n /** Android package name to target (required on Android) */\n packageNameAndroid?: (string | null);\n /** Android SKU to open (required on Android) */\n skuAndroid?: (string | null);\n}\n\n/**\n * Launch mode for developer billing option (Android)\n * Determines how the external payment URL is launched\n * Available in Google Play Billing Library 8.3.0+\n */\nexport type DeveloperBillingLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Parameters for developer billing option in purchase flow (Android)\n * Used with BillingFlowParams to enable external payments flow\n * Available in Google Play Billing Library 8.3.0+\n */\nexport interface DeveloperBillingOptionParamsAndroid {\n /** The billing program (should be EXTERNAL_PAYMENTS for external payments flow) */\n billingProgram: BillingProgramAndroid;\n /** The launch mode for the external payment link */\n launchMode: DeveloperBillingLaunchModeAndroid;\n /** The URI where the external payment will be processed */\n linkUri: string;\n}\n\n/**\n * Details provided when user selects developer billing option (Android)\n * Received via DeveloperProvidedBillingListener callback\n * Available in Google Play Billing Library 8.3.0+\n */\nexport interface DeveloperProvidedBillingDetailsAndroid {\n /**\n * External transaction token used to report transactions made through developer billing.\n * This token must be used when reporting the external transaction to Google Play.\n * Must be reported within 24 hours of the transaction.\n */\n externalTransactionToken: string;\n}\n\n/**\n * Discount amount details for one-time purchase offers (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface DiscountAmountAndroid {\n /** Discount amount in micro-units (1,000,000 = 1 unit of currency) */\n discountAmountMicros: string;\n /** Formatted discount amount with currency sign (e.g., \"$4.99\") */\n formattedDiscountAmount: string;\n}\n\n/**\n * Discount display information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface DiscountDisplayInfoAndroid {\n /**\n * Absolute discount amount details\n * Only returned for fixed amount discounts\n */\n discountAmount?: (DiscountAmountAndroid | null);\n /**\n * Percentage discount (e.g., 33 for 33% off)\n * Only returned for percentage-based discounts\n */\n percentageDiscount?: (number | null);\n}\n\n/**\n * Discount information returned from the store.\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface DiscountIOS {\n identifier: string;\n localizedPrice?: (string | null);\n numberOfPeriods: number;\n paymentMode: PaymentModeIOS;\n price: string;\n priceAmount: number;\n subscriptionPeriod: string;\n type: string;\n}\n\n/**\n * Standardized one-time product discount offer.\n * Provides a unified interface for one-time purchase discounts across platforms.\n *\n * Currently supported on Android (Google Play Billing 7.0+).\n * iOS does not support one-time purchase discounts in the same way.\n *\n * @see https://openiap.dev/docs/features/discount\n */\nexport interface DiscountOffer {\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency: string;\n /**\n * [Android] Fixed discount amount in micro-units.\n * Only present for fixed amount discounts.\n */\n discountAmountMicrosAndroid?: (string | null);\n /** Formatted display price string (e.g., \"$4.99\") */\n displayPrice: string;\n /** [Android] Formatted discount amount string (e.g., \"$5.00 OFF\"). */\n formattedDiscountAmountAndroid?: (string | null);\n /**\n * [Android] Original full price in micro-units before discount.\n * Divide by 1,000,000 to get the actual price.\n * Use for displaying strikethrough original price.\n */\n fullPriceMicrosAndroid?: (string | null);\n /**\n * Unique identifier for the offer.\n * - iOS: Not applicable (one-time discounts not supported)\n * - Android: offerId from ProductAndroidOneTimePurchaseOfferDetail\n */\n id?: (string | null);\n /**\n * [Android] Limited quantity information.\n * Contains maximumQuantity and remainingQuantity.\n */\n limitedQuantityInfoAndroid?: (LimitedQuantityInfoAndroid | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /**\n * [Android] Percentage discount (e.g., 33 for 33% off).\n * Only present for percentage-based discounts.\n */\n percentageDiscountAndroid?: (number | null);\n /**\n * [Android] Pre-order details if this is a pre-order offer.\n * Available in Google Play Billing Library 8.1.0+\n */\n preorderDetailsAndroid?: (PreorderDetailsAndroid | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Purchase option ID for this offer.\n * Used to identify which purchase option the user selected.\n * Available in Google Play Billing Library 7.0+\n */\n purchaseOptionIdAndroid?: (string | null);\n /** [Android] Rental details if this is a rental offer. */\n rentalDetailsAndroid?: (RentalDetailsAndroid | null);\n /** Type of discount offer */\n type: DiscountOfferType;\n /**\n * [Android] Valid time window for the offer.\n * Contains startTimeMillis and endTimeMillis.\n */\n validTimeWindowAndroid?: (ValidTimeWindowAndroid | null);\n}\n\n/**\n * iOS DiscountOffer (output type).\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface DiscountOfferIOS {\n /** Discount identifier */\n identifier: string;\n /** Key identifier for validation */\n keyIdentifier: string;\n /** Cryptographic nonce */\n nonce: string;\n /** Signature for validation */\n signature: string;\n /** Timestamp of discount offer */\n timestamp: number;\n}\n\nexport interface DiscountOfferInputIOS {\n /** Discount identifier */\n identifier: string;\n /** Key identifier for validation */\n keyIdentifier: string;\n /** Cryptographic nonce */\n nonce: string;\n /** Signature for validation */\n signature: string;\n /** Timestamp of discount offer */\n timestamp: number;\n}\n\n/**\n * Discount offer type enumeration.\n * Categorizes the type of discount or promotional offer.\n */\nexport type DiscountOfferType = 'introductory' | 'promotional' | 'one-time';\n\nexport interface EntitlementIOS {\n jsonRepresentation: string;\n sku: string;\n transactionId: string;\n}\n\nexport enum ErrorCode {\n ActivityUnavailable = 'activity-unavailable',\n AlreadyOwned = 'already-owned',\n AlreadyPrepared = 'already-prepared',\n BillingResponseJsonParseError = 'billing-response-json-parse-error',\n BillingUnavailable = 'billing-unavailable',\n ConnectionClosed = 'connection-closed',\n DeferredPayment = 'deferred-payment',\n DeveloperError = 'developer-error',\n DuplicatePurchase = 'duplicate-purchase',\n EmptySkuList = 'empty-sku-list',\n FeatureNotSupported = 'feature-not-supported',\n IapNotAvailable = 'iap-not-available',\n InitConnection = 'init-connection',\n Interrupted = 'interrupted',\n ItemNotOwned = 'item-not-owned',\n ItemUnavailable = 'item-unavailable',\n NetworkError = 'network-error',\n NotEnded = 'not-ended',\n NotPrepared = 'not-prepared',\n Pending = 'pending',\n PurchaseError = 'purchase-error',\n PurchaseVerificationFailed = 'purchase-verification-failed',\n PurchaseVerificationFinishFailed = 'purchase-verification-finish-failed',\n PurchaseVerificationFinished = 'purchase-verification-finished',\n QueryProduct = 'query-product',\n ReceiptFailed = 'receipt-failed',\n ReceiptFinished = 'receipt-finished',\n ReceiptFinishedFailed = 'receipt-finished-failed',\n RemoteError = 'remote-error',\n ServiceDisconnected = 'service-disconnected',\n ServiceError = 'service-error',\n SkuNotFound = 'sku-not-found',\n SkuOfferMismatch = 'sku-offer-mismatch',\n SyncError = 'sync-error',\n TransactionValidationFailed = 'transaction-validation-failed',\n Unknown = 'unknown',\n UserCancelled = 'user-cancelled',\n UserError = 'user-error'\n}\n\n/**\n * Launch mode for external link flow (Android)\n * Determines how the external URL is launched\n * Available in Google Play Billing Library 8.2.0+\n */\nexport type ExternalLinkLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Link type for external link flow (Android)\n * Specifies the type of external link destination\n * Available in Google Play Billing Library 8.2.0+\n */\nexport type ExternalLinkTypeAndroid = 'unspecified' | 'link-to-digital-content-offer' | 'link-to-app-download';\n\n/**\n * External offer availability result (Android)\n * @deprecated Use BillingProgramAvailabilityResultAndroid with isBillingProgramAvailableAsync instead\n * Available in Google Play Billing Library 6.2.0+, deprecated in 8.2.0\n */\nexport interface ExternalOfferAvailabilityResultAndroid {\n /** Whether external offers are available for the user */\n isAvailable: boolean;\n}\n\n/**\n * External offer reporting details (Android)\n * @deprecated Use BillingProgramReportingDetailsAndroid with createBillingProgramReportingDetailsAsync instead\n * Available in Google Play Billing Library 6.2.0+, deprecated in 8.2.0\n */\nexport interface ExternalOfferReportingDetailsAndroid {\n /** External transaction token for reporting external offer transactions */\n externalTransactionToken: string;\n}\n\n/** Result of showing ExternalPurchaseCustomLink notice (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkNoticeResultIOS {\n /** Whether the user chose to continue to external purchase */\n continued: boolean;\n /** Optional error message if the presentation failed */\n error?: (string | null);\n}\n\n/**\n * Notice types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Determines the style of disclosure notice to display.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/noticetype\n */\nexport type ExternalPurchaseCustomLinkNoticeTypeIOS = 'browser';\n\n/** Result of requesting an ExternalPurchaseCustomLink token (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkTokenResultIOS {\n /** Optional error message if token retrieval failed */\n error?: (string | null);\n /**\n * The external purchase token string.\n * Report this token to Apple's External Purchase Server API.\n */\n token?: (string | null);\n}\n\n/**\n * Token types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Used to request different types of external purchase tokens for reporting to Apple.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n */\nexport type ExternalPurchaseCustomLinkTokenTypeIOS = 'acquisition' | 'services';\n\n/** Result of presenting an external purchase link */\nexport interface ExternalPurchaseLinkResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /** Whether the user completed the external purchase flow */\n success: boolean;\n}\n\n/** User actions on external purchase notice sheet (iOS 17.4+) */\nexport type ExternalPurchaseNoticeAction = 'continue' | 'dismissed';\n\n/**\n * Result of presenting external purchase notice sheet (iOS 17.4+)\n * Returns the token when user continues to external purchase.\n */\nexport interface ExternalPurchaseNoticeResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /**\n * External purchase token returned when user continues (iOS 17.4+).\n * This token should be reported to Apple's External Purchase Server API.\n * Only present when result is Continue.\n */\n externalPurchaseToken?: (string | null);\n /** Notice result indicating user action */\n result: ExternalPurchaseNoticeAction;\n}\n\nexport type FetchProductsResult = ProductOrSubscription[] | Product[] | ProductSubscription[] | null;\n\nexport type IapEvent = 'purchase-updated' | 'purchase-error' | 'promoted-product-ios' | 'user-choice-billing-android' | 'developer-provided-billing-android';\n\nexport type IapPlatform = 'ios' | 'android';\n\nexport type IapStore = 'unknown' | 'apple' | 'google' | 'horizon';\n\n/** Unified purchase states from IAPKit verification response. */\nexport type IapkitPurchaseState = 'entitled' | 'pending-acknowledgment' | 'pending' | 'canceled' | 'expired' | 'ready-to-consume' | 'consumed' | 'unknown' | 'inauthentic';\n\n/** Connection initialization configuration */\nexport interface InitConnectionConfig {\n /**\n * Alternative billing mode for Android\n * If not specified, defaults to NONE (standard Google Play billing)\n * @deprecated Use enableBillingProgramAndroid instead.\n * Use USER_CHOICE_BILLING for user choice billing, EXTERNAL_OFFER for alternative only.\n */\n alternativeBillingModeAndroid?: (AlternativeBillingModeAndroid | null);\n /**\n * Enable a specific billing program for Android (7.0+)\n * When set, enables the specified billing program for external transactions.\n * - USER_CHOICE_BILLING: User can select between Google Play or alternative (7.0+)\n * - EXTERNAL_CONTENT_LINK: Link to external content (8.2.0+)\n * - EXTERNAL_OFFER: External offers for digital content (8.2.0+)\n * - EXTERNAL_PAYMENTS: Developer provided billing, Japan only (8.3.0+)\n */\n enableBillingProgramAndroid?: (BillingProgramAndroid | null);\n}\n\n/**\n * Installment plan details for subscription offers (Android)\n * Contains information about the installment plan commitment.\n * Available in Google Play Billing Library 7.0+\n */\nexport interface InstallmentPlanDetailsAndroid {\n /**\n * Committed payments count after a user signs up for this subscription plan.\n * For example, for a monthly subscription with commitmentPaymentsCount of 12,\n * users will be charged monthly for 12 months after signup.\n */\n commitmentPaymentsCount: number;\n /**\n * Subsequent committed payments count after the subscription plan renews.\n * For example, for a monthly subscription with subsequentCommitmentPaymentsCount of 12,\n * users will be committed to another 12 monthly payments when the plan renews.\n * Returns 0 if the installment plan has no subsequent commitment (reverts to normal plan).\n */\n subsequentCommitmentPaymentsCount: number;\n}\n\n/**\n * Parameters for launching an external link (Android)\n * Used with launchExternalLink to initiate external offer or app install flows\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface LaunchExternalLinkParamsAndroid {\n /** The billing program (EXTERNAL_CONTENT_LINK or EXTERNAL_OFFER) */\n billingProgram: BillingProgramAndroid;\n /** The external link launch mode */\n launchMode: ExternalLinkLaunchModeAndroid;\n /** The type of the external link */\n linkType: ExternalLinkTypeAndroid;\n /** The URI where the content will be accessed from */\n linkUri: string;\n}\n\n/**\n * Limited quantity information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface LimitedQuantityInfoAndroid {\n /** Maximum quantity a user can purchase */\n maximumQuantity: number;\n /** Remaining quantity the user can still purchase */\n remainingQuantity: number;\n}\n\nexport interface Mutation {\n /** Acknowledge a non-consumable purchase or subscription */\n acknowledgePurchaseAndroid: Promise<boolean>;\n /** Initiate a refund request for a product (iOS 15+) */\n beginRefundRequestIOS?: Promise<(string | null)>;\n /**\n * Check if alternative billing is available for this user/device\n * Step 1 of alternative billing flow\n *\n * Returns true if available, false otherwise\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n checkAlternativeBillingAvailabilityAndroid: Promise<boolean>;\n /** Clear pending transactions from the StoreKit payment queue */\n clearTransactionIOS: Promise<boolean>;\n /** Consume a purchase token so it can be repurchased */\n consumePurchaseAndroid: Promise<boolean>;\n /**\n * Create external transaction token for Google Play reporting\n * Step 3 of alternative billing flow\n * Must be called AFTER successful payment in your payment system\n * Token must be reported to Google Play backend within 24 hours\n *\n * Returns token string, or null if creation failed\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n createAlternativeBillingTokenAndroid?: Promise<(string | null)>;\n /**\n * Create reporting details for a billing program\n * Replaces the deprecated createExternalOfferReportingDetailsAsync API\n *\n * Available in Google Play Billing Library 8.2.0+\n * Returns external transaction token needed for reporting external transactions\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n createBillingProgramReportingDetailsAndroid: Promise<BillingProgramReportingDetailsAndroid>;\n /** Open the native subscription management surface */\n deepLinkToSubscriptions: Promise<void>;\n /** Close the platform billing connection */\n endConnection: Promise<boolean>;\n /** Finish a transaction after validating receipts */\n finishTransaction: Promise<void>;\n /** Establish the platform billing connection */\n initConnection: Promise<boolean>;\n /**\n * Check if a billing program is available for the current user\n * Replaces the deprecated isExternalOfferAvailableAsync API\n *\n * Available in Google Play Billing Library 8.2.0+\n * Returns availability result with isAvailable flag\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n isBillingProgramAvailableAndroid: Promise<BillingProgramAvailabilityResultAndroid>;\n /**\n * Launch external link flow for external billing programs\n * Replaces the deprecated showExternalOfferInformationDialog API\n *\n * Available in Google Play Billing Library 8.2.0+\n * Shows Play Store dialog and optionally launches external URL\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n launchExternalLinkAndroid: Promise<boolean>;\n /** Present the App Store code redemption sheet */\n presentCodeRedemptionSheetIOS: Promise<boolean>;\n /** Present external purchase custom link with StoreKit UI */\n presentExternalPurchaseLinkIOS: Promise<ExternalPurchaseLinkResultIOS>;\n /**\n * Present external purchase notice sheet (iOS 17.4+).\n * Uses ExternalPurchase.presentNoticeSheet() which returns a token when user continues.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchase/presentnoticesheet()\n */\n presentExternalPurchaseNoticeSheetIOS: Promise<ExternalPurchaseNoticeResultIOS>;\n /** Initiate a purchase flow; rely on events for final state */\n requestPurchase?: Promise<(Purchase | Purchase[] | null)>;\n /**\n * Purchase the promoted product surfaced by the App Store.\n *\n * @deprecated Use promotedProductListenerIOS to receive the productId,\n * then call requestPurchase with that SKU instead. In StoreKit 2,\n * promoted products can be purchased directly via the standard purchase flow.\n * @deprecated Use promotedProductListenerIOS + requestPurchase instead\n */\n requestPurchaseOnPromotedProductIOS: Promise<boolean>;\n /** Restore completed purchases across platforms */\n restorePurchases: Promise<void>;\n /**\n * Show alternative billing information dialog to user\n * Step 2 of alternative billing flow\n * Must be called BEFORE processing payment in your payment system\n *\n * Returns true if user accepted, false if user canceled\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n showAlternativeBillingDialogAndroid: Promise<boolean>;\n /**\n * Show ExternalPurchaseCustomLink notice sheet (iOS 18.1+).\n * Displays the system disclosure notice sheet for custom external purchase links.\n * Call this after a deliberate customer interaction before linking out to external purchases.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/shownotice(type:)\n */\n showExternalPurchaseCustomLinkNoticeIOS: Promise<ExternalPurchaseCustomLinkNoticeResultIOS>;\n /** Open subscription management UI and return changed purchases (iOS 15+) */\n showManageSubscriptionsIOS: Promise<PurchaseIOS[]>;\n /** Force a StoreKit sync for transactions (iOS 15+) */\n syncIOS: Promise<boolean>;\n /**\n * Validate purchase receipts with the configured providers\n * @deprecated Use verifyPurchase\n */\n validateReceipt: Promise<VerifyPurchaseResult>;\n /** Verify purchases with the configured providers */\n verifyPurchase: Promise<VerifyPurchaseResult>;\n /** Verify purchases with a specific provider (e.g., IAPKit) */\n verifyPurchaseWithProvider: Promise<VerifyPurchaseWithProviderResult>;\n}\n\n\n\nexport type MutationAcknowledgePurchaseAndroidArgs = string;\n\nexport type MutationBeginRefundRequestIosArgs = string;\n\nexport type MutationConsumePurchaseAndroidArgs = string;\n\nexport type MutationCreateBillingProgramReportingDetailsAndroidArgs = BillingProgramAndroid;\n\nexport type MutationDeepLinkToSubscriptionsArgs = (DeepLinkOptions | null) | undefined;\n\nexport interface MutationFinishTransactionArgs {\n isConsumable?: (boolean | null);\n purchase: PurchaseInput;\n}\n\n\nexport type MutationInitConnectionArgs = (InitConnectionConfig | null) | undefined;\n\nexport type MutationIsBillingProgramAvailableAndroidArgs = BillingProgramAndroid;\n\nexport type MutationLaunchExternalLinkAndroidArgs = LaunchExternalLinkParamsAndroid;\n\nexport type MutationPresentExternalPurchaseLinkIosArgs = string;\n\nexport type MutationRequestPurchaseArgs =\n | {\n /** Per-platform purchase request props */\n request: RequestPurchasePropsByPlatforms;\n type: 'in-app';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n }\n | {\n /** Per-platform subscription request props */\n request: RequestSubscriptionPropsByPlatforms;\n type: 'subs';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n };\n\n\nexport type MutationShowExternalPurchaseCustomLinkNoticeIosArgs = ExternalPurchaseCustomLinkNoticeTypeIOS;\n\nexport type MutationValidateReceiptArgs = VerifyPurchaseProps;\n\nexport type MutationVerifyPurchaseArgs = VerifyPurchaseProps;\n\nexport type MutationVerifyPurchaseWithProviderArgs = VerifyPurchaseWithProviderProps;\n\n/**\n * Payment mode for subscription offers.\n * Determines how the user pays during the offer period.\n */\nexport type PaymentMode = 'free-trial' | 'pay-as-you-go' | 'pay-up-front' | 'unknown';\n\nexport type PaymentModeIOS = 'empty' | 'free-trial' | 'pay-as-you-go' | 'pay-up-front';\n\n/**\n * Pending purchase update for subscription upgrades/downgrades (Android)\n * When a user initiates a subscription change (upgrade/downgrade), the new purchase\n * may be pending until the current billing period ends. This type contains the\n * details of the pending change.\n * Available in Google Play Billing Library 5.0+\n */\nexport interface PendingPurchaseUpdateAndroid {\n /**\n * Product IDs for the pending purchase update.\n * These are the new products the user is switching to.\n */\n products: string[];\n /**\n * Purchase token for the pending transaction.\n * Use this token to track or manage the pending purchase update.\n */\n purchaseToken: string;\n}\n\n/**\n * Pre-order details for one-time purchase products (Android)\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface PreorderDetailsAndroid {\n /**\n * Pre-order presale end time in milliseconds since epoch.\n * This is when the presale period ends and the product will be released.\n */\n preorderPresaleEndTimeMillis: string;\n /**\n * Pre-order release time in milliseconds since epoch.\n * This is when the product will be available to users who pre-ordered.\n */\n preorderReleaseTimeMillis: string;\n}\n\nexport interface PricingPhaseAndroid {\n billingCycleCount: number;\n billingPeriod: string;\n formattedPrice: string;\n priceAmountMicros: string;\n priceCurrencyCode: string;\n recurrenceMode: number;\n}\n\nexport interface PricingPhasesAndroid {\n pricingPhaseList: PricingPhaseAndroid[];\n}\n\nexport type Product = ProductAndroid | ProductIOS;\n\nexport interface ProductAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * Standardized discount offers for one-time products.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#discount-offer\n */\n discountOffers?: (DiscountOffer[] | null);\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n /**\n * One-time purchase offer details including discounts (Android)\n * Returns all eligible offers. Available in Google Play Billing Library 7.0+\n * @deprecated Use discountOffers instead for cross-platform compatibility.\n * @deprecated Use discountOffers instead\n */\n oneTimePurchaseOfferDetailsAndroid?: (ProductAndroidOneTimePurchaseOfferDetail[] | null);\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionOfferDetailsAndroid?: (ProductSubscriptionAndroidOfferDetails[] | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n}\n\n/**\n * One-time purchase offer details (Android).\n * Available in Google Play Billing Library 7.0+\n * @deprecated Use the standardized DiscountOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#discount-offer\n */\nexport interface ProductAndroidOneTimePurchaseOfferDetail {\n /**\n * Discount display information\n * Only available for discounted offers\n */\n discountDisplayInfo?: (DiscountDisplayInfoAndroid | null);\n formattedPrice: string;\n /**\n * Full (non-discounted) price in micro-units\n * Only available for discounted offers\n */\n fullPriceMicros?: (string | null);\n /** Limited quantity information */\n limitedQuantityInfo?: (LimitedQuantityInfoAndroid | null);\n /** Offer ID */\n offerId?: (string | null);\n /** List of offer tags */\n offerTags: string[];\n /** Offer token for use in BillingFlowParams when purchasing */\n offerToken: string;\n /**\n * Pre-order details for products available for pre-order\n * Available in Google Play Billing Library 8.1.0+\n */\n preorderDetailsAndroid?: (PreorderDetailsAndroid | null);\n priceAmountMicros: string;\n priceCurrencyCode: string;\n /**\n * Purchase option ID for this offer (Android)\n * Used to identify which purchase option the user selected.\n * Available in Google Play Billing Library 7.0+\n */\n purchaseOptionId?: (string | null);\n /** Rental details for rental offers */\n rentalDetailsAndroid?: (RentalDetailsAndroid | null);\n /** Valid time window for the offer */\n validTimeWindow?: (ValidTimeWindowAndroid | null);\n}\n\nexport interface ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n platform: 'android' | 'ios';\n price?: (number | null);\n title: string;\n type: 'in-app' | 'subs';\n} \n\nexport interface ProductIOS extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionInfoIOS?: (SubscriptionInfoIOS | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * Note: iOS does not support one-time product discounts.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductOrSubscription = Product | ProductSubscription;\n\nexport type ProductQueryType = 'in-app' | 'subs' | 'all';\n\nexport interface ProductRequest {\n skus: string[];\n type?: (ProductQueryType | null);\n}\n\n/**\n * Status code for individual products returned from queryProductDetailsAsync (Android)\n * Prior to 8.0, products that couldn't be fetched were simply not returned.\n * With 8.0+, these products are returned with a status code explaining why.\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type ProductStatusAndroid = 'ok' | 'not-found' | 'no-offers-available' | 'unknown';\n\nexport type ProductSubscription = ProductSubscriptionAndroid | ProductSubscriptionIOS;\n\nexport interface ProductSubscriptionAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * Standardized discount offers for one-time products.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#discount-offer\n */\n discountOffers?: (DiscountOffer[] | null);\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n /**\n * One-time purchase offer details including discounts (Android)\n * Returns all eligible offers. Available in Google Play Billing Library 7.0+\n * @deprecated Use discountOffers instead for cross-platform compatibility.\n * @deprecated Use discountOffers instead\n */\n oneTimePurchaseOfferDetailsAndroid?: (ProductAndroidOneTimePurchaseOfferDetail[] | null);\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionOfferDetailsAndroid: ProductSubscriptionAndroidOfferDetails[];\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers: SubscriptionOffer[];\n title: string;\n type: 'subs';\n}\n\n/**\n * Subscription offer details (Android).\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface ProductSubscriptionAndroidOfferDetails {\n basePlanId: string;\n /**\n * Installment plan details for this subscription offer.\n * Only set for installment subscription plans; null for non-installment plans.\n * Available in Google Play Billing Library 7.0+\n */\n installmentPlanDetails?: (InstallmentPlanDetailsAndroid | null);\n offerId?: (string | null);\n offerTags: string[];\n offerToken: string;\n pricingPhases: PricingPhasesAndroid;\n}\n\nexport interface ProductSubscriptionIOS extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n discountsIOS?: (DiscountIOS[] | null);\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n introductoryPriceAsAmountIOS?: (string | null);\n introductoryPriceIOS?: (string | null);\n introductoryPriceNumberOfPeriodsIOS?: (string | null);\n introductoryPricePaymentModeIOS: PaymentModeIOS;\n introductoryPriceSubscriptionPeriodIOS?: (SubscriptionPeriodIOS | null);\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionInfoIOS?: (SubscriptionInfoIOS | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n subscriptionPeriodNumberIOS?: (string | null);\n subscriptionPeriodUnitIOS?: (SubscriptionPeriodIOS | null);\n title: string;\n type: 'subs';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductType = 'in-app' | 'subs';\n\nexport type ProductTypeIOS = 'consumable' | 'non-consumable' | 'auto-renewable-subscription' | 'non-renewing-subscription';\n\n/**\n * JWS promotional offer input for iOS 15+ (StoreKit 2, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * This provides a simpler alternative to the legacy signature-based promotional offers.\n * Back-deployed to iOS 15.\n */\nexport interface PromotionalOfferJwsInputIOS {\n /**\n * Compact JWS string signed by your server.\n * The JWS should contain the promotional offer signature data.\n * Format: header.payload.signature (base64url encoded)\n */\n jws: string;\n /** The promotional offer identifier from App Store Connect */\n offerId: string;\n}\n\nexport type Purchase = PurchaseAndroid | PurchaseIOS;\n\nexport interface PurchaseAndroid extends PurchaseCommon {\n autoRenewingAndroid?: (boolean | null);\n currentPlanId?: (string | null);\n dataAndroid?: (string | null);\n developerPayloadAndroid?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAcknowledgedAndroid?: (boolean | null);\n isAutoRenewing: boolean;\n /**\n * Whether the subscription is suspended (Android)\n * A suspended subscription means the user's payment method failed and they need to fix it.\n * Users should be directed to the subscription center to resolve the issue.\n * Do NOT grant entitlements for suspended subscriptions.\n * Available in Google Play Billing Library 8.1.0+\n */\n isSuspendedAndroid?: (boolean | null);\n obfuscatedAccountIdAndroid?: (string | null);\n obfuscatedProfileIdAndroid?: (string | null);\n packageNameAndroid?: (string | null);\n /**\n * Pending purchase update for uncommitted subscription upgrade/downgrade (Android)\n * Contains the new products and purchase token for the pending transaction.\n * Returns null if no pending update exists.\n * Available in Google Play Billing Library 5.0+\n */\n pendingPurchaseUpdateAndroid?: (PendingPurchaseUpdateAndroid | null);\n /** @deprecated Use store instead */\n platform: IapPlatform;\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n signatureAndroid?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n transactionDate: number;\n transactionId?: (string | null);\n}\n\nexport interface PurchaseCommon {\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n /** @deprecated Use store instead */\n platform: IapPlatform;\n productId: string;\n purchaseState: PurchaseState;\n /** Unified purchase token (iOS JWS, Android purchaseToken) */\n purchaseToken?: (string | null);\n quantity: number;\n /** Store where purchase was made */\n store: IapStore;\n transactionDate: number;\n}\n\nexport interface PurchaseError {\n code: ErrorCode;\n message: string;\n productId?: (string | null);\n}\n\nexport interface PurchaseIOS extends PurchaseCommon {\n appAccountToken?: (string | null);\n appBundleIdIOS?: (string | null);\n countryCodeIOS?: (string | null);\n currencyCodeIOS?: (string | null);\n currencySymbolIOS?: (string | null);\n currentPlanId?: (string | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n isUpgradedIOS?: (boolean | null);\n offerIOS?: (PurchaseOfferIOS | null);\n originalTransactionDateIOS?: (number | null);\n originalTransactionIdentifierIOS?: (string | null);\n ownershipTypeIOS?: (string | null);\n /** @deprecated Use store instead */\n platform: IapPlatform;\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n quantityIOS?: (number | null);\n reasonIOS?: (string | null);\n reasonStringRepresentationIOS?: (string | null);\n renewalInfoIOS?: (RenewalInfoIOS | null);\n revocationDateIOS?: (number | null);\n revocationReasonIOS?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n storefrontCountryCodeIOS?: (string | null);\n subscriptionGroupIdIOS?: (string | null);\n transactionDate: number;\n transactionId: string;\n transactionReasonIOS?: (string | null);\n webOrderLineItemIdIOS?: (string | null);\n}\n\nexport type PurchaseInput = Purchase;\n\nexport interface PurchaseOfferIOS {\n id: string;\n paymentMode: string;\n type: string;\n}\n\nexport interface PurchaseOptions {\n /** Also emit results through the iOS event listeners */\n alsoPublishToEventListenerIOS?: (boolean | null);\n /**\n * Include suspended subscriptions in the result (Android 8.1+).\n * Suspended subscriptions have isSuspendedAndroid=true and should NOT be granted entitlements.\n * Users should be directed to the subscription center to resolve payment issues.\n * Default: false (only active subscriptions are returned)\n */\n includeSuspendedAndroid?: (boolean | null);\n /** Limit to currently active items on iOS */\n onlyIncludeActiveItemsIOS?: (boolean | null);\n}\n\nexport type PurchaseState = 'pending' | 'purchased' | 'unknown';\n\nexport type PurchaseVerificationProvider = 'iapkit';\n\nexport interface Query {\n /**\n * Check if external purchase notice sheet can be presented (iOS 17.4+)\n * Uses ExternalPurchase.canPresent\n */\n canPresentExternalPurchaseNoticeIOS: Promise<boolean>;\n /** Get current StoreKit 2 entitlements (iOS 15+) */\n currentEntitlementIOS?: Promise<(PurchaseIOS | null)>;\n /** Retrieve products or subscriptions from the store */\n fetchProducts: Promise<(ProductOrSubscription[] | Product[] | ProductSubscription[] | null)>;\n /** Get active subscriptions (filters by subscriptionIds when provided) */\n getActiveSubscriptions: Promise<ActiveSubscription[]>;\n /** Fetch the current app transaction (iOS 16+) */\n getAppTransactionIOS?: Promise<(AppTransaction | null)>;\n /** Get all available purchases for the current user */\n getAvailablePurchases: Promise<Purchase[]>;\n /**\n * Get external purchase token for reporting to Apple (iOS 18.1+).\n * Use this token with Apple's External Purchase Server API to report transactions.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n */\n getExternalPurchaseCustomLinkTokenIOS: Promise<ExternalPurchaseCustomLinkTokenResultIOS>;\n /** Retrieve all pending transactions in the StoreKit queue */\n getPendingTransactionsIOS: Promise<PurchaseIOS[]>;\n /** Get the currently promoted product (iOS 11+) */\n getPromotedProductIOS?: Promise<(ProductIOS | null)>;\n /** Get base64-encoded receipt data for validation */\n getReceiptDataIOS?: Promise<(string | null)>;\n /** Get the current storefront country code */\n getStorefront: Promise<string>;\n /**\n * Get the current App Store storefront country code\n * @deprecated Use getStorefront\n */\n getStorefrontIOS: Promise<string>;\n /** Get the transaction JWS (StoreKit 2) */\n getTransactionJwsIOS?: Promise<(string | null)>;\n /** Check whether the user has active subscriptions */\n hasActiveSubscriptions: Promise<boolean>;\n /**\n * Check if app is eligible for ExternalPurchaseCustomLink API (iOS 18.1+).\n * Returns true if the app can use custom external purchase links.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/iseligible\n */\n isEligibleForExternalPurchaseCustomLinkIOS: Promise<boolean>;\n /** Check introductory offer eligibility for a subscription group */\n isEligibleForIntroOfferIOS: Promise<boolean>;\n /** Verify a StoreKit 2 transaction signature */\n isTransactionVerifiedIOS: Promise<boolean>;\n /** Get the latest transaction for a product using StoreKit 2 */\n latestTransactionIOS?: Promise<(PurchaseIOS | null)>;\n /** Get StoreKit 2 subscription status details (iOS 15+) */\n subscriptionStatusIOS: Promise<SubscriptionStatusIOS[]>;\n /**\n * Validate a receipt for a specific product\n * @deprecated Use verifyPurchase\n */\n validateReceiptIOS: Promise<VerifyPurchaseResultIOS>;\n}\n\n\n\nexport type QueryCurrentEntitlementIosArgs = string;\n\nexport type QueryFetchProductsArgs = ProductRequest;\n\nexport type QueryGetActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryGetAvailablePurchasesArgs = (PurchaseOptions | null) | undefined;\n\nexport type QueryGetExternalPurchaseCustomLinkTokenIosArgs = ExternalPurchaseCustomLinkTokenTypeIOS;\n\nexport type QueryGetTransactionJwsIosArgs = string;\n\nexport type QueryHasActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryIsEligibleForIntroOfferIosArgs = string;\n\nexport type QueryIsTransactionVerifiedIosArgs = string;\n\nexport type QueryLatestTransactionIosArgs = string;\n\nexport type QuerySubscriptionStatusIosArgs = string;\n\nexport type QueryValidateReceiptIosArgs = VerifyPurchaseProps;\n\nexport interface RefundResultIOS {\n message?: (string | null);\n status: string;\n}\n\n/**\n * Subscription renewal information from Product.SubscriptionInfo.RenewalInfo\n * https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo\n */\nexport interface RenewalInfoIOS {\n autoRenewPreference?: (string | null);\n /**\n * When subscription expires due to cancellation/billing issue\n * Possible values: \"VOLUNTARY\", \"BILLING_ERROR\", \"DID_NOT_AGREE_TO_PRICE_INCREASE\", \"PRODUCT_NOT_AVAILABLE\", \"UNKNOWN\"\n */\n expirationReason?: (string | null);\n /**\n * Grace period expiration date (milliseconds since epoch)\n * When set, subscription is in grace period (billing issue but still has access)\n */\n gracePeriodExpirationDate?: (number | null);\n /**\n * True if subscription failed to renew due to billing issue and is retrying\n * Note: Not directly available in RenewalInfo, available in Status\n */\n isInBillingRetry?: (boolean | null);\n jsonRepresentation?: (string | null);\n /**\n * Product ID that will be used on next renewal (when user upgrades/downgrades)\n * If set and different from current productId, subscription will change on expiration\n */\n pendingUpgradeProductId?: (string | null);\n /**\n * User's response to subscription price increase\n * Possible values: \"AGREED\", \"PENDING\", null (no price increase)\n */\n priceIncreaseStatus?: (string | null);\n /**\n * Expected renewal date (milliseconds since epoch)\n * For active subscriptions, when the next renewal/charge will occur\n */\n renewalDate?: (number | null);\n /** Offer ID applied to next renewal (promotional offer, subscription offer code, etc.) */\n renewalOfferId?: (string | null);\n /**\n * Type of offer applied to next renewal\n * Possible values: \"PROMOTIONAL\", \"SUBSCRIPTION_OFFER_CODE\", \"WIN_BACK\", etc.\n */\n renewalOfferType?: (string | null);\n willAutoRenew: boolean;\n}\n\n/**\n * Rental details for one-time purchase products that can be rented (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface RentalDetailsAndroid {\n /**\n * Rental expiration period in ISO 8601 format\n * Time after rental period ends when user can still extend\n */\n rentalExpirationPeriod?: (string | null);\n /** Rental period in ISO 8601 format (e.g., P7D for 7 days) */\n rentalPeriod: string;\n}\n\nexport interface RequestPurchaseAndroidProps {\n /**\n * Developer billing option parameters for external payments flow (8.3.0+).\n * When provided, the purchase flow will show a side-by-side choice between\n * Google Play Billing and the developer's external payment option.\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /**\n * Offer token for one-time purchase discounts (7.0+).\n * Pass the offerToken from oneTimePurchaseOfferDetailsAndroid or discountOffers\n * to apply a discount offer to the purchase.\n */\n offerToken?: (string | null);\n /** List of product SKUs */\n skus: string[];\n}\n\nexport interface RequestPurchaseIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n /** Auto-finish transaction (dangerous) */\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n /** App account token for user tracking */\n appAccountToken?: (string | null);\n /** Purchase quantity */\n quantity?: (number | null);\n /** Product SKU */\n sku: string;\n /**\n * Promotional offer to apply (subscriptions only, ignored for one-time purchases).\n * iOS only supports promotional offers for auto-renewable subscriptions.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\nexport type RequestPurchaseProps =\n | {\n /** Per-platform purchase request props */\n request: RequestPurchasePropsByPlatforms;\n type: 'in-app';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n }\n | {\n /** Per-platform subscription request props */\n request: RequestSubscriptionPropsByPlatforms;\n type: 'subs';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n };\n\n/**\n * Platform-specific purchase request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, or Horizon when built with horizon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestPurchasePropsByPlatforms {\n /** @deprecated Use google instead */\n android?: (RequestPurchaseAndroidProps | null);\n /** Apple-specific purchase parameters */\n apple?: (RequestPurchaseIosProps | null);\n /** Google-specific purchase parameters */\n google?: (RequestPurchaseAndroidProps | null);\n /** @deprecated Use apple instead */\n ios?: (RequestPurchaseIosProps | null);\n}\n\nexport type RequestPurchaseResult = Purchase | Purchase[] | null;\n\nexport interface RequestSubscriptionAndroidProps {\n /**\n * Developer billing option parameters for external payments flow (8.3.0+).\n * When provided, the purchase flow will show a side-by-side choice between\n * Google Play Billing and the developer's external payment option.\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /** Purchase token for upgrades/downgrades */\n purchaseToken?: (string | null);\n /**\n * Replacement mode for subscription changes\n * @deprecated Use subscriptionProductReplacementParams instead for item-level replacement (8.1.0+)\n */\n replacementMode?: (number | null);\n /** List of subscription SKUs */\n skus: string[];\n /** Subscription offers */\n subscriptionOffers?: (AndroidSubscriptionOfferInput[] | null);\n /**\n * Product-level replacement parameters (8.1.0+)\n * Use this instead of replacementMode for item-level replacement\n */\n subscriptionProductReplacementParams?: (SubscriptionProductReplacementParamsAndroid | null);\n}\n\nexport interface RequestSubscriptionIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n appAccountToken?: (string | null);\n /**\n * Override introductory offer eligibility (iOS 15+, WWDC 2025).\n * Set to true to indicate the user is eligible for introductory offer,\n * or false to indicate they are not. When nil, the system determines eligibility.\n * Back-deployed to iOS 15.\n */\n introductoryOfferEligibility?: (boolean | null);\n /**\n * JWS promotional offer (iOS 15+, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * Back-deployed to iOS 15.\n */\n promotionalOfferJWS?: (PromotionalOfferJwsInputIOS | null);\n quantity?: (number | null);\n sku: string;\n /**\n * Win-back offer to apply (iOS 18+)\n * Used to re-engage churned subscribers with a discount or free trial.\n * The offer is available when the customer is eligible and can be discovered\n * via StoreKit Message (automatic) or subscription offer APIs.\n */\n winBackOffer?: (WinBackOfferInputIOS | null);\n /**\n * Promotional offer to apply for subscription purchases.\n * Requires server-signed offer with nonce, timestamp, keyId, and signature.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\n/**\n * Platform-specific subscription request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, or Horizon when built with horizon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestSubscriptionPropsByPlatforms {\n /** @deprecated Use google instead */\n android?: (RequestSubscriptionAndroidProps | null);\n /** Apple-specific subscription parameters */\n apple?: (RequestSubscriptionIosProps | null);\n /** Google-specific subscription parameters */\n google?: (RequestSubscriptionAndroidProps | null);\n /** @deprecated Use apple instead */\n ios?: (RequestSubscriptionIosProps | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitAppleProps {\n /** The JWS token returned with the purchase response. */\n jws: string;\n}\n\nexport interface RequestVerifyPurchaseWithIapkitGoogleProps {\n /** The token provided to the user's device when the product or subscription was purchased. */\n purchaseToken: string;\n}\n\n/**\n * Platform-specific verification parameters for IAPKit.\n *\n * - apple: Verifies via App Store (JWS token)\n * - google: Verifies via Play Store (purchase token)\n */\nexport interface RequestVerifyPurchaseWithIapkitProps {\n /** API key used for the Authorization header (Bearer {apiKey}). */\n apiKey?: (string | null);\n /** Apple App Store verification parameters. */\n apple?: (RequestVerifyPurchaseWithIapkitAppleProps | null);\n /** Google Play Store verification parameters. */\n google?: (RequestVerifyPurchaseWithIapkitGoogleProps | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitResult {\n /** Whether the purchase is valid (not falsified). */\n isValid: boolean;\n /** The current state of the purchase. */\n state: IapkitPurchaseState;\n store: IapStore;\n}\n\n/**\n * Sub-response codes for more granular purchase error information (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type SubResponseCodeAndroid = 'no-applicable-sub-response-code' | 'payment-declined-due-to-insufficient-funds' | 'user-ineligible';\n\nexport interface Subscription {\n /**\n * Fires when a user selects developer billing in the External Payments flow (Android only)\n * Triggered when the user chooses to pay via the developer's external payment option\n * instead of Google Play Billing in the side-by-side choice dialog.\n * Contains the externalTransactionToken needed to report the transaction.\n * Available in Google Play Billing Library 8.3.0+\n */\n developerProvidedBillingAndroid: DeveloperProvidedBillingDetailsAndroid;\n /** Fires when the App Store surfaces a promoted product (iOS only) */\n promotedProductIOS: string;\n /** Fires when a purchase fails or is cancelled */\n purchaseError: PurchaseError;\n /** Fires when a purchase completes successfully or a pending purchase resolves */\n purchaseUpdated: Purchase;\n /**\n * Fires when a user selects alternative billing in the User Choice Billing dialog (Android only)\n * Only triggered when the user selects alternative billing instead of Google Play billing\n */\n userChoiceBillingAndroid: UserChoiceBillingDetails;\n}\n\n\nexport interface SubscriptionInfoIOS {\n introductoryOffer?: (SubscriptionOfferIOS | null);\n promotionalOffers?: (SubscriptionOfferIOS[] | null);\n subscriptionGroupId: string;\n subscriptionPeriod: SubscriptionPeriodValueIOS;\n}\n\n/**\n * Standardized subscription discount/promotional offer.\n * Provides a unified interface for subscription offers across iOS and Android.\n *\n * Both platforms support subscription offers with different implementations:\n * - iOS: Introductory offers, promotional offers with server-side signatures\n * - Android: Offer tokens with pricing phases\n *\n * @see https://openiap.dev/docs/types/ios#discount-offer\n * @see https://openiap.dev/docs/types/android#subscription-offer\n */\nexport interface SubscriptionOffer {\n /**\n * [Android] Base plan identifier.\n * Identifies which base plan this offer belongs to.\n */\n basePlanIdAndroid?: (string | null);\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency?: (string | null);\n /** Formatted display price string (e.g., \"$9.99/month\") */\n displayPrice: string;\n /**\n * Unique identifier for the offer.\n * - iOS: Discount identifier from App Store Connect\n * - Android: offerId from ProductSubscriptionAndroidOfferDetails\n */\n id: string;\n /**\n * [Android] Installment plan details for this subscription offer.\n * Only set for installment subscription plans; null for non-installment plans.\n * Available in Google Play Billing Library 7.0+\n */\n installmentPlanDetailsAndroid?: (InstallmentPlanDetailsAndroid | null);\n /**\n * [iOS] Key identifier for signature validation.\n * Used with server-side signature generation for promotional offers.\n */\n keyIdentifierIOS?: (string | null);\n /** [iOS] Localized price string. */\n localizedPriceIOS?: (string | null);\n /**\n * [iOS] Cryptographic nonce (UUID) for signature validation.\n * Must be generated server-side for each purchase attempt.\n */\n nonceIOS?: (string | null);\n /** [iOS] Number of billing periods for this discount. */\n numberOfPeriodsIOS?: (number | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /** Payment mode during the offer period */\n paymentMode?: (PaymentMode | null);\n /** Subscription period for this offer */\n period?: (SubscriptionPeriod | null);\n /** Number of periods the offer applies */\n periodCount?: (number | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Pricing phases for this subscription offer.\n * Contains detailed pricing information for each phase (trial, intro, regular).\n */\n pricingPhasesAndroid?: (PricingPhasesAndroid | null);\n /**\n * [iOS] Server-generated signature for promotional offer validation.\n * Required when applying promotional offers on iOS.\n */\n signatureIOS?: (string | null);\n /**\n * [iOS] Timestamp when the signature was generated.\n * Used for signature validation.\n */\n timestampIOS?: (number | null);\n /** Type of subscription offer (Introductory or Promotional) */\n type: DiscountOfferType;\n}\n\n/**\n * iOS subscription offer details.\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface SubscriptionOfferIOS {\n displayPrice: string;\n id: string;\n paymentMode: PaymentModeIOS;\n period: SubscriptionPeriodValueIOS;\n periodCount: number;\n price: number;\n type: SubscriptionOfferTypeIOS;\n}\n\nexport type SubscriptionOfferTypeIOS = 'introductory' | 'promotional' | 'win-back';\n\n/** Subscription period value combining unit and count. */\nexport interface SubscriptionPeriod {\n /** The period unit (day, week, month, year) */\n unit: SubscriptionPeriodUnit;\n /** The number of units (e.g., 1 for monthly, 3 for quarterly) */\n value: number;\n}\n\nexport type SubscriptionPeriodIOS = 'day' | 'week' | 'month' | 'year' | 'empty';\n\n/** Subscription period unit for cross-platform use. */\nexport type SubscriptionPeriodUnit = 'day' | 'week' | 'month' | 'year' | 'unknown';\n\nexport interface SubscriptionPeriodValueIOS {\n unit: SubscriptionPeriodIOS;\n value: number;\n}\n\n/**\n * Product-level subscription replacement parameters (Android)\n * Used with setSubscriptionProductReplacementParams in BillingFlowParams.ProductDetailsParams\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface SubscriptionProductReplacementParamsAndroid {\n /** The old product ID that needs to be replaced */\n oldProductId: string;\n /** The replacement mode for this product change */\n replacementMode: SubscriptionReplacementModeAndroid;\n}\n\n/**\n * Replacement mode for subscription changes (Android)\n * These modes determine how the subscription replacement affects billing.\n * Available in Google Play Billing Library 8.1.0+\n */\nexport type SubscriptionReplacementModeAndroid = 'unknown-replacement-mode' | 'with-time-proration' | 'charge-prorated-price' | 'charge-full-price' | 'without-proration' | 'deferred' | 'keep-existing';\n\nexport interface SubscriptionStatusIOS {\n renewalInfo?: (RenewalInfoIOS | null);\n state: string;\n}\n\n/**\n * User Choice Billing event details (Android)\n * Fired when a user selects alternative billing in the User Choice Billing dialog\n */\nexport interface UserChoiceBillingDetails {\n /** Token that must be reported to Google Play within 24 hours */\n externalTransactionToken: string;\n /** List of product IDs selected by the user */\n products: string[];\n}\n\n/**\n * Valid time window for when an offer is available (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface ValidTimeWindowAndroid {\n /** End time in milliseconds since epoch */\n endTimeMillis: string;\n /** Start time in milliseconds since epoch */\n startTimeMillis: string;\n}\n\n/**\n * Apple App Store verification parameters.\n * Used for server-side receipt validation via App Store Server API.\n */\nexport interface VerifyPurchaseAppleOptions {\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Google Play Store verification parameters.\n * Used for server-side receipt validation via Google Play Developer API.\n *\n * ⚠️ SECURITY: Contains sensitive tokens (accessToken, purchaseToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseGoogleOptions {\n /**\n * Google OAuth2 access token for API authentication.\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** Whether this is a subscription purchase (affects API endpoint used) */\n isSub?: (boolean | null);\n /** Android package name (e.g., com.example.app) */\n packageName: string;\n /**\n * Purchase token from the purchase response.\n * ⚠️ Sensitive: Do not log this value.\n */\n purchaseToken: string;\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Meta Horizon (Quest) verification parameters.\n * Used for server-side entitlement verification via Meta's S2S API.\n * POST https://graph.oculus.com/$APP_ID/verify_entitlement\n *\n * ⚠️ SECURITY: Contains sensitive token (accessToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseHorizonOptions {\n /**\n * Access token for Meta API authentication (OC|$APP_ID|$APP_SECRET or User Access Token).\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** The SKU for the add-on item, defined in Meta Developer Dashboard */\n sku: string;\n /** The user ID of the user whose purchase you want to verify */\n userId: string;\n}\n\n/**\n * Platform-specific purchase verification parameters.\n *\n * - apple: Verifies via App Store Server API\n * - google: Verifies via Google Play Developer API\n * - horizon: Verifies via Meta's S2S API (verify_entitlement endpoint)\n */\nexport interface VerifyPurchaseProps {\n /** Apple App Store verification parameters. */\n apple?: (VerifyPurchaseAppleOptions | null);\n /** Google Play Store verification parameters. */\n google?: (VerifyPurchaseGoogleOptions | null);\n /** Meta Horizon (Quest) verification parameters. */\n horizon?: (VerifyPurchaseHorizonOptions | null);\n}\n\nexport type VerifyPurchaseResult = VerifyPurchaseResultAndroid | VerifyPurchaseResultHorizon | VerifyPurchaseResultIOS;\n\nexport interface VerifyPurchaseResultAndroid {\n autoRenewing: boolean;\n betaProduct: boolean;\n cancelDate?: (number | null);\n cancelReason?: (string | null);\n deferredDate?: (number | null);\n deferredSku?: (string | null);\n freeTrialEndDate: number;\n gracePeriodEndDate: number;\n parentProductId: string;\n productId: string;\n productType: string;\n purchaseDate: number;\n quantity: number;\n receiptId: string;\n renewalDate: number;\n term: string;\n termSku: string;\n testTransaction: boolean;\n}\n\n/**\n * Result from Meta Horizon verify_entitlement API.\n * Returns verification status and grant time for the entitlement.\n */\nexport interface VerifyPurchaseResultHorizon {\n /** Unix timestamp (seconds) when the entitlement was granted. */\n grantTime?: (number | null);\n /** Whether the entitlement verification succeeded. */\n success: boolean;\n}\n\nexport interface VerifyPurchaseResultIOS {\n /** Whether the receipt is valid */\n isValid: boolean;\n /** JWS representation */\n jwsRepresentation: string;\n /** Latest transaction if available */\n latestTransaction?: (Purchase | null);\n /** Receipt data string */\n receiptData: string;\n}\n\nexport interface VerifyPurchaseWithProviderError {\n code?: (string | null);\n message: string;\n}\n\nexport interface VerifyPurchaseWithProviderProps {\n iapkit?: (RequestVerifyPurchaseWithIapkitProps | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport interface VerifyPurchaseWithProviderResult {\n /** Error details if verification failed */\n errors?: (VerifyPurchaseWithProviderError[] | null);\n /** IAPKit verification result */\n iapkit?: (RequestVerifyPurchaseWithIapkitResult | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport type VoidResult = void;\n\n/**\n * Win-back offer input for iOS 18+ (StoreKit 2)\n * Win-back offers are used to re-engage churned subscribers.\n * The offer is automatically presented via StoreKit Message when eligible,\n * or can be applied programmatically during purchase.\n */\nexport interface WinBackOfferInputIOS {\n /** The win-back offer ID from App Store Connect */\n offerId: string;\n}\n// -- Query helper types (auto-generated)\nexport type QueryArgsMap = {\n canPresentExternalPurchaseNoticeIOS: never;\n currentEntitlementIOS: QueryCurrentEntitlementIosArgs;\n fetchProducts: QueryFetchProductsArgs;\n getActiveSubscriptions: QueryGetActiveSubscriptionsArgs;\n getAppTransactionIOS: never;\n getAvailablePurchases: QueryGetAvailablePurchasesArgs;\n getExternalPurchaseCustomLinkTokenIOS: QueryGetExternalPurchaseCustomLinkTokenIosArgs;\n getPendingTransactionsIOS: never;\n getPromotedProductIOS: never;\n getReceiptDataIOS: never;\n getStorefront: never;\n getStorefrontIOS: never;\n getTransactionJwsIOS: QueryGetTransactionJwsIosArgs;\n hasActiveSubscriptions: QueryHasActiveSubscriptionsArgs;\n isEligibleForExternalPurchaseCustomLinkIOS: never;\n isEligibleForIntroOfferIOS: QueryIsEligibleForIntroOfferIosArgs;\n isTransactionVerifiedIOS: QueryIsTransactionVerifiedIosArgs;\n latestTransactionIOS: QueryLatestTransactionIosArgs;\n subscriptionStatusIOS: QuerySubscriptionStatusIosArgs;\n validateReceiptIOS: QueryValidateReceiptIosArgs;\n};\n\nexport type QueryField<K extends keyof Query> =\n QueryArgsMap[K] extends never\n ? () => NonNullable<Query[K]>\n : undefined extends QueryArgsMap[K]\n ? (args?: QueryArgsMap[K]) => NonNullable<Query[K]>\n : (args: QueryArgsMap[K]) => NonNullable<Query[K]>;\n\nexport type QueryFieldMap = {\n [K in keyof Query]?: QueryField<K>;\n};\n// -- End query helper types\n\n// -- Mutation helper types (auto-generated)\nexport type MutationArgsMap = {\n acknowledgePurchaseAndroid: MutationAcknowledgePurchaseAndroidArgs;\n beginRefundRequestIOS: MutationBeginRefundRequestIosArgs;\n checkAlternativeBillingAvailabilityAndroid: never;\n clearTransactionIOS: never;\n consumePurchaseAndroid: MutationConsumePurchaseAndroidArgs;\n createAlternativeBillingTokenAndroid: never;\n createBillingProgramReportingDetailsAndroid: MutationCreateBillingProgramReportingDetailsAndroidArgs;\n deepLinkToSubscriptions: MutationDeepLinkToSubscriptionsArgs;\n endConnection: never;\n finishTransaction: MutationFinishTransactionArgs;\n initConnection: MutationInitConnectionArgs;\n isBillingProgramAvailableAndroid: MutationIsBillingProgramAvailableAndroidArgs;\n launchExternalLinkAndroid: MutationLaunchExternalLinkAndroidArgs;\n presentCodeRedemptionSheetIOS: never;\n presentExternalPurchaseLinkIOS: MutationPresentExternalPurchaseLinkIosArgs;\n presentExternalPurchaseNoticeSheetIOS: never;\n requestPurchase: MutationRequestPurchaseArgs;\n requestPurchaseOnPromotedProductIOS: never;\n restorePurchases: never;\n showAlternativeBillingDialogAndroid: never;\n showExternalPurchaseCustomLinkNoticeIOS: MutationShowExternalPurchaseCustomLinkNoticeIosArgs;\n showManageSubscriptionsIOS: never;\n syncIOS: never;\n validateReceipt: MutationValidateReceiptArgs;\n verifyPurchase: MutationVerifyPurchaseArgs;\n verifyPurchaseWithProvider: MutationVerifyPurchaseWithProviderArgs;\n};\n\nexport type MutationField<K extends keyof Mutation> =\n MutationArgsMap[K] extends never\n ? () => NonNullable<Mutation[K]>\n : undefined extends MutationArgsMap[K]\n ? (args?: MutationArgsMap[K]) => NonNullable<Mutation[K]>\n : (args: MutationArgsMap[K]) => NonNullable<Mutation[K]>;\n\nexport type MutationFieldMap = {\n [K in keyof Mutation]?: MutationField<K>;\n};\n// -- End mutation helper types\n\n// -- Subscription helper types (auto-generated)\nexport type SubscriptionArgsMap = {\n developerProvidedBillingAndroid: never;\n promotedProductIOS: never;\n purchaseError: never;\n purchaseUpdated: never;\n userChoiceBillingAndroid: never;\n};\n\nexport type SubscriptionField<K extends keyof Subscription> =\n SubscriptionArgsMap[K] extends never\n ? () => NonNullable<Subscription[K]>\n : undefined extends SubscriptionArgsMap[K]\n ? (args?: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>\n : (args: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>;\n\nexport type SubscriptionFieldMap = {\n [K in keyof Subscription]?: SubscriptionField<K>;\n};\n// -- End subscription helper types\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,mEAAmE;AACnE,+EAA+E;AA6T/E,MAAM,CAAN,IAAY,SAwCX;AAxCD,WAAY,SAAS;IACnB,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,iDAAoC,CAAA;IACpC,gFAAmE,CAAA;IACnE,uDAA0C,CAAA;IAC1C,mDAAsC,CAAA;IACtC,iDAAoC,CAAA;IACpC,+CAAkC,CAAA;IAClC,qDAAwC,CAAA;IACxC,4CAA+B,CAAA;IAC/B,0DAA6C,CAAA;IAC7C,kDAAqC,CAAA;IACrC,+CAAkC,CAAA;IAClC,wCAA2B,CAAA;IAC3B,4CAA+B,CAAA;IAC/B,iDAAoC,CAAA;IACpC,2CAA8B,CAAA;IAC9B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,wEAA2D,CAAA;IAC3D,qFAAwE,CAAA;IACxE,4EAA+D,CAAA;IAC/D,2CAA8B,CAAA;IAC9B,6CAAgC,CAAA;IAChC,iDAAoC,CAAA;IACpC,8DAAiD,CAAA;IACjD,yCAA4B,CAAA;IAC5B,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,+CAAkC,CAAA;IAClC,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,qCAAwB,CAAA;IACxB,0EAA6D,CAAA;IAC7D,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,qCAAwB,CAAA;AAC1B,CAAC,EAxCW,SAAS,KAAT,SAAS,QAwCpB;AAolDD,mCAAmC","sourcesContent":["// ============================================================================\n// AUTO-GENERATED TYPES — DO NOT EDIT DIRECTLY\n// Run `npm run generate` after updating any *.graphql schema file.\n// ============================================================================\n\nexport interface ActiveSubscription {\n autoRenewingAndroid?: (boolean | null);\n basePlanIdAndroid?: (string | null);\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n daysUntilExpirationIOS?: (number | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n isActive: boolean;\n productId: string;\n purchaseToken?: (string | null);\n /** Required for subscription upgrade/downgrade on Android */\n purchaseTokenAndroid?: (string | null);\n /**\n * Renewal information from StoreKit 2 (iOS only). Contains details about subscription renewal status,\n * pending upgrades/downgrades, and auto-renewal preferences.\n */\n renewalInfoIOS?: (RenewalInfoIOS | null);\n transactionDate: number;\n transactionId: string;\n /**\n * @deprecated iOS only - use daysUntilExpirationIOS instead.\n * Whether the subscription will expire soon (within 7 days).\n * Consider using daysUntilExpirationIOS for more precise control.\n */\n willExpireSoon?: (boolean | null);\n}\n\n/**\n * Alternative billing mode for Android\n * Controls which billing system is used\n * @deprecated Use enableBillingProgramAndroid with BillingProgramAndroid instead.\n * Use USER_CHOICE_BILLING for user choice billing, EXTERNAL_OFFER for alternative only.\n */\nexport type AlternativeBillingModeAndroid = 'none' | 'user-choice' | 'alternative-only';\n\nexport interface AndroidSubscriptionOfferInput {\n /** Offer token */\n offerToken: string;\n /** Product SKU */\n sku: string;\n}\n\nexport interface AppTransaction {\n appId: number;\n appTransactionId?: (string | null);\n appVersion: string;\n appVersionId: number;\n bundleId: string;\n deviceVerification: string;\n deviceVerificationNonce: string;\n environment: string;\n originalAppVersion: string;\n originalPlatform?: (string | null);\n originalPurchaseDate: number;\n preorderDate?: (number | null);\n signedDate: number;\n}\n\n/**\n * Billing program types for external content links, external offers, and external payments (Android)\n * Available in Google Play Billing Library 8.2.0+, EXTERNAL_PAYMENTS added in 8.3.0\n */\nexport type BillingProgramAndroid = 'unspecified' | 'user-choice-billing' | 'external-content-link' | 'external-offer' | 'external-payments';\n\n/**\n * Result of checking billing program availability (Android)\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramAvailabilityResultAndroid {\n /** The billing program that was checked */\n billingProgram: BillingProgramAndroid;\n /** Whether the billing program is available for the user */\n isAvailable: boolean;\n}\n\n/**\n * Reporting details for transactions made outside of Google Play Billing (Android)\n * Contains the external transaction token needed for reporting\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramReportingDetailsAndroid {\n /** The billing program that the reporting details are associated with */\n billingProgram: BillingProgramAndroid;\n /**\n * External transaction token used to report transactions made outside of Google Play Billing.\n * This token must be used when reporting the external transaction to Google.\n */\n externalTransactionToken: string;\n}\n\n/**\n * Extended billing result with sub-response code (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport interface BillingResultAndroid {\n /** Debug message from the billing library */\n debugMessage?: (string | null);\n /** The response code from the billing operation */\n responseCode: number;\n /**\n * Sub-response code for more granular error information (8.0+).\n * Provides additional context when responseCode indicates an error.\n */\n subResponseCode?: (SubResponseCodeAndroid | null);\n}\n\nexport interface DeepLinkOptions {\n /** Android package name to target (required on Android) */\n packageNameAndroid?: (string | null);\n /** Android SKU to open (required on Android) */\n skuAndroid?: (string | null);\n}\n\n/**\n * Launch mode for developer billing option (Android)\n * Determines how the external payment URL is launched\n * Available in Google Play Billing Library 8.3.0+\n */\nexport type DeveloperBillingLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Parameters for developer billing option in purchase flow (Android)\n * Used with BillingFlowParams to enable external payments flow\n * Available in Google Play Billing Library 8.3.0+\n */\nexport interface DeveloperBillingOptionParamsAndroid {\n /** The billing program (should be EXTERNAL_PAYMENTS for external payments flow) */\n billingProgram: BillingProgramAndroid;\n /** The launch mode for the external payment link */\n launchMode: DeveloperBillingLaunchModeAndroid;\n /** The URI where the external payment will be processed */\n linkUri: string;\n}\n\n/**\n * Details provided when user selects developer billing option (Android)\n * Received via DeveloperProvidedBillingListener callback\n * Available in Google Play Billing Library 8.3.0+\n */\nexport interface DeveloperProvidedBillingDetailsAndroid {\n /**\n * External transaction token used to report transactions made through developer billing.\n * This token must be used when reporting the external transaction to Google Play.\n * Must be reported within 24 hours of the transaction.\n */\n externalTransactionToken: string;\n}\n\n/**\n * Discount amount details for one-time purchase offers (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface DiscountAmountAndroid {\n /** Discount amount in micro-units (1,000,000 = 1 unit of currency) */\n discountAmountMicros: string;\n /** Formatted discount amount with currency sign (e.g., \"$4.99\") */\n formattedDiscountAmount: string;\n}\n\n/**\n * Discount display information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface DiscountDisplayInfoAndroid {\n /**\n * Absolute discount amount details\n * Only returned for fixed amount discounts\n */\n discountAmount?: (DiscountAmountAndroid | null);\n /**\n * Percentage discount (e.g., 33 for 33% off)\n * Only returned for percentage-based discounts\n */\n percentageDiscount?: (number | null);\n}\n\n/**\n * Discount information returned from the store.\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface DiscountIOS {\n identifier: string;\n localizedPrice?: (string | null);\n numberOfPeriods: number;\n paymentMode: PaymentModeIOS;\n price: string;\n priceAmount: number;\n subscriptionPeriod: string;\n type: string;\n}\n\n/**\n * Standardized one-time product discount offer.\n * Provides a unified interface for one-time purchase discounts across platforms.\n *\n * Currently supported on Android (Google Play Billing 7.0+).\n * iOS does not support one-time purchase discounts in the same way.\n *\n * @see https://openiap.dev/docs/features/discount\n */\nexport interface DiscountOffer {\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency: string;\n /**\n * [Android] Fixed discount amount in micro-units.\n * Only present for fixed amount discounts.\n */\n discountAmountMicrosAndroid?: (string | null);\n /** Formatted display price string (e.g., \"$4.99\") */\n displayPrice: string;\n /** [Android] Formatted discount amount string (e.g., \"$5.00 OFF\"). */\n formattedDiscountAmountAndroid?: (string | null);\n /**\n * [Android] Original full price in micro-units before discount.\n * Divide by 1,000,000 to get the actual price.\n * Use for displaying strikethrough original price.\n */\n fullPriceMicrosAndroid?: (string | null);\n /**\n * Unique identifier for the offer.\n * - iOS: Not applicable (one-time discounts not supported)\n * - Android: offerId from ProductAndroidOneTimePurchaseOfferDetail\n */\n id?: (string | null);\n /**\n * [Android] Limited quantity information.\n * Contains maximumQuantity and remainingQuantity.\n */\n limitedQuantityInfoAndroid?: (LimitedQuantityInfoAndroid | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /**\n * [Android] Percentage discount (e.g., 33 for 33% off).\n * Only present for percentage-based discounts.\n */\n percentageDiscountAndroid?: (number | null);\n /**\n * [Android] Pre-order details if this is a pre-order offer.\n * Available in Google Play Billing Library 8.1.0+\n */\n preorderDetailsAndroid?: (PreorderDetailsAndroid | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Purchase option ID for this offer.\n * Used to identify which purchase option the user selected.\n * Available in Google Play Billing Library 7.0+\n */\n purchaseOptionIdAndroid?: (string | null);\n /** [Android] Rental details if this is a rental offer. */\n rentalDetailsAndroid?: (RentalDetailsAndroid | null);\n /** Type of discount offer */\n type: DiscountOfferType;\n /**\n * [Android] Valid time window for the offer.\n * Contains startTimeMillis and endTimeMillis.\n */\n validTimeWindowAndroid?: (ValidTimeWindowAndroid | null);\n}\n\n/**\n * iOS DiscountOffer (output type).\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface DiscountOfferIOS {\n /** Discount identifier */\n identifier: string;\n /** Key identifier for validation */\n keyIdentifier: string;\n /** Cryptographic nonce */\n nonce: string;\n /** Signature for validation */\n signature: string;\n /** Timestamp of discount offer */\n timestamp: number;\n}\n\nexport interface DiscountOfferInputIOS {\n /** Discount identifier */\n identifier: string;\n /** Key identifier for validation */\n keyIdentifier: string;\n /** Cryptographic nonce */\n nonce: string;\n /** Signature for validation */\n signature: string;\n /** Timestamp of discount offer */\n timestamp: number;\n}\n\n/**\n * Discount offer type enumeration.\n * Categorizes the type of discount or promotional offer.\n */\nexport type DiscountOfferType = 'introductory' | 'promotional' | 'one-time';\n\nexport interface EntitlementIOS {\n jsonRepresentation: string;\n sku: string;\n transactionId: string;\n}\n\nexport enum ErrorCode {\n ActivityUnavailable = 'activity-unavailable',\n AlreadyOwned = 'already-owned',\n AlreadyPrepared = 'already-prepared',\n BillingResponseJsonParseError = 'billing-response-json-parse-error',\n BillingUnavailable = 'billing-unavailable',\n ConnectionClosed = 'connection-closed',\n DeferredPayment = 'deferred-payment',\n DeveloperError = 'developer-error',\n DuplicatePurchase = 'duplicate-purchase',\n EmptySkuList = 'empty-sku-list',\n FeatureNotSupported = 'feature-not-supported',\n IapNotAvailable = 'iap-not-available',\n InitConnection = 'init-connection',\n Interrupted = 'interrupted',\n ItemNotOwned = 'item-not-owned',\n ItemUnavailable = 'item-unavailable',\n NetworkError = 'network-error',\n NotEnded = 'not-ended',\n NotPrepared = 'not-prepared',\n Pending = 'pending',\n PurchaseError = 'purchase-error',\n PurchaseVerificationFailed = 'purchase-verification-failed',\n PurchaseVerificationFinishFailed = 'purchase-verification-finish-failed',\n PurchaseVerificationFinished = 'purchase-verification-finished',\n QueryProduct = 'query-product',\n ReceiptFailed = 'receipt-failed',\n ReceiptFinished = 'receipt-finished',\n ReceiptFinishedFailed = 'receipt-finished-failed',\n RemoteError = 'remote-error',\n ServiceDisconnected = 'service-disconnected',\n ServiceError = 'service-error',\n ServiceTimeout = 'service-timeout',\n SkuNotFound = 'sku-not-found',\n SkuOfferMismatch = 'sku-offer-mismatch',\n SyncError = 'sync-error',\n TransactionValidationFailed = 'transaction-validation-failed',\n Unknown = 'unknown',\n UserCancelled = 'user-cancelled',\n UserError = 'user-error'\n}\n\n/**\n * Launch mode for external link flow (Android)\n * Determines how the external URL is launched\n * Available in Google Play Billing Library 8.2.0+\n */\nexport type ExternalLinkLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Link type for external link flow (Android)\n * Specifies the type of external link destination\n * Available in Google Play Billing Library 8.2.0+\n */\nexport type ExternalLinkTypeAndroid = 'unspecified' | 'link-to-digital-content-offer' | 'link-to-app-download';\n\n/**\n * External offer availability result (Android)\n * @deprecated Use BillingProgramAvailabilityResultAndroid with isBillingProgramAvailableAsync instead\n * Available in Google Play Billing Library 6.2.0+, deprecated in 8.2.0\n */\nexport interface ExternalOfferAvailabilityResultAndroid {\n /** Whether external offers are available for the user */\n isAvailable: boolean;\n}\n\n/**\n * External offer reporting details (Android)\n * @deprecated Use BillingProgramReportingDetailsAndroid with createBillingProgramReportingDetailsAsync instead\n * Available in Google Play Billing Library 6.2.0+, deprecated in 8.2.0\n */\nexport interface ExternalOfferReportingDetailsAndroid {\n /** External transaction token for reporting external offer transactions */\n externalTransactionToken: string;\n}\n\n/** Result of showing ExternalPurchaseCustomLink notice (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkNoticeResultIOS {\n /** Whether the user chose to continue to external purchase */\n continued: boolean;\n /** Optional error message if the presentation failed */\n error?: (string | null);\n}\n\n/**\n * Notice types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Determines the style of disclosure notice to display.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/noticetype\n */\nexport type ExternalPurchaseCustomLinkNoticeTypeIOS = 'browser';\n\n/** Result of requesting an ExternalPurchaseCustomLink token (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkTokenResultIOS {\n /** Optional error message if token retrieval failed */\n error?: (string | null);\n /**\n * The external purchase token string.\n * Report this token to Apple's External Purchase Server API.\n */\n token?: (string | null);\n}\n\n/**\n * Token types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Used to request different types of external purchase tokens for reporting to Apple.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n */\nexport type ExternalPurchaseCustomLinkTokenTypeIOS = 'acquisition' | 'services';\n\n/** Result of presenting an external purchase link */\nexport interface ExternalPurchaseLinkResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /** Whether the user completed the external purchase flow */\n success: boolean;\n}\n\n/** User actions on external purchase notice sheet (iOS 17.4+) */\nexport type ExternalPurchaseNoticeAction = 'continue' | 'dismissed';\n\n/**\n * Result of presenting external purchase notice sheet (iOS 17.4+)\n * Returns the token when user continues to external purchase.\n */\nexport interface ExternalPurchaseNoticeResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /**\n * External purchase token returned when user continues (iOS 17.4+).\n * This token should be reported to Apple's External Purchase Server API.\n * Only present when result is Continue.\n */\n externalPurchaseToken?: (string | null);\n /** Notice result indicating user action */\n result: ExternalPurchaseNoticeAction;\n}\n\nexport type FetchProductsResult = ProductOrSubscription[] | Product[] | ProductSubscription[] | null;\n\nexport type IapEvent = 'purchase-updated' | 'purchase-error' | 'promoted-product-ios' | 'user-choice-billing-android' | 'developer-provided-billing-android';\n\nexport type IapPlatform = 'ios' | 'android';\n\nexport type IapStore = 'unknown' | 'apple' | 'google' | 'horizon';\n\n/** Unified purchase states from IAPKit verification response. */\nexport type IapkitPurchaseState = 'entitled' | 'pending-acknowledgment' | 'pending' | 'canceled' | 'expired' | 'ready-to-consume' | 'consumed' | 'unknown' | 'inauthentic';\n\n/** Connection initialization configuration */\nexport interface InitConnectionConfig {\n /**\n * Alternative billing mode for Android\n * If not specified, defaults to NONE (standard Google Play billing)\n * @deprecated Use enableBillingProgramAndroid instead.\n * Use USER_CHOICE_BILLING for user choice billing, EXTERNAL_OFFER for alternative only.\n */\n alternativeBillingModeAndroid?: (AlternativeBillingModeAndroid | null);\n /**\n * Enable a specific billing program for Android (7.0+)\n * When set, enables the specified billing program for external transactions.\n * - USER_CHOICE_BILLING: User can select between Google Play or alternative (7.0+)\n * - EXTERNAL_CONTENT_LINK: Link to external content (8.2.0+)\n * - EXTERNAL_OFFER: External offers for digital content (8.2.0+)\n * - EXTERNAL_PAYMENTS: Developer provided billing, Japan only (8.3.0+)\n */\n enableBillingProgramAndroid?: (BillingProgramAndroid | null);\n}\n\n/**\n * Installment plan details for subscription offers (Android)\n * Contains information about the installment plan commitment.\n * Available in Google Play Billing Library 7.0+\n */\nexport interface InstallmentPlanDetailsAndroid {\n /**\n * Committed payments count after a user signs up for this subscription plan.\n * For example, for a monthly subscription with commitmentPaymentsCount of 12,\n * users will be charged monthly for 12 months after signup.\n */\n commitmentPaymentsCount: number;\n /**\n * Subsequent committed payments count after the subscription plan renews.\n * For example, for a monthly subscription with subsequentCommitmentPaymentsCount of 12,\n * users will be committed to another 12 monthly payments when the plan renews.\n * Returns 0 if the installment plan has no subsequent commitment (reverts to normal plan).\n */\n subsequentCommitmentPaymentsCount: number;\n}\n\n/**\n * Parameters for launching an external link (Android)\n * Used with launchExternalLink to initiate external offer or app install flows\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface LaunchExternalLinkParamsAndroid {\n /** The billing program (EXTERNAL_CONTENT_LINK or EXTERNAL_OFFER) */\n billingProgram: BillingProgramAndroid;\n /** The external link launch mode */\n launchMode: ExternalLinkLaunchModeAndroid;\n /** The type of the external link */\n linkType: ExternalLinkTypeAndroid;\n /** The URI where the content will be accessed from */\n linkUri: string;\n}\n\n/**\n * Limited quantity information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface LimitedQuantityInfoAndroid {\n /** Maximum quantity a user can purchase */\n maximumQuantity: number;\n /** Remaining quantity the user can still purchase */\n remainingQuantity: number;\n}\n\nexport interface Mutation {\n /** Acknowledge a non-consumable purchase or subscription */\n acknowledgePurchaseAndroid: Promise<boolean>;\n /** Initiate a refund request for a product (iOS 15+) */\n beginRefundRequestIOS?: Promise<(string | null)>;\n /**\n * Check if alternative billing is available for this user/device\n * Step 1 of alternative billing flow\n *\n * Returns true if available, false otherwise\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n checkAlternativeBillingAvailabilityAndroid: Promise<boolean>;\n /** Clear pending transactions from the StoreKit payment queue */\n clearTransactionIOS: Promise<boolean>;\n /** Consume a purchase token so it can be repurchased */\n consumePurchaseAndroid: Promise<boolean>;\n /**\n * Create external transaction token for Google Play reporting\n * Step 3 of alternative billing flow\n * Must be called AFTER successful payment in your payment system\n * Token must be reported to Google Play backend within 24 hours\n *\n * Returns token string, or null if creation failed\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n createAlternativeBillingTokenAndroid?: Promise<(string | null)>;\n /**\n * Create reporting details for a billing program\n * Replaces the deprecated createExternalOfferReportingDetailsAsync API\n *\n * Available in Google Play Billing Library 8.2.0+\n * Returns external transaction token needed for reporting external transactions\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n createBillingProgramReportingDetailsAndroid: Promise<BillingProgramReportingDetailsAndroid>;\n /** Open the native subscription management surface */\n deepLinkToSubscriptions: Promise<void>;\n /** Close the platform billing connection */\n endConnection: Promise<boolean>;\n /** Finish a transaction after validating receipts */\n finishTransaction: Promise<void>;\n /** Establish the platform billing connection */\n initConnection: Promise<boolean>;\n /**\n * Check if a billing program is available for the current user\n * Replaces the deprecated isExternalOfferAvailableAsync API\n *\n * Available in Google Play Billing Library 8.2.0+\n * Returns availability result with isAvailable flag\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n isBillingProgramAvailableAndroid: Promise<BillingProgramAvailabilityResultAndroid>;\n /**\n * Launch external link flow for external billing programs\n * Replaces the deprecated showExternalOfferInformationDialog API\n *\n * Available in Google Play Billing Library 8.2.0+\n * Shows Play Store dialog and optionally launches external URL\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n launchExternalLinkAndroid: Promise<boolean>;\n /** Present the App Store code redemption sheet */\n presentCodeRedemptionSheetIOS: Promise<boolean>;\n /** Present external purchase custom link with StoreKit UI */\n presentExternalPurchaseLinkIOS: Promise<ExternalPurchaseLinkResultIOS>;\n /**\n * Present external purchase notice sheet (iOS 17.4+).\n * Uses ExternalPurchase.presentNoticeSheet() which returns a token when user continues.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchase/presentnoticesheet()\n */\n presentExternalPurchaseNoticeSheetIOS: Promise<ExternalPurchaseNoticeResultIOS>;\n /** Initiate a purchase flow; rely on events for final state */\n requestPurchase?: Promise<(Purchase | Purchase[] | null)>;\n /**\n * Purchase the promoted product surfaced by the App Store.\n *\n * @deprecated Use promotedProductListenerIOS to receive the productId,\n * then call requestPurchase with that SKU instead. In StoreKit 2,\n * promoted products can be purchased directly via the standard purchase flow.\n * @deprecated Use promotedProductListenerIOS + requestPurchase instead\n */\n requestPurchaseOnPromotedProductIOS: Promise<boolean>;\n /** Restore completed purchases across platforms */\n restorePurchases: Promise<void>;\n /**\n * Show alternative billing information dialog to user\n * Step 2 of alternative billing flow\n * Must be called BEFORE processing payment in your payment system\n *\n * Returns true if user accepted, false if user canceled\n * Throws OpenIapError.NotPrepared if billing client not ready\n */\n showAlternativeBillingDialogAndroid: Promise<boolean>;\n /**\n * Show ExternalPurchaseCustomLink notice sheet (iOS 18.1+).\n * Displays the system disclosure notice sheet for custom external purchase links.\n * Call this after a deliberate customer interaction before linking out to external purchases.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/shownotice(type:)\n */\n showExternalPurchaseCustomLinkNoticeIOS: Promise<ExternalPurchaseCustomLinkNoticeResultIOS>;\n /** Open subscription management UI and return changed purchases (iOS 15+) */\n showManageSubscriptionsIOS: Promise<PurchaseIOS[]>;\n /** Force a StoreKit sync for transactions (iOS 15+) */\n syncIOS: Promise<boolean>;\n /**\n * Validate purchase receipts with the configured providers\n * @deprecated Use verifyPurchase\n */\n validateReceipt: Promise<VerifyPurchaseResult>;\n /** Verify purchases with the configured providers */\n verifyPurchase: Promise<VerifyPurchaseResult>;\n /** Verify purchases with a specific provider (e.g., IAPKit) */\n verifyPurchaseWithProvider: Promise<VerifyPurchaseWithProviderResult>;\n}\n\n\n\nexport type MutationAcknowledgePurchaseAndroidArgs = string;\n\nexport type MutationBeginRefundRequestIosArgs = string;\n\nexport type MutationConsumePurchaseAndroidArgs = string;\n\nexport type MutationCreateBillingProgramReportingDetailsAndroidArgs = BillingProgramAndroid;\n\nexport type MutationDeepLinkToSubscriptionsArgs = (DeepLinkOptions | null) | undefined;\n\nexport interface MutationFinishTransactionArgs {\n isConsumable?: (boolean | null);\n purchase: PurchaseInput;\n}\n\n\nexport type MutationInitConnectionArgs = (InitConnectionConfig | null) | undefined;\n\nexport type MutationIsBillingProgramAvailableAndroidArgs = BillingProgramAndroid;\n\nexport type MutationLaunchExternalLinkAndroidArgs = LaunchExternalLinkParamsAndroid;\n\nexport type MutationPresentExternalPurchaseLinkIosArgs = string;\n\nexport type MutationRequestPurchaseArgs =\n | {\n /** Per-platform purchase request props */\n request: RequestPurchasePropsByPlatforms;\n type: 'in-app';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n }\n | {\n /** Per-platform subscription request props */\n request: RequestSubscriptionPropsByPlatforms;\n type: 'subs';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n };\n\n\nexport type MutationShowExternalPurchaseCustomLinkNoticeIosArgs = ExternalPurchaseCustomLinkNoticeTypeIOS;\n\nexport type MutationValidateReceiptArgs = VerifyPurchaseProps;\n\nexport type MutationVerifyPurchaseArgs = VerifyPurchaseProps;\n\nexport type MutationVerifyPurchaseWithProviderArgs = VerifyPurchaseWithProviderProps;\n\n/**\n * Payment mode for subscription offers.\n * Determines how the user pays during the offer period.\n */\nexport type PaymentMode = 'free-trial' | 'pay-as-you-go' | 'pay-up-front' | 'unknown';\n\nexport type PaymentModeIOS = 'empty' | 'free-trial' | 'pay-as-you-go' | 'pay-up-front';\n\n/**\n * Pending purchase update for subscription upgrades/downgrades (Android)\n * When a user initiates a subscription change (upgrade/downgrade), the new purchase\n * may be pending until the current billing period ends. This type contains the\n * details of the pending change.\n * Available in Google Play Billing Library 5.0+\n */\nexport interface PendingPurchaseUpdateAndroid {\n /**\n * Product IDs for the pending purchase update.\n * These are the new products the user is switching to.\n */\n products: string[];\n /**\n * Purchase token for the pending transaction.\n * Use this token to track or manage the pending purchase update.\n */\n purchaseToken: string;\n}\n\n/**\n * Pre-order details for one-time purchase products (Android)\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface PreorderDetailsAndroid {\n /**\n * Pre-order presale end time in milliseconds since epoch.\n * This is when the presale period ends and the product will be released.\n */\n preorderPresaleEndTimeMillis: string;\n /**\n * Pre-order release time in milliseconds since epoch.\n * This is when the product will be available to users who pre-ordered.\n */\n preorderReleaseTimeMillis: string;\n}\n\nexport interface PricingPhaseAndroid {\n billingCycleCount: number;\n billingPeriod: string;\n formattedPrice: string;\n priceAmountMicros: string;\n priceCurrencyCode: string;\n recurrenceMode: number;\n}\n\nexport interface PricingPhasesAndroid {\n pricingPhaseList: PricingPhaseAndroid[];\n}\n\nexport type Product = ProductAndroid | ProductIOS;\n\nexport interface ProductAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * Standardized discount offers for one-time products.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#discount-offer\n */\n discountOffers?: (DiscountOffer[] | null);\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n /**\n * One-time purchase offer details including discounts (Android)\n * Returns all eligible offers. Available in Google Play Billing Library 7.0+\n * @deprecated Use discountOffers instead for cross-platform compatibility.\n * @deprecated Use discountOffers instead\n */\n oneTimePurchaseOfferDetailsAndroid?: (ProductAndroidOneTimePurchaseOfferDetail[] | null);\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionOfferDetailsAndroid?: (ProductSubscriptionAndroidOfferDetails[] | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n}\n\n/**\n * One-time purchase offer details (Android).\n * Available in Google Play Billing Library 7.0+\n * @deprecated Use the standardized DiscountOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#discount-offer\n */\nexport interface ProductAndroidOneTimePurchaseOfferDetail {\n /**\n * Discount display information\n * Only available for discounted offers\n */\n discountDisplayInfo?: (DiscountDisplayInfoAndroid | null);\n formattedPrice: string;\n /**\n * Full (non-discounted) price in micro-units\n * Only available for discounted offers\n */\n fullPriceMicros?: (string | null);\n /** Limited quantity information */\n limitedQuantityInfo?: (LimitedQuantityInfoAndroid | null);\n /** Offer ID */\n offerId?: (string | null);\n /** List of offer tags */\n offerTags: string[];\n /** Offer token for use in BillingFlowParams when purchasing */\n offerToken: string;\n /**\n * Pre-order details for products available for pre-order\n * Available in Google Play Billing Library 8.1.0+\n */\n preorderDetailsAndroid?: (PreorderDetailsAndroid | null);\n priceAmountMicros: string;\n priceCurrencyCode: string;\n /**\n * Purchase option ID for this offer (Android)\n * Used to identify which purchase option the user selected.\n * Available in Google Play Billing Library 7.0+\n */\n purchaseOptionId?: (string | null);\n /** Rental details for rental offers */\n rentalDetailsAndroid?: (RentalDetailsAndroid | null);\n /** Valid time window for the offer */\n validTimeWindow?: (ValidTimeWindowAndroid | null);\n}\n\nexport interface ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n platform: 'android' | 'ios';\n price?: (number | null);\n title: string;\n type: 'in-app' | 'subs';\n} \n\nexport interface ProductIOS extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionInfoIOS?: (SubscriptionInfoIOS | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * Note: iOS does not support one-time product discounts.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductOrSubscription = Product | ProductSubscription;\n\nexport type ProductQueryType = 'in-app' | 'subs' | 'all';\n\nexport interface ProductRequest {\n skus: string[];\n type?: (ProductQueryType | null);\n}\n\n/**\n * Status code for individual products returned from queryProductDetailsAsync (Android)\n * Prior to 8.0, products that couldn't be fetched were simply not returned.\n * With 8.0+, these products are returned with a status code explaining why.\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type ProductStatusAndroid = 'ok' | 'not-found' | 'no-offers-available' | 'unknown';\n\nexport type ProductSubscription = ProductSubscriptionAndroid | ProductSubscriptionIOS;\n\nexport interface ProductSubscriptionAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * Standardized discount offers for one-time products.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#discount-offer\n */\n discountOffers?: (DiscountOffer[] | null);\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n /**\n * One-time purchase offer details including discounts (Android)\n * Returns all eligible offers. Available in Google Play Billing Library 7.0+\n * @deprecated Use discountOffers instead for cross-platform compatibility.\n * @deprecated Use discountOffers instead\n */\n oneTimePurchaseOfferDetailsAndroid?: (ProductAndroidOneTimePurchaseOfferDetail[] | null);\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionOfferDetailsAndroid: ProductSubscriptionAndroidOfferDetails[];\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers: SubscriptionOffer[];\n title: string;\n type: 'subs';\n}\n\n/**\n * Subscription offer details (Android).\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface ProductSubscriptionAndroidOfferDetails {\n basePlanId: string;\n /**\n * Installment plan details for this subscription offer.\n * Only set for installment subscription plans; null for non-installment plans.\n * Available in Google Play Billing Library 7.0+\n */\n installmentPlanDetails?: (InstallmentPlanDetailsAndroid | null);\n offerId?: (string | null);\n offerTags: string[];\n offerToken: string;\n pricingPhases: PricingPhasesAndroid;\n}\n\nexport interface ProductSubscriptionIOS extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n discountsIOS?: (DiscountIOS[] | null);\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n introductoryPriceAsAmountIOS?: (string | null);\n introductoryPriceIOS?: (string | null);\n introductoryPriceNumberOfPeriodsIOS?: (string | null);\n introductoryPricePaymentModeIOS: PaymentModeIOS;\n introductoryPriceSubscriptionPeriodIOS?: (SubscriptionPeriodIOS | null);\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * @deprecated Use subscriptionOffers instead for cross-platform compatibility.\n * @deprecated Use subscriptionOffers instead\n */\n subscriptionInfoIOS?: (SubscriptionInfoIOS | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n subscriptionPeriodNumberIOS?: (string | null);\n subscriptionPeriodUnitIOS?: (SubscriptionPeriodIOS | null);\n title: string;\n type: 'subs';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductType = 'in-app' | 'subs';\n\nexport type ProductTypeIOS = 'consumable' | 'non-consumable' | 'auto-renewable-subscription' | 'non-renewing-subscription';\n\n/**\n * JWS promotional offer input for iOS 15+ (StoreKit 2, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * This provides a simpler alternative to the legacy signature-based promotional offers.\n * Back-deployed to iOS 15.\n */\nexport interface PromotionalOfferJwsInputIOS {\n /**\n * Compact JWS string signed by your server.\n * The JWS should contain the promotional offer signature data.\n * Format: header.payload.signature (base64url encoded)\n */\n jws: string;\n /** The promotional offer identifier from App Store Connect */\n offerId: string;\n}\n\nexport type Purchase = PurchaseAndroid | PurchaseIOS;\n\nexport interface PurchaseAndroid extends PurchaseCommon {\n autoRenewingAndroid?: (boolean | null);\n currentPlanId?: (string | null);\n dataAndroid?: (string | null);\n developerPayloadAndroid?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAcknowledgedAndroid?: (boolean | null);\n isAutoRenewing: boolean;\n /**\n * Whether the subscription is suspended (Android)\n * A suspended subscription means the user's payment method failed and they need to fix it.\n * Users should be directed to the subscription center to resolve the issue.\n * Do NOT grant entitlements for suspended subscriptions.\n * Available in Google Play Billing Library 8.1.0+\n */\n isSuspendedAndroid?: (boolean | null);\n obfuscatedAccountIdAndroid?: (string | null);\n obfuscatedProfileIdAndroid?: (string | null);\n packageNameAndroid?: (string | null);\n /**\n * Pending purchase update for uncommitted subscription upgrade/downgrade (Android)\n * Contains the new products and purchase token for the pending transaction.\n * Returns null if no pending update exists.\n * Available in Google Play Billing Library 5.0+\n */\n pendingPurchaseUpdateAndroid?: (PendingPurchaseUpdateAndroid | null);\n /** @deprecated Use store instead */\n platform: IapPlatform;\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n signatureAndroid?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n transactionDate: number;\n transactionId?: (string | null);\n}\n\nexport interface PurchaseCommon {\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n /** @deprecated Use store instead */\n platform: IapPlatform;\n productId: string;\n purchaseState: PurchaseState;\n /** Unified purchase token (iOS JWS, Android purchaseToken) */\n purchaseToken?: (string | null);\n quantity: number;\n /** Store where purchase was made */\n store: IapStore;\n transactionDate: number;\n}\n\nexport interface PurchaseError {\n code: ErrorCode;\n debugMessage?: (string | null);\n message: string;\n productId?: (string | null);\n}\n\nexport interface PurchaseIOS extends PurchaseCommon {\n appAccountToken?: (string | null);\n appBundleIdIOS?: (string | null);\n countryCodeIOS?: (string | null);\n currencyCodeIOS?: (string | null);\n currencySymbolIOS?: (string | null);\n currentPlanId?: (string | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n isUpgradedIOS?: (boolean | null);\n offerIOS?: (PurchaseOfferIOS | null);\n originalTransactionDateIOS?: (number | null);\n originalTransactionIdentifierIOS?: (string | null);\n ownershipTypeIOS?: (string | null);\n /** @deprecated Use store instead */\n platform: IapPlatform;\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n quantityIOS?: (number | null);\n reasonIOS?: (string | null);\n reasonStringRepresentationIOS?: (string | null);\n renewalInfoIOS?: (RenewalInfoIOS | null);\n revocationDateIOS?: (number | null);\n revocationReasonIOS?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n storefrontCountryCodeIOS?: (string | null);\n subscriptionGroupIdIOS?: (string | null);\n transactionDate: number;\n transactionId: string;\n transactionReasonIOS?: (string | null);\n webOrderLineItemIdIOS?: (string | null);\n}\n\nexport type PurchaseInput = Purchase;\n\nexport interface PurchaseOfferIOS {\n id: string;\n paymentMode: string;\n type: string;\n}\n\nexport interface PurchaseOptions {\n /** Also emit results through the iOS event listeners */\n alsoPublishToEventListenerIOS?: (boolean | null);\n /**\n * Include suspended subscriptions in the result (Android 8.1+).\n * Suspended subscriptions have isSuspendedAndroid=true and should NOT be granted entitlements.\n * Users should be directed to the subscription center to resolve payment issues.\n * Default: false (only active subscriptions are returned)\n */\n includeSuspendedAndroid?: (boolean | null);\n /** Limit to currently active items on iOS */\n onlyIncludeActiveItemsIOS?: (boolean | null);\n}\n\nexport type PurchaseState = 'pending' | 'purchased' | 'unknown';\n\nexport type PurchaseVerificationProvider = 'iapkit';\n\nexport interface Query {\n /**\n * Check if external purchase notice sheet can be presented (iOS 17.4+)\n * Uses ExternalPurchase.canPresent\n */\n canPresentExternalPurchaseNoticeIOS: Promise<boolean>;\n /** Get current StoreKit 2 entitlements (iOS 15+) */\n currentEntitlementIOS?: Promise<(PurchaseIOS | null)>;\n /** Retrieve products or subscriptions from the store */\n fetchProducts: Promise<(ProductOrSubscription[] | Product[] | ProductSubscription[] | null)>;\n /** Get active subscriptions (filters by subscriptionIds when provided) */\n getActiveSubscriptions: Promise<ActiveSubscription[]>;\n /** Fetch the current app transaction (iOS 16+) */\n getAppTransactionIOS?: Promise<(AppTransaction | null)>;\n /** Get all available purchases for the current user */\n getAvailablePurchases: Promise<Purchase[]>;\n /**\n * Get external purchase token for reporting to Apple (iOS 18.1+).\n * Use this token with Apple's External Purchase Server API to report transactions.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n */\n getExternalPurchaseCustomLinkTokenIOS: Promise<ExternalPurchaseCustomLinkTokenResultIOS>;\n /** Retrieve all pending transactions in the StoreKit queue */\n getPendingTransactionsIOS: Promise<PurchaseIOS[]>;\n /** Get the currently promoted product (iOS 11+) */\n getPromotedProductIOS?: Promise<(ProductIOS | null)>;\n /** Get base64-encoded receipt data for validation */\n getReceiptDataIOS?: Promise<(string | null)>;\n /** Get the current storefront country code */\n getStorefront: Promise<string>;\n /**\n * Get the current App Store storefront country code\n * @deprecated Use getStorefront\n */\n getStorefrontIOS: Promise<string>;\n /** Get the transaction JWS (StoreKit 2) */\n getTransactionJwsIOS?: Promise<(string | null)>;\n /** Check whether the user has active subscriptions */\n hasActiveSubscriptions: Promise<boolean>;\n /**\n * Check if app is eligible for ExternalPurchaseCustomLink API (iOS 18.1+).\n * Returns true if the app can use custom external purchase links.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/iseligible\n */\n isEligibleForExternalPurchaseCustomLinkIOS: Promise<boolean>;\n /** Check introductory offer eligibility for a subscription group */\n isEligibleForIntroOfferIOS: Promise<boolean>;\n /** Verify a StoreKit 2 transaction signature */\n isTransactionVerifiedIOS: Promise<boolean>;\n /** Get the latest transaction for a product using StoreKit 2 */\n latestTransactionIOS?: Promise<(PurchaseIOS | null)>;\n /** Get StoreKit 2 subscription status details (iOS 15+) */\n subscriptionStatusIOS: Promise<SubscriptionStatusIOS[]>;\n /**\n * Validate a receipt for a specific product\n * @deprecated Use verifyPurchase\n */\n validateReceiptIOS: Promise<VerifyPurchaseResultIOS>;\n}\n\n\n\nexport type QueryCurrentEntitlementIosArgs = string;\n\nexport type QueryFetchProductsArgs = ProductRequest;\n\nexport type QueryGetActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryGetAvailablePurchasesArgs = (PurchaseOptions | null) | undefined;\n\nexport type QueryGetExternalPurchaseCustomLinkTokenIosArgs = ExternalPurchaseCustomLinkTokenTypeIOS;\n\nexport type QueryGetTransactionJwsIosArgs = string;\n\nexport type QueryHasActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryIsEligibleForIntroOfferIosArgs = string;\n\nexport type QueryIsTransactionVerifiedIosArgs = string;\n\nexport type QueryLatestTransactionIosArgs = string;\n\nexport type QuerySubscriptionStatusIosArgs = string;\n\nexport type QueryValidateReceiptIosArgs = VerifyPurchaseProps;\n\nexport interface RefundResultIOS {\n message?: (string | null);\n status: string;\n}\n\n/**\n * Subscription renewal information from Product.SubscriptionInfo.RenewalInfo\n * https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo\n */\nexport interface RenewalInfoIOS {\n autoRenewPreference?: (string | null);\n /**\n * When subscription expires due to cancellation/billing issue\n * Possible values: \"VOLUNTARY\", \"BILLING_ERROR\", \"DID_NOT_AGREE_TO_PRICE_INCREASE\", \"PRODUCT_NOT_AVAILABLE\", \"UNKNOWN\"\n */\n expirationReason?: (string | null);\n /**\n * Grace period expiration date (milliseconds since epoch)\n * When set, subscription is in grace period (billing issue but still has access)\n */\n gracePeriodExpirationDate?: (number | null);\n /**\n * True if subscription failed to renew due to billing issue and is retrying\n * Note: Not directly available in RenewalInfo, available in Status\n */\n isInBillingRetry?: (boolean | null);\n jsonRepresentation?: (string | null);\n /**\n * Product ID that will be used on next renewal (when user upgrades/downgrades)\n * If set and different from current productId, subscription will change on expiration\n */\n pendingUpgradeProductId?: (string | null);\n /**\n * User's response to subscription price increase\n * Possible values: \"AGREED\", \"PENDING\", null (no price increase)\n */\n priceIncreaseStatus?: (string | null);\n /**\n * Expected renewal date (milliseconds since epoch)\n * For active subscriptions, when the next renewal/charge will occur\n */\n renewalDate?: (number | null);\n /** Offer ID applied to next renewal (promotional offer, subscription offer code, etc.) */\n renewalOfferId?: (string | null);\n /**\n * Type of offer applied to next renewal\n * Possible values: \"PROMOTIONAL\", \"SUBSCRIPTION_OFFER_CODE\", \"WIN_BACK\", etc.\n */\n renewalOfferType?: (string | null);\n willAutoRenew: boolean;\n}\n\n/**\n * Rental details for one-time purchase products that can be rented (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface RentalDetailsAndroid {\n /**\n * Rental expiration period in ISO 8601 format\n * Time after rental period ends when user can still extend\n */\n rentalExpirationPeriod?: (string | null);\n /** Rental period in ISO 8601 format (e.g., P7D for 7 days) */\n rentalPeriod: string;\n}\n\nexport interface RequestPurchaseAndroidProps {\n /**\n * Developer billing option parameters for external payments flow (8.3.0+).\n * When provided, the purchase flow will show a side-by-side choice between\n * Google Play Billing and the developer's external payment option.\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /**\n * Offer token for one-time purchase discounts (7.0+).\n * Pass the offerToken from oneTimePurchaseOfferDetailsAndroid or discountOffers\n * to apply a discount offer to the purchase.\n */\n offerToken?: (string | null);\n /** List of product SKUs */\n skus: string[];\n}\n\nexport interface RequestPurchaseIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n /** Auto-finish transaction (dangerous) */\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n /** App account token for user tracking */\n appAccountToken?: (string | null);\n /** Purchase quantity */\n quantity?: (number | null);\n /** Product SKU */\n sku: string;\n /**\n * Promotional offer to apply (subscriptions only, ignored for one-time purchases).\n * iOS only supports promotional offers for auto-renewable subscriptions.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\nexport type RequestPurchaseProps =\n | {\n /** Per-platform purchase request props */\n request: RequestPurchasePropsByPlatforms;\n type: 'in-app';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n }\n | {\n /** Per-platform subscription request props */\n request: RequestSubscriptionPropsByPlatforms;\n type: 'subs';\n /** Use alternative billing (Google Play alternative billing, Apple external purchase link) */\n useAlternativeBilling?: boolean | null;\n };\n\n/**\n * Platform-specific purchase request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, or Horizon when built with horizon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestPurchasePropsByPlatforms {\n /** @deprecated Use google instead */\n android?: (RequestPurchaseAndroidProps | null);\n /** Apple-specific purchase parameters */\n apple?: (RequestPurchaseIosProps | null);\n /** Google-specific purchase parameters */\n google?: (RequestPurchaseAndroidProps | null);\n /** @deprecated Use apple instead */\n ios?: (RequestPurchaseIosProps | null);\n}\n\nexport type RequestPurchaseResult = Purchase | Purchase[] | null;\n\nexport interface RequestSubscriptionAndroidProps {\n /**\n * Developer billing option parameters for external payments flow (8.3.0+).\n * When provided, the purchase flow will show a side-by-side choice between\n * Google Play Billing and the developer's external payment option.\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /** Purchase token for upgrades/downgrades */\n purchaseToken?: (string | null);\n /**\n * Replacement mode for subscription changes\n * @deprecated Use subscriptionProductReplacementParams instead for item-level replacement (8.1.0+)\n */\n replacementMode?: (number | null);\n /** List of subscription SKUs */\n skus: string[];\n /** Subscription offers */\n subscriptionOffers?: (AndroidSubscriptionOfferInput[] | null);\n /**\n * Product-level replacement parameters (8.1.0+)\n * Use this instead of replacementMode for item-level replacement\n */\n subscriptionProductReplacementParams?: (SubscriptionProductReplacementParamsAndroid | null);\n}\n\nexport interface RequestSubscriptionIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n appAccountToken?: (string | null);\n /**\n * Override introductory offer eligibility (iOS 15+, WWDC 2025).\n * Set to true to indicate the user is eligible for introductory offer,\n * or false to indicate they are not. When nil, the system determines eligibility.\n * Back-deployed to iOS 15.\n */\n introductoryOfferEligibility?: (boolean | null);\n /**\n * JWS promotional offer (iOS 15+, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * Back-deployed to iOS 15.\n */\n promotionalOfferJWS?: (PromotionalOfferJwsInputIOS | null);\n quantity?: (number | null);\n sku: string;\n /**\n * Win-back offer to apply (iOS 18+)\n * Used to re-engage churned subscribers with a discount or free trial.\n * The offer is available when the customer is eligible and can be discovered\n * via StoreKit Message (automatic) or subscription offer APIs.\n */\n winBackOffer?: (WinBackOfferInputIOS | null);\n /**\n * Promotional offer to apply for subscription purchases.\n * Requires server-signed offer with nonce, timestamp, keyId, and signature.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\n/**\n * Platform-specific subscription request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, or Horizon when built with horizon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestSubscriptionPropsByPlatforms {\n /** @deprecated Use google instead */\n android?: (RequestSubscriptionAndroidProps | null);\n /** Apple-specific subscription parameters */\n apple?: (RequestSubscriptionIosProps | null);\n /** Google-specific subscription parameters */\n google?: (RequestSubscriptionAndroidProps | null);\n /** @deprecated Use apple instead */\n ios?: (RequestSubscriptionIosProps | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitAppleProps {\n /** The JWS token returned with the purchase response. */\n jws: string;\n}\n\nexport interface RequestVerifyPurchaseWithIapkitGoogleProps {\n /** The token provided to the user's device when the product or subscription was purchased. */\n purchaseToken: string;\n}\n\n/**\n * Platform-specific verification parameters for IAPKit.\n *\n * - apple: Verifies via App Store (JWS token)\n * - google: Verifies via Play Store (purchase token)\n */\nexport interface RequestVerifyPurchaseWithIapkitProps {\n /** API key used for the Authorization header (Bearer {apiKey}). */\n apiKey?: (string | null);\n /** Apple App Store verification parameters. */\n apple?: (RequestVerifyPurchaseWithIapkitAppleProps | null);\n /** Google Play Store verification parameters. */\n google?: (RequestVerifyPurchaseWithIapkitGoogleProps | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitResult {\n /** Whether the purchase is valid (not falsified). */\n isValid: boolean;\n /** The current state of the purchase. */\n state: IapkitPurchaseState;\n store: IapStore;\n}\n\n/**\n * Sub-response codes for more granular purchase error information (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type SubResponseCodeAndroid = 'no-applicable-sub-response-code' | 'payment-declined-due-to-insufficient-funds' | 'user-ineligible';\n\nexport interface Subscription {\n /**\n * Fires when a user selects developer billing in the External Payments flow (Android only)\n * Triggered when the user chooses to pay via the developer's external payment option\n * instead of Google Play Billing in the side-by-side choice dialog.\n * Contains the externalTransactionToken needed to report the transaction.\n * Available in Google Play Billing Library 8.3.0+\n */\n developerProvidedBillingAndroid: DeveloperProvidedBillingDetailsAndroid;\n /** Fires when the App Store surfaces a promoted product (iOS only) */\n promotedProductIOS: string;\n /** Fires when a purchase fails or is cancelled */\n purchaseError: PurchaseError;\n /** Fires when a purchase completes successfully or a pending purchase resolves */\n purchaseUpdated: Purchase;\n /**\n * Fires when a user selects alternative billing in the User Choice Billing dialog (Android only)\n * Only triggered when the user selects alternative billing instead of Google Play billing\n */\n userChoiceBillingAndroid: UserChoiceBillingDetails;\n}\n\n\nexport interface SubscriptionInfoIOS {\n introductoryOffer?: (SubscriptionOfferIOS | null);\n promotionalOffers?: (SubscriptionOfferIOS[] | null);\n subscriptionGroupId: string;\n subscriptionPeriod: SubscriptionPeriodValueIOS;\n}\n\n/**\n * Standardized subscription discount/promotional offer.\n * Provides a unified interface for subscription offers across iOS and Android.\n *\n * Both platforms support subscription offers with different implementations:\n * - iOS: Introductory offers, promotional offers with server-side signatures\n * - Android: Offer tokens with pricing phases\n *\n * @see https://openiap.dev/docs/types/ios#discount-offer\n * @see https://openiap.dev/docs/types/android#subscription-offer\n */\nexport interface SubscriptionOffer {\n /**\n * [Android] Base plan identifier.\n * Identifies which base plan this offer belongs to.\n */\n basePlanIdAndroid?: (string | null);\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency?: (string | null);\n /** Formatted display price string (e.g., \"$9.99/month\") */\n displayPrice: string;\n /**\n * Unique identifier for the offer.\n * - iOS: Discount identifier from App Store Connect\n * - Android: offerId from ProductSubscriptionAndroidOfferDetails\n */\n id: string;\n /**\n * [Android] Installment plan details for this subscription offer.\n * Only set for installment subscription plans; null for non-installment plans.\n * Available in Google Play Billing Library 7.0+\n */\n installmentPlanDetailsAndroid?: (InstallmentPlanDetailsAndroid | null);\n /**\n * [iOS] Key identifier for signature validation.\n * Used with server-side signature generation for promotional offers.\n */\n keyIdentifierIOS?: (string | null);\n /** [iOS] Localized price string. */\n localizedPriceIOS?: (string | null);\n /**\n * [iOS] Cryptographic nonce (UUID) for signature validation.\n * Must be generated server-side for each purchase attempt.\n */\n nonceIOS?: (string | null);\n /** [iOS] Number of billing periods for this discount. */\n numberOfPeriodsIOS?: (number | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /** Payment mode during the offer period */\n paymentMode?: (PaymentMode | null);\n /** Subscription period for this offer */\n period?: (SubscriptionPeriod | null);\n /** Number of periods the offer applies */\n periodCount?: (number | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Pricing phases for this subscription offer.\n * Contains detailed pricing information for each phase (trial, intro, regular).\n */\n pricingPhasesAndroid?: (PricingPhasesAndroid | null);\n /**\n * [iOS] Server-generated signature for promotional offer validation.\n * Required when applying promotional offers on iOS.\n */\n signatureIOS?: (string | null);\n /**\n * [iOS] Timestamp when the signature was generated.\n * Used for signature validation.\n */\n timestampIOS?: (number | null);\n /** Type of subscription offer (Introductory or Promotional) */\n type: DiscountOfferType;\n}\n\n/**\n * iOS subscription offer details.\n * @deprecated Use the standardized SubscriptionOffer type instead for cross-platform compatibility.\n * @see https://openiap.dev/docs/types#subscription-offer\n */\nexport interface SubscriptionOfferIOS {\n displayPrice: string;\n id: string;\n paymentMode: PaymentModeIOS;\n period: SubscriptionPeriodValueIOS;\n periodCount: number;\n price: number;\n type: SubscriptionOfferTypeIOS;\n}\n\nexport type SubscriptionOfferTypeIOS = 'introductory' | 'promotional' | 'win-back';\n\n/** Subscription period value combining unit and count. */\nexport interface SubscriptionPeriod {\n /** The period unit (day, week, month, year) */\n unit: SubscriptionPeriodUnit;\n /** The number of units (e.g., 1 for monthly, 3 for quarterly) */\n value: number;\n}\n\nexport type SubscriptionPeriodIOS = 'day' | 'week' | 'month' | 'year' | 'empty';\n\n/** Subscription period unit for cross-platform use. */\nexport type SubscriptionPeriodUnit = 'day' | 'week' | 'month' | 'year' | 'unknown';\n\nexport interface SubscriptionPeriodValueIOS {\n unit: SubscriptionPeriodIOS;\n value: number;\n}\n\n/**\n * Product-level subscription replacement parameters (Android)\n * Used with setSubscriptionProductReplacementParams in BillingFlowParams.ProductDetailsParams\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface SubscriptionProductReplacementParamsAndroid {\n /** The old product ID that needs to be replaced */\n oldProductId: string;\n /** The replacement mode for this product change */\n replacementMode: SubscriptionReplacementModeAndroid;\n}\n\n/**\n * Replacement mode for subscription changes (Android)\n * These modes determine how the subscription replacement affects billing.\n * Available in Google Play Billing Library 8.1.0+\n */\nexport type SubscriptionReplacementModeAndroid = 'unknown-replacement-mode' | 'with-time-proration' | 'charge-prorated-price' | 'charge-full-price' | 'without-proration' | 'deferred' | 'keep-existing';\n\nexport interface SubscriptionStatusIOS {\n renewalInfo?: (RenewalInfoIOS | null);\n state: string;\n}\n\n/**\n * User Choice Billing event details (Android)\n * Fired when a user selects alternative billing in the User Choice Billing dialog\n */\nexport interface UserChoiceBillingDetails {\n /** Token that must be reported to Google Play within 24 hours */\n externalTransactionToken: string;\n /** List of product IDs selected by the user */\n products: string[];\n}\n\n/**\n * Valid time window for when an offer is available (Android)\n * Available in Google Play Billing Library 7.0+\n */\nexport interface ValidTimeWindowAndroid {\n /** End time in milliseconds since epoch */\n endTimeMillis: string;\n /** Start time in milliseconds since epoch */\n startTimeMillis: string;\n}\n\n/**\n * Apple App Store verification parameters.\n * Used for server-side receipt validation via App Store Server API.\n */\nexport interface VerifyPurchaseAppleOptions {\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Google Play Store verification parameters.\n * Used for server-side receipt validation via Google Play Developer API.\n *\n * ⚠️ SECURITY: Contains sensitive tokens (accessToken, purchaseToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseGoogleOptions {\n /**\n * Google OAuth2 access token for API authentication.\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** Whether this is a subscription purchase (affects API endpoint used) */\n isSub?: (boolean | null);\n /** Android package name (e.g., com.example.app) */\n packageName: string;\n /**\n * Purchase token from the purchase response.\n * ⚠️ Sensitive: Do not log this value.\n */\n purchaseToken: string;\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Meta Horizon (Quest) verification parameters.\n * Used for server-side entitlement verification via Meta's S2S API.\n * POST https://graph.oculus.com/$APP_ID/verify_entitlement\n *\n * ⚠️ SECURITY: Contains sensitive token (accessToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseHorizonOptions {\n /**\n * Access token for Meta API authentication (OC|$APP_ID|$APP_SECRET or User Access Token).\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** The SKU for the add-on item, defined in Meta Developer Dashboard */\n sku: string;\n /** The user ID of the user whose purchase you want to verify */\n userId: string;\n}\n\n/**\n * Platform-specific purchase verification parameters.\n *\n * - apple: Verifies via App Store Server API\n * - google: Verifies via Google Play Developer API\n * - horizon: Verifies via Meta's S2S API (verify_entitlement endpoint)\n */\nexport interface VerifyPurchaseProps {\n /** Apple App Store verification parameters. */\n apple?: (VerifyPurchaseAppleOptions | null);\n /** Google Play Store verification parameters. */\n google?: (VerifyPurchaseGoogleOptions | null);\n /** Meta Horizon (Quest) verification parameters. */\n horizon?: (VerifyPurchaseHorizonOptions | null);\n}\n\nexport type VerifyPurchaseResult = VerifyPurchaseResultAndroid | VerifyPurchaseResultHorizon | VerifyPurchaseResultIOS;\n\nexport interface VerifyPurchaseResultAndroid {\n autoRenewing: boolean;\n betaProduct: boolean;\n cancelDate?: (number | null);\n cancelReason?: (string | null);\n deferredDate?: (number | null);\n deferredSku?: (string | null);\n freeTrialEndDate: number;\n gracePeriodEndDate: number;\n parentProductId: string;\n productId: string;\n productType: string;\n purchaseDate: number;\n quantity: number;\n receiptId: string;\n renewalDate: number;\n term: string;\n termSku: string;\n testTransaction: boolean;\n}\n\n/**\n * Result from Meta Horizon verify_entitlement API.\n * Returns verification status and grant time for the entitlement.\n */\nexport interface VerifyPurchaseResultHorizon {\n /** Unix timestamp (seconds) when the entitlement was granted. */\n grantTime?: (number | null);\n /** Whether the entitlement verification succeeded. */\n success: boolean;\n}\n\nexport interface VerifyPurchaseResultIOS {\n /** Whether the receipt is valid */\n isValid: boolean;\n /** JWS representation */\n jwsRepresentation: string;\n /** Latest transaction if available */\n latestTransaction?: (Purchase | null);\n /** Receipt data string */\n receiptData: string;\n}\n\nexport interface VerifyPurchaseWithProviderError {\n code?: (string | null);\n message: string;\n}\n\nexport interface VerifyPurchaseWithProviderProps {\n iapkit?: (RequestVerifyPurchaseWithIapkitProps | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport interface VerifyPurchaseWithProviderResult {\n /** Error details if verification failed */\n errors?: (VerifyPurchaseWithProviderError[] | null);\n /** IAPKit verification result */\n iapkit?: (RequestVerifyPurchaseWithIapkitResult | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport type VoidResult = void;\n\n/**\n * Win-back offer input for iOS 18+ (StoreKit 2)\n * Win-back offers are used to re-engage churned subscribers.\n * The offer is automatically presented via StoreKit Message when eligible,\n * or can be applied programmatically during purchase.\n */\nexport interface WinBackOfferInputIOS {\n /** The win-back offer ID from App Store Connect */\n offerId: string;\n}\n// -- Query helper types (auto-generated)\nexport type QueryArgsMap = {\n canPresentExternalPurchaseNoticeIOS: never;\n currentEntitlementIOS: QueryCurrentEntitlementIosArgs;\n fetchProducts: QueryFetchProductsArgs;\n getActiveSubscriptions: QueryGetActiveSubscriptionsArgs;\n getAppTransactionIOS: never;\n getAvailablePurchases: QueryGetAvailablePurchasesArgs;\n getExternalPurchaseCustomLinkTokenIOS: QueryGetExternalPurchaseCustomLinkTokenIosArgs;\n getPendingTransactionsIOS: never;\n getPromotedProductIOS: never;\n getReceiptDataIOS: never;\n getStorefront: never;\n getStorefrontIOS: never;\n getTransactionJwsIOS: QueryGetTransactionJwsIosArgs;\n hasActiveSubscriptions: QueryHasActiveSubscriptionsArgs;\n isEligibleForExternalPurchaseCustomLinkIOS: never;\n isEligibleForIntroOfferIOS: QueryIsEligibleForIntroOfferIosArgs;\n isTransactionVerifiedIOS: QueryIsTransactionVerifiedIosArgs;\n latestTransactionIOS: QueryLatestTransactionIosArgs;\n subscriptionStatusIOS: QuerySubscriptionStatusIosArgs;\n validateReceiptIOS: QueryValidateReceiptIosArgs;\n};\n\nexport type QueryField<K extends keyof Query> =\n QueryArgsMap[K] extends never\n ? () => NonNullable<Query[K]>\n : undefined extends QueryArgsMap[K]\n ? (args?: QueryArgsMap[K]) => NonNullable<Query[K]>\n : (args: QueryArgsMap[K]) => NonNullable<Query[K]>;\n\nexport type QueryFieldMap = {\n [K in keyof Query]?: QueryField<K>;\n};\n// -- End query helper types\n\n// -- Mutation helper types (auto-generated)\nexport type MutationArgsMap = {\n acknowledgePurchaseAndroid: MutationAcknowledgePurchaseAndroidArgs;\n beginRefundRequestIOS: MutationBeginRefundRequestIosArgs;\n checkAlternativeBillingAvailabilityAndroid: never;\n clearTransactionIOS: never;\n consumePurchaseAndroid: MutationConsumePurchaseAndroidArgs;\n createAlternativeBillingTokenAndroid: never;\n createBillingProgramReportingDetailsAndroid: MutationCreateBillingProgramReportingDetailsAndroidArgs;\n deepLinkToSubscriptions: MutationDeepLinkToSubscriptionsArgs;\n endConnection: never;\n finishTransaction: MutationFinishTransactionArgs;\n initConnection: MutationInitConnectionArgs;\n isBillingProgramAvailableAndroid: MutationIsBillingProgramAvailableAndroidArgs;\n launchExternalLinkAndroid: MutationLaunchExternalLinkAndroidArgs;\n presentCodeRedemptionSheetIOS: never;\n presentExternalPurchaseLinkIOS: MutationPresentExternalPurchaseLinkIosArgs;\n presentExternalPurchaseNoticeSheetIOS: never;\n requestPurchase: MutationRequestPurchaseArgs;\n requestPurchaseOnPromotedProductIOS: never;\n restorePurchases: never;\n showAlternativeBillingDialogAndroid: never;\n showExternalPurchaseCustomLinkNoticeIOS: MutationShowExternalPurchaseCustomLinkNoticeIosArgs;\n showManageSubscriptionsIOS: never;\n syncIOS: never;\n validateReceipt: MutationValidateReceiptArgs;\n verifyPurchase: MutationVerifyPurchaseArgs;\n verifyPurchaseWithProvider: MutationVerifyPurchaseWithProviderArgs;\n};\n\nexport type MutationField<K extends keyof Mutation> =\n MutationArgsMap[K] extends never\n ? () => NonNullable<Mutation[K]>\n : undefined extends MutationArgsMap[K]\n ? (args?: MutationArgsMap[K]) => NonNullable<Mutation[K]>\n : (args: MutationArgsMap[K]) => NonNullable<Mutation[K]>;\n\nexport type MutationFieldMap = {\n [K in keyof Mutation]?: MutationField<K>;\n};\n// -- End mutation helper types\n\n// -- Subscription helper types (auto-generated)\nexport type SubscriptionArgsMap = {\n developerProvidedBillingAndroid: never;\n promotedProductIOS: never;\n purchaseError: never;\n purchaseUpdated: never;\n userChoiceBillingAndroid: never;\n};\n\nexport type SubscriptionField<K extends keyof Subscription> =\n SubscriptionArgsMap[K] extends never\n ? () => NonNullable<Subscription[K]>\n : undefined extends SubscriptionArgsMap[K]\n ? (args?: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>\n : (args: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>;\n\nexport type SubscriptionFieldMap = {\n [K in keyof Subscription]?: SubscriptionField<K>;\n};\n// -- End subscription helper types\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorMapping.d.ts","sourceRoot":"","sources":["../../src/utils/errorMapping.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAgBhD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"errorMapping.d.ts","sourceRoot":"","sources":["../../src/utils/errorMapping.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAgBhD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAqDD,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAIX,eAAO,MAAM,mBAAmB,GAC9B,OAAO,kBAAkB,KACxB,aAiBF,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,WAAW,kBAAkB,EAC7B,UAAU,WAAW,KACpB,aAgBF,CAAC;AAEF,eAAO,MAAM,cAAc;oCACO,SAAS,KAAG,MAAM;qCAOlC,MAAM,GAAG,MAAM,aAClB,WAAW,KACrB,SAAS;gCAoDC,SAAS,aACT,WAAW,KACrB,MAAM,GAAG,MAAM;oCAOL,SAAS,YACV,WAAW,KACpB,OAAO;CAKX,CAAC;AAMF,KAAK,SAAS,GAAG,MAAM,GAAG;IAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AA4CxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWtD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAc1D;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAoDpE"}
|
|
@@ -57,6 +57,7 @@ const COMMON_ERROR_CODE_MAP = {
|
|
|
57
57
|
[ErrorCode.BillingUnavailable]: ErrorCode.BillingUnavailable,
|
|
58
58
|
[ErrorCode.FeatureNotSupported]: ErrorCode.FeatureNotSupported,
|
|
59
59
|
[ErrorCode.DuplicatePurchase]: ErrorCode.DuplicatePurchase,
|
|
60
|
+
[ErrorCode.ServiceTimeout]: ErrorCode.ServiceTimeout,
|
|
60
61
|
[ErrorCode.EmptySkuList]: ErrorCode.EmptySkuList,
|
|
61
62
|
[ErrorCode.PurchaseVerificationFailed]: ErrorCode.PurchaseVerificationFailed,
|
|
62
63
|
[ErrorCode.PurchaseVerificationFinishFailed]: ErrorCode.PurchaseVerificationFinishFailed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorMapping.js","sourceRoot":"","sources":["../../src/utils/errorMapping.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Error mapping utilities for expo-iap.\n * Provides helpers for working with platform-specific error codes\n * and constructing structured purchase errors.\n */\n\nimport {NATIVE_ERROR_CODES} from '../ExpoIapModule';\nimport {ErrorCode, IapPlatform} from '../types';\n\nconst toKebabCase = (str: string): string => {\n if (str.includes('_')) {\n return str\n .split('_')\n .map((word) => word.toLowerCase())\n .join('-');\n } else {\n return str\n .replace(/([A-Z])/g, '-$1')\n .toLowerCase()\n .replace(/^-/, '');\n }\n};\n\nexport interface PurchaseErrorProps {\n message?: string;\n responseCode?: number;\n debugMessage?: string;\n code?: ErrorCode | string | number;\n productId?: string;\n platform?: IapPlatform;\n}\n\nexport interface PurchaseError extends Error {\n responseCode?: number;\n debugMessage?: string;\n code?: ErrorCode;\n productId?: string;\n platform?: IapPlatform;\n}\n\nconst normalizePlatform = (platform: IapPlatform): 'ios' | 'android' =>\n typeof platform === 'string' && platform.toLowerCase() === 'ios'\n ? 'ios'\n : 'android';\n\nconst COMMON_ERROR_CODE_MAP: Record<ErrorCode, string> = {\n [ErrorCode.Unknown]: ErrorCode.Unknown,\n [ErrorCode.UserCancelled]: ErrorCode.UserCancelled,\n [ErrorCode.UserError]: ErrorCode.UserError,\n [ErrorCode.ItemUnavailable]: ErrorCode.ItemUnavailable,\n [ErrorCode.RemoteError]: ErrorCode.RemoteError,\n [ErrorCode.NetworkError]: ErrorCode.NetworkError,\n [ErrorCode.ServiceError]: ErrorCode.ServiceError,\n [ErrorCode.ReceiptFailed]: ErrorCode.ReceiptFailed,\n [ErrorCode.ReceiptFinished]: ErrorCode.ReceiptFinished,\n [ErrorCode.ReceiptFinishedFailed]: ErrorCode.ReceiptFinishedFailed,\n [ErrorCode.NotPrepared]: ErrorCode.NotPrepared,\n [ErrorCode.NotEnded]: ErrorCode.NotEnded,\n [ErrorCode.AlreadyOwned]: ErrorCode.AlreadyOwned,\n [ErrorCode.DeveloperError]: ErrorCode.DeveloperError,\n [ErrorCode.BillingResponseJsonParseError]:\n ErrorCode.BillingResponseJsonParseError,\n [ErrorCode.DeferredPayment]: ErrorCode.DeferredPayment,\n [ErrorCode.Interrupted]: ErrorCode.Interrupted,\n [ErrorCode.IapNotAvailable]: ErrorCode.IapNotAvailable,\n [ErrorCode.PurchaseError]: ErrorCode.PurchaseError,\n [ErrorCode.SyncError]: ErrorCode.SyncError,\n [ErrorCode.TransactionValidationFailed]:\n ErrorCode.TransactionValidationFailed,\n [ErrorCode.ActivityUnavailable]: ErrorCode.ActivityUnavailable,\n [ErrorCode.AlreadyPrepared]: ErrorCode.AlreadyPrepared,\n [ErrorCode.Pending]: ErrorCode.Pending,\n [ErrorCode.ConnectionClosed]: ErrorCode.ConnectionClosed,\n [ErrorCode.InitConnection]: ErrorCode.InitConnection,\n [ErrorCode.ServiceDisconnected]: ErrorCode.ServiceDisconnected,\n [ErrorCode.QueryProduct]: ErrorCode.QueryProduct,\n [ErrorCode.SkuNotFound]: ErrorCode.SkuNotFound,\n [ErrorCode.SkuOfferMismatch]: ErrorCode.SkuOfferMismatch,\n [ErrorCode.ItemNotOwned]: ErrorCode.ItemNotOwned,\n [ErrorCode.BillingUnavailable]: ErrorCode.BillingUnavailable,\n [ErrorCode.FeatureNotSupported]: ErrorCode.FeatureNotSupported,\n [ErrorCode.DuplicatePurchase]: ErrorCode.DuplicatePurchase,\n [ErrorCode.EmptySkuList]: ErrorCode.EmptySkuList,\n [ErrorCode.PurchaseVerificationFailed]: ErrorCode.PurchaseVerificationFailed,\n [ErrorCode.PurchaseVerificationFinishFailed]:\n ErrorCode.PurchaseVerificationFinishFailed,\n [ErrorCode.PurchaseVerificationFinished]:\n ErrorCode.PurchaseVerificationFinished,\n};\n\nexport const ErrorCodeMapping = {\n ios: COMMON_ERROR_CODE_MAP,\n android: COMMON_ERROR_CODE_MAP,\n} as const;\n\nconst OPENIAP_ERROR_CODE_SET: Set<string> = new Set(Object.values(ErrorCode));\n\nexport const createPurchaseError = (\n props: PurchaseErrorProps,\n): PurchaseError => {\n const errorCode = props.code\n ? typeof props.code === 'string' || typeof props.code === 'number'\n ? ErrorCodeUtils.fromPlatformCode(props.code, props.platform || 'ios')\n : props.code\n : undefined;\n\n const error = new Error(\n props.message ?? 'Unknown error occurred',\n ) as PurchaseError;\n error.name = '[expo-iap]: PurchaseError';\n error.responseCode = props.responseCode;\n error.debugMessage = props.debugMessage;\n error.code = errorCode;\n error.productId = props.productId;\n error.platform = props.platform;\n return error;\n};\n\nexport const createPurchaseErrorFromPlatform = (\n errorData: PurchaseErrorProps,\n platform: IapPlatform,\n): PurchaseError => {\n const normalizedPlatform = normalizePlatform(platform);\n const errorCode = errorData.code\n ? typeof errorData.code === 'string' || typeof errorData.code === 'number'\n ? ErrorCodeUtils.fromPlatformCode(errorData.code, normalizedPlatform)\n : errorData.code\n : ErrorCode.Unknown;\n\n return createPurchaseError({\n message: errorData.message ?? 'Unknown error occurred',\n responseCode: errorData.responseCode,\n debugMessage: errorData.debugMessage,\n code: errorCode,\n productId: errorData.productId,\n platform,\n });\n};\n\nexport const ErrorCodeUtils = {\n getNativeErrorCode: (errorCode: ErrorCode): string => {\n return (\n (NATIVE_ERROR_CODES as Record<string, string | undefined>)[errorCode] ??\n errorCode\n );\n },\n fromPlatformCode: (\n platformCode: string | number,\n _platform: IapPlatform,\n ): ErrorCode => {\n if (typeof platformCode === 'string' && platformCode.startsWith('E_')) {\n const withoutE = platformCode.substring(2);\n const camelCased = toKebabCase(withoutE);\n const withE = `E_${camelCased}`;\n if (OPENIAP_ERROR_CODE_SET.has(withE)) {\n const match = Object.entries(COMMON_ERROR_CODE_MAP).find(\n ([, value]) => value === withE,\n );\n if (match) {\n return match[0] as ErrorCode;\n }\n }\n }\n\n const normalizedCode =\n typeof platformCode === 'string'\n ? toKebabCase(platformCode)\n : platformCode;\n\n for (const [standardized, nativeCode] of Object.entries(\n (NATIVE_ERROR_CODES || {}) as Record<string, string | number>,\n )) {\n const normalizedNative =\n typeof nativeCode === 'string' ? toKebabCase(nativeCode) : nativeCode;\n if (\n normalizedNative === normalizedCode &&\n OPENIAP_ERROR_CODE_SET.has(standardized)\n ) {\n const match = Object.entries(COMMON_ERROR_CODE_MAP).find(\n ([, mappedCode]) => mappedCode === standardized,\n );\n if (match) {\n return match[0] as ErrorCode;\n }\n }\n }\n\n for (const [errorCode, mappedCode] of Object.entries(\n COMMON_ERROR_CODE_MAP,\n )) {\n if (\n mappedCode === normalizedCode ||\n mappedCode === `E_${normalizedCode}`\n ) {\n return errorCode as ErrorCode;\n }\n }\n\n return ErrorCode.Unknown;\n },\n toPlatformCode: (\n errorCode: ErrorCode,\n _platform: IapPlatform,\n ): string | number => {\n const native = (NATIVE_ERROR_CODES as Record<string, string | number>)[\n errorCode\n ];\n return native ?? COMMON_ERROR_CODE_MAP[errorCode] ?? 'E_UNKNOWN';\n },\n isValidForPlatform: (\n errorCode: ErrorCode,\n platform: IapPlatform,\n ): boolean => {\n return (\n (NATIVE_ERROR_CODES as Record<string, unknown>)[errorCode] !== undefined\n );\n },\n};\n\n// ---------------------------------------------------------------------------\n// Convenience helpers for interpreting error objects\n// ---------------------------------------------------------------------------\n\ntype ErrorLike = string | {code?: ErrorCode | string; message?: string};\n\nconst ERROR_CODES = new Set<string>(Object.values(ErrorCode));\n\nconst normalizeErrorCode = (code?: string | null): string | undefined => {\n if (!code) {\n return undefined;\n }\n\n if (ERROR_CODES.has(code)) {\n return code;\n }\n\n const camelCased = toKebabCase(code);\n if (ERROR_CODES.has(camelCased)) {\n return camelCased;\n }\n\n if (code.startsWith('E_')) {\n const trimmed = code.substring(2);\n if (ERROR_CODES.has(trimmed)) {\n return trimmed;\n }\n const camelTrimmed = toKebabCase(trimmed);\n if (ERROR_CODES.has(camelTrimmed)) {\n return camelTrimmed;\n }\n }\n\n return code;\n};\n\nfunction extractCode(error: unknown): string | undefined {\n if (typeof error === 'string') {\n return normalizeErrorCode(error);\n }\n\n if (error && typeof error === 'object' && 'code' in error) {\n return normalizeErrorCode((error as {code?: string}).code);\n }\n\n return undefined;\n}\n\nexport function isUserCancelledError(error: unknown): boolean {\n return extractCode(error) === ErrorCode.UserCancelled;\n}\n\nexport function isNetworkError(error: unknown): boolean {\n const networkErrors: ErrorCode[] = [\n ErrorCode.NetworkError,\n ErrorCode.RemoteError,\n ErrorCode.ServiceError,\n ErrorCode.ServiceDisconnected,\n ErrorCode.BillingUnavailable,\n ];\n\n const code = extractCode(error);\n return !!code && (networkErrors as string[]).includes(code);\n}\n\nexport function isRecoverableError(error: unknown): boolean {\n const recoverableErrors: ErrorCode[] = [\n ErrorCode.NetworkError,\n ErrorCode.RemoteError,\n ErrorCode.ServiceError,\n ErrorCode.Interrupted,\n ErrorCode.ServiceDisconnected,\n ErrorCode.BillingUnavailable,\n ErrorCode.QueryProduct,\n ErrorCode.InitConnection,\n ];\n\n const code = extractCode(error);\n return !!code && (recoverableErrors as string[]).includes(code);\n}\n\nexport function getUserFriendlyErrorMessage(error: ErrorLike): string {\n const errorCode = extractCode(error);\n\n switch (errorCode) {\n case ErrorCode.UserCancelled:\n return 'Purchase was cancelled by user';\n case ErrorCode.NetworkError:\n return 'Network connection error. Please check your internet connection and try again.';\n case ErrorCode.ReceiptFinished:\n return 'Receipt already finished';\n case ErrorCode.ServiceDisconnected:\n return 'Billing service disconnected. Please try again.';\n case ErrorCode.BillingUnavailable:\n return 'Billing is unavailable on this device or account.';\n case ErrorCode.ItemUnavailable:\n return 'This item is not available for purchase';\n case ErrorCode.ItemNotOwned:\n return \"You don't own this item\";\n case ErrorCode.AlreadyOwned:\n return 'You already own this item';\n case ErrorCode.SkuNotFound:\n return 'Requested product could not be found';\n case ErrorCode.SkuOfferMismatch:\n return 'Selected offer does not match the SKU';\n case ErrorCode.DeferredPayment:\n return 'Payment is pending approval';\n case ErrorCode.NotPrepared:\n return 'In-app purchase is not ready. Please try again later.';\n case ErrorCode.ServiceError:\n return 'Store service error. Please try again later.';\n case ErrorCode.FeatureNotSupported:\n return 'This feature is not supported on this device.';\n case ErrorCode.TransactionValidationFailed:\n return 'Transaction could not be verified';\n case ErrorCode.ReceiptFailed:\n return 'Receipt processing failed';\n case ErrorCode.EmptySkuList:\n return 'No product IDs provided';\n case ErrorCode.InitConnection:\n return 'Failed to initialize billing connection';\n case ErrorCode.QueryProduct:\n return 'Failed to query products. Please try again later.';\n default: {\n if (error && typeof error === 'object' && 'message' in error) {\n return (\n (error as {message?: string}).message ??\n 'An unexpected error occurred'\n );\n }\n return 'An unexpected error occurred';\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"errorMapping.js","sourceRoot":"","sources":["../../src/utils/errorMapping.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Error mapping utilities for expo-iap.\n * Provides helpers for working with platform-specific error codes\n * and constructing structured purchase errors.\n */\n\nimport {NATIVE_ERROR_CODES} from '../ExpoIapModule';\nimport {ErrorCode, IapPlatform} from '../types';\n\nconst toKebabCase = (str: string): string => {\n if (str.includes('_')) {\n return str\n .split('_')\n .map((word) => word.toLowerCase())\n .join('-');\n } else {\n return str\n .replace(/([A-Z])/g, '-$1')\n .toLowerCase()\n .replace(/^-/, '');\n }\n};\n\nexport interface PurchaseErrorProps {\n message?: string;\n responseCode?: number;\n debugMessage?: string;\n code?: ErrorCode | string | number;\n productId?: string;\n platform?: IapPlatform;\n}\n\nexport interface PurchaseError extends Error {\n responseCode?: number;\n debugMessage?: string;\n code?: ErrorCode;\n productId?: string;\n platform?: IapPlatform;\n}\n\nconst normalizePlatform = (platform: IapPlatform): 'ios' | 'android' =>\n typeof platform === 'string' && platform.toLowerCase() === 'ios'\n ? 'ios'\n : 'android';\n\nconst COMMON_ERROR_CODE_MAP: Record<ErrorCode, string> = {\n [ErrorCode.Unknown]: ErrorCode.Unknown,\n [ErrorCode.UserCancelled]: ErrorCode.UserCancelled,\n [ErrorCode.UserError]: ErrorCode.UserError,\n [ErrorCode.ItemUnavailable]: ErrorCode.ItemUnavailable,\n [ErrorCode.RemoteError]: ErrorCode.RemoteError,\n [ErrorCode.NetworkError]: ErrorCode.NetworkError,\n [ErrorCode.ServiceError]: ErrorCode.ServiceError,\n [ErrorCode.ReceiptFailed]: ErrorCode.ReceiptFailed,\n [ErrorCode.ReceiptFinished]: ErrorCode.ReceiptFinished,\n [ErrorCode.ReceiptFinishedFailed]: ErrorCode.ReceiptFinishedFailed,\n [ErrorCode.NotPrepared]: ErrorCode.NotPrepared,\n [ErrorCode.NotEnded]: ErrorCode.NotEnded,\n [ErrorCode.AlreadyOwned]: ErrorCode.AlreadyOwned,\n [ErrorCode.DeveloperError]: ErrorCode.DeveloperError,\n [ErrorCode.BillingResponseJsonParseError]:\n ErrorCode.BillingResponseJsonParseError,\n [ErrorCode.DeferredPayment]: ErrorCode.DeferredPayment,\n [ErrorCode.Interrupted]: ErrorCode.Interrupted,\n [ErrorCode.IapNotAvailable]: ErrorCode.IapNotAvailable,\n [ErrorCode.PurchaseError]: ErrorCode.PurchaseError,\n [ErrorCode.SyncError]: ErrorCode.SyncError,\n [ErrorCode.TransactionValidationFailed]:\n ErrorCode.TransactionValidationFailed,\n [ErrorCode.ActivityUnavailable]: ErrorCode.ActivityUnavailable,\n [ErrorCode.AlreadyPrepared]: ErrorCode.AlreadyPrepared,\n [ErrorCode.Pending]: ErrorCode.Pending,\n [ErrorCode.ConnectionClosed]: ErrorCode.ConnectionClosed,\n [ErrorCode.InitConnection]: ErrorCode.InitConnection,\n [ErrorCode.ServiceDisconnected]: ErrorCode.ServiceDisconnected,\n [ErrorCode.QueryProduct]: ErrorCode.QueryProduct,\n [ErrorCode.SkuNotFound]: ErrorCode.SkuNotFound,\n [ErrorCode.SkuOfferMismatch]: ErrorCode.SkuOfferMismatch,\n [ErrorCode.ItemNotOwned]: ErrorCode.ItemNotOwned,\n [ErrorCode.BillingUnavailable]: ErrorCode.BillingUnavailable,\n [ErrorCode.FeatureNotSupported]: ErrorCode.FeatureNotSupported,\n [ErrorCode.DuplicatePurchase]: ErrorCode.DuplicatePurchase,\n [ErrorCode.ServiceTimeout]: ErrorCode.ServiceTimeout,\n [ErrorCode.EmptySkuList]: ErrorCode.EmptySkuList,\n [ErrorCode.PurchaseVerificationFailed]: ErrorCode.PurchaseVerificationFailed,\n [ErrorCode.PurchaseVerificationFinishFailed]:\n ErrorCode.PurchaseVerificationFinishFailed,\n [ErrorCode.PurchaseVerificationFinished]:\n ErrorCode.PurchaseVerificationFinished,\n};\n\nexport const ErrorCodeMapping = {\n ios: COMMON_ERROR_CODE_MAP,\n android: COMMON_ERROR_CODE_MAP,\n} as const;\n\nconst OPENIAP_ERROR_CODE_SET: Set<string> = new Set(Object.values(ErrorCode));\n\nexport const createPurchaseError = (\n props: PurchaseErrorProps,\n): PurchaseError => {\n const errorCode = props.code\n ? typeof props.code === 'string' || typeof props.code === 'number'\n ? ErrorCodeUtils.fromPlatformCode(props.code, props.platform || 'ios')\n : props.code\n : undefined;\n\n const error = new Error(\n props.message ?? 'Unknown error occurred',\n ) as PurchaseError;\n error.name = '[expo-iap]: PurchaseError';\n error.responseCode = props.responseCode;\n error.debugMessage = props.debugMessage;\n error.code = errorCode;\n error.productId = props.productId;\n error.platform = props.platform;\n return error;\n};\n\nexport const createPurchaseErrorFromPlatform = (\n errorData: PurchaseErrorProps,\n platform: IapPlatform,\n): PurchaseError => {\n const normalizedPlatform = normalizePlatform(platform);\n const errorCode = errorData.code\n ? typeof errorData.code === 'string' || typeof errorData.code === 'number'\n ? ErrorCodeUtils.fromPlatformCode(errorData.code, normalizedPlatform)\n : errorData.code\n : ErrorCode.Unknown;\n\n return createPurchaseError({\n message: errorData.message ?? 'Unknown error occurred',\n responseCode: errorData.responseCode,\n debugMessage: errorData.debugMessage,\n code: errorCode,\n productId: errorData.productId,\n platform,\n });\n};\n\nexport const ErrorCodeUtils = {\n getNativeErrorCode: (errorCode: ErrorCode): string => {\n return (\n (NATIVE_ERROR_CODES as Record<string, string | undefined>)[errorCode] ??\n errorCode\n );\n },\n fromPlatformCode: (\n platformCode: string | number,\n _platform: IapPlatform,\n ): ErrorCode => {\n if (typeof platformCode === 'string' && platformCode.startsWith('E_')) {\n const withoutE = platformCode.substring(2);\n const camelCased = toKebabCase(withoutE);\n const withE = `E_${camelCased}`;\n if (OPENIAP_ERROR_CODE_SET.has(withE)) {\n const match = Object.entries(COMMON_ERROR_CODE_MAP).find(\n ([, value]) => value === withE,\n );\n if (match) {\n return match[0] as ErrorCode;\n }\n }\n }\n\n const normalizedCode =\n typeof platformCode === 'string'\n ? toKebabCase(platformCode)\n : platformCode;\n\n for (const [standardized, nativeCode] of Object.entries(\n (NATIVE_ERROR_CODES || {}) as Record<string, string | number>,\n )) {\n const normalizedNative =\n typeof nativeCode === 'string' ? toKebabCase(nativeCode) : nativeCode;\n if (\n normalizedNative === normalizedCode &&\n OPENIAP_ERROR_CODE_SET.has(standardized)\n ) {\n const match = Object.entries(COMMON_ERROR_CODE_MAP).find(\n ([, mappedCode]) => mappedCode === standardized,\n );\n if (match) {\n return match[0] as ErrorCode;\n }\n }\n }\n\n for (const [errorCode, mappedCode] of Object.entries(\n COMMON_ERROR_CODE_MAP,\n )) {\n if (\n mappedCode === normalizedCode ||\n mappedCode === `E_${normalizedCode}`\n ) {\n return errorCode as ErrorCode;\n }\n }\n\n return ErrorCode.Unknown;\n },\n toPlatformCode: (\n errorCode: ErrorCode,\n _platform: IapPlatform,\n ): string | number => {\n const native = (NATIVE_ERROR_CODES as Record<string, string | number>)[\n errorCode\n ];\n return native ?? COMMON_ERROR_CODE_MAP[errorCode] ?? 'E_UNKNOWN';\n },\n isValidForPlatform: (\n errorCode: ErrorCode,\n platform: IapPlatform,\n ): boolean => {\n return (\n (NATIVE_ERROR_CODES as Record<string, unknown>)[errorCode] !== undefined\n );\n },\n};\n\n// ---------------------------------------------------------------------------\n// Convenience helpers for interpreting error objects\n// ---------------------------------------------------------------------------\n\ntype ErrorLike = string | {code?: ErrorCode | string; message?: string};\n\nconst ERROR_CODES = new Set<string>(Object.values(ErrorCode));\n\nconst normalizeErrorCode = (code?: string | null): string | undefined => {\n if (!code) {\n return undefined;\n }\n\n if (ERROR_CODES.has(code)) {\n return code;\n }\n\n const camelCased = toKebabCase(code);\n if (ERROR_CODES.has(camelCased)) {\n return camelCased;\n }\n\n if (code.startsWith('E_')) {\n const trimmed = code.substring(2);\n if (ERROR_CODES.has(trimmed)) {\n return trimmed;\n }\n const camelTrimmed = toKebabCase(trimmed);\n if (ERROR_CODES.has(camelTrimmed)) {\n return camelTrimmed;\n }\n }\n\n return code;\n};\n\nfunction extractCode(error: unknown): string | undefined {\n if (typeof error === 'string') {\n return normalizeErrorCode(error);\n }\n\n if (error && typeof error === 'object' && 'code' in error) {\n return normalizeErrorCode((error as {code?: string}).code);\n }\n\n return undefined;\n}\n\nexport function isUserCancelledError(error: unknown): boolean {\n return extractCode(error) === ErrorCode.UserCancelled;\n}\n\nexport function isNetworkError(error: unknown): boolean {\n const networkErrors: ErrorCode[] = [\n ErrorCode.NetworkError,\n ErrorCode.RemoteError,\n ErrorCode.ServiceError,\n ErrorCode.ServiceDisconnected,\n ErrorCode.BillingUnavailable,\n ];\n\n const code = extractCode(error);\n return !!code && (networkErrors as string[]).includes(code);\n}\n\nexport function isRecoverableError(error: unknown): boolean {\n const recoverableErrors: ErrorCode[] = [\n ErrorCode.NetworkError,\n ErrorCode.RemoteError,\n ErrorCode.ServiceError,\n ErrorCode.Interrupted,\n ErrorCode.ServiceDisconnected,\n ErrorCode.BillingUnavailable,\n ErrorCode.QueryProduct,\n ErrorCode.InitConnection,\n ];\n\n const code = extractCode(error);\n return !!code && (recoverableErrors as string[]).includes(code);\n}\n\nexport function getUserFriendlyErrorMessage(error: ErrorLike): string {\n const errorCode = extractCode(error);\n\n switch (errorCode) {\n case ErrorCode.UserCancelled:\n return 'Purchase was cancelled by user';\n case ErrorCode.NetworkError:\n return 'Network connection error. Please check your internet connection and try again.';\n case ErrorCode.ReceiptFinished:\n return 'Receipt already finished';\n case ErrorCode.ServiceDisconnected:\n return 'Billing service disconnected. Please try again.';\n case ErrorCode.BillingUnavailable:\n return 'Billing is unavailable on this device or account.';\n case ErrorCode.ItemUnavailable:\n return 'This item is not available for purchase';\n case ErrorCode.ItemNotOwned:\n return \"You don't own this item\";\n case ErrorCode.AlreadyOwned:\n return 'You already own this item';\n case ErrorCode.SkuNotFound:\n return 'Requested product could not be found';\n case ErrorCode.SkuOfferMismatch:\n return 'Selected offer does not match the SKU';\n case ErrorCode.DeferredPayment:\n return 'Payment is pending approval';\n case ErrorCode.NotPrepared:\n return 'In-app purchase is not ready. Please try again later.';\n case ErrorCode.ServiceError:\n return 'Store service error. Please try again later.';\n case ErrorCode.FeatureNotSupported:\n return 'This feature is not supported on this device.';\n case ErrorCode.TransactionValidationFailed:\n return 'Transaction could not be verified';\n case ErrorCode.ReceiptFailed:\n return 'Receipt processing failed';\n case ErrorCode.EmptySkuList:\n return 'No product IDs provided';\n case ErrorCode.InitConnection:\n return 'Failed to initialize billing connection';\n case ErrorCode.QueryProduct:\n return 'Failed to query products. Please try again later.';\n default: {\n if (error && typeof error === 'object' && 'message' in error) {\n return (\n (error as {message?: string}).message ??\n 'An unexpected error occurred'\n );\n }\n return 'An unexpected error occurred';\n }\n }\n}\n"]}
|
package/openiap-versions.json
CHANGED
package/package.json
CHANGED
package/src/types.ts
CHANGED
|
@@ -350,6 +350,7 @@ export enum ErrorCode {
|
|
|
350
350
|
RemoteError = 'remote-error',
|
|
351
351
|
ServiceDisconnected = 'service-disconnected',
|
|
352
352
|
ServiceError = 'service-error',
|
|
353
|
+
ServiceTimeout = 'service-timeout',
|
|
353
354
|
SkuNotFound = 'sku-not-found',
|
|
354
355
|
SkuOfferMismatch = 'sku-offer-mismatch',
|
|
355
356
|
SyncError = 'sync-error',
|
|
@@ -1105,6 +1106,7 @@ export interface PurchaseCommon {
|
|
|
1105
1106
|
|
|
1106
1107
|
export interface PurchaseError {
|
|
1107
1108
|
code: ErrorCode;
|
|
1109
|
+
debugMessage?: (string | null);
|
|
1108
1110
|
message: string;
|
|
1109
1111
|
productId?: (string | null);
|
|
1110
1112
|
}
|
|
@@ -80,6 +80,7 @@ const COMMON_ERROR_CODE_MAP: Record<ErrorCode, string> = {
|
|
|
80
80
|
[ErrorCode.BillingUnavailable]: ErrorCode.BillingUnavailable,
|
|
81
81
|
[ErrorCode.FeatureNotSupported]: ErrorCode.FeatureNotSupported,
|
|
82
82
|
[ErrorCode.DuplicatePurchase]: ErrorCode.DuplicatePurchase,
|
|
83
|
+
[ErrorCode.ServiceTimeout]: ErrorCode.ServiceTimeout,
|
|
83
84
|
[ErrorCode.EmptySkuList]: ErrorCode.EmptySkuList,
|
|
84
85
|
[ErrorCode.PurchaseVerificationFailed]: ErrorCode.PurchaseVerificationFailed,
|
|
85
86
|
[ErrorCode.PurchaseVerificationFinishFailed]:
|