@singcl/ad-execute-manager 2.0.0-alpha.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +558 -199
  2. package/dist/ad/dist/index.d.cts +1 -0
  3. package/dist/ad/dist/index.d.ts +229 -0
  4. package/dist/ad/{InterstitialAdFather.d.ts → src/InterstitialAdFather.d.ts} +42 -10
  5. package/dist/ad/{InterstitialAdNovel.d.ts → src/InterstitialAdNovel.d.ts} +12 -8
  6. package/dist/ad/{RewardAdFather.d.ts → src/RewardAdFather.d.ts} +60 -10
  7. package/dist/ad/{RewardAdNovel.d.ts → src/RewardAdNovel.d.ts} +113 -24
  8. package/dist/ad/src/index.d.ts +5 -0
  9. package/dist/{typings → ad/src/typings}/ad.d.ts +28 -8
  10. package/dist/ad/src/typings/create-interstitial-ad.d.ts +42 -0
  11. package/dist/ad/src/typings/create-rewarded-video-ad.d.ts +42 -0
  12. package/dist/analytics/dist/index.d.cts +1 -0
  13. package/dist/analytics/dist/index.d.ts +23 -0
  14. package/dist/{helper → analytics/src}/AdAnalyticsJS.d.ts +9 -0
  15. package/dist/analytics/src/index.d.ts +1 -0
  16. package/dist/core/dist/index.d.cts +1 -0
  17. package/dist/core/dist/index.d.ts +41 -0
  18. package/dist/core/src/AdExecuteManager.d.ts +252 -0
  19. package/dist/core/src/_util.d.ts +18 -0
  20. package/dist/core/{index.d.ts → src/index.d.ts} +0 -1
  21. package/dist/core/src/typings/ad.d.ts +208 -0
  22. package/dist/core/typings/ad.d.ts +208 -0
  23. package/dist/helper/dist/index.d.cts +1 -0
  24. package/dist/helper/dist/index.d.ts +96 -0
  25. package/dist/helper/{PubSub.d.ts → src/PubSub.d.ts} +1 -1
  26. package/dist/helper/{SerializableError.d.ts → src/SerializableError.d.ts} +5 -1
  27. package/dist/helper/src/index.d.ts +6 -0
  28. package/dist/index.cjs +2 -1
  29. package/dist/index.d.ts +14 -14
  30. package/dist/index.js +2 -1
  31. package/dist/tools/dist/index.d.cts +1 -0
  32. package/dist/tools/dist/index.d.ts +69 -0
  33. package/dist/{helper → tools/src}/RewardAdGlobalRecorder.d.ts +2 -2
  34. package/dist/{helper → tools/src}/RewardAdSceneTriggerManager.d.ts +16 -10
  35. package/dist/tools/src/const.d.ts +3 -0
  36. package/dist/tools/src/index.d.ts +3 -0
  37. package/dist/tools/src/typings/ad.d.ts +208 -0
  38. package/dist/tools/src/typings/common.d.ts +14 -0
  39. package/dist/tools/src/typings/create-interstitial-ad.d.ts +42 -0
  40. package/dist/tools/src/typings/create-rewarded-video-ad.d.ts +42 -0
  41. package/dist/tools/src/typings/tracker.d.ts +1 -0
  42. package/package.json +33 -22
  43. package/dist/ad/index.d.ts +0 -4
  44. package/dist/core/AdExecuteManager.d.ts +0 -129
  45. package/dist/helper/index.d.ts +0 -10
  46. package/dist/subpackages/ad/index.js +0 -1
  47. package/dist/subpackages/core/index.js +0 -1
  48. package/dist/subpackages/helper/index.js +0 -1
  49. package/dist/subpackages/utils/index.js +0 -1
  50. /package/dist/{const → ad/src/const}/const.d.ts +0 -0
  51. /package/dist/{typings → ad/src/typings}/common.d.ts +0 -0
  52. /package/dist/{typings → ad/src/typings}/tracker.d.ts +0 -0
  53. /package/dist/{utils → ad/src/utils}/functional.d.ts +0 -0
  54. /package/dist/core/{compose.d.ts → src/compose.d.ts} +0 -0
  55. /package/dist/helper/{CountRecorder.d.ts → src/CountRecorder.d.ts} +0 -0
  56. /package/dist/helper/{EventEmitter.d.ts → src/EventEmitter.d.ts} +0 -0
  57. /package/dist/helper/{Logger.d.ts → src/Logger.d.ts} +0 -0
  58. /package/dist/helper/{Storage.d.ts → src/Storage.d.ts} +0 -0
  59. /package/dist/{helper → tools/src}/LovelUnlockManager.d.ts +0 -0
