From fd6d496e87f6dd79ea8b538e63bbcac58340469d Mon Sep 17 00:00:00 2001 From: Stanislav Mayorov Date: Fri, 27 Feb 2026 05:33:50 -0800 Subject: [PATCH 1/2] fix: make onboardingBuilder required in AdaptyOnboarding Align decoder and public type with api.d.ts schema where onboarding_builder is a required field. --- src/coders/adapty-onboarding.ts | 2 +- src/types/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coders/adapty-onboarding.ts b/src/coders/adapty-onboarding.ts index 3adff23..6bace95 100644 --- a/src/coders/adapty-onboarding.ts +++ b/src/coders/adapty-onboarding.ts @@ -34,7 +34,7 @@ export class AdaptyOnboardingCoder extends Coder< version: { key: 'response_created_at', required: false, type: 'number' }, onboardingBuilder: { key: 'onboarding_builder', - required: false, + required: true, type: 'object', converter: new AdaptyOnboardingBuilderCoder(), }, diff --git a/src/types/index.ts b/src/types/index.ts index 21be3a4..5bf785a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -158,7 +158,7 @@ export interface AdaptyOnboarding { version?: number; payloadData?: string; requestLocale: string; - onboardingBuilder?: AdaptyOnboardingBuilder; + onboardingBuilder: AdaptyOnboardingBuilder; } export interface AdaptyPlacement { From 71c168600a81b70fbd4cb9b77d51d83e9a8e8118 Mon Sep 17 00:00:00 2001 From: Stanislav Mayorov Date: Fri, 27 Feb 2026 06:02:35 -0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20add=20ErrorCodeName=20=E2=80=94=20i?= =?UTF-8?q?nverse=20mapping=20of=20ErrorCode=20(string=20name=20=E2=86=92?= =?UTF-8?q?=20numeric=20code)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/error.ts | 59 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/src/types/error.ts b/src/types/error.ts index 559bb9c..bb0513d 100644 --- a/src/types/error.ts +++ b/src/types/error.ts @@ -1,7 +1,7 @@ // import SDK type to link to methods in docs. // import { AdaptyError } from '../sdk2/error'; -export const ErrorCode = Object.freeze({ +const ErrorCodeMapping = Object.freeze({ /** * System StoreKit codes */ @@ -124,7 +124,62 @@ export const ErrorCode = Object.freeze({ 3101: 'fetchTimeoutError', 9000: 'operationInterrupted', }); -export type ErrorCode = keyof typeof ErrorCode; + +export const ErrorCode = ErrorCodeMapping; +export type ErrorCode = keyof typeof ErrorCodeMapping; + +export const ErrorCodeName = Object.freeze({ + unknown: 0, + clientInvalid: 1, + paymentInvalid: 3, + paymentNotAllowed: 4, + storeProductNotAvailable: 5, + cloudServicePermissionDenied: 6, + cloudServiceNetworkConnectionFailed: 7, + cloudServiceRevoked: 8, + privacyAcknowledgementRequired: 9, + unauthorizedRequestData: 10, + invalidOfferIdentifier: 11, + invalidSignature: 12, + missingOfferParams: 13, + invalidOfferPrice: 14, + adaptyNotInitialized: 20, + productNotFound: 22, + currentSubscriptionToUpdateNotFoundInHistory: 24, + billingServiceTimeout: 97, + featureNotSupported: 98, + billingServiceDisconnected: 99, + billingServiceUnavailable: 102, + billingUnavailable: 103, + developerError: 105, + billingError: 106, + itemAlreadyOwned: 107, + itemNotOwned: 108, + billingNetworkError: 112, + noProductIDsFound: 1000, + productRequestFailed: 1002, + cantMakePayments: 1003, + noPurchasesToRestore: 1004, + cantReadReceipt: 1005, + productPurchaseFailed: 1006, + refreshReceiptFailed: 1010, + receiveRestoredTransactionsFailed: 1011, + notActivated: 2002, + badRequest: 2003, + serverError: 2004, + networkFailed: 2005, + decodingFailed: 2006, + encodingFailed: 2009, + analyticsDisabled: 3000, + wrongParam: 3001, + activateOnceError: 3005, + profileWasChanged: 3006, + unsupportedData: 3007, + persistingDataError: 3100, + fetchTimeoutError: 3101, + operationInterrupted: 9000, +} as const); +export type ErrorCodeName = keyof typeof ErrorCodeName; export function getErrorCode( error: (typeof ErrorCode)[ErrorCode],