@galacean/effects-plugin-alipay-downgrade 2.3.0-alpha.2 → 2.3.0-beta.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.
package/dist/alipay.js CHANGED
@@ -1,660 +1,2 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var EFFECTS = require('@galacean/effects/alipay');
6
- var alipay = require('@galacean/appx-adapter/alipay');
7
-
8
- function _interopNamespace(e) {
9
- if (e && e.__esModule) return e;
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n["default"] = e;
23
- return Object.freeze(n);
24
- }
25
-
26
- var EFFECTS__namespace = /*#__PURE__*/_interopNamespace(EFFECTS);
27
-
28
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
29
- try {
30
- var info = gen[key](arg);
31
- var value = info.value;
32
- } catch (error) {
33
- reject(error);
34
- return;
35
- }
36
- if (info.done) resolve(value);
37
- else Promise.resolve(value).then(_next, _throw);
38
- }
39
- function _async_to_generator(fn) {
40
- return function() {
41
- var self = this, args = arguments;
42
- return new Promise(function(resolve, reject) {
43
- var gen = fn.apply(self, args);
44
- function _next(value) {
45
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
46
- }
47
- function _throw(err) {
48
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
49
- }
50
- _next(undefined);
51
- });
52
- };
53
- }
54
-
55
- function _set_prototype_of(o, p) {
56
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
57
- o.__proto__ = p;
58
- return o;
59
- };
60
- return _set_prototype_of(o, p);
61
- }
62
-
63
- function _inherits(subClass, superClass) {
64
- if (typeof superClass !== "function" && superClass !== null) {
65
- throw new TypeError("Super expression must either be null or a function");
66
- }
67
- subClass.prototype = Object.create(superClass && superClass.prototype, {
68
- constructor: {
69
- value: subClass,
70
- writable: true,
71
- configurable: true
72
- }
73
- });
74
- if (superClass) _set_prototype_of(subClass, superClass);
75
- }
76
-
77
- function __generator(thisArg, body) {
78
- var _ = {
79
- label: 0,
80
- sent: function sent() {
81
- if (t[0] & 1) throw t[1];
82
- return t[1];
83
- },
84
- trys: [],
85
- ops: []
86
- }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
87
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
88
- return this;
89
- }), g;
90
- function verb(n) {
91
- return function(v) {
92
- return step([
93
- n,
94
- v
95
- ]);
96
- };
97
- }
98
- function step(op) {
99
- if (f) throw new TypeError("Generator is already executing.");
100
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
101
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
102
- if (y = 0, t) op = [
103
- op[0] & 2,
104
- t.value
105
- ];
106
- switch(op[0]){
107
- case 0:
108
- case 1:
109
- t = op;
110
- break;
111
- case 4:
112
- _.label++;
113
- return {
114
- value: op[1],
115
- done: false
116
- };
117
- case 5:
118
- _.label++;
119
- y = op[1];
120
- op = [
121
- 0
122
- ];
123
- continue;
124
- case 7:
125
- op = _.ops.pop();
126
- _.trys.pop();
127
- continue;
128
- default:
129
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
130
- _ = 0;
131
- continue;
132
- }
133
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
134
- _.label = op[1];
135
- break;
136
- }
137
- if (op[0] === 6 && _.label < t[1]) {
138
- _.label = t[1];
139
- t = op;
140
- break;
141
- }
142
- if (t && _.label < t[2]) {
143
- _.label = t[2];
144
- _.ops.push(op);
145
- break;
146
- }
147
- if (t[2]) _.ops.pop();
148
- _.trys.pop();
149
- continue;
150
- }
151
- op = body.call(thisArg, _);
152
- } catch (e) {
153
- op = [
154
- 6,
155
- e
156
- ];
157
- y = 0;
158
- } finally{
159
- f = t = 0;
160
- }
161
- if (op[0] & 5) throw op[1];
162
- return {
163
- value: op[0] ? op[1] : void 0,
164
- done: true
165
- };
166
- }
167
- }
168
- typeof SuppressedError === "function" ? SuppressedError : function _SuppressedError(error, suppressed, message) {
169
- var e = new Error(message);
170
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
171
- };
172
-
173
- function _extends() {
174
- _extends = Object.assign || function assign(target) {
175
- for(var i = 1; i < arguments.length; i++){
176
- var source = arguments[i];
177
- for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
178
- }
179
- return target;
180
- };
181
- return _extends.apply(this, arguments);
182
- }
183
-
184
- exports.DeviceLevel = void 0;
185
- (function(DeviceLevel) {
186
- DeviceLevel["High"] = "high";
187
- DeviceLevel["Medium"] = "medium";
188
- DeviceLevel["Low"] = "low";
189
- DeviceLevel["Unknown"] = "unknown";
190
- })(exports.DeviceLevel || (exports.DeviceLevel = {}));
191
-
192
- var deviceModelList = [
193
- "12,8",
194
- "13,1",
195
- "13,2",
196
- "13,3",
197
- "13,4"
198
- ];
199
- /**
200
- * 设备代理类
201
- *
202
- * 负责将 JSAPI 返回的 SystemInfo 和 DowngradeResult 数据
203
- * 转成设备相关的数据,在后面的降级判断中使用
204
- */ var DeviceProxy = /*#__PURE__*/ function() {
205
- function DeviceProxy() {
206
- /**
207
- * 是否 iOS 系统
208
- */ this.isIOS = false;
209
- /**
210
- * 硬件机型
211
- */ this.model = "DESKTOP_DEBUG";
212
- /**
213
- * 系统版本
214
- */ this.system = "Unknown";
215
- /**
216
- * 设备等级
217
- */ this.level = exports.DeviceLevel.Unknown;
218
- /**
219
- * 是否降级
220
- */ this.isDowngrade = false;
221
- }
222
- var _proto = DeviceProxy.prototype;
223
- /**
224
- * 设置 JSAPI 返回的系统信息
225
- * @param systemInfo - JSAPI 返回的系统信息
226
- */ _proto.setSystemInfo = function setSystemInfo(systemInfo) {
227
- var performance = systemInfo.performance, platform = systemInfo.platform, _systemInfo_model = systemInfo.model, model = _systemInfo_model === void 0 ? "UNKNOWN_DEVICE" : _systemInfo_model, _systemInfo_system = systemInfo.system, system = _systemInfo_system === void 0 ? "Unknown" : _systemInfo_system;
228
- this.isIOS = platform === "iOS";
229
- this.model = model;
230
- this.system = system;
231
- this.setLevel(performance);
232
- };
233
- /**
234
- * 根据传入的 JSAPI 降级结果,返回设备的降级决定
235
- *
236
- * @param result - JSAPI 返回的降级结果
237
- * @returns 设备降级决定
238
- */ _proto.getDowngradeDecision = function getDowngradeDecision(result) {
239
- var resultType = undefined;
240
- var resultReason = undefined;
241
- if (result.error) {
242
- // 无权调用的情况下不降级
243
- return {
244
- downgrade: result.error !== 4,
245
- level: this.getRenderLevel(),
246
- reason: "api error: " + result.error
247
- };
248
- }
249
- try {
250
- var ret = EFFECTS.isString(result) ? JSON.parse(result) : result;
251
- if ("downgradeResultType" in ret) {
252
- resultType = ret.downgradeResultType;
253
- } else if ("resultType" in ret) {
254
- resultType = ret.resultType;
255
- resultReason = ret.resultReason;
256
- }
257
- if (result.context) {
258
- var deviceInfo = result.context.deviceInfo;
259
- if (deviceInfo) {
260
- var deviceLevel = deviceInfo.deviceLevel;
261
- var newLevel = getDeviceLevel(deviceLevel);
262
- if (newLevel !== exports.DeviceLevel.Unknown) {
263
- this.level = newLevel;
264
- }
265
- }
266
- }
267
- } catch (ex) {
268
- EFFECTS.logger.error(ex);
269
- }
270
- if (resultType === undefined) {
271
- return {
272
- downgrade: true,
273
- level: this.getRenderLevel(),
274
- reason: "call downgrade fail"
275
- };
276
- }
277
- if (resultType === 1) {
278
- return {
279
- downgrade: true,
280
- level: this.getRenderLevel(),
281
- reason: getDowngradeReason(resultReason)
282
- };
283
- }
284
- if (EFFECTS.isAlipayMiniApp() && this.downgradeForMiniprogram()) {
285
- return {
286
- downgrade: true,
287
- level: this.getRenderLevel(),
288
- reason: "Force downgrade by downgrade plugin"
289
- };
290
- }
291
- return {
292
- downgrade: false,
293
- level: this.getRenderLevel(),
294
- reason: "" + resultType
295
- };
296
- };
297
- /**
298
- * 获取设备渲染等级
299
- * @returns 设备渲染等级
300
- */ _proto.getRenderLevel = function getRenderLevel() {
301
- if (this.level === exports.DeviceLevel.High) {
302
- return EFFECTS.spec.RenderLevel.S;
303
- } else if (this.level === exports.DeviceLevel.Medium) {
304
- return EFFECTS.spec.RenderLevel.A;
305
- } else if (this.level === exports.DeviceLevel.Low) {
306
- return EFFECTS.spec.RenderLevel.B;
307
- } else {
308
- return this.isIOS ? EFFECTS.spec.RenderLevel.S : EFFECTS.spec.RenderLevel.B;
309
- }
310
- };
311
- _proto.setLevel = function setLevel(level) {
312
- this.level = getDeviceLevel(level);
313
- if (this.level === exports.DeviceLevel.Unknown) {
314
- if (/iPhone(\d+),/.test(this.model)) {
315
- var gen = +RegExp.$1;
316
- if (gen <= 9) {
317
- this.level = exports.DeviceLevel.Low;
318
- } else if (gen < 10) {
319
- this.level = exports.DeviceLevel.Medium;
320
- } else {
321
- this.level = exports.DeviceLevel.High;
322
- }
323
- }
324
- }
325
- };
326
- _proto.downgradeForMiniprogram = function downgradeForMiniprogram() {
327
- var _this = this;
328
- if (this.isIOS) {
329
- if (deviceModelList.find(function(v) {
330
- return v === _this.model;
331
- })) {
332
- var versionList = this.system.split(".");
333
- if (versionList.length > 0 && versionList[0] === "16") {
334
- return true;
335
- }
336
- }
337
- }
338
- return false;
339
- };
340
- return DeviceProxy;
341
- }();
342
- function getDowngradeReason(reason) {
343
- if (reason === -1) {
344
- return "" + reason + ", unable to pull configuration";
345
- } else if (reason === 0) {
346
- return "" + reason + ", no downgrade";
347
- } else if (reason === 1) {
348
- return "" + reason + ", memory downgrade";
349
- } else if (reason === 2) {
350
- return "" + reason + ", crash downgrade";
351
- } else if (reason === 3) {
352
- return "" + reason + ", basic dimension downgrade";
353
- } else if (reason === 4) {
354
- return "" + reason + ", technical point downgrade";
355
- } else if (reason === 5) {
356
- return "" + reason + ", GPU downgrade";
357
- } else if (reason === 6) {
358
- return "" + reason + ", self-healing downgrade";
359
- } else if (reason === 7) {
360
- return "" + reason + ", 32-bit CPU downgrade";
361
- } else {
362
- return "" + reason;
363
- }
364
- }
365
- function getDeviceLevel(level) {
366
- if (level === "high") {
367
- return exports.DeviceLevel.High;
368
- } else if (level === "medium" || level === "middle") {
369
- return exports.DeviceLevel.Medium;
370
- } else if (level === "low") {
371
- return exports.DeviceLevel.Low;
372
- } else {
373
- return exports.DeviceLevel.Unknown;
374
- }
375
- }
376
-
377
- var internalPaused = Symbol("@@_inter_pause");
378
- var mockIdPass = "mock-pass";
379
- var mockIdFail = "mock-fail";
380
- var hasRegisterEvent = false;
381
- // window 对象不存在时需要判断
382
- var canUseBOM = typeof alipay.window !== "undefined";
383
- /**
384
- * 获取 GE 降级结果,在有 JSAPI 环境下调用,不需要创建 Canvas 和 WebGL 环境。
385
- *
386
- * @param bizId - 业务 bizId
387
- * @param options - 降级选项
388
- * @returns 降级结果
389
- */ function getDowngradeResult(bizId) {
390
- return _getDowngradeResult.apply(this, arguments);
391
- }
392
- function _getDowngradeResult() {
393
- _getDowngradeResult = _async_to_generator(function(bizId, options) {
394
- var _options_level, _options_level1, ap, _options_level2, systemStartTime;
395
- return __generator(this, function(_state) {
396
- if (options === void 0) options = {};
397
- if (!canUseBOM) {
398
- return [
399
- 2,
400
- Promise.resolve({
401
- bizId: bizId,
402
- downgrade: true,
403
- level: (_options_level = options.level) != null ? _options_level : EFFECTS.spec.RenderLevel.S,
404
- reason: "当前环境无法访问 window"
405
- })
406
- ];
407
- }
408
- if (!hasRegisterEvent) {
409
- hasRegisterEvent = true;
410
- registerEvent(options);
411
- }
412
- if (bizId === mockIdFail || bizId === mockIdPass) {
413
- return [
414
- 2,
415
- Promise.resolve({
416
- bizId: bizId,
417
- downgrade: bizId === mockIdFail,
418
- level: (_options_level1 = options.level) != null ? _options_level1 : EFFECTS.spec.RenderLevel.S,
419
- reason: "mock"
420
- })
421
- ];
422
- }
423
- ap = EFFECTS.isAlipayMiniApp() ? my : alipay.window.AlipayJSBridge;
424
- // 当需要通过 ap 获取降级信息时,才进行降级环境的检查
425
- if (!ap && (!options.systemInfo || !options.downgradeResult)) {
426
- return [
427
- 2,
428
- {
429
- bizId: bizId,
430
- downgrade: false,
431
- level: (_options_level2 = options.level) != null ? _options_level2 : EFFECTS.spec.RenderLevel.S,
432
- reason: "Non-Alipay environment"
433
- }
434
- ];
435
- }
436
- systemStartTime = performance.now();
437
- return [
438
- 2,
439
- getSystemInfoJSAPI(options, ap).then(function(systemInfo) {
440
- var systemEndTime = performance.now();
441
- return getDowngradeResultJSAPI(bizId, options, ap).then(function(downgradeResult) {
442
- var downgradeEndTime = performance.now();
443
- EFFECTS.logger.info("Downgrade time: " + (downgradeEndTime - systemStartTime) + "ms.");
444
- var device = new DeviceProxy();
445
- device.setSystemInfo(systemInfo);
446
- var decision = device.getDowngradeDecision(downgradeResult);
447
- if (options.level) {
448
- decision.level = options.level;
449
- }
450
- var result = _extends({}, decision, {
451
- bizId: bizId,
452
- systemInfo: systemInfo,
453
- systemTime: systemEndTime - systemStartTime,
454
- downgradeResult: downgradeResult,
455
- downgradeTime: downgradeEndTime - systemEndTime
456
- });
457
- return result;
458
- });
459
- })
460
- ];
461
- });
462
- });
463
- return _getDowngradeResult.apply(this, arguments);
464
- }
465
- function registerEvent(options) {
466
- var autoPause = options.autoPause;
467
- alipay.window.addEventListener("unload", function() {
468
- EFFECTS.getActivePlayers().forEach(function(player) {
469
- return player.dispose();
470
- });
471
- });
472
- if (autoPause) {
473
- document.addEventListener("pause", pauseAllActivePlayers);
474
- document.addEventListener("resume", resumePausedPlayers);
475
- }
476
- }
477
- function getSystemInfoJSAPI(options, ap) {
478
- return _getSystemInfoJSAPI.apply(this, arguments);
479
- }
480
- function _getSystemInfoJSAPI() {
481
- _getSystemInfoJSAPI = _async_to_generator(function(options, ap) {
482
- return __generator(this, function(_state) {
483
- if (options.systemInfo) {
484
- return [
485
- 2,
486
- Promise.resolve(options.systemInfo)
487
- ];
488
- } else {
489
- return [
490
- 2,
491
- new Promise(function(resolve, reject) {
492
- ap.call("getSystemInfo", function(e) {
493
- if (e.error) {
494
- reject(e);
495
- } else {
496
- resolve(e);
497
- }
498
- });
499
- })
500
- ];
501
- }
502
- });
503
- });
504
- return _getSystemInfoJSAPI.apply(this, arguments);
505
- }
506
- function getDowngradeResultJSAPI(bizId, options, ap) {
507
- return _getDowngradeResultJSAPI.apply(this, arguments);
508
- }
509
- function _getDowngradeResultJSAPI() {
510
- _getDowngradeResultJSAPI = _async_to_generator(function(bizId, options, ap) {
511
- return __generator(this, function(_state) {
512
- if (options.downgradeResult) {
513
- return [
514
- 2,
515
- Promise.resolve(options.downgradeResult)
516
- ];
517
- } else {
518
- return [
519
- 2,
520
- new Promise(function(resolve, reject) {
521
- var techPoint = [
522
- "mars"
523
- ];
524
- var tc = options.techPoint;
525
- if (tc) {
526
- var _techPoint;
527
- (_techPoint = techPoint).push.apply(_techPoint, [].concat(tc));
528
- }
529
- var downgradeOptions = {
530
- bizId: bizId,
531
- scene: 0,
532
- ext: {
533
- techPoint: techPoint
534
- }
535
- };
536
- var _options_callBridge;
537
- var callBridge = (_options_callBridge = options.callBridge) != null ? _options_callBridge : ap.call;
538
- callBridge("getDowngradeResult", downgradeOptions, function(result) {
539
- resolve(result);
540
- });
541
- })
542
- ];
543
- }
544
- });
545
- });
546
- return _getDowngradeResultJSAPI.apply(this, arguments);
547
- }
548
- /**
549
- * 获取默认渲染等级
550
- *
551
- * @returns 渲染等级
552
- */ function getDefaultRenderLevel() {
553
- return EFFECTS.isIOS() ? EFFECTS.spec.RenderLevel.S : EFFECTS.spec.RenderLevel.B;
554
- }
555
- function pauseAllActivePlayers(e) {
556
- if (e.target === document) {
557
- EFFECTS.logger.info("Auto pause all players with data offloaded.");
558
- var players = EFFECTS.getActivePlayers();
559
- players.forEach(function(player) {
560
- if (!player.paused) {
561
- player.pause({
562
- offloadTexture: true
563
- });
564
- // @ts-expect-error
565
- player[internalPaused] = true;
566
- }
567
- });
568
- }
569
- }
570
- function resumePausedPlayers(e) {
571
- if (e.target === document) {
572
- EFFECTS.logger.info("Auto resume all players.");
573
- var players = EFFECTS.getActivePlayers();
574
- players.forEach(function(player) {
575
- // @ts-expect-error
576
- if (player[internalPaused]) {
577
- void player.resume();
578
- // @ts-expect-error
579
- player[internalPaused] = false;
580
- }
581
- });
582
- }
583
- }
584
-
585
- /**
586
- * Alipay 降级插件类
587
- *
588
- * 根据 SceneLoadOptions 中传入的 downgrade 数据,判断是否降级。
589
- * 如果设备被降级,会在 processRawJSON 时抛出降级相关的异常和原因。
590
- *
591
- * 如果 SceneLoadOptions 中 renderLevel 没有设置,那么会根据 downgrade 数据
592
- * 和默认的渲染等级规则设置其中的 renderLevel。
593
- */ var AlipayDowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
594
- _inherits(AlipayDowngradePlugin, AbstractPlugin);
595
- function AlipayDowngradePlugin() {
596
- return AbstractPlugin.apply(this, arguments);
597
- }
598
- AlipayDowngradePlugin.processRawJSON = function processRawJSON(json, options) {
599
- if (options === void 0) options = {};
600
- return _async_to_generator(function() {
601
- var _options_pluginData, downgradeResult, _downgradeResult_level;
602
- return __generator(this, function(_state) {
603
- downgradeResult = (_options_pluginData = options.pluginData) == null ? void 0 : _options_pluginData["downgrade"];
604
- if (downgradeResult) {
605
- if (downgradeResult.downgrade) {
606
- throw new Error("Downgraded, reason: " + downgradeResult.reason);
607
- }
608
- } else {
609
- EFFECTS.logger.warn("No downgrade result in pluginData of SceneLoadOptions.");
610
- }
611
- if (!options.renderLevel) {
612
- options.renderLevel = (_downgradeResult_level = downgradeResult == null ? void 0 : downgradeResult.level) != null ? _downgradeResult_level : getDefaultRenderLevel();
613
- }
614
- return [
615
- 2
616
- ];
617
- });
618
- })();
619
- };
620
- return AlipayDowngradePlugin;
621
- }(EFFECTS.AbstractPlugin);
622
-
623
- var prefix = "[Galacean Effects]";
624
- // 非 Web 环境不执行后续逻辑,避免 window 及 navigator 访问报错
625
- if (canUseBOM) {
626
- var ap = EFFECTS.isAlipayMiniApp() ? my : alipay.window.AlipayJSBridge;
627
- var nativeLogger = function(type, msg) {
628
- for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
629
- args[_key - 2] = arguments[_key];
630
- }
631
- var content = {
632
- "message": prefix + " " + msg + " " + args.join(""),
633
- "level": type
634
- };
635
- if (EFFECTS.isAndroid()) {
636
- content["anr_info"] = "mars";
637
- }
638
- try {
639
- ap == null ? void 0 : ap.call("localLog", content);
640
- } catch (e) {
641
- console.error(e);
642
- }
643
- };
644
- EFFECTS.logger.register(nativeLogger);
645
- }
646
-
647
- /**
648
- * 插件版本号
649
- */ var version = "2.3.0-alpha.2";
650
- EFFECTS.registerPlugin("alipay-downgrade", AlipayDowngradePlugin, EFFECTS.VFXItem, true);
651
- EFFECTS.logger.info("Plugin downgrade version: " + version + ".");
652
- if (version !== EFFECTS__namespace.version) {
653
- console.error("注意:请统一 Downgrade 插件与 Player 版本,不统一的版本混用会有不可预知的后果!", "\nAttention: Please ensure the Downgrade plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!");
654
- }
655
-
656
- exports.canUseBOM = canUseBOM;
657
- exports.getDefaultRenderLevel = getDefaultRenderLevel;
658
- exports.getDowngradeResult = getDowngradeResult;
659
- exports.version = version;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@galacean/effects/alipay"),n=require("@galacean/appx-adapter/alipay");function r(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var t,o=r(e);function i(e,n,r,t,o,i,l){try{var a=e[i](l),s=a.value}catch(e){return void r(e)}a.done?n(s):Promise.resolve(s).then(t,o)}function l(e){return function(){var n=this,r=arguments;return new Promise((function(t,o){var l=e.apply(n,r);function a(e){i(l,t,o,a,s,"next",e)}function s(e){i(l,t,o,a,s,"throw",e)}a(void 0)}))}}function a(e,n){return a=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e},a(e,n)}function s(e,n){var r,t,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return l.next=a(0),l.throw=a(1),l.return=a(2),"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function a(a){return function(s){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;l&&(l=0,a[0]&&(i=0)),i;)try{if(r=1,t&&(o=2&a[0]?t.return:a[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,a[1])).done)return o;switch(t=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,t=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=n.call(e,i)}catch(e){a=[6,e],t=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function u(){return u=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},u.apply(this,arguments)}"function"==typeof SuppressedError&&SuppressedError,exports.DeviceLevel=void 0,(t=exports.DeviceLevel||(exports.DeviceLevel={})).High="high",t.Medium="medium",t.Low="low",t.Unknown="unknown";var c=["12,8","13,1","13,2","13,3","13,4"],d=function(){function n(){this.isIOS=!1,this.model="DESKTOP_DEBUG",this.system="Unknown",this.level=exports.DeviceLevel.Unknown,this.isDowngrade=!1}var r=n.prototype;return r.setSystemInfo=function(e){var n=e.performance,r=e.platform,t=e.model,o=void 0===t?"UNKNOWN_DEVICE":t,i=e.system,l=void 0===i?"Unknown":i;this.isIOS="iOS"===r,this.model=o,this.system=l,this.setLevel(n)},r.getDowngradeDecision=function(n){var r=void 0,t=void 0;if(n.error)return{downgrade:4!==n.error,level:this.getRenderLevel(),reason:"api error: "+n.error};try{var o=e.isString(n)?JSON.parse(n):n;if("downgradeResultType"in o?r=o.downgradeResultType:"resultType"in o&&(r=o.resultType,t=o.resultReason),n.context){var i=n.context.deviceInfo;if(i){var l=p(i.deviceLevel);l!==exports.DeviceLevel.Unknown&&(this.level=l)}}}catch(n){e.logger.error(n)}return void 0===r?{downgrade:!0,level:this.getRenderLevel(),reason:"call downgrade fail"}:1===r?{downgrade:!0,level:this.getRenderLevel(),reason:v(t)}:e.isAlipayMiniApp()&&this.downgradeForMiniprogram()?{downgrade:!0,level:this.getRenderLevel(),reason:"Force downgrade by downgrade plugin"}:{downgrade:!1,level:this.getRenderLevel(),reason:""+r}},r.getRenderLevel=function(){return this.level===exports.DeviceLevel.High?e.spec.RenderLevel.S:this.level===exports.DeviceLevel.Medium?e.spec.RenderLevel.A:this.level===exports.DeviceLevel.Low?e.spec.RenderLevel.B:this.isIOS?e.spec.RenderLevel.S:e.spec.RenderLevel.B},r.setLevel=function(e){if(this.level=p(e),this.level===exports.DeviceLevel.Unknown&&/iPhone(\d+),/.test(this.model)){var n=+RegExp.$1;this.level=n<=9?exports.DeviceLevel.Low:n<10?exports.DeviceLevel.Medium:exports.DeviceLevel.High}},r.downgradeForMiniprogram=function(){var e=this;if(this.isIOS&&c.find((function(n){return n===e.model}))){var n=this.system.split(".");if(n.length>0&&"16"===n[0])return!0}return!1},n}();function v(e){return-1===e?e+", unable to pull configuration":0===e?e+", no downgrade":1===e?e+", memory downgrade":2===e?e+", crash downgrade":3===e?e+", basic dimension downgrade":4===e?e+", technical point downgrade":5===e?e+", GPU downgrade":6===e?e+", self-healing downgrade":7===e?e+", 32-bit CPU downgrade":""+e}function p(e){return"high"===e?exports.DeviceLevel.High:"medium"===e||"middle"===e?exports.DeviceLevel.Medium:"low"===e?exports.DeviceLevel.Low:exports.DeviceLevel.Unknown}var f=Symbol("@@_inter_pause"),g="mock-pass",w="mock-fail",h=!1,y=void 0!==n.window;function m(){return m=l((function(r,t){var o,i,l,a,c;return s(this,(function(s){return void 0===t&&(t={}),y?(h||(h=!0,function(r){var t=r.autoPause;n.window.addEventListener("unload",(function(){e.getActivePlayers().forEach((function(e){return e.dispose()}))})),t&&(document.addEventListener("pause",P),document.addEventListener("resume",R))}(t)),r===w||r===g?[2,Promise.resolve({bizId:r,downgrade:r===w,level:null!=(i=t.level)?i:e.spec.RenderLevel.S,reason:"mock"})]:(l=e.isAlipayMiniApp()?my:n.window.AlipayJSBridge)||t.systemInfo&&t.downgradeResult?(c=performance.now(),[2,L(t,l).then((function(n){var o=performance.now();return function(e,n,r){return D.apply(this,arguments)}(r,t,l).then((function(i){var l=performance.now();e.logger.info("Downgrade time: "+(l-c)+"ms.");var a=new d;a.setSystemInfo(n);var s=a.getDowngradeDecision(i);return t.level&&(s.level=t.level),u({},s,{bizId:r,systemInfo:n,systemTime:o-c,downgradeResult:i,downgradeTime:l-o})}))}))]):[2,{bizId:r,downgrade:!1,level:null!=(a=t.level)?a:e.spec.RenderLevel.S,reason:"Non-Alipay environment"}]):[2,Promise.resolve({bizId:r,downgrade:!0,level:null!=(o=t.level)?o:e.spec.RenderLevel.S,reason:"当前环境无法访问 window"})]}))})),m.apply(this,arguments)}function L(e,n){return b.apply(this,arguments)}function b(){return b=l((function(e,n){return s(this,(function(r){return e.systemInfo?[2,Promise.resolve(e.systemInfo)]:[2,new Promise((function(e,r){n.call("getSystemInfo",(function(n){n.error?r(n):e(n)}))}))]}))})),b.apply(this,arguments)}function D(){return D=l((function(e,n,r){return s(this,(function(t){return n.downgradeResult?[2,Promise.resolve(n.downgradeResult)]:[2,new Promise((function(t,o){var i,l=["mars"],a=n.techPoint;a&&(i=l).push.apply(i,[].concat(a));var s,u={bizId:e,scene:0,ext:{techPoint:l}};(null!=(s=n.callBridge)?s:r.call)("getDowngradeResult",u,(function(e){t(e)}))}))]}))})),D.apply(this,arguments)}function x(){return e.isIOS()?e.spec.RenderLevel.S:e.spec.RenderLevel.B}function P(n){n.target===document&&(e.logger.info("Auto pause all players with data offloaded."),e.getActivePlayers().forEach((function(e){e.paused||(e.pause({offloadTexture:!0}),e[f]=!0)})))}function R(n){n.target===document&&(e.logger.info("Auto resume all players."),e.getActivePlayers().forEach((function(e){e[f]&&(e.resume(),e[f]=!1)})))}var S=function(n){function r(){return n.apply(this,arguments)}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&a(e,n)}(r,n),r.processRawJSON=function(n,r){return void 0===r&&(r={}),l((function(){var n,t,o;return s(this,(function(i){if(t=null==(n=r.pluginData)?void 0:n.downgrade){if(t.downgrade)throw new Error("Downgraded, reason: "+t.reason)}else e.logger.warn("No downgrade result in pluginData of SceneLoadOptions.");return r.renderLevel||(r.renderLevel=null!=(o=null==t?void 0:t.level)?o:x()),[2]}))}))()},r}(e.AbstractPlugin);if(y){var O=e.isAlipayMiniApp()?my:n.window.AlipayJSBridge;e.logger.register((function(n,r){for(var t=arguments.length,o=new Array(t>2?t-2:0),i=2;i<t;i++)o[i-2]=arguments[i];var l={message:"[Galacean Effects] "+r+" "+o.join(""),level:n};e.isAndroid()&&(l.anr_info="mars");try{null==O||O.call("localLog",l)}catch(e){console.error(e)}}))}var I="2.3.0-beta.1";e.registerPlugin("alipay-downgrade",S,e.VFXItem),e.logger.info("Plugin downgrade version: "+I+"."),I!==o.version&&console.error("注意:请统一 Downgrade 插件与 Player 版本,不统一的版本混用会有不可预知的后果!","\nAttention: Please ensure the Downgrade plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!"),exports.canUseBOM=y,exports.getDefaultRenderLevel=x,exports.getDowngradeResult=function(e){return m.apply(this,arguments)},exports.version=I;
660
2
  //# sourceMappingURL=alipay.js.map