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.
Files changed (95) hide show
  1. package/LICENSE +20 -0
  2. package/NitroLiftoffAds.podspec +26 -0
  3. package/README.md +61 -0
  4. package/android/CMakeLists.txt +20 -0
  5. package/android/build.gradle +132 -0
  6. package/android/consumer-rules.pro +2 -0
  7. package/android/fix-prefab.gradle +46 -0
  8. package/android/gradle.properties +5 -0
  9. package/android/src/main/AndroidManifest.xml +1 -0
  10. package/android/src/main/cpp/cpp-adapter.cpp +7 -0
  11. package/android/src/main/java/com/margelo/nitro/liftoffads/HybridLiftoffAds.kt +121 -0
  12. package/android/src/main/java/com/margelo/nitro/liftoffads/HybridLiftoffInterstitialAd.kt +96 -0
  13. package/android/src/main/java/com/margelo/nitro/liftoffads/HybridLiftoffRewardedAd.kt +104 -0
  14. package/android/src/main/java/com/margelo/nitro/liftoffads/LiftoffAdEventEmitter.kt +51 -0
  15. package/android/src/main/java/com/margelo/nitro/liftoffads/LiftoffAndroidUtils.kt +54 -0
  16. package/android/src/main/java/com/margelo/nitro/liftoffads/NitroLiftoffAdsPackage.java +27 -0
  17. package/ios/HybridLiftoffAds.swift +113 -0
  18. package/ios/HybridLiftoffInterstitialAd.swift +98 -0
  19. package/ios/HybridLiftoffRewardedAd.swift +100 -0
  20. package/ios/LiftoffSupport.swift +106 -0
  21. package/lib/module/index.js +169 -0
  22. package/lib/module/index.js.map +1 -0
  23. package/lib/module/index.test.js +205 -0
  24. package/lib/module/index.test.js.map +1 -0
  25. package/lib/module/package.json +1 -0
  26. package/lib/module/specs/LiftoffAds.nitro.js +4 -0
  27. package/lib/module/specs/LiftoffAds.nitro.js.map +1 -0
  28. package/lib/typescript/package.json +1 -0
  29. package/lib/typescript/src/index.d.ts +72 -0
  30. package/lib/typescript/src/index.d.ts.map +1 -0
  31. package/lib/typescript/src/index.test.d.ts +2 -0
  32. package/lib/typescript/src/index.test.d.ts.map +1 -0
  33. package/lib/typescript/src/specs/LiftoffAds.nitro.d.ts +46 -0
  34. package/lib/typescript/src/specs/LiftoffAds.nitro.d.ts.map +1 -0
  35. package/nitro.json +18 -0
  36. package/nitrogen/generated/android/NitroLiftoffAds+autolinking.cmake +85 -0
  37. package/nitrogen/generated/android/NitroLiftoffAds+autolinking.gradle +27 -0
  38. package/nitrogen/generated/android/NitroLiftoffAdsOnLoad.cpp +50 -0
  39. package/nitrogen/generated/android/NitroLiftoffAdsOnLoad.hpp +25 -0
  40. package/nitrogen/generated/android/c++/JFunc_void_std__optional_LiftoffAdEventPayload_.hpp +78 -0
  41. package/nitrogen/generated/android/c++/JHybridLiftoffAdsSpec.cpp +88 -0
  42. package/nitrogen/generated/android/c++/JHybridLiftoffAdsSpec.hpp +69 -0
  43. package/nitrogen/generated/android/c++/JHybridLiftoffInterstitialAdSpec.cpp +89 -0
  44. package/nitrogen/generated/android/c++/JHybridLiftoffInterstitialAdSpec.hpp +68 -0
  45. package/nitrogen/generated/android/c++/JHybridLiftoffRewardedAdSpec.cpp +93 -0
  46. package/nitrogen/generated/android/c++/JHybridLiftoffRewardedAdSpec.hpp +69 -0
  47. package/nitrogen/generated/android/c++/JLiftoffAdEventPayload.hpp +58 -0
  48. package/nitrogen/generated/android/c++/JLiftoffAdEventType.hpp +77 -0
  49. package/nitrogen/generated/android/c++/JLiftoffAdShowOptions.hpp +53 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/Func_void_std__optional_LiftoffAdEventPayload_.kt +81 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/HybridLiftoffAdsSpec.kt +72 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/HybridLiftoffInterstitialAdSpec.kt +73 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/HybridLiftoffRewardedAdSpec.kt +77 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/LiftoffAdEventPayload.kt +32 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/LiftoffAdEventType.kt +27 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/LiftoffAdShowOptions.kt +29 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/liftoffads/NitroLiftoffAdsOnLoad.kt +35 -0
  58. package/nitrogen/generated/ios/NitroLiftoffAds+autolinking.rb +60 -0
  59. package/nitrogen/generated/ios/NitroLiftoffAds-Swift-Cxx-Bridge.cpp +90 -0
  60. package/nitrogen/generated/ios/NitroLiftoffAds-Swift-Cxx-Bridge.hpp +285 -0
  61. package/nitrogen/generated/ios/NitroLiftoffAds-Swift-Cxx-Umbrella.hpp +66 -0
  62. package/nitrogen/generated/ios/NitroLiftoffAdsAutolinking.mm +33 -0
  63. package/nitrogen/generated/ios/NitroLiftoffAdsAutolinking.swift +25 -0
  64. package/nitrogen/generated/ios/c++/HybridLiftoffAdsSpecSwift.cpp +11 -0
  65. package/nitrogen/generated/ios/c++/HybridLiftoffAdsSpecSwift.hpp +114 -0
  66. package/nitrogen/generated/ios/c++/HybridLiftoffInterstitialAdSpecSwift.cpp +11 -0
  67. package/nitrogen/generated/ios/c++/HybridLiftoffInterstitialAdSpecSwift.hpp +110 -0
  68. package/nitrogen/generated/ios/c++/HybridLiftoffRewardedAdSpecSwift.cpp +11 -0
  69. package/nitrogen/generated/ios/c++/HybridLiftoffRewardedAdSpecSwift.hpp +116 -0
  70. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  71. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  72. package/nitrogen/generated/ios/swift/Func_void_std__optional_LiftoffAdEventPayload_.swift +54 -0
  73. package/nitrogen/generated/ios/swift/HybridLiftoffAdsSpec.swift +54 -0
  74. package/nitrogen/generated/ios/swift/HybridLiftoffAdsSpec_cxx.swift +193 -0
  75. package/nitrogen/generated/ios/swift/HybridLiftoffInterstitialAdSpec.swift +53 -0
  76. package/nitrogen/generated/ios/swift/HybridLiftoffInterstitialAdSpec_cxx.swift +193 -0
  77. package/nitrogen/generated/ios/swift/HybridLiftoffRewardedAdSpec.swift +54 -0
  78. package/nitrogen/generated/ios/swift/HybridLiftoffRewardedAdSpec_cxx.swift +204 -0
  79. package/nitrogen/generated/ios/swift/LiftoffAdEventPayload.swift +77 -0
  80. package/nitrogen/generated/ios/swift/LiftoffAdEventType.swift +64 -0
  81. package/nitrogen/generated/ios/swift/LiftoffAdShowOptions.swift +47 -0
  82. package/nitrogen/generated/shared/c++/HybridLiftoffAdsSpec.cpp +26 -0
  83. package/nitrogen/generated/shared/c++/HybridLiftoffAdsSpec.hpp +74 -0
  84. package/nitrogen/generated/shared/c++/HybridLiftoffInterstitialAdSpec.cpp +25 -0
  85. package/nitrogen/generated/shared/c++/HybridLiftoffInterstitialAdSpec.hpp +76 -0
  86. package/nitrogen/generated/shared/c++/HybridLiftoffRewardedAdSpec.cpp +26 -0
  87. package/nitrogen/generated/shared/c++/HybridLiftoffRewardedAdSpec.hpp +78 -0
  88. package/nitrogen/generated/shared/c++/LiftoffAdEventPayload.hpp +72 -0
  89. package/nitrogen/generated/shared/c++/LiftoffAdEventType.hpp +100 -0
  90. package/nitrogen/generated/shared/c++/LiftoffAdShowOptions.hpp +67 -0
  91. package/package.json +173 -0
  92. package/react-native.config.js +8 -0
  93. package/src/index.test.ts +257 -0
  94. package/src/index.ts +307 -0
  95. 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,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=LiftoffAds.nitro.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -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
+ }