glassfy / capacitor-plugin-glassfy

Open source SDK to quickly integrate subscriptions, stop worring about code maintenance, and getting advanced real-time data. Support CapacitorJS
MIT License
26 stars 9 forks source link
capacitor ionic typescript

Important: Glassfy SDKs are deprecated. Glassfy will be ceasing operations by the end of 2024. Read the blog post here


npm

Warning
These plugin is for Capacitor 6. For Capacitor 5, use the 3.x version.

CapacitorJS Glassfy Plugin

Glassfy is a subscription revenue optimisation infrastructure for mobile applications.

Getting Started

Check the documentation at docs.glassfy.io to learn details on implementing and using Glassfy SDK.


Plugin Install

npm install capacitor-plugin-glassfy
npx cap sync

Build plugin and example

be sure to have ionic cli installed following instructions here


npm install
npm run build
cd example
npm install
ionic capacitor sync ios
ionic capacitor open ios

API

* [`sdkVersion()`](#sdkversion) * [`initialize(...)`](#initialize) * [`setLogLevel(...)`](#setloglevel) * [`offerings()`](#offerings) * [`purchaseHistory()`](#purchasehistory) * [`permissions()`](#permissions) * [`skuWithId(...)`](#skuwithid) * [`skuWithIdAndStore(...)`](#skuwithidandstore) * [`connectCustomSubscriber(...)`](#connectcustomsubscriber) * [`connectPaddleLicenseKey(...)`](#connectpaddlelicensekey) * [`connectGlassfyUniversalCode(...)`](#connectglassfyuniversalcode) * [`setEmailUserProperty(...)`](#setemailuserproperty) * [`setDeviceToken(...)`](#setdevicetoken) * [`setExtraUserProperty(...)`](#setextrauserproperty) * [`getUserProperty()`](#getuserproperty) * [`purchaseSku(...)`](#purchasesku) * [`restorePurchases()`](#restorepurchases) * [`storeInfo()`](#storeinfo) * [`setAttribution(...)`](#setattribution) * [`setAttributions(...)`](#setattributions) * [`_paywall(...)`](#_paywall) * [`_closePaywall()`](#_closepaywall) * [`_openUrl(...)`](#_openurl) * [Interfaces](#interfaces) * [Type Aliases](#type-aliases) * [Enums](#enums) ### sdkVersion() ```typescript sdkVersion() => Promise ``` **Returns:** Promise<GlassfyVersion> -------------------- ### initialize(...) ```typescript initialize(options: { apiKey: string; watcherMode: boolean; }) => Promise ``` For more details, follow instruction at https://docs.glassfy.io/get-started/configuration | Param | Type | | ------------- | ------------------------------------------------------ | | **`options`** | { apiKey: string; watcherMode: boolean; } | -------------------- ### setLogLevel(...) ```typescript setLogLevel(options: { logLevel: GLASSFY_LOGLEVEL; }) => Promise ``` | Param | Type | | ------------- | ---------------------------------------------------------------------------- | | **`options`** | { logLevel: GLASSFY_LOGLEVEL; } | -------------------- ### offerings() ```typescript offerings() => Promise ``` For more details, check the documentation https://docs.glassfy.io/dashboard/configure-offerings **Returns:** Promise<GlassfyOfferings> -------------------- ### purchaseHistory() ```typescript purchaseHistory() => Promise ``` For more details, check the documentation https://docs.glassfy.io/dashboard/configure-offerings **Returns:** Promise<GlassfyPurchasesHistory> -------------------- ### permissions() ```typescript permissions() => Promise ``` For more details, check the documentation https://docs.glassfy.io/dashboard/configure-permissions.html **Returns:** Promise<GlassfyPermissions> -------------------- ### skuWithId(...) ```typescript skuWithId(options: { identifier: string; }) => Promise ``` For more details, check the documentation https://docs.glassfy.io/dashboard/configure-products | Param | Type | | ------------- | ------------------------------------ | | **`options`** | { identifier: string; } | **Returns:** Promise<GlassfySku> -------------------- ### skuWithIdAndStore(...) ```typescript skuWithIdAndStore(options: { identifier: string; store: GLASSFY_STORE; }) => Promise ``` | Param | Type | | ------------- | --------------------------------------------------------------------------------------- | | **`options`** | { identifier: string; store: GLASSFY_STORE; } | **Returns:** Promise<GlassfySkuBase> -------------------- ### connectCustomSubscriber(...) ```typescript connectCustomSubscriber(options: { subscriberId: string; }) => Promise ``` | Param | Type | | ------------- | -------------------------------------- | | **`options`** | { subscriberId: string; } | -------------------- ### connectPaddleLicenseKey(...) ```typescript connectPaddleLicenseKey(options: { licenseKey: string; force: boolean; }) => Promise ``` | Param | Type | | ------------- | ---------------------------------------------------- | | **`options`** | { licenseKey: string; force: boolean; } | -------------------- ### connectGlassfyUniversalCode(...) ```typescript connectGlassfyUniversalCode(options: { universalCode: string; force: boolean; }) => Promise ``` | Param | Type | | ------------- | ------------------------------------------------------- | | **`options`** | { universalCode: string; force: boolean; } | -------------------- ### setEmailUserProperty(...) ```typescript setEmailUserProperty(options: { email: string; }) => Promise ``` | Param | Type | | ------------- | ------------------------------- | | **`options`** | { email: string; } | -------------------- ### setDeviceToken(...) ```typescript setDeviceToken(options: { token: string; }) => Promise ``` | Param | Type | | ------------- | ------------------------------- | | **`options`** | { token: string; } | -------------------- ### setExtraUserProperty(...) ```typescript setExtraUserProperty(options: { extra: GlassfyExtraProperty; }) => Promise ``` | Param | Type | | ------------- | --------------------------------------------------------------------------------- | | **`options`** | { extra: GlassfyExtraProperty; } | -------------------- ### getUserProperty() ```typescript getUserProperty() => Promise ``` **Returns:** Promise<GlassfyUserProperties> -------------------- ### purchaseSku(...) ```typescript purchaseSku(options: { sku: GlassfySku; skuToUpgrade?: GlassfySku; replacementMode?: GLASSFY_REPLACEMENT_MODE; }) => Promise ``` | Param | Type | | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **`options`** | { sku: GlassfySku; skuToUpgrade?: GlassfySku; replacementMode?: GLASSFY_REPLACEMENT_MODE; } | **Returns:** Promise<GlassfyTransaction> -------------------- ### restorePurchases() ```typescript restorePurchases() => Promise ``` **Returns:** Promise<GlassfyPermissions> -------------------- ### storeInfo() ```typescript storeInfo() => Promise ``` **Returns:** Promise<GlassfyStoresInfo> -------------------- ### setAttribution(...) ```typescript setAttribution(options: { type: GLASSFY_ATTRIBUTION; value: string; }) => Promise ``` | Param | Type | | ------------- | --------------------------------------------------------------------------------------------- | | **`options`** | { type: GLASSFY_ATTRIBUTION; value: string; } | -------------------- ### setAttributions(...) ```typescript setAttributions(options: { items: GlassfyAttributionItem[]; }) => Promise ``` | Param | Type | | ------------- | ------------------------------------------------- | | **`options`** | { items: GlassfyAttributionItem[]; } | -------------------- ### _paywall(...) ```typescript _paywall(options: { remoteConfig: string; awaitLoading: boolean; }) => Promise ``` | Param | Type | | ------------- | ------------------------------------------------------------- | | **`options`** | { remoteConfig: string; awaitLoading: boolean; } | -------------------- ### _closePaywall() ```typescript _closePaywall() => Promise ``` -------------------- ### _openUrl(...) ```typescript _openUrl(options: { url: string; }) => Promise ``` | Param | Type | | ------------- | ----------------------------- | | **`options`** | { url: string; } | -------------------- ### Interfaces #### GlassfyVersion | Prop | Type | | ------------- | ------------------- | | **`version`** | string | #### GlassfyOfferings | Prop | Type | | --------- | ------------------------------ | | **`all`** | GlassfyOffering[] | #### GlassfyOffering | Prop | Type | | ---------------- | ------------------------- | | **`offeringId`** | string | | **`skus`** | GlassfySku[] | #### GlassfySku | Prop | Type | | ----------------------------- | ------------------------------------------------------------------------- | | **`introductoryEligibility`** | GLASSFY_ELEGIBILITY | | **`promotionalEligibility`** | GLASSFY_ELEGIBILITY | | **`extravars`** | { [key: string]: string; } | | **`product`** | GlassfyProduct | | **`basePlanId`** | string | | **`offerId`** | string | | **`discount`** | GlassfyProductDiscount | #### GlassfyProduct | Prop | Type | | ----------------------- | ------------------------------------------------------------------------- | | **`title`** | string | | **`identifier`** | string | | **`description`** | string | | **`price`** | number | | **`currencyCode`** | string | | **`period`** | string | | **`introductoryPrice`** | GlassfyProductDiscount | | **`discounts`** | GlassfyProductDiscount[] | | **`basePlanId`** | string | #### GlassfyProductDiscount | Prop | Type | | --------------------- | ------------------- | | **`identifier`** | string | | **`price`** | number | | **`currencyCode`** | string | | **`period`** | string | | **`numberOfPeriods`** | number | | **`type`** | string | #### GlassfyPurchasesHistory | Prop | Type | | --------- | ------------------------------------- | | **`all`** | GlassfyPurchaseHistory[] | #### GlassfyPurchaseHistory | Prop | Type | | -------------------------- | ----------------------------------------------------------------- | | **`productId`** | string | | **`skuId`** | string | | **`type`** | GLASSFY_EVENT_TYPE | | **`store`** | GLASSFY_STORE | | **`purchaseDate`** | string | | **`expireDate`** | string | | **`transactionId`** | string | | **`subscriberId`** | string | | **`currencyCode`** | string | | **`countryCode`** | string | | **`isInIntroOfferPeriod`** | boolean | | **`promotionalOfferId`** | string | | **`offerCodeRefName`** | string | | **`licenseCode`** | string | | **`webOrderLineItemId`** | string | #### GlassfyPermissions | Prop | Type | | -------------------------------- | -------------------------------- | | **`installationId`** | string | | **`subscriberId`** | string | | **`originalApplicationVersion`** | string | | **`originalApplicationDate`** | string | | **`all`** | GlassfyPermission[] | #### GlassfyPermission | Prop | Type | | --------------------- | ------------------------------------------------------------------- | | **`permissionId`** | string | | **`entitlement`** | GLASSFY_ENTITLEMENT | | **`isValid`** | boolean | | **`expireDate`** | string | | **`accountableSkus`** | GlassfyAccountableSku[] | #### GlassfyAccountableSku | Prop | Type | | -------------------------- | -------------------- | | **`isInIntroOfferPeriod`** | boolean | | **`isInTrialPeriod`** | boolean | | **`basePlanId`** | string | | **`offerId`** | string | #### GlassfySkuBase | Prop | Type | | --------------- | ------------------------------------------------------- | | **`skuId`** | string | | **`productId`** | string | | **`store`** | GLASSFY_STORE | #### GlassfyUserProperties | Prop | Type | | ----------- | --------------------------------------------------------------------- | | **`email`** | string | | **`token`** | boolean | | **`extra`** | GlassfyExtraProperty | #### GlassfyTransaction | Prop | Type | | ---------------------- | ----------------------------------------------------------------- | | **`productId`** | string | | **`receiptValidated`** | boolean | | **`permissions`** | GlassfyPermissions | #### GlassfyStoresInfo | Prop | Type | | --------- | --------------------------------------------------------------------------------------------------------------------------------- | | **`all`** | (GlassfyStoreInfo \| GlassfyPaddleStoreInfo)[] | #### GlassfyStoreInfo | Prop | Type | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | **`store`** | Exclude<GLASSFY_STORE, GLASSFY_STORE.Paddle> | | **`extravars`** | { [key: string]: string; } | #### GlassfyPaddleStoreInfo | Prop | Type | | -------------------- | -------------------------------------------------------------- | | **`store`** | GLASSFY_STORE.Paddle | | **`extravars`** | { [key: string]: string; } | | **`userid`** | string | | **`planId`** | string | | **`subscriptionId`** | string | | **`updateURL`** | string | | **`cancelURL`** | string | #### GlassfyAttributionItem | Prop | Type | | ----------- | ------------------------------------------------------------------- | | **`type`** | GLASSFY_ATTRIBUTION | | **`value`** | string | ### Type Aliases #### GlassfyExtraProperty { [key: string]: string } #### Exclude Exclude from T those types that are assignable to U T extends U ? never : T ### Enums #### GLASSFY_LOGLEVEL | Members | Value | | ----------- | -------------- | | **`OFF`** | 0 | | **`ERROR`** | 1 | | **`DEBUG`** | 2 | | **`INFO`** | 3 | | **`ALL`** | 3 | #### GLASSFY_ELEGIBILITY | Members | Value | | ------------------ | --------------- | | **`ELEGIBLE`** | 1 | | **`NON_ELEGIBLE`** | -1 | | **`UNKNOWN`** | 0 | #### GLASSFY_EVENT_TYPE | Members | Value | | ---------------------------- | ----------------- | | **`InitialBuy`** | 5001 | | **`Restarted`** | 5002 | | **`Renewed`** | 5003 | | **`Expired`** | 5004 | | **`DidChangeRenewalStatus`** | 5005 | | **`IsInBillingRetryPeriod`** | 5006 | | **`ProductChange`** | 5007 | | **`InAppPurchase`** | 5008 | | **`Refund`** | 5009 | | **`Paused`** | 5010 | | **`Resumed`** | 5011 | | **`ConnectLicense`** | 5012 | | **`DisconnectLicense`** | 5013 | #### GLASSFY_STORE | Members | Value | | --------------- | -------------- | | **`AppStore`** | 1 | | **`PlayStore`** | 2 | | **`Paddle`** | 3 | | **`Stripe`** | 4 | | **`Glassfy`** | 5 | #### GLASSFY_ENTITLEMENT | Members | Value | | -------------------------- | --------------- | | **`NEVERBUY`** | -9 | | **`OTHERREFUND`** | -8 | | **`ISSUEREFUND`** | -7 | | **`UPGRADED`** | -6 | | **`EXPIREDVOLUNTARY`** | -5 | | **`PRODUCTNOTAVAILABLE`** | -4 | | **`FAILTOACCEPTINCREASE`** | -3 | | **`EXPIREDFROMBILLING`** | -2 | | **`INRETRY`** | -1 | | **`MISSINGINFO`** | 0 | | **`EXPIREDINGRACE`** | 1 | | **`OFFPLATFORM`** | 2 | | **`NONRENEWING`** | 3 | | **`AUTORENEWOFF`** | 4 | | **`AUTORENEWON`** | 5 | #### GLASSFY_REPLACEMENT_MODE | Members | Value | | ------------------------------ | -------------- | | **`UNKNOWN_REPLACEMENT_MODE`** | 0 | | **`WITH_TIME_PRORATION`** | 1 | | **`CHARGE_PRORATED_PRICE`** | 2 | | **`WITHOUT_PRORATION`** | 3 | | **`CHARGE_FULL_PRICE`** | 5 | | **`DEFERRED`** | 6 | #### GLASSFY_ATTRIBUTION | Members | Value | | ----------------- | -------------- | | **`AdjustID`** | 1 | | **`AppsFlyerID`** | 2 | | **`IP`** | 3 | | **`IDFA`** | 4 | | **`IDFV`** | 5 | | **`GAID`** | 6 | | **`ASID`** | 7 | | **`AID`** | 8 |