@ad-execute-manager/ad-reward 2.0.6 → 2.1.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.
@@ -113,7 +113,11 @@ declare class RewardAdFather {
113
113
  options?: import("./typings/ad.js").IAdOptions;
114
114
  collection?: CallbackCollection;
115
115
  }): Promise<ITaskResultGeneric<T> | undefined>;
116
- destroy(): void;
116
+ /**
117
+ * 销毁广告实例
118
+ * @param {boolean} preserved 是否保留广告实例
119
+ */
120
+ destroy(preserved?: boolean): void;
117
121
  /**
118
122
  * 清理广告实例
119
123
  * @abstract 清理广告实例,子类必须实现此方法
@@ -50,11 +50,36 @@ declare class RewardAdNovel extends RewardAdFather {
50
50
  * @returns {RewardAdNovel}
51
51
  */
52
52
  static "new"(args: IConstructArgs): RewardAdNovel;
53
- _onHalfway: any;
54
- _onShow: any;
55
- _onFinish: any;
56
- _onAlways: any;
57
- _onError: any;
53
+ /**
54
+ * @private 内部方法请勿使用,如需要请使用.onHalfway()替代
55
+ * @description 广告中途退出回调
56
+ * 初始化广告实例.new()中传入的参数args.collection.onHalfway回调
57
+ */
58
+ private _onHalfway;
59
+ /**
60
+ * @private 内部方法请勿使用,如需要请使用.onShow()替代
61
+ * @description 广告展示回调
62
+ * 初始化广告实例.new()中传入的参数args.collection.onShow回调
63
+ */
64
+ private _onShow;
65
+ /**
66
+ * @private 内部方法请勿使用,如需要请使用.onFinish()替代
67
+ * @description 广告执行成功回调
68
+ * 初始化广告实例.new()中传入的参数args.collection.onFinish回调
69
+ */
70
+ private _onFinish;
71
+ /**
72
+ * @private 内部方法请勿使用,如需要请使用.onAlways()替代
73
+ * @description 广告执行成功回调
74
+ * 初始化广告实例.new()中传入的参数args.collection.onAlways回调
75
+ */
76
+ private _onAlways;
77
+ /**
78
+ * @private 内部方法请勿使用,如需要请使用.onError()替代
79
+ * @description 广告执行失败回调
80
+ * 初始化广告实例.new()中传入的参数args.collection.onError回调
81
+ */
82
+ private _onError;
58
83
  _alwaysCallback: any;
59
84
  _halfwayCallback: any;
60
85
  _finishedCallback: any;
