@galacean/effects-plugin-alipay-downgrade 2.0.0-alpha.2 → 2.0.0-alpha.21

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/index.mjs CHANGED
@@ -2,251 +2,324 @@
2
2
  * Name: @galacean/effects-plugin-alipay-downgrade
3
3
  * Description: Galacean Effects player downgrade plugin for Alipay
4
4
  * Author: Ant Group CO., Ltd.
5
- * Contributors: 燃然,意绮
6
- * Version: v2.0.0-alpha.2
5
+ * Contributors: 燃然,意绮,飂兮
6
+ * Version: v2.0.0-alpha.21
7
7
  */
8
8
 
9
- import { VFXItem, isString, spec, getActivePlayers, isCanvasUsedByPlayer, disableAllPlayer, logger, AbstractPlugin, isAndroid, isIOS, registerPlugin } from '@galacean/effects';
9
+ import * as EFFECTS from '@galacean/effects';
10
+ import { VFXItem, isString, isAlipayMiniApp, spec, getActivePlayers, logger, AbstractPlugin, isAndroid, registerPlugin } from '@galacean/effects';
10
11
 
11
- /******************************************************************************
12
- Copyright (c) Microsoft Corporation.
13
-
14
- Permission to use, copy, modify, and/or distribute this software for any
15
- purpose with or without fee is hereby granted.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
18
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
19
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
20
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
21
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
22
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
23
- PERFORMANCE OF THIS SOFTWARE.
24
- ***************************************************************************** */
25
- /* global Reflect, Promise, SuppressedError, Symbol */
26
-
27
- var extendStatics = function(d, b) {
28
- extendStatics = Object.setPrototypeOf ||
29
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31
- return extendStatics(d, b);
32
- };
33
-
34
- function __extends(d, b) {
35
- if (typeof b !== "function" && b !== null)
36
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
37
- extendStatics(d, b);
38
- function __() { this.constructor = d; }
39
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40
- }
41
-
42
- function __awaiter(thisArg, _arguments, P, generator) {
43
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
44
- return new (P || (P = Promise))(function (resolve, reject) {
45
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
46
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
47
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
48
- step((generator = generator.apply(thisArg, _arguments || [])).next());
49
- });
50
- }
51
-
52
- function __generator(thisArg, body) {
53
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
54
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
55
- function verb(n) { return function (v) { return step([n, v]); }; }
56
- function step(op) {
57
- if (f) throw new TypeError("Generator is already executing.");
58
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
59
- 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;
60
- if (y = 0, t) op = [op[0] & 2, t.value];
61
- switch (op[0]) {
62
- case 0: case 1: t = op; break;
63
- case 4: _.label++; return { value: op[1], done: false };
64
- case 5: _.label++; y = op[1]; op = [0]; continue;
65
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
66
- default:
67
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
68
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
69
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
70
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
71
- if (t[2]) _.ops.pop();
72
- _.trys.pop(); continue;
73
- }
74
- op = body.call(thisArg, _);
75
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
76
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
77
- }
78
- }
79
-
80
- function __read(o, n) {
81
- var m = typeof Symbol === "function" && o[Symbol.iterator];
82
- if (!m) return o;
83
- var i = m.call(o), r, ar = [], e;
84
- try {
85
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
86
- }
87
- catch (error) { e = { error: error }; }
88
- finally {
89
- try {
90
- if (r && !r.done && (m = i["return"])) m.call(i);
91
- }
92
- finally { if (e) throw e.error; }
93
- }
94
- return ar;
95
- }
96
-
97
- function __spreadArray(to, from, pack) {
98
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
99
- if (ar || !(i in from)) {
100
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
101
- ar[i] = from[i];
102
- }
103
- }
104
- return to.concat(ar || Array.prototype.slice.call(from));
105
- }
106
-
107
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
108
- var e = new Error(message);
109
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
110
- };
12
+ function _set_prototype_of(o, p) {
13
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
14
+ o.__proto__ = p;
15
+ return o;
16
+ };
17
+ return _set_prototype_of(o, p);
18
+ }
19
+
20
+ function _inherits(subClass, superClass) {
21
+ if (typeof superClass !== "function" && superClass !== null) {
22
+ throw new TypeError("Super expression must either be null or a function");
23
+ }
24
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
25
+ constructor: {
26
+ value: subClass,
27
+ writable: true,
28
+ configurable: true
29
+ }
30
+ });
31
+ if (superClass) _set_prototype_of(subClass, superClass);
32
+ }
111
33
 
