@alicloud/console-os-browser-vm 1.0.15 → 1.3.1-alpha.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.
Files changed (47) hide show
  1. package/dist/index.js +1 -1
  2. package/es/Context.js +2 -2
  3. package/es/Document.js +4 -3
  4. package/es/Elements.js +2 -1
  5. package/es/History.js +3 -2
  6. package/es/Location.js +3 -2
  7. package/es/Window.js +17 -12
  8. package/es/events.js +4 -2
  9. package/es/index.js +2 -2
  10. package/es/utils/injectScriptCallBack.js +0 -6
  11. package/es/utils/isSSR.js +3 -0
  12. package/es/{not-implemented.js → utils/not-implemented.js} +0 -6
  13. package/es/v2/Context.js +10 -0
  14. package/es/v2/Elements.js +65 -0
  15. package/es/v2/documentProxy.js +22 -0
  16. package/es/v2/factory.js +0 -0
  17. package/es/v2/frameManager.js +35 -0
  18. package/es/v2/historyProxy.js +46 -0
  19. package/es/v2/index.js +89 -0
  20. package/es/v2/locationProxy.js +52 -0
  21. package/es/v2/stage.js +17 -0
  22. package/es/v2/windowProxy.js +49 -0
  23. package/lib/Context.js +2 -2
  24. package/lib/Document.js +5 -4
  25. package/lib/Elements.js +8 -2
  26. package/lib/History.js +4 -3
  27. package/lib/Location.js +4 -3
  28. package/lib/Window.js +17 -13
  29. package/lib/events.js +6 -3
  30. package/lib/index.js +3 -3
  31. package/lib/utils/HTMLScriptElement.js +1 -1
  32. package/lib/utils/common.js +1 -1
  33. package/lib/utils/injectScriptCallBack.js +2 -8
  34. package/lib/utils/isSSR.js +12 -0
  35. package/lib/{not-implemented.js → utils/not-implemented.js} +0 -6
  36. package/lib/v2/Context.js +15 -0
  37. package/lib/v2/Elements.js +74 -0
  38. package/lib/v2/documentProxy.js +31 -0
  39. package/lib/v2/factory.js +1 -0
  40. package/lib/v2/frameManager.js +45 -0
  41. package/lib/v2/historyProxy.js +55 -0
  42. package/lib/v2/index.js +109 -0
  43. package/lib/v2/locationProxy.js +61 -0
  44. package/lib/v2/stage.js +25 -0
  45. package/lib/v2/windowProxy.js +61 -0
  46. package/package.json +2 -2
  47. package/LICENSE +0 -21
@@ -0,0 +1,52 @@
1
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+
4
+ var LocationProxy = /*#__PURE__*/_createClass(function LocationProxy(location) {
5
+ _classCallCheck(this, LocationProxy);
6
+
7
+ return new Proxy({}, {
8
+ set: function set(target, name, value) {
9
+ switch (name) {
10
+ case 'href':
11
+ break;
12
+
13
+ default:
14
+ // eslint-disable-next-line no-param-reassign
15
+ location[name] = value;
16
+ }
17
+
18
+ return true;
19
+ },
20
+ get: function get(target, name) {
21
+ switch (name) {
22
+ case 'reload':
23
+ return function () {};
24
+
25
+ case 'replace':
26
+ return function () {};
27
+
28
+ case 'toString':
29
+ return function () {
30
+ try {
31
+ return location.toString();
32
+ } catch (e) {
33
+ return location.href;
34
+ }
35
+ };
36
+
37
+ default:
38
+ break;
39
+ }
40
+
41
+ var locProperty = location[name];
42
+
43
+ if (typeof locProperty === 'function') {
44
+ return locProperty.bind && locProperty.bind(target);
45
+ }
46
+
47
+ return locProperty;
48
+ }
49
+ });
50
+ });
51
+
52
+ export default LocationProxy;
package/es/v2/stage.js ADDED
@@ -0,0 +1,17 @@
1
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+
4
+ var Stage = /*#__PURE__*/_createClass(function Stage() {
5
+ _classCallCheck(this, Stage);
6
+
7
+ return new Proxy({}, {
8
+ set: function set(target, key, value) {
9
+ target[key] = value;
10
+ },
11
+ get: function get(target, key) {
12
+ return target[key];
13
+ }
14
+ });
15
+ });
16
+
17
+ export { Stage as default };
@@ -0,0 +1,49 @@
1
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import DocumentProxy from './documentProxy';
4
+ import HistoryProxy from './historyProxy';
5
+ import LocationProxy from './locationProxy';
6
+ a = 100;
7
+
8
+ var WindowProxy = /*#__PURE__*/_createClass(function WindowProxy(options, context, win) {
9
+ _classCallCheck(this, WindowProxy);
10
+
11
+ var _options$externals = options.externals,
12
+ externals = _options$externals === void 0 ? [] : _options$externals;
13
+ var document = new DocumentProxy();
14
+ var history = new HistoryProxy();
15
+ var location = new LocationProxy();
16
+ return new Proxy(win, {
17
+ set: function set(target, name, value) {
18
+ target[name] = value;
19
+ return true;
20
+ },
21
+ get: function get(target, name) {
22
+ if (externals.includes(name)) {
23
+ return window[name];
24
+ }
25
+
26
+ switch (name) {
27
+ case 'document':
28
+ return document;
29
+
30
+ case 'location':
31
+ return location;
32
+
33
+ case 'history':
34
+ return history;
35
+
36
+ default:
37
+ break;
38
+ // case 'addEventListener':
39
+ // return addEventListener(context);
40
+ // case 'removeEventListener':
41
+ // return removeEventListener(context);
42
+ }
43
+
44
+ return target[name];
45
+ }
46
+ });
47
+ });
48
+
49
+ export default WindowProxy;
package/lib/Context.js CHANGED
@@ -27,9 +27,9 @@ var _History = _interopRequireDefault(require("./History"));
27
27
 