@@ -72,12 +97,38 @@ declare class RewardAdNovel extends RewardAdFather {
72
97
  _lookUpRemainOnError: boolean;
73
98
  /** @deprecated TODO 移除 */
74
99
  _needSpeedEndOnTimeout: boolean;
75
- bindAdCloseLister: any;
76
- bindAdErrorLister: any;
77
- bindAdLoadLister: any;
78
- bindApiAdErrorLister: any;
79
- _bindShiftCloseLister: any;
80
- _bindShiftErrorLister: any;
100
+ /**
101
+ * @private
102
+ */
103
+ private bindAdCloseLister;
104
+ /**
105
+ * @private 内部方法请勿使用
106
+ */
107
+ private bindAdErrorLister;
108
+ /**
109
+ * @private 内部方法请勿使用
110
+ */
111
+ private bindAdLoadLister;
112
+ /**
113
+ * @private 内部方法请勿使用
114
+ */
115
+ private bindApiAdErrorLister;
116
+ /**
117
+ * @private 内部方法请勿使用
118
+ */
119
+ private _bindShiftCloseLister;
120
+ /**
121
+ * @private 内部方法请勿使用
122
+ */
123
+ private _bindShiftErrorLister;
124
+ /**
125
+ * @private 内部方法请勿使用
126
+ */
127
+ private bindAdTimeoutCloseLister;
128
+ /**
129
+ * @private 内部方法请勿使用
130
+ */
131
+ private bindAdTimeoutErrorLister;
81
132
  /**
82
133
  * 初始化
83
134
  * 子类可以选择覆盖此方法,或使用默认实现
@@ -114,11 +165,13 @@ declare class RewardAdNovel extends RewardAdFather {
114
165
  * @param {string} args.scene 广告执行场景 必填
115
166
  * @param {number} [args.timeout] 广告超时时间 单位ms
116
167
  * @param {Function} args.end 结束当前广告任务的回调函数 必填
168
+ * @param {boolean} [args.preserved] 是否在超时情况下保留广告实例 - 自用参数,非tt API要求的参数
117
169
  */
118
170
  _setAdTimeout(args: {
119
171
  scene: string;
120
172
  timeout?: number;
121
173
  end: Function;
174
+ preserved?: boolean;
122
175
  }): void;
123
176
  /**
124
177
  * 子类可以选择覆盖此方法
@@ -259,6 +312,7 @@ declare class RewardAdNovel extends RewardAdFather {
259
312
  recovered?: import("./typings/ad.js").RecoveredInfo;
260
313
  }, next?: Function): Promise<object | undefined>;
261
314
  _recovered: import("./typings/ad.js").RecoveredInfo;
315
+ _preservedOnTimeout: boolean;
262
316
  /**
263
317
  * @param {object} [ctx] 广告执行上下文
264
318
  * @param {object} [ctx.options] 广告执行选项
@@ -293,9 +347,88 @@ declare class RewardAdNovel extends RewardAdFather {
293
347
  * @returns
294
348
  */
295
349
  adShow(): Promise<void>;
296
- _outerCloseCallback(args: any): void;
297
- _outerHalfwayCallback(args: any): void;
298
- _outerFinishedCallback(args: any): void;
350
+ /**
351
+ * @deprecated - 已废弃,使用onExeAlways代替
352
+ * - 关闭广告时候调用的回调,不管是否看完视频都会调用
353
+ * - 调用adExecuteManager时collection.always回调
354
+ * @param {Array.<unknown>} args
355
+ */
356
+ _outerCloseCallback(...args: Array<unknown>): any;
357
+ /**
358
+ * - 关闭广告时候调用的回调 不管是否看完视频都会调用
359
+ * - 调用adExecuteManager时collection.always回调
360
+ * @param {Array.<unknown>} args
361
+ */
362
+ onExeAlways(...args: Array<unknown>): any;
363
+ /**
364
+ * @deprecated 已废弃,使用onExeHalfway代替
365
+ * - 广告未看完时候调用的回调
366
+ * - 调用adExecuteManager时collection.halfway回调
367
+ * @param {Array.<unknown>} args
368
+ */
369
+ _outerHalfwayCallback(...args: Array<unknown>): any;
370
+ /**
371
+ * - 广告未看完时候调用的回调
372
+ * - 调用adExecuteManager时collection.halfway回调
373
+ * @param {Array.<unknown>} args
374
+ */
375
+ onExeHalfway(...args: Array<unknown>): any;
376
+ /**
377
+ * @deprecated 已废弃,使用onExeFinished代替
378
+ * - 广告看完时候调用的回调
379
+ * - 调用adExecuteManager时collection.finished回调
380
+ * @param {Array.<unknown>} args
381
+ */
382
+ _outerFinishedCallback(...args: Array<unknown>): any;
383
+ /**
384
+ * - 广告看完时候调用的回调
385
+ * - 调用adExecuteManager时collection.finished回调
386
+ * @param {Array.<unknown>} args
387
+ */
388
+ onExeFinished(...args: Array<unknown>): any;
389
+ /**
390
+ * @description 广告中途退出回调
391
+ * 初始化广告实例.new()中传入的参数args.collection.onHalfway回调
392
+ * @param {Array.<unknown>} args
393
+ */
394
+ onFinish(...args: Array<unknown>): any;
395
+ /**
396
+ *
397
+ * @description 广告展示回调
398
+ * 初始化广告实例.new()中传入的参数args.collection.onShow回调
399
+ * @param {Array.<unknown>} args
400
+ */
401
+ onHalfway(...args: Array<unknown>): any;
402
+ /**
403
+ * @description 广告展示回调
404
+ * 初始化广告实例.new()中传入的参数args.collection.onAlways回调
405
+ * @param {Array.<unknown>} args
406
+ */
407
+ onAlways(...args: Array<unknown>): any;
408
+ /**
409
+ * 内部关闭激励视频
410
+ * @private
411
+ * @param {ICloseArgs} args
412
+ */
413
+ private __adTimeoutCloseLister__;
414
+ /**
415
+ * 子类可以选择覆盖此方法
416
+ * @param {*} args
417
+ * @returns
418
+ */
419
+ adTimeoutCloseLister(args: any): any;
420
+ /**
421
+ * 内部关闭激励视频
422
+ * @private
423
+ * @param {*} e
424
+ */
425
+ private __adTimeoutErrorLister__;
426
+ /**
427
+ * 子类可以选择覆盖此方法
428
+ * @param {*} e
429
+ * @returns
430
+ */
431
+ adTimeoutErrorLister(e: any): any;
299
432
  /**
300
433
  * 内部关闭激励视频
301
434
  * @private
@@ -361,7 +494,12 @@ declare class RewardAdNovel extends RewardAdFather {
361
494
  * @param {unknown} e
362
495
  */
363
496
  protected adLoadLister(e: unknown): unknown;
364
- adDestroy(): void;
497
+ /**
498
+ * 销毁广告实例
499
+ * @protected
500
+ * @param {boolean} preserved 是否保留广告实例
501
+ */
502
+ protected adDestroy(preserved?: boolean): void;
365
503
  _shiftCloseLister(args: any): void;
366
504
  _shiftErrorLister(args: any): void;
367
505
  /**
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,r)=>{for(var i in r)__webpack_require__.o(r,i)&&!__webpack_require__.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AdExecuteManager:()=>core_namespaceObject.AdExecuteManager,RewardAdFather:()=>src_RewardAdFather,RewardAdNovel:()=>src_RewardAdNovel});const core_namespaceObject=require("@ad-execute-manager/core"),logger_namespaceObject=require("@ad-execute-manager/logger"),serializable_error_namespaceObject=require("@ad-execute-manager/serializable-error");class RewardAdFather{static args=null;_logger=null;_adTimeoutTime=8e3;_initSign="";_preserveOnEnd=!1;_rewardAd=null;__ad__=null;_ttErrorMsgs=["The adUnitId is closed","The adUnitId is prohibit","The adUnitId is invalid","The adUnitId is required","The adUnitId is empty","feature is not supported in app"];_ttErrorCodes=[139902,123302];__bindAdErrorForeverHandler=this.__adErrorForeverHandler.bind(this);constructor(e){this._logger=new logger_namespaceObject.Logger({prefix:"RewardAdFather",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._preserveOnEnd=(null==e?void 0:e.preserveOnEnd)??!1}initialize(e,r){if(this._rewardAd)return this._logger.warn("rewardAd has been initialized"),null==r||r(this._rewardAd),this;let i=Object.assign({},RewardAdFather.args,this._adConfig,e);if(!i.adUnitId)throw this._logger.error("reward args The adUnitId is required",i),new serializable_error_namespaceObject.SerializableError("[RewardAdFather] reward args The adUnitId is required",{errMsg:"The adUnitId is required",errorCode:100002});let t=tt.createRewardedVideoAd(i);return this._logger.info("bindAdErrorForeverHandler at initialized:",null==e?void 0:e.foreverErrorBind),(null==e?void 0:e.foreverErrorBind)&&(null==t||t.offError(this.__bindAdErrorForeverHandler),null==t||t.onError(this.__bindAdErrorForeverHandler)),this._rewardAd=t,this.__ad__=t,null==r||r(this._rewardAd),this}initialized(){return!!this._rewardAd}__adErrorForeverHandler(e){this.adErrorForeverHandler(e)}adErrorForeverHandler(e){return null}async ad(e,r=null){throw Error("子类必须实现ad方法")}async addExecuteManager(e){let r=Object.assign({},this._adConfig,(null==e?void 0:e.options)??{});return RewardAdFather.executeWithManager(this,Object.assign({},e,{options:r}))}destroy(){this._rewardAd&&!this._preserveOnEnd&&(this._rewardAd.destroy(),this._rewardAd=null)}clear(){throw Error("子类必须实现clear方法")}record(e){return this}onClose(e){this._rewardAd&&this._rewardAd.onClose(e)}offClose(e){this._rewardAd&&this._rewardAd.offClose(e)}show(){return this._rewardAd?this._rewardAd.show():Promise.reject({errMsg:"[RewardAdFather] can not show,rewardAd is null",errorCode:110001})}load(){return this._rewardAd?this._rewardAd.load():Promise.reject({errMsg:"[RewardAdFather] can not load,rewardAd is null",errorCode:110002})}onError(e){this._rewardAd&&this._rewardAd.onError(e)}offError(e){this._rewardAd&&this._rewardAd.offError(e)}onLoad(e){this._rewardAd&&this._rewardAd.onLoad(e)}offLoad(e){this._rewardAd&&this._rewardAd.offLoad(e)}placeholder(){return null}static buildArgs(e){(null==e?void 0:e.adUnitId)||new logger_namespaceObject.Logger({prefix:"RewardAdFather",enable:!0}).error("RewardParams.adUnitId is required"),RewardAdFather.args=e}static async executeWithManager(e,r){return e&&e instanceof RewardAdFather?core_namespaceObject.AdExecuteManager.getInstance().addTask(e,r):(new logger_namespaceObject.Logger({prefix:"RewardAdFather",enable:!0}).error("executeWithManager - 无效的广告实例"),Promise.reject(Error("无效的广告实例")))}}const src_RewardAdFather=RewardAdFather;function matchErrorWithKeywords(e,r){return!!r&&e.some(e=>RegExp(e,"i").test(r))}function getAdSceneTextObj(e){return Object.entries(e).reduce((e,[r,i])=>(e[i]=Number(r),e),{})}const DEFAULT_SCENT_TYPE_OBJ={9999:"inner_default_other"},DEFAULT_SCENT_TEXT_OBJ=getAdSceneTextObj(DEFAULT_SCENT_TYPE_OBJ),AD_TYPE_ENUM={AD_TYPE_REWARD:1,AD_TYPE_INTERSTITIAL:2},AD_TYPE_ENUM_REVERSE=Object.entries(AD_TYPE_ENUM).reduce((e,[r,i])=>(e[i]=r,e),{});class RewardAdNovel extends src_RewardAdFather{_onHalfway=null;_onShow=null;_onFinish=null;_onAlways=null;_onError=null;_logger=null;_initSign="";_alwaysCallback=null;_halfwayCallback=null;_finishedCallback=null;_resolve=null;_next=null;_scene=DEFAULT_SCENT_TEXT_OBJ.inner_default_other;_adTypeR=AD_TYPE_ENUM.AD_TYPE_REWARD;_adTimeout=null;_adTimeoutTime=8e3;_adBeforeShowTimer=null;_adBeforeShowTime=300;_adSpeedCloseTimer=null;_adSpeedCloseTime=5e3;_needEndOnTimeout=!0;_lookUpRemainOnError=!1;_needSpeedEndOnTimeout=!1;bindAdCloseLister=this.__adCloseLister__.bind(this);bindAdErrorLister=this.__adErrorLister__.bind(this);bindAdLoadLister=this.__adLoadLister__.bind(this);bindApiAdErrorLister=this.__apiAdErrorLister__.bind(this);_bindShiftCloseLister=this._shiftCloseLister.bind(this);_bindShiftErrorLister=this._shiftErrorLister.bind(this);constructor(e){var r,i,t,l,s;super(e),this._logger=new logger_namespaceObject.Logger({prefix:"RewardAdNovel",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._needEndOnTimeout=(null==e?void 0:e.needEndOnTimeout)??!0,this._lookUpRemainOnError=(null==e?void 0:e.lookUpRemainOnError)??!1,this._onHalfway=(null==e||null==(r=e.collection)?void 0:r.onHalfway)??null,this._onShow=(null==e||null==(i=e.collection)?void 0:i.onShow)??null,this._onFinish=(null==e||null==(t=e.collection)?void 0:t.onFinish)??null,this._onAlways=(null==e||null==(l=e.collection)?void 0:l.onAlways)??null,this._onError=(null==e||null==(s=e.collection)?void 0:s.onError)??null}initialize(e,r){return super.initialize(e,r),this._initAdLister(),this._initNovelConfig(e),this}_initAdLister(){this.onClose(this.bindAdCloseLister),this.onError(this.bindAdErrorLister),this.onLoad(this.bindAdLoadLister),tt.onError(this.bindApiAdErrorLister)}_initNovelConfig(e){this.novelConfig=RewardAdNovelConfig.new({retry:null==e?void 0:e.retry})}_onInnerExecuteBefore(){return null}_onInnerAdShowSuccess(e){return null}_setAdTimeout(e){if(this._needSpeedEndOnTimeout&&(this._adSpeedCloseTimer=setTimeout(()=>{if("ios"==tt.getSystemInfoSync().platform){let r=()=>{tt.offAppShow(r),this._logger.warn("ad_show_timeout: ios platform close ad onAppShow, handling fallback ad case, scene:",null==e?void 0:e.scene);let i="ad_show_timeout: ios platform close ad onAppShow";this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:i,errorCode:1e5,result:0}),this._adTimeout&&clearTimeout(this._adTimeout),null==e||e.end({resolvedValue:{apiError:{errMsg:i,errorCode:1e5}},nextValue:null})};tt.onAppShow(r)}clearTimeout(this._adSpeedCloseTimer)},this._adSpeedCloseTime)),this._needEndOnTimeout){let r=(null==e?void 0:e.timeout)??this._adTimeoutTime;this._adTimeout=setTimeout(()=>{this._logger.warn("Ad show timeout, handling fallback ad case,",`scene: ${null==e?void 0:e.scene},timeout: ${r}`),this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:"ad_show_timeout: normal",errorCode:1e5,result:0}),this._adTimeoutBeforeEnd({scene:null==e?void 0:e.scene,timeout:r}),null==e||e.end({resolvedValue:{apiError:{errMsg:`ad_show_timeout: normal, reward ad, timeout: ${r}`,errorCode:1e5,timeout:r}},nextValue:null})},r)}}_adTimeoutBeforeEnd(e){return e}_adPreludeInterval(e){var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()}),this._adBeforeShowTimer=setInterval(()=>{var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()})},this._adBeforeShowTime)}_clearAdTimeout(){this._adTimeout&&(clearTimeout(this._adTimeout),this._adTimeout=null),this._adBeforeShowTimer&&(clearInterval(this._adBeforeShowTimer),this._adBeforeShowTimer=null),this._adSpeedCloseTimer&&(clearTimeout(this._adSpeedCloseTimer),this._adSpeedCloseTimer=null)}_adShowBeforeAnalytics(e){return null}_adShowSuccessAnalytics(e){return null}_adShowFailureAnalytics(e){return null}_adLoadSuccessAnalytics(e){return null}_adLoadFailureAnalytics(e){return null}_adCloseSuccessAnalytics(e){return null}get rewardAd(){return this._rewardAd}ad(e,r=null){var i,t,l;return this._alwaysCallback=null==e||null==(i=e.collection)?void 0:i.always,this._halfwayCallback=null==e||null==(t=e.collection)?void 0:t.halfway,this._finishedCallback=null==e||null==(l=e.collection)?void 0:l.finished,this._recovered=null==e?void 0:e.recovered,this._onInnerExecuteBefore(),new Promise(i=>{var t,l,s,n,o;this._adInner({options:{scene:null==e||null==(t=e.options)?void 0:t.scene,timeout:null==e||null==(l=e.options)?void 0:l.timeout},collection:{resolve:i,before:null==(s=e.collection)?void 0:s.before,success:null==(n=e.collection)?void 0:n.success,prelude:null==(o=e.collection)?void 0:o.prelude},recovered:e.recovered},r)})}_adInner(e,r=null){var i,t,l,s,n;let o=null==e||null==(i=e.collection)?void 0:i.resolve,a=(null==e||null==(t=e.options)?void 0:t.scene)??this._scene??DEFAULT_SCENT_TEXT_OBJ.inner_default_other,d=null==e||null==(l=e.collection)?void 0:l.before,_=null==e||null==(s=e.collection)?void 0:s.success,h=null==e||null==(n=e.collection)?void 0:n.prelude,u=(null==e?void 0:e.recovered)??this._recovered,c=e=>{this._clearAdTimeout(),this.adDestroy(),null==o||o(Object.assign({scene:a,adTypeR:this._adTypeR},null==e?void 0:e.resolvedValue)),null==r||r(Object.assign({scene:a},null==e?void 0:e.nextValue))},f=()=>{var i,t;this._scene=a,null==d||d({scene:a}),this._before=d,null==(i=this._onShow)||i.call(this,{scene:a}),this._adShowBeforeAnalytics({scene:a}),this._resolve=o,this._next=r,this._setAdTimeout({scene:a,end:c,timeout:null==e||null==(t=e.options)?void 0:t.timeout}),this._adPreludeInterval({scene:a,prelude:h}),this.adShow().then(()=>{this._clearAdTimeout(),null==_||_({scene:a}),this._success=_,this._adShowSuccessAnalytics({scene:a,result:1,recovered:u}),this._onInnerAdShowSuccess({scene:a,result:1,recovered:u})}).catch(e=>{(this._clearAdTimeout(),this._adShowFailureAnalytics({scene:a,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),matchErrorWithKeywords(this._ttErrorMsgs,null==e?void 0:e.errMsg)||this._ttErrorCodes.includes(null==e?void 0:e.errorCode))?c({scene:a,resolvedValue:{apiError:e},nextValue:null}):0>=this.novelConfig.remain()?c({scene:a,resolvedValue:{apiError:{errMsg:`[RewardAdNovel]: no remain, remain: ${this.novelConfig.remain()}, retry: ${this.novelConfig.frequency.total},
2
- tt: {errMsg: ${null==e?void 0:e.errMsg}, errorCode: ${null==e?void 0:e.errorCode}}`,errorCode:1e5}},nextValue:null}):(this.novelConfig.updateRetry(),this.adLoad().then(()=>{this._adLoadSuccessAnalytics({scene:a,result:1,frequency:this.novelConfig.frequency}),f()}).catch(e=>{this._adLoadFailureAnalytics({scene:a,msg:null==e?void 0:e.errMsg,result:0}),c({scene:a,resolvedValue:{apiError:e},nextValue:null})}))})};f()}adLoad(){return this.load()}adShow(){return this.show()}_outerCloseCallback(e){var r;null==(r=this._alwaysCallback)||r.call(this,e)}_outerHalfwayCallback(e){var r;null==(r=this._halfwayCallback)||r.call(this,e)}_outerFinishedCallback(e){var r;null==(r=this._finishedCallback)||r.call(this,e)}__adCloseLister__(e){this._clearAdTimeout(),this._adCloseSuccessAnalytics({scene:this._scene,ad_is_completed:+!!e.isEnded,ad_count:e.count});let r=Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR,end_type:e.isEnded?"finished":"halfway"}),i=e=>{var i,t;this.adDestroy(),null==(i=this._resolve)||i.call(this,Object.assign({},r,e)),this._resolve=null,null==(t=this._next)||t.call(this),this._next=null,this._success=null,this._before=null},t=e=>{var i,t,l;let s=Object.assign({},r,e);(null==s?void 0:s.isEnded)?(this._outerFinishedCallback(s),null==(t=this._onFinish)||t.call(this,s)):(this._outerHalfwayCallback(s),null==(l=this._onHalfway)||l.call(this,s)),this._outerCloseCallback(s),null==(i=this._onAlways)||i.call(this,s)};this.adCloseLister(r,{conn:t,end:i})}adCloseLister(e,r){var i,t;null==r||null==(i=r.conn)||i.call(r,e),null==r||null==(t=r.end)||t.call(r,e)}__adErrorLister__(e){this._clearAdTimeout(),this._logger.error("adErrorLister",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.adErrorLister(e);let r=()=>{var r,i,t;this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(t=this._next)||t.call(this),this._next=null,this._success=null,this._before=null};(!this._lookUpRemainOnError||0>=this.novelConfig.remain())&&r()}adErrorLister(e){return e}__apiAdErrorLister__(e){var r,i,t;this._clearAdTimeout(),this._logger.error("API apiAdErrorLister:",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.apiAdErrorLister(e),this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(t=this._next)||t.call(this),this._next=null,this._success=null,this._before=null}apiAdErrorLister(e){return e}__adLoadLister__(e){this._adLoadSuccessAnalytics({scene:this._scene,result:1,msg:null==e?void 0:e.errMsg}),this._logger.info("adLoadLister:",JSON.stringify({scene:this._scene,info:e})),this.adLoadLister(e)}adLoadLister(e){return e}adDestroy(){this.offClose(this.bindAdCloseLister),this.offError(this.bindAdErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.destroy()}clear(){this._clearAdTimeout(),this.offClose(this.bindAdCloseLister),this.offClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.destroy(),this._resolve=null,this._next=null,this._success=null,this._before=null}_shiftCloseLister(e){var r,i;this._clearAdTimeout(),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.offClose(this._bindShiftCloseLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}_shiftErrorLister(e){var r,i;this._clearAdTimeout(),this.offClose(this._bindShiftCloseLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.offError(this._bindShiftErrorLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}shift(){this.offClose(this.bindAdCloseLister),this.onClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.onError(this._bindShiftErrorLister)}static build(e){return RewardAdNovel.instance||(RewardAdNovel.instance=new RewardAdNovel(e)),RewardAdNovel.instance}static getInstance(){if(!RewardAdNovel.instance)throw Error("RewardAdNovel instance is not init");return RewardAdNovel.instance}static new(e){return new RewardAdNovel(e)}}class RewardAdNovelConfig{frequency={total:0,current:0};constructor(e){this._init(e)}_init(e){this._adTimes(e)}_adTimes(e){this.frequency.total=(null==e?void 0:e.retry)??4}reset(){this.frequency.current=0}updateRetry(){this.frequency.current=this.frequency.current+1}remain(){return this.frequency.total-this.frequency.current}static new(e){return new RewardAdNovelConfig(e)}}const src_RewardAdNovel=RewardAdNovel;for(var __rspack_i in exports.AdExecuteManager=__webpack_exports__.AdExecuteManager,exports.RewardAdFather=__webpack_exports__.RewardAdFather,exports.RewardAdNovel=__webpack_exports__.RewardAdNovel,__webpack_exports__)-1===["AdExecuteManager","RewardAdFather","RewardAdNovel"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,r)=>{for(var i in r)__webpack_require__.o(r,i)&&!__webpack_require__.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{AdExecuteManager:()=>core_namespaceObject.AdExecuteManager,RewardAdFather:()=>src_RewardAdFather,RewardAdNovel:()=>src_RewardAdNovel});const core_namespaceObject=require("@ad-execute-manager/core"),logger_namespaceObject=require("@ad-execute-manager/logger"),serializable_error_namespaceObject=require("@ad-execute-manager/serializable-error");class RewardAdFather{static args=null;_logger=null;_adTimeoutTime=8e3;_initSign="";_preserveOnEnd=!1;_rewardAd=null;__ad__=null;_ttErrorMsgs=["The adUnitId is closed","The adUnitId is prohibit","The adUnitId is invalid","The adUnitId is required","The adUnitId is empty","feature is not supported in app"];_ttErrorCodes=[139902,123302];__bindAdErrorForeverHandler=this.__adErrorForeverHandler.bind(this);constructor(e){this._logger=new logger_namespaceObject.Logger({prefix:"RewardAdFather",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._preserveOnEnd=(null==e?void 0:e.preserveOnEnd)??!1}initialize(e,r){if(this._rewardAd)return this._logger.warn("rewardAd has been initialized"),null==r||r(this._rewardAd),this;let i=Object.assign({},RewardAdFather.args,this._adConfig,e);if(!i.adUnitId)throw this._logger.error("reward args The adUnitId is required",i),new serializable_error_namespaceObject.SerializableError("[RewardAdFather] reward args The adUnitId is required",{errMsg:"The adUnitId is required",errorCode:100002});let t=tt.createRewardedVideoAd(i);return this._logger.info("bindAdErrorForeverHandler at initialized:",null==e?void 0:e.foreverErrorBind),(null==e?void 0:e.foreverErrorBind)&&(null==t||t.offError(this.__bindAdErrorForeverHandler),null==t||t.onError(this.__bindAdErrorForeverHandler)),this._rewardAd=t,this.__ad__=t,null==r||r(this._rewardAd),this}initialized(){return!!this._rewardAd}__adErrorForeverHandler(e){this.adErrorForeverHandler(e)}adErrorForeverHandler(e){return null}async ad(e,r=null){throw Error("子类必须实现ad方法")}async addExecuteManager(e){let r=Object.assign({},this._adConfig,(null==e?void 0:e.options)??{});return RewardAdFather.executeWithManager(this,Object.assign({},e,{options:r}))}destroy(e=!1){!this._rewardAd||this._preserveOnEnd||e||(this._rewardAd.destroy(),this._rewardAd=null)}clear(){throw Error("子类必须实现clear方法")}record(e){return this}onClose(e){this._rewardAd&&this._rewardAd.onClose(e)}offClose(e){this._rewardAd&&this._rewardAd.offClose(e)}show(){return this._rewardAd?this._rewardAd.show():Promise.reject({errMsg:"[RewardAdFather] can not show,rewardAd is null",errorCode:110001})}load(){return this._rewardAd?this._rewardAd.load():Promise.reject({errMsg:"[RewardAdFather] can not load,rewardAd is null",errorCode:110002})}onError(e){this._rewardAd&&this._rewardAd.onError(e)}offError(e){this._rewardAd&&this._rewardAd.offError(e)}onLoad(e){this._rewardAd&&this._rewardAd.onLoad(e)}offLoad(e){this._rewardAd&&this._rewardAd.offLoad(e)}placeholder(){return null}static buildArgs(e){(null==e?void 0:e.adUnitId)||new logger_namespaceObject.Logger({prefix:"RewardAdFather",enable:!0}).error("RewardParams.adUnitId is required"),RewardAdFather.args=e}static async executeWithManager(e,r){return e&&e instanceof RewardAdFather?core_namespaceObject.AdExecuteManager.getInstance().addTask(e,r):(new logger_namespaceObject.Logger({prefix:"RewardAdFather",enable:!0}).error("executeWithManager - 无效的广告实例"),Promise.reject(Error("无效的广告实例")))}}const src_RewardAdFather=RewardAdFather;function matchErrorWithKeywords(e,r){return!!r&&e.some(e=>RegExp(e,"i").test(r))}function getAdSceneTextObj(e){return Object.entries(e).reduce((e,[r,i])=>(e[i]=Number(r),e),{})}const DEFAULT_SCENT_TYPE_OBJ={9999:"inner_default_other"},DEFAULT_SCENT_TEXT_OBJ=getAdSceneTextObj(DEFAULT_SCENT_TYPE_OBJ),AD_TYPE_ENUM={AD_TYPE_REWARD:1,AD_TYPE_INTERSTITIAL:2},AD_TYPE_ENUM_REVERSE=Object.entries(AD_TYPE_ENUM).reduce((e,[r,i])=>(e[i]=r,e),{});class RewardAdNovel extends src_RewardAdFather{_onHalfway=null;_onShow=null;_onFinish=null;_onAlways=null;_onError=null;_logger=null;_initSign="";_alwaysCallback=null;_halfwayCallback=null;_finishedCallback=null;_resolve=null;_next=null;_scene=DEFAULT_SCENT_TEXT_OBJ.inner_default_other;_adTypeR=AD_TYPE_ENUM.AD_TYPE_REWARD;_adTimeout=null;_adTimeoutTime=8e3;_adBeforeShowTimer=null;_adBeforeShowTime=300;_adSpeedCloseTimer=null;_adSpeedCloseTime=5e3;_needEndOnTimeout=!0;_lookUpRemainOnError=!1;_needSpeedEndOnTimeout=!1;bindAdCloseLister=this.__adCloseLister__.bind(this);bindAdErrorLister=this.__adErrorLister__.bind(this);bindAdLoadLister=this.__adLoadLister__.bind(this);bindApiAdErrorLister=this.__apiAdErrorLister__.bind(this);_bindShiftCloseLister=this._shiftCloseLister.bind(this);_bindShiftErrorLister=this._shiftErrorLister.bind(this);bindAdTimeoutCloseLister=this.__adTimeoutCloseLister__.bind(this);bindAdTimeoutErrorLister=this.__adTimeoutErrorLister__.bind(this);constructor(e){var r,i,t,l,s;super(e),this._logger=new logger_namespaceObject.Logger({prefix:"RewardAdNovel",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._needEndOnTimeout=(null==e?void 0:e.needEndOnTimeout)??!0,this._lookUpRemainOnError=(null==e?void 0:e.lookUpRemainOnError)??!1,this._onHalfway=(null==e||null==(r=e.collection)?void 0:r.onHalfway)??null,this._onShow=(null==e||null==(i=e.collection)?void 0:i.onShow)??null,this._onFinish=(null==e||null==(t=e.collection)?void 0:t.onFinish)??null,this._onAlways=(null==e||null==(l=e.collection)?void 0:l.onAlways)??null,this._onError=(null==e||null==(s=e.collection)?void 0:s.onError)??null}initialize(e,r){return super.initialize(e,r),this._initAdLister(),this._initNovelConfig(e),this}_initAdLister(){this.onClose(this.bindAdCloseLister),this.onError(this.bindAdErrorLister),this.onLoad(this.bindAdLoadLister),tt.onError(this.bindApiAdErrorLister)}_initNovelConfig(e){this.novelConfig=RewardAdNovelConfig.new({retry:null==e?void 0:e.retry})}_onInnerExecuteBefore(){return null}_onInnerAdShowSuccess(e){return null}_setAdTimeout(e){if(this._needSpeedEndOnTimeout&&(this._adSpeedCloseTimer=setTimeout(()=>{if("ios"==tt.getSystemInfoSync().platform){let r=()=>{tt.offAppShow(r),this._logger.warn("ad_show_timeout: ios platform close ad onAppShow, handling fallback ad case, scene:",null==e?void 0:e.scene);let i="ad_show_timeout: ios platform close ad onAppShow";this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:i,errorCode:1e5,result:0}),this._adTimeout&&clearTimeout(this._adTimeout),null==e||e.end({resolvedValue:{apiError:{errMsg:i,errorCode:1e5}},nextValue:null})};tt.onAppShow(r)}clearTimeout(this._adSpeedCloseTimer)},this._adSpeedCloseTime)),this._needEndOnTimeout){let r=(null==e?void 0:e.timeout)??this._adTimeoutTime;this._adTimeout=setTimeout(()=>{this._logger.warn("Ad show timeout, handling fallback ad case,",`scene: ${null==e?void 0:e.scene},timeout: ${r}`),this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:"ad_show_timeout: normal",errorCode:1e5,result:0}),this._adTimeoutBeforeEnd({scene:null==e?void 0:e.scene,timeout:r}),this.onClose(this.bindAdTimeoutCloseLister),this.onError(this.bindAdTimeoutErrorLister),null==e||e.end({preserved:null==e?void 0:e.preserved,resolvedValue:{apiError:{errMsg:`ad_show_timeout: normal, reward ad, timeout: ${r}`,errorCode:1e5,timeout:r}},nextValue:null})},r)}}_adTimeoutBeforeEnd(e){return e}_adPreludeInterval(e){var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()}),this._adBeforeShowTimer=setInterval(()=>{var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()})},this._adBeforeShowTime)}_clearAdTimeout(){this._adTimeout&&(clearTimeout(this._adTimeout),this._adTimeout=null),this._adBeforeShowTimer&&(clearInterval(this._adBeforeShowTimer),this._adBeforeShowTimer=null),this._adSpeedCloseTimer&&(clearTimeout(this._adSpeedCloseTimer),this._adSpeedCloseTimer=null)}_adShowBeforeAnalytics(e){return null}_adShowSuccessAnalytics(e){return null}_adShowFailureAnalytics(e){return null}_adLoadSuccessAnalytics(e){return null}_adLoadFailureAnalytics(e){return null}_adCloseSuccessAnalytics(e){return null}get rewardAd(){return this._rewardAd}ad(e,r=null){var i,t,l,s;return this._alwaysCallback=null==e||null==(i=e.collection)?void 0:i.always,this._halfwayCallback=null==e||null==(t=e.collection)?void 0:t.halfway,this._finishedCallback=null==e||null==(l=e.collection)?void 0:l.finished,this._recovered=null==e?void 0:e.recovered,this._preservedOnTimeout=null==e||null==(s=e.options)?void 0:s.preservedOnTimeout,this._onInnerExecuteBefore(),new Promise(i=>{var t,l,s,n,o;this._adInner({options:{scene:null==e||null==(t=e.options)?void 0:t.scene,timeout:null==e||null==(l=e.options)?void 0:l.timeout},collection:{resolve:i,before:null==(s=e.collection)?void 0:s.before,success:null==(n=e.collection)?void 0:n.success,prelude:null==(o=e.collection)?void 0:o.prelude},recovered:e.recovered},r)})}_adInner(e,r=null){var i,t,l,s,n;let o=null==e||null==(i=e.collection)?void 0:i.resolve,a=(null==e||null==(t=e.options)?void 0:t.scene)??this._scene??DEFAULT_SCENT_TEXT_OBJ.inner_default_other,d=null==e||null==(l=e.collection)?void 0:l.before,_=null==e||null==(s=e.collection)?void 0:s.success,h=null==e||null==(n=e.collection)?void 0:n.prelude,u=(null==e?void 0:e.recovered)??this._recovered,c=e=>{this._clearAdTimeout(),this.adDestroy(null==e?void 0:e.preserved),null==o||o(Object.assign({scene:a,adTypeR:this._adTypeR},null==e?void 0:e.resolvedValue)),null==r||r(Object.assign({scene:a},null==e?void 0:e.nextValue))},f=()=>{var i,t;this._scene=a,null==d||d({scene:a}),this._before=d,null==(i=this._onShow)||i.call(this,{scene:a}),this._adShowBeforeAnalytics({scene:a}),this._resolve=o,this._next=r,this._setAdTimeout({scene:a,end:c,timeout:null==e||null==(t=e.options)?void 0:t.timeout,preserved:this._preservedOnTimeout}),this._adPreludeInterval({scene:a,prelude:h}),this.adShow().then(()=>{this._clearAdTimeout(),null==_||_({scene:a}),this._success=_,this._adShowSuccessAnalytics({scene:a,result:1,recovered:u}),this._onInnerAdShowSuccess({scene:a,result:1,recovered:u})}).catch(e=>{(this._clearAdTimeout(),this._adShowFailureAnalytics({scene:a,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),matchErrorWithKeywords(this._ttErrorMsgs,null==e?void 0:e.errMsg)||this._ttErrorCodes.includes(null==e?void 0:e.errorCode))?c({scene:a,resolvedValue:{apiError:e},nextValue:null}):0>=this.novelConfig.remain()?c({scene:a,resolvedValue:{apiError:{errMsg:`[RewardAdNovel]: no remain, remain: ${this.novelConfig.remain()}, retry: ${this.novelConfig.frequency.total},
2
+ tt: {errMsg: ${null==e?void 0:e.errMsg}, errorCode: ${null==e?void 0:e.errorCode}}`,errorCode:1e5}},nextValue:null}):(this.novelConfig.updateRetry(),this.adLoad().then(()=>{this._adLoadSuccessAnalytics({scene:a,result:1,frequency:this.novelConfig.frequency}),f()}).catch(e=>{this._adLoadFailureAnalytics({scene:a,msg:null==e?void 0:e.errMsg,result:0}),c({scene:a,resolvedValue:{apiError:e},nextValue:null})}))})};f()}adLoad(){return this.load()}adShow(){return this.show()}_outerCloseCallback(...e){var r;return null==(r=this._alwaysCallback)?void 0:r.call(this,...e)}onExeAlways(...e){var r;return null==(r=this._alwaysCallback)?void 0:r.call(this,...e)}_outerHalfwayCallback(...e){var r;return null==(r=this._halfwayCallback)?void 0:r.call(this,...e)}onExeHalfway(...e){var r;return null==(r=this._halfwayCallback)?void 0:r.call(this,...e)}_outerFinishedCallback(...e){var r;return null==(r=this._finishedCallback)?void 0:r.call(this,...e)}onExeFinished(...e){var r;return null==(r=this._finishedCallback)?void 0:r.call(this,...e)}onFinish(...e){var r;return null==(r=this._onFinish)?void 0:r.call(this,...e)}onHalfway(...e){var r;return null==(r=this._onHalfway)?void 0:r.call(this,...e)}onAlways(...e){var r;return null==(r=this._onAlways)?void 0:r.call(this,...e)}__adTimeoutCloseLister__(e){this._logger.warn("ad close lister that after task end because timeout:",e),this._clearAdTimeout(),this.offClose(this.bindAdTimeoutCloseLister),this.adTimeoutCloseLister(e)}adTimeoutCloseLister(e){return e}__adTimeoutErrorLister__(e){this._logger.warn("ad error lister that after task end because timeout:",e),this._clearAdTimeout(),this.offError(this.bindAdTimeoutErrorLister),this.adTimeoutErrorLister(e)}adTimeoutErrorLister(e){return e}__adCloseLister__(e){this._clearAdTimeout(),this._adCloseSuccessAnalytics({scene:this._scene,ad_is_completed:+!!e.isEnded,ad_count:e.count});let r=Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR,end_type:e.isEnded?"finished":"halfway"}),i=e=>{var i,t;this.adDestroy(),null==(i=this._resolve)||i.call(this,Object.assign({},r,e)),this._resolve=null,null==(t=this._next)||t.call(this),this._next=null,this._success=null,this._before=null},t=e=>{var i,t,l;let s=Object.assign({},r,e);(null==s?void 0:s.isEnded)?(this._outerFinishedCallback(s),this.onExeFinished(s),null==(t=this._onFinish)||t.call(this,s),this.onFinish(s)):(this._outerHalfwayCallback(s),this.onExeHalfway(s),null==(l=this._onHalfway)||l.call(this,s),this.onHalfway(s)),this._outerCloseCallback(s),this.onExeAlways(s),null==(i=this._onAlways)||i.call(this,s),this.onAlways(s)};this.adCloseLister(r,{conn:t,end:i})}adCloseLister(e,r){var i,t;null==r||null==(i=r.conn)||i.call(r,e),null==r||null==(t=r.end)||t.call(r,e)}__adErrorLister__(e){this._clearAdTimeout(),this._logger.error("adErrorLister",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.adErrorLister(e);let r=()=>{var r,i,t;this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(t=this._next)||t.call(this),this._next=null,this._success=null,this._before=null};(!this._lookUpRemainOnError||0>=this.novelConfig.remain())&&r()}adErrorLister(e){return e}__apiAdErrorLister__(e){var r,i,t;this._clearAdTimeout(),this._logger.error("API apiAdErrorLister:",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.apiAdErrorLister(e),this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(t=this._next)||t.call(this),this._next=null,this._success=null,this._before=null}apiAdErrorLister(e){return e}__adLoadLister__(e){this._adLoadSuccessAnalytics({scene:this._scene,result:1,msg:null==e?void 0:e.errMsg}),this._logger.info("adLoadLister:",JSON.stringify({scene:this._scene,info:e})),this.adLoadLister(e)}adLoadLister(e){return e}adDestroy(e=!1){this.offClose(this.bindAdCloseLister),this.offError(this.bindAdErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.destroy(e)}clear(){this._clearAdTimeout(),this.offClose(this.bindAdCloseLister),this.offClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.destroy(),this._resolve=null,this._next=null,this._success=null,this._before=null}_shiftCloseLister(e){var r,i;this._clearAdTimeout(),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.offClose(this._bindShiftCloseLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}_shiftErrorLister(e){var r,i;this._clearAdTimeout(),this.offClose(this._bindShiftCloseLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.offError(this._bindShiftErrorLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}shift(){this.offClose(this.bindAdCloseLister),this.onClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.onError(this._bindShiftErrorLister)}static build(e){return RewardAdNovel.instance||(RewardAdNovel.instance=new RewardAdNovel(e)),RewardAdNovel.instance}static getInstance(){if(!RewardAdNovel.instance)throw Error("RewardAdNovel instance is not init");return RewardAdNovel.instance}static new(e){return new RewardAdNovel(e)}}class RewardAdNovelConfig{frequency={total:0,current:0};constructor(e){this._init(e)}_init(e){this._adTimes(e)}_adTimes(e){this.frequency.total=(null==e?void 0:e.retry)??4}reset(){this.frequency.current=0}updateRetry(){this.frequency.current=this.frequency.current+1}remain(){return this.frequency.total-this.frequency.current}static new(e){return new RewardAdNovelConfig(e)}}const src_RewardAdNovel=RewardAdNovel;for(var __rspack_i in exports.AdExecuteManager=__webpack_exports__.AdExecuteManager,exports.RewardAdFather=__webpack_exports__.RewardAdFather,exports.RewardAdNovel=__webpack_exports__.RewardAdNovel,__webpack_exports__)-1===["AdExecuteManager","RewardAdFather","RewardAdNovel"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{AdExecuteManager as e}from"@ad-execute-manager/core";import{Logger as r}from"@ad-execute-manager/logger";import{SerializableError as i}from"@ad-execute-manager/serializable-error";class l{static args=null;_logger=null;_adTimeoutTime=8e3;_initSign="";_preserveOnEnd=!1;_rewardAd=null;__ad__=null;_ttErrorMsgs=["The adUnitId is closed","The adUnitId is prohibit","The adUnitId is invalid","The adUnitId is required","The adUnitId is empty","feature is not supported in app"];_ttErrorCodes=[139902,123302];__bindAdErrorForeverHandler=this.__adErrorForeverHandler.bind(this);constructor(e){this._logger=new r({prefix:"RewardAdFather",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._preserveOnEnd=(null==e?void 0:e.preserveOnEnd)??!1}initialize(e,r){if(this._rewardAd)return this._logger.warn("rewardAd has been initialized"),null==r||r(this._rewardAd),this;let t=Object.assign({},l.args,this._adConfig,e);if(!t.adUnitId)throw this._logger.error("reward args The adUnitId is required",t),new i("[RewardAdFather] reward args The adUnitId is required",{errMsg:"The adUnitId is required",errorCode:100002});let s=tt.createRewardedVideoAd(t);return this._logger.info("bindAdErrorForeverHandler at initialized:",null==e?void 0:e.foreverErrorBind),(null==e?void 0:e.foreverErrorBind)&&(null==s||s.offError(this.__bindAdErrorForeverHandler),null==s||s.onError(this.__bindAdErrorForeverHandler)),this._rewardAd=s,this.__ad__=s,null==r||r(this._rewardAd),this}initialized(){return!!this._rewardAd}__adErrorForeverHandler(e){this.adErrorForeverHandler(e)}adErrorForeverHandler(e){return null}async ad(e,r=null){throw Error("子类必须实现ad方法")}async addExecuteManager(e){let r=Object.assign({},this._adConfig,(null==e?void 0:e.options)??{});return l.executeWithManager(this,Object.assign({},e,{options:r}))}destroy(){this._rewardAd&&!this._preserveOnEnd&&(this._rewardAd.destroy(),this._rewardAd=null)}clear(){throw Error("子类必须实现clear方法")}record(e){return this}onClose(e){this._rewardAd&&this._rewardAd.onClose(e)}offClose(e){this._rewardAd&&this._rewardAd.offClose(e)}show(){return this._rewardAd?this._rewardAd.show():Promise.reject({errMsg:"[RewardAdFather] can not show,rewardAd is null",errorCode:110001})}load(){return this._rewardAd?this._rewardAd.load():Promise.reject({errMsg:"[RewardAdFather] can not load,rewardAd is null",errorCode:110002})}onError(e){this._rewardAd&&this._rewardAd.onError(e)}offError(e){this._rewardAd&&this._rewardAd.offError(e)}onLoad(e){this._rewardAd&&this._rewardAd.onLoad(e)}offLoad(e){this._rewardAd&&this._rewardAd.offLoad(e)}placeholder(){return null}static buildArgs(e){(null==e?void 0:e.adUnitId)||new r({prefix:"RewardAdFather",enable:!0}).error("RewardParams.adUnitId is required"),l.args=e}static async executeWithManager(i,t){return i&&i instanceof l?e.getInstance().addTask(i,t):(new r({prefix:"RewardAdFather",enable:!0}).error("executeWithManager - 无效的广告实例"),Promise.reject(Error("无效的广告实例")))}}let t=l,s=Object.entries({9999:"inner_default_other"}).reduce((e,[r,i])=>(e[i]=Number(r),e),{}),n={AD_TYPE_REWARD:1,AD_TYPE_INTERSTITIAL:2};Object.entries(n).reduce((e,[r,i])=>(e[i]=r,e),{});class o extends t{_onHalfway=null;_onShow=null;_onFinish=null;_onAlways=null;_onError=null;_logger=null;_initSign="";_alwaysCallback=null;_halfwayCallback=null;_finishedCallback=null;_resolve=null;_next=null;_scene=s.inner_default_other;_adTypeR=n.AD_TYPE_REWARD;_adTimeout=null;_adTimeoutTime=8e3;_adBeforeShowTimer=null;_adBeforeShowTime=300;_adSpeedCloseTimer=null;_adSpeedCloseTime=5e3;_needEndOnTimeout=!0;_lookUpRemainOnError=!1;_needSpeedEndOnTimeout=!1;bindAdCloseLister=this.__adCloseLister__.bind(this);bindAdErrorLister=this.__adErrorLister__.bind(this);bindAdLoadLister=this.__adLoadLister__.bind(this);bindApiAdErrorLister=this.__apiAdErrorLister__.bind(this);_bindShiftCloseLister=this._shiftCloseLister.bind(this);_bindShiftErrorLister=this._shiftErrorLister.bind(this);constructor(e){var i,l,t,s,n;super(e),this._logger=new r({prefix:"RewardAdNovel",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._needEndOnTimeout=(null==e?void 0:e.needEndOnTimeout)??!0,this._lookUpRemainOnError=(null==e?void 0:e.lookUpRemainOnError)??!1,this._onHalfway=(null==e||null==(i=e.collection)?void 0:i.onHalfway)??null,this._onShow=(null==e||null==(l=e.collection)?void 0:l.onShow)??null,this._onFinish=(null==e||null==(t=e.collection)?void 0:t.onFinish)??null,this._onAlways=(null==e||null==(s=e.collection)?void 0:s.onAlways)??null,this._onError=(null==e||null==(n=e.collection)?void 0:n.onError)??null}initialize(e,r){return super.initialize(e,r),this._initAdLister(),this._initNovelConfig(e),this}_initAdLister(){this.onClose(this.bindAdCloseLister),this.onError(this.bindAdErrorLister),this.onLoad(this.bindAdLoadLister),tt.onError(this.bindApiAdErrorLister)}_initNovelConfig(e){this.novelConfig=a.new({retry:null==e?void 0:e.retry})}_onInnerExecuteBefore(){return null}_onInnerAdShowSuccess(e){return null}_setAdTimeout(e){if(this._needSpeedEndOnTimeout&&(this._adSpeedCloseTimer=setTimeout(()=>{if("ios"==tt.getSystemInfoSync().platform){let r=()=>{tt.offAppShow(r),this._logger.warn("ad_show_timeout: ios platform close ad onAppShow, handling fallback ad case, scene:",null==e?void 0:e.scene);let i="ad_show_timeout: ios platform close ad onAppShow";this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:i,errorCode:1e5,result:0}),this._adTimeout&&clearTimeout(this._adTimeout),null==e||e.end({resolvedValue:{apiError:{errMsg:i,errorCode:1e5}},nextValue:null})};tt.onAppShow(r)}clearTimeout(this._adSpeedCloseTimer)},this._adSpeedCloseTime)),this._needEndOnTimeout){let r=(null==e?void 0:e.timeout)??this._adTimeoutTime;this._adTimeout=setTimeout(()=>{this._logger.warn("Ad show timeout, handling fallback ad case,",`scene: ${null==e?void 0:e.scene},timeout: ${r}`),this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:"ad_show_timeout: normal",errorCode:1e5,result:0}),this._adTimeoutBeforeEnd({scene:null==e?void 0:e.scene,timeout:r}),null==e||e.end({resolvedValue:{apiError:{errMsg:`ad_show_timeout: normal, reward ad, timeout: ${r}`,errorCode:1e5,timeout:r}},nextValue:null})},r)}}_adTimeoutBeforeEnd(e){return e}_adPreludeInterval(e){var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()}),this._adBeforeShowTimer=setInterval(()=>{var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()})},this._adBeforeShowTime)}_clearAdTimeout(){this._adTimeout&&(clearTimeout(this._adTimeout),this._adTimeout=null),this._adBeforeShowTimer&&(clearInterval(this._adBeforeShowTimer),this._adBeforeShowTimer=null),this._adSpeedCloseTimer&&(clearTimeout(this._adSpeedCloseTimer),this._adSpeedCloseTimer=null)}_adShowBeforeAnalytics(e){return null}_adShowSuccessAnalytics(e){return null}_adShowFailureAnalytics(e){return null}_adLoadSuccessAnalytics(e){return null}_adLoadFailureAnalytics(e){return null}_adCloseSuccessAnalytics(e){return null}get rewardAd(){return this._rewardAd}ad(e,r=null){var i,l,t;return this._alwaysCallback=null==e||null==(i=e.collection)?void 0:i.always,this._halfwayCallback=null==e||null==(l=e.collection)?void 0:l.halfway,this._finishedCallback=null==e||null==(t=e.collection)?void 0:t.finished,this._recovered=null==e?void 0:e.recovered,this._onInnerExecuteBefore(),new Promise(i=>{var l,t,s,n,o;this._adInner({options:{scene:null==e||null==(l=e.options)?void 0:l.scene,timeout:null==e||null==(t=e.options)?void 0:t.timeout},collection:{resolve:i,before:null==(s=e.collection)?void 0:s.before,success:null==(n=e.collection)?void 0:n.success,prelude:null==(o=e.collection)?void 0:o.prelude},recovered:e.recovered},r)})}_adInner(e,r=null){var i,l,t,n,o;let a=null==e||null==(i=e.collection)?void 0:i.resolve,d=(null==e||null==(l=e.options)?void 0:l.scene)??this._scene??s.inner_default_other,h=null==e||null==(t=e.collection)?void 0:t.before,u=null==e||null==(n=e.collection)?void 0:n.success,_=null==e||null==(o=e.collection)?void 0:o.prelude,c=(null==e?void 0:e.recovered)??this._recovered,f=e=>{this._clearAdTimeout(),this.adDestroy(),null==a||a(Object.assign({scene:d,adTypeR:this._adTypeR},null==e?void 0:e.resolvedValue)),null==r||r(Object.assign({scene:d},null==e?void 0:e.nextValue))},w=()=>{var i,l;this._scene=d,null==h||h({scene:d}),this._before=h,null==(i=this._onShow)||i.call(this,{scene:d}),this._adShowBeforeAnalytics({scene:d}),this._resolve=a,this._next=r,this._setAdTimeout({scene:d,end:f,timeout:null==e||null==(l=e.options)?void 0:l.timeout}),this._adPreludeInterval({scene:d,prelude:_}),this.adShow().then(()=>{this._clearAdTimeout(),null==u||u({scene:d}),this._success=u,this._adShowSuccessAnalytics({scene:d,result:1,recovered:c}),this._onInnerAdShowSuccess({scene:d,result:1,recovered:c})}).catch(e=>{var r,i;(this._clearAdTimeout(),this._adShowFailureAnalytics({scene:d,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),r=this._ttErrorMsgs,(i=null==e?void 0:e.errMsg)&&r.some(e=>RegExp(e,"i").test(i))||this._ttErrorCodes.includes(null==e?void 0:e.errorCode))?f({scene:d,resolvedValue:{apiError:e},nextValue:null}):0>=this.novelConfig.remain()?f({scene:d,resolvedValue:{apiError:{errMsg:`[RewardAdNovel]: no remain, remain: ${this.novelConfig.remain()}, retry: ${this.novelConfig.frequency.total},
2
- tt: {errMsg: ${null==e?void 0:e.errMsg}, errorCode: ${null==e?void 0:e.errorCode}}`,errorCode:1e5}},nextValue:null}):(this.novelConfig.updateRetry(),this.adLoad().then(()=>{this._adLoadSuccessAnalytics({scene:d,result:1,frequency:this.novelConfig.frequency}),w()}).catch(e=>{this._adLoadFailureAnalytics({scene:d,msg:null==e?void 0:e.errMsg,result:0}),f({scene:d,resolvedValue:{apiError:e},nextValue:null})}))})};w()}adLoad(){return this.load()}adShow(){return this.show()}_outerCloseCallback(e){var r;null==(r=this._alwaysCallback)||r.call(this,e)}_outerHalfwayCallback(e){var r;null==(r=this._halfwayCallback)||r.call(this,e)}_outerFinishedCallback(e){var r;null==(r=this._finishedCallback)||r.call(this,e)}__adCloseLister__(e){this._clearAdTimeout(),this._adCloseSuccessAnalytics({scene:this._scene,ad_is_completed:+!!e.isEnded,ad_count:e.count});let r=Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR,end_type:e.isEnded?"finished":"halfway"}),i=e=>{var i,l;this.adDestroy(),null==(i=this._resolve)||i.call(this,Object.assign({},r,e)),this._resolve=null,null==(l=this._next)||l.call(this),this._next=null,this._success=null,this._before=null},l=e=>{var i,l,t;let s=Object.assign({},r,e);(null==s?void 0:s.isEnded)?(this._outerFinishedCallback(s),null==(l=this._onFinish)||l.call(this,s)):(this._outerHalfwayCallback(s),null==(t=this._onHalfway)||t.call(this,s)),this._outerCloseCallback(s),null==(i=this._onAlways)||i.call(this,s)};this.adCloseLister(r,{conn:l,end:i})}adCloseLister(e,r){var i,l;null==r||null==(i=r.conn)||i.call(r,e),null==r||null==(l=r.end)||l.call(r,e)}__adErrorLister__(e){this._clearAdTimeout(),this._logger.error("adErrorLister",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.adErrorLister(e);let r=()=>{var r,i,l;this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(l=this._next)||l.call(this),this._next=null,this._success=null,this._before=null};(!this._lookUpRemainOnError||0>=this.novelConfig.remain())&&r()}adErrorLister(e){return e}__apiAdErrorLister__(e){var r,i,l;this._clearAdTimeout(),this._logger.error("API apiAdErrorLister:",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.apiAdErrorLister(e),this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(l=this._next)||l.call(this),this._next=null,this._success=null,this._before=null}apiAdErrorLister(e){return e}__adLoadLister__(e){this._adLoadSuccessAnalytics({scene:this._scene,result:1,msg:null==e?void 0:e.errMsg}),this._logger.info("adLoadLister:",JSON.stringify({scene:this._scene,info:e})),this.adLoadLister(e)}adLoadLister(e){return e}adDestroy(){this.offClose(this.bindAdCloseLister),this.offError(this.bindAdErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.destroy()}clear(){this._clearAdTimeout(),this.offClose(this.bindAdCloseLister),this.offClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.destroy(),this._resolve=null,this._next=null,this._success=null,this._before=null}_shiftCloseLister(e){var r,i;this._clearAdTimeout(),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.offClose(this._bindShiftCloseLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}_shiftErrorLister(e){var r,i;this._clearAdTimeout(),this.offClose(this._bindShiftCloseLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this.offError(this._bindShiftErrorLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}shift(){this.offClose(this.bindAdCloseLister),this.onClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.onError(this._bindShiftErrorLister)}static build(e){return o.instance||(o.instance=new o(e)),o.instance}static getInstance(){if(!o.instance)throw Error("RewardAdNovel instance is not init");return o.instance}static new(e){return new o(e)}}class a{frequency={total:0,current:0};constructor(e){this._init(e)}_init(e){this._adTimes(e)}_adTimes(e){this.frequency.total=(null==e?void 0:e.retry)??4}reset(){this.frequency.current=0}updateRetry(){this.frequency.current=this.frequency.current+1}remain(){return this.frequency.total-this.frequency.current}static new(e){return new a(e)}}let d=o;export{e as AdExecuteManager,t as RewardAdFather,d as RewardAdNovel};
1
+ import{AdExecuteManager as e}from"@ad-execute-manager/core";import{Logger as r}from"@ad-execute-manager/logger";import{SerializableError as i}from"@ad-execute-manager/serializable-error";class l{static args=null;_logger=null;_adTimeoutTime=8e3;_initSign="";_preserveOnEnd=!1;_rewardAd=null;__ad__=null;_ttErrorMsgs=["The adUnitId is closed","The adUnitId is prohibit","The adUnitId is invalid","The adUnitId is required","The adUnitId is empty","feature is not supported in app"];_ttErrorCodes=[139902,123302];__bindAdErrorForeverHandler=this.__adErrorForeverHandler.bind(this);constructor(e){this._logger=new r({prefix:"RewardAdFather",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._preserveOnEnd=(null==e?void 0:e.preserveOnEnd)??!1}initialize(e,r){if(this._rewardAd)return this._logger.warn("rewardAd has been initialized"),null==r||r(this._rewardAd),this;let t=Object.assign({},l.args,this._adConfig,e);if(!t.adUnitId)throw this._logger.error("reward args The adUnitId is required",t),new i("[RewardAdFather] reward args The adUnitId is required",{errMsg:"The adUnitId is required",errorCode:100002});let s=tt.createRewardedVideoAd(t);return this._logger.info("bindAdErrorForeverHandler at initialized:",null==e?void 0:e.foreverErrorBind),(null==e?void 0:e.foreverErrorBind)&&(null==s||s.offError(this.__bindAdErrorForeverHandler),null==s||s.onError(this.__bindAdErrorForeverHandler)),this._rewardAd=s,this.__ad__=s,null==r||r(this._rewardAd),this}initialized(){return!!this._rewardAd}__adErrorForeverHandler(e){this.adErrorForeverHandler(e)}adErrorForeverHandler(e){return null}async ad(e,r=null){throw Error("子类必须实现ad方法")}async addExecuteManager(e){let r=Object.assign({},this._adConfig,(null==e?void 0:e.options)??{});return l.executeWithManager(this,Object.assign({},e,{options:r}))}destroy(e=!1){!this._rewardAd||this._preserveOnEnd||e||(this._rewardAd.destroy(),this._rewardAd=null)}clear(){throw Error("子类必须实现clear方法")}record(e){return this}onClose(e){this._rewardAd&&this._rewardAd.onClose(e)}offClose(e){this._rewardAd&&this._rewardAd.offClose(e)}show(){return this._rewardAd?this._rewardAd.show():Promise.reject({errMsg:"[RewardAdFather] can not show,rewardAd is null",errorCode:110001})}load(){return this._rewardAd?this._rewardAd.load():Promise.reject({errMsg:"[RewardAdFather] can not load,rewardAd is null",errorCode:110002})}onError(e){this._rewardAd&&this._rewardAd.onError(e)}offError(e){this._rewardAd&&this._rewardAd.offError(e)}onLoad(e){this._rewardAd&&this._rewardAd.onLoad(e)}offLoad(e){this._rewardAd&&this._rewardAd.offLoad(e)}placeholder(){return null}static buildArgs(e){(null==e?void 0:e.adUnitId)||new r({prefix:"RewardAdFather",enable:!0}).error("RewardParams.adUnitId is required"),l.args=e}static async executeWithManager(i,t){return i&&i instanceof l?e.getInstance().addTask(i,t):(new r({prefix:"RewardAdFather",enable:!0}).error("executeWithManager - 无效的广告实例"),Promise.reject(Error("无效的广告实例")))}}let t=l,s=Object.entries({9999:"inner_default_other"}).reduce((e,[r,i])=>(e[i]=Number(r),e),{}),n={AD_TYPE_REWARD:1,AD_TYPE_INTERSTITIAL:2};Object.entries(n).reduce((e,[r,i])=>(e[i]=r,e),{});class o extends t{_onHalfway=null;_onShow=null;_onFinish=null;_onAlways=null;_onError=null;_logger=null;_initSign="";_alwaysCallback=null;_halfwayCallback=null;_finishedCallback=null;_resolve=null;_next=null;_scene=s.inner_default_other;_adTypeR=n.AD_TYPE_REWARD;_adTimeout=null;_adTimeoutTime=8e3;_adBeforeShowTimer=null;_adBeforeShowTime=300;_adSpeedCloseTimer=null;_adSpeedCloseTime=5e3;_needEndOnTimeout=!0;_lookUpRemainOnError=!1;_needSpeedEndOnTimeout=!1;bindAdCloseLister=this.__adCloseLister__.bind(this);bindAdErrorLister=this.__adErrorLister__.bind(this);bindAdLoadLister=this.__adLoadLister__.bind(this);bindApiAdErrorLister=this.__apiAdErrorLister__.bind(this);_bindShiftCloseLister=this._shiftCloseLister.bind(this);_bindShiftErrorLister=this._shiftErrorLister.bind(this);bindAdTimeoutCloseLister=this.__adTimeoutCloseLister__.bind(this);bindAdTimeoutErrorLister=this.__adTimeoutErrorLister__.bind(this);constructor(e){var i,l,t,s,n;super(e),this._logger=new r({prefix:"RewardAdNovel",enabled:!!((null==e?void 0:e.log)??!0)}),this._initSign=(null==e?void 0:e.sign)??"",this._adConfig=(null==e?void 0:e.adConfig)??{},this._needEndOnTimeout=(null==e?void 0:e.needEndOnTimeout)??!0,this._lookUpRemainOnError=(null==e?void 0:e.lookUpRemainOnError)??!1,this._onHalfway=(null==e||null==(i=e.collection)?void 0:i.onHalfway)??null,this._onShow=(null==e||null==(l=e.collection)?void 0:l.onShow)??null,this._onFinish=(null==e||null==(t=e.collection)?void 0:t.onFinish)??null,this._onAlways=(null==e||null==(s=e.collection)?void 0:s.onAlways)??null,this._onError=(null==e||null==(n=e.collection)?void 0:n.onError)??null}initialize(e,r){return super.initialize(e,r),this._initAdLister(),this._initNovelConfig(e),this}_initAdLister(){this.onClose(this.bindAdCloseLister),this.onError(this.bindAdErrorLister),this.onLoad(this.bindAdLoadLister),tt.onError(this.bindApiAdErrorLister)}_initNovelConfig(e){this.novelConfig=a.new({retry:null==e?void 0:e.retry})}_onInnerExecuteBefore(){return null}_onInnerAdShowSuccess(e){return null}_setAdTimeout(e){if(this._needSpeedEndOnTimeout&&(this._adSpeedCloseTimer=setTimeout(()=>{if("ios"==tt.getSystemInfoSync().platform){let r=()=>{tt.offAppShow(r),this._logger.warn("ad_show_timeout: ios platform close ad onAppShow, handling fallback ad case, scene:",null==e?void 0:e.scene);let i="ad_show_timeout: ios platform close ad onAppShow";this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:i,errorCode:1e5,result:0}),this._adTimeout&&clearTimeout(this._adTimeout),null==e||e.end({resolvedValue:{apiError:{errMsg:i,errorCode:1e5}},nextValue:null})};tt.onAppShow(r)}clearTimeout(this._adSpeedCloseTimer)},this._adSpeedCloseTime)),this._needEndOnTimeout){let r=(null==e?void 0:e.timeout)??this._adTimeoutTime;this._adTimeout=setTimeout(()=>{this._logger.warn("Ad show timeout, handling fallback ad case,",`scene: ${null==e?void 0:e.scene},timeout: ${r}`),this._adShowFailureAnalytics({scene:null==e?void 0:e.scene,msg:"ad_show_timeout: normal",errorCode:1e5,result:0}),this._adTimeoutBeforeEnd({scene:null==e?void 0:e.scene,timeout:r}),this.onClose(this.bindAdTimeoutCloseLister),this.onError(this.bindAdTimeoutErrorLister),null==e||e.end({preserved:null==e?void 0:e.preserved,resolvedValue:{apiError:{errMsg:`ad_show_timeout: normal, reward ad, timeout: ${r}`,errorCode:1e5,timeout:r}},nextValue:null})},r)}}_adTimeoutBeforeEnd(e){return e}_adPreludeInterval(e){var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()}),this._adBeforeShowTimer=setInterval(()=>{var r;null==(r=e.prelude)||r.call(e,{scene:null==e?void 0:e.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()})},this._adBeforeShowTime)}_clearAdTimeout(){this._adTimeout&&(clearTimeout(this._adTimeout),this._adTimeout=null),this._adBeforeShowTimer&&(clearInterval(this._adBeforeShowTimer),this._adBeforeShowTimer=null),this._adSpeedCloseTimer&&(clearTimeout(this._adSpeedCloseTimer),this._adSpeedCloseTimer=null)}_adShowBeforeAnalytics(e){return null}_adShowSuccessAnalytics(e){return null}_adShowFailureAnalytics(e){return null}_adLoadSuccessAnalytics(e){return null}_adLoadFailureAnalytics(e){return null}_adCloseSuccessAnalytics(e){return null}get rewardAd(){return this._rewardAd}ad(e,r=null){var i,l,t,s;return this._alwaysCallback=null==e||null==(i=e.collection)?void 0:i.always,this._halfwayCallback=null==e||null==(l=e.collection)?void 0:l.halfway,this._finishedCallback=null==e||null==(t=e.collection)?void 0:t.finished,this._recovered=null==e?void 0:e.recovered,this._preservedOnTimeout=null==e||null==(s=e.options)?void 0:s.preservedOnTimeout,this._onInnerExecuteBefore(),new Promise(i=>{var l,t,s,n,o;this._adInner({options:{scene:null==e||null==(l=e.options)?void 0:l.scene,timeout:null==e||null==(t=e.options)?void 0:t.timeout},collection:{resolve:i,before:null==(s=e.collection)?void 0:s.before,success:null==(n=e.collection)?void 0:n.success,prelude:null==(o=e.collection)?void 0:o.prelude},recovered:e.recovered},r)})}_adInner(e,r=null){var i,l,t,n,o;let a=null==e||null==(i=e.collection)?void 0:i.resolve,d=(null==e||null==(l=e.options)?void 0:l.scene)??this._scene??s.inner_default_other,h=null==e||null==(t=e.collection)?void 0:t.before,u=null==e||null==(n=e.collection)?void 0:n.success,_=null==e||null==(o=e.collection)?void 0:o.prelude,c=(null==e?void 0:e.recovered)??this._recovered,f=e=>{this._clearAdTimeout(),this.adDestroy(null==e?void 0:e.preserved),null==a||a(Object.assign({scene:d,adTypeR:this._adTypeR},null==e?void 0:e.resolvedValue)),null==r||r(Object.assign({scene:d},null==e?void 0:e.nextValue))},v=()=>{var i,l;this._scene=d,null==h||h({scene:d}),this._before=h,null==(i=this._onShow)||i.call(this,{scene:d}),this._adShowBeforeAnalytics({scene:d}),this._resolve=a,this._next=r,this._setAdTimeout({scene:d,end:f,timeout:null==e||null==(l=e.options)?void 0:l.timeout,preserved:this._preservedOnTimeout}),this._adPreludeInterval({scene:d,prelude:_}),this.adShow().then(()=>{this._clearAdTimeout(),null==u||u({scene:d}),this._success=u,this._adShowSuccessAnalytics({scene:d,result:1,recovered:c}),this._onInnerAdShowSuccess({scene:d,result:1,recovered:c})}).catch(e=>{var r,i;(this._clearAdTimeout(),this._adShowFailureAnalytics({scene:d,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),r=this._ttErrorMsgs,(i=null==e?void 0:e.errMsg)&&r.some(e=>RegExp(e,"i").test(i))||this._ttErrorCodes.includes(null==e?void 0:e.errorCode))?f({scene:d,resolvedValue:{apiError:e},nextValue:null}):0>=this.novelConfig.remain()?f({scene:d,resolvedValue:{apiError:{errMsg:`[RewardAdNovel]: no remain, remain: ${this.novelConfig.remain()}, retry: ${this.novelConfig.frequency.total},
2
+ tt: {errMsg: ${null==e?void 0:e.errMsg}, errorCode: ${null==e?void 0:e.errorCode}}`,errorCode:1e5}},nextValue:null}):(this.novelConfig.updateRetry(),this.adLoad().then(()=>{this._adLoadSuccessAnalytics({scene:d,result:1,frequency:this.novelConfig.frequency}),v()}).catch(e=>{this._adLoadFailureAnalytics({scene:d,msg:null==e?void 0:e.errMsg,result:0}),f({scene:d,resolvedValue:{apiError:e},nextValue:null})}))})};v()}adLoad(){return this.load()}adShow(){return this.show()}_outerCloseCallback(...e){var r;return null==(r=this._alwaysCallback)?void 0:r.call(this,...e)}onExeAlways(...e){var r;return null==(r=this._alwaysCallback)?void 0:r.call(this,...e)}_outerHalfwayCallback(...e){var r;return null==(r=this._halfwayCallback)?void 0:r.call(this,...e)}onExeHalfway(...e){var r;return null==(r=this._halfwayCallback)?void 0:r.call(this,...e)}_outerFinishedCallback(...e){var r;return null==(r=this._finishedCallback)?void 0:r.call(this,...e)}onExeFinished(...e){var r;return null==(r=this._finishedCallback)?void 0:r.call(this,...e)}onFinish(...e){var r;return null==(r=this._onFinish)?void 0:r.call(this,...e)}onHalfway(...e){var r;return null==(r=this._onHalfway)?void 0:r.call(this,...e)}onAlways(...e){var r;return null==(r=this._onAlways)?void 0:r.call(this,...e)}__adTimeoutCloseLister__(e){this._logger.warn("ad close lister that after task end because timeout:",e),this._clearAdTimeout(),this.offClose(this.bindAdTimeoutCloseLister),this.adTimeoutCloseLister(e)}adTimeoutCloseLister(e){return e}__adTimeoutErrorLister__(e){this._logger.warn("ad error lister that after task end because timeout:",e),this._clearAdTimeout(),this.offError(this.bindAdTimeoutErrorLister),this.adTimeoutErrorLister(e)}adTimeoutErrorLister(e){return e}__adCloseLister__(e){this._clearAdTimeout(),this._adCloseSuccessAnalytics({scene:this._scene,ad_is_completed:+!!e.isEnded,ad_count:e.count});let r=Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR,end_type:e.isEnded?"finished":"halfway"}),i=e=>{var i,l;this.adDestroy(),null==(i=this._resolve)||i.call(this,Object.assign({},r,e)),this._resolve=null,null==(l=this._next)||l.call(this),this._next=null,this._success=null,this._before=null},l=e=>{var i,l,t;let s=Object.assign({},r,e);(null==s?void 0:s.isEnded)?(this._outerFinishedCallback(s),this.onExeFinished(s),null==(l=this._onFinish)||l.call(this,s),this.onFinish(s)):(this._outerHalfwayCallback(s),this.onExeHalfway(s),null==(t=this._onHalfway)||t.call(this,s),this.onHalfway(s)),this._outerCloseCallback(s),this.onExeAlways(s),null==(i=this._onAlways)||i.call(this,s),this.onAlways(s)};this.adCloseLister(r,{conn:l,end:i})}adCloseLister(e,r){var i,l;null==r||null==(i=r.conn)||i.call(r,e),null==r||null==(l=r.end)||l.call(r,e)}__adErrorLister__(e){this._clearAdTimeout(),this._logger.error("adErrorLister",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.adErrorLister(e);let r=()=>{var r,i,l;this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(l=this._next)||l.call(this),this._next=null,this._success=null,this._before=null};(!this._lookUpRemainOnError||0>=this.novelConfig.remain())&&r()}adErrorLister(e){return e}__apiAdErrorLister__(e){var r,i,l;this._clearAdTimeout(),this._logger.error("API apiAdErrorLister:",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:null==e?void 0:e.errMsg,errorCode:null==e?void 0:e.errorCode,result:0}),this.apiAdErrorLister(e),this.adDestroy(),null==(r=this._onError)||r.call(this,e),null==(i=this._resolve)||i.call(this,{apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,null==(l=this._next)||l.call(this),this._next=null,this._success=null,this._before=null}apiAdErrorLister(e){return e}__adLoadLister__(e){this._adLoadSuccessAnalytics({scene:this._scene,result:1,msg:null==e?void 0:e.errMsg}),this._logger.info("adLoadLister:",JSON.stringify({scene:this._scene,info:e})),this.adLoadLister(e)}adLoadLister(e){return e}adDestroy(e=!1){this.offClose(this.bindAdCloseLister),this.offError(this.bindAdErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.destroy(e)}clear(){this._clearAdTimeout(),this.offClose(this.bindAdCloseLister),this.offClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.destroy(),this._resolve=null,this._next=null,this._success=null,this._before=null}_shiftCloseLister(e){var r,i;this._clearAdTimeout(),this.offError(this._bindShiftErrorLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.offClose(this._bindShiftCloseLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}_shiftErrorLister(e){var r,i;this._clearAdTimeout(),this.offClose(this._bindShiftCloseLister),this.offLoad(this.bindAdLoadLister),tt.offError(this.bindApiAdErrorLister),this._onHalfway=null,this._onFinish=null,this._onAlways=null,this._onShow=null,this._onError=null,this._alwaysCallback=null,this._halfwayCallback=null,this._finishedCallback=null,this._recovered=null,this._preservedOnTimeout=null,this.offError(this._bindShiftErrorLister),this.destroy(),null==(r=this._resolve)||r.call(this,Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,null==(i=this._next)||i.call(this),this._next=null,this._success=null,this._before=null}shift(){this.offClose(this.bindAdCloseLister),this.onClose(this._bindShiftCloseLister),this.offError(this.bindAdErrorLister),this.onError(this._bindShiftErrorLister)}static build(e){return o.instance||(o.instance=new o(e)),o.instance}static getInstance(){if(!o.instance)throw Error("RewardAdNovel instance is not init");return o.instance}static new(e){return new o(e)}}class a{frequency={total:0,current:0};constructor(e){this._init(e)}_init(e){this._adTimes(e)}_adTimes(e){this.frequency.total=(null==e?void 0:e.retry)??4}reset(){this.frequency.current=0}updateRetry(){this.frequency.current=this.frequency.current+1}remain(){return this.frequency.total-this.frequency.current}static new(e){return new a(e)}}let d=o;export{e as AdExecuteManager,t as RewardAdFather,d as RewardAdNovel};
@@ -122,6 +122,10 @@ export type IAdOptionsOther = {
122
122
  * 重试次数 - 自用参数 ,非tt API要求的参数
123
123
  */
124
124
  retry: number;
125
+ /**
126
+ * 是否在超时情况下保留广告实例 - 自用参数,非tt API要求的参数
127
+ */
128
+ preservedOnTimeout: boolean;
125
129
  };
126
130
  export type IAdOptions = IRewordAdConfig & IRewordAdOther & IAdOptionsOther;
127
131
  export type RecoveredInfo = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ad-execute-manager/ad-reward",
3
- "version": "2.0.6",
3
+ "version": "2.1.1",
4
4
  "description": "Reward ad-related classes including RewardAdFather and RewardAdNovel for ad management.",
5
5
  "type": "module",
6
6
  "exports": {