@@ -1,129 +0,0 @@
1
- export default AdExecuteManager;
2
- export type AdTask = {
3
- /**
4
- * RewardAdFather的子类实例
5
- */
6
- adInstance: import("../ad/RewardAdFather.js").default;
7
- /**
8
- * 广告执行选项
9
- */
10
- options: import("../typings/ad.js").IRewordAdConfig;
11
- /**
12
- * 回调集合
13
- */
14
- callbackCollection: import("../typings/ad.js").CallbackCollection;
15
- /**
16
- * 广告执行成功的回调函数
17
- */
18
- resolve: Function;
19
- /**
20
- * 广告执行失败的回调函数
21
- */
22
- reject: Function;
23
- /**
24
- * 广告任务的唯一标识符
25
- */
26
- id: string;
27
- /**
28
- * 广告任务是否已成功解决
29
- */
30
- _isResolved: boolean;
31
- /**
32
- * 广告任务是否已被拒绝
33
- */
34
- _isRejected: boolean;
35
- };
36
- export type IConstructArgs = {
37
- /**
38
- * 广告执行选项
39
- */
40
- options?: object;
41
- /**
42
- * 是否打印日志
43
- */
44
- log?: boolean;
45
- };
46
- declare class AdExecuteManager {
47
- /**
48
- * 单例实例
49
- * @type {AdExecuteManager|null}
50
- */
51
- static _instance: AdExecuteManager | null;
52
- /**
53
- * 获取单例实例
54
- * @param {IConstructArgs} [args]
55
- * @returns {AdExecuteManager}
56
- */
57
- static getInstance(args?: IConstructArgs): AdExecuteManager;
58
- /**
59
- * 获取单例实例
60
- * @returns {AdExecuteManager}
61
- */
62
- static getSafeInstance(): AdExecuteManager;
63
- /**
64
- *
65
- * @param {IConstructArgs} args
66
- * @returns
67
- */
68
- constructor(args: IConstructArgs);
69
- /**
70
- * @type {Array.<AdTask>}
71
- */
72
- _taskStack: Array<AdTask>;
73
- /**
74
- * @type {Array.<AdTask>}
75
- */
76
- _currentBatchTasks: Array<AdTask>;
77
- /**
78
- * @type {boolean}
79
- */
80
- _isRunning: boolean;
81
- /**
82
- * @type {AdTask|null}
83
- */
84
- _currentTask: AdTask | null;
85
- logger: Logger;
86
- /**
87
- * 添加广告任务
88
- * @param {import('../ad/RewardAdFather.js').default} adInstance RewardAdFather的子类实例
89
- * @param {Object} ctx 广告执行上下文
90
- * @param {import('../typings/ad.js').IRewordAdConfig} ctx.options 广告执行选项
91
- * @param {import('../typings/ad.js').CallbackCollection} ctx.collection 回调集合
92
- * @returns {Promise} 广告执行结果的Promise
93
- */
94
- addTask(adInstance: import("../ad/RewardAdFather.js").default, ctx: {
95
- options: import("../typings/ad.js").IRewordAdConfig;
96
- collection: import("../typings/ad.js").CallbackCollection;
97
- }): Promise<any>;
98
- /**
99
- * 组合所有任务
100
- * @private
101
- */
102
- private _compose;
103
- /**
104
- * 清空任务栈并取消所有任务(包括正在执行的任务和middleware链中等待执行的任务)
105
- */
106
- clearTasks(): void;
107
- /**
108
- * 获取当前未完成的任务总数
109
- * 包括任务栈中待执行的任务和中间件链中未完成的任务
110
- * @returns {number} 未完成的任务数量
111
- */
112
- getTaskCount(): number;
113
- /**
114
- * 是否有任务正在运行
115
- * @returns {boolean}
116
- */
117
- isRunning(): boolean;
118
- /**
119
- * 获取当前执行的任务ID
120
- * @returns {string|null} 当前任务ID
121
- */
122
- getCurrentTaskId(): string | null;
123
- /**
124
- * 返回一个Promise,当任务队列中的所有任务都完成时resolve
125
- * @returns {Promise<void>} 当所有任务完成时resolve的Promise
126
- */
127
- whenAllTasksComplete(): Promise<void>;
128
- }
129
- import { Logger } from '../helper/Logger';
@@ -1,10 +0,0 @@
1
- export { CountRecorder } from "./CountRecorder.js";
2
- export { Logger } from "./Logger.js";
3
- export { SerializableError } from "./SerializableError.js";
4
- export { default as Storage } from "./Storage.js";
5
- export { default as PubSub } from "./PubSub.js";
6
- export { EventEmitter } from "./EventEmitter.js";
7
- export { default as AdAnalyticsJS } from "./AdAnalyticsJS.js";
8
- export { default as LovelUnlockManager } from "./LovelUnlockManager.js";
9
- export { default as RewardAdGlobalRecorder } from "./RewardAdGlobalRecorder.js";
10
- export { default as RewardAdSceneTriggerManager } from "./RewardAdSceneTriggerManager.js";
@@ -1 +0,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,t)=>{for(var i in t)__webpack_require__.o(t,i)&&!__webpack_require__.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__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__,{RewardAdNovel:()=>ad_RewardAdNovel,RewardAdFather:()=>ad_RewardAdFather,InterstitialAdFather:()=>ad_InterstitialAdFather,InterstitialAdNovel:()=>ad_InterstitialAdNovel});const compose=e=>e.map(e=>(t,i)=>async s=>await e(Object.assign({},t,s),i)).reduce((e,t)=>(i,s)=>e(i,t(i,s))),core_compose=compose;class Logger{constructor(e={}){const{prefix:t="Logger",level:i="log",enabled:s=!0}=e;this.prefix=t,this.enabled=s,this.levels={error:0,warn:1,info:2,log:3,debug:4},this.currentLevel=this.levels[i]||this.levels.log}enable(){this.enabled=!0}disable(){this.enabled=!1}isEnabled(){return this.enabled}setLevel(e){Object.prototype.hasOwnProperty.call(this.levels,e)&&(this.currentLevel=this.levels[e])}formatMessage(e,t){let i=new Date,s=`${i.getFullYear()}/${i.getMonth()+1}/${i.getDate()} ${i.getHours()}:${i.getMinutes()}:${i.getSeconds()}`;return`[${s}] [${e.toUpperCase()}] [${this.prefix}] ${t}`}_log(e,t,...i){if(!this.enabled)return;let s=this.levels[e];if(void 0!==s&&this.currentLevel>=s){let s=this.formatMessage(e,t);switch(e){case"error":console.error(s,...i);break;case"warn":console.warn(s,...i);break;case"info":console.info(s,...i);break;case"log":default:console.log(s,...i);break;case"debug":console.debug(s,...i)}}}error(e,...t){this._log("error",e,...t)}warn(e,...t){this._log("warn",e,...t)}info(e,...t){this._log("info",e,...t)}log(e,...t){this._log("log",e,...t)}debug(e,...t){this._log("debug",e,...t)}}class AdExecuteManager{static _instance=null;_taskStack=[];_currentBatchTasks=[];_isRunning=!1;_currentTask=null;constructor(e){if(this.logger=new Logger({prefix:"AdExecuteManager",enabled:!!e?.log}),AdExecuteManager._instance)return AdExecuteManager._instance;AdExecuteManager._instance=this}static getInstance(e){return AdExecuteManager._instance||(AdExecuteManager._instance=new AdExecuteManager(e)),AdExecuteManager._instance}static getSafeInstance(){return AdExecuteManager._instance?AdExecuteManager._instance:(this.logger.error("AdExecuteManager实例不存在"),null)}addTask(e,t){return e&&"function"==typeof e.ad?new Promise((i,s)=>{let r={adInstance:e,options:t.options??{},callbackCollection:t.collection??{},resolve:i,reject:s,id:`ad_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,_isResolved:!1,_isRejected:!1};this._taskStack.push(r),this._isRunning||this._compose()}):(this.logger.error("无效的广告实例 请正确实现.ad方法"),Promise.reject(Error("无效的广告实例")))}_compose(){if(0===this._taskStack.length){this._isRunning=!1,this._currentTask=null;return}this._isRunning=!0;let e=[...this._taskStack];this._taskStack=[],this._currentBatchTasks=e;let t=e.map(e=>async(t,i)=>{let{adInstance:s,options:r,callbackCollection:n,resolve:l,id:o}=e;if(e._isResolved||e._isRejected)return void await i(t);this._currentTask=e;try{let a=async e=>{await i(Object.assign({},t,e))},d=await s.initialize(r).ad({options:r,collection:n},a),h=Object.assign({id:o},d);this.logger.info(`任务执行成功,成功信息:${JSON.stringify(h)}`),e._isResolved=!0,l(h),s?.record(h)}catch(n){let r=Object.assign({id:o,apiError:n});this.logger.error(`任务执行失败, 继续下一个任务,错误信息:${JSON.stringify(r)}`),e._isRejected=!0;try{s?.clear()}catch(e){this.logger.error("clear error: ",JSON.stringify(Object.assign({id:o,apiError:e})))}l(r),s?.record(r),await i(t)}}),i={roundTasks:t.length};compose(t)(i,async e=>{this.logger.info("本轮活动队列已经清空",e),this._taskStack.length>0?Promise.resolve().then(()=>{this._compose()}):(this._isRunning=!1,this._currentTask=null,this._currentBatchTasks=[])})()}clearTasks(){if(this._currentTask){if(this._currentTask._isResolved||this._currentTask._isRejected){this._currentTask=null;return}try{this._currentTask.callbackCollection&&this._currentTask.callbackCollection.onCancel&&this._currentTask.callbackCollection.onCancel(),this._currentTask._isResolved=!0,this._currentTask.resolve()}catch(e){this.logger.error("clear current task error: ",e)}this._currentTask=null}this._currentBatchTasks.length>0&&(this._currentBatchTasks.forEach(e=>{if(e!==this._currentTask&&!e._isResolved&&!e._isRejected)try{e.callbackCollection&&e.callbackCollection.onCancel&&e.callbackCollection.onCancel(),e._isResolved=!0,e.resolve()}catch(e){this.logger.error("clear current batch task error: ",e)}}),this._currentBatchTasks=[]),this._taskStack.forEach(e=>{if(!e._isResolved&&!e._isRejected&&(e._isResolved=!0,e.resolve(),e.callbackCollection&&e.callbackCollection.onCancel))try{e.callbackCollection.onCancel()}catch(e){this.logger.error("clear task error: ",e)}}),this._taskStack=[],this._isRunning=!1}getTaskCount(){return this._taskStack.filter(e=>!e._isResolved&&!e._isRejected).length+this._currentBatchTasks.filter(e=>e!==this._currentTask&&!e._isResolved&&!e._isRejected).length+(!this._currentTask||this._currentTask._isResolved||this._currentTask._isRejected?0:1)}isRunning(){return this._isRunning}getCurrentTaskId(){return this._currentTask?.id||null}whenAllTasksComplete(){return new Promise(e=>{let t=null,i=()=>{let s=0===this._taskStack.length,r=!this._isRunning,n=null===this._currentTask,l=0===this._currentBatchTasks.length||this._currentBatchTasks.every(e=>e._isResolved||e._isRejected);s&&r&&n&&l?(t&&clearTimeout(t),e()):t=setTimeout(i,500)};i()})}}const core_AdExecuteManager=AdExecuteManager;class SerializableError extends Error{constructor(e){super(e),this.name=this.constructor.name,this.stack=Error(e).stack,Object.defineProperty(this,"message",{enumerable:!0}),Object.defineProperty(this,"name",{enumerable:!0}),Object.defineProperty(this,"stack",{enumerable:!0})}toJSON(){return{name:this.name,message:this.message,stack:this.stack}}}class RewardAdFather{static args=null;_initSign="";_preserveOnEnd=!1;_rewardAd=null;_ttErrorMsgs=["The adUnitId is closed","The adUnitId is prohibit","The adUnitId is invalid","The adUnitId is empty","feature is not supported in app"];_ttErrorCodes=[139902,123302];constructor(e){this._initSign=e?.sign??"",this._adConfig=e?.adConfig??{},this._preserveOnEnd=e?.preserveOnEnd??!1}initialize(e,t){if(this._rewardAd)return console.warn("RewardAdFather: rewardAd has been initialized"),t?.(this._rewardAd),this;let i=Object.assign({},RewardAdFather.args,this._adConfig,e);if(!i.adUnitId)throw console.error("[RewardAdFather] reward args adUnitId is required",i),new SerializableError("[RewardAdFather] reward args adUnitId is required");return this._rewardAd=tt.createRewardedVideoAd(i),t?.(this._rewardAd),this}initialized(){return!!this._rewardAd}async ad(e,t=null){throw Error("子类必须实现ad方法")}async addExecuteManager(e){let t=Object.assign({},this._adConfig,e?.options??{});return RewardAdFather.executeWithManager(this,Object.assign({},e,{options:t}))}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:"rewardAd is null"})}load(){return this._rewardAd?this._rewardAd.load():Promise.reject({errMsg:"rewardAd is null"})}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){e?.adUnitId||console.error("[RewardAdFather] RewardParams.adUnitId is required"),RewardAdFather.args=e}static async executeWithManager(e,t){return e&&e instanceof RewardAdFather?AdExecuteManager.getInstance({log:t?.options?.log??!0}).addTask(e,t):(console.error("RewardAdFather: executeWithManager - 无效的广告实例"),Promise.reject(Error("无效的广告实例")))}}const ad_RewardAdFather=RewardAdFather;function matchErrorWithKeywords(e,t){return!!t&&e.some(e=>RegExp(e,"i").test(t))}function getAdSceneTextObj(e){return Object.entries(e).reduce((e,[t,i])=>(e[i]=Number(t),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,[t,i])=>(e[i]=t,e),{});class RewardAdNovel extends ad_RewardAdFather{_onHalfway=null;_onShow=null;_onFinish=null;_onAlways=null;_onError=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){super(e),this._initSign=e?.sign??"",this._adConfig=e?.adConfig??{},this._needEndOnTimeout=e?.needEndOnTimeout??!0,this._onHalfway=e?.collection?.onHalfway??null,this._onShow=e?.collection?.onShow??null,this._onFinish=e?.collection?.onFinish??null,this._onAlways=e?.collection?.onAlways??null,this._onError=e?.collection?.onError??null}initialize(e,t){return super.initialize(e,t),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:e?.retry})}_onInnerExecuteBefore(){return null}_onInnerAdShowSuccess(){return null}_setAdTimeout(e){if(this._needSpeedEndOnTimeout&&(this._adSpeedCloseTimer=setTimeout(()=>{if("ios"==tt.getSystemInfoSync().platform){let t=()=>{tt.offAppShow(t),console.warn("[RewardAdNovel] ad_show_timeout: ios platform close ad onAppShow, handling fallback ad case, scene:",e?.scene);let i="ad_show_timeout: ios platform close ad onAppShow";this._adShowFailureAnalytics({scene:e?.scene,msg:i,errorCode:0,result:0}),this._adTimeout&&clearTimeout(this._adTimeout),e?.end({resolvedValue:{apiError:{errMsg:i}},nextValue:null})};tt.onAppShow(t)}clearTimeout(this._adSpeedCloseTimer)},this._adSpeedCloseTime)),this._needEndOnTimeout){let t=e?.timeout??this._adTimeoutTime;this._adTimeout=setTimeout(()=>{console.warn("[RewardAdNovel] Ad show timeout, handling fallback ad case,",`scene: ${e?.scene},timeout: ${t}`),this._adShowFailureAnalytics({scene:e?.scene,msg:"ad_show_timeout: normal",errorCode:0,result:0}),e?.end({resolvedValue:{apiError:{errMsg:"ad_show_timeout: normal",errorCode:0}},nextValue:null})},t)}}_adPreludeInterval(e){e.prelude?.({scene:e?.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()}),this._adBeforeShowTimer=setInterval(()=>{e.prelude?.({scene:e?.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()})},this._adBeforeShowTime)}_clearAdTimeout(){this._adTimeout&&(clearTimeout(this._adTimeout),this._adTimeout=null),this._adBeforeShowTimer&&(clearTimeout(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,t=null){return this._alwaysCallback=e?.collection?.always,this._halfwayCallback=e?.collection?.halfway,this._finishedCallback=e?.collection?.finished,this._onInnerExecuteBefore(),new Promise(i=>{this._adInner({options:{scene:e?.options?.scene,timeout:e?.options?.timeout},collection:{resolve:i,before:e.collection?.before,success:e.collection?.success,prelude:e.collection?.prelude}},t)})}_adInner(e,t=null){let i=e?.collection?.resolve,s=e?.options?.scene??this._scene??DEFAULT_SCENT_TEXT_OBJ.inner_default_other,r=e?.collection?.before,n=e?.collection?.success,l=e?.collection?.prelude,o=e=>{this._clearAdTimeout(),this.adDestroy(),i?.(Object.assign({scene:s,adTypeR:this._adTypeR},e?.resolvedValue)),t?.(Object.assign({scene:s},e?.nextValue))},a=()=>{this._scene=s,r?.({scene:s}),this._before=r,this._onShow?.({scene:s}),this._adShowBeforeAnalytics({scene:s}),this._resolve=i,this._next=t,this._setAdTimeout({scene:s,end:o,timeout:e?.options?.timeout}),this._adPreludeInterval({scene:s,prelude:l}),this.adShow().then(()=>{this._clearAdTimeout(),n?.({scene:s}),this._success=n,this._adShowSuccessAnalytics({scene:s,result:1}),this._onInnerAdShowSuccess()}).catch(e=>{(this._clearAdTimeout(),this._adShowFailureAnalytics({scene:s,msg:e?.errMsg,errorCode:e?.errorCode,result:0}),matchErrorWithKeywords(this._ttErrorMsgs,e?.errMsg)||this._ttErrorCodes.includes(e?.errorCode))?o({scene:s,resolvedValue:{apiError:e},nextValue:null}):0>=this.novelConfig.remain()?o({scene:s,resolvedValue:null,nextValue:null}):(this.novelConfig.updateRetry(),this.adLoad().then(()=>{this._adLoadSuccessAnalytics({scene:s,result:1}),a()}).catch(e=>{this._adLoadFailureAnalytics({scene:s,msg:e?.errMsg,result:0}),o({scene:s,resolvedValue:{apiError:e},nextValue:null})}))})};a()}adLoad(){return this.load()}adShow(){return this.show()}_outerCloseCallback(e){this._alwaysCallback?.(e)}_outerHalfwayCallback(e){this._halfwayCallback?.(e)}_outerFinishedCallback(e){this._finishedCallback?.(e)}adCloseLister(e){this._clearAdTimeout(),this._adCloseSuccessAnalytics({scene:this._scene,ad_is_completed:+!!e.isEnded,ad_count:e.count});let t={...e,scene:this._scene},i=t=>{this.adDestroy(),this._resolve?.(Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR},t)),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null};e?.isEnded?(this._outerFinishedCallback(t),this._onFinish?.(t)):(this._outerHalfwayCallback(t),this._onHalfway?.(t)),this._outerCloseCallback(t),this._onAlways?.(t),i({end_type:e.isEnded?"finished":"halfway"})}adErrorLister(e){this._clearAdTimeout(),console.error("[RewardAdNovel] adErrorLister",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:e?.errMsg,errorCode:e?.errorCode,result:0}),this.adDestroy(),this._onError?.(e),this._resolve?.({apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null}apiAdErrorLister(e){this._clearAdTimeout(),console.error("[API RewardAdNovel] apiAdErrorLister:",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:e?.errMsg,errorCode:e?.errorCode,result:0}),this.adDestroy(),this._onError?.(e),this._resolve?.({apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null}adLoadLister(e){this._adLoadSuccessAnalytics({scene:this._scene,result:1,msg:e?.errMsg}),console.info("[RewardAdNovel] adLoadLister:",JSON.stringify({scene:this._scene,info: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.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.destroy(),this._resolve=null,this._next=null,this._success=null,this._before=null}_shiftCloseLister(e){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.offClose(this._bindShiftCloseLister),this.destroy(),this._resolve?.(Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null}_shiftErrorLister(e){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.offError(this._bindShiftErrorLister),this.destroy(),this._resolve?.(Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,this._next?.(),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=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 ad_RewardAdNovel=RewardAdNovel;class InterstitialAdFather{static args=null;_initSign="";_preserveOnEnd=!1;_interstitialAd=null;_ttErrorMsgs=["The adUnitId is closed","The adUnitId is prohibit","The adUnitId is invalid","The adUnitId is empty","feature is not supported in app"];_ttErrorCodes=[139902,123302,140502];constructor(e){this._initSign=e?.sign??"",this._adConfig=e?.adConfig??{},this._preserveOnEnd=e?.preserveOnEnd??!1}initialize(e,t){if(this._interstitialAd)return console.warn("InterstitialAdFather: interstitialAd has been initialized"),t?.(this._interstitialAd),this;let i=Object.assign({},InterstitialAdFather.args,this._adConfig,e);if(!i.adUnitId)throw console.error("[InterstitialAdFather] interstitialAd args adUnitId is required",i),new SerializableError("[InterstitialAdFather] interstitialAd args adUnitId is required");return this._interstitialAd=tt.createInterstitialAd(i),t?.(this._interstitialAd),this}initialized(){return!!this._interstitialAd}async ad(e,t=null){throw Error("子类必须实现ad方法")}async addExecuteManager(e){let t=Object.assign({},this._adConfig,e?.options??{});return InterstitialAdFather.executeWithManager(this,Object.assign({},e,{options:t}))}destroy(){this._interstitialAd&&!this._preserveOnEnd&&(this._interstitialAd.destroy(),this._interstitialAd=null)}clear(){throw Error("子类必须实现clear方法")}record(e){return this}onClose(e){this._interstitialAd&&this._interstitialAd.onClose(e)}offClose(e){this._interstitialAd&&this._interstitialAd.offClose(e)}show(){return this._interstitialAd?this._interstitialAd.show():Promise.reject({errMsg:"interstitialAd is null"})}load(){return this._interstitialAd?this._interstitialAd.load():Promise.reject({errMsg:"interstitialAd is null"})}onError(e){this._interstitialAd&&this._interstitialAd.onError(e)}offError(e){this._interstitialAd&&this._interstitialAd.offError(e)}onLoad(e){this._interstitialAd&&this._interstitialAd.onLoad(e)}offLoad(e){this._interstitialAd&&this._interstitialAd.offLoad(e)}placeholder(){return null}static buildArgs(e){e?.adUnitId||console.error("[InterstitialAdFather] interstitialAdParams.adUnitId is required"),InterstitialAdFather.args=e}static async executeWithManager(e,t){return e&&e instanceof InterstitialAdFather?AdExecuteManager.getInstance({log:t?.options?.log??!0}).addTask(e,t):(console.error("InterstitialAdFather: executeWithManager - 无效的广告实例"),Promise.reject(Error("无效的广告实例")))}}const ad_InterstitialAdFather=InterstitialAdFather;class InterstitialAdNovel extends ad_InterstitialAdFather{_onHalfway=null;_onShow=null;_onFinish=null;_onAlways=null;_onError=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_INTERSTITIAL;_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){super(e),this._initSign=e?.sign??"",this._adConfig=e?.adConfig??{},this._needEndOnTimeout=e?.needEndOnTimeout??!0,this._onHalfway=e?.collection?.onHalfway??null,this._onShow=e?.collection?.onShow??null,this._onFinish=e?.collection?.onFinish??null,this._onAlways=e?.collection?.onAlways??null,this._onError=e?.collection?.onError??null}initialize(e,t){return super.initialize(e,t),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=InterstitialAdNovel_RewardAdNovelConfig.new({retry:e?.retry})}_onInnerExecuteBefore(){return null}_onInnerAdShowSuccess(){return null}_setAdTimeout(e){this._needSpeedEndOnTimeout&&(this._adSpeedCloseTimer=setTimeout(()=>{if("ios"==tt.getSystemInfoSync().platform){let t=()=>{tt.offAppShow(t),console.warn("[InterstitialAdNovel] ad_show_timeout: ios platform close ad onAppShow, handling fallback ad case, scene:",e?.scene);let i="ad_show_timeout: ios platform close ad onAppShow";this._adShowFailureAnalytics({scene:e?.scene,msg:i,errorCode:0,result:0}),this._adTimeout&&clearTimeout(this._adTimeout),e?.end({resolvedValue:{apiError:{errMsg:i}},nextValue:null})};tt.onAppShow(t)}clearTimeout(this._adSpeedCloseTimer)},this._adSpeedCloseTime)),this._needEndOnTimeout&&(this._adTimeout=setTimeout(()=>{console.warn("[InterstitialAdNovel] Ad show timeout, handling fallback ad case, scene:",e?.scene),this._adShowFailureAnalytics({scene:e?.scene,msg:"ad_show_timeout: normal",errorCode:0,result:0}),e?.end({resolvedValue:{apiError:{errMsg:"ad_show_timeout: normal"}},nextValue:null})},this._adTimeoutTime))}_adPreludeInterval(e){e.prelude?.({scene:e?.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()}),this._adBeforeShowTimer=setInterval(()=>{e.prelude?.({scene:e?.scene,frequency:this._adBeforeShowTime,time:new Date().getTime()})},this._adBeforeShowTime)}_clearAdTimeout(){this._adTimeout&&(clearTimeout(this._adTimeout),this._adTimeout=null),this._adBeforeShowTimer&&(clearTimeout(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,t=null){return this._alwaysCallback=e?.collection?.always,this._halfwayCallback=e?.collection?.halfway,this._finishedCallback=e?.collection?.finished,this._onInnerExecuteBefore(),new Promise(i=>{this._adInner({options:{scene:e?.options?.scene},collection:{resolve:i,before:e.collection?.before,success:e.collection?.success,prelude:e.collection?.prelude}},t)})}_adInner(e,t=null){let i=e?.collection?.resolve,s=e?.options?.scene??this._scene??DEFAULT_SCENT_TEXT_OBJ.inner_default_other,r=e?.collection?.before,n=e?.collection?.success,l=e?.collection?.prelude,o=e=>{this._clearAdTimeout(),this.adDestroy(),i?.(Object.assign({scene:s,adTypeR:this._adTypeR},e?.resolvedValue)),t?.(Object.assign({scene:s},e?.nextValue))},a=()=>{this._scene=s,r?.({scene:s}),this._before=r,this._onShow?.({scene:s}),this._adShowBeforeAnalytics({scene:s}),this._resolve=i,this._next=t,this._setAdTimeout({scene:s,end:o}),this._adPreludeInterval({scene:s,prelude:l}),this.adShow().then(()=>{this._clearAdTimeout(),n?.({scene:s}),this._success=n,this._adShowSuccessAnalytics({scene:s,result:1}),this._onInnerAdShowSuccess()}).catch(e=>{(this._clearAdTimeout(),this._adShowFailureAnalytics({scene:s,msg:e?.errMsg,errorCode:e?.errorCode,result:0}),matchErrorWithKeywords(this._ttErrorMsgs,e?.errMsg)||this._ttErrorCodes.includes(e?.errorCode))?o({scene:s,resolvedValue:{apiError:e},nextValue:null}):0>=this.novelConfig.remain()?o({scene:s,resolvedValue:null,nextValue:null}):(this.novelConfig.updateRetry(),this.adLoad().then(()=>{this._adLoadSuccessAnalytics({scene:s,result:1}),a()}).catch(e=>{this._adLoadFailureAnalytics({scene:s,msg:e?.errMsg,result:0}),o({scene:s,resolvedValue:{apiError:e},nextValue:null})}))})};a()}adLoad(){return this.load()}adShow(){return this.show()}_outerCloseCallback(e){this._alwaysCallback?.(e)}_outerHalfwayCallback(e){this._halfwayCallback?.(e)}_outerFinishedCallback(e){this._finishedCallback?.(e)}adCloseLister(){this._clearAdTimeout(),this._adCloseSuccessAnalytics({scene:this._scene,ad_is_completed:1});let e={scene:this._scene},t=e=>{this.adDestroy(),this._resolve?.(Object.assign({},{scene:this._scene,adTypeR:this._adTypeR},e)),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null};this._outerFinishedCallback(e),this._onFinish?.(e),this._outerHalfwayCallback(e),this._onHalfway?.(e),this._outerCloseCallback(e),this._onAlways?.(e),t({end_type:"finished"})}adErrorLister(e){this._clearAdTimeout(),console.error("[InterstitialAdNovel] adErrorLister",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:e?.errMsg,errorCode:e?.errorCode,result:0}),this._onError?.(e),0>=this.novelConfig.remain()&&(this.adDestroy(),this._resolve?.({apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null)}apiAdErrorLister(e){this._clearAdTimeout(),console.error("[API InterstitialAdNovel] apiAdErrorLister:",JSON.stringify(e)),this._adShowFailureAnalytics({scene:this._scene,msg:e?.errMsg,errorCode:e?.errorCode,result:0}),this.adDestroy(),this._onError?.(e),this._resolve?.({apiError:e,scene:this._scene,adTypeR:this._adTypeR}),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null}adLoadLister(e){this._adLoadSuccessAnalytics({scene:this._scene,result:1,msg:e?.errMsg}),console.info("[InterstitialAdNovel] adLoadLister:",JSON.stringify({scene:this._scene,info: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.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.destroy(),this._resolve=null,this._next=null,this._success=null,this._before=null}_shiftCloseLister(e){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.offClose(this._bindShiftCloseLister),this.destroy(),this._resolve?.(Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,this._next?.(),this._next=null,this._success=null,this._before=null}_shiftErrorLister(e){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.offError(this._bindShiftErrorLister),this.destroy(),this._resolve?.(Object.assign({},e,{scene:this._scene,adTypeR:this._adTypeR})),this._resolve=null,this._next?.(),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 InterstitialAdNovel.instance||(InterstitialAdNovel.instance=new InterstitialAdNovel(e)),InterstitialAdNovel.instance}static getInstance(){if(!InterstitialAdNovel.instance)throw Error("InterstitialAdNovel instance is not init");return InterstitialAdNovel.instance}static new(e){return new InterstitialAdNovel(e)}}class InterstitialAdNovel_RewardAdNovelConfig{frequency={total:0,current:0};constructor(e){this._init(e)}_init(e){this._adTimes(e)}_adTimes(e){this.frequency.total=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 InterstitialAdNovel_RewardAdNovelConfig(e)}}const ad_InterstitialAdNovel=InterstitialAdNovel;for(var __rspack_i in exports.InterstitialAdFather=__webpack_exports__.InterstitialAdFather,exports.InterstitialAdNovel=__webpack_exports__.InterstitialAdNovel,exports.RewardAdFather=__webpack_exports__.RewardAdFather,exports.RewardAdNovel=__webpack_exports__.RewardAdNovel,__webpack_exports__)-1===["InterstitialAdFather","InterstitialAdNovel","RewardAdFather","RewardAdNovel"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,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,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__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_AdExecuteManager,compose:()=>core_compose});const compose=e=>e.map(e=>(t,r)=>async s=>await e(Object.assign({},t,s),r)).reduce((e,t)=>(r,s)=>e(r,t(r,s))),core_compose=compose;class Logger{constructor(e={}){const{prefix:t="Logger",level:r="log",enabled:s=!0}=e;this.prefix=t,this.enabled=s,this.levels={error:0,warn:1,info:2,log:3,debug:4},this.currentLevel=this.levels[r]||this.levels.log}enable(){this.enabled=!0}disable(){this.enabled=!1}isEnabled(){return this.enabled}setLevel(e){Object.prototype.hasOwnProperty.call(this.levels,e)&&(this.currentLevel=this.levels[e])}formatMessage(e,t){let r=new Date,s=`${r.getFullYear()}/${r.getMonth()+1}/${r.getDate()} ${r.getHours()}:${r.getMinutes()}:${r.getSeconds()}`;return`[${s}] [${e.toUpperCase()}] [${this.prefix}] ${t}`}_log(e,t,...r){if(!this.enabled)return;let s=this.levels[e];if(void 0!==s&&this.currentLevel>=s){let s=this.formatMessage(e,t);switch(e){case"error":console.error(s,...r);break;case"warn":console.warn(s,...r);break;case"info":console.info(s,...r);break;case"log":default:console.log(s,...r);break;case"debug":console.debug(s,...r)}}}error(e,...t){this._log("error",e,...t)}warn(e,...t){this._log("warn",e,...t)}info(e,...t){this._log("info",e,...t)}log(e,...t){this._log("log",e,...t)}debug(e,...t){this._log("debug",e,...t)}}class AdExecuteManager{static _instance=null;_taskStack=[];_currentBatchTasks=[];_isRunning=!1;_currentTask=null;constructor(e){if(this.logger=new Logger({prefix:"AdExecuteManager",enabled:!!e?.log}),AdExecuteManager._instance)return AdExecuteManager._instance;AdExecuteManager._instance=this}static getInstance(e){return AdExecuteManager._instance||(AdExecuteManager._instance=new AdExecuteManager(e)),AdExecuteManager._instance}static getSafeInstance(){return AdExecuteManager._instance?AdExecuteManager._instance:(this.logger.error("AdExecuteManager实例不存在"),null)}addTask(e,t){return e&&"function"==typeof e.ad?new Promise((r,s)=>{let a={adInstance:e,options:t.options??{},callbackCollection:t.collection??{},resolve:r,reject:s,id:`ad_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,_isResolved:!1,_isRejected:!1};this._taskStack.push(a),this._isRunning||this._compose()}):(this.logger.error("无效的广告实例 请正确实现.ad方法"),Promise.reject(Error("无效的广告实例")))}_compose(){if(0===this._taskStack.length){this._isRunning=!1,this._currentTask=null;return}this._isRunning=!0;let e=[...this._taskStack];this._taskStack=[],this._currentBatchTasks=e;let t=e.map(e=>async(t,r)=>{let{adInstance:s,options:a,callbackCollection:c,resolve:n,id:i}=e;if(e._isResolved||e._isRejected)return void await r(t);this._currentTask=e;try{let o=async e=>{await r(Object.assign({},t,e))},l=await s.initialize(a).ad({options:a,collection:c},o),_=Object.assign({id:i},l);this.logger.info(`任务执行成功,成功信息:${JSON.stringify(_)}`),e._isResolved=!0,n(_),s?.record(_)}catch(c){let a=Object.assign({id:i,apiError:c});this.logger.error(`任务执行失败, 继续下一个任务,错误信息:${JSON.stringify(a)}`),e._isRejected=!0;try{s?.clear()}catch(e){this.logger.error("clear error: ",JSON.stringify(Object.assign({id:i,apiError:e})))}n(a),s?.record(a),await r(t)}}),r={roundTasks:t.length};core_compose(t)(r,async e=>{this.logger.info("本轮活动队列已经清空",e),this._taskStack.length>0?Promise.resolve().then(()=>{this._compose()}):(this._isRunning=!1,this._currentTask=null,this._currentBatchTasks=[])})()}clearTasks(){if(this._currentTask){if(this._currentTask._isResolved||this._currentTask._isRejected){this._currentTask=null;return}try{this._currentTask.callbackCollection&&this._currentTask.callbackCollection.onCancel&&this._currentTask.callbackCollection.onCancel(),this._currentTask._isResolved=!0,this._currentTask.resolve()}catch(e){this.logger.error("clear current task error: ",e)}this._currentTask=null}this._currentBatchTasks.length>0&&(this._currentBatchTasks.forEach(e=>{if(e!==this._currentTask&&!e._isResolved&&!e._isRejected)try{e.callbackCollection&&e.callbackCollection.onCancel&&e.callbackCollection.onCancel(),e._isResolved=!0,e.resolve()}catch(e){this.logger.error("clear current batch task error: ",e)}}),this._currentBatchTasks=[]),this._taskStack.forEach(e=>{if(!e._isResolved&&!e._isRejected&&(e._isResolved=!0,e.resolve(),e.callbackCollection&&e.callbackCollection.onCancel))try{e.callbackCollection.onCancel()}catch(e){this.logger.error("clear task error: ",e)}}),this._taskStack=[],this._isRunning=!1}getTaskCount(){return this._taskStack.filter(e=>!e._isResolved&&!e._isRejected).length+this._currentBatchTasks.filter(e=>e!==this._currentTask&&!e._isResolved&&!e._isRejected).length+(!this._currentTask||this._currentTask._isResolved||this._currentTask._isRejected?0:1)}isRunning(){return this._isRunning}getCurrentTaskId(){return this._currentTask?.id||null}whenAllTasksComplete(){return new Promise(e=>{let t=null,r=()=>{let s=0===this._taskStack.length,a=!this._isRunning,c=null===this._currentTask,n=0===this._currentBatchTasks.length||this._currentBatchTasks.every(e=>e._isResolved||e._isRejected);s&&a&&c&&n?(t&&clearTimeout(t),e()):t=setTimeout(r,500)};r()})}}const core_AdExecuteManager=AdExecuteManager;for(var __rspack_i in exports.AdExecuteManager=__webpack_exports__.AdExecuteManager,exports.compose=__webpack_exports__.compose,__webpack_exports__)-1===["AdExecuteManager","compose"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,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,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__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__,{EventEmitter:()=>EventEmitter_EventEmitter,PubSub:()=>EventEmitter,Storage:()=>helper_Storage,LovelUnlockManager:()=>helper_LovelUnlockManager,RewardAdGlobalRecorder:()=>helper_RewardAdGlobalRecorder,CountRecorder:()=>CountRecorder,RewardAdSceneTriggerManager:()=>helper_RewardAdSceneTriggerManager,AdAnalyticsJS:()=>helper_AdAnalyticsJS,Logger:()=>Logger,SerializableError:()=>SerializableError});class Logger{constructor(e={}){const{prefix:t="Logger",level:r="log",enabled:n=!0}=e;this.prefix=t,this.enabled=n,this.levels={error:0,warn:1,info:2,log:3,debug:4},this.currentLevel=this.levels[r]||this.levels.log}enable(){this.enabled=!0}disable(){this.enabled=!1}isEnabled(){return this.enabled}setLevel(e){Object.prototype.hasOwnProperty.call(this.levels,e)&&(this.currentLevel=this.levels[e])}formatMessage(e,t){let r=new Date,n=`${r.getFullYear()}/${r.getMonth()+1}/${r.getDate()} ${r.getHours()}:${r.getMinutes()}:${r.getSeconds()}`;return`[${n}] [${e.toUpperCase()}] [${this.prefix}] ${t}`}_log(e,t,...r){if(!this.enabled)return;let n=this.levels[e];if(void 0!==n&&this.currentLevel>=n){let n=this.formatMessage(e,t);switch(e){case"error":console.error(n,...r);break;case"warn":console.warn(n,...r);break;case"info":console.info(n,...r);break;case"log":default:console.log(n,...r);break;case"debug":console.debug(n,...r)}}}error(e,...t){this._log("error",e,...t)}warn(e,...t){this._log("warn",e,...t)}info(e,...t){this._log("info",e,...t)}log(e,...t){this._log("log",e,...t)}debug(e,...t){this._log("debug",e,...t)}}class Storage{constructor(e={}){this.config={prefix:"storage_",expire:null,...e},this.logger=new Logger({prefix:"Storage"})}getTodayEndTimestamp(){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999).getTime()}_setItem(e,t,r){let n=void 0!==r?r:this.config.expire;"today"===n&&(n=this.getTodayEndTimestamp()-Date.now());let s={value:t,expire:n,timestamp:Date.now()};try{tt.setStorageSync(e,JSON.stringify(s))}catch(e){console.error("Storage setItem error:",e)}}_getItem(e){try{let t=tt.getStorageSync(e);if(!t)return null;let r=JSON.parse(t);if(r.expire&&Date.now()-r.timestamp>r.expire)return this.removeItem(e),null;return r.value}catch(e){return console.error("Storage getItem error:",e),null}}setItem(e,t,r){let n=this.config.prefix+e;return this._setItem(n,t,r)}getItem(e){let t=this.config.prefix+e;return this._getItem(t)}getUserItem(e){let t=this.config.userId??"null";if("null"===t)return this.logger.error("userId is required"),null;let r=`${this.config.prefix}_${t}_${e}`;return this._getItem(r)}setUserItem(e,t,r){let n=this.config.userId??"null";if("null"===n)return void this.logger.error("userId is required");let s=`${this.config.prefix}_${n}_${e}`;return this._setItem(s,t,r)}removeItem(e){try{tt.removeStorageSync(e)}catch(e){console.error("Storage removeItem error:",e)}}clear(){try{tt.clearStorageSync()}catch(e){console.error("Storage clear error:",e)}}keys(){try{let e=[];return(tt.getStorageInfoSync().keys??[]).forEach(t=>{if(t.startsWith(this.config.prefix)){let r=JSON.parse(tt.getStorageSync(t));(!r.expire||Date.now()-r.timestamp<=r.expire)&&e.push(t.replace(this.config.prefix,""))}}),e}catch(e){return console.error("Storage keys error:",e),[]}}static new(e){return new Storage(e)}}const helper_Storage=Storage;class CountRecorder{_total=0;_local_sign="";_expire="today";constructor(e){if(this.storage=helper_Storage.new({userId:e.userId}),!e.local_sign)throw Error("local_sign is required");this._local_sign=e.local_sign,this._total=e.total??0,this._expire=e.expire??"today",this._init()}_init(){this._initLocalTimes()}_adTimes(){return this._total}_safeLocalValue(e){return"object"!=typeof e||null===e?{}:e}_initLocalTimes(){let e=this._adTimes(),t=this.storage.getUserItem(this._local_sign),r=this._safeLocalValue(t);r&&r?.total==e||this.storage.setUserItem(this._local_sign,{total:e,today:r?.today??0},this._expire)}updateToday(){let e=this._adTimes(),t=this.storage.getUserItem(this._local_sign),r=this._safeLocalValue(t),n=r?.today??0;this.storage.setUserItem(this._local_sign,{total:e,today:n+1},this._expire)}remain(){let e=this.storage.getUserItem(this._local_sign),t=this._safeLocalValue(e),r=t?.today??0;return Number(t?.total??0)-Number(r)}static new(e){return new CountRecorder(e)}}class SerializableError extends Error{constructor(e){super(e),this.name=this.constructor.name,this.stack=Error(e).stack,Object.defineProperty(this,"message",{enumerable:!0}),Object.defineProperty(this,"name",{enumerable:!0}),Object.defineProperty(this,"stack",{enumerable:!0})}toJSON(){return{name:this.name,message:this.message,stack:this.stack}}}class EventEmitter{constructor(){this.events={}}on(e,t){return this.events[e]||(this.events[e]=[]),this.events[e].push(t),()=>{this.off(e,t)}}off(e,t){if(this.events[e]){if(!t){this.events[e]=[];return}this.events[e]=this.events[e].filter(e=>e!==t)}}emit(e,...t){this.events[e]&&this.events[e].forEach(r=>{try{r(...t)}catch(t){console.error(`Error in event listener for ${e}:`,t)}})}once(e,t){let r=(...n)=>{t(...n),this.off(e,r)};this.on(e,r)}listenerCount(e){return this.events[e]?this.events[e].length:0}removeAllListeners(){this.events={}}}class EventEmitter_EventEmitter{constructor(e={}){this.events={},this.queues={},this.onceEvents={},this.maxListeners=e.maxListeners||5,this.maxQueueSize=e.maxQueueSize||1,this.maxOnceEvents=e.maxOnceEvents||5}on(e,t){(this.events[e]||(this.events[e]=[]),this.events[e].length>=this.maxListeners)?console.warn(`EventEmitter: Maximum listeners (${this.maxListeners}) reached for event "${e}". Listener not added.`):(this.events[e].push(t),this.queues[e]&&this.queues[e].length>0&&(this.queues[e].forEach(e=>{t(...e)}),this.queues[e]=[]))}once(e,t){let r=(...n)=>{t(...n),this.off(e,r)};(this.onceEvents[e]||(this.onceEvents[e]=new Set),this.onceEvents[e].size>=this.maxOnceEvents)?console.warn(`EventEmitter: Maximum once events (${this.maxOnceEvents}) reached for event "${e}". Once listener not added.`):(this.onceEvents[e].add(r),this.on(e,r))}emit(e,...t){this.events[e]&&this.events[e].length>0?[...this.events[e]].forEach(e=>{e(...t)}):(this.queues[e]||(this.queues[e]=[]),this.queues[e].length>=this.maxQueueSize&&(console.warn(`EventEmitter: Maximum queue size (${this.maxQueueSize}) reached for event "${e}". Oldest event removed.`),this.queues[e].shift()),this.queues[e].push(t))}off(e,t){if(!t){this.events[e]=[],this.onceEvents[e]=new Set;return}this.events[e]=this.events[e].filter(e=>e!==t),this.onceEvents[e]&&this.onceEvents[e].delete(t)}removeAllListeners(e){e?(delete this.events[e],delete this.queues[e],delete this.onceEvents[e]):(this.events={},this.queues={},this.onceEvents={})}static geInstance(e){return this._instance||(this._instance=new EventEmitter_EventEmitter(e)),this._instance}}class AdAnalyticsJS{static instance=null;_initSign="";_needReport=!1;constructor(e){if(AdAnalyticsJS.instance)return AdAnalyticsJS.instance;this._initSign=e?.sign??"",this._needReport=e?.needReport??!1,this._commonConfig=e?.commonConfig??null,AdAnalyticsJS.instance=this}initialize(e){return this._needReport?e:void console.warn("AdAnalyticsJS needReport is false, do not report")}track(e,t,r){if(!this._needReport)return;if(!e)throw Error("eventName is required");let n=Object.assign({},this.getTrackCommonInfo(),t),s=r?.sign??"track";console.log(`-------------${s}-----------------------:`,e,n),tt.reportAnalytics(e,n)}getCommonInfo(){return this._commonConfig??{}}getTrackCommonInfo(){return this._commonConfig??{}}identify(e,t){if(!e&&0!==e)throw Error("identify user_id is required");return this._commonConfig=Object.assign({},this._commonConfig,{__user_id:e},t),this}alias(){return null}pages(){return null}page(e,t){this.track(e,t,{sign:"page"})}cpage(e){return this.page("cpage",e)}placeholder(){return null}static build(e){return AdAnalyticsJS.instance||(AdAnalyticsJS.instance=new AdAnalyticsJS(e)),AdAnalyticsJS.instance}static getInstance(){if(!AdAnalyticsJS.instance)throw Error("AdAnalyticsJS instance is not init");return AdAnalyticsJS.instance}static new(e){return new AdAnalyticsJS(e)}}const helper_AdAnalyticsJS=AdAnalyticsJS,UNLOCK_CHAPTER_THRESHOLD=2e3,UNLOCK_CHAPTER_NUM=30,UNLOCK_CHAPTER_WATER_LEVEL=15;class LovelUnlockManager{static instance=null;_initSign="";_dramaDetailData=[];_unlockChapterThreshold=2e3;_unlockChapterNum=30;_unlockChapterWaterLevel=15;_isReachThreshold=!1;_unlockedIdArr=[];constructor(e){this._initSign=e?.sign??"",this._unlockChapterThreshold=e?.unlockChapterThreshold??2e3,this._unlockChapterNum=e?.unlockChapterNum??30,this._unlockChapterWaterLevel=e?.unlockChapterWaterLevel??15}get drama(){return this._dramaDetailData}set drama(e=[]){this._dramaDetailData=e,this._checkReachThreshold(e)}_checkReachThreshold(e=[]){let t=e.filter(e=>1===e.flagTag);this._isReachThreshold=t.length>=this._unlockChapterThreshold}_isUnlockThreshold(){return this._isReachThreshold}_unlockChapterIds(e,t=this._unlockChapterNum){let r=this.drama,n=r.findIndex(t=>t.episodeId===e);if(-1===n)return;let s=n-t,i=Math.max(s,0),a=Math.min(s>=0?n+t:n+t-s,r.length);return r.slice(i,a).map(e=>e.episodeId)}_unlockChapterIdsWithWater(e,t=this._unlockChapterNum){let r=this._unlockChapterIds(e,t),n=r.filter(e=>!this._unlockedIdArr.includes(e));if(n&&n.length>=this._unlockChapterWaterLevel)return this._unlockedIdArr=Array.from(new Set(this._unlockedIdArr.concat(r))),r}ready(e,t,r){if(this._isUnlockThreshold()){let e=this._unlockChapterIdsWithWater(r);e&&e.length>0&&"function"==typeof t&&t(e)}else"function"==typeof e&&e()}onProcessUpdate(e,t){if(this._isUnlockThreshold()){let r=e.chapterId,n=this._unlockChapterIdsWithWater(r);n&&n.length>0&&"function"==typeof t&&t(n)}}onChapterChange(e,t){if(this._isUnlockThreshold()){let r=e.nextChapterId,n=this._unlockChapterIdsWithWater(r);n&&n.length>0&&"function"==typeof t&&t(n)}}unlockAll(){let e=this.drama.map(e=>({...e,flagTag:1}));this.drama=e}static build(e){return LovelUnlockManager.instance||(LovelUnlockManager.instance=new LovelUnlockManager(e)),LovelUnlockManager.instance}static getInstance(){if(!LovelUnlockManager.instance)throw Error("LovelUnlockManager instance is not init");return LovelUnlockManager.instance}static new(e){return new LovelUnlockManager(e)}}const helper_LovelUnlockManager=LovelUnlockManager;function matchErrorWithKeywords(e,t){return!!t&&e.some(e=>RegExp(e,"i").test(t))}function getAdSceneTextObj(e){return Object.entries(e).reduce((e,[t,r])=>(e[r]=Number(t),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,[t,r])=>(e[r]=t,e),{});class RewardAdGlobalRecorder{static instance=null;_initSign="";_halfway=[{scene:DEFAULT_SCENT_TEXT_OBJ.inner_default_other,count:0}];_finished=[{scene:DEFAULT_SCENT_TEXT_OBJ.inner_default_other,count:0}];constructor(e){if(RewardAdGlobalRecorder.instance)return RewardAdGlobalRecorder.instance;this._initSign=e?.sign??"",this._halfway=[{scene:DEFAULT_SCENT_TEXT_OBJ.inner_default_other,count:0}],this._finished=[{scene:DEFAULT_SCENT_TEXT_OBJ.inner_default_other,count:0}],RewardAdGlobalRecorder.instance=this}initialize(e){}_halfwayUpdate(e){let t=this._halfway.find(t=>t.scene===e.scene);t?t.count+=1:this._halfway.push({scene:e.scene,count:1})}_halfwayGet(e){let t=e?.scenes??[];return(t.length>0?this._halfway.filter(e=>t.includes(e.scene)):this._halfway).reduce((e,t)=>e+t.count,0)}_halfwayReset(){this._halfway=[{scene:DEFAULT_SCENT_TEXT_OBJ.inner_default_other,count:0}]}_finishedUpdate(e){let t=this._finished.find(t=>t.scene===e.scene);t?t.count+=1:this._finished.push({scene:e.scene,count:1})}_finishedGet(e){let t=e?.scenes??[];return(t.length>0?this._finished.filter(e=>t.includes(e.scene)):this._finished).reduce((e,t)=>e+t.count,0)}_finishedReset(){this._finished=[{scene:DEFAULT_SCENT_TEXT_OBJ.inner_default_other,count:0}]}record(e){switch(e.type){case"halfway":this._halfwayUpdate(e);break;case"finished":this._finishedUpdate(e)}}rest(e){switch(e){case"halfway":this._halfwayReset();break;case"finished":this._finishedReset()}}get(e){switch(e.type){case"halfway":return this._halfwayGet(e);case"finished":return this._finishedGet(e);default:return null}}placeholder(){return null}static build(e){return RewardAdGlobalRecorder.instance||(RewardAdGlobalRecorder.instance=new RewardAdGlobalRecorder(e)),RewardAdGlobalRecorder.instance}static getInstance(){if(!RewardAdGlobalRecorder.instance)throw Error("RewardAdGlobalRecorder instance is not init");return RewardAdGlobalRecorder.instance}}const helper_RewardAdGlobalRecorder=RewardAdGlobalRecorder;class RewardAdSceneTriggerManager{static instance=null;_initSign="";_currScene=null;_sceneTypeObj={};constructor(e){if(RewardAdSceneTriggerManager.instance)return RewardAdSceneTriggerManager.instance;this._initSign=e?.sign??"",this._sceneTypeObj=e?.sceneTypeObj??{},RewardAdSceneTriggerManager.instance=this}initialize(e){}addScene(e){return console.log("----------------------AD触发场景:--------------------",e),this._currScene=e,this}addSceneType(e=1){return this.addScene(this._sceneTypeObj[e]),this}getCurrentScene(){return this._currScene}placeholder(){return null}static build(e){return RewardAdSceneTriggerManager.instance||(RewardAdSceneTriggerManager.instance=new RewardAdSceneTriggerManager(e)),RewardAdSceneTriggerManager.instance}static getInstance(){if(!RewardAdSceneTriggerManager.instance)throw Error("RewardAdSceneTriggerManager instance is not init");return RewardAdSceneTriggerManager.instance}}const helper_RewardAdSceneTriggerManager=RewardAdSceneTriggerManager;for(var __rspack_i in exports.AdAnalyticsJS=__webpack_exports__.AdAnalyticsJS,exports.CountRecorder=__webpack_exports__.CountRecorder,exports.EventEmitter=__webpack_exports__.EventEmitter,exports.Logger=__webpack_exports__.Logger,exports.LovelUnlockManager=__webpack_exports__.LovelUnlockManager,exports.PubSub=__webpack_exports__.PubSub,exports.RewardAdGlobalRecorder=__webpack_exports__.RewardAdGlobalRecorder,exports.RewardAdSceneTriggerManager=__webpack_exports__.RewardAdSceneTriggerManager,exports.SerializableError=__webpack_exports__.SerializableError,exports.Storage=__webpack_exports__.Storage,__webpack_exports__)-1===["AdAnalyticsJS","CountRecorder","EventEmitter","Logger","LovelUnlockManager","PubSub","RewardAdGlobalRecorder","RewardAdSceneTriggerManager","SerializableError","Storage"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- function e(e,t){return!!t&&e.some(e=>RegExp(e,"i").test(t))}function t(e){return Object.entries(e).reduce((e,[t,r])=>(e[r]=Number(t),e),{})}export{t as getAdSceneTextObj,e as matchErrorWithKeywords};
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes