Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: automatically generate declaration files #310

Merged
merged 2 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 8 additions & 113 deletions src/Nami.d.ts
Original file line number Diff line number Diff line change
@@ -1,113 +1,8 @@
export const Nami: {
configure: (
config: NamiConfiguration,
resultCallback?: (resultObject: { success: boolean }) => void,
) => void;
};

export type NamiConfiguration = {
'appPlatformID-apple': string;
'appPlatformID-android': string;
logLevel: string;
namiCommands?: string[];
namiLanguageCode?: NamiLanguageCodes;
initialConfig?: string;
};

export type NamiLanguageCodes =
| 'af'
| 'ar'
| 'ar-dz'
| 'ast'
| 'az'
| 'bg'
| 'be'
| 'bn'
| 'br'
| 'bs'
| 'ca'
| 'cs'
| 'cy'
| 'da'
| 'de'
| 'dsb'
| 'el'
| 'en'
| 'en-au'
| 'en-gb'
| 'eo'
| 'es'
| 'es-ar'
| 'es-co'
| 'es-mx'
| 'es-ni'
| 'es-ve'
| 'et'
| 'eu'
| 'fa'
| 'fi'
| 'fr'
| 'fy'
| 'ga'
| 'gd'
| 'gl'
| 'he'
| 'hi'
| 'hr'
| 'hsb'
| 'hu'
| 'hy'
| 'ia'
| 'id'
| 'ig'
| 'io'
| 'is'
| 'it'
| 'ja'
| 'ka'
| 'kab'
| 'kk'
| 'km'
| 'kn'
| 'ko'
| 'ky'
| 'lb'
| 'lt'
| 'lv'
| 'mk'
| 'ml'
| 'mn'
| 'mr'
| 'my'
| 'nb'
| 'ne'
| 'nl'
| 'nn'
| 'os'
| 'pa'
| 'pl'
| 'pt'
| 'pt-br'
| 'ro'
| 'ru'
| 'sk'
| 'sl'
| 'sq'
| 'sr'
| 'sr-latn'
| 'sv'
| 'sw'
| 'ta'
| 'te'
| 'tg'
| 'th'
| 'tk'
| 'tr'
| 'tt'
| 'udm'
| 'uk'
| 'ur'
| 'uz'
| 'vi'
| 'zh-hans'
| 'zh-hant';
import { NamiConfiguration } from './types';
export declare const NamiBridge: any, NamiManager: any;
export interface INami {
configure: (config: NamiConfiguration, resultCallback?: (resultObject: {
success: boolean;
}) => void) => void;
}
export declare const Nami: INami;
112 changes: 16 additions & 96 deletions src/NamiCampaignManager.d.ts
Original file line number Diff line number Diff line change
@@ -1,98 +1,18 @@
import { EmitterSubscription } from 'react-native';
import { NamiPaywallAction, NamiPurchase, NamiSKU } from './types';

export const NamiCampaignManager: {
allCampaigns: () => Promise<Array<NamiCampaign>>;
isCampaignAvailable(campaignSource: string | null): Promise<boolean>;
launch: (
label?: string,
withUrl?: string,
context?: PaywallLaunchContext,
resultCallback?: (success: boolean, error?: LaunchCampaignError) => void,
actionCallback?: (
action: NamiPaywallAction,
campaignId: string,
paywallId: string,
campaignName?: string,
campaignType?: string,
campaignLabel?: string,
campaignUrl?: string,
paywallName?: string,
segmentId?: string,
externalSegmentId?: string,
deeplinkUrl?: string,
skuId?: string,
componentChangeId?: string,
componentChangeName?: string,
purchaseError?: string,
purchases?: NamiPurchase[],
) => void,
) => void;
refresh: () => void;
registerAvailableCampaignsHandler: (
callback: (availableCampaigns: NamiCampaign[]) => void,
) => EmitterSubscription['remove'];
};

export type NamiCampaign = {
id: string;
rule: string;
segment: string;
paywall: string;
type: NamiCampaignRule;
value?: string | null;
};