112
- var DowngradeVFXItem = /** @class */ (function (_super) {
113
- __extends(DowngradeVFXItem, _super);
34
+ // class DowngradeItem {
35
+ // // empty
36
+ // }
37
+ var DowngradeVFXItem = /*#__PURE__*/ function(VFXItem) {
38
+ _inherits(DowngradeVFXItem, VFXItem);
114
39
  function DowngradeVFXItem() {
115
- return _super !== null && _super.apply(this, arguments) || this;
40
+ return VFXItem.apply(this, arguments);
116
41
  }
117
42
  return DowngradeVFXItem;
118
- }(VFXItem));
43
+ }(VFXItem);
44
+
45
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
46
+ try {
47
+ var info = gen[key](arg);
48
+ var value = info.value;
49
+ } catch (error) {
50
+ reject(error);
51
+ return;
52
+ }
53
+ if (info.done) resolve(value);
54
+ else Promise.resolve(value).then(_next, _throw);
55
+ }
56
+ function _async_to_generator(fn) {
57
+ return function() {
58
+ var self = this, args = arguments;
59
+ return new Promise(function(resolve, reject) {
60
+ var gen = fn.apply(self, args);
61
+ function _next(value) {
62
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
63
+ }
64
+ function _throw(err) {
65
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
66
+ }
67
+ _next(undefined);
68
+ });
69
+ };
70
+ }
71
+
72
+ function __generator(thisArg, body) {
73
+ var _ = {
74
+ label: 0,
75
+ sent: function sent() {
76
+ if (t[0] & 1) throw t[1];
77
+ return t[1];
78
+ },
79
+ trys: [],
80
+ ops: []
81
+ }, f, y, t, g;
82
+ return g = {
83
+ next: verb(0),
84
+ "throw": verb(1),
85
+ "return": verb(2)
86
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
87
+ return this;
88
+ }), g;
89
+ function verb(n) {
90
+ return function(v) {
91
+ return step([
92
+ n,
93
+ v
94
+ ]);
95
+ };
96
+ }
97
+ function step(op) {
98
+ if (f) throw new TypeError("Generator is already executing.");
99
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
100
+ 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;
101
+ if (y = 0, t) op = [
102
+ op[0] & 2,
103
+ t.value
104
+ ];
105
+ switch(op[0]){
106
+ case 0:
107
+ case 1:
108
+ t = op;
109
+ break;
110
+ case 4:
111
+ _.label++;
112
+ return {
113
+ value: op[1],
114
+ done: false
115
+ };
116
+ case 5:
117
+ _.label++;
118
+ y = op[1];
119
+ op = [
120
+ 0
121
+ ];
122
+ continue;
123
+ case 7:
124
+ op = _.ops.pop();
125
+ _.trys.pop();
126
+ continue;
127
+ default:
128
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
129
+ _ = 0;
130
+ continue;
131
+ }
132
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
133
+ _.label = op[1];
134
+ break;
135
+ }
136
+ if (op[0] === 6 && _.label < t[1]) {
137
+ _.label = t[1];
138
+ t = op;
139
+ break;
140
+ }
141
+ if (t && _.label < t[2]) {
142
+ _.label = t[2];
143
+ _.ops.push(op);
144
+ break;
145
+ }
146
+ if (t[2]) _.ops.pop();
147
+ _.trys.pop();
148
+ continue;
149
+ }
150
+ op = body.call(thisArg, _);
151
+ } catch (e) {
152
+ op = [
153
+ 6,
154
+ e
155
+ ];
156
+ y = 0;
157
+ } finally{
158
+ f = t = 0;
159
+ }
160
+ if (op[0] & 5) throw op[1];
161
+ return {
162
+ value: op[0] ? op[1] : void 0,
163
+ done: true
164
+ };
165
+ }
166
+ }
167
+ typeof SuppressedError === "function" ? SuppressedError : function _SuppressedError(error, suppressed, message) {
168
+ var e = new Error(message);
169
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
170
+ };
119
171
 
