@chiyou/minigame-framework 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -0
- package/dist/Framework/Adapter/AdAdapter/AbsAdAdapter.d.ts +78 -0
- package/dist/Framework/Adapter/AdAdapter/AbsAdAdapter.js +230 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterBilibili.d.ts +31 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterBilibili.js +224 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterDouYin.d.ts +34 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterDouYin.js +524 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterHonor.d.ts +34 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterHonor.js +631 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterHuaWei.d.ts +33 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterHuaWei.js +460 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterJingDong.d.ts +31 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterJingDong.js +227 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterKuaiShou.d.ts +33 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterKuaiShou.js +458 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterOppo.d.ts +35 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterOppo.js +770 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterTapTap.d.ts +33 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterTapTap.js +519 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterVivo.d.ts +33 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterVivo.js +492 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterWeiXin.d.ts +33 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterWeiXin.js +695 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterXiaoMi.d.ts +34 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterXiaoMi.js +597 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterZhiFuBao.d.ts +33 -0
- package/dist/Framework/Adapter/AdAdapter/AdAdapterZhiFuBao.js +458 -0
- package/dist/Framework/Adapter/PlatformAdapter/AbsPlatformAdapter.d.ts +51 -0
- package/dist/Framework/Adapter/PlatformAdapter/AbsPlatformAdapter.js +17 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterBilibili.d.ts +45 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterBilibili.js +555 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDesktopBrowser.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDesktopBrowser.js +148 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDouYin.d.ts +48 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterDouYin.js +715 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHonor.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHonor.js +296 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHuaWei.d.ts +45 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterHuaWei.js +284 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterJingDong.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterJingDong.js +283 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterKuaiShou.d.ts +43 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterKuaiShou.js +406 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterOppo.d.ts +43 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterOppo.js +248 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterTapTap.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterTapTap.js +517 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterVivo.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterVivo.js +295 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterWeiXin.d.ts +55 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterWeiXin.js +964 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterXiaoMi.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterXiaoMi.js +295 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterZhiFuBao.d.ts +44 -0
- package/dist/Framework/Adapter/PlatformAdapter/PlatformAdapterZhiFuBao.js +393 -0
- package/dist/Framework/Definition/AdDefinition.d.ts +130 -0
- package/dist/Framework/Definition/AdDefinition.js +208 -0
- package/dist/Framework/Definition/FrameworkBase.d.ts +13 -0
- package/dist/Framework/Definition/FrameworkBase.js +23 -0
- package/dist/Framework/Definition/PrivacyDefinition.d.ts +51 -0
- package/dist/Framework/Definition/PrivacyDefinition.js +70 -0
- package/dist/Framework/Definition/SocialDefinition.d.ts +16 -0
- package/dist/Framework/Definition/SocialDefinition.js +2 -0
- package/dist/Framework/Definition/SystemDefinition.d.ts +43 -0
- package/dist/Framework/Definition/SystemDefinition.js +28 -0
- package/dist/Framework/Definition/UIDefinition.d.ts +6 -0
- package/dist/Framework/Definition/UIDefinition.js +7 -0
- package/dist/Framework/Definition/UserDefinition.d.ts +14 -0
- package/dist/Framework/Definition/UserDefinition.js +10 -0
- package/dist/Framework/Manager/AdMgr.d.ts +57 -0
- package/dist/Framework/Manager/AdMgr.js +684 -0
- package/dist/Framework/Manager/AudioMgr.d.ts +28 -0
- package/dist/Framework/Manager/AudioMgr.js +265 -0
- package/dist/Framework/Manager/BaseMgr.d.ts +18 -0
- package/dist/Framework/Manager/BaseMgr.js +114 -0
- package/dist/Framework/Manager/EventMgr.d.ts +18 -0
- package/dist/Framework/Manager/EventMgr.js +90 -0
- package/dist/Framework/Manager/ExcelMgr.d.ts +24 -0
- package/dist/Framework/Manager/ExcelMgr.js +156 -0
- package/dist/Framework/Manager/LifeCycleMgr.d.ts +20 -0
- package/dist/Framework/Manager/LifeCycleMgr.js +110 -0
- package/dist/Framework/Manager/NodePoolMgr.d.ts +53 -0
- package/dist/Framework/Manager/NodePoolMgr.js +279 -0
- package/dist/Framework/Manager/PrivacyMgr.d.ts +15 -0
- package/dist/Framework/Manager/PrivacyMgr.js +176 -0
- package/dist/Framework/Manager/ResMgr.d.ts +49 -0
- package/dist/Framework/Manager/ResMgr.js +337 -0
- package/dist/Framework/Manager/SocialMgr.d.ts +23 -0
- package/dist/Framework/Manager/SocialMgr.js +220 -0
- package/dist/Framework/Manager/SystemMgr.d.ts +24 -0
- package/dist/Framework/Manager/SystemMgr.js +222 -0
- package/dist/Framework/Manager/TimerMgr.d.ts +11 -0
- package/dist/Framework/Manager/TimerMgr.js +63 -0
- package/dist/Framework/Manager/UIMgr.d.ts +33 -0
- package/dist/Framework/Manager/UIMgr.js +223 -0
- package/dist/Framework/Manager/UserMgr.d.ts +15 -0
- package/dist/Framework/Manager/UserMgr.js +148 -0
- package/dist/Framework/Utils/BezierUtils.d.ts +49 -0
- package/dist/Framework/Utils/BezierUtils.js +247 -0
- package/dist/Framework/Utils/CSVUtils.d.ts +35 -0
- package/dist/Framework/Utils/CSVUtils.js +341 -0
- package/dist/Framework/Utils/LogUtils.d.ts +7 -0
- package/dist/Framework/Utils/LogUtils.js +32 -0
- package/dist/Framework/Utils/NumberUtils.d.ts +16 -0
- package/dist/Framework/Utils/NumberUtils.js +44 -0
- package/dist/Framework/Utils/TaskUtils.d.ts +10 -0
- package/dist/Framework/Utils/TaskUtils.js +24 -0
- package/dist/Framework/Utils/TimeUtils.d.ts +19 -0
- package/dist/Framework/Utils/TimeUtils.js +33 -0
- package/dist/Framework/Utils/WXBizDataCryptUtils.d.ts +12 -0
- package/dist/Framework/Utils/WXBizDataCryptUtils.js +37 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +35 -0
- package/package.json +40 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare var CSV: {
|
|
2
|
+
STANDARD_DECODE_OPTS: {
|
|
3
|
+
skip: number;
|
|
4
|
+
limit: boolean;
|
|
5
|
+
header: boolean;
|
|
6
|
+
cast: boolean;
|
|
7
|
+
comment: string;
|
|
8
|
+
};
|
|
9
|
+
STANDARD_ENCODE_OPTS: {
|
|
10
|
+
delimiter: string;
|
|
11
|
+
newline: string;
|
|
12
|
+
skip: number;
|
|
13
|
+
limit: boolean;
|
|
14
|
+
header: boolean;
|
|
15
|
+
};
|
|
16
|
+
quoteMark: string;
|
|
17
|
+
doubleQuoteMark: string;
|
|
18
|
+
quoteRegex: RegExp;
|
|
19
|
+
assign: () => any;
|
|
20
|
+
map: (collection: any, fn: any) => any[];
|
|
21
|
+
getType: (obj: any) => any;
|
|
22
|
+
getLimit: (limit: any, len: any) => any;
|
|
23
|
+
buildObjectConstructor: (fields: any, sample: any, cast: any) => (d: any) => Object;
|
|
24
|
+
buildArrayConstructor: (fields: any, sample: any, cast: any) => (d: any) => any[];
|
|
25
|
+
frequency: (coll: any, needle: any, limit: any) => number;
|
|
26
|
+
mostFrequent: (coll: any, needles: any, limit: any) => any;
|
|
27
|
+
unsafeParse: (text: any, opts: any, fn: any) => boolean;
|
|
28
|
+
safeParse: (text: any, opts: any, fn: any) => boolean;
|
|
29
|
+
encodeCells: (line: any, delimiter: any, newline: any) => any;
|
|
30
|
+
encodeArrays: (coll: any, opts: any, fn: any) => boolean;
|
|
31
|
+
encodeObjects: (coll: any, opts: any, fn: any) => boolean;
|
|
32
|
+
parse: (text: any, opts: any, fn: any) => any;
|
|
33
|
+
encode: (coll: any, opts: any, fn: any) => any;
|
|
34
|
+
};
|
|
35
|
+
export default CSV;
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
var CELL_DELIMITERS = [",", ";", "\t", "|", "^"];
|
|
2
|
+
var LINE_DELIMITERS = ["\r\n", "\r", "\n"];
|
|
3
|
+
var getter = function (index) {
|
|
4
|
+
return ("d[" + index + "]");
|
|
5
|
+
};
|
|
6
|
+
var getterCast = function (value, index, cast, d) {
|
|
7
|
+
if (cast instanceof Array) {
|
|
8
|
+
if (cast[index] === "number") {
|
|
9
|
+
return Number(d[index]);
|
|
10
|
+
}
|
|
11
|
+
else if (cast[index] === "boolean") {
|
|
12
|
+
return d[index] === "true" || d[index] === "t" || d[index] === "1";
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return d[index];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
if (!isNaN(Number(value))) {
|
|
20
|
+
return Number(d[index]);
|
|
21
|
+
}
|
|
22
|
+
else if (value == "false" || value == "true" || value == "t" || value == "f") {
|
|
23
|
+
return d[index] === "true" || d[index] === "t" || d[index] === "1";
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return d[index];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var CSV = {
|
|
31
|
+
STANDARD_DECODE_OPTS: {
|
|
32
|
+
skip: 0,
|
|
33
|
+
limit: false,
|
|
34
|
+
header: false,
|
|
35
|
+
cast: false,
|
|
36
|
+
comment: ""
|
|
37
|
+
},
|
|
38
|
+
STANDARD_ENCODE_OPTS: {
|
|
39
|
+
delimiter: CELL_DELIMITERS[0],
|
|
40
|
+
newline: LINE_DELIMITERS[0],
|
|
41
|
+
skip: 0,
|
|
42
|
+
limit: false,
|
|
43
|
+
header: false
|
|
44
|
+
},
|
|
45
|
+
quoteMark: '"',
|
|
46
|
+
doubleQuoteMark: '""',
|
|
47
|
+
quoteRegex: /"/g,
|
|
48
|
+
assign: function () {
|
|
49
|
+
var args = Array.prototype.slice.call(arguments);
|
|
50
|
+
var base = args[0];
|
|
51
|
+
var rest = args.slice(1);
|
|
52
|
+
for (var i = 0, len = rest.length; i < len; i++) {
|
|
53
|
+
for (var attr in rest[i]) {
|
|
54
|
+
base[attr] = rest[i][attr];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return base;
|
|
58
|
+
},
|
|
59
|
+
map: function (collection, fn) {
|
|
60
|
+
var results = [];
|
|
61
|
+
for (var i = 0, len = collection.length; i < len; i++) {
|
|
62
|
+
results[i] = fn(collection[i], i);
|
|
63
|
+
}
|
|
64
|
+
return results;
|
|
65
|
+
},
|
|
66
|
+
getType: function (obj) {
|
|
67
|
+
return Object.prototype.toString.call(obj).slice(8, -1);
|
|
68
|
+
},
|
|
69
|
+
getLimit: function (limit, len) {
|
|
70
|
+
return limit === false ? len : limit;
|
|
71
|
+
},
|
|
72
|
+
buildObjectConstructor: function (fields, sample, cast) {
|
|
73
|
+
return function (d) {
|
|
74
|
+
var object = new Object();
|
|
75
|
+
var setter = function (attr, value) {
|
|
76
|
+
return object[attr] = value;
|
|
77
|
+
};
|
|
78
|
+
if (cast) {
|
|
79
|
+
fields.forEach(function (attr, idx) {
|
|
80
|
+
setter(attr, getterCast(sample[idx], idx, cast, d));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
fields.forEach(function (attr, idx) {
|
|
85
|
+
setter(attr, getterCast(sample[idx], idx, null, d));
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// body.push("return object;");
|
|
89
|
+
// body.join(";\n");
|
|
90
|
+
return object;
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
buildArrayConstructor: function (fields, sample, cast) {
|
|
94
|
+
return function (d) {
|
|
95
|
+
var row = new Array(sample.length);
|
|
96
|
+
var setter = function (idx, value) {
|
|
97
|
+
return row[idx] = value;
|
|
98
|
+
};
|
|
99
|
+
if (cast) {
|
|
100
|
+
fields.forEach(function (attr, idx) {
|
|
101
|
+
setter(attr, getterCast(sample[idx], idx, cast, d));
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
fields.forEach(function (attr, idx) {
|
|
106
|
+
setter(attr, getterCast(sample[idx], idx, null, d));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return row;
|
|
110
|
+
};
|
|
111
|
+
},
|
|
112
|
+
frequency: function (coll, needle, limit) {
|
|
113
|
+
if (limit === void 0)
|
|
114
|
+
limit = false;
|
|
115
|
+
var count = 0;
|
|
116
|
+
var lastIndex = 0;
|
|
117
|
+
var maxIndex = this.getLimit(limit, coll.length);
|
|
118
|
+
while (lastIndex < maxIndex) {
|
|
119
|
+
lastIndex = coll.indexOf(needle, lastIndex);
|
|
120
|
+
if (lastIndex === -1)
|
|
121
|
+
break;
|
|
122
|
+
lastIndex += 1;
|
|
123
|
+
count++;
|
|
124
|
+
}
|
|
125
|
+
return count;
|
|
126
|
+
},
|
|
127
|
+
mostFrequent: function (coll, needles, limit) {
|
|
128
|
+
var max = 0;
|
|
129
|
+
var detected;
|
|
130
|
+
for (var cur = needles.length - 1; cur >= 0; cur--) {
|
|
131
|
+
if (this.frequency(coll, needles[cur], limit) > max) {
|
|
132
|
+
detected = needles[cur];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return detected || needles[0];
|
|
136
|
+
},
|
|
137
|
+
unsafeParse: function (text, opts, fn) {
|
|
138
|
+
var lines = text.split(opts.newline);
|
|
139
|
+
if (opts.skip > 0) {
|
|
140
|
+
lines.splice(opts.skip);
|
|
141
|
+
}
|
|
142
|
+
var fields;
|
|
143
|
+
var constructor;
|
|
144
|
+
function cells(lines) {
|
|
145
|
+
var line = lines.shift();
|
|
146
|
+
if (line.indexOf('"') >= 0) {
|
|
147
|
+
var lastIndex = 0;
|
|
148
|
+
var findIndex = 0;
|
|
149
|
+
var count = 0;
|
|
150
|
+
while (lines.length > 0) {
|
|
151
|
+
lastIndex = line.indexOf('"', findIndex);
|
|
152
|
+
if (lastIndex === -1 && count % 2 === 0)
|
|
153
|
+
break;
|
|
154
|
+
if (lastIndex !== -1) {
|
|
155
|
+
findIndex = lastIndex + 1;
|
|
156
|
+
count++;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
line = line + opts.newline + lines.shift();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
var list = [];
|
|
163
|
+
var item;
|
|
164
|
+
var quoteCount = 0;
|
|
165
|
+
var start = 0;
|
|
166
|
+
var end = 0;
|
|
167
|
+
var length = line.length;
|
|
168
|
+
for (var key in line) {
|
|
169
|
+
if (!line.hasOwnProperty(key)) {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
let numKey = parseInt(key);
|
|
173
|
+
var value = line[key];
|
|
174
|
+
if (numKey === 0 && value === '"') {
|
|
175
|
+
quoteCount++;
|
|
176
|
+
start = 1;
|
|
177
|
+
}
|
|
178
|
+
if (value === '"') {
|
|
179
|
+
quoteCount++;
|
|
180
|
+
if (line[numKey - 1] === opts.delimiter && start === numKey) {
|
|
181
|
+
start++;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (value === '"' && quoteCount % 2 === 0) {
|
|
185
|
+
if (line[numKey + 1] === opts.delimiter || numKey + 1 === length) {
|
|
186
|
+
end = numKey;
|
|
187
|
+
item = line.substring(start, end);
|
|
188
|
+
list.push(item);
|
|
189
|
+
start = end + 2;
|
|
190
|
+
end = start;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (value === opts.delimiter && quoteCount % 2 === 0) {
|
|
194
|
+
end = numKey;
|
|
195
|
+
if (end > start) {
|
|
196
|
+
item = line.substring(start, end);
|
|
197
|
+
list.push(item);
|
|
198
|
+
start = end + 1;
|
|
199
|
+
end = start;
|
|
200
|
+
}
|
|
201
|
+
else if (end === start) {
|
|
202
|
+
list.push("");
|
|
203
|
+
start = end + 1;
|
|
204
|
+
end = start;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
end = length;
|
|
209
|
+
if (end >= start) {
|
|
210
|
+
item = line.substring(start, end);
|
|
211
|
+
list.push(item);
|
|
212
|
+
}
|
|
213
|
+
return list;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
return line.split(opts.delimiter);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (opts.header) {
|
|
220
|
+
if (opts.header === true) {
|
|
221
|
+
opts.comment = cells(lines); // 第一行是注释
|
|
222
|
+
opts.cast = cells(lines); // 第二行是数据类型
|
|
223
|
+
fields = cells(lines); // 第三行是字段
|
|
224
|
+
}
|
|
225
|
+
else if (this.getType(opts.header) === "Array") {
|
|
226
|
+
fields = opts.header;
|
|
227
|
+
}
|
|
228
|
+
constructor = this.buildObjectConstructor(fields, lines[0].split(opts.delimiter), opts.cast);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
constructor = this.buildArrayConstructor(fields, lines[0].split(opts.delimiter), opts.cast);
|
|
232
|
+
}
|
|
233
|
+
while (lines.length > 0) {
|
|
234
|
+
var row = cells(lines);
|
|
235
|
+
if (row.length > 1) {
|
|
236
|
+
fn(constructor(row), fields[0]);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return true;
|
|
240
|
+
},
|
|
241
|
+
safeParse: function (text, opts, fn) {
|
|
242
|
+
var delimiter = opts.delimiter;
|
|
243
|
+
var newline = opts.newline;
|
|
244
|
+
var lines = text.split(newline);
|
|
245
|
+
if (opts.skip > 0) {
|
|
246
|
+
lines.splice(opts.skip);
|
|
247
|
+
}
|
|
248
|
+
return true;
|
|
249
|
+
},
|
|
250
|
+
encodeCells: function (line, delimiter, newline) {
|
|
251
|
+
var row = line.slice(0);
|
|
252
|
+
for (var i = 0, len = row.length; i < len; i++) {
|
|
253
|
+
if (row[i].indexOf(this.quoteMark) !== -1) {
|
|
254
|
+
row[i] = row[i].replace(this.quoteRegex, this.doubleQuoteMark);
|
|
255
|
+
}
|
|
256
|
+
if (row[i].indexOf(delimiter) !== -1 || row[i].indexOf(newline) !== -1) {
|
|
257
|
+
row[i] = this.quoteMark + row[i] + this.quoteMark;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return row.join(delimiter);
|
|
261
|
+
},
|
|
262
|
+
encodeArrays: function (coll, opts, fn) {
|
|
263
|
+
var delimiter = opts.delimiter;
|
|
264
|
+
var newline = opts.newline;
|
|
265
|
+
if (opts.header && this.getType(opts.header) === "Array") {
|
|
266
|
+
fn(this.encodeCells(opts.header, delimiter, newline));
|
|
267
|
+
}
|
|
268
|
+
for (var cur = 0, lim = this.getLimit(opts.limit, coll.length); cur < lim; cur++) {
|
|
269
|
+
fn(this.encodeCells(coll[cur], delimiter, newline));
|
|
270
|
+
}
|
|
271
|
+
return true;
|
|
272
|
+
},
|
|
273
|
+
encodeObjects: function (coll, opts, fn) {
|
|
274
|
+
var delimiter = opts.delimiter;
|
|
275
|
+
var newline = opts.newline;
|
|
276
|
+
var header;
|
|
277
|
+
var row;
|
|
278
|
+
header = [];
|
|
279
|
+
row = [];
|
|
280
|
+
for (var key in coll[0]) {
|
|
281
|
+
header.push(key);
|
|
282
|
+
row.push(coll[0][key]);
|
|
283
|
+
}
|
|
284
|
+
if (opts.header === true) {
|
|
285
|
+
fn(this.encodeCells(header, delimiter, newline));
|
|
286
|
+
}
|
|
287
|
+
else if (this.getType(opts.header) === "Array") {
|
|
288
|
+
fn(this.encodeCells(opts.header, delimiter, newline));
|
|
289
|
+
}
|
|
290
|
+
fn(this.encodeCells(row, delimiter));
|
|
291
|
+
for (var cur = 1, lim = this.getLimit(opts.limit, coll.length); cur < lim; cur++) {
|
|
292
|
+
row = [];
|
|
293
|
+
for (var key$1 = 0, len = header.length; key$1 < len; key$1++) {
|
|
294
|
+
row.push(coll[cur][header[key$1]]);
|
|
295
|
+
}
|
|
296
|
+
fn(this.encodeCells(row, delimiter, newline));
|
|
297
|
+
}
|
|
298
|
+
return true;
|
|
299
|
+
},
|
|
300
|
+
parse: function (text, opts, fn) {
|
|
301
|
+
var rows;
|
|
302
|
+
if (this.getType(opts) === "Function") {
|
|
303
|
+
fn = opts;
|
|
304
|
+
opts = {};
|
|
305
|
+
}
|
|
306
|
+
else if (this.getType(fn) !== "Function") {
|
|
307
|
+
rows = [];
|
|
308
|
+
fn = rows.push.bind(rows);
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
rows = [];
|
|
312
|
+
}
|
|
313
|
+
opts = this.assign({}, this.STANDARD_DECODE_OPTS, opts);
|
|
314
|
+
this.opts = opts;
|
|
315
|
+
if (!opts.delimiter || !opts.newline) {
|
|
316
|
+
var limit = Math.min(48, Math.floor(text.length / 20), text.length);
|
|
317
|
+
opts.delimiter = opts.delimiter || this.mostFrequent(text, CELL_DELIMITERS, limit);
|
|
318
|
+
opts.newline = opts.newline || this.mostFrequent(text, LINE_DELIMITERS, limit);
|
|
319
|
+
}
|
|
320
|
+
return this.unsafeParse(text, opts, fn) &&
|
|
321
|
+
(rows.length > 0 ? rows : true);
|
|
322
|
+
},
|
|
323
|
+
encode: function (coll, opts, fn) {
|
|
324
|
+
var lines;
|
|
325
|
+
if (this.getType(opts) === "Function") {
|
|
326
|
+
fn = opts;
|
|
327
|
+
opts = {};
|
|
328
|
+
}
|
|
329
|
+
else if (this.getType(fn) !== "Function") {
|
|
330
|
+
lines = [];
|
|
331
|
+
fn = lines.push.bind(lines);
|
|
332
|
+
}
|
|
333
|
+
opts = this.assign({}, this.STANDARD_ENCODE_OPTS, opts);
|
|
334
|
+
if (opts.skip > 0) {
|
|
335
|
+
coll = coll.slice(opts.skip);
|
|
336
|
+
}
|
|
337
|
+
return (this.getType(coll[0]) === "Array" ? this.encodeArrays : this.encodeObjects)(coll, opts, fn) &&
|
|
338
|
+
(lines.length > 0 ? lines.join(opts.newline) : true);
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
export default CSV;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { sys } from "cc";
|
|
2
|
+
export class LogUtils {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.isDebug = false;
|
|
5
|
+
}
|
|
6
|
+
init(isDebug) {
|
|
7
|
+
this.isDebug = isDebug;
|
|
8
|
+
LogUtils.Instance.log(LogUtils.TAG, "init() finished.");
|
|
9
|
+
}
|
|
10
|
+
log(tag, ...data) {
|
|
11
|
+
if (this.isDebug) {
|
|
12
|
+
if (tag && tag.length > 0) {
|
|
13
|
+
if (sys.platform === sys.Platform.HUAWEI_QUICK_GAME) {
|
|
14
|
+
console.log(new Date().getTime().toString() + " [" + tag + "]: ", JSON.stringify(data));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
console.log(new Date().getTime().toString() + " [" + tag + "]: ", ...data);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
if (sys.platform === sys.Platform.HUAWEI_QUICK_GAME) {
|
|
22
|
+
console.log(JSON.stringify(data));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log(...data);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
LogUtils.Instance = new LogUtils();
|
|
32
|
+
LogUtils.TAG = "LogUtils";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class NumberUtils {
|
|
2
|
+
/**
|
|
3
|
+
* 给数字添加前导0
|
|
4
|
+
* @param num 数字
|
|
5
|
+
* @param length 总长度
|
|
6
|
+
* @returns 前导0后的字符串
|
|
7
|
+
*/
|
|
8
|
+
static prefixInteger(num: number, length: number): string;
|
|
9
|
+
/**
|
|
10
|
+
* 比较版本号
|
|
11
|
+
* @param v1 版本号1
|
|
12
|
+
* @param v2 版本号2
|
|
13
|
+
* @returns 1: v1大于v2, -1: v1小于v2, 0: v1等于v2
|
|
14
|
+
*/
|
|
15
|
+
static compareVersion(v1: string, v2: string): number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export class NumberUtils {
|
|
2
|
+
/**
|
|
3
|
+
* 给数字添加前导0
|
|
4
|
+
* @param num 数字
|
|
5
|
+
* @param length 总长度
|
|
6
|
+
* @returns 前导0后的字符串
|
|
7
|
+
*/
|
|
8
|
+
static prefixInteger(num, length) {
|
|
9
|
+
let result = "";
|
|
10
|
+
for (let i = length - 1; i >= 0; i--) {
|
|
11
|
+
const remainNum = num % Math.pow(10, i + 1);
|
|
12
|
+
result += Math.floor(remainNum / Math.pow(10, i));
|
|
13
|
+
}
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 比较版本号
|
|
18
|
+
* @param v1 版本号1
|
|
19
|
+
* @param v2 版本号2
|
|
20
|
+
* @returns 1: v1大于v2, -1: v1小于v2, 0: v1等于v2
|
|
21
|
+
*/
|
|
22
|
+
static compareVersion(v1, v2) {
|
|
23
|
+
let v1Array = v1.split('.');
|
|
24
|
+
let v2Array = v2.split('.');
|
|
25
|
+
const len = Math.max(v1.length, v2.length);
|
|
26
|
+
while (v1Array.length < len) {
|
|
27
|
+
v1Array.push('0');
|
|
28
|
+
}
|
|
29
|
+
while (v2Array.length < len) {
|
|
30
|
+
v2Array.push('0');
|
|
31
|
+
}
|
|
32
|
+
for (let i = 0; i < len; i++) {
|
|
33
|
+
const num1 = parseInt(v1Array[i]);
|
|
34
|
+
const num2 = parseInt(v2Array[i]);
|
|
35
|
+
if (num1 > num2) {
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
else if (num1 < num2) {
|
|
39
|
+
return -1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type AsyncTask = Promise<any>;
|
|
2
|
+
export declare class TaskUtils {
|
|
3
|
+
/**
|
|
4
|
+
* 并行执行异步任务数组,确保总执行时间不小于指定的最小持续时间
|
|
5
|
+
* @param minDuration 最小持续时间(毫秒)
|
|
6
|
+
* @param tasks 异步任务数组
|
|
7
|
+
* @returns 所有任务执行完成的 Promise
|
|
8
|
+
*/
|
|
9
|
+
static executeAsyncTasksWithMinDuration(minDuration: number, tasks: AsyncTask[]): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class TaskUtils {
|
|
2
|
+
/**
|
|
3
|
+
* 并行执行异步任务数组,确保总执行时间不小于指定的最小持续时间
|
|
4
|
+
* @param minDuration 最小持续时间(毫秒)
|
|
5
|
+
* @param tasks 异步任务数组
|
|
6
|
+
* @returns 所有任务执行完成的 Promise
|
|
7
|
+
*/
|
|
8
|
+
static executeAsyncTasksWithMinDuration(minDuration, tasks) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const startTime = Date.now();
|
|
11
|
+
Promise.all(tasks)
|
|
12
|
+
.then(() => {
|
|
13
|
+
const elapsed = Date.now() - startTime;
|
|
14
|
+
if (elapsed < minDuration) {
|
|
15
|
+
setTimeout(resolve, minDuration - elapsed);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
resolve();
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
.catch(reject);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class TimeUtils {
|
|
2
|
+
/**
|
|
3
|
+
* 格式化时间为分秒格式
|
|
4
|
+
* @param seconds 时间(秒)
|
|
5
|
+
* @returns 格式化后的时间字符串(分:秒)
|
|
6
|
+
*/
|
|
7
|
+
static formatTime(seconds: number): string;
|
|
8
|
+
/**
|
|
9
|
+
* 获取当前时间戳(秒)
|
|
10
|
+
* @returns 当前时间戳(秒)
|
|
11
|
+
*/
|
|
12
|
+
static nowTimestampInSecond(): number;
|
|
13
|
+
/**
|
|
14
|
+
* 等待指定时间
|
|
15
|
+
* @param time 等待时间(秒)
|
|
16
|
+
* @returns 等待完成的 Promise
|
|
17
|
+
*/
|
|
18
|
+
static wait(time: number): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NumberUtils } from "./NumberUtils";
|
|
2
|
+
export class TimeUtils {
|
|
3
|
+
/**
|
|
4
|
+
* 格式化时间为分秒格式
|
|
5
|
+
* @param seconds 时间(秒)
|
|
6
|
+
* @returns 格式化后的时间字符串(分:秒)
|
|
7
|
+
*/
|
|
8
|
+
static formatTime(seconds) {
|
|
9
|
+
let minute = Math.floor(seconds / 60);
|
|
10
|
+
let second = seconds % 60;
|
|
11
|
+
let result = NumberUtils.prefixInteger(minute, 2) + ":" + NumberUtils.prefixInteger(second, 2);
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 获取当前时间戳(秒)
|
|
16
|
+
* @returns 当前时间戳(秒)
|
|
17
|
+
*/
|
|
18
|
+
static nowTimestampInSecond() {
|
|
19
|
+
return Math.floor(Date.now() / 1000);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 等待指定时间
|
|
23
|
+
* @param time 等待时间(秒)
|
|
24
|
+
* @returns 等待完成的 Promise
|
|
25
|
+
*/
|
|
26
|
+
static wait(time) {
|
|
27
|
+
return new Promise((resolve) => {
|
|
28
|
+
setTimeout(() => {
|
|
29
|
+
resolve();
|
|
30
|
+
}, time * 1000);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class WXDecryptResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
jsonData: any;
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
declare class WXBizDataCryptUtils {
|
|
7
|
+
appId: string;
|
|
8
|
+
sessionKey: string;
|
|
9
|
+
constructor(appId: string, sessionKey: string);
|
|
10
|
+
decryptData(encryptedData: string, iv: string): WXDecryptResult;
|
|
11
|
+
}
|
|
12
|
+
export default WXBizDataCryptUtils;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import CryptoJS from 'crypto-js';
|
|
2
|
+
export class WXDecryptResult {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.success = false;
|
|
5
|
+
this.jsonData = null;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
class WXBizDataCryptUtils {
|
|
9
|
+
constructor(appId, sessionKey) {
|
|
10
|
+
this.appId = appId;
|
|
11
|
+
this.sessionKey = sessionKey;
|
|
12
|
+
}
|
|
13
|
+
decryptData(encryptedData, iv) {
|
|
14
|
+
let result = new WXDecryptResult();
|
|
15
|
+
// 将Base64字符串转换为WordArray(crypto-js的内部格式)
|
|
16
|
+
const sessionKeyBase64 = CryptoJS.enc.Base64.parse(this.sessionKey);
|
|
17
|
+
const encryptedDataBase64 = CryptoJS.enc.Base64.parse(encryptedData);
|
|
18
|
+
const ivBase64 = CryptoJS.enc.Base64.parse(iv);
|
|
19
|
+
// 解密
|
|
20
|
+
const decrypted = CryptoJS.AES.decrypt({ ciphertext: encryptedDataBase64 }, // 类型适配
|
|
21
|
+
sessionKeyBase64, { iv: ivBase64, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
|
|
22
|
+
// 转换为UTF8字符串
|
|
23
|
+
const resultStr = decrypted.toString(CryptoJS.enc.Utf8);
|
|
24
|
+
if (!resultStr) {
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
const jsonData = JSON.parse(resultStr);
|
|
28
|
+
// 验证水印
|
|
29
|
+
if (jsonData.watermark && jsonData.watermark.appid !== this.appId) {
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
result.success = true;
|
|
33
|
+
result.jsonData = jsonData;
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default WXBizDataCryptUtils;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MiniGameFramework - 基于 Cocos Creator 3.x 的小游戏开发框架
|
|
3
|
+
*
|
|
4
|
+
* @module MiniGameFramework
|
|
5
|
+
*/
|
|
6
|
+
export { ResMgr } from './Framework/Manager/ResMgr';
|
|
7
|
+
export { UIMgr, UICtrl } from './Framework/Manager/UIMgr';
|
|
8
|
+
export { EventMgr } from './Framework/Manager/EventMgr';
|
|
9
|
+
export { AudioMgr } from './Framework/Manager/AudioMgr';
|
|
10
|
+
export { UserMgr } from './Framework/Manager/UserMgr';
|
|
11
|
+
export { SocialMgr } from './Framework/Manager/SocialMgr';
|
|
12
|
+
export { AdMgr } from './Framework/Manager/AdMgr';
|
|
13
|
+
export { SystemMgr } from './Framework/Manager/SystemMgr';
|
|
14
|
+
export { TimerMgr } from './Framework/Manager/TimerMgr';
|
|
15
|
+
export { PrivacyMgr } from './Framework/Manager/PrivacyMgr';
|
|
16
|
+
export { LifeCycleMgr } from './Framework/Manager/LifeCycleMgr';
|
|
17
|
+
export { BaseMgr } from './Framework/Manager/BaseMgr';
|
|
18
|
+
export { NodePoolMgr } from './Framework/Manager/NodePoolMgr';
|
|
19
|
+
export { LogUtils } from './Framework/Utils/LogUtils';
|
|
20
|
+
export { TaskUtils } from './Framework/Utils/TaskUtils';
|
|
21
|
+
export { BezierUtils } from './Framework/Utils/BezierUtils';
|
|
22
|
+
export { NumberUtils } from './Framework/Utils/NumberUtils';
|
|
23
|
+
export { TimeUtils } from './Framework/Utils/TimeUtils';
|
|
24
|
+
export * from './Framework/Definition/SystemDefinition';
|
|
25
|
+
export * from './Framework/Definition/UserDefinition';
|
|
26
|
+
export * from './Framework/Definition/AdDefinition';
|
|
27
|
+
export * from './Framework/Definition/PrivacyDefinition';
|
|
28
|
+
export * from './Framework/Definition/SocialDefinition';
|
|
29
|
+
export * from './Framework/Definition/UIDefinition';
|
|
30
|
+
export * from './Framework/Definition/FrameworkBase';
|