@chipmobilesdk/rn-ads 0.6.0 → 0.8.0

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 (340) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/README.md +4 -2
  3. package/lib/commonjs/config/resolveAdUnit.js +80 -0
  4. package/lib/commonjs/config/resolveAdUnit.js.map +1 -0
  5. package/lib/commonjs/config/types.js +138 -0
  6. package/lib/commonjs/config/types.js.map +1 -0
  7. package/lib/commonjs/config/validate.js +150 -0
  8. package/lib/commonjs/config/validate.js.map +1 -0
  9. package/lib/commonjs/core/adOriginatedReturn.js +119 -0
  10. package/lib/commonjs/core/adOriginatedReturn.js.map +1 -0
  11. package/lib/commonjs/core/adsInstance.js +129 -0
  12. package/lib/commonjs/core/adsInstance.js.map +1 -0
  13. package/lib/commonjs/core/consentFlow.js +154 -0
  14. package/lib/commonjs/core/consentFlow.js.map +1 -0
  15. package/lib/commonjs/core/enablement.js +64 -0
  16. package/lib/commonjs/core/enablement.js.map +1 -0
  17. package/lib/commonjs/core/fullScreenLock.js +48 -0
  18. package/lib/commonjs/core/fullScreenLock.js.map +1 -0
  19. package/lib/commonjs/core/gates.js +95 -0
  20. package/lib/commonjs/core/gates.js.map +1 -0
  21. package/lib/commonjs/core/initMachine.js +159 -0
  22. package/lib/commonjs/core/initMachine.js.map +1 -0
  23. package/lib/commonjs/core/instance/consent.js +155 -0
  24. package/lib/commonjs/core/instance/consent.js.map +1 -0
  25. package/lib/commonjs/core/instance/context.js +217 -0
  26. package/lib/commonjs/core/instance/context.js.map +1 -0
  27. package/lib/commonjs/core/instance/gate.js +194 -0
  28. package/lib/commonjs/core/instance/gate.js.map +1 -0
  29. package/lib/commonjs/core/instance/init.js +326 -0
  30. package/lib/commonjs/core/instance/init.js.map +1 -0
  31. package/lib/commonjs/core/instance/internals.js +115 -0
  32. package/lib/commonjs/core/instance/internals.js.map +1 -0
  33. package/lib/commonjs/core/instance/load.js +458 -0
  34. package/lib/commonjs/core/instance/load.js.map +1 -0
  35. package/lib/commonjs/core/instance/show.js +243 -0
  36. package/lib/commonjs/core/instance/show.js.map +1 -0
  37. package/lib/commonjs/core/instance/types.js +6 -0
  38. package/lib/commonjs/core/instance/types.js.map +1 -0
  39. package/lib/commonjs/core/placementMachine.js +116 -0
  40. package/lib/commonjs/core/placementMachine.js.map +1 -0
  41. package/lib/commonjs/core/privacyGate.js +93 -0
  42. package/lib/commonjs/core/privacyGate.js.map +1 -0
  43. package/lib/commonjs/core/requestThrottle.js +152 -0
  44. package/lib/commonjs/core/requestThrottle.js.map +1 -0
  45. package/lib/commonjs/core/retryPolicy.js +120 -0
  46. package/lib/commonjs/core/retryPolicy.js.map +1 -0
  47. package/lib/commonjs/core/rewardedSession.js +65 -0
  48. package/lib/commonjs/core/rewardedSession.js.map +1 -0
  49. package/lib/commonjs/core/timers.js +162 -0
  50. package/lib/commonjs/core/timers.js.map +1 -0
  51. package/lib/commonjs/diagnostics/correlation.js +33 -0
  52. package/lib/commonjs/diagnostics/correlation.js.map +1 -0
  53. package/lib/commonjs/diagnostics/errors.js +152 -0
  54. package/lib/commonjs/diagnostics/errors.js.map +1 -0
  55. package/lib/commonjs/diagnostics/events.js +132 -0
  56. package/lib/commonjs/diagnostics/events.js.map +1 -0
  57. package/lib/commonjs/engine/admobBanner.js +58 -0
  58. package/lib/commonjs/engine/admobBanner.js.map +1 -0
  59. package/lib/commonjs/engine/admobEngine.js +343 -0
  60. package/lib/commonjs/engine/admobEngine.js.map +1 -0
  61. package/lib/commonjs/engine/admobErrors.js +45 -0
  62. package/lib/commonjs/engine/admobErrors.js.map +1 -0
  63. package/lib/commonjs/engine/port.js +6 -0
  64. package/lib/commonjs/engine/port.js.map +1 -0
  65. package/lib/commonjs/engine/testAdUnits.js +61 -0
  66. package/lib/commonjs/engine/testAdUnits.js.map +1 -0
  67. package/lib/commonjs/index.js +218 -0
  68. package/lib/commonjs/index.js.map +1 -0
  69. package/lib/commonjs/package.json +1 -0
  70. package/lib/commonjs/react/AdsBanner.js +317 -0
  71. package/lib/commonjs/react/AdsBanner.js.map +1 -0
  72. package/lib/commonjs/react/AdsProvider.js +54 -0
  73. package/lib/commonjs/react/AdsProvider.js.map +1 -0
  74. package/lib/commonjs/react/hooks.js +63 -0
  75. package/lib/commonjs/react/hooks.js.map +1 -0
  76. package/lib/commonjs/testing/clock.js +76 -0
  77. package/lib/commonjs/testing/clock.js.map +1 -0
  78. package/lib/commonjs/testing/conformance.js +99 -0
  79. package/lib/commonjs/testing/conformance.js.map +1 -0
  80. package/lib/commonjs/testing/index.js +389 -0
  81. package/lib/commonjs/testing/index.js.map +1 -0
  82. package/lib/module/config/resolveAdUnit.js +75 -0
  83. package/lib/module/config/resolveAdUnit.js.map +1 -0
  84. package/lib/module/config/types.js +134 -0
  85. package/lib/module/config/types.js.map +1 -0
  86. package/lib/module/config/validate.js +146 -0
  87. package/lib/module/config/validate.js.map +1 -0
  88. package/lib/module/core/adOriginatedReturn.js +115 -0
  89. package/lib/module/core/adOriginatedReturn.js.map +1 -0
  90. package/lib/module/core/adsInstance.js +121 -0
  91. package/lib/module/core/adsInstance.js.map +1 -0
  92. package/lib/module/core/consentFlow.js +143 -0
  93. package/lib/module/core/consentFlow.js.map +1 -0
  94. package/lib/module/core/enablement.js +58 -0
  95. package/lib/module/core/enablement.js.map +1 -0
  96. package/lib/module/core/fullScreenLock.js +44 -0
  97. package/lib/module/core/fullScreenLock.js.map +1 -0
  98. package/lib/module/core/gates.js +91 -0
  99. package/lib/module/core/gates.js.map +1 -0
  100. package/lib/module/core/initMachine.js +152 -0
  101. package/lib/module/core/initMachine.js.map +1 -0
  102. package/lib/module/core/instance/consent.js +151 -0
  103. package/lib/module/core/instance/consent.js.map +1 -0
  104. package/lib/module/core/instance/context.js +212 -0
  105. package/lib/module/core/instance/context.js.map +1 -0
  106. package/lib/module/core/instance/gate.js +183 -0
  107. package/lib/module/core/instance/gate.js.map +1 -0
  108. package/lib/module/core/instance/init.js +321 -0
  109. package/lib/module/core/instance/init.js.map +1 -0
  110. package/lib/module/core/instance/internals.js +109 -0
  111. package/lib/module/core/instance/internals.js.map +1 -0
  112. package/lib/module/core/instance/load.js +452 -0
  113. package/lib/module/core/instance/load.js.map +1 -0
  114. package/lib/module/core/instance/show.js +238 -0
  115. package/lib/module/core/instance/show.js.map +1 -0
  116. package/lib/module/core/instance/types.js +4 -0
  117. package/lib/module/core/instance/types.js.map +1 -0
  118. package/lib/module/core/placementMachine.js +109 -0
  119. package/lib/module/core/placementMachine.js.map +1 -0
  120. package/lib/module/core/privacyGate.js +86 -0
  121. package/lib/module/core/privacyGate.js.map +1 -0
  122. package/lib/module/core/requestThrottle.js +146 -0
  123. package/lib/module/core/requestThrottle.js.map +1 -0
  124. package/lib/module/core/retryPolicy.js +113 -0
  125. package/lib/module/core/retryPolicy.js.map +1 -0
  126. package/lib/module/core/rewardedSession.js +61 -0
  127. package/lib/module/core/rewardedSession.js.map +1 -0
  128. package/lib/module/core/timers.js +150 -0
  129. package/lib/module/core/timers.js.map +1 -0
  130. package/lib/module/diagnostics/correlation.js +29 -0
  131. package/lib/module/diagnostics/correlation.js.map +1 -0
  132. package/lib/module/diagnostics/errors.js +143 -0
  133. package/lib/module/diagnostics/errors.js.map +1 -0
  134. package/lib/module/diagnostics/events.js +128 -0
  135. package/lib/module/diagnostics/events.js.map +1 -0
  136. package/lib/module/engine/admobBanner.js +52 -0
  137. package/lib/module/engine/admobBanner.js.map +1 -0
  138. package/lib/module/engine/admobEngine.js +334 -0
  139. package/lib/module/engine/admobEngine.js.map +1 -0
  140. package/lib/module/engine/admobErrors.js +41 -0
  141. package/lib/module/engine/admobErrors.js.map +1 -0
  142. package/lib/module/engine/port.js +4 -0
  143. package/lib/module/engine/port.js.map +1 -0
  144. package/lib/module/engine/testAdUnits.js +56 -0
  145. package/lib/module/engine/testAdUnits.js.map +1 -0
  146. package/lib/module/index.js +59 -0
  147. package/lib/module/index.js.map +1 -0
  148. package/lib/module/package.json +1 -0
  149. package/lib/module/react/AdsBanner.js +312 -0
  150. package/lib/module/react/AdsBanner.js.map +1 -0
  151. package/lib/module/react/AdsProvider.js +48 -0
  152. package/lib/module/react/AdsProvider.js.map +1 -0
  153. package/lib/module/react/hooks.js +58 -0
  154. package/lib/module/react/hooks.js.map +1 -0
  155. package/lib/module/testing/clock.js +72 -0
  156. package/lib/module/testing/clock.js.map +1 -0
  157. package/lib/module/testing/conformance.js +93 -0
  158. package/lib/module/testing/conformance.js.map +1 -0
  159. package/lib/module/testing/index.js +366 -0
  160. package/lib/module/testing/index.js.map +1 -0
  161. package/lib/typescript/commonjs/config/resolveAdUnit.d.ts +43 -0
  162. package/lib/typescript/commonjs/config/resolveAdUnit.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/config/types.d.ts +280 -0
  164. package/lib/typescript/commonjs/config/types.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/config/validate.d.ts +49 -0
  166. package/lib/typescript/commonjs/config/validate.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/core/adOriginatedReturn.d.ts +61 -0
  168. package/lib/typescript/commonjs/core/adOriginatedReturn.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/core/adsInstance.d.ts +33 -0
  170. package/lib/typescript/commonjs/core/adsInstance.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/core/consentFlow.d.ts +84 -0
  172. package/lib/typescript/commonjs/core/consentFlow.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/core/enablement.d.ts +74 -0
  174. package/lib/typescript/commonjs/core/enablement.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/core/fullScreenLock.d.ts +25 -0
  176. package/lib/typescript/commonjs/core/fullScreenLock.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/core/gates.d.ts +76 -0
  178. package/lib/typescript/commonjs/core/gates.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/core/initMachine.d.ts +66 -0
  180. package/lib/typescript/commonjs/core/initMachine.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/core/instance/consent.d.ts +4 -0
  182. package/lib/typescript/commonjs/core/instance/consent.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/core/instance/context.d.ts +118 -0
  184. package/lib/typescript/commonjs/core/instance/context.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/core/instance/gate.d.ts +38 -0
  186. package/lib/typescript/commonjs/core/instance/gate.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/core/instance/init.d.ts +13 -0
  188. package/lib/typescript/commonjs/core/instance/init.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/core/instance/internals.d.ts +60 -0
  190. package/lib/typescript/commonjs/core/instance/internals.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/core/instance/load.d.ts +9 -0
  192. package/lib/typescript/commonjs/core/instance/load.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/core/instance/show.d.ts +7 -0
  194. package/lib/typescript/commonjs/core/instance/show.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/core/instance/types.d.ts +240 -0
  196. package/lib/typescript/commonjs/core/instance/types.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/core/placementMachine.d.ts +55 -0
  198. package/lib/typescript/commonjs/core/placementMachine.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/core/privacyGate.d.ts +40 -0
  200. package/lib/typescript/commonjs/core/privacyGate.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/core/requestThrottle.d.ts +99 -0
  202. package/lib/typescript/commonjs/core/requestThrottle.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/core/retryPolicy.d.ts +66 -0
  204. package/lib/typescript/commonjs/core/retryPolicy.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/core/rewardedSession.d.ts +37 -0
  206. package/lib/typescript/commonjs/core/rewardedSession.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/core/timers.d.ts +135 -0
  208. package/lib/typescript/commonjs/core/timers.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/diagnostics/correlation.d.ts +18 -0
  210. package/lib/typescript/commonjs/diagnostics/correlation.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/diagnostics/errors.d.ts +59 -0
  212. package/lib/typescript/commonjs/diagnostics/errors.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/diagnostics/events.d.ts +126 -0
  214. package/lib/typescript/commonjs/diagnostics/events.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/engine/admobBanner.d.ts +10 -0
  216. package/lib/typescript/commonjs/engine/admobBanner.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/engine/admobEngine.d.ts +71 -0
  218. package/lib/typescript/commonjs/engine/admobEngine.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/engine/admobErrors.d.ts +9 -0
  220. package/lib/typescript/commonjs/engine/admobErrors.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/engine/port.d.ts +171 -0
  222. package/lib/typescript/commonjs/engine/port.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/engine/testAdUnits.d.ts +33 -0
  224. package/lib/typescript/commonjs/engine/testAdUnits.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/index.d.ts +42 -0
  226. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  227. package/lib/typescript/commonjs/package.json +1 -0
  228. package/lib/typescript/commonjs/react/AdsBanner.d.ts +29 -0
  229. package/lib/typescript/commonjs/react/AdsBanner.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/react/AdsProvider.d.ts +36 -0
  231. package/lib/typescript/commonjs/react/AdsProvider.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/react/hooks.d.ts +27 -0
  233. package/lib/typescript/commonjs/react/hooks.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/testing/clock.d.ts +29 -0
  235. package/lib/typescript/commonjs/testing/clock.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/testing/conformance.d.ts +26 -0
  237. package/lib/typescript/commonjs/testing/conformance.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/testing/index.d.ts +133 -0
  239. package/lib/typescript/commonjs/testing/index.d.ts.map +1 -0
  240. package/lib/typescript/module/config/resolveAdUnit.d.ts +43 -0
  241. package/lib/typescript/module/config/resolveAdUnit.d.ts.map +1 -0
  242. package/lib/typescript/module/config/types.d.ts +280 -0
  243. package/lib/typescript/module/config/types.d.ts.map +1 -0
  244. package/lib/typescript/module/config/validate.d.ts +49 -0
  245. package/lib/typescript/module/config/validate.d.ts.map +1 -0
  246. package/lib/typescript/module/core/adOriginatedReturn.d.ts +61 -0
  247. package/lib/typescript/module/core/adOriginatedReturn.d.ts.map +1 -0
  248. package/lib/typescript/module/core/adsInstance.d.ts +33 -0
  249. package/lib/typescript/module/core/adsInstance.d.ts.map +1 -0
  250. package/lib/typescript/module/core/consentFlow.d.ts +84 -0
  251. package/lib/typescript/module/core/consentFlow.d.ts.map +1 -0
  252. package/lib/typescript/module/core/enablement.d.ts +74 -0
  253. package/lib/typescript/module/core/enablement.d.ts.map +1 -0
  254. package/lib/typescript/module/core/fullScreenLock.d.ts +25 -0
  255. package/lib/typescript/module/core/fullScreenLock.d.ts.map +1 -0
  256. package/lib/typescript/module/core/gates.d.ts +76 -0
  257. package/lib/typescript/module/core/gates.d.ts.map +1 -0
  258. package/lib/typescript/module/core/initMachine.d.ts +66 -0
  259. package/lib/typescript/module/core/initMachine.d.ts.map +1 -0
  260. package/lib/typescript/module/core/instance/consent.d.ts +4 -0
  261. package/lib/typescript/module/core/instance/consent.d.ts.map +1 -0
  262. package/lib/typescript/module/core/instance/context.d.ts +118 -0
  263. package/lib/typescript/module/core/instance/context.d.ts.map +1 -0
  264. package/lib/typescript/module/core/instance/gate.d.ts +38 -0
  265. package/lib/typescript/module/core/instance/gate.d.ts.map +1 -0
  266. package/lib/typescript/module/core/instance/init.d.ts +13 -0
  267. package/lib/typescript/module/core/instance/init.d.ts.map +1 -0
  268. package/lib/typescript/module/core/instance/internals.d.ts +60 -0
  269. package/lib/typescript/module/core/instance/internals.d.ts.map +1 -0
  270. package/lib/typescript/module/core/instance/load.d.ts +9 -0
  271. package/lib/typescript/module/core/instance/load.d.ts.map +1 -0
  272. package/lib/typescript/module/core/instance/show.d.ts +7 -0
  273. package/lib/typescript/module/core/instance/show.d.ts.map +1 -0
  274. package/lib/typescript/module/core/instance/types.d.ts +240 -0
  275. package/lib/typescript/module/core/instance/types.d.ts.map +1 -0
  276. package/lib/typescript/module/core/placementMachine.d.ts +55 -0
  277. package/lib/typescript/module/core/placementMachine.d.ts.map +1 -0
  278. package/lib/typescript/module/core/privacyGate.d.ts +40 -0
  279. package/lib/typescript/module/core/privacyGate.d.ts.map +1 -0
  280. package/lib/typescript/module/core/requestThrottle.d.ts +99 -0
  281. package/lib/typescript/module/core/requestThrottle.d.ts.map +1 -0
  282. package/lib/typescript/module/core/retryPolicy.d.ts +66 -0
  283. package/lib/typescript/module/core/retryPolicy.d.ts.map +1 -0
  284. package/lib/typescript/module/core/rewardedSession.d.ts +37 -0
  285. package/lib/typescript/module/core/rewardedSession.d.ts.map +1 -0
  286. package/lib/typescript/module/core/timers.d.ts +135 -0
  287. package/lib/typescript/module/core/timers.d.ts.map +1 -0
  288. package/lib/typescript/module/diagnostics/correlation.d.ts +18 -0
  289. package/lib/typescript/module/diagnostics/correlation.d.ts.map +1 -0
  290. package/lib/typescript/module/diagnostics/errors.d.ts +59 -0
  291. package/lib/typescript/module/diagnostics/errors.d.ts.map +1 -0
  292. package/lib/typescript/module/diagnostics/events.d.ts +126 -0
  293. package/lib/typescript/module/diagnostics/events.d.ts.map +1 -0
  294. package/lib/typescript/module/engine/admobBanner.d.ts +10 -0
  295. package/lib/typescript/module/engine/admobBanner.d.ts.map +1 -0
  296. package/lib/typescript/module/engine/admobEngine.d.ts +71 -0
  297. package/lib/typescript/module/engine/admobEngine.d.ts.map +1 -0
  298. package/lib/typescript/module/engine/admobErrors.d.ts +9 -0
  299. package/lib/typescript/module/engine/admobErrors.d.ts.map +1 -0
  300. package/lib/typescript/module/engine/port.d.ts +171 -0
  301. package/lib/typescript/module/engine/port.d.ts.map +1 -0
  302. package/lib/typescript/module/engine/testAdUnits.d.ts +33 -0
  303. package/lib/typescript/module/engine/testAdUnits.d.ts.map +1 -0
  304. package/lib/typescript/module/index.d.ts +42 -0
  305. package/lib/typescript/module/index.d.ts.map +1 -0
  306. package/lib/typescript/module/package.json +1 -0
  307. package/lib/typescript/module/react/AdsBanner.d.ts +29 -0
  308. package/lib/typescript/module/react/AdsBanner.d.ts.map +1 -0
  309. package/lib/typescript/module/react/AdsProvider.d.ts +36 -0
  310. package/lib/typescript/module/react/AdsProvider.d.ts.map +1 -0
  311. package/lib/typescript/module/react/hooks.d.ts +27 -0
  312. package/lib/typescript/module/react/hooks.d.ts.map +1 -0
  313. package/lib/typescript/module/testing/clock.d.ts +29 -0
  314. package/lib/typescript/module/testing/clock.d.ts.map +1 -0
  315. package/lib/typescript/module/testing/conformance.d.ts +26 -0
  316. package/lib/typescript/module/testing/conformance.d.ts.map +1 -0
  317. package/lib/typescript/module/testing/index.d.ts +133 -0
  318. package/lib/typescript/module/testing/index.d.ts.map +1 -0
  319. package/package.json +48 -12
  320. package/skills/sdk-rn-ads/SKILL.md +2 -1
  321. package/src/core/adsInstance.ts +72 -1829
  322. package/src/core/consentFlow.ts +1 -20
  323. package/src/core/instance/consent.ts +162 -0
  324. package/src/core/instance/context.ts +328 -0
  325. package/src/core/instance/gate.ts +147 -0
  326. package/src/core/instance/init.ts +262 -0
  327. package/src/core/instance/internals.ts +138 -0
  328. package/src/core/instance/load.ts +426 -0
  329. package/src/core/instance/show.ts +202 -0
  330. package/src/core/instance/types.ts +198 -0
  331. package/src/core/requestThrottle.ts +11 -17
  332. package/src/diagnostics/errors.ts +24 -5
  333. package/src/engine/admobBanner.tsx +55 -0
  334. package/src/engine/admobEngine.ts +21 -12
  335. package/src/engine/admobErrors.ts +44 -0
  336. package/src/engine/port.ts +46 -1
  337. package/src/engine/testAdUnits.ts +0 -5
  338. package/src/react/AdsBanner.tsx +81 -80
  339. package/src/testing/clock.ts +75 -0
  340. package/src/testing/index.ts +43 -68
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The AdMob adaptive banner behind the engine port (ADS-12).
5
+ *
6
+ * `AdsBanner` renders whatever banner component the engine offers and passes
7
+ * neutral props; this file is where they become AdMob's. So the banner host no
8
+ * longer requires the bridge itself, a fake engine can render a banner in a test
9
+ * without mocking a native module, and an iOS or other-provider engine supplies
10
+ * its own component.
11
+ */
12
+ import React from 'react';
13
+ import { classifyProviderFailure } from "./admobErrors.js";
14
+
15
+ /** The slice of the bridge the banner uses. */
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ export function createAdMobBanner(getProvider) {
18
+ function AdMobBanner({
19
+ adUnitId,
20
+ personalizedAds,
21
+ onLoaded,
22
+ onFailed,
23
+ onImpression,
24
+ onClicked
25
+ }) {
26
+ const provider = getProvider();
27
+ const BannerAd = provider?.BannerAd;
28
+ if (!BannerAd) {
29
+ return null;
30
+ }
31
+ return /*#__PURE__*/_jsx(BannerAd, {
32
+ unitId: adUnitId
33
+ // Adaptive, so the banner fills the container the app measured (FR-038).
34
+ ,
35
+ size: provider.BannerAdSize?.ANCHORED_ADAPTIVE_BANNER
36
+ // The provider's polarity is the inverse of the consumer-facing option.
37
+ ,
38
+ requestOptions: {
39
+ requestNonPersonalizedAdsOnly: !personalizedAds
40
+ },
41
+ onAdLoaded: () => onLoaded(),
42
+ onAdFailedToLoad: error => onFailed(error, classifyProviderFailure(error)),
43
+ onAdImpression: () => onImpression(),
44
+ onAdClicked: () => onClicked()
45
+ });
46
+ }
47
+ return {
48
+ isAvailable: () => Boolean(getProvider()?.BannerAd),
49
+ Component: AdMobBanner
50
+ };
51
+ }
52
+ //# sourceMappingURL=admobBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","classifyProviderFailure","jsx","_jsx","createAdMobBanner","getProvider","AdMobBanner","adUnitId","personalizedAds","onLoaded","onFailed","onImpression","onClicked","provider","BannerAd","unitId","size","BannerAdSize","ANCHORED_ADAPTIVE_BANNER","requestOptions","requestNonPersonalizedAdsOnly","onAdLoaded","onAdFailedToLoad","error","onAdImpression","onAdClicked","isAvailable","Boolean","Component"],"sourceRoot":"../../../src","sources":["engine/admobBanner.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,uBAAuB,QAAQ,kBAAe;;AAGvD;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMA,OAAO,SAASC,iBAAiBA,CAACC,WAA8C,EAAgB;EAC/F,SAASC,WAAWA,CAAC;IACpBC,QAAQ;IACRC,eAAe;IACfC,QAAQ;IACRC,QAAQ;IACRC,YAAY;IACZC;EACkB,CAAC,EAAE;IACrB,MAAMC,QAAQ,GAAGR,WAAW,CAAC,CAAC;IAC9B,MAAMS,QAAQ,GAAGD,QAAQ,EAAEC,QAAQ;IACnC,IAAI,CAACA,QAAQ,EAAE;MACd,OAAO,IAAI;IACZ;IACA,oBACCX,IAAA,CAACW,QAAQ;MACRC,MAAM,EAAER;MACR;MAAA;MACAS,IAAI,EAAEH,QAAQ,CAACI,YAAY,EAAEC;MAC7B;MAAA;MACAC,cAAc,EAAE;QAAEC,6BAA6B,EAAE,CAACZ;MAAgB,CAAE;MACpEa,UAAU,EAAEA,CAAA,KAAMZ,QAAQ,CAAC,CAAE;MAC7Ba,gBAAgB,EAAGC,KAAc,IAAKb,QAAQ,CAACa,KAAK,EAAEtB,uBAAuB,CAACsB,KAAK,CAAC,CAAE;MACtFC,cAAc,EAAEA,CAAA,KAAMb,YAAY,CAAC,CAAE;MACrCc,WAAW,EAAEA,CAAA,KAAMb,SAAS,CAAC;IAAE,CAC/B,CAAC;EAEJ;EAEA,OAAO;IACNc,WAAW,EAAEA,CAAA,KAAMC,OAAO,CAACtB,WAAW,CAAC,CAAC,EAAES,QAAQ,CAAC;IACnDc,SAAS,EAAEtB;EACZ,CAAC;AACF","ignoreList":[]}
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Default AdsEngine adapter for Google AdMob on Android.
5
+ *
6
+ * **This is the only module in the package that knows an ad provider exists.**
7
+ * It lazily requires `react-native-google-mobile-ads`, mirroring
8
+ * `packages/rn-camera/src/native/cameraEngine.ts`, so unit tests that inject the
9
+ * fake never load native code and an unsupported platform never loads it at all.
10
+ *
11
+ * Targets bridge 16.0.3, whose ads SDK (24.9.0) predates the Kotlin 2.3 metadata
12
+ * bump that makes newer releases uncompilable under React Native 0.85's pinned
13
+ * Kotlin compiler — see specs/011-rn-advertising-sdk/research.md (R2).
14
+ *
15
+ * Ordering note: `setRequestConfiguration` must run *before* `initialize`, or
16
+ * the child-directed and under-age flags do not take effect. That is why FR-020
17
+ * treats a later change as requiring re-initialization rather than pretending it
18
+ * applied.
19
+ */
20
+
21
+ import { lazyPeer } from '@chipmobilesdk/rn-core';
22
+ import { Platform } from 'react-native';
23
+ import { normalizeReward } from "../diagnostics/events.js";
24
+ import { createAdMobBanner } from "./admobBanner.js";
25
+ import { classifyProviderFailure } from "./admobErrors.js";
26
+
27
+ /** The slice of the bridge this adapter uses. Kept local so nothing else sees it. */
28
+
29
+ /** The slice of the bridge's consent module this adapter uses. */
30
+
31
+ /**
32
+ * The provider's geography enum is numeric and its spelling is the provider's.
33
+ * Translating here rather than in `core/` is the same rule the rest of this file
34
+ * follows: the one module that knows a provider exists is the one that speaks
35
+ * its vocabulary.
36
+ */
37
+ function toProviderGeography(geography, values) {
38
+ switch (geography) {
39
+ case 'eea':
40
+ return values.EEA;
41
+ case 'not_eea':
42
+ return values.NOT_EEA;
43
+ case 'regulated_us_state':
44
+ return values.REGULATED_US_STATE;
45
+ case 'other':
46
+ return values.OTHER;
47
+ case 'disabled':
48
+ return values.DISABLED;
49
+ default:
50
+ return undefined;
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Normalizes the provider's consent shape into the engine's.
56
+ *
57
+ * `canRequestAds` is taken as reported and never inferred from the status: the
58
+ * provider is the authority on whether a request is permitted, and second-
59
+ * guessing it here is how a package ends up requesting ads it should not
60
+ * (FR-106, FR-107).
61
+ */
62
+ function toEngineConsentInfo(info) {
63
+ const status = String(info.status ?? 'UNKNOWN').toUpperCase();
64
+ const normalized = status === 'OBTAINED' ? 'obtained' : status === 'REQUIRED' ? 'required' : status === 'NOT_REQUIRED' ? 'not_required' : 'unknown';
65
+ return {
66
+ status: normalized,
67
+ canRequestAds: info.canRequestAds === true,
68
+ isFormAvailable: info.isConsentFormAvailable === true,
69
+ privacyOptions: toEnginePrivacyOptions(info.privacyOptionsRequirementStatus)
70
+ };
71
+ }
72
+
73
+ /**
74
+ * Same rule as the status: an unrecognized value is `unknown`, never a guess in
75
+ * either direction (FR-150).
76
+ */
77
+ function toEnginePrivacyOptions(value) {
78
+ switch (String(value ?? 'UNKNOWN').toUpperCase()) {
79
+ case 'REQUIRED':
80
+ return 'required';
81
+ case 'NOT_REQUIRED':
82
+ return 'not_required';
83
+ default:
84
+ return 'unknown';
85
+ }
86
+ }
87
+
88
+ /**
89
+ * The provider bridge, loaded on first use (rn-core's lazy peer). It is a required
90
+ * peer, but a consumer can still have it missing mid-install or excluded from a
91
+ * build: reporting `provider_missing` beats crashing the host app's launch
92
+ * (FR-025, NFR-005). The banner component reaches it through the same loader.
93
+ */
94
+ export const admobProvider = lazyPeer('react-native-google-mobile-ads', () => {
95
+ // Inside `try`, so Metro bundles an app that leaves this optional peer out.
96
+ try {
97
+ return require('react-native-google-mobile-ads');
98
+ } catch (cause) {
99
+ throw cause;
100
+ }
101
+ });
102
+ function loadProvider() {
103
+ const result = admobProvider.get();
104
+ return result.ok ? result.module : null;
105
+ }
106
+ function toProviderRating(rating, ratings) {
107
+ return rating ? ratings[rating] : undefined;
108
+ }
109
+
110
+ /** One unsubscribe covering every listener that was actually registered. */
111
+ function makeUnsubscribe(removers) {
112
+ let active = true;
113
+ return () => {
114
+ if (!active) {
115
+ return;
116
+ }
117
+ active = false;
118
+ for (const remove of removers) {
119
+ try {
120
+ remove();
121
+ } catch {
122
+ // A provider that throws on removal must not prevent the rest of
123
+ // cleanup from running (FR-035).
124
+ }
125
+ }
126
+ };
127
+ }
128
+ export function createAdMobEngine() {
129
+ // v1 is Android-only. On any other platform this stays null and every
130
+ // operation resolves to `unsupported_platform` (SC-004, scenario 12).
131
+ const supported = Platform.OS === 'android';
132
+ let provider = null;
133
+ let providerResolved = false;
134
+ function getProvider() {
135
+ if (!supported) {
136
+ return null;
137
+ }
138
+ if (!providerResolved) {
139
+ providerResolved = true;
140
+ provider = loadProvider();
141
+ }
142
+ return provider;
143
+ }
144
+
145
+ // The format is kept alongside the ad because the provider validates which
146
+ // event types a given ad object accepts, and rejects the rewarded ones on an
147
+ // interstitial by throwing (see `subscribe`).
148
+ const ads = new Map();
149
+ let counter = 0;
150
+ return {
151
+ isAvailable() {
152
+ return supported && getProvider() !== null;
153
+ },
154
+ // The adaptive banner renders through the engine like every other format
155
+ // (ADS-12), so the banner host never names the provider.
156
+ banner: createAdMobBanner(getProvider),
157
+ async initialize(privacy) {
158
+ const module = getProvider();
159
+ if (!module) {
160
+ throw new Error('provider_missing');
161
+ }
162
+ const mobileAds = module.MobileAds();
163
+
164
+ // Before initialize(), deliberately. See the ordering note above.
165
+ await mobileAds.setRequestConfiguration({
166
+ tagForChildDirectedTreatment: privacy.childDirected,
167
+ tagForUnderAgeOfConsent: privacy.underAgeOfConsent,
168
+ maxAdContentRating: toProviderRating(privacy.maxAdContentRating, module.MaxAdContentRating),
169
+ testDeviceIdentifiers: privacy.testDeviceIds ? [...privacy.testDeviceIds] : undefined
170
+ });
171
+ await mobileAds.initialize();
172
+ },
173
+ async createFullScreen(format, adUnitId, request) {
174
+ const module = getProvider();
175
+ if (!module) {
176
+ throw new Error('provider_missing');
177
+ }
178
+ const factory = format === 'rewarded' ? module.RewardedAd : format === 'app_open' ? module.AppOpenAd : module.InterstitialAd;
179
+ const ad = factory.createForAdRequest(adUnitId, {
180
+ // The consumer-facing polarity is `personalizedAds`; the provider's
181
+ // is the inverse. The flip lives here, next to the API needing it.
182
+ requestNonPersonalizedAdsOnly: request?.personalizedAds === false
183
+ });
184
+ counter += 1;
185
+ const id = `admob-${counter}`;
186
+ ads.set(id, {
187
+ ad,
188
+ format
189
+ });
190
+ // The provider loads asynchronously; callbacks arrive through subscribe.
191
+ ad.load();
192
+ return {
193
+ id
194
+ };
195
+ },
196
+ async show(handle) {
197
+ const entry = ads.get(handle.id);
198
+ if (!entry) {
199
+ throw new Error('ad handle disposed');
200
+ }
201
+ await entry.ad.show();
202
+ },
203
+ subscribe(handle, listener) {
204
+ const module = getProvider();
205
+ const entry = ads.get(handle.id);
206
+ if (!module || !entry) {
207
+ return () => undefined;
208
+ }
209
+ const {
210
+ ad,
211
+ format
212
+ } = entry;
213
+ const {
214
+ AdEventType,
215
+ RewardedAdEventType
216
+ } = module;
217
+ const removers = [];
218
+ const on = (type, map) => {
219
+ if (!type) {
220
+ return;
221
+ }
222
+ try {
223
+ removers.push(ad.addAdEventListener(type, payload => {
224
+ const event = map(payload);
225
+ if (event) {
226
+ listener(event);
227
+ }
228
+ }));
229
+ } catch {
230
+ // The provider validates event types per ad object and throws on
231
+ // one it does not accept. Skipping the listener keeps a single
232
+ // rejected type from tearing down the whole subscription — which
233
+ // would fail the load outright while the ad went on to load fine,
234
+ // reporting a `provider_error` for an ad that was never broken.
235
+ }
236
+ };
237
+ on(AdEventType.LOADED, () => ({
238
+ type: 'loaded'
239
+ }));
240
+ on(AdEventType.ERROR, cause => ({
241
+ type: 'failed',
242
+ cause,
243
+ kind: classifyProviderFailure(cause)
244
+ }));
245
+ on(AdEventType.OPENED, () => ({
246
+ type: 'opened'
247
+ }));
248
+ on(AdEventType.CLICKED, () => ({
249
+ type: 'clicked'
250
+ }));
251
+ on(AdEventType.CLOSED, () => ({
252
+ type: 'dismissed'
253
+ }));
254
+
255
+ // Rewarded-only, and gated on the format because the provider REJECTS
256
+ // these types on an interstitial. The rewarded loaded event is distinct
257
+ // from AdEventType.LOADED, and EARNED_REWARD is distinct from CLOSED —
258
+ // which is precisely what makes FR-046 and FR-048 enforceable rather
259
+ // than a guess about ordering.
260
+ if (format !== 'rewarded') {
261
+ return makeUnsubscribe(removers);
262
+ }
263
+ on(RewardedAdEventType.LOADED, () => ({
264
+ type: 'loaded'
265
+ }));
266
+ on(RewardedAdEventType.EARNED_REWARD, payload => ({
267
+ type: 'rewarded',
268
+ reward: normalizeReward(payload)
269
+ }));
270
+ return makeUnsubscribe(removers);
271
+ },
272
+ dispose(handle) {
273
+ ads.delete(handle.id);
274
+ },
275
+ consent: createAdMobConsent(getProvider)
276
+ };
277
+ }
278
+
279
+ /**
280
+ * The consent platform adapter.
281
+ *
282
+ * It is deliberately thin. Every decision that could be made here — whether a
283
+ * region requires consent, whether an error means "no", whether a dismissed form
284
+ * counts — is made elsewhere or not at all: the provider owns the first, and
285
+ * `core/consentFlow.ts` owns the second and third. This file's only job is to
286
+ * call the right method and hand back a shape that names nothing Google.
287
+ */
288
+ function createAdMobConsent(getProvider) {
289
+ function requireConsent() {
290
+ const module = getProvider();
291
+ if (!module?.AdsConsent) {
292
+ throw new Error('provider_missing');
293
+ }
294
+ return module.AdsConsent;
295
+ }
296
+ return {
297
+ async requestInfoUpdate(options) {
298
+ const module = getProvider();
299
+ if (!module?.AdsConsent) {
300
+ throw new Error('provider_missing');
301
+ }
302
+ const debugGeography = toProviderGeography(options.debugGeography, module.AdsConsentDebugGeography ?? {});
303
+ const info = await module.AdsConsent.requestInfoUpdate({
304
+ // Passing `undefined` rather than omitting keeps the call shape
305
+ // stable; the bridge treats an absent value as "no override".
306
+ debugGeography,
307
+ tagForUnderAgeOfConsent: options.underAgeOfConsent,
308
+ testDeviceIdentifiers: options.testDeviceIds ? [...options.testDeviceIds] : undefined
309
+ });
310
+ return toEngineConsentInfo(info);
311
+ },
312
+ async showFormIfRequired() {
313
+ // The provider decides whether a form is needed and renders it. The
314
+ // package never draws consent UI of its own (FR-103).
315
+ const info = await requireConsent().loadAndShowConsentFormIfRequired();
316
+ return toEngineConsentInfo(info);
317
+ },
318
+ async showPrivacyOptionsForm() {
319
+ // Present in the pinned bridge 16.0.3, so no range change (FR-155).
320
+ // Resolves with the consent information as it stands once the form
321
+ // closes, whether the user changed anything or not.
322
+ const info = await requireConsent().showPrivacyOptionsForm();
323
+ return toEngineConsentInfo(info);
324
+ },
325
+ async getInfo() {
326
+ return toEngineConsentInfo(await requireConsent().getConsentInfo());
327
+ },
328
+ reset() {
329
+ requireConsent().reset();
330
+ }
331
+ };
332
+ }
333
+ export { classifyProviderFailure } from "./admobErrors.js";
334
+ //# sourceMappingURL=admobEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["lazyPeer","Platform","normalizeReward","createAdMobBanner","classifyProviderFailure","toProviderGeography","geography","values","EEA","NOT_EEA","REGULATED_US_STATE","OTHER","DISABLED","undefined","toEngineConsentInfo","info","status","String","toUpperCase","normalized","canRequestAds","isFormAvailable","isConsentFormAvailable","privacyOptions","toEnginePrivacyOptions","privacyOptionsRequirementStatus","value","admobProvider","require","cause","loadProvider","result","get","ok","module","toProviderRating","rating","ratings","makeUnsubscribe","removers","active","remove","createAdMobEngine","supported","OS","provider","providerResolved","getProvider","ads","Map","counter","isAvailable","banner","initialize","privacy","Error","mobileAds","MobileAds","setRequestConfiguration","tagForChildDirectedTreatment","childDirected","tagForUnderAgeOfConsent","underAgeOfConsent","maxAdContentRating","MaxAdContentRating","testDeviceIdentifiers","testDeviceIds","createFullScreen","format","adUnitId","request","factory","RewardedAd","AppOpenAd","InterstitialAd","ad","createForAdRequest","requestNonPersonalizedAdsOnly","personalizedAds","id","set","load","show","handle","entry","subscribe","listener","AdEventType","RewardedAdEventType","on","type","map","push","addAdEventListener","payload","event","LOADED","ERROR","kind","OPENED","CLICKED","CLOSED","EARNED_REWARD","reward","dispose","delete","consent","createAdMobConsent","requireConsent","AdsConsent","requestInfoUpdate","options","debugGeography","AdsConsentDebugGeography","showFormIfRequired","loadAndShowConsentFormIfRequired","showPrivacyOptionsForm","getInfo","getConsentInfo","reset"],"sourceRoot":"../../../src","sources":["engine/admobEngine.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * AdMob's error vocabulary, translated into the port's neutral failure kinds
5
+ * (ADS-08). Shared by the full-screen engine and the banner component, which
6
+ * are the only two places that see a provider error.
7
+ */
8
+
9
+ /**
10
+ * The bridge's error codes that say the provider refused the request itself, so
11
+ * that asking again cannot help (ADS-08). Kept to codes the bridge has reported
12
+ * the same way across releases. `internal-error` is deliberately absent: AdMob
13
+ * uses it for an invalid server response too, which a later request can survive.
14
+ */
15
+ const REJECTED_CODES = new Set(['invalid-request', 'invalid-argument', 'app-id-missing', 'request-id-mismatch']);
16
+
17
+ /** The bridge's code for an error: `error.code`, or the `[googleMobileAds/<code>]` prefix. */
18
+ function providerCodeOf(cause) {
19
+ const code = cause?.code;
20
+ if (typeof code === 'string') {
21
+ return code.replace(/^googleMobileAds\//, '');
22
+ }
23
+ const message = cause instanceof Error ? cause.message : typeof cause === 'string' ? cause : '';
24
+ return /\[googleMobileAds\/([a-z-]+)\]/.exec(message)?.[1] ?? null;
25
+ }
26
+
27
+ /** Classifies a provider failure in neutral terms; undefined when it cannot tell. */
28
+ export function classifyProviderFailure(cause) {
29
+ const code = providerCodeOf(cause);
30
+ if (code === null) {
31
+ return undefined;
32
+ }
33
+ if (code === 'no-fill' || code === 'mediation-no-fill') {
34
+ return 'no_fill';
35
+ }
36
+ if (code === 'network-error') {
37
+ return 'network';
38
+ }
39
+ return REJECTED_CODES.has(code) ? 'rejected' : undefined;
40
+ }
41
+ //# sourceMappingURL=admobErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["REJECTED_CODES","Set","providerCodeOf","cause","code","replace","message","Error","exec","classifyProviderFailure","undefined","has"],"sourceRoot":"../../../src","sources":["engine/admobErrors.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,cAAmC,GAAG,IAAIC,GAAG,CAAC,CACnD,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,CACrB,CAAC;;AAEF;AACA,SAASC,cAAcA,CAACC,KAAc,EAAiB;EACtD,MAAMC,IAAI,GAAID,KAAK,EAAgCC,IAAI;EACvD,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC7B,OAAOA,IAAI,CAACC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;EAC9C;EACA,MAAMC,OAAO,GAAGH,KAAK,YAAYI,KAAK,GAAGJ,KAAK,CAACG,OAAO,GAAG,OAAOH,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,EAAE;EAC/F,OAAO,gCAAgC,CAACK,IAAI,CAACF,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;AACnE;;AAEA;AACA,OAAO,SAASG,uBAAuBA,CAACN,KAAc,EAAiC;EACtF,MAAMC,IAAI,GAAGF,cAAc,CAACC,KAAK,CAAC;EAClC,IAAIC,IAAI,KAAK,IAAI,EAAE;IAClB,OAAOM,SAAS;EACjB;EACA,IAAIN,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,mBAAmB,EAAE;IACvD,OAAO,SAAS;EACjB;EACA,IAAIA,IAAI,KAAK,eAAe,EAAE;IAC7B,OAAO,SAAS;EACjB;EACA,OAAOJ,cAAc,CAACW,GAAG,CAACP,IAAI,CAAC,GAAG,UAAU,GAAGM,SAAS;AACzD","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["engine/port.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Google's official test ad units (FR-013).
5
+ *
6
+ * PRIVATE. Never exported from `src/index.ts`.
7
+ *
8
+ * FR-013 forbids the package from carrying production identifiers, credentials,
9
+ * or host-app rules, and explicitly permits official test identifiers provided
10
+ * they are documented as such — this file is that documentation.
11
+ *
12
+ * They are hard-coded rather than read from configuration on purpose: FR-011's
13
+ * substitution guarantee must hold even when the app's configuration is the
14
+ * thing that is wrong, so it cannot depend on the app supplying anything. They
15
+ * are also not re-exported from the provider bridge's own `TestIds`, because
16
+ * that would put a provider symbol on this package's dependency path for a
17
+ * value that is really just four documented constants (FR-002).
18
+ *
19
+ * Source: Google Mobile Ads "Test ads" documentation, cross-checked against the
20
+ * bridge's `src/TestIds.ts` at version 16.0.3. These identifiers are public,
21
+ * are the same for every publisher, and always fill.
22
+ */
23
+
24
+ /** Android. iOS units are added alongside these when the iOS adapter lands (FR-006). */
25
+ const ANDROID_TEST_AD_UNITS = {
26
+ // The adaptive-banner unit, not the fixed-size one, because adaptive is the
27
+ // format this package actually requests (FR-038).
28
+ banner: 'ca-app-pub-3940256099942544/9214589741',
29
+ interstitial: 'ca-app-pub-3940256099942544/1033173712',
30
+ rewarded: 'ca-app-pub-3940256099942544/5224354917',
31
+ // Added in 0.2.0 alongside the app-open format. Cross-checked against the
32
+ // bridge's own `TestIds.APP_OPEN` at 16.0.3.
33
+ app_open: 'ca-app-pub-3940256099942544/9257395921'
34
+ };
35
+ export function testAdUnitFor(format) {
36
+ return ANDROID_TEST_AD_UNITS[format];
37
+ }
38
+
39
+ /**
40
+ * Whether an identifier is one of ours.
41
+ *
42
+ * This is the structural test that drives substitution: anything that is not a
43
+ * known official test unit is treated as production-owned. Deliberately not a
44
+ * parse of AdMob's publisher-id format — a rule like that becomes wrong the day
45
+ * Google changes the format, and being wrong here means either sending a
46
+ * production request or blocking a legitimate one.
47
+ */
48
+ export function isOfficialTestAdUnit(adUnitId) {
49
+ for (const value of Object.values(ANDROID_TEST_AD_UNITS)) {
50
+ if (value === adUnitId) {
51
+ return true;
52
+ }
53
+ }
54
+ return false;
55
+ }
56
+ //# sourceMappingURL=testAdUnits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ANDROID_TEST_AD_UNITS","banner","interstitial","rewarded","app_open","testAdUnitFor","format","isOfficialTestAdUnit","adUnitId","value","Object","values"],"sourceRoot":"../../../src","sources":["engine/testAdUnits.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA,MAAMA,qBAAyD,GAAG;EACjE;EACA;EACAC,MAAM,EAAE,wCAAwC;EAChDC,YAAY,EAAE,wCAAwC;EACtDC,QAAQ,EAAE,wCAAwC;EAClD;EACA;EACAC,QAAQ,EAAE;AACX,CAAC;AAED,OAAO,SAASC,aAAaA,CAACC,MAAgB,EAAU;EACvD,OAAON,qBAAqB,CAACM,MAAM,CAAC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACC,QAAgB,EAAW;EAC/D,KAAK,MAAMC,KAAK,IAAIC,MAAM,CAACC,MAAM,CAACX,qBAAqB,CAAC,EAAE;IACzD,IAAIS,KAAK,KAAKD,QAAQ,EAAE;MACvB,OAAO,IAAI;IACZ;EACD;EACA,OAAO,KAAK;AACb","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * @chipmobilesdk/rn-ads — reusable advertising capability for
5
+ * ChipMobileSdk-family React Native apps.
6
+ *
7
+ * This is the public entrypoint (LIB-003). Modules under `config/`, `core/`,
8
+ * `engine/`, `react/`, and `diagnostics/` are private; import them only through
9
+ * this file. The fake engine lives behind `@chipmobilesdk/rn-ads/testing` so
10
+ * test doubles cannot reach a production bundle.
11
+ *
12
+ * Nothing exported here names Google, AdMob, or any provider type (FR-002).
13
+ * `src/__tests__/public-api.test.ts` asserts that mechanically.
14
+ *
15
+ * The package owns capability: a safe, consistent way to request and present
16
+ * ads. The consuming app owns policy — where ads appear, when, how often, under
17
+ * what consent, and whether they appear at all. There is no placement rule, no
18
+ * frequency cap, and no screen name in this package (FR-045).
19
+ */
20
+
21
+ import { createAds as createInstance } from "./core/adsInstance.js";
22
+ import { createAdMobEngine } from "./engine/admobEngine.js";
23
+
24
+ // Configuration and state
25
+
26
+ export { isFullScreenFormat } from "./config/types.js";
27
+
28
+ // Timeout policy — exported so a consumer can read the defaults it is bound by
29
+ // rather than discovering them from a timeout in production (FR-032).
30
+ export { AD_VALIDITY_BOUNDS, APP_OPEN_VALIDITY_BOUNDS, DEFAULT_AD_VALIDITY_MS, DEFAULT_APP_OPEN_VALIDITY_MS, DEFAULT_LOAD_TIMEOUT_MS, DEFAULT_RETRY_POLICY, DEFAULT_SHOW_TIMEOUT_MS, DEFAULT_UNDECIDED_WARNING_MS, LOAD_TIMEOUT_BOUNDS, RETRY_BOUNDS, SHOW_TIMEOUT_BOUNDS, UNDECIDED_WARNING_BOUNDS } from "./core/timers.js";
31
+
32
+ // Request throttle — account safety, added in 0.3.0 (FR-140). Exported so an app
33
+ // can read the floor it is bound by, and so the format-aware default is legible
34
+ // rather than something to discover from a `throttled` state in production.
35
+ export { DEFAULT_BANNER_MIN_REQUEST_INTERVAL_MS, DEFAULT_FULL_SCREEN_MIN_REQUEST_INTERVAL_MS, MIN_REQUEST_INTERVAL_BOUNDS, defaultMinRequestIntervalMs } from "./core/requestThrottle.js";
36
+
37
+ // Enablement. `EnablementResult` is what `setEnabled` returns in place of
38
+ // 0.1.0's `void` — the defect that let a re-enable fail in silence (FR-122).
39
+
40
+ // Instance, lifecycle, and results
41
+
42
+ /**
43
+ * Creates an ads instance. This is the composition root: core's instance with
44
+ * the AdMob adapter as its default engine, so core/ itself never loads an
45
+ * adapter (ADS-14). The adapter resolves the provider bridge only on first use,
46
+ * so importing the package where there is no adapter, or no bridge, costs
47
+ * nothing and crashes nothing (FR-025, SC-004).
48
+ */
49
+ export function createAds(config, options = {}) {
50
+ return createInstance(config, options, createAdMobEngine);
51
+ }
52
+ // React surface
53
+ export { AdsBanner } from "./react/AdsBanner.js";
54
+ export { AdsProvider, useAds } from "./react/AdsProvider.js";
55
+ export { useAdsEvents, useAdsStatus, usePlacementState } from "./react/hooks.js";
56
+
57
+ // Diagnostics
58
+ export { AdsConfigError, AdsError, isAdsError } from "./diagnostics/errors.js";
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAds","createInstance","createAdMobEngine","isFullScreenFormat","AD_VALIDITY_BOUNDS","APP_OPEN_VALIDITY_BOUNDS","DEFAULT_AD_VALIDITY_MS","DEFAULT_APP_OPEN_VALIDITY_MS","DEFAULT_LOAD_TIMEOUT_MS","DEFAULT_RETRY_POLICY","DEFAULT_SHOW_TIMEOUT_MS","DEFAULT_UNDECIDED_WARNING_MS","LOAD_TIMEOUT_BOUNDS","RETRY_BOUNDS","SHOW_TIMEOUT_BOUNDS","UNDECIDED_WARNING_BOUNDS","DEFAULT_BANNER_MIN_REQUEST_INTERVAL_MS","DEFAULT_FULL_SCREEN_MIN_REQUEST_INTERVAL_MS","MIN_REQUEST_INTERVAL_BOUNDS","defaultMinRequestIntervalMs","config","options","AdsBanner","AdsProvider","useAds","useAdsEvents","useAdsStatus","usePlacementState","AdsConfigError","AdsError","isAdsError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SACCA,SAAS,IAAIC,cAAc,QAGrB,uBAAoB;AAC3B,SAASC,iBAAiB,QAAQ,yBAAsB;;AAExD;;AAuBA,SAASC,kBAAkB,QAAQ,mBAAgB;;AAEnD;AACA;AACA,SACCC,kBAAkB,EAClBC,wBAAwB,EACxBC,sBAAsB,EACtBC,4BAA4B,EAC5BC,uBAAuB,EACvBC,oBAAoB,EACpBC,uBAAuB,EACvBC,4BAA4B,EAC5BC,mBAAmB,EACnBC,YAAY,EACZC,mBAAmB,EACnBC,wBAAwB,QAClB,kBAAe;;AAEtB;AACA;AACA;AACA,SACCC,sCAAsC,EACtCC,2CAA2C,EAC3CC,2BAA2B,EAC3BC,2BAA2B,QACrB,2BAAwB;;AAE/B;AACA;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASnB,SAASA,CAACoB,MAAiB,EAAEC,OAAyB,GAAG,CAAC,CAAC,EAAe;EACzF,OAAOpB,cAAc,CAACmB,MAAM,EAAEC,OAAO,EAAEnB,iBAAiB,CAAC;AAC1D;AAWA;AACA,SAASoB,SAAS,QAAQ,sBAAmB;AAE7C,SAASC,WAAW,EAAEC,MAAM,QAAQ,wBAAqB;AAEzD,SAASC,YAAY,EAAEC,YAAY,EAAEC,iBAAiB,QAAQ,kBAAe;;AAE7E;AACA,SAASC,cAAc,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,yBAAsB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}