react-native-daro 1.0.12 → 1.0.13

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 (109) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/darom/impl/DaroMRewardedAdModuleImpl.kt +8 -2
  3. package/ios/DaroMAdBannerViewManager.swift +4 -0
  4. package/lib/commonjs/AppOpenAd.js +129 -70
  5. package/lib/commonjs/AppOpenAd.js.map +1 -1
  6. package/lib/commonjs/EventEmitter.js +39 -11
  7. package/lib/commonjs/EventEmitter.js.map +1 -1
  8. package/lib/commonjs/InterstitialAd.js +129 -70
  9. package/lib/commonjs/InterstitialAd.js.map +1 -1
  10. package/lib/commonjs/LightPopupAd.js +143 -80
  11. package/lib/commonjs/LightPopupAd.js.map +1 -1
  12. package/lib/commonjs/RewardedAd.js +138 -80
  13. package/lib/commonjs/RewardedAd.js.map +1 -1
  14. package/lib/commonjs/index.js +0 -1
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/types/AdEvent.js +17 -0
  17. package/lib/commonjs/types/AdEvent.js.map +1 -1
  18. package/lib/module/AppOpenAd.js +129 -71
  19. package/lib/module/AppOpenAd.js.map +1 -1
  20. package/lib/module/EventEmitter.js +37 -10
  21. package/lib/module/EventEmitter.js.map +1 -1
  22. package/lib/module/InterstitialAd.js +130 -72
  23. package/lib/module/InterstitialAd.js.map +1 -1
  24. package/lib/module/LightPopupAd.js +145 -83
  25. package/lib/module/LightPopupAd.js.map +1 -1
  26. package/lib/module/RewardedAd.js +139 -82
  27. package/lib/module/RewardedAd.js.map +1 -1
  28. package/lib/module/index.js +0 -1
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/types/AdEvent.js +18 -1
  31. package/lib/module/types/AdEvent.js.map +1 -1
  32. package/lib/typescript/commonjs/src/AppOpenAd.d.ts +47 -2
  33. package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/src/EventEmitter.d.ts +9 -1
  35. package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/src/InterstitialAd.d.ts +47 -2
  37. package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/src/LightPopupAd.d.ts +51 -2
  39. package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/RewardedAd.d.ts +51 -2
  41. package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/index.d.ts +1 -1
  43. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/src/types/AdEvent.d.ts +24 -0
  45. package/lib/typescript/commonjs/src/types/AdEvent.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/src/types/LightPopupAd.d.ts +1 -5
  47. package/lib/typescript/commonjs/src/types/LightPopupAd.d.ts.map +1 -1
  48. package/lib/typescript/module/src/AppOpenAd.d.ts +47 -2
  49. package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
  50. package/lib/typescript/module/src/EventEmitter.d.ts +9 -1
  51. package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
  52. package/lib/typescript/module/src/InterstitialAd.d.ts +47 -2
  53. package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
  54. package/lib/typescript/module/src/LightPopupAd.d.ts +51 -2
  55. package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
  56. package/lib/typescript/module/src/RewardedAd.d.ts +51 -2
  57. package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
  58. package/lib/typescript/module/src/index.d.ts +1 -1
  59. package/lib/typescript/module/src/index.d.ts.map +1 -1
  60. package/lib/typescript/module/src/types/AdEvent.d.ts +24 -0
  61. package/lib/typescript/module/src/types/AdEvent.d.ts.map +1 -1
  62. package/lib/typescript/module/src/types/LightPopupAd.d.ts +1 -5
  63. package/lib/typescript/module/src/types/LightPopupAd.d.ts.map +1 -1
  64. package/package.json +6 -2
  65. package/react-native-daro-m.podspec +1 -1
  66. package/src/AppOpenAd.ts +172 -104
  67. package/src/EventEmitter.ts +60 -14
  68. package/src/InterstitialAd.ts +159 -103
  69. package/src/LightPopupAd.ts +183 -97
  70. package/src/RewardedAd.ts +181 -122
  71. package/src/index.tsx +19 -11
  72. package/src/types/AdEvent.ts +39 -2
  73. package/src/types/LightPopupAd.ts +2 -7
  74. package/lib/commonjs/types/AppOpenAd.js +0 -6
  75. package/lib/commonjs/types/AppOpenAd.js.map +0 -1
  76. package/lib/commonjs/types/FullScreenAd.js +0 -6
  77. package/lib/commonjs/types/FullScreenAd.js.map +0 -1
  78. package/lib/commonjs/types/InterstitialAd.js +0 -6
  79. package/lib/commonjs/types/InterstitialAd.js.map +0 -1
  80. package/lib/commonjs/types/RewardedAd.js +0 -6
  81. package/lib/commonjs/types/RewardedAd.js.map +0 -1
  82. package/lib/module/types/AppOpenAd.js +0 -4
  83. package/lib/module/types/AppOpenAd.js.map +0 -1
  84. package/lib/module/types/FullScreenAd.js +0 -4
  85. package/lib/module/types/FullScreenAd.js.map +0 -1
  86. package/lib/module/types/InterstitialAd.js +0 -4
  87. package/lib/module/types/InterstitialAd.js.map +0 -1
  88. package/lib/module/types/RewardedAd.js +0 -4
  89. package/lib/module/types/RewardedAd.js.map +0 -1
  90. package/lib/typescript/commonjs/src/types/AppOpenAd.d.ts +0 -3
  91. package/lib/typescript/commonjs/src/types/AppOpenAd.d.ts.map +0 -1
  92. package/lib/typescript/commonjs/src/types/FullScreenAd.d.ts +0 -21
  93. package/lib/typescript/commonjs/src/types/FullScreenAd.d.ts.map +0 -1
  94. package/lib/typescript/commonjs/src/types/InterstitialAd.d.ts +0 -3
  95. package/lib/typescript/commonjs/src/types/InterstitialAd.d.ts.map +0 -1
  96. package/lib/typescript/commonjs/src/types/RewardedAd.d.ts +0 -9
  97. package/lib/typescript/commonjs/src/types/RewardedAd.d.ts.map +0 -1
  98. package/lib/typescript/module/src/types/AppOpenAd.d.ts +0 -3
  99. package/lib/typescript/module/src/types/AppOpenAd.d.ts.map +0 -1
  100. package/lib/typescript/module/src/types/FullScreenAd.d.ts +0 -21
  101. package/lib/typescript/module/src/types/FullScreenAd.d.ts.map +0 -1
  102. package/lib/typescript/module/src/types/InterstitialAd.d.ts +0 -3
  103. package/lib/typescript/module/src/types/InterstitialAd.d.ts.map +0 -1
  104. package/lib/typescript/module/src/types/RewardedAd.d.ts +0 -9
  105. package/lib/typescript/module/src/types/RewardedAd.d.ts.map +0 -1
  106. package/src/types/AppOpenAd.ts +0 -3
  107. package/src/types/FullScreenAd.ts +0 -28
  108. package/src/types/InterstitialAd.ts +0 -3
  109. package/src/types/RewardedAd.ts +0 -15