export enum NamiCampaignRule {
DEFAULT = 'default',
LABEL = 'label',
UNKNOWN = 'unknown',
URL = 'url',
import { NativeEventEmitter, EmitterSubscription } from 'react-native';
import { LaunchCampaignError, NamiCampaign, NamiPaywallAction, NamiPurchase, PaywallLaunchContext } from './types';
export declare const RNNamiCampaignManager: any;
export declare enum NamiCampaignManagerEvents {
ResultCampaign = "ResultCampaign",
AvailableCampaignsChanged = "AvailableCampaignsChanged"
}

export enum LaunchCampaignError {
DEFAULT_CAMPAIGN_NOT_FOUND = 0,
LABELED_CAMPAIGN_NOT_FOUND = 1,
CAMPAIGN_DATA_NOT_FOUND = 2,
PAYWALL_ALREADY_DISPLAYED = 3,
SDK_NOT_INITIALIZED = 4,
interface ICampaignManager {
launchSubscription: EmitterSubscription | undefined;
emitter: NativeEventEmitter;
allCampaigns: () => Promise<Array<NamiCampaign>>;
isCampaignAvailable(campaignSource: string | null): Promise<boolean>;
launch: (label?: string, withUrl?: string, context?: PaywallLaunchContext, resultCallback?: (success: boolean, error?: LaunchCampaignError) => void, actionCallback?: (action: NamiPaywallAction, campaignId: string, paywallId: string, campaignName?: string, campaignType?: string, campaignLabel?: string, campaignUrl?: string, paywallName?: string, segmentId?: string, externalSegmentId?: string, deeplinkUrl?: string, skuId?: string, componentChangeId?: string, componentChangeName?: string, purchaseError?: string, purchases?: NamiPurchase[]) => void) => void;
refresh: () => void;
registerAvailableCampaignsHandler: (callback: (availableCampaigns: NamiCampaign[]) => void) => EmitterSubscription['remove'];
}

export enum LaunchCampaignResultAction {
FAILURE = 'FAILURE',
SUCCESS = 'SUCCESS',
}

export type FailureResultObject = {
error: string;
};

export type PaywallLaunchContext = {
productGroups?: string[];
customAttributes?: {
[key: string]: string;
};
};

export type NamiPaywallEvent = {
action: NamiPaywallAction;
campaignId?: string;
campaignName?: string;
campaignType?: string;
campaignLabel?: string;
campaignUrl?: string;
paywallId?: string;
paywallName?: string;
componentChange?: NamiPaywallComponentChange;
segmentId?: string;
externalSegmentId?: string;
deeplinkUrl?: string;
sku?: NamiSKU;
purchaseError?: string;
purchases?: NamiPurchase[];
};

export type NamiPaywallComponentChange = {
id?: string;
name?: string;
};
export declare const NamiCampaignManager: ICampaignManager;
export {};
66 changes: 27 additions & 39 deletions src/NamiCustomerManager.d.ts
Original file line number Diff line number Diff line change
@@ -1,39 +1,27 @@
import { EmitterSubscription } from 'react-native';
import { AccountStateAction } from './types';

export const NamiCustomerManager: {
setCustomerAttribute: (key: string, value: string) => void;
getCustomerAttribute: (key: string) => Promise<string | undefined>;
clearCustomerAttribute: (key: string) => void;
clearAllCustomerAttributes: () => void;
journeyState: () => Promise<CustomerJourneyState | undefined>;
isLoggedIn: () => Promise<boolean>;
loggedInId: () => Promise<string | undefined>;
deviceId: () => Promise<string>;
login: (customerId: string) => void;
logout: () => void;
registerJourneyStateHandler: (
callback: (journeyState: CustomerJourneyState) => void,
) => EmitterSubscription['remove'];
registerAccountStateHandler: (
callback: (
action: AccountStateAction,
success: boolean,
error?: number,
) => void,
) => EmitterSubscription['remove'];
clearCustomerDataPlatformId: () => void;
setCustomerDataPlatformId: (platformId: string) => void;
setAnonymousMode: (anonymousMode: boolean) => void;
inAnonymousMode: () => Promise<boolean>;
};

export type CustomerJourneyState = {
formerSubscriber: boolean;
inGracePeriod: boolean;
inTrialPeriod: boolean;
inIntroOfferPeriod: boolean;
isCancelled: boolean;
inPause: boolean;
inAccountHold: boolean;
};
import { NativeEventEmitter, EmitterSubscription } from 'react-native';
import { AccountStateAction, CustomerJourneyState } from './types';
export declare const RNNamiCustomerManager: any;
export declare enum NamiCustomerManagerEvents {
JourneyStateChanged = "JourneyStateChanged",
AccountStateChanged = "AccountStateChanged"
}
export interface INamiCustomerManager {
emitter: NativeEventEmitter;
setCustomerAttribute: (key: string, value: string) => void;
getCustomerAttribute: (key: string) => Promise<string | undefined>;
clearCustomerAttribute: (key: string) => void;
clearAllCustomerAttributes: () => void;
journeyState: () => Promise<CustomerJourneyState | undefined>;
isLoggedIn: () => Promise<boolean>;
loggedInId: () => Promise<string | undefined>;
deviceId: () => Promise<string>;
login: (customerId: string) => void;
logout: () => void;
registerJourneyStateHandler: (callback: (journeyState: CustomerJourneyState) => void) => EmitterSubscription['remove'];
registerAccountStateHandler: (callback: (action: AccountStateAction, success: boolean, error?: number) => void) => EmitterSubscription['remove'];
clearCustomerDataPlatformId: () => void;
setCustomerDataPlatformId: (platformId: string) => void;
setAnonymousMode: (anonymousMode: boolean) => void;
inAnonymousMode: () => Promise<boolean>;
}
export declare const NamiCustomerManager: INamiCustomerManager;
38 changes: 15 additions & 23 deletions src/NamiEntitlementManager.d.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
import { EmitterSubscription } from 'react-native';
import { NamiPurchase, NamiSKU } from './types';

export const NamiEntitlementManager: {
active: () => Promise<Array<NamiEntitlement>>;
isEntitlementActive: (label?: string) => boolean;
refresh: (
resultCallback?: (entitlements?: NamiEntitlement[]) => void,
) => void;
registerActiveEntitlementsHandler: (
callback: (activeEntitlements: NamiEntitlement[]) => void,
) => EmitterSubscription['remove'];
clearProvisionalEntitlementGrants: () => void;
};

export type NamiEntitlement = {
activePurchases: NamiPurchase[];
desc: string;
name: string;
purchasedSkus: NamiSKU[];
referenceId: string;
relatedSkus: NamiSKU[];
};
import { NativeEventEmitter, EmitterSubscription } from 'react-native';
import { NamiEntitlement } from './types';
export declare const RNNamiEntitlementManager: any;
export declare enum NamiEntitlementManagerEvents {
EntitlementsChanged = "EntitlementsChanged"
}
export interface INamiEntitlementManager {
emitter: NativeEventEmitter;
active: () => Promise<Array<NamiEntitlement>>;
isEntitlementActive: (label?: string) => boolean;
refresh: (resultCallback?: (entitlements?: NamiEntitlement[]) => void) => void;
registerActiveEntitlementsHandler: (callback: (activeEntitlements: NamiEntitlement[]) => void) => EmitterSubscription['remove'];
clearProvisionalEntitlementGrants: () => void;
}
export declare const NamiEntitlementManager: INamiEntitlementManager;
12 changes: 7 additions & 5 deletions src/NamiMLManager.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
export const NamiMLManager: {
coreAction: (label: string) => void;
enterCoreContent: (label: string | string[]) => void;
exitCoreContent: (label: string | string[]) => void;
};
export declare const NamiMLManagerBridge: any;
export interface INamiMLManager {
coreAction: (label: string) => void;
enterCoreContent: (label: string | string[]) => void;
exitCoreContent: (label: string | string[]) => void;
}
export declare const NamiMLManager: INamiMLManager;
8 changes: 5 additions & 3 deletions src/NamiManager.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export const NamiManager: {
sdkConfigured: () => Promise<boolean>;
};
export declare const RNNamiManager: any;
export interface INamiManager {
sdkConfigured: () => Promise<boolean>;
}
export declare const NamiManager: INamiManager;
Loading
Loading