28
28
  var _credentials = require("./utils/credentials");
29
29
 
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
31
 
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
33
33
 
34
34
  var Context = /*#__PURE__*/function () {
35
35
  function Context(conf, frame) {
package/lib/Document.js CHANGED
@@ -9,17 +9,19 @@ exports.default = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
14
16
  var _HTMLScriptElement = require("./utils/HTMLScriptElement");
15
17
 
16
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
18
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
17
19
 
18
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
21
 
20
22
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
23
 
22
- var Document = function Document() {
24
+ var Document = /*#__PURE__*/(0, _createClass2.default)(function Document() {
23
25
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
26
  var context = arguments.length > 1 ? arguments[1] : undefined;
25
27
  var frame = arguments.length > 2 ? arguments[2] : undefined;
@@ -105,7 +107,6 @@ var Document = function Document() {
105
107
  }
106
108
  }
107
109
  });
108
- };
109
-
110
+ });
110
111
  var _default = Document;
111
112
  exports.default = _default;
package/lib/Elements.js CHANGED
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
 
5
5
  var _injectScriptCallBack = _interopRequireWildcard(require("./utils/injectScriptCallBack"));
6
6
 
7
+ var _isSSR = require("./utils/isSSR");
8
+
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+
7
13
  /**
8
14
  * Elements.js
9
15
  * @lastModified 2019085
@@ -63,7 +69,7 @@ var makeElInjector = function makeElInjector(originMethod) {
63
69
  };
64
70
  };
65
71
 
66
- if (typeof window.Element === 'function') {
72
+ if (!(0, _isSSR.isSSR)() && typeof window.Element === 'function') {
67
73
  var mountElementMethods = ['appendChild', 'insertBefore', 'append'];
68
74
 
69
75
  for (var _i = 0, _mountElementMethods = mountElementMethods; _i < _mountElementMethods.length; _i++) {
package/lib/History.js CHANGED
@@ -7,9 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
- var History = function History(id, frame) {
14
+ var History = /*#__PURE__*/(0, _createClass2.default)(function History(id, frame) {
13
15
  (0, _classCallCheck2.default)(this, History);
14
16
 
15
17
  if (!id) {
@@ -47,7 +49,6 @@ var History = function History(id, frame) {
47
49
  };
48
50
 
49
51
  return frame.history;
50
- };
51
-
52
+ });
52
53
  var _default = History;
53
54
  exports.default = _default;
package/lib/Location.js CHANGED
@@ -7,9 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
- var Location = function Location(location) {
14
+ var Location = /*#__PURE__*/(0, _createClass2.default)(function Location(location) {
13
15
  (0, _classCallCheck2.default)(this, Location);
14
16
  return new Proxy({}, {
15
17
  set: function set(target, name, value) {
@@ -51,7 +53,6 @@ var Location = function Location(location) {
51
53
  }
52
54
  }
53
55
  });
54
- };
55
-
56
+ });
56
57
  var _default = Location;