@@ -1,4 +1,53 @@
1
- import type { RewardedAdType } from "./types/RewardedAd";
2
- export declare const RewardedAd: RewardedAdType;
1
+ import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo, AdRewardInfo } from './types/AdInfo';
2
+ import { AdEventType, RewardedAdEventType, type RewardedAdEventPayloadMap } from './types/AdEvent';
3
+ export declare class RewardedAd {
4
+ private readonly adUnitId;
5
+ private readonly eventEmitter;
6
+ private constructor();
7
+ static createForAdRequest(adUnitId: string): RewardedAd;
8
+ isAdReady(): Promise<boolean>;
9
+ load(): void;
10
+ show(customData?: string | null): void;
11
+ addAdEventListener<T extends AdEventType | RewardedAdEventType>(type: T, listener: (info: RewardedAdEventPayloadMap[T]) => void): () => void;
12
+ removeAllListeners(): void;
13
+ /** @deprecated `RewardedAd.createForAdRequest(adUnitId)` 인스턴스의 `isAdReady()`를 사용하세요. */
14
+ static isAdReady(adUnitId: string): Promise<boolean>;
15
+ /** @deprecated `RewardedAd.createForAdRequest(adUnitId)` 인스턴스의 `load()`를 사용하세요. */
16
+ static loadAd(adUnitId: string): void;
17
+ /** @deprecated `RewardedAd.createForAdRequest(adUnitId)` 인스턴스의 `show()`를 사용하세요. */
18
+ static showAd(adUnitId: string, customData?: string | null): void;
19
+ /** @deprecated `addAdEventListener(AdEventType.LOADED, ...)`를 인스턴스에서 사용하세요. */
20
+ static addAdLoadedEventListener(listener: (adInfo: AdInfo) => void): void;
21
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
22
+ static removeAdLoadedEventListener(): void;
23
+ /** @deprecated `addAdEventListener(AdEventType.LOAD_FAILED, ...)`를 인스턴스에서 사용하세요. */
24
+ static addAdLoadFailedEventListener(listener: (errorInfo: AdLoadFailedInfo) => void): void;
25
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
26
+ static removeAdLoadFailedEventListener(): void;
27
+ /** @deprecated `addAdEventListener(AdEventType.CLICKED, ...)`를 인스턴스에서 사용하세요. */
28
+ static addAdClickedEventListener(listener: (adInfo: AdInfo) => void): void;
29
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
30
+ static removeAdClickedEventListener(): void;
31
+ /** @deprecated `addAdEventListener(AdEventType.DISPLAYED, ...)`를 인스턴스에서 사용하세요. */
32
+ static addAdDisplayedEventListener(listener: (adInfo: AdInfo) => void): void;
33
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
34
+ static removeAdDisplayedEventListener(): void;
35
+ /** @deprecated `addAdEventListener(AdEventType.FAILED_TO_DISPLAY, ...)`를 인스턴스에서 사용하세요. */
36
+ static addAdFailedToDisplayEventListener(listener: (errorInfo: AdDisplayFailedInfo) => void): void;
37
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
38
+ static removeAdFailedToDisplayEventListener(): void;
39
+ /** @deprecated `addAdEventListener(AdEventType.HIDDEN, ...)`를 인스턴스에서 사용하세요. */
40
+ static addAdHiddenEventListener(listener: (adInfo: AdInfo) => void): void;
41
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
42
+ static removeAdHiddenEventListener(): void;
43
+ /** @deprecated `addAdEventListener(AdEventType.IMPRESSION_RECORDED, ...)`를 인스턴스에서 사용하세요. */
44
+ static addAdImpressionRecordedListener(listener: (adInfo: AdInfo) => void): void;
45
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
46
+ static removeAdImpressionRecordedListener(): void;
47
+ /** @deprecated `addAdEventListener(RewardedAdEventType.RECEIVED_REWARD, ...)`를 인스턴스에서 사용하세요. */
48
+ static addAdReceivedRewardEventListener(listener: (adInfo: AdRewardInfo) => void): void;
49
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
50
+ static removeAdReceivedRewardEventListener(): void;
51
+ }
3
52
  export default RewardedAd;