120
- var mockIdPass = 'mock-pass';
121
- var mockIdFail = 'mock-fail';
122
- var DEVICE_LEVEL_HIGH = 'high';
123
- var DEVICE_LEVEL_MEDIUM = 'medium';
124
- var DEVICE_LEVEL_LOW = 'low';
125
- var DEVICE_LEVEL_NONE = 'none';
172
+ var mockIdPass = "mock-pass";
173
+ var mockIdFail = "mock-fail";
174
+ var DEVICE_LEVEL_HIGH = "high";
175
+ var DEVICE_LEVEL_MEDIUM = "medium";
176
+ var DEVICE_LEVEL_LOW = "low";
177
+ var DEVICE_LEVEL_NONE = "none";
126
178
  var hasRegisterEvent = false;
127
- function getDowngradeResult(bizId, options) {
128
- if (options === void 0) { options = {}; }
129
- return __awaiter(this, void 0, void 0, function () {
130
- var ap, now_1;
131
- return __generator(this, function (_a) {
179
+ function getDowngradeResult(bizId) {
180
+ return _getDowngradeResult.apply(this, arguments);
181
+ }
182
+ function _getDowngradeResult() {
183
+ _getDowngradeResult = _async_to_generator(function(bizId, options) {
184
+ var ap, now;
185
+ return __generator(this, function(_state) {
186
+ if (options === void 0) options = {};
132
187
  if (!hasRegisterEvent) {
133
188
  registerEvent(options);
134
189
  hasRegisterEvent = true;
135
190
  }
136
191
  if (bizId === mockIdFail || bizId === mockIdPass) {
137
- return [2 /*return*/, Promise.resolve({ mock: { downgrade: bizId === mockIdFail } })];
192
+ return [
193
+ 2,
194
+ Promise.resolve({
195
+ mock: {
196
+ downgrade: bizId === mockIdFail
197
+ }
198
+ })
199
+ ];
138
200
  }
139
- ap = window.AlipayJSBridge;
201
+ ap = isAlipayMiniApp() ? my : window.AlipayJSBridge;
140
202
  if (ap) {
141
- now_1 = performance.now();
142
- return [2 /*return*/, getSystemInfo().then(function (systemInfo) {
143
- return new Promise(function (resolve) {
144
- var _a;
145
- var techPoint = ['mars'];
203
+ now = performance.now();
204
+ return [
205
+ 2,
206
+ getSystemInfo().then(function(systemInfo) {
207
+ return new Promise(function(resolve) {
208
+ var techPoint = [
209
+ "mars"
210
+ ];
146
211
  var tc = options.techPoint;
147
212
  if (tc) {
148
- techPoint.push.apply(techPoint, __spreadArray([], __read(tc), false));
213
+ var _techPoint;
214
+ (_techPoint = techPoint).push.apply(_techPoint, [].concat(tc));
149
215
  }
150
216
  var downgradeOptions = {
151
217
  bizId: bizId,
152
218
  scene: 0,
153
219
  ext: {
154
- techPoint: techPoint,
155
- },
220
+ techPoint: techPoint
221
+ }
156
222
  };
157
- var downgradeCallback = function (result) {
158
- var totalTime = performance.now() - now_1;
159
- console.info("downgrade time: ".concat(totalTime, "ms"));
160
- resolve({ bizId: bizId, systemInfo: systemInfo, downgradeResult: result, totalTime: totalTime });
223
+ var downgradeCallback = function(result) {
224
+ var totalTime = performance.now() - now;
225
+ console.info("Downgrade time: " + totalTime + "ms.");
226
+ resolve({
227
+ bizId: bizId,
228
+ systemInfo: systemInfo,
229
+ downgradeResult: result,
230
+ totalTime: totalTime
231
+ });
161
232
  };
162
- var callBridge = (_a = options.callBridge) !== null && _a !== void 0 ? _a : ap.call;
163
- callBridge('getDowngradeResult', downgradeOptions, downgradeCallback);
233
+ var _options_callBridge;
234
+ var callBridge = (_options_callBridge = options.callBridge) != null ? _options_callBridge : ap.call;
235
+ callBridge("getDowngradeResult", downgradeOptions, downgradeCallback);
164
236
  });
165
- })];
166
- }
167
- else {
168
- return [2 /*return*/, Promise.resolve({ noAlipayEnv: true })];
237
+ })
238
+ ];
239
+ } else {
240
+ return [
241
+ 2,
242
+ Promise.resolve({
243
+ noAlipayEnv: true
244
+ })
245
+ ];
169
246
  }
170
247
  });
171
248
  });
249
+ return _getDowngradeResult.apply(this, arguments);
172
250
  }
173
251
  function registerEvent(options) {
174
- var ignoreGLLost = options.ignoreGLLost, autoPause = options.autoPause;
175
- var downgradeWhenGLLost = ignoreGLLost !== true;
176
- window.addEventListener('unload', function () {
177
- getActivePlayers().forEach(function (player) { return player.dispose(); });
252
+ var autoPause = options.autoPause;
253
+ window.addEventListener("unload", function() {
254
+ getActivePlayers().forEach(function(player) {
255
+ return player.dispose();
256
+ });
178
257
  });
179
- window.addEventListener('webglcontextlost', function (e) {
180
- if (isCanvasUsedByPlayer(e.target)) {
181
- AlipayDowngradePlugin.glLostOccurred = true;
182
- console.error('webgl lost occur');
183
- if (downgradeWhenGLLost) {
184
- console.warn('webgl lost occur, all players will be downgraded from now on');
185
- disableAllPlayer(true);
186
- getActivePlayers().forEach(function (player) { return player.dispose(); });
187
- }
188
- }
189
- }, true);
190
258
  if (autoPause) {
191
- document.addEventListener('pause', pauseAllActivePlayers);
192
- document.addEventListener('resume', resumePausedPlayers);
259
+ document.addEventListener("pause", pauseAllActivePlayers);
260
+ document.addEventListener("resume", resumePausedPlayers);
193
261
  }
194
262
  }
195
263
  function getSystemInfo() {
196
- return __awaiter(this, void 0, void 0, function () {
197
- return __generator(this, function (_a) {
198
- return [2 /*return*/, new Promise(function (resolve, reject) {
199
- var ap = window.AlipayJSBridge;
264
+ return _getSystemInfo.apply(this, arguments);
265
+ }
266
+ function _getSystemInfo() {
267
+ _getSystemInfo = _async_to_generator(function() {
268
+ return __generator(this, function(_state) {
269
+ return [
270
+ 2,
271
+ new Promise(function(resolve, reject) {
272
+ var ap = isAlipayMiniApp() ? my : window.AlipayJSBridge;
200
273
  if (ap) {
201
- ap.call('getSystemInfo', function (e) {
274
+ ap.call("getSystemInfo", function(e) {
202
275
  if (e.error) {
203
276
  reject(e);
204
- }
205
- else {
277
+ } else {
206
278
  resolve(e);
207
279
  }
208
280
  });
281
+ } else {
282
+ reject("no ap");
209
283
  }
210
- else {
211
- reject('no ap');
212
- }
213
- })];
284
+ })
285
+ ];
214
286
  });
215
287
  });
288
+ return _getSystemInfo.apply(this, arguments);
216
289
  }
217
- var DeviceProxy = /** @class */ (function () {
290
+ var DeviceProxy = /*#__PURE__*/ function() {
218
291
  function DeviceProxy() {
219
292
  this.isIOS = false;
220
- this.model = 'DESKTOP_DEBUG';
293
+ this.model = "DESKTOP_DEBUG";
294
+ this.system = "Unknown";
221
295
  this.deviceLevel = DEVICE_LEVEL_NONE;
222
296
  this.isDowngrade = false;
223
297
  }
224
- DeviceProxy.prototype.getRenderLevel = function () {
298
+ var _proto = DeviceProxy.prototype;
299
+ _proto.getRenderLevel = function getRenderLevel() {
225
300
  if (this.deviceLevel === DEVICE_LEVEL_HIGH) {
226
301
  return spec.RenderLevel.S;
227
- }
228
- else if (this.deviceLevel === DEVICE_LEVEL_MEDIUM) {
302
+ } else if (this.deviceLevel === DEVICE_LEVEL_MEDIUM) {
229
303
  return spec.RenderLevel.A;
230
- }
231
- else if (this.deviceLevel === DEVICE_LEVEL_LOW) {
304
+ } else if (this.deviceLevel === DEVICE_LEVEL_LOW) {
232
305
  return spec.RenderLevel.B;
233
- }
234
- else {
306
+ } else {
235
307
  return this.isIOS ? spec.RenderLevel.S : spec.RenderLevel.B;
236
308
  }
237
309
  };
238
- DeviceProxy.prototype.hasDeviceLevel = function () {
310
+ _proto.hasDeviceLevel = function hasDeviceLevel() {
239
311
  return isDeviceLevel(this.deviceLevel);
240
312
  };
241
- DeviceProxy.prototype.setBySystemInfo = function (systemInfo) {
242
- var performance = systemInfo.performance, platform = systemInfo.platform, _a = systemInfo.model, model = _a === void 0 ? 'UNKNOWN_DEVICE' : _a;
243
- this.isIOS = platform === 'iOS';
313
+ _proto.setBySystemInfo = function setBySystemInfo(systemInfo) {
314
+ var performance1 = 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;
315
+ this.isIOS = platform === "iOS";
244
316
  this.model = model;
245
- if (performance && !this.hasDeviceLevel()) {
246
- this.deviceLevel = performance;
317
+ this.system = system;
318
+ if (performance1 && !this.hasDeviceLevel()) {
319
+ this.deviceLevel = performance1;
247
320
  }
248
321
  };
249
- DeviceProxy.prototype.updateDeviceLevel = function () {
322
+ _proto.updateDeviceLevel = function updateDeviceLevel() {
250
323
  if (this.hasDeviceLevel()) {
251
324
  return;
252
325
  }
@@ -254,39 +327,50 @@ var DeviceProxy = /** @class */ (function () {
254
327
  var gen = +RegExp.$1;
255
328
  if (gen <= 9) {
256
329
  this.deviceLevel = DEVICE_LEVEL_LOW;
257
- }
258
- else if (gen < 10) {
330
+ } else if (gen < 10) {
259
331
  this.deviceLevel = DEVICE_LEVEL_MEDIUM;
260
- }
261
- else {
332
+ } else {
262
333
  this.deviceLevel = DEVICE_LEVEL_HIGH;
263
334
  }
264
335
  }
265
336
  };
266
- DeviceProxy.prototype.getDeviceInfo = function () {
337
+ _proto.getDeviceInfo = function getDeviceInfo() {
267
338
  return {
268
339
  isIOS: this.isIOS,
269
340
  model: this.model,
270
- deviceLevel: this.deviceLevel,
341
+ system: this.system,
342
+ deviceLevel: this.deviceLevel
271
343
  };
272
344
  };
273
345
  return DeviceProxy;
274
- }());
346
+ }();
275
347
  var device = new DeviceProxy();
276
348
  function checkDowngradeResult(result) {
277
349
  if (result.mock) {
278
- var _a = result.mock, downgrade = _a.downgrade, _b = _a.deviceLevel, deviceLevel = _b === void 0 ? DEVICE_LEVEL_HIGH : _b;
350
+ var _result_mock = result.mock, downgrade = _result_mock.downgrade, _result_mock_deviceLevel = _result_mock.deviceLevel, deviceLevel = _result_mock_deviceLevel === void 0 ? DEVICE_LEVEL_HIGH : _result_mock_deviceLevel;
279
351
  device.deviceLevel = deviceLevel;
280
- return { downgrade: downgrade, reason: 'mock' };
352
+ return {
353
+ downgrade: downgrade,
354
+ reason: "mock"
355
+ };
281
356
  }
282
357
  if (result.noAlipayEnv) {
283
- return { downgrade: false, reason: 'no AP env' };
358
+ return {
359
+ downgrade: false,
360
+ reason: "no AP env"
361
+ };
284
362
  }
285
363
  if (!result.systemInfo) {
286
- return { downgrade: false, reason: 'systemInfo is required' };
364
+ return {
365
+ downgrade: false,
366
+ reason: "systemInfo is required"
367
+ };
287
368
  }
288
369
  if (!result.downgradeResult) {
289
- return { downgrade: false, reason: 'downgradeResult is required' };
370
+ return {
371
+ downgrade: false,
372
+ reason: "downgradeResult is required"
373
+ };
290
374
  }
291
375
  device.setBySystemInfo(result.systemInfo);
292
376
  return parseDowngradeResult(result.downgradeResult);
@@ -297,10 +381,9 @@ function parseDowngradeResult(result) {
297
381
  if (!result.error) {
298
382
  try {
299
383
  var ret = isString(result) ? JSON.parse(result) : result;
300
- if ('downgradeResultType' in ret) {
384
+ if ("downgradeResultType" in ret) {
301
385
  resultType = ret.downgradeResultType;
302
- }
303
- else if ('resultType' in ret) {
386
+ } else if ("resultType" in ret) {
304
387
  resultType = ret.resultType;
305
388
  resultReason = ret.resultReason;
306
389
  }
@@ -314,71 +397,79 @@ function parseDowngradeResult(result) {
314
397
  }
315
398
  }
316
399
  device.updateDeviceLevel();
317
- }
318
- catch (ex) {
400
+ } catch (ex) {
319
401
  console.error(ex);
320
402
  }
321
403
  if (resultType === undefined) {
322
- return { downgrade: true, reason: 'call downgrade fail' };
323
- }
324
- else {
404
+ return {
405
+ downgrade: true,
406
+ reason: "call downgrade fail"
407
+ };
408
+ } else {
325
409
  if (resultType === 1) {
326
- return { downgrade: true, reason: getDowngradeReason(resultReason) };
327
- }
328
- else {
329
- return { downgrade: false, reason: resultType };
410
+ return {
411
+ downgrade: true,
412
+ reason: getDowngradeReason(resultReason)
413
+ };
414
+ } else {
415
+ if (isAlipayMiniApp() && downgradeForMiniprogram()) {
416
+ return {
417
+ downgrade: true,
418
+ reason: "Force downgrade by downgrade plugin"
419
+ };
420
+ } else {
421
+ return {
422
+ downgrade: false,
423
+ reason: resultType
424
+ };
425
+ }
330
426
  }
331
427
  }
332
- }
333
- else {
428
+ } else {
334
429
  // 无权调用的情况下不降级
335
- return { downgrade: result.error !== 4, reason: 'api error: ' + result.error };
430
+ return {
431
+ downgrade: result.error !== 4,
432
+ reason: "api error: " + result.error
433
+ };
336
434
  }
337
435
  }
338
436
  function getDowngradeReason(reason) {
339
437
  if (reason === -1) {
340
- return "".concat(reason, "-no config");
341
- }
342
- else if (reason === 0) {
343
- return "".concat(reason, "-none");
344
- }
345
- else if (reason === 1) {
346
- return "".concat(reason, "-downgrade by memory");
347
- }
348
- else if (reason === 2) {
349
- return "".concat(reason, "-downgrade by crash");
350
- }
351
- else if (reason === 3) {
352
- return "".concat(reason, "-downgrade by device");
353
- }
354
- else if (reason === 4) {
355
- return "".concat(reason, "-downgrade by force");
356
- }
357
- else {
358
- return "".concat(reason);
438
+ return "" + reason + "-no config";
439
+ } else if (reason === 0) {
440
+ return "" + reason + "-none";
441
+ } else if (reason === 1) {
442
+ return "" + reason + "-downgrade by memory";
443
+ } else if (reason === 2) {
444
+ return "" + reason + "-downgrade by crash";
445
+ } else if (reason === 3) {
446
+ return "" + reason + "-downgrade by device";
447
+ } else if (reason === 4) {
448
+ return "" + reason + "-downgrade by force";
449
+ } else {
450
+ return "" + reason;
359
451
  }
360
452
  }
361
453
  function getRenderLevelByDevice(renderLevel) {
362
454
  if (!renderLevel) {
363
455
  return device.getRenderLevel();
364
- }
365
- else {
456
+ } else {
366
457
  return /[ABS]/.test(renderLevel) ? renderLevel : spec.RenderLevel.S;
367
458
  }
368
459
  }
369
460
  function isDeviceLevel(deviceLevel) {
370
- return deviceLevel === DEVICE_LEVEL_HIGH
371
- || deviceLevel === DEVICE_LEVEL_MEDIUM
372
- || deviceLevel === DEVICE_LEVEL_LOW;
461
+ return deviceLevel === DEVICE_LEVEL_HIGH || deviceLevel === DEVICE_LEVEL_MEDIUM || deviceLevel === DEVICE_LEVEL_LOW;
373
462
  }
374
- var internalPaused = Symbol('@@_inter_pause');
463
+ var internalPaused = Symbol("@@_inter_pause");
375
464
  function pauseAllActivePlayers(e) {
376
465
  if (e.target === document) {
377
- logger.info('Auto pause all players with data offloaded');
466
+ logger.info("Auto pause all players with data offloaded.");
378
467
  var players = getActivePlayers();
379
- players.forEach(function (player) {
468
+ players.forEach(function(player) {
380
469
  if (!player.paused) {
381
- player.pause({ offloadTexture: true });
470
+ player.pause({
471
+ offloadTexture: true
472
+ });
382
473
  // @ts-expect-error
383
474
  player[internalPaused] = true;
384
475
  }
@@ -387,9 +478,9 @@ function pauseAllActivePlayers(e) {
387
478
  }
388
479
  function resumePausedPlayers(e) {
389
480
  if (e.target === document) {
390
- logger.info('auto resume all players');
481
+ logger.info("Auto resume all players.");
391
482
  var players = getActivePlayers();
392
- players.forEach(function (player) {
483
+ players.forEach(function(player) {
393
484
  // @ts-expect-error
394
485
  if (player[internalPaused]) {
395
486
  void player.resume();
@@ -399,120 +490,88 @@ function resumePausedPlayers(e) {
399
490
  });
400
491
  }
401
492
  }
493
+ var deviceModelList = [
494
+ "12,8",
495
+ "13,1",
496
+ "13,2",
497
+ "13,3",
498
+ "13,4"
499
+ ];
500
+ /**
501
+ * iPhone SE2 和 12 全系列机型,如果是 iOS16 系统,在小程序中强制降级
502
+ * @returns
503
+ */ function downgradeForMiniprogram() {
504
+ if (device.isIOS) {
505
+ if (deviceModelList.find(function(v) {
506
+ return v === device.model;
507
+ })) {
508
+ var versionList = device.system.split(".");
509
+ if (versionList.length > 0 && versionList[0] === "16") {
510
+ return true;
511
+ }
512
+ }
513
+ }
514
+ return false;
515
+ }
402
516
 
403
- var AlipayDowngradePlugin = /** @class */ (function (_super) {
404
- __extends(AlipayDowngradePlugin, _super);
517
+ var AlipayDowngradePlugin = /*#__PURE__*/ function(AbstractPlugin) {
518
+ _inherits(AlipayDowngradePlugin, AbstractPlugin);
405
519
  function AlipayDowngradePlugin() {
406
- return _super !== null && _super.apply(this, arguments) || this;
520
+ return AbstractPlugin.apply(this, arguments);
407
521
  }
408
- AlipayDowngradePlugin.onPlayerCreated = function (player) {
409
- return __awaiter(this, void 0, void 0, function () {
410
- return __generator(this, function (_a) {
411
- if (AlipayDowngradePlugin.glLostOccurred) {
412
- console.warn('gl lost happened, new player will be destroyed.');
413
- return [2 /*return*/, player.dispose()];
414
- }
415
- return [2 /*return*/];
416
- });
417
- });
418
- };
419
- AlipayDowngradePlugin.processRawJSON = function (json, options) {
420
- var _a;
421
- if (options === void 0) { options = {}; }
422
- return __awaiter(this, void 0, void 0, function () {
423
- var downgradeResult, downgradeDecision;
424
- return __generator(this, function (_b) {
425
- if (AlipayDowngradePlugin.glLostOccurred) {
426
- return [2 /*return*/, Promise.reject('gl lost happened')];
427
- }
428
- downgradeResult = (_a = options.pluginData) === null || _a === void 0 ? void 0 : _a['downgrade'];
522
+ AlipayDowngradePlugin.processRawJSON = function processRawJSON(json, options) {
523
+ if (options === void 0) options = {};
524
+ return _async_to_generator(function() {
525
+ var _options_pluginData, downgradeResult, downgradeDecision;
526
+ return __generator(this, function(_state) {
527
+ downgradeResult = (_options_pluginData = options.pluginData) == null ? void 0 : _options_pluginData["downgrade"];
429
528
  if (downgradeResult) {
430
529
  downgradeDecision = checkDowngradeResult(downgradeResult);
431
530
  if (downgradeDecision.downgrade) {
432
- throw new Error("downgraded, reason: ".concat(downgradeDecision.reason));
531
+ throw new Error("Downgraded, reason: " + downgradeDecision.reason + ".");
433
532
  }
434
- }
435
- else {
436
- console.warn('No downgrade result in pluginData of SceneLoadOptions');
533
+ } else {
534
+ console.warn("No downgrade result in pluginData of SceneLoadOptions.");
437
535
  }
438
536
  if (!options.renderLevel) {
439
537
  options.renderLevel = getRenderLevelByDevice(options.renderLevel);
440
538
  }
441
- return [2 /*return*/];
539
+ return [
540
+ 2
541
+ ];
442
542
  });
443
- });
543
+ })();
444
544
  };
445
- AlipayDowngradePlugin.glLostOccurred = false;
446
545
  return AlipayDowngradePlugin;
447
- }(AbstractPlugin));
546
+ }(AbstractPlugin);
448
547
 
449
- var prefix = '[Galacean Effects]';
548
+ var prefix = "[Galacean Effects]";
549
+ var ap = isAlipayMiniApp() ? my : window.AlipayJSBridge;
450
550
  logger.register(nativeLogger);
451
551
  function nativeLogger(type, msg) {
452
- var args = [];
453
- for (var _i = 2; _i < arguments.length; _i++) {
454
- args[_i - 2] = arguments[_i];
552
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
553
+ args[_key - 2] = arguments[_key];
455
554
  }
555
+ var content = {
556
+ "message": prefix + " " + msg + " " + args.join(""),
557
+ "level": type
558
+ };
456
559
  if (isAndroid()) {
457
- androidLogger.apply(void 0, __spreadArray([type, "".concat(prefix, " ").concat(msg)], __read(args), false));
458
- }
459
- else if (isIOS()) {
460
- iOSLogger.apply(void 0, __spreadArray([type, msg], __read(args), false));
461
- }
462
- }
463
- function iOSLogger(type, msg) {
464
- var args = [];
465
- for (var _i = 2; _i < arguments.length; _i++) {
466
- args[_i - 2] = arguments[_i];
560
+ content["anr_info"] = "mars";
467
561
  }
468
562
  try {
469
- var ap = window.AlipayJSBridge;
470
- var content = formatMessage.apply(void 0, __spreadArray([type, msg], __read(args), false));
471
- ap === null || ap === void 0 ? void 0 : ap.call('H5APLog', {
472
- content: content,
473
- });
474
- }
475
- catch (e) {
563
+ ap == null ? void 0 : ap.call("localLog", content);
564
+ } catch (e) {
476
565
  console.error(e);
477
566
  }
478
567
  }
479
- // Android H5 容器支持 console 日志直接写入 aplog
480
- function androidLogger(type, msg) {
481
- var args = [];
482
- for (var _i = 2; _i < arguments.length; _i++) {
483
- args[_i - 2] = arguments[_i];
484
- }
485
- try {
486
- var ap = window.AlipayJSBridge;
487
- ap === null || ap === void 0 ? void 0 : ap.call('localLog', {
488
- 'anr_info': 'mars',
489
- 'message': msg + args.join(''),
490
- 'level': type,
491
- });
492
- }
493
- catch (e) {
494
- console.error(e);
495
- }
496
- }
497
- function formatMessage(level, msg) {
498
- var args = [];
499
- for (var _i = 2; _i < arguments.length; _i++) {
500
- args[_i - 2] = arguments[_i];
501
- }
502
- var result = [
503
- '<MARS_PLAYER>',
504
- "(".concat(level, "):"),
505
- msg,
506
- ];
507
- args.forEach(function (i) {
508
- result.push(i + '');
509
- });
510
- return result.join(' ');
511
- }
512
568
 
513
- var version = "2.0.0-alpha.2";
514
- registerPlugin('alipay-downgrade', AlipayDowngradePlugin, DowngradeVFXItem, true);
515
- logger.info('plugin alipay downgrade version: ' + version);
569
+ var version = "2.0.0-alpha.21";
570
+ registerPlugin("alipay-downgrade", AlipayDowngradePlugin, DowngradeVFXItem, true);
571
+ logger.info("Plugin downgrade version: " + version + ".");
572
+ if (version !== EFFECTS.version) {
573
+ 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!");
574
+ }
516
575
 
517
- export { checkDowngradeResult, getDowngradeResult, getRenderLevelByDevice, version };
576
+ export { checkDowngradeResult, downgradeForMiniprogram, getDowngradeResult, getRenderLevelByDevice, version };
518
577
  //# sourceMappingURL=index.mjs.map