57
58
  exports.default = _default;
package/lib/Window.js CHANGED
@@ -9,6 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
14
16
  var _events = require("./events");
@@ -20,24 +22,16 @@ var _common = require("./utils/common");
20
22
  */
21
23
  var globalFnName = ['setTimeout', 'setInterval', 'clearInterval', 'clearTimeout'];
22
24
  var defaultExternals = ['requestAnimationFrame', 'webkitRequestAnimationFrame', 'mozRequestAnimationFrame', 'oRequestAnimationFrame', 'msRequestAnimationFrame', 'cancelAnimationFrame', 'webkitCancelAnimationFrame', 'mozCancelAnimationFrame', 'oCancelAnimationFrame', 'msCancelAnimationFrame'];
23
-
24
- var Window = function Window() {
25
+ var Window = /*#__PURE__*/(0, _createClass2.default)(function Window() {
25
26
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
27
  var context = arguments.length > 1 ? arguments[1] : undefined;
27
28
  var frame = arguments.length > 2 ? arguments[2] : undefined;
28
29
  (0, _classCallCheck2.default)(this, Window);
29
30
  var externals = [].concat(defaultExternals, (0, _toConsumableArray2.default)(options.externals || []));
30
31
  var __CONSOLE_OS_GLOBAL_VARS_ = {};
31
- globalFnName.forEach(function (name) {
32
- if (externals.includes(name)) {
33
- return;
34
- }
35
-
36
- __CONSOLE_OS_GLOBAL_VARS_[name] = frame.contentWindow[name].bind(frame.contentWindow);
37
- });
38
- return new Proxy(frame.contentWindow, {
32
+ __CONSOLE_OS_GLOBAL_VARS_ = new Proxy(frame.contentWindow, {
39
33
  set: function set(target, name, value) {
40
- target[name] = value;
34
+ // target[name] = value;
41
35
  __CONSOLE_OS_GLOBAL_VARS_[name] = value;
42
36
  return true;
43
37
  },
@@ -59,6 +53,9 @@ var Window = function Window() {
59
53
  }
60
54
 
61
55
  switch (name) {
56
+ case 'window':
57
+ return __CONSOLE_OS_GLOBAL_VARS_;
58
+
62
59
  case 'document':
63
60
  return context.document;
64
61
 
@@ -82,7 +79,7 @@ var Window = function Window() {
82
79
  return __CONSOLE_OS_GLOBAL_VARS_[name];
83
80
  }
84
81
 
85
- var value = target[name];
82
+ var value = window[name];
86
83
 
87
84
  if (typeof value === 'function' && !(0, _common.isBoundedFunction)(value) && !(0, _common.isConstructable)(value)) {
88
85
  return value.bind && value.bind(target);
@@ -91,7 +88,14 @@ var Window = function Window() {
91
88
  }
92
89
  }
93
90
  });
94
- };
91
+ globalFnName.forEach(function (name) {
92
+ if (externals.includes(name)) {
93
+ return;
94
+ }
95
95
 
96
+ __CONSOLE_OS_GLOBAL_VARS_[name] = frame.contentWindow[name].bind(frame.contentWindow);
97
+ });
98
+ return __CONSOLE_OS_GLOBAL_VARS_;
99
+ });
96
100
  var _default = Window;
97
101
  exports.default = _default;
package/lib/events.js CHANGED
@@ -5,12 +5,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.removeEventListener = exports.addEventListener = exports.domEventsListeningTo = void 0;
8
+ exports.removeEventListener = exports.domEventsListeningTo = exports.addEventListener = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
- var rawAddEventListener = window.addEventListener;
13
- var rawRemoveEventListener = window.removeEventListener;
12
+ var _isSSR = require("./utils/isSSR");
13
+
14
+ var rawAddEventListener = !(0, _isSSR.isSSR)() ? window.addEventListener : function () {};
15
+ var rawRemoveEventListener = !(0, _isSSR.isSSR)() ? window.removeEventListener : function () {};
16
+ ;
14
17
  var domEventsListeningTo = ['webkitmouseforcedown', 'webkitmouseforcewillbegin', 'visibilitychange', 'error', 'mousemove', 'mousedown', 'mouseup', 'touchcancel', 'touchend', 'touchstart', 'auxclick', 'dblclick', 'pointercancel', 'pointerdown', 'pointerup', 'dragend', 'dragstart', 'drop', 'compositionend', 'compositionstart', 'keydown', 'keypress', 'keyup', 'input', 'textInput', 'close', 'cancel', 'copy', 'cut', 'paste', 'click', 'change', 'contextmenu', 'reset', 'submit', 'resize', 'scroll', 'foucs', 'blur'];
15
18
  exports.domEventsListeningTo = domEventsListeningTo;
16
19
 
package/lib/index.js CHANGED
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.evalScripts = exports.removeContext = exports.createContext = void 0;
8
+ exports.removeContext = exports.evalScripts = exports.createContext = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -17,9 +17,9 @@ require("./Elements");
17
17
 
18
18
  var _Context = _interopRequireDefault(require("./Context"));
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
21
 
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
23
 
24
24
  var createContext = /*#__PURE__*/function () {
25
25
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.injectHTMLScriptElement = exports.removeEventListener = exports.addEventListener = void 0;
8
+ exports.removeEventListener = exports.injectHTMLScriptElement = exports.addEventListener = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isConstructable = isConstructable;
7
6
  exports.isBoundedFunction = isBoundedFunction;
7
+ exports.isConstructable = isConstructable;
8
8
 
9
9
  function isConstructable(fn) {
10
10
  var classRegex = /^class\b/;
@@ -3,14 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.getJsonCallback = void 0;
7
-
8
- /**
9
- * injectScriptCallBack
10
- * @lastModified 20190821
11
- * @forwardCompatibleTo 20190821
12
- * @createAt 20190821
13
- */
6
+ exports.getJsonCallback = exports.default = void 0;
7
+
14
8
  var getJsonCallback = function getJsonCallback(src) {
15
9
  var u;
16
10
 
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isSSR = void 0;
7
+
8
+ var isSSR = function isSSR() {
9
+ return typeof document === 'undefined';
10
+ };
11
+
12
+ exports.isSSR = isSSR;
@@ -5,12 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- /**
9
- * Not implemented
10
- * @lastModified 2019086
11
- * @forwardCompatibleTo 2019086
12
- * @createAt 2019086
13
- */
14
8
  var _default = function _default(nameForErrorMessage) {
15
9
  console.error("Not implemented: ".concat(nameForErrorMessage));
16
10
  };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
6
+
7
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
8
+
9
+ var _stage = _interopRequireDefault(require("./stage"));
10
+
11
+ var Context = /*#__PURE__*/(0, _createClass2.default)(function Context() {
12
+ (0, _classCallCheck2.default)(this, Context);
13
+ // this.location = '1';
14
+ this.stage = new _stage.default();
15
+ });
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ var _injectScriptCallBack = _interopRequireWildcard(require("./utils/injectScriptCallBack"));
6
+
7
+ var _isSSR = require("./utils/isSSR");
8
+
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+
13
+ var makeElInjector = function makeElInjector(originMethod) {
14
+ return function (el) {
15
+ // 如果不在 BrowserVM 的白名单内,尝试通过 context 的 load script 通过 xhr 获取脚本内容,并在沙箱中执行
16
+ if (el && el._evalScriptInSandbox && el.ownerContext && el.nodeName === 'SCRIPT' && el.src && el.ownerContext.allowResources.indexOf(el.src) === -1 && !(0, _injectScriptCallBack.getJsonCallback)(el.src)) {
17
+ return el.ownerContext.loadScripts(el.src).then(function () {
18
+ var fns = el._listenerMap.get('load');
19
+
20
+ if (fns) {
21
+ fns.forEach(function (fn) {
22
+ fn();
23
+ });
24
+ }
25
+
26
+ el.onload && el.onload();
27
+ }).catch(function (e) {
28
+ console.error(e);
29
+
30
+ var fns = el._listenerMap.get('error');
31
+
32
+ if (fns) {
33
+ fns.forEach(function (fn) {
34
+ fn(e);
35
+ });
36
+ }
37
+
38
+ el.onerror && el.onerror(e);
39
+ });
40
+ }
41
+
42
+ if (el && el.nodeName === 'SCRIPT' && el.ownerContext) {
43
+ (0, _injectScriptCallBack.default)(el);
44
+ } // 如果有 scriptText, 证明在 append 之前被设置了 text
45
+ // 所以直接执行这个 script
46
+
47
+
48
+ if (el && el.scriptText) {
49
+ el.ownerContext.evalScript(el.scriptText);
50
+ } // fix: babel 会把 fn.call 转义成 fn.call.apply 造成 chrome 50 的几个版本报错
51
+ // 这里 尝试 try catch 如果报错 直接调用 fn.apply
52
+
53
+
54
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
55
+ args[_key - 1] = arguments[_key];
56
+ }
57
+
58
+ try {
59
+ return originMethod.call.apply(originMethod, [this, el].concat(args));
60
+ } catch (_unused) {
61
+ return originMethod.apply(this, [el].concat(args));
62
+ }
63
+ };
64
+ };
65
+
66
+ if (!(0, _isSSR.isSSR)() && typeof window.Element === 'function') {
67
+ var mountElementMethods = ['appendChild', 'insertBefore', 'append'];
68
+
69
+ for (var _i = 0, _mountElementMethods = mountElementMethods; _i < _mountElementMethods.length; _i++) {
70
+ var method = _mountElementMethods[_i];
71
+ var originMethod = window.Element.prototype[method];
72
+ window.Element.prototype[method] = makeElInjector(originMethod);
73
+ }
74
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var DocumentProxy = /*#__PURE__*/(0, _createClass2.default)(function DocumentProxy(options, context) {
15
+ (0, _classCallCheck2.default)(this, DocumentProxy);
16
+ return new Proxy(document, {
17
+ set: function set(target, name, value) {
18
+ switch (name) {
19
+ case 'cookie':
20
+ document.cookie = value;
21
+ break;
22
+
23
+ default:
24
+ target[name] = value;
25
+ }
26
+ },
27
+ get: function get() {}
28
+ });
29
+ });
30
+ var _default = DocumentProxy;
31
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var IframeManager = /*#__PURE__*/function () {
15
+ function IframeManager() {
16
+ (0, _classCallCheck2.default)(this, IframeManager);
17
+ this.map = new Map();
18
+ this.baseFrame = IframeManager.createIframe();
19
+ } // iframe dom 节点被删除时,会丢失上下文
20
+
21
+
22
+ (0, _createClass2.default)(IframeManager, [{
23
+ key: "getIframe",
24
+ value: function getIframe() {}
25
+ }, {
26
+ key: "remove",
27
+ value: function remove() {
28
+ if (!key) return false;
29
+ }
30
+ }], [{
31
+ key: "createIframe",
32
+ value: function createIframe(key, src) {
33
+ var iframe = document.createElement('iframe');
34
+ iframe.setAttribute('src', src || 'about:blank');
35
+ iframe.style.cssText = 'position: absolute; top: -20000px; width: 1px; height: 1px;';
36
+ document.body.appendChild(iframe);
37
+ return iframe; // TODO: 监听 iframe 被删除的 case
38
+ }
39
+ }]);
40
+ return IframeManager;
41
+ }();
42
+
43
+ var _default = new IframeManager();
44
+
45
+ exports.default = _default;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var HistoryProxy = /*#__PURE__*/(0, _createClass2.default)(function HistoryProxy(id, win) {
15
+ (0, _classCallCheck2.default)(this, HistoryProxy);
16
+ var originalHistory = win.history;
17
+
18
+ if (!id) {
19
+ return originalHistory;
20
+ }
21
+
22
+ var postMessage = function postMessage() {
23
+ win.postMessage({
24
+ type: "".concat(id, ":history-change"),
25
+ data: JSON.parse(JSON.stringify(win.location))
26
+ }, '*');
27
+ };
28
+
29
+ var originalPushState = originalHistory.pushState.bind(originalHistory);
30
+ var originalReplaceState = originalHistory.replaceState.bind(originalHistory);
31
+
32
+ originalHistory.pushState = function () {
33
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34
+ args[_key] = arguments[_key];
35
+ }
36
+
37
+ var returnValue = originalPushState.apply(originalHistory, [].concat(args));
38
+ postMessage();
39
+ return returnValue;
40
+ };
41
+
42
+ originalHistory.replaceState = function () {
43
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
44
+ args[_key2] = arguments[_key2];
45
+ }
46
+
47
+ var returnValue = originalReplaceState.apply(originalHistory, [].concat(args));
48
+ postMessage();
49
+ return returnValue;
50
+ };
51
+
52
+ return originalHistory;
53
+ });
54
+ var _default = HistoryProxy;
55
+ exports.default = _default;