@ad-execute-manager/helper 2.0.0-alpha.1 → 2.0.0-alpha.2
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.
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/dist/{helper/PubSub.d.ts → PubSub.d.ts} +1 -1
- package/dist/{helper/SerializableError.d.ts → SerializableError.d.ts} +5 -1
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +6 -15
- package/dist/index.js +1 -1
- package/package.json +54 -11
- package/dist/ad/InterstitialAdFather.d.ts +0 -131
- package/dist/ad/InterstitialAdNovel.d.ts +0 -457
- package/dist/ad/RewardAdFather.d.ts +0 -131
- package/dist/ad/RewardAdNovel.d.ts +0 -464
- package/dist/ad/index.d.ts +0 -4
- package/dist/const/const.d.ts +0 -20
- package/dist/core/AdExecuteManager.d.ts +0 -129
- package/dist/core/compose.d.ts +0 -12
- package/dist/core/index.d.ts +0 -2
- package/dist/helper/AdAnalyticsJS.d.ts +0 -132
- package/dist/helper/LovelUnlockManager.d.ts +0 -233
- package/dist/helper/RewardAdGlobalRecorder.d.ts +0 -109
- package/dist/helper/RewardAdSceneTriggerManager.d.ts +0 -71
- package/dist/helper/index.d.ts +0 -10
- package/dist/typings/ad.d.ts +0 -188
- package/dist/typings/common.d.ts +0 -14
- package/dist/typings/tracker.d.ts +0 -1
- package/dist/utils/functional.d.ts +0 -13
- /package/dist/{helper/CountRecorder.d.ts → CountRecorder.d.ts} +0 -0
- /package/dist/{helper/EventEmitter.d.ts → EventEmitter.d.ts} +0 -0
- /package/dist/{helper/Logger.d.ts → Logger.d.ts} +0 -0
- /package/dist/{helper/Storage.d.ts → Storage.d.ts} +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 singcl
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# @singcl/helper
|
|
2
|
+
|
|
3
|
+
A collection of utility helper classes for JavaScript applications including EventEmitter, Logger, Storage, CountRecorder, PubSub, and SerializableError.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @singcl/helper
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- **EventEmitter**: A powerful event emitter with support for once events, max listeners, and event queuing
|
|
14
|
+
- **Logger**: A flexible logging utility with multiple log levels and customizable prefixes
|
|
15
|
+
- **Storage**: A storage wrapper with expiration support, including "today" expiration for daily data
|
|
16
|
+
- **CountRecorder**: A utility for tracking and managing counts with expiration
|
|
17
|
+
- **PubSub**: A simple publish-subscribe pattern implementation
|
|
18
|
+
- **SerializableError**: An error class that can be serialized to JSON
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
### EventEmitter
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
import { EventEmitter } from '@singcl/helper';
|
|
26
|
+
|
|
27
|
+
const emitter = new EventEmitter({ maxListeners: 10 });
|
|
28
|
+
|
|
29
|
+
emitter.on('event', (data) => {
|
|
30
|
+
console.log('Received:', data);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
emitter.emit('event', { message: 'Hello' });
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Logger
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
import { Logger } from '@singcl/helper';
|
|
40
|
+
|
|
41
|
+
const logger = new Logger({ prefix: 'MyApp', level: 'info' });
|
|
42
|
+
|
|
43
|
+
logger.info('Application started');
|
|
44
|
+
logger.error('Something went wrong');
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Storage
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
import { Storage } from '@singcl/helper';
|
|
51
|
+
|
|
52
|
+
const storage = new Storage({ prefix: 'myapp_' });
|
|
53
|
+
|
|
54
|
+
// Set data that expires at end of day
|
|
55
|
+
storage.setItem('dailyTask', { completed: false }, 'today');
|
|
56
|
+
|
|
57
|
+
// Set data with custom expiration (2 hours)
|
|
58
|
+
storage.setItem('tempData', { value: 123 }, 2 * 60 * 60 * 1000);
|
|
59
|
+
|
|
60
|
+
// Get data
|
|
61
|
+
const data = storage.getItem('dailyTask');
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### CountRecorder
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
import { CountRecorder } from '@singcl/helper';
|
|
68
|
+
|
|
69
|
+
const recorder = CountRecorder.new({
|
|
70
|
+
local_sign: 'daily_ads',
|
|
71
|
+
total: 5,
|
|
72
|
+
expire: 'today',
|
|
73
|
+
userId: 'user123'
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
console.log(recorder.remain()); // Remaining count
|
|
77
|
+
recorder.updateToday(); // Increment today's count
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### PubSub
|
|
81
|
+
|
|
82
|
+
```javascript
|
|
83
|
+
import { PubSub } from '@singcl/helper';
|
|
84
|
+
|
|
85
|
+
const pubsub = new PubSub();
|
|
86
|
+
|
|
87
|
+
const unsubscribe = pubsub.on('topic', (data) => {
|
|
88
|
+
console.log('Received:', data);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
pubsub.emit('topic', { message: 'Hello' });
|
|
92
|
+
|
|
93
|
+
unsubscribe();
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### SerializableError
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
import { SerializableError } from '@singcl/helper';
|
|
100
|
+
|
|
101
|
+
const error = new SerializableError('Something went wrong', {
|
|
102
|
+
errorCode: 500,
|
|
103
|
+
errMsg: 'Internal server error'
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
console.log(error.toJSON());
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## API
|
|
110
|
+
|
|
111
|
+
See individual class documentation for detailed API information.
|
|
112
|
+
|
|
113
|
+
## License
|
|
114
|
+
|
|
115
|
+
MIT
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export class SerializableError extends Error {
|
|
2
|
-
constructor(message: any);
|
|
2
|
+
constructor(message: any, options?: {});
|
|
3
3
|
stack: string;
|
|
4
|
+
errMsg: any;
|
|
5
|
+
errorCode: any;
|
|
4
6
|
toJSON(): {
|
|
5
7
|
name: string;
|
|
6
8
|
message: string;
|
|
7
9
|
stack: string;
|
|
10
|
+
errMsg: any;
|
|
11
|
+
errorCode: any;
|
|
8
12
|
};
|
|
9
13
|
}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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__,{CountRecorder:()=>CountRecorder,Logger:()=>Logger,EventEmitter:()=>EventEmitter,PubSub:()=>PubSub,SerializableError:()=>SerializableError,Storage:()=>src_Storage});class 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=(...s)=>{t(...s),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(e)),this._instance}}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 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 s=void 0!==r?r:this.config.expire;"today"===s&&(s=this.getTodayEndTimestamp()-Date.now());let i={value:t,expire:s,timestamp:Date.now()};try{tt.setStorageSync(e,JSON.stringify(i))}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 s=this.config.prefix+e;return this._setItem(s,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 s=this.config.userId??"null";if("null"===s)return void this.logger.error("userId is required");let i=`${this.config.prefix}_${s}_${e}`;return this._setItem(i,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 src_Storage=Storage;class CountRecorder{_total=0;_local_sign="";_expire="today";constructor(e){if(this.storage=src_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&&(null==r?void 0:r.total)==e||this.storage.setUserItem(this._local_sign,{total:e,today:(null==r?void 0:r.today)??0},this._expire)}updateToday(){let e=this._adTimes(),t=this.storage.getUserItem(this._local_sign),r=this._safeLocalValue(t),s=(null==r?void 0:r.today)??0;this.storage.setUserItem(this._local_sign,{total:e,today:s+1},this._expire)}remain(){let e=this.storage.getUserItem(this._local_sign),t=this._safeLocalValue(e),r=(null==t?void 0:t.today)??0;return Number((null==t?void 0:t.total)??0)-Number(r)}static new(e){return new CountRecorder(e)}}class PubSub{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=(...s)=>{t(...s),this.off(e,r)};this.on(e,r)}listenerCount(e){return this.events[e]?this.events[e].length:0}removeAllListeners(){this.events={}}}class SerializableError extends Error{constructor(e,t={}){super(e),this.name=this.constructor.name,this.stack=Error(e).stack,this.errMsg=t.errMsg,this.errorCode=t.errorCode,Object.defineProperty(this,"message",{enumerable:!0}),Object.defineProperty(this,"name",{enumerable:!0}),Object.defineProperty(this,"stack",{enumerable:!0}),Object.defineProperty(this,"errMsg",{enumerable:!0}),Object.defineProperty(this,"errorCode",{enumerable:!0})}toJSON(){return{name:this.name,message:this.message,stack:this.stack,errMsg:this.errMsg,errorCode:this.errorCode}}}for(var __rspack_i in exports.CountRecorder=__webpack_exports__.CountRecorder,exports.EventEmitter=__webpack_exports__.EventEmitter,exports.Logger=__webpack_exports__.Logger,exports.PubSub=__webpack_exports__.PubSub,exports.SerializableError=__webpack_exports__.SerializableError,exports.Storage=__webpack_exports__.Storage,__webpack_exports__)-1===["CountRecorder","EventEmitter","Logger","PubSub","SerializableError","Storage"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { CountRecorder } from './helper/CountRecorder';
|
|
8
|
-
import RewardAdGlobalRecorder from './helper/RewardAdGlobalRecorder';
|
|
9
|
-
import RewardAdSceneTriggerManager from './helper/RewardAdSceneTriggerManager';
|
|
10
|
-
import AdAnalyticsJS from './helper/AdAnalyticsJS';
|
|
11
|
-
import RewardAdNovel from './ad/RewardAdNovel';
|
|
12
|
-
import InterstitialAdFather from './ad/InterstitialAdFather';
|
|
13
|
-
import InterstitialAdNovel from './ad/InterstitialAdNovel';
|
|
14
|
-
import PubSub from './helper/PubSub';
|
|
15
|
-
export { AdExecuteManager, RewardAdFather, SerializableError, Logger, Storage, CountRecorder, RewardAdGlobalRecorder, RewardAdSceneTriggerManager, AdAnalyticsJS, RewardAdNovel, InterstitialAdFather, InterstitialAdNovel, PubSub };
|
|
1
|
+
export { EventEmitter } from "./EventEmitter.js";
|
|
2
|
+
export { Logger } from "./Logger.js";
|
|
3
|
+
export { CountRecorder } from "./CountRecorder.js";
|
|
4
|
+
export { default as PubSub } from "./PubSub.js";
|
|
5
|
+
export { SerializableError } from "./SerializableError.js";
|
|
6
|
+
export { default as Storage } from "./Storage.js";
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
class e{constructor(e={}){let{prefix:t="Logger",level:s="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[s]||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 s=new Date,n=`${s.getFullYear()}/${s.getMonth()+1}/${s.getDate()} ${s.getHours()}:${s.getMinutes()}:${s.getSeconds()}`;return`[${n}] [${e.toUpperCase()}] [${this.prefix}] ${t}`}_log(e,t,...s){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,...s);break;case"warn":console.warn(n,...s);break;case"info":console.info(n,...s);break;case"log":default:console.log(n,...s);break;case"debug":console.debug(n,...s)}}}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 t{constructor(t={}){this.config={prefix:"storage_",expire:null,...t},this.logger=new e({prefix:"Storage"})}getTodayEndTimestamp(){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999).getTime()}_setItem(e,t,s){let n=void 0!==s?s:this.config.expire;"today"===n&&(n=this.getTodayEndTimestamp()-Date.now());let i={value:t,expire:n,timestamp:Date.now()};try{tt.setStorageSync(e,JSON.stringify(i))}catch(e){console.error("Storage setItem error:",e)}}_getItem(e){try{let t=tt.getStorageSync(e);if(!t)return null;let s=JSON.parse(t);if(s.expire&&Date.now()-s.timestamp>s.expire)return this.removeItem(e),null;return s.value}catch(e){return console.error("Storage getItem error:",e),null}}setItem(e,t,s){let n=this.config.prefix+e;return this._setItem(n,t,s)}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 s=`${this.config.prefix}_${t}_${e}`;return this._getItem(s)}setUserItem(e,t,s){let n=this.config.userId??"null";if("null"===n)return void this.logger.error("userId is required");let i=`${this.config.prefix}_${n}_${e}`;return this._setItem(i,t,s)}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 s=JSON.parse(tt.getStorageSync(t));(!s.expire||Date.now()-s.timestamp<=s.expire)&&e.push(t.replace(this.config.prefix,""))}}),e}catch(e){return console.error("Storage keys error:",e),[]}}static new(e){return new t(e)}}let s=t;class n{_total=0;_local_sign="";_expire="today";constructor(e){if(this.storage=s.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),s=this._safeLocalValue(t);s&&s?.total==e||this.storage.setUserItem(this._local_sign,{total:e,today:s?.today??0},this._expire)}updateToday(){let e=this._adTimes(),t=this.storage.getUserItem(this._local_sign),s=this._safeLocalValue(t),n=s?.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),s=t?.today??0;return Number(t?.total??0)-Number(s)}static new(e){return new n(e)}}class i 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 r{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(s=>{try{s(...t)}catch(t){console.error(`Error in event listener for ${e}:`,t)}})}once(e,t){let s=(...n)=>{t(...n),this.off(e,s)};this.on(e,s)}listenerCount(e){return this.events[e]?this.events[e].length:0}removeAllListeners(){this.events={}}}class a{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 s=(...n)=>{t(...n),this.off(e,s)};(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(s),this.on(e,s))}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 a(e)),this._instance}}class o{static instance=null;_initSign="";_needReport=!1;constructor(e){if(o.instance)return o.instance;this._initSign=e?.sign??"",this._needReport=e?.needReport??!1,this._commonConfig=e?.commonConfig??null,o.instance=this}initialize(e){return this._needReport?e:void console.warn("AdAnalyticsJS needReport is false, do not report")}track(e,t,s){if(!this._needReport)return;if(!e)throw Error("eventName is required");let n=Object.assign({},this.getTrackCommonInfo(),t),i=s?.sign??"track";console.log(`-------------${i}-----------------------:`,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 o.instance||(o.instance=new o(e)),o.instance}static getInstance(){if(!o.instance)throw Error("AdAnalyticsJS instance is not init");return o.instance}static new(e){return new o(e)}}let h=o;class l{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 s=this.drama,n=s.findIndex(t=>t.episodeId===e);if(-1===n)return;let i=n-t,r=Math.max(i,0),a=Math.min(i>=0?n+t:n+t-i,s.length);return s.slice(r,a).map(e=>e.episodeId)}_unlockChapterIdsWithWater(e,t=this._unlockChapterNum){let s=this._unlockChapterIds(e,t),n=s.filter(e=>!this._unlockedIdArr.includes(e));if(n&&n.length>=this._unlockChapterWaterLevel)return this._unlockedIdArr=Array.from(new Set(this._unlockedIdArr.concat(s))),s}ready(e,t,s){if(this._isUnlockThreshold()){let e=this._unlockChapterIdsWithWater(s);e&&e.length>0&&"function"==typeof t&&t(e)}else"function"==typeof e&&e()}onProcessUpdate(e,t){if(this._isUnlockThreshold()){let s=e.chapterId,n=this._unlockChapterIdsWithWater(s);n&&n.length>0&&"function"==typeof t&&t(n)}}onChapterChange(e,t){if(this._isUnlockThreshold()){let s=e.nextChapterId,n=this._unlockChapterIdsWithWater(s);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 l.instance||(l.instance=new l(e)),l.instance}static getInstance(){if(!l.instance)throw Error("LovelUnlockManager instance is not init");return l.instance}static new(e){return new l(e)}}let c=l,u=Object.entries({9999:"inner_default_other"}).reduce((e,[t,s])=>(e[s]=Number(t),e),{});Object.entries({AD_TYPE_REWARD:1,AD_TYPE_INTERSTITIAL:2}).reduce((e,[t,s])=>(e[s]=t,e),{});class d{static instance=null;_initSign="";_halfway=[{scene:u.inner_default_other,count:0}];_finished=[{scene:u.inner_default_other,count:0}];constructor(e){if(d.instance)return d.instance;this._initSign=e?.sign??"",this._halfway=[{scene:u.inner_default_other,count:0}],this._finished=[{scene:u.inner_default_other,count:0}],d.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:u.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:u.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 d.instance||(d.instance=new d(e)),d.instance}static getInstance(){if(!d.instance)throw Error("RewardAdGlobalRecorder instance is not init");return d.instance}}let g=d;class _{static instance=null;_initSign="";_currScene=null;_sceneTypeObj={};constructor(e){if(_.instance)return _.instance;this._initSign=e?.sign??"",this._sceneTypeObj=e?.sceneTypeObj??{},_.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 _.instance||(_.instance=new _(e)),_.instance}static getInstance(){if(!_.instance)throw Error("RewardAdSceneTriggerManager instance is not init");return _.instance}}let f=_;export{h as AdAnalyticsJS,n as CountRecorder,a as EventEmitter,e as Logger,c as LovelUnlockManager,r as PubSub,g as RewardAdGlobalRecorder,f as RewardAdSceneTriggerManager,i as SerializableError,s as Storage};
|
|
1
|
+
class e{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 s=(...r)=>{t(...r),this.off(e,s)};(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(s),this.on(e,s))}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(t){return this._instance||(this._instance=new e(t)),this._instance}}class t{constructor(e={}){let{prefix:t="Logger",level:s="log",enabled:r=!0}=e;this.prefix=t,this.enabled=r,this.levels={error:0,warn:1,info:2,log:3,debug:4},this.currentLevel=this.levels[s]||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 s=new Date,r=`${s.getFullYear()}/${s.getMonth()+1}/${s.getDate()} ${s.getHours()}:${s.getMinutes()}:${s.getSeconds()}`;return`[${r}] [${e.toUpperCase()}] [${this.prefix}] ${t}`}_log(e,t,...s){if(!this.enabled)return;let r=this.levels[e];if(void 0!==r&&this.currentLevel>=r){let r=this.formatMessage(e,t);switch(e){case"error":console.error(r,...s);break;case"warn":console.warn(r,...s);break;case"info":console.info(r,...s);break;case"log":default:console.log(r,...s);break;case"debug":console.debug(r,...s)}}}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 s{constructor(e={}){this.config={prefix:"storage_",expire:null,...e},this.logger=new t({prefix:"Storage"})}getTodayEndTimestamp(){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59,59,999).getTime()}_setItem(e,t,s){let r=void 0!==s?s:this.config.expire;"today"===r&&(r=this.getTodayEndTimestamp()-Date.now());let i={value:t,expire:r,timestamp:Date.now()};try{tt.setStorageSync(e,JSON.stringify(i))}catch(e){console.error("Storage setItem error:",e)}}_getItem(e){try{let t=tt.getStorageSync(e);if(!t)return null;let s=JSON.parse(t);if(s.expire&&Date.now()-s.timestamp>s.expire)return this.removeItem(e),null;return s.value}catch(e){return console.error("Storage getItem error:",e),null}}setItem(e,t,s){let r=this.config.prefix+e;return this._setItem(r,t,s)}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 s=`${this.config.prefix}_${t}_${e}`;return this._getItem(s)}setUserItem(e,t,s){let r=this.config.userId??"null";if("null"===r)return void this.logger.error("userId is required");let i=`${this.config.prefix}_${r}_${e}`;return this._setItem(i,t,s)}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 s=JSON.parse(tt.getStorageSync(t));(!s.expire||Date.now()-s.timestamp<=s.expire)&&e.push(t.replace(this.config.prefix,""))}}),e}catch(e){return console.error("Storage keys error:",e),[]}}static new(e){return new s(e)}}let r=s;class i{_total=0;_local_sign="";_expire="today";constructor(e){if(this.storage=r.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),s=this._safeLocalValue(t);s&&(null==s?void 0:s.total)==e||this.storage.setUserItem(this._local_sign,{total:e,today:(null==s?void 0:s.today)??0},this._expire)}updateToday(){let e=this._adTimes(),t=this.storage.getUserItem(this._local_sign),s=this._safeLocalValue(t),r=(null==s?void 0:s.today)??0;this.storage.setUserItem(this._local_sign,{total:e,today:r+1},this._expire)}remain(){let e=this.storage.getUserItem(this._local_sign),t=this._safeLocalValue(e),s=(null==t?void 0:t.today)??0;return Number((null==t?void 0:t.total)??0)-Number(s)}static new(e){return new i(e)}}class n{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(s=>{try{s(...t)}catch(t){console.error(`Error in event listener for ${e}:`,t)}})}once(e,t){let s=(...r)=>{t(...r),this.off(e,s)};this.on(e,s)}listenerCount(e){return this.events[e]?this.events[e].length:0}removeAllListeners(){this.events={}}}class o extends Error{constructor(e,t={}){super(e),this.name=this.constructor.name,this.stack=Error(e).stack,this.errMsg=t.errMsg,this.errorCode=t.errorCode,Object.defineProperty(this,"message",{enumerable:!0}),Object.defineProperty(this,"name",{enumerable:!0}),Object.defineProperty(this,"stack",{enumerable:!0}),Object.defineProperty(this,"errMsg",{enumerable:!0}),Object.defineProperty(this,"errorCode",{enumerable:!0})}toJSON(){return{name:this.name,message:this.message,stack:this.stack,errMsg:this.errMsg,errorCode:this.errorCode}}}export{i as CountRecorder,e as EventEmitter,t as Logger,n as PubSub,o as SerializableError,r as Storage};
|
package/package.json
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ad-execute-manager/helper",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.2",
|
|
4
|
+
"description": "A collection of utility helper classes for JavaScript applications including EventEmitter, Logger, Storage, CountRecorder, PubSub, and SerializableError.",
|
|
4
5
|
"type": "module",
|
|
5
|
-
"main": "./dist/index.cjs",
|
|
6
|
-
"module": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"files": [
|
|
9
|
-
"dist"
|
|
10
|
-
],
|
|
11
6
|
"exports": {
|
|
12
7
|
".": {
|
|
13
8
|
"import": "./dist/index.js",
|
|
@@ -15,10 +10,58 @@
|
|
|
15
10
|
"types": "./dist/index.d.ts"
|
|
16
11
|
}
|
|
17
12
|
},
|
|
18
|
-
"
|
|
13
|
+
"main": "./dist/index.cjs",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"author": {
|
|
19
|
+
"name": "singcl",
|
|
20
|
+
"email": "iambabyer@gmail.com",
|
|
21
|
+
"url": "https://github.com/singcl"
|
|
22
|
+
},
|
|
19
23
|
"license": "MIT",
|
|
20
|
-
"homepage": "https://npmjs.com/package/@
|
|
21
|
-
"
|
|
22
|
-
"
|
|
24
|
+
"homepage": "https://npmjs.com/package/@singcl/helper",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/singcl/ad-execute-manager.git"
|
|
28
|
+
},
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/singcl/ad-execute-manager/issues"
|
|
31
|
+
},
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=14.0.0"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"helper",
|
|
37
|
+
"event-emitter",
|
|
38
|
+
"logger",
|
|
39
|
+
"storage",
|
|
40
|
+
"count-recorder",
|
|
41
|
+
"pubsub",
|
|
42
|
+
"serializable-error",
|
|
43
|
+
"utilities",
|
|
44
|
+
"javascript",
|
|
45
|
+
"nodejs"
|
|
46
|
+
],
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "rslib build && tsc",
|
|
49
|
+
"dev": "rslib build --watch",
|
|
50
|
+
"format": "prettier --write .",
|
|
51
|
+
"lint": "eslint .",
|
|
52
|
+
"test": "rstest",
|
|
53
|
+
"prepublishOnly": "npm run build"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@babel/eslint-parser": "^7.28.5",
|
|
57
|
+
"@babel/preset-env": "^7.28.5",
|
|
58
|
+
"@eslint/js": "^9.39.1",
|
|
59
|
+
"@rslib/core": "^0.18.5",
|
|
60
|
+
"@rstest/core": "^0.7.2",
|
|
61
|
+
"eslint": "^9.39.2",
|
|
62
|
+
"eslint-plugin-import": "^2.32.0",
|
|
63
|
+
"globals": "^16.5.0",
|
|
64
|
+
"prettier": "^3.7.3",
|
|
65
|
+
"typescript": "^5.9.3"
|
|
23
66
|
}
|
|
24
67
|
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
export default InterstitialAdFather;
|
|
2
|
-
export type IRewordAdConfig = import("../typings/ad.js").IRewordAdConfig;
|
|
3
|
-
export type CallbackCollection = import("../typings/ad.js").CallbackCollection;
|
|
4
|
-
export type IConstructArgs = import("../typings/ad.js").IConstructArgs;
|
|
5
|
-
export type IRewardedVideoAd = {
|
|
6
|
-
/**
|
|
7
|
-
* 显示激励视频广告
|
|
8
|
-
*/
|
|
9
|
-
show: () => Promise<void>;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* @typedef IRewardedVideoAd
|
|
13
|
-
* @property {() => Promise.<void>} show 显示激励视频广告
|
|
14
|
-
*/
|
|
15
|
-
declare class InterstitialAdFather {
|
|
16
|
-
/** @type {IRewordAdConfig | null} */
|
|
17
|
-
static args: IRewordAdConfig | null;
|
|
18
|
-
/**
|
|
19
|
-
* @param {IRewordAdConfig} args
|
|
20
|
-
*/
|
|
21
|
-
static buildArgs(args: IRewordAdConfig): void;
|
|
22
|
-
/**
|
|
23
|
-
* 使用管理器执行广告
|
|
24
|
-
* @param {Object} adInstance 广告实例
|
|
25
|
-
* @param {Object} ctx 上下文对象,用于传递数据和状态
|
|
26
|
-
* @param {Object} ctx.options 广告执行选项
|
|
27
|
-
* @param {Object} ctx.options.log 是否打印日志
|
|
28
|
-
* @param {Object} ctx.collection 回调集合
|
|
29
|
-
* @returns {Promise} 广告执行结果的Promise
|
|
30
|
-
*/
|
|
31
|
-
static executeWithManager(adInstance: any, ctx: {
|
|
32
|
-
options: {
|
|
33
|
-
log: any;
|
|
34
|
-
};
|
|
35
|
-
collection: any;
|
|
36
|
-
}): Promise<any>;
|
|
37
|
-
/**
|
|
38
|
-
* @param {IConstructArgs} args
|
|
39
|
-
*/
|
|
40
|
-
constructor(args: IConstructArgs);
|
|
41
|
-
_initSign: string;
|
|
42
|
-
_preserveOnEnd: boolean;
|
|
43
|
-
_interstitialAd: any;
|
|
44
|
-
_ttErrorMsgs: string[];
|
|
45
|
-
_ttErrorCodes: number[];
|
|
46
|
-
_adConfig: {};
|
|
47
|
-
/**
|
|
48
|
-
* 初始化
|
|
49
|
-
* 子类可以选择覆盖此方法,或使用默认实现
|
|
50
|
-
* @param {IRewordAdConfig} params
|
|
51
|
-
* @param {(v: IRewardedVideoAd) => void} [callback] 初始化成功回调
|
|
52
|
-
* @returns {this} 当前实例
|
|
53
|
-
*/
|
|
54
|
-
initialize(params: IRewordAdConfig, callback?: (v: IRewardedVideoAd) => void): this;
|
|
55
|
-
initialized(): boolean;
|
|
56
|
-
/**
|
|
57
|
-
* 执行广告展示
|
|
58
|
-
* @abstract
|
|
59
|
-
* @param {Object} [ctx] 上下文对象,用于传递数据和状态
|
|
60
|
-
* @param {IRewordAdConfig} [ctx.options] 广告执行选项
|
|
61
|
-
* @param {CallbackCollection} [ctx.collection] 回调集合
|
|
62
|
-
* @param {Function} next 执行下一个任务的回调函数,在洋葱模型中手动调用以继续执行流程
|
|
63
|
-
* @returns {Promise<unknown>} 广告执行结果的Promise
|
|
64
|
-
* @throws {Error} 子类必须实现此方法
|
|
65
|
-
*/
|
|
66
|
-
ad(ctx?: {
|
|
67
|
-
options?: IRewordAdConfig;
|
|
68
|
-
collection?: CallbackCollection;
|
|
69
|
-
}, next?: Function): Promise<unknown>;
|
|
70
|
-
/**
|
|
71
|
-
* 确保广告按顺序执行
|
|
72
|
-
* @param {Object} [ctx] 上下文对象,用于传递数据和状态
|
|
73
|
-
* @param {IRewordAdConfig} [ctx.options] 广告执行选项
|
|
74
|
-
* @param {CallbackCollection} [ctx.collection] 回调集合
|
|
75
|
-
* @returns {Promise.<unknown>} 广告执行结果的Promise
|
|
76
|
-
*/
|
|
77
|
-
addExecuteManager(ctx?: {
|
|
78
|
-
options?: IRewordAdConfig;
|
|
79
|
-
collection?: CallbackCollection;
|
|
80
|
-
}): Promise<unknown>;
|
|
81
|
-
destroy(): void;
|
|
82
|
-
/**
|
|
83
|
-
* 清理广告实例
|
|
84
|
-
* @abstract 清理广告实例,子类必须实现此方法
|
|
85
|
-
*/
|
|
86
|
-
clear(): void;
|
|
87
|
-
/**
|
|
88
|
-
* 任务执行完成后始终执行的一个方法
|
|
89
|
-
* @abstract 任务执行完成后始终执行的一个方法,子类需要用到时实现此方法
|
|
90
|
-
* @param {object} [_args] 执行结果信息
|
|
91
|
-
*/
|
|
92
|
-
record(_args?: object): this;
|
|
93
|
-
/**
|
|
94
|
-
*
|
|
95
|
-
* @param {({isEnded: boolean, count: number}) => void} callback
|
|
96
|
-
*/
|
|
97
|
-
onClose(callback: ({ isEnded: boolean, count: number }: any) => void): void;
|
|
98
|
-
/**
|
|
99
|
-
*
|
|
100
|
-
* @param {({isEnded: boolean, count: number}) => void} callback
|
|
101
|
-
*/
|
|
102
|
-
offClose(callback: ({ isEnded: boolean, count: number }: any) => void): void;
|
|
103
|
-
/**
|
|
104
|
-
* show
|
|
105
|
-
* @returns { Promise.<void>}
|
|
106
|
-
* @params {{errMsg: string; errCode: number}} err
|
|
107
|
-
*/
|
|
108
|
-
show(): Promise<void>;
|
|
109
|
-
/**
|
|
110
|
-
* load
|
|
111
|
-
* @returns { Promise.<void>}
|
|
112
|
-
*/
|
|
113
|
-
load(): Promise<void>;
|
|
114
|
-
/**
|
|
115
|
-
*
|
|
116
|
-
* @param {({errMsg: string; errCode: number}) => void} callback
|
|
117
|
-
*/
|
|
118
|
-
onError(callback: any): void;
|
|
119
|
-
/**
|
|
120
|
-
*
|
|
121
|
-
* @param {({errMsg: string; errCode: number}) => void} callback
|
|
122
|
-
*/
|
|
123
|
-
offError(callback: any): void;
|
|
124
|
-
onLoad(callback: any): void;
|
|
125
|
-
offLoad(callback: any): void;
|
|
126
|
-
/**
|
|
127
|
-
* 站位方法,没有任何左右
|
|
128
|
-
* @returns
|
|
129
|
-
*/
|
|
130
|
-
placeholder(): any;
|
|
131
|
-
}
|