4
53
  //# sourceMappingURL=RewardedAd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RewardedAd.d.ts","sourceRoot":"","sources":["../../../../src/RewardedAd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA+FzD,eAAO,MAAM,UAAU,EAAE,cA6BxB,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"RewardedAd.d.ts","sourceRoot":"","sources":["../../../../src/RewardedAd.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,mBAAmB,EACnB,MAAM,EACN,gBAAgB,EAChB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAC;AA2BzB,qBAAa,UAAU;IAGD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAF7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD,OAAO;IAEP,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAIvD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,IAAI,IAAI,IAAI;IAIZ,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,mBAAmB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAAK,IAAI,GACrD,MAAM,IAAI;IAWb,kBAAkB,IAAI,IAAI;IAM1B,wFAAwF;IACxF,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,mFAAmF;IACnF,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrC,mFAAmF;IACnF,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjE,+EAA+E;IAC/E,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIzE,8DAA8D;IAC9D,MAAM,CAAC,2BAA2B,IAAI,IAAI;IAI1C,oFAAoF;IACpF,MAAM,CAAC,4BAA4B,CACjC,QAAQ,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,GAC9C,IAAI;IAIP,8DAA8D;IAC9D,MAAM,CAAC,+BAA+B,IAAI,IAAI;IAI9C,gFAAgF;IAChF,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1E,8DAA8D;IAC9D,MAAM,CAAC,4BAA4B,IAAI,IAAI;IAI3C,kFAAkF;IAClF,MAAM,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI5E,8DAA8D;IAC9D,MAAM,CAAC,8BAA8B,IAAI,IAAI;IAI7C,0FAA0F;IAC1F,MAAM,CAAC,iCAAiC,CACtC,QAAQ,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,GACjD,IAAI;IAIP,8DAA8D;IAC9D,MAAM,CAAC,oCAAoC,IAAI,IAAI;IAInD,+EAA+E;IAC/E,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIzE,8DAA8D;IAC9D,MAAM,CAAC,2BAA2B,IAAI,IAAI;IAI1C,4FAA4F;IAC5F,MAAM,CAAC,+BAA+B,CACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACjC,IAAI;IAIP,8DAA8D;IAC9D,MAAM,CAAC,kCAAkC,IAAI,IAAI;IAIjD,gGAAgG;IAChG,MAAM,CAAC,gCAAgC,CACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACvC,IAAI;IAIP,8DAA8D;IAC9D,MAAM,CAAC,mCAAmC,IAAI,IAAI;CAGnD;AAED,eAAe,UAAU,CAAC"}
@@ -4,7 +4,7 @@ export { InterstitialAd } from './InterstitialAd';
4
4
  export { RewardedAd } from './RewardedAd';
5
5
  export { LightPopupAd } from './LightPopupAd';
6
6
  export { NativeAdView } from './nativeAd/NativeAdView';
7
- export { BodyView, CallToActionView, IconView, MediaView, TitleView } from './nativeAd/NativeAdViewComponents';
7
+ export { BodyView, CallToActionView, IconView, MediaView, TitleView, } from './nativeAd/NativeAdViewComponents';
8
8
  export declare function initialize(): Promise<void>;
9
9
  export declare function showMediationDebugger(): Promise<void>;
10
10
  export declare function setUserId(userId: String): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAKA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAc/G,wBAAsB,UAAU,kBAE/B;AAED,wBAAsB,qBAAqB,kBAE1C;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,iBAE7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,SAAS,GACV,MAAM,mCAAmC,CAAC;AAmB3C,wBAAsB,UAAU,kBAE/B;AAED,wBAAsB,qBAAqB,kBAE1C;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,iBAE7C"}
@@ -4,4 +4,28 @@ export type AdEventListener<T extends AdEventObject> = (event: T) => void;
4
4
  export type AdNativeEvent<T extends AdEventObject> = {
5
5
  nativeEvent: T;
6
6
  };
7
+ export declare enum AdEventType {
8
+ LOADED = "LOADED",
9
+ LOAD_FAILED = "LOAD_FAILED",
10
+ CLICKED = "CLICKED",
11
+ DISPLAYED = "DISPLAYED",
12
+ FAILED_TO_DISPLAY = "FAILED_TO_DISPLAY",
13
+ HIDDEN = "HIDDEN",
14
+ IMPRESSION_RECORDED = "IMPRESSION_RECORDED"
15
+ }
16
+ export declare enum RewardedAdEventType {
17
+ RECEIVED_REWARD = "RECEIVED_REWARD"
18
+ }
19
+ export interface AdEventPayloadMap {
20
+ [AdEventType.LOADED]: AdInfo;
21
+ [AdEventType.LOAD_FAILED]: AdLoadFailedInfo;
22
+ [AdEventType.CLICKED]: AdInfo;
23
+ [AdEventType.DISPLAYED]: AdInfo;
24
+ [AdEventType.FAILED_TO_DISPLAY]: AdDisplayFailedInfo;
25
+ [AdEventType.HIDDEN]: AdInfo;
26
+ [AdEventType.IMPRESSION_RECORDED]: AdInfo;
27
+ }
28
+ export interface RewardedAdEventPayloadMap extends AdEventPayloadMap {
29
+ [RewardedAdEventType.RECEIVED_REWARD]: AdRewardInfo;
30
+ }
7
31
  //# sourceMappingURL=AdEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdEvent.d.ts","sourceRoot":"","sources":["../../../../../src/types/AdEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5F,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,YAAY,CAAC;AAG3F,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAG1E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IAAE,WAAW,EAAE,CAAC,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"AdEvent.d.ts","sourceRoot":"","sources":["../../../../../src/types/AdEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,gBAAgB,GAChB,mBAAmB,GACnB,YAAY,CAAC;AAGjB,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAG1E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IAAE,WAAW,EAAE,CAAC,CAAA;CAAE,CAAC;AAExE,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;IACvC,MAAM,WAAW;IACjB,mBAAmB,wBAAwB;CAC5C;AAED,oBAAY,mBAAmB;IAC7B,eAAe,oBAAoB;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC5C,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAChC,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACrD,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;CACrD"}
@@ -1,8 +1,4 @@
1
- import type { ColorValue } from "react-native";
2
- import type { FullScreenAdType } from "./FullScreenAd";
3
- export interface LightPopupAdType extends FullScreenAdType {
4
- setLightPopupAdConfiguration: (adUnitId: string, configuration: LightPopupAdConfiguration) => void;
5
- }
1
+ import type { ColorValue } from 'react-native';
6
2
  export interface LightPopupAdConfiguration {
7
3
  backgroundColor?: ColorValue;
8
4
  cardViewBackgroundColor?: ColorValue;
@@ -1 +1 @@
1
- {"version":3,"file":"LightPopupAd.d.ts","sourceRoot":"","sources":["../../../../../src/types/LightPopupAd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACpG;AAED,MAAM,WAAW,yBAAyB;IACxC,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,uBAAuB,CAAC,EAAE,UAAU,CAAC;IACrC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,0BAA0B,CAAC,EAAE,UAAU,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,wBAAwB,CAAC,EAAE,UAAU,CAAC;CACvC"}
1
+ {"version":3,"file":"LightPopupAd.d.ts","sourceRoot":"","sources":["../../../../../src/types/LightPopupAd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,uBAAuB,CAAC,EAAE,UAAU,CAAC;IACrC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,0BAA0B,CAAC,EAAE,UAAU,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,wBAAwB,CAAC,EAAE,UAAU,CAAC;CACvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-daro",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "Daro React Native Module for Android and iOS",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -43,7 +43,7 @@
43
43
  "typecheck": "tsc",
44
44
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
45
45
  "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
46
- "prepare": "bob build",
46
+ "prepublishOnly": "bob build",
47
47
  "release": "release-it"
48
48
  },
49
49
  "keywords": [
@@ -99,6 +99,10 @@
99
99
  "modulePathIgnorePatterns": [
100
100
  "<rootDir>/example/node_modules",
101
101
  "<rootDir>/lib/"
102
+ ],
103
+ "testPathIgnorePatterns": [
104
+ "/node_modules/",
105
+ "/__helpers__/"
102
106
  ]
103
107
  },
104
108
  "release-it": {
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
16
16
 
17
17
  s.source_files = "ios/**/*.{h,m,mm,swift}"
18
18
 
19
- s.dependency "DaroAds", "1.1.55"
19
+ s.dependency "DaroAds", "1.1.59"
20
20
 
21
21
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
22
22
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
package/src/AppOpenAd.ts CHANGED
@@ -1,113 +1,181 @@
1
1
  import { NativeModules } from 'react-native';
2
- import { addEventListener, removeEventListener } from './EventEmitter';
3
- import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo } from './types/AdInfo';
4
- import type { AppOpenAdType } from './types/AppOpenAd';
2
+ import {
3
+ addEventListener,
4
+ removeEventListener,
5
+ AdEventEmitter,
6
+ } from './EventEmitter';
7
+ import type {
8
+ AdDisplayFailedInfo,
9
+ AdInfo,
10
+ AdLoadFailedInfo,
11
+ } from './types/AdInfo';
12
+ import { AdEventType, type AdEventPayloadMap } from './types/AdEvent';
5
13
 
6
14
  const { DaroMModule } = NativeModules;
7
15
 
8
16
  const {
9
- ON_APPOPEN_AD_LOADED_EVENT,
10
- ON_APPOPEN_AD_LOAD_FAILED_EVENT,
11
- ON_APPOPEN_AD_CLICKED_EVENT,
12
- ON_APPOPEN_AD_DISPLAYED_EVENT,
13
- ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
14
- ON_APPOPEN_AD_HIDDEN_EVENT,
15
- ON_APPOPEN_AD_IMPRESSION_RECORDED,
17
+ ON_APPOPEN_AD_LOADED_EVENT,
18
+ ON_APPOPEN_AD_LOAD_FAILED_EVENT,
19
+ ON_APPOPEN_AD_CLICKED_EVENT,
20
+ ON_APPOPEN_AD_DISPLAYED_EVENT,
21
+ ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
22
+ ON_APPOPEN_AD_HIDDEN_EVENT,
23
+ ON_APPOPEN_AD_IMPRESSION_RECORDED,
16
24
  } = DaroMModule.getConstants();
17
25
 
18
- const isAdReady = (adUnitId: string): Promise<boolean> => {
19
- return DaroMModule.isAppOpenAdReady(adUnitId);
20
- };
21
-
22
- const loadAd = (adUnitId: string): void => {
23
- DaroMModule.loadAppOpenAd(adUnitId);
24
- };
25
-
26
- const showAd = (adUnitId: string, placement?: string | null, customData?: string | null): void => {
27
- DaroMModule.showAppOpenAd(adUnitId, placement ?? undefined, customData ?? undefined);
28
- };
29
-
30
- const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
31
- addEventListener(ON_APPOPEN_AD_LOADED_EVENT, listener);
32
- };
33
-
34
- const removeAdLoadedEventListener = (): void => {
35
- removeEventListener(ON_APPOPEN_AD_LOADED_EVENT);
36
- };
37
-
38
- const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
39
- addEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT, listener);
40
- };
41
-
42
- const removeAdLoadFailedEventListener = (): void => {
43
- removeEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT);
44
- };
45
-
46
- const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
47
- addEventListener(ON_APPOPEN_AD_CLICKED_EVENT, listener);
48
- };
49
-
50
- const removeAdClickedEventListener = (): void => {
51
- removeEventListener(ON_APPOPEN_AD_CLICKED_EVENT);
52
- };
53
-
54
- const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
55
- addEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT, listener);
56
- };
57
-
58
- const removeAdDisplayedEventListener = (): void => {
59
- removeEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT);
60
- };
61
-
62
- const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
63
- addEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT, listener);
64
- };
65
-
66
- const removeAdFailedToDisplayEventListener = (): void => {
67
- removeEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT);
68
- };
69
-
70
- const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
71
- addEventListener(ON_APPOPEN_AD_HIDDEN_EVENT, listener);
72
- };
73
-
74
- const removeAdHiddenEventListener = (): void => {
75
- removeEventListener(ON_APPOPEN_AD_HIDDEN_EVENT);
76
- };
77
-
78
- const addAdImpressionRecordedListener = (listener: (adInfo: AdInfo) => void): void => {
79
- addEventListener(ON_APPOPEN_AD_IMPRESSION_RECORDED, listener);
80
- };
81
-
82
- const removeAdImpressionRecordedListener = (): void => {
83
- removeEventListener(ON_APPOPEN_AD_IMPRESSION_RECORDED);
84
- };
85
-
86
- export const AppOpenAd: AppOpenAdType = {
87
- isAdReady,
88
- loadAd,
89
- showAd,
90
-
91
- addAdLoadedEventListener,
92
- removeAdLoadedEventListener,
93
-
94
- addAdLoadFailedEventListener,
95
- removeAdLoadFailedEventListener,
96
-
97
- addAdClickedEventListener,
98
- removeAdClickedEventListener,
99
-
100
- addAdDisplayedEventListener,
101
- removeAdDisplayedEventListener,
102
-
103
- addAdFailedToDisplayEventListener,
104
- removeAdFailedToDisplayEventListener,
105
-
106
- addAdHiddenEventListener,
107
- removeAdHiddenEventListener,
108
-
109
- addAdImpressionRecordedListener,
110
- removeAdImpressionRecordedListener,
111
- };
26
+ const NATIVE_EVENT_BY_TYPE: Record<AdEventType, string> = {
27
+ [AdEventType.LOADED]: ON_APPOPEN_AD_LOADED_EVENT,
28
+ [AdEventType.LOAD_FAILED]: ON_APPOPEN_AD_LOAD_FAILED_EVENT,
29
+ [AdEventType.CLICKED]: ON_APPOPEN_AD_CLICKED_EVENT,
30
+ [AdEventType.DISPLAYED]: ON_APPOPEN_AD_DISPLAYED_EVENT,
31
+ [AdEventType.FAILED_TO_DISPLAY]: ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
32
+ [AdEventType.HIDDEN]: ON_APPOPEN_AD_HIDDEN_EVENT,
33
+ [AdEventType.IMPRESSION_RECORDED]: ON_APPOPEN_AD_IMPRESSION_RECORDED,
34
+ };
35
+
36
+ export class AppOpenAd {
37
+ private readonly eventEmitter = new AdEventEmitter();
38
+
39
+ private constructor(private readonly adUnitId: string) {}
40
+
41
+ static createForAdRequest(adUnitId: string): AppOpenAd {
42
+ return new AppOpenAd(adUnitId);
43
+ }
44
+
45
+ isAdReady(): Promise<boolean> {
46
+ return DaroMModule.isAppOpenAdReady(this.adUnitId);
47
+ }
48
+
49
+ load(): void {
50
+ DaroMModule.loadAppOpenAd(this.adUnitId);
51
+ }
52
+
53
+ show(placement?: string | null, customData?: string | null): void {
54
+ DaroMModule.showAppOpenAd(
55
+ this.adUnitId,
56
+ placement ?? undefined,
57
+ customData ?? undefined
58
+ );
59
+ }
60
+
61
+ addAdEventListener<T extends AdEventType>(
62
+ type: T,
63
+ listener: (info: AdEventPayloadMap[T]) => void
64
+ ): () => void {
65
+ const nativeEvent = NATIVE_EVENT_BY_TYPE[type];
66
+ const adUnitId = this.adUnitId;
67
+ return this.eventEmitter.addEventListener(nativeEvent, (payload: any) => {
68
+ if (payload?.adUnitId !== undefined && payload.adUnitId !== adUnitId) {
69
+ return;
70
+ }
71
+ listener(payload);
72
+ });
73
+ }
74
+
75
+ removeAllListeners(): void {
76
+ this.eventEmitter.removeAllListeners();
77
+ }
78
+
79
+ // ---- Deprecated static API (backward compatibility) ----
80
+
81
+ /** @deprecated `AppOpenAd.createForAdRequest(adUnitId)` 인스턴스의 `isAdReady()`를 사용하세요. */
82
+ static isAdReady(adUnitId: string): Promise<boolean> {
83
+ return DaroMModule.isAppOpenAdReady(adUnitId);
84
+ }
85
+
86
+ /** @deprecated `AppOpenAd.createForAdRequest(adUnitId)` 인스턴스의 `load()`를 사용하세요. */
87
+ static loadAd(adUnitId: string): void {
88
+ DaroMModule.loadAppOpenAd(adUnitId);
89
+ }
90
+
91
+ /** @deprecated `AppOpenAd.createForAdRequest(adUnitId)` 인스턴스의 `show()`를 사용하세요. */
92
+ static showAd(
93
+ adUnitId: string,
94
+ placement?: string | null,
95
+ customData?: string | null
96
+ ): void {
97
+ DaroMModule.showAppOpenAd(
98
+ adUnitId,
99
+ placement ?? undefined,
100
+ customData ?? undefined
101
+ );
102
+ }
103
+
104
+ /** @deprecated `addAdEventListener(AdEventType.LOADED, ...)`를 인스턴스에서 사용하세요. */
105
+ static addAdLoadedEventListener(listener: (adInfo: AdInfo) => void): void {
106
+ addEventListener(ON_APPOPEN_AD_LOADED_EVENT, listener);
107
+ }
108
+
109
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
110
+ static removeAdLoadedEventListener(): void {
111
+ removeEventListener(ON_APPOPEN_AD_LOADED_EVENT);
112
+ }
113
+
114
+ /** @deprecated `addAdEventListener(AdEventType.LOAD_FAILED, ...)`를 인스턴스에서 사용하세요. */
115
+ static addAdLoadFailedEventListener(
116
+ listener: (errorInfo: AdLoadFailedInfo) => void
117
+ ): void {
118
+ addEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT, listener);
119
+ }
120
+
121
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
122
+ static removeAdLoadFailedEventListener(): void {
123
+ removeEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT);
124
+ }
125
+
126
+ /** @deprecated `addAdEventListener(AdEventType.CLICKED, ...)`를 인스턴스에서 사용하세요. */
127
+ static addAdClickedEventListener(listener: (adInfo: AdInfo) => void): void {
128
+ addEventListener(ON_APPOPEN_AD_CLICKED_EVENT, listener);
129
+ }
130
+
131
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
132
+ static removeAdClickedEventListener(): void {
133
+ removeEventListener(ON_APPOPEN_AD_CLICKED_EVENT);
134
+ }
135
+
136
+ /** @deprecated `addAdEventListener(AdEventType.DISPLAYED, ...)`를 인스턴스에서 사용하세요. */
137
+ static addAdDisplayedEventListener(listener: (adInfo: AdInfo) => void): void {
138
+ addEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT, listener);
139
+ }
140
+
141
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
142
+ static removeAdDisplayedEventListener(): void {
143
+ removeEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT);
144
+ }
145
+
146
+ /** @deprecated `addAdEventListener(AdEventType.FAILED_TO_DISPLAY, ...)`를 인스턴스에서 사용하세요. */
147
+ static addAdFailedToDisplayEventListener(
148
+ listener: (errorInfo: AdDisplayFailedInfo) => void
149
+ ): void {
150
+ addEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT, listener);
151
+ }
152
+
153
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
154
+ static removeAdFailedToDisplayEventListener(): void {
155
+ removeEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT);
156
+ }
157
+
158
+ /** @deprecated `addAdEventListener(AdEventType.HIDDEN, ...)`를 인스턴스에서 사용하세요. */
159
+ static addAdHiddenEventListener(listener: (adInfo: AdInfo) => void): void {
160
+ addEventListener(ON_APPOPEN_AD_HIDDEN_EVENT, listener);
161
+ }
162
+
163
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
164
+ static removeAdHiddenEventListener(): void {
165
+ removeEventListener(ON_APPOPEN_AD_HIDDEN_EVENT);
166
+ }
167
+
168
+ /** @deprecated `addAdEventListener(AdEventType.IMPRESSION_RECORDED, ...)`를 인스턴스에서 사용하세요. */
169
+ static addAdImpressionRecordedListener(
170
+ listener: (adInfo: AdInfo) => void
171
+ ): void {
172
+ addEventListener(ON_APPOPEN_AD_IMPRESSION_RECORDED, listener);
173
+ }
174
+
175
+ /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
176
+ static removeAdImpressionRecordedListener(): void {
177
+ removeEventListener(ON_APPOPEN_AD_IMPRESSION_RECORDED);
178
+ }
179
+ }
112
180
 
113
181
  export default AppOpenAd;
@@ -5,21 +5,67 @@ import type { AdEventObject, AdEventListener } from './types/AdEvent';
5
5
  const { DaroMModule } = NativeModules;
6
6
 
7
7
  const emitter = new NativeEventEmitter(DaroMModule);
8
- const subscriptions: Record<string, EventSubscription> = {};
9
-
10
- export const addEventListener = <T extends AdEventObject>(event: string, handler: AdEventListener<T>): void => {
11
- const subscription: EventSubscription = emitter.addListener(event, handler);
12
- const currentSubscription = subscriptions[event];
13
- if (currentSubscription) {
14
- currentSubscription.remove();
15
- }
16
- subscriptions[event] = subscription;
8
+ const subscriptions: Map<string, Set<EventSubscription>> = new Map();
9
+
10
+ export const addEventListener = <T extends AdEventObject>(
11
+ event: string,
12
+ handler: AdEventListener<T>
13
+ ): (() => void) => {
14
+ const subscription: EventSubscription = emitter.addListener(event, handler);
15
+
16
+ if (!subscriptions.has(event)) {
17
+ subscriptions.set(event, new Set());
18
+ }
19
+ subscriptions.get(event)!.add(subscription);
20
+
21
+ return () => {
22
+ subscription.remove();
23
+ subscriptions.get(event)?.delete(subscription);
24
+ };
17
25
  };
18
26
 
19
27
  export const removeEventListener = (event: string): void => {
20
- const currentSubscription = subscriptions[event];
21
- if (currentSubscription) {
22
- currentSubscription.remove();
23
- delete subscriptions[event];
24
- }
28
+ subscriptions.get(event)?.forEach((sub) => sub.remove());
29
+ subscriptions.delete(event);
25
30
  };
31
+
32
+ export class AdEventEmitter {
33
+ private emitter: NativeEventEmitter;
34
+ private subscriptions: Map<string, Set<EventSubscription>> = new Map();
35
+
36
+ constructor() {
37
+ this.emitter = new NativeEventEmitter(DaroMModule);
38
+ }
39
+
40
+ addEventListener<T extends AdEventObject>(
41
+ event: string,
42
+ handler: AdEventListener<T>
43
+ ): () => void {
44
+ const subscription: EventSubscription = this.emitter.addListener(
45
+ event,
46
+ handler
47
+ );
48
+
49
+ if (!this.subscriptions.has(event)) {
50
+ this.subscriptions.set(event, new Set());
51
+ }
52
+ this.subscriptions.get(event)!.add(subscription);
53
+
54
+ return () => {
55
+ subscription.remove();
56
+ this.subscriptions.get(event)?.delete(subscription);
57
+ };
58
+ }
59
+
60
+ removeEventListener(event: string): void {
61
+ this.subscriptions.get(event)?.forEach((sub) => sub.remove());
62
+ this.subscriptions.delete(event);
63
+ }
64
+
65
+ removeAllListeners(): void {
66
+ for (const subs of this.subscriptions.values()) {
67
+ subs.forEach((sub) => sub.remove());
68
+ }
69
+ this.subscriptions.clear();
70
+ }
71
+ }