react-native-liftoffads 0.0.1
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/LICENSE +20 -0
- package/NitroLiftoffAds.podspec +26 -0
- package/README.md +61 -0
- package/android/CMakeLists.txt +20 -0
- package/android/build.gradle +132 -0
- package/android/consumer-rules.pro +2 -0
- package/android/fix-prefab.gradle +46 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/cpp/cpp-adapter.cpp +7 -0
- package/android/src/main/java/com/margelo/nitro/liftoffads/HybridLiftoffAds.kt +121 -0
- package/android/src/main/java/com/margelo/nitro/liftoffads/HybridLiftoffInterstitialAd.kt +96 -0
- package/android/src/main/java/com/margelo/nitro/liftoffads/HybridLiftoffRewardedAd.kt +104 -0
- package/android/src/main/java/com/margelo/nitro/liftoffads/LiftoffAdEventEmitter.kt +51 -0
- package/android/src/main/java/com/margelo/nitro/liftoffads/LiftoffAndroidUtils.kt +54 -0
- package/android/src/main/java/com/margelo/nitro/liftoffads/NitroLiftoffAdsPackage.java +27 -0
- package/ios/HybridLiftoffAds.swift +113 -0
- package/ios/HybridLiftoffInterstitialAd.swift +98 -0
- package/ios/HybridLiftoffRewardedAd.swift +100 -0
- package/ios/LiftoffSupport.swift +106 -0
- package/lib/module/index.js +169 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.test.js +205 -0
- package/lib/module/index.test.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/LiftoffAds.nitro.js +4 -0
- package/lib/module/specs/LiftoffAds.nitro.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/index.d.ts +72 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/index.test.d.ts +2 -0
- package/lib/typescript/src/index.test.d.ts.map +1 -0
- package/lib/typescript/src/specs/LiftoffAds.nitro.d.ts +46 -0
- package/lib/typescript/src/specs/LiftoffAds.nitro.d.ts.map +1 -0
- package/nitro.json +18 -0
- package/nitrogen/generated/android/NitroLiftoffAds+autolinking.cmake +85 -0
- package/nitrogen/generated/android/NitroLiftoffAds+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroLiftoffAdsOnLoad.cpp +50 -0
- package/nitrogen/generated/android/NitroLiftoffAdsOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_LiftoffAdEventPayload_.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridLiftoffAdsSpec.cpp +88 -0
- package/nitrogen/generated/android/c++/JHybridLiftoffAdsSpec.hpp +69 -0
- package/nitrogen/generated/android/c++/JHybridLiftoffInterstitialAdSpec.cpp +89 -0
- package/nitrogen/generated/android/c++/JHybridLiftoffInterstitialAdSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridLiftoffRewardedAdSpec.cpp +93 -0
- package/nitrogen/generated/android/c++/JHybridLiftoffRewardedAdSpec.hpp +69 -0
- package/nitrogen/generated/android/c++/JLiftoffAdEventPayload.hpp +58 -0
- package/nitrogen/generated/android/c++/JLiftoffAdEventType.hpp +77 -0
- package/nitrogen/generated/android/c++/JLiftoffAdShowOptions.hpp +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/Func_void_std__optional_LiftoffAdEventPayload_.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/HybridLiftoffAdsSpec.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/HybridLiftoffInterstitialAdSpec.kt +73 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/HybridLiftoffRewardedAdSpec.kt +77 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/LiftoffAdEventPayload.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/LiftoffAdEventType.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/LiftoffAdShowOptions.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/NitroLiftoffAdsOnLoad.kt +35 -0
- package/nitrogen/generated/ios/NitroLiftoffAds+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroLiftoffAds-Swift-Cxx-Bridge.cpp +90 -0
- package/nitrogen/generated/ios/NitroLiftoffAds-Swift-Cxx-Bridge.hpp +285 -0
- package/nitrogen/generated/ios/NitroLiftoffAds-Swift-Cxx-Umbrella.hpp +66 -0
- package/nitrogen/generated/ios/NitroLiftoffAdsAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroLiftoffAdsAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridLiftoffAdsSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridLiftoffAdsSpecSwift.hpp +114 -0
- package/nitrogen/generated/ios/c++/HybridLiftoffInterstitialAdSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridLiftoffInterstitialAdSpecSwift.hpp +110 -0
- package/nitrogen/generated/ios/c++/HybridLiftoffRewardedAdSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridLiftoffRewardedAdSpecSwift.hpp +116 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_LiftoffAdEventPayload_.swift +54 -0
- package/nitrogen/generated/ios/swift/HybridLiftoffAdsSpec.swift +54 -0
- package/nitrogen/generated/ios/swift/HybridLiftoffAdsSpec_cxx.swift +193 -0
- package/nitrogen/generated/ios/swift/HybridLiftoffInterstitialAdSpec.swift +53 -0
- package/nitrogen/generated/ios/swift/HybridLiftoffInterstitialAdSpec_cxx.swift +193 -0
- package/nitrogen/generated/ios/swift/HybridLiftoffRewardedAdSpec.swift +54 -0
- package/nitrogen/generated/ios/swift/HybridLiftoffRewardedAdSpec_cxx.swift +204 -0
- package/nitrogen/generated/ios/swift/LiftoffAdEventPayload.swift +77 -0
- package/nitrogen/generated/ios/swift/LiftoffAdEventType.swift +64 -0
- package/nitrogen/generated/ios/swift/LiftoffAdShowOptions.swift +47 -0
- package/nitrogen/generated/shared/c++/HybridLiftoffAdsSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridLiftoffAdsSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridLiftoffInterstitialAdSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridLiftoffInterstitialAdSpec.hpp +76 -0
- package/nitrogen/generated/shared/c++/HybridLiftoffRewardedAdSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridLiftoffRewardedAdSpec.hpp +78 -0
- package/nitrogen/generated/shared/c++/LiftoffAdEventPayload.hpp +72 -0
- package/nitrogen/generated/shared/c++/LiftoffAdEventType.hpp +100 -0
- package/nitrogen/generated/shared/c++/LiftoffAdShowOptions.hpp +67 -0
- package/package.json +173 -0
- package/react-native.config.js +8 -0
- package/src/index.test.ts +257 -0
- package/src/index.ts +307 -0
- package/src/specs/LiftoffAds.nitro.ts +67 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
export let AdEventType = /*#__PURE__*/function (AdEventType) {
|
|
5
|
+
AdEventType["LOADED"] = "loaded";
|
|
6
|
+
AdEventType["ERROR"] = "error";
|
|
7
|
+
AdEventType["OPENED"] = "opened";
|
|
8
|
+
AdEventType["PAID"] = "paid";
|
|
9
|
+
AdEventType["CLICKED"] = "clicked";
|
|
10
|
+
AdEventType["CLOSED"] = "closed";
|
|
11
|
+
return AdEventType;
|
|
12
|
+
}({});
|
|
13
|
+
export let RewardedAdEventType = /*#__PURE__*/function (RewardedAdEventType) {
|
|
14
|
+
RewardedAdEventType["LOADED"] = "rewarded_loaded";
|
|
15
|
+
RewardedAdEventType["EARNED_REWARD"] = "rewarded_earned_reward";
|
|
16
|
+
return RewardedAdEventType;
|
|
17
|
+
}({});
|
|
18
|
+
export let InitializationState = /*#__PURE__*/function (InitializationState) {
|
|
19
|
+
InitializationState[InitializationState["AdapterInitializationStateNotReady"] = 0] = "AdapterInitializationStateNotReady";
|
|
20
|
+
InitializationState[InitializationState["AdapterInitializationStateReady"] = 1] = "AdapterInitializationStateReady";
|
|
21
|
+
return InitializationState;
|
|
22
|
+
}({});
|
|
23
|
+
const nativeAds = NitroModules.createHybridObject('LiftoffAds');
|
|
24
|
+
function toPublicPayload(eventType, payload) {
|
|
25
|
+
if (eventType === AdEventType.ERROR) {
|
|
26
|
+
const error = new Error(payload?.errorMessage ?? 'Unknown Liftoff Ads error');
|
|
27
|
+
error.name = 'LiftoffAdsError';
|
|
28
|
+
Object.assign(error, {
|
|
29
|
+
code: String(payload?.errorCode ?? 'unknown')
|
|
30
|
+
});
|
|
31
|
+
return error;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
class MobileAd {
|
|
36
|
+
listeners = new Map();
|
|
37
|
+
nativeSubscriptions = new Set();
|
|
38
|
+
loadedValue = false;
|
|
39
|
+
loadCalled = false;
|
|
40
|
+
constructor(adUnitId, nativeAd, eventTypes) {
|
|
41
|
+
this.adUnitId = adUnitId;
|
|
42
|
+
this.nativeAd = nativeAd;
|
|
43
|
+
for (const eventType of eventTypes) {
|
|
44
|
+
this.listeners.set(eventType, new Set());
|
|
45
|
+
this.subscribeNative(eventType);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
subscribeNative(eventType) {
|
|
49
|
+
if (this.nativeSubscriptions.has(eventType)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.nativeAd.addAdEventListener(eventType, payload => {
|
|
53
|
+
if (eventType === AdEventType.LOADED || eventType === RewardedAdEventType.LOADED) {
|
|
54
|
+
this.loadedValue = true;
|
|
55
|
+
} else if (eventType === AdEventType.CLOSED || eventType === AdEventType.ERROR) {
|
|
56
|
+
this.loadedValue = false;
|
|
57
|
+
this.loadCalled = false;
|
|
58
|
+
}
|
|
59
|
+
const publicPayload = toPublicPayload(eventType, payload);
|
|
60
|
+
for (const listener of this.listeners.get(eventType) ?? []) {
|
|
61
|
+
listener(publicPayload);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.nativeSubscriptions.add(eventType);
|
|
65
|
+
}
|
|
66
|
+
get loaded() {
|
|
67
|
+
return this.loadedValue;
|
|
68
|
+
}
|
|
69
|
+
load() {
|
|
70
|
+
if (this.loadedValue || this.loadCalled) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
this.loadCalled = true;
|
|
74
|
+
this.nativeAd.load();
|
|
75
|
+
}
|
|
76
|
+
show(options) {
|
|
77
|
+
if (!this.loadedValue) {
|
|
78
|
+
throw new Error(`${this.constructor.name}.show() The requested ad has not loaded and could not be shown.`);
|
|
79
|
+
}
|
|
80
|
+
return this.nativeAd.show(options);
|
|
81
|
+
}
|
|
82
|
+
addListener(type, listener) {
|
|
83
|
+
if (typeof listener !== 'function') {
|
|
84
|
+
throw new Error(`${this.constructor.name}.addAdEventListener(_, *) 'listener' expected a function.`);
|
|
85
|
+
}
|
|
86
|
+
const listeners = this.listeners.get(type);
|
|
87
|
+
if (!listeners) {
|
|
88
|
+
throw new Error(`${this.constructor.name}.addAdEventListener(*) 'type' expected a valid event type value.`);
|
|
89
|
+
}
|
|
90
|
+
this.subscribeNative(type);
|
|
91
|
+
listeners.add(listener);
|
|
92
|
+
return () => listeners.delete(listener);
|
|
93
|
+
}
|
|
94
|
+
addEventsListener(listener) {
|
|
95
|
+
if (typeof listener !== 'function') {
|
|
96
|
+
throw new Error(`${this.constructor.name}.addAdEventsListener(*) 'listener' expected a function.`);
|
|
97
|
+
}
|
|
98
|
+
const unsubscribers = [...this.listeners.keys()].map(type => this.addListener(type, payload => listener({
|
|
99
|
+
type: type,
|
|
100
|
+
payload: payload
|
|
101
|
+
})));
|
|
102
|
+
return () => unsubscribers.forEach(unsubscribe => unsubscribe());
|
|
103
|
+
}
|
|
104
|
+
removeAllListeners() {
|
|
105
|
+
for (const listeners of this.listeners.values()) {
|
|
106
|
+
listeners.clear();
|
|
107
|
+
}
|
|
108
|
+
this.nativeAd.removeAllListeners();
|
|
109
|
+
this.nativeSubscriptions.clear();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const INTERSTITIAL_EVENTS = Object.values(AdEventType);
|
|
113
|
+
const REWARDED_EVENTS = [AdEventType.ERROR, AdEventType.OPENED, AdEventType.PAID, AdEventType.CLICKED, AdEventType.CLOSED, RewardedAdEventType.LOADED, RewardedAdEventType.EARNED_REWARD];
|
|
114
|
+
export class InterstitialAd extends MobileAd {
|
|
115
|
+
static createForAdRequest(adUnitId) {
|
|
116
|
+
if (typeof adUnitId !== 'string' || adUnitId.length === 0) {
|
|
117
|
+
throw new Error("InterstitialAd.createForAdRequest(*) 'adUnitId' expected a non-empty string value.");
|
|
118
|
+
}
|
|
119
|
+
return new InterstitialAd(adUnitId, nativeAds.createInterstitialAd(adUnitId));
|
|
120
|
+
}
|
|
121
|
+
constructor(adUnitId, nativeAd) {
|
|
122
|
+
super(adUnitId, nativeAd, INTERSTITIAL_EVENTS);
|
|
123
|
+
}
|
|
124
|
+
addAdEventsListener(listener) {
|
|
125
|
+
return this.addEventsListener(listener);
|
|
126
|
+
}
|
|
127
|
+
addAdEventListener(type, listener) {
|
|
128
|
+
return this.addListener(type, listener);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export class RewardedAd extends MobileAd {
|
|
132
|
+
static createForAdRequest(adUnitId) {
|
|
133
|
+
if (typeof adUnitId !== 'string' || adUnitId.length === 0) {
|
|
134
|
+
throw new Error("RewardedAd.createForAdRequest(*) 'adUnitId' expected a non-empty string value.");
|
|
135
|
+
}
|
|
136
|
+
return new RewardedAd(adUnitId, nativeAds.createRewardedAd(adUnitId));
|
|
137
|
+
}
|
|
138
|
+
constructor(adUnitId, nativeAd) {
|
|
139
|
+
super(adUnitId, nativeAd, REWARDED_EVENTS);
|
|
140
|
+
}
|
|
141
|
+
setUserId(userId) {
|
|
142
|
+
this.nativeAd.setUserId(userId);
|
|
143
|
+
}
|
|
144
|
+
addAdEventsListener(listener) {
|
|
145
|
+
return this.addEventsListener(listener);
|
|
146
|
+
}
|
|
147
|
+
addAdEventListener(type, listener) {
|
|
148
|
+
if (type === AdEventType.LOADED) {
|
|
149
|
+
throw new Error('RewardedAd.addAdEventListener(*) use RewardedAdEventType.LOADED instead of AdEventType.LOADED.');
|
|
150
|
+
}
|
|
151
|
+
return this.addListener(type, listener);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const mobileAdsInstance = {
|
|
155
|
+
async initialize(appId) {
|
|
156
|
+
await nativeAds.initialize(appId);
|
|
157
|
+
return [{
|
|
158
|
+
name: 'LiftoffMonetize',
|
|
159
|
+
description: 'Liftoff Monetize SDK is ready',
|
|
160
|
+
state: InitializationState.AdapterInitializationStateReady
|
|
161
|
+
}];
|
|
162
|
+
},
|
|
163
|
+
setGDPRConsent: (optIn, consentMessageVersion) => nativeAds.setGDPRConsent(optIn, consentMessageVersion),
|
|
164
|
+
setCCPAConsent: optIn => nativeAds.setCCPAConsent(optIn),
|
|
165
|
+
setCOPPA: isUserCoppa => nativeAds.setCOPPA(isUserCoppa)
|
|
166
|
+
};
|
|
167
|
+
export const MobileAds = () => mobileAdsInstance;
|
|
168
|
+
export default MobileAds;
|
|
169
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","AdEventType","RewardedAdEventType","InitializationState","nativeAds","createHybridObject","toPublicPayload","eventType","payload","ERROR","error","Error","errorMessage","name","Object","assign","code","String","errorCode","undefined","MobileAd","listeners","Map","nativeSubscriptions","Set","loadedValue","loadCalled","constructor","adUnitId","nativeAd","eventTypes","set","subscribeNative","has","addAdEventListener","LOADED","CLOSED","publicPayload","listener","get","add","loaded","load","show","options","addListener","type","delete","addEventsListener","unsubscribers","keys","map","forEach","unsubscribe","removeAllListeners","values","clear","INTERSTITIAL_EVENTS","REWARDED_EVENTS","OPENED","PAID","CLICKED","EARNED_REWARD","InterstitialAd","createForAdRequest","length","createInterstitialAd","addAdEventsListener","RewardedAd","createRewardedAd","setUserId","userId","mobileAdsInstance","initialize","appId","description","state","AdapterInitializationStateReady","setGDPRConsent","optIn","consentMessageVersion","setCCPAConsent","setCOPPA","isUserCoppa","MobileAds"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
class MockNativeAd {
|
|
4
|
+
load = jest.fn();
|
|
5
|
+
show = jest.fn(async () => undefined);
|
|
6
|
+
removeAllListeners = jest.fn(() => {
|
|
7
|
+
this.listeners.clear();
|
|
8
|
+
});
|
|
9
|
+
listeners = new Map();
|
|
10
|
+
nextId = 1;
|
|
11
|
+
idToEntry = new Map();
|
|
12
|
+
addAdEventListener = jest.fn((eventType, listener) => {
|
|
13
|
+
const set = this.listeners.get(eventType) ?? new Set();
|
|
14
|
+
set.add(listener);
|
|
15
|
+
this.listeners.set(eventType, set);
|
|
16
|
+
const id = this.nextId++;
|
|
17
|
+
this.idToEntry.set(id, {
|
|
18
|
+
type: eventType,
|
|
19
|
+
listener
|
|
20
|
+
});
|
|
21
|
+
return id;
|
|
22
|
+
});
|
|
23
|
+
removeAdEventListener = jest.fn(subscriptionId => {
|
|
24
|
+
const entry = this.idToEntry.get(subscriptionId);
|
|
25
|
+
if (!entry) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.listeners.get(entry.type)?.delete(entry.listener);
|
|
29
|
+
this.idToEntry.delete(subscriptionId);
|
|
30
|
+
});
|
|
31
|
+
emit(eventType, payload) {
|
|
32
|
+
for (const listener of this.listeners.get(eventType) ?? []) {
|
|
33
|
+
listener(payload);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const mockCreatedInterstitials = [];
|
|
38
|
+
const mockCreatedRewarded = [];
|
|
39
|
+
jest.mock('react-native-nitro-modules', () => ({
|
|
40
|
+
NitroModules: {
|
|
41
|
+
createHybridObject: () => ({
|
|
42
|
+
initialize: jest.fn(async () => undefined),
|
|
43
|
+
setGDPRConsent: jest.fn(),
|
|
44
|
+
setCCPAConsent: jest.fn(),
|
|
45
|
+
setCOPPA: jest.fn(),
|
|
46
|
+
createInterstitialAd: jest.fn(() => {
|
|
47
|
+
const ad = new MockNativeAd();
|
|
48
|
+
mockCreatedInterstitials.push(ad);
|
|
49
|
+
return ad;
|
|
50
|
+
}),
|
|
51
|
+
createRewardedAd: jest.fn(() => {
|
|
52
|
+
const ad = new MockNativeAd();
|
|
53
|
+
mockCreatedRewarded.push(ad);
|
|
54
|
+
return ad;
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
import { AdEventType, InterstitialAd, MobileAds, RewardedAd, RewardedAdEventType } from "./index.js";
|
|
60
|
+
beforeEach(() => {
|
|
61
|
+
mockCreatedInterstitials.length = 0;
|
|
62
|
+
mockCreatedRewarded.length = 0;
|
|
63
|
+
});
|
|
64
|
+
describe('InterstitialAd.createForAdRequest', () => {
|
|
65
|
+
it('throws for an empty ad unit id', () => {
|
|
66
|
+
expect(() => InterstitialAd.createForAdRequest('')).toThrow(/expected a non-empty string value/);
|
|
67
|
+
});
|
|
68
|
+
it('creates a native ad for a valid ad unit id', () => {
|
|
69
|
+
InterstitialAd.createForAdRequest('unit-1');
|
|
70
|
+
expect(mockCreatedInterstitials).toHaveLength(1);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe('InterstitialAd load/show lifecycle', () => {
|
|
74
|
+
it('is not loaded until the native LOADED event fires', () => {
|
|
75
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
76
|
+
expect(ad.loaded).toBe(false);
|
|
77
|
+
ad.load();
|
|
78
|
+
expect(mockCreatedInterstitials[0].load).toHaveBeenCalledTimes(1);
|
|
79
|
+
expect(ad.loaded).toBe(false);
|
|
80
|
+
mockCreatedInterstitials[0].emit('loaded');
|
|
81
|
+
expect(ad.loaded).toBe(true);
|
|
82
|
+
});
|
|
83
|
+
it('does not call native load twice while a load is pending', () => {
|
|
84
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
85
|
+
ad.load();
|
|
86
|
+
ad.load();
|
|
87
|
+
expect(mockCreatedInterstitials[0].load).toHaveBeenCalledTimes(1);
|
|
88
|
+
});
|
|
89
|
+
it('throws synchronously when show() is called before the ad has loaded', () => {
|
|
90
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
91
|
+
expect(() => ad.show()).toThrow(/has not loaded and could not be shown/);
|
|
92
|
+
});
|
|
93
|
+
it('delegates to the native ad once loaded', async () => {
|
|
94
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
95
|
+
mockCreatedInterstitials[0].emit('loaded');
|
|
96
|
+
await ad.show({
|
|
97
|
+
immersiveModeEnabled: true
|
|
98
|
+
});
|
|
99
|
+
expect(mockCreatedInterstitials[0].show).toHaveBeenCalledWith({
|
|
100
|
+
immersiveModeEnabled: true
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
it('resets loaded/load state on CLOSED so the ad can be reloaded', () => {
|
|
104
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
105
|
+
ad.load();
|
|
106
|
+
mockCreatedInterstitials[0].emit('loaded');
|
|
107
|
+
mockCreatedInterstitials[0].emit('closed');
|
|
108
|
+
expect(ad.loaded).toBe(false);
|
|
109
|
+
ad.load();
|
|
110
|
+
expect(mockCreatedInterstitials[0].load).toHaveBeenCalledTimes(2);
|
|
111
|
+
});
|
|
112
|
+
it('resets loaded/load state on ERROR so the ad can be retried', () => {
|
|
113
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
114
|
+
ad.load();
|
|
115
|
+
mockCreatedInterstitials[0].emit('error', {
|
|
116
|
+
errorMessage: 'boom'
|
|
117
|
+
});
|
|
118
|
+
expect(ad.loaded).toBe(false);
|
|
119
|
+
ad.load();
|
|
120
|
+
expect(mockCreatedInterstitials[0].load).toHaveBeenCalledTimes(2);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('InterstitialAd error payload', () => {
|
|
124
|
+
it('maps the native error payload to a JS Error', () => {
|
|
125
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
126
|
+
const handler = jest.fn();
|
|
127
|
+
ad.addAdEventListener(AdEventType.ERROR, handler);
|
|
128
|
+
mockCreatedInterstitials[0].emit('error', {
|
|
129
|
+
errorCode: 42,
|
|
130
|
+
errorMessage: 'no fill'
|
|
131
|
+
});
|
|
132
|
+
expect(handler).toHaveBeenCalledTimes(1);
|
|
133
|
+
const error = handler.mock.calls[0][0];
|
|
134
|
+
expect(error.message).toBe('no fill');
|
|
135
|
+
expect(error.code).toBe('42');
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('InterstitialAd listener subscriptions', () => {
|
|
139
|
+
it('stops notifying a listener after it unsubscribes', () => {
|
|
140
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
141
|
+
const handler = jest.fn();
|
|
142
|
+
const unsubscribe = ad.addAdEventListener(AdEventType.OPENED, handler);
|
|
143
|
+
mockCreatedInterstitials[0].emit('opened');
|
|
144
|
+
unsubscribe();
|
|
145
|
+
mockCreatedInterstitials[0].emit('opened');
|
|
146
|
+
expect(handler).toHaveBeenCalledTimes(1);
|
|
147
|
+
});
|
|
148
|
+
it('removeAllListeners clears listeners and forwards to the native ad', () => {
|
|
149
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
150
|
+
const handler = jest.fn();
|
|
151
|
+
ad.addAdEventListener(AdEventType.OPENED, handler);
|
|
152
|
+
ad.removeAllListeners();
|
|
153
|
+
expect(mockCreatedInterstitials[0].removeAllListeners).toHaveBeenCalledTimes(1);
|
|
154
|
+
mockCreatedInterstitials[0].emit('opened');
|
|
155
|
+
expect(handler).not.toHaveBeenCalled();
|
|
156
|
+
});
|
|
157
|
+
it('addAdEventsListener receives every event type for the ad', () => {
|
|
158
|
+
const ad = InterstitialAd.createForAdRequest('unit-1');
|
|
159
|
+
const handler = jest.fn();
|
|
160
|
+
ad.addAdEventsListener(handler);
|
|
161
|
+
mockCreatedInterstitials[0].emit('opened');
|
|
162
|
+
mockCreatedInterstitials[0].emit('clicked');
|
|
163
|
+
expect(handler).toHaveBeenCalledWith({
|
|
164
|
+
type: 'opened',
|
|
165
|
+
payload: undefined
|
|
166
|
+
});
|
|
167
|
+
expect(handler).toHaveBeenCalledWith({
|
|
168
|
+
type: 'clicked',
|
|
169
|
+
payload: undefined
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe('RewardedAd', () => {
|
|
174
|
+
it('rejects AdEventType.LOADED in favor of RewardedAdEventType.LOADED', () => {
|
|
175
|
+
const ad = RewardedAd.createForAdRequest('unit-1');
|
|
176
|
+
expect(() => ad.addAdEventListener(AdEventType.LOADED, jest.fn())).toThrow(/use RewardedAdEventType.LOADED/);
|
|
177
|
+
});
|
|
178
|
+
it('does not fabricate reward data for LOADED or EARNED_REWARD events', () => {
|
|
179
|
+
const ad = RewardedAd.createForAdRequest('unit-1');
|
|
180
|
+
const onLoaded = jest.fn();
|
|
181
|
+
const onEarned = jest.fn();
|
|
182
|
+
ad.addAdEventListener(RewardedAdEventType.LOADED, onLoaded);
|
|
183
|
+
ad.addAdEventListener(RewardedAdEventType.EARNED_REWARD, onEarned);
|
|
184
|
+
mockCreatedRewarded[0].emit('rewarded_loaded');
|
|
185
|
+
mockCreatedRewarded[0].emit('rewarded_earned_reward');
|
|
186
|
+
expect(onLoaded).toHaveBeenCalledWith(undefined);
|
|
187
|
+
expect(onEarned).toHaveBeenCalledWith(undefined);
|
|
188
|
+
});
|
|
189
|
+
it('marks the ad as loaded on RewardedAdEventType.LOADED', () => {
|
|
190
|
+
const ad = RewardedAd.createForAdRequest('unit-1');
|
|
191
|
+
expect(ad.loaded).toBe(false);
|
|
192
|
+
mockCreatedRewarded[0].emit('rewarded_loaded');
|
|
193
|
+
expect(ad.loaded).toBe(true);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
describe('MobileAds()', () => {
|
|
197
|
+
it('reports a ready adapter status after initialize resolves', async () => {
|
|
198
|
+
const statuses = await MobileAds().initialize('app-id');
|
|
199
|
+
expect(statuses).toEqual([expect.objectContaining({
|
|
200
|
+
name: 'LiftoffMonetize',
|
|
201
|
+
state: 1
|
|
202
|
+
})]);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MockNativeAd","load","jest","fn","show","undefined","removeAllListeners","listeners","clear","Map","nextId","idToEntry","addAdEventListener","eventType","listener","set","get","Set","add","id","type","removeAdEventListener","subscriptionId","entry","delete","emit","payload","mockCreatedInterstitials","mockCreatedRewarded","mock","NitroModules","createHybridObject","initialize","setGDPRConsent","setCCPAConsent","setCOPPA","createInterstitialAd","ad","push","createRewardedAd","AdEventType","InterstitialAd","MobileAds","RewardedAd","RewardedAdEventType","beforeEach","length","describe","it","expect","createForAdRequest","toThrow","toHaveLength","loaded","toBe","toHaveBeenCalledTimes","immersiveModeEnabled","toHaveBeenCalledWith","errorMessage","handler","ERROR","errorCode","error","calls","message","code","unsubscribe","OPENED","not","toHaveBeenCalled","addAdEventsListener","LOADED","onLoaded","onEarned","EARNED_REWARD","statuses","toEqual","objectContaining","name","state"],"sourceRoot":"../../src","sources":["index.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/LiftoffAds.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { LiftoffInterstitialAd, LiftoffRewardedAd } from './specs/LiftoffAds.nitro.js';
|
|
2
|
+
export declare enum AdEventType {
|
|
3
|
+
LOADED = "loaded",
|
|
4
|
+
ERROR = "error",
|
|
5
|
+
OPENED = "opened",
|
|
6
|
+
PAID = "paid",
|
|
7
|
+
CLICKED = "clicked",
|
|
8
|
+
CLOSED = "closed"
|
|
9
|
+
}
|
|
10
|
+
export declare enum RewardedAdEventType {
|
|
11
|
+
LOADED = "rewarded_loaded",
|
|
12
|
+
EARNED_REWARD = "rewarded_earned_reward"
|
|
13
|
+
}
|
|
14
|
+
export type AdShowOptions = {
|
|
15
|
+
immersiveModeEnabled?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type AdapterStatus = {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
state: InitializationState;
|
|
21
|
+
};
|
|
22
|
+
export declare enum InitializationState {
|
|
23
|
+
AdapterInitializationStateNotReady = 0,
|
|
24
|
+
AdapterInitializationStateReady = 1
|
|
25
|
+
}
|
|
26
|
+
type PublicAdEventType = AdEventType | RewardedAdEventType;
|
|
27
|
+
export type AdEventPayload<T extends PublicAdEventType> = T extends AdEventType.ERROR ? Error : undefined;
|
|
28
|
+
export type AdEventListener<T extends PublicAdEventType> = (payload: AdEventPayload<T>) => void;
|
|
29
|
+
export type AdEventsListener<T extends PublicAdEventType> = (event: {
|
|
30
|
+
type: T;
|
|
31
|
+
payload: AdEventPayload<T>;
|
|
32
|
+
}) => void;
|
|
33
|
+
declare abstract class MobileAd<TNative extends LiftoffInterstitialAd | LiftoffRewardedAd, TEvent extends PublicAdEventType> {
|
|
34
|
+
readonly adUnitId: string;
|
|
35
|
+
protected readonly nativeAd: TNative;
|
|
36
|
+
private readonly listeners;
|
|
37
|
+
private readonly nativeSubscriptions;
|
|
38
|
+
private loadedValue;
|
|
39
|
+
private loadCalled;
|
|
40
|
+
protected constructor(adUnitId: string, nativeAd: TNative, eventTypes: readonly TEvent[]);
|
|
41
|
+
private subscribeNative;
|
|
42
|
+
get loaded(): boolean;
|
|
43
|
+
load(): void;
|
|
44
|
+
show(options?: AdShowOptions): Promise<void>;
|
|
45
|
+
protected addListener<T extends TEvent>(type: T, listener: AdEventListener<T>): () => void;
|
|
46
|
+
protected addEventsListener<T extends TEvent>(listener: AdEventsListener<T>): () => void;
|
|
47
|
+
removeAllListeners(): void;
|
|
48
|
+
}
|
|
49
|
+
export declare class InterstitialAd extends MobileAd<LiftoffInterstitialAd, AdEventType> {
|
|
50
|
+
static createForAdRequest(adUnitId: string): InterstitialAd;
|
|
51
|
+
private constructor();
|
|
52
|
+
addAdEventsListener<T extends AdEventType>(listener: AdEventsListener<T>): () => void;
|
|
53
|
+
addAdEventListener<T extends AdEventType>(type: T, listener: AdEventListener<T>): () => void;
|
|
54
|
+
}
|
|
55
|
+
type RewardedEventType = AdEventType | RewardedAdEventType;
|
|
56
|
+
export declare class RewardedAd extends MobileAd<LiftoffRewardedAd, RewardedEventType> {
|
|
57
|
+
static createForAdRequest(adUnitId: string): RewardedAd;
|
|
58
|
+
private constructor();
|
|
59
|
+
setUserId(userId: string): void;
|
|
60
|
+
addAdEventsListener<T extends RewardedEventType>(listener: AdEventsListener<T>): () => void;
|
|
61
|
+
addAdEventListener<T extends RewardedEventType>(type: T, listener: AdEventListener<T>): () => void;
|
|
62
|
+
}
|
|
63
|
+
export type MobileAdsModuleInterface = {
|
|
64
|
+
initialize(appId: string): Promise<AdapterStatus[]>;
|
|
65
|
+
setGDPRConsent(optIn: boolean, consentMessageVersion: string): void;
|
|
66
|
+
setCCPAConsent(optIn: boolean): void;
|
|
67
|
+
setCOPPA(isUserCoppa: boolean): void;
|
|
68
|
+
};
|
|
69
|
+
export declare const MobileAds: () => MobileAdsModuleInterface;
|
|
70
|
+
export default MobileAds;
|
|
71
|
+
export type { LiftoffAdEventPayload, LiftoffAdEventType, LiftoffAdShowOptions, LiftoffAds, LiftoffInterstitialAd, LiftoffRewardedAd, } from './specs/LiftoffAds.nitro.js';
|
|
72
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
export type LiftoffAdEventType = 'loaded' | 'error' | 'opened' | 'paid' | 'clicked' | 'closed' | 'rewarded_loaded' | 'rewarded_earned_reward';
|
|
3
|
+
export interface LiftoffAdShowOptions {
|
|
4
|
+
immersiveModeEnabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface LiftoffAdEventPayload {
|
|
7
|
+
errorCode?: number;
|
|
8
|
+
errorMessage?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface LiftoffInterstitialAd extends HybridObject<{
|
|
11
|
+
ios: 'swift';
|
|
12
|
+
android: 'kotlin';
|
|
13
|
+
}> {
|
|
14
|
+
load(): void;
|
|
15
|
+
show(options?: LiftoffAdShowOptions): Promise<void>;
|
|
16
|
+
addAdEventListener(eventType: LiftoffAdEventType, listener: (payload?: LiftoffAdEventPayload) => void): number;
|
|
17
|
+
removeAdEventListener(subscriptionId: number): void;
|
|
18
|
+
removeAllListeners(): void;
|
|
19
|
+
}
|
|
20
|
+
export interface LiftoffRewardedAd extends HybridObject<{
|
|
21
|
+
ios: 'swift';
|
|
22
|
+
android: 'kotlin';
|
|
23
|
+
}> {
|
|
24
|
+
load(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Tags this ad with a user identifier for server-side verification (SSV)
|
|
27
|
+
* of the reward. Must be called before `show()`.
|
|
28
|
+
*/
|
|
29
|
+
setUserId(userId: string): void;
|
|
30
|
+
show(options?: LiftoffAdShowOptions): Promise<void>;
|
|
31
|
+
addAdEventListener(eventType: LiftoffAdEventType, listener: (payload?: LiftoffAdEventPayload) => void): number;
|
|
32
|
+
removeAdEventListener(subscriptionId: number): void;
|
|
33
|
+
removeAllListeners(): void;
|
|
34
|
+
}
|
|
35
|
+
export interface LiftoffAds extends HybridObject<{
|
|
36
|
+
ios: 'swift';
|
|
37
|
+
android: 'kotlin';
|
|
38
|
+
}> {
|
|
39
|
+
initialize(appId: string): Promise<void>;
|
|
40
|
+
setGDPRConsent(optIn: boolean, consentMessageVersion: string): void;
|
|
41
|
+
setCCPAConsent(optIn: boolean): void;
|
|
42
|
+
setCOPPA(isUserCoppa: boolean): void;
|
|
43
|
+
createInterstitialAd(placementId: string): LiftoffInterstitialAd;
|
|
44
|
+
createRewardedAd(placementId: string): LiftoffRewardedAd;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=LiftoffAds.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiftoffAds.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/LiftoffAds.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,iBAAiB,GACjB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY,CAAC;IAC1D,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;IACA,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,kBAAkB,CAChB,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,GAClD,MAAM,CAAC;IACV,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,kBAAkB,IAAI,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY,CAAC;IACtD,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;IACA,IAAI,IAAI,IAAI,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,kBAAkB,CAChB,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,GAClD,MAAM,CAAC;IACV,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,kBAAkB,IAAI,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC;IAC/C,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;IACA,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpE,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAErC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAAC;IACjE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAAC;CAC1D"}
|
package/nitro.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://nitro.margelo.com/nitro.schema.json",
|
|
3
|
+
"cxxNamespace": ["liftoffads"],
|
|
4
|
+
"ios": {
|
|
5
|
+
"iosModuleName": "NitroLiftoffAds"
|
|
6
|
+
},
|
|
7
|
+
"android": {
|
|
8
|
+
"androidNamespace": ["liftoffads"],
|
|
9
|
+
"androidCxxLibName": "NitroLiftoffAds"
|
|
10
|
+
},
|
|
11
|
+
"autolinking": {
|
|
12
|
+
"LiftoffAds": {
|
|
13
|
+
"swift": "HybridLiftoffAds",
|
|
14
|
+
"kotlin": "HybridLiftoffAds"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"ignorePaths": ["**/node_modules"]
|
|
18
|
+
}
|