@ad-execute-manager/ad-reward 2.0.5 → 2.0.6

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.
@@ -4,6 +4,8 @@ export type CallbackCollection = import("./typings/ad.js").CallbackCollection;
4
4
  export type RecoveredInfo = import("./typings/ad.js").RecoveredInfo;
5
5
  export type IConstructArgs = import("./typings/ad.js").IConstructArgs;
6
6
  export type RewardedVideoAd = import("./typings/create-rewarded-video-ad.js").RewardedVideoAd;
7
+ export type ITaskResult = import("./typings/ad.js").ITaskResult;
8
+ export type ITaskResultGeneric<T extends unknown> = ITaskResult & T;
7
9
  export type IRewardedVideoAd = {
8
10
  /**
9
11
  * 显示激励视频广告
@@ -22,18 +24,18 @@ declare class RewardAdFather {
22
24
  */
23
25
  static buildArgs(args: IRewordAdConfig): void;
24
26
  /**
27
+ * @template {object} T
25
28
  * 使用管理器执行广告
26
29
  * @param {Object} adInstance 广告实例
27
30
  * @param {Object} ctx 上下文对象,用于传递数据和状态
28
- * @param {Object} ctx.options 广告执行选项
29
- * @param {Object} ctx.collection 回调集合
31
+ * @param {import('./typings/ad.js').IAdOptions} ctx.options 广告执行选项
32
+ * @param {CallbackCollection} ctx.collection 回调集合
33
+ * @returns {Promise<ITaskResultGeneric<T> | undefined>} 广告执行结果的Promise
30
34
  */
31
- static executeWithManager(adInstance: any, ctx: {
32
- options: any;
33
- collection: any;
34
- }): Promise<import("@ad-execute-manager/core/dist/AdExecuteManager.js").ITaskResult & {
35
- [key: string]: any;
36
- }>;
35
+ static executeWithManager<T extends unknown>(adInstance: any, ctx: {
36
+ options: import("./typings/ad.js").IAdOptions;
37
+ collection: CallbackCollection;
38
+ }): Promise<ITaskResultGeneric<T> | undefined>;
37
39
  /**
38
40
  * @param {IConstructArgs} args
39
41
  */
@@ -61,11 +63,11 @@ declare class RewardAdFather {
61
63
  /**
62
64
  * 初始化
63
65
  * 子类可以选择覆盖此方法,或使用默认实现
64
- * @param {IRewordAdConfig} params
66
+ * @param {import('./typings/ad.js').IAdOptions} params
65
67
  * @param {(v: IRewardedVideoAd) => void} [callback] 初始化成功回调
66
68
  * @returns {this} 当前实例
67
69
  */
68
- initialize(params: IRewordAdConfig, callback?: (v: IRewardedVideoAd) => void): this;
70
+ initialize(params: import("./typings/ad.js").IAdOptions, callback?: (v: IRewardedVideoAd) => void): this;
69
71
  initialized(): boolean;
70
72
  /**
71
73
  * 激励视频展示失败时始终执行的一个方法
@@ -87,7 +89,7 @@ declare class RewardAdFather {
87
89
  * 执行广告展示
88
90
  * @abstract
89
91
  * @param {Object} [ctx] 上下文对象,用于传递数据和状态
90
- * @param {IRewordAdConfig} [ctx.options] 广告执行选项
92
+ * @param {import('./typings/ad.js').IAdOptions} [ctx.options] 广告执行选项
91
93
  * @param {CallbackCollection} [ctx.collection] 回调集合
92
94
  * @param {RecoveredInfo} [ctx.recovered] 恢复重试信息
93
95
  * @param {Function} next 执行下一个任务的回调函数,在洋葱模型中手动调用以继续执行流程
@@ -95,22 +97,22 @@ declare class RewardAdFather {
95
97
  * @throws {Error} 子类必须实现此方法
96
98
  */
97
99
  ad(ctx?: {
98
- options?: IRewordAdConfig;
100
+ options?: import("./typings/ad.js").IAdOptions;
99
101
  collection?: CallbackCollection;
100
102
  recovered?: RecoveredInfo;
101
103
  }, next?: Function): Promise<unknown>;
102
104
  /**
105
+ * @template {object} T
103
106
  * 确保广告按顺序执行
104
107
  * @param {Object} [ctx] 上下文对象,用于传递数据和状态
105
- * @param {IRewordAdConfig} [ctx.options] 广告执行选项
108
+ * @param {import('./typings/ad.js').IAdOptions} [ctx.options] 广告执行选项
106
109
  * @param {CallbackCollection} [ctx.collection] 回调集合
110
+ * @returns {Promise<ITaskResultGeneric<T> | undefined>} 广告执行结果的Promise
107
111
  */
108
- addExecuteManager(ctx?: {
109
- options?: IRewordAdConfig;
112
+ addExecuteManager<T extends unknown>(ctx?: {
113
+ options?: import("./typings/ad.js").IAdOptions;
110
114
  collection?: CallbackCollection;
111
- }): Promise<import("@ad-execute-manager/core/dist/AdExecuteManager.js").ITaskResult & {
112
- [key: string]: any;
113
- }>;
115
+ }): Promise<ITaskResultGeneric<T> | undefined>;
114
116
  destroy(): void;
115
117
  /**
116
118
  * 清理广告实例
@@ -1,78 +1,6 @@
1
1
  export default RewardAdNovel;
2
2
  export type IRewordAdConfig = import("./typings/ad.js").IRewordAdConfig;
3
- export type ICallbackArgs = {
4
- /**
5
- * 广告执行场景
6
- */
7
- scene: number;
8
- /**
9
- * 是否看完
10
- */
11
- isEnded: boolean;
12
- /**
13
- * 完整观看次数
14
- */
15
- count: number;
16
- /**
17
- * 执行下一个任务的回调函数,手动调用以继续执行流程[end]
18
- */
19
- end?: () => void;
20
- /**
21
- * 执行下一个任务的回调函数, 手动调用以继续执行流程[circle]
22
- */
23
- circle?: (args: {
24
- ignoreRemain: boolean;
25
- scene: number;
26
- }) => void;
27
- };
28
- export type IConnection = {
29
- /**
30
- * 广告中途退出回调
31
- */
32
- onHalfway?: (args: ICallbackArgs) => void;
33
- /**
34
- * 广告展示回调
35
- */
36
- onShow?: (args: ICallbackArgs) => void;
37
- /**
38
- * 广告执行成功回调
39
- */
40
- onFinish?: (args: ICallbackArgs) => void;
41
- /**
42
- * 广告执行成功回调
43
- */
44
- onAlways?: (args: ICallbackArgs) => void;
45
- /**
46
- * 广告执行失败回调
47
- */
48
- onError?: (e: unknown) => void;
49
- };
50
- export type IConstructArgs = {
51
- /**
52
- * 初始化标识
53
- */
54
- sign?: string;
55
- /**
56
- * 是否开启日志
57
- */
58
- log?: boolean;
59
- /**
60
- * 是否保留tt激励视频广告实例
61
- */
62
- preserveOnEnd?: boolean;
63
- /**
64
- * 是否需要在超时情况下结束广告
65
- */
66
- needEndOnTimeout?: boolean;
67
- /**
68
- * 激励视频参数 (可选)
69
- */
70
- adConfig?: IRewordAdConfig | undefined;
71
- /**
72
- * 回调集合
73
- */
74
- collection?: IConnection | undefined;
75
- };
3
+ export type IConstructArgs = import("./typings/ad.js").IConstructArgs;
76
4
  export type ICloseArgs = {
77
5
  /**
78
6
  * 是否看完
@@ -93,30 +21,7 @@ export type IRewardedVideoAd = {
93
21
  * @typedef {import('./typings/ad.js').IRewordAdConfig} IRewordAdConfig
94
22
  */
95
23
  /**
96
- * @typedef ICallbackArgs
97
- * @property {number} scene 广告执行场景
98
- * @property {boolean} isEnded 是否看完
99
- * @property {number} count 完整观看次数
100
- * @property {() => void} [end] 执行下一个任务的回调函数,手动调用以继续执行流程[end]
101
- * @property {(args: {ignoreRemain: boolean, scene: number}) => void} [circle] 执行下一个任务的回调函数, 手动调用以继续执行流程[circle]
102
- *
103
- */
104
- /**
105
- * @typedef IConnection
106
- * @property {(args: ICallbackArgs) => void} [onHalfway] 广告中途退出回调
107
- * @property {(args: ICallbackArgs) => void} [onShow] 广告展示回调
108
- * @property {(args: ICallbackArgs) => void} [onFinish] 广告执行成功回调
109
- * @property {(args: ICallbackArgs) => void} [onAlways] 广告执行成功回调
110
- * @property {(e:unknown) => void} [onError] 广告执行失败回调
111
- */
112
- /**
113
- * @typedef IConstructArgs
114
- * @property {string} [sign] 初始化标识
115
- * @property {boolean} [log] 是否开启日志
116
- * @property {boolean} [preserveOnEnd] 是否保留tt激励视频广告实例
117
- * @property {boolean} [needEndOnTimeout] 是否需要在超时情况下结束广告
118
- * @property {IRewordAdConfig=} [adConfig] 激励视频参数 (可选)
119
- * @property {IConnection=} [collection] 回调集合
24
+ * @typedef {import('./typings/ad.js').IConstructArgs} IConstructArgs
120
25
  */
121
26
  /**
122
27
  * @typedef ICloseArgs
@@ -145,11 +50,6 @@ declare class RewardAdNovel extends RewardAdFather {
145
50
  * @returns {RewardAdNovel}
146
51
  */
147
52
  static "new"(args: IConstructArgs): RewardAdNovel;
148
- /**
149
- * @param {IConstructArgs} args
150
- *
151
- */
152
- constructor(args: IConstructArgs);
153
53
  _onHalfway: any;
154
54
  _onShow: any;
155
55
  _onFinish: any;
@@ -169,6 +69,7 @@ declare class RewardAdNovel extends RewardAdFather {
169
69
  _adSpeedCloseTimer: any;
170
70
  _adSpeedCloseTime: number;
171
71
  _needEndOnTimeout: boolean;
72
+ _lookUpRemainOnError: boolean;
172
73
  /** @deprecated TODO 移除 */
173
74
  _needSpeedEndOnTimeout: boolean;
174
75
  bindAdCloseLister: any;
@@ -180,11 +81,11 @@ declare class RewardAdNovel extends RewardAdFather {
180
81
  /**
181
82
  * 初始化
182
83
  * 子类可以选择覆盖此方法,或使用默认实现
183
- * @param {IRewordAdConfig} args
84
+ * @param {import('./typings/ad.js').IAdOptions} args
184
85
  * @param {(v: IRewardedVideoAd) => void} [callback] 初始化成功回调
185
86
  * @returns {this} 当前实例
186
87
  */
187
- initialize(args: IRewordAdConfig, callback?: (v: IRewardedVideoAd) => void): this;
88
+ initialize(args: import("./typings/ad.js").IAdOptions, callback?: (v: IRewardedVideoAd) => void): this;
188
89
  _initAdLister(): void;
189
90
  /**
190
91
  * @param {object} args
@@ -275,6 +176,7 @@ declare class RewardAdNovel extends RewardAdFather {
275
176
  /**
276
177
  * 广告展示失败分析
277
178
  * 子类需要埋点可以选择覆盖此方法
179
+ * ATTENTION:该方法可能会调用两次,一次是show().catch(),一次是onError(),所以需要做好去重处理
278
180
  * @protected
279
181
  * @param {object} _args
280
182
  * @param {string} _args.scene 广告执行场景 必填
@@ -345,14 +247,14 @@ declare class RewardAdNovel extends RewardAdFather {
345
247
  /**
346
248
  * @override
347
249
  * @param {object} [ctx] 广告执行上下文
348
- * @param {import('./typings/ad.js').IRewordAdConfig} [ctx.options] 广告执行选项
250
+ * @param {import('./typings/ad.js').IAdOptions} [ctx.options] 广告执行选项
349
251
  * @param {import('./typings/ad.js').CallbackCollection} [ctx.collection] 回调集合
350
252
  * @param {import('./typings/ad.js').RecoveredInfo} [ctx.recovered] 恢复重试信息
351
253
  * @param {Function} next 执行下一个任务的回调函数,手动调用以继续执行流程
352
254
  * @returns {Promise.<object | Undefined>}
353
255
  */
354
256
  override ad(ctx?: {
355
- options?: import("./typings/ad.js").IRewordAdConfig;
257
+ options?: import("./typings/ad.js").IAdOptions;
356
258
  collection?: import("./typings/ad.js").CallbackCollection;
357
259
  recovered?: import("./typings/ad.js").RecoveredInfo;
358
260
  }, next?: Function): Promise<object | undefined>;
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;_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._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}addExecuteManager(e){return super.addExecuteManager(e)}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){var r,i,t;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),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}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(){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});
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;_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._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}addExecuteManager(e){return super.addExecuteManager(e)}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){var r,i,l;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),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}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(){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};