@alicloud/console-os-browser-vm 1.4.33-alpha.0 → 1.4.33

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.
@@ -1,30 +0,0 @@
1
- export var getJsonCallback = function getJsonCallback(src) {
2
- var u;
3
- try {
4
- u = new URL(src);
5
- } catch (error) {
6
- return;
7
- }
8
- var sp = u.searchParams;
9
- if (!sp) {
10
- return null;
11
- }
12
- return sp.get('callback') || sp.get('cb');
13
- };
14
- var injectScriptCallBack = function injectScriptCallBack(scriptEl) {
15
- setTimeout(function () {
16
- if (!scriptEl.src) {
17
- return;
18
- }
19
- var appWindow = scriptEl.ownerContext.window;
20
- var callbackName = getJsonCallback(scriptEl.src);
21
- if (callbackName && typeof appWindow[callbackName] === 'function') {
22
- window[callbackName] = function () {
23
- var result = appWindow[callbackName].apply(appWindow, arguments);
24
- window[callbackName] = null;
25
- return result;
26
- };
27
- }
28
- }, 0);
29
- };
30
- export default injectScriptCallBack;
package/es/utils/isSSR.js DELETED
@@ -1,3 +0,0 @@
1
- export var isSSR = function isSSR() {
2
- return typeof document === 'undefined';
3
- };
@@ -1,3 +0,0 @@
1
- export default (function (nameForErrorMessage) {
2
- console.error("Not implemented: ".concat(nameForErrorMessage));
3
- });
package/lib/Context.js DELETED
@@ -1,155 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _Window = _interopRequireDefault(require("./Window"));
14
- var _Document = _interopRequireDefault(require("./Document"));
15
- var _Location = _interopRequireDefault(require("./Location"));
16
- var _History = _interopRequireDefault(require("./History"));
17
- var _credentials = require("./utils/credentials");
18
- 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; }
19
- 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; }
20
- var Context = /*#__PURE__*/function () {
21
- function Context(conf, frame) {
22
- (0, _classCallCheck2.default)(this, Context);
23
- this.location = new _Location.default(frame.contentWindow.location);
24
- this.history = new _History.default(conf.id, frame.contentWindow);
25
- this.window = new _Window.default(conf, this, frame, location);
26
- this.allowResources = conf.allowResources || [];
27
- var body = conf.body;
28
- var disableBody = conf.disableBody;
29
- if (disableBody) {
30
- body = document.body;
31
- } else if (!body) {
32
- body = document.createElement('body');
33
- document.documentElement.appendChild(body);
34
- }
35
- this.body = body;
36
- this.document = new _Document.default(_objectSpread({
37
- enableScriptEscape: true
38
- }, conf), this, frame, location);
39
- this.baseFrame = frame;
40
- this._listenerMap = new Map();
41
- this.window.__IS_CONSOLE_OS_CONTEXT__ = true;
42
- }
43
- (0, _createClass2.default)(Context, [{
44
- key: "loadScripts",
45
- value: function () {
46
- var _loadScripts = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
47
- var resp, code;
48
- return _regenerator.default.wrap(function _callee$(_context) {
49
- while (1) switch (_context.prev = _context.next) {
50
- case 0:
51
- _context.next = 2;
52
- return fetch(url, {
53
- credentials: (0, _credentials.getFetchCredentials)(url)
54
- });
55
- case 2:
56
- resp = _context.sent;
57
- _context.next = 5;
58
- return resp.text();
59
- case 5:
60
- code = _context.sent;
61
- this.evalScript(code, url);
62
- case 7:
63
- case "end":
64
- return _context.stop();
65
- }
66
- }, _callee, this);
67
- }));
68
- function loadScripts(_x) {
69
- return _loadScripts.apply(this, arguments);
70
- }
71
- return loadScripts;
72
- }()
73
- }, {
74
- key: "evalScript",
75
- value: function evalScript(code) {
76
- var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
77
- var currentScript = this.document.createElement('script');
78
- currentScript.src = url;
79
-
80
- // eslint-disable-next-line no-new-func
81
- var resolver = new Function("\n return function ({window, location, history, document, __os_current_script__}){\n var document = new Proxy(document, {\n get: function get(target, prop) {\n if (prop === \"currentScript\" && __os_current_script__) {\n return __os_current_script__;\n }\n return target[prop];\n }\n });\n var window = new Proxy(window, {\n get: function get(target, prop) {\n if (prop === \"document\") return document;\n return target[prop];\n }\n })\n var globalThis = window;\n with(window.__CONSOLE_OS_GLOBAL_VARS_) {\n try {\n ".concat(code, "\n } catch(e) {\n console.log(e)\n }\n }\n }//# sourceMappingURL=").concat(url));
82
- resolver().call(this.window, _objectSpread(_objectSpread({}, this), {}, {
83
- __os_current_script__: currentScript
84
- }));
85
- }
86
- }, {
87
- key: "updateBody",
88
- value: function updateBody(dom) {
89
- if (!dom && this.body) return;
90
- this.body = dom;
91
- }
92
- }, {
93
- key: "remove",
94
- value: function remove() {
95
- this.document.removeEventListeners();
96
- if (this.baseFrame) {
97
- if (this.baseFrame.parentNode) {
98
- this.baseFrame.parentNode.removeChild(this.baseFrame);
99
- } else {
100
- this.baseFrame.setAttribute('src', 'about:blank');
101
- }
102
- }
103
- }
104
- }], [{
105
- key: "create",
106
- value: function create(conf) {
107
- var _this = this;
108
- return new Promise(function (resolve) {
109
- var _document$documentEle;
110
- var iframe = document.createElement('iframe');
111
-
112
- // TODO: change src to a reasonable value.
113
- iframe.setAttribute('src', conf.url ? conf.url : '/api.json');
114
- iframe.style.cssText = 'position: absolute; top: -20000px; width: 1px; height: 1px;';
115
- if (conf.id) iframe.setAttribute('data-id', conf.id);
116
-
117
- // body will be hijacked in sandbox, so get body from html
118
- var topBody = ((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.getElementsByTagName('body')[0]) || document.body;
119
- topBody.appendChild(iframe);
120
-
121
- // the onload will no trigger when src is about:blank
122
- if (conf.url === 'about:blank') {
123
- return resolve(new _this(conf, iframe));
124
- }
125
- iframe.onload = function () {
126
- resolve(new _this(conf, iframe));
127
- };
128
- });
129
- }
130
- }, {
131
- key: "remove",
132
- value: function () {
133
- var _remove = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(context) {
134
- return _regenerator.default.wrap(function _callee2$(_context2) {
135
- while (1) switch (_context2.prev = _context2.next) {
136
- case 0:
137
- if (context.remove) {
138
- context.remove();
139
- }
140
- case 1:
141
- case "end":
142
- return _context2.stop();
143
- }
144
- }, _callee2);
145
- }));
146
- function remove(_x2) {
147
- return _remove.apply(this, arguments);
148
- }
149
- return remove;
150
- }()
151
- }]);
152
- return Context;
153
- }();
154
- var _default = Context;
155
- exports.default = _default;
package/lib/Document.js DELETED
@@ -1,86 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
- var _HTMLScriptElement = require("./utils/HTMLScriptElement");
12
- /**
13
- * Document.js
14
- * @lastModified 2019085
15
- * @forwardCompatibleTo 2019085
16
- * @createAt 2019085
17
- */
18
- var Document = /*#__PURE__*/(0, _createClass2.default)(function Document() {
19
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
- var context = arguments.length > 1 ? arguments[1] : undefined;
21
- var frame = arguments.length > 2 ? arguments[2] : undefined;
22
- (0, _classCallCheck2.default)(this, Document);
23
- var eventListeners = [];
24
- return new Proxy(document, {
25
- set: function set(target, name, value) {
26
- switch (name) {
27
- case 'cookie':
28
- document.cookie = value;
29
- break;
30
- default:
31
- target[name] = value;
32
- }
33
- return true;
34
- },
35
- get: function get(target, name) {
36
- switch (name) {
37
- case 'body':
38
- return context.body;
39
- case 'location':
40
- return context.location;
41
- case 'defaultView':
42
- return context.window;
43
- case 'write':
44
- case 'writeln':
45
- return function () {};
46
- case 'createElement':
47
- return function () {
48
- var _document;
49
- var el = (_document = document).createElement.apply(_document, arguments);
50
- el.ownerContext = context;
51
- el.appId = options.id;
52
- // 对于 script 标签如果开启防逃逸,就直接 hack script 标签
53
- if (el.tagName === 'SCRIPT' && !options.enableScriptEscape) {
54
- (0, _HTMLScriptElement.injectHTMLScriptElement)(el);
55
- }
56
- return el;
57
- };
58
- case 'addEventListener':
59
- return function () {
60
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
- args[_key] = arguments[_key];
62
- }
63
- eventListeners.push(args);
64
- return target.addEventListener.apply(target, args);
65
- };
66
- case 'removeEventListeners':
67
- return function () {
68
- for (var _i = 0, _eventListeners = eventListeners; _i < _eventListeners.length; _i++) {
69
- var args = _eventListeners[_i];
70
- target.removeEventListener.apply(target, (0, _toConsumableArray2.default)(args));
71
- }
72
- };
73
- default:
74
- }
75
-
76
- // TODO: hijack document.getElementsByTagName('body')
77
- if (typeof target[name] === 'function') {
78
- return target[name].bind && target[name].bind(target);
79
- } else {
80
- return target[name];
81
- }
82
- }
83
- });
84
- });
85
- var _default = Document;
86
- exports.default = _default;
package/lib/Elements.js DELETED
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
6
- var _injectScriptCallBack = _interopRequireWildcard(require("./utils/injectScriptCallBack"));
7
- var _isSSR = require("./utils/isSSR");
8
- 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); }
9
- 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; }
10
- var makeElInjector = function makeElInjector(originMethod, methodName) {
11
- return function (el) {
12
- var notAllowed = el && el.ownerContext && el.ownerContext.allowResources.indexOf(el.src) === -1 && el.ownerContext.allowResources !== '*';
13
-
14
- // 如果不在 BrowserVM 的白名单内,尝试通过 context 的 load script 通过 xhr 获取脚本内容,并在沙箱中执行
15
- if (el && el._evalScriptInSandbox && el.ownerContext && el.nodeName === 'SCRIPT' && el.src && notAllowed && !(0, _injectScriptCallBack.getJsonCallback)(el.src)) {
16
- return el.ownerContext.loadScripts(el.src).then(function () {
17
- var fns = el._listenerMap.get('load');
18
- if (fns) {
19
- fns.forEach(function (fn) {
20
- fn();
21
- });
22
- }
23
- var e = new Event('load');
24
- el.onload && el.onload(e);
25
- }).catch(function (e) {
26
- console.error(e, el.src);
27
- var fns = el._listenerMap.get('error');
28
- if (fns) {
29
- fns.forEach(function (fn) {
30
- fn(e);
31
- });
32
- }
33
- el.onerror && el.onerror(e);
34
- });
35
- }
36
- if (el && el.nodeName === 'SCRIPT' && el.ownerContext) {
37
- (0, _injectScriptCallBack.default)(el);
38
- }
39
-
40
- // 如果有 scriptText, 证明在 append 之前被设置了 text
41
- // 所以直接执行这个 script
42
- if (el && el.scriptText) {
43
- el.ownerContext.evalScript(el.scriptText);
44
- }
45
-
46
- // fix: babel 会把 fn.call 转义成 fn.call.apply 造成 chrome 50 的几个版本报错
47
- // 这里 尝试 try catch 如果报错 直接调用 fn.apply
48
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
49
- args[_key - 1] = arguments[_key];
50
- }
51
- var methodArgs = methodName === 'append' && el === undefined // 修复 append 的过程中 append() 为一个没参数的状态。应为 append 的函数签名为 append(param1, param2, /* ... ,*/ paramN)
52
- ? [].concat(args) : [el].concat(args);
53
- try {
54
- return originMethod.call.apply(originMethod, [this].concat((0, _toConsumableArray2.default)(methodArgs)));
55
- } catch (_unused) {
56
- return originMethod.apply(this, methodArgs);
57
- }
58
- };
59
- };
60
- if (!(0, _isSSR.isSSR)() && typeof window.Element === 'function') {
61
- var mountElementMethods = ['appendChild', 'insertBefore', 'append'];
62
- for (var _i = 0, _mountElementMethods = mountElementMethods; _i < _mountElementMethods.length; _i++) {
63
- var method = _mountElementMethods[_i];
64
- var originMethod = window.Element.prototype[method];
65
- window.Element.prototype[method] = makeElInjector(originMethod, method);
66
- }
67
- }
package/lib/History.js DELETED
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var History = /*#__PURE__*/(0, _createClass2.default)(function History(id, frame) {
11
- (0, _classCallCheck2.default)(this, History);
12
- if (!id) {
13
- return frame.history;
14
- }
15
- var postMessage = function postMessage() {
16
- frame.postMessage({
17
- type: "".concat(id, ":history-change"),
18
- data: JSON.parse(JSON.stringify(frame.location))
19
- }, '*');
20
- };
21
-
22
- // throw error when iframe src is about:blank
23
- try {
24
- var originalPushStatus = frame.history.pushState;
25
- var originalReplaceStatus = frame.history.replaceState;
26
- frame.history.pushState = function () {
27
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28
- args[_key] = arguments[_key];
29
- }
30
- var returnValue = originalPushStatus.apply(frame.history, [].concat(args));
31
- postMessage();
32
- return returnValue;
33
- };
34
- frame.history.replaceState = function () {
35
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
36
- args[_key2] = arguments[_key2];
37
- }
38
- var returnValue = originalReplaceStatus.apply(frame.history, [].concat(args));
39
- postMessage();
40
- return returnValue;
41
- };
42
- return frame.history;
43
- } catch (e) {
44
- return undefined;
45
- }
46
- });
47
- var _default = History;
48
- exports.default = _default;
package/lib/Location.js DELETED
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- function isAboutBlank(loc) {
11
- return loc && loc.href === 'about:blank';
12
- }
13
- var Location = /*#__PURE__*/(0, _createClass2.default)(function Location(location) {
14
- (0, _classCallCheck2.default)(this, Location);
15
- return new Proxy({}, {
16
- set: function set(target, name, value) {
17
- switch (name) {
18
- case 'href':
19
- break;
20
- default:
21
- location[name] = value;
22
- }
23
- return true;
24
- },
25
- get: function get(target, name) {
26
- switch (name) {
27
- case 'reload':
28
- return function () {
29
- return window.location.reload();
30
- };
31
- case 'replace':
32
- return function () {};
33
- case 'toString':
34
- return function () {
35
- try {
36
- return isAboutBlank(location) ? window.location.toString() : location.toString();
37
- } catch (e) {
38
- return isAboutBlank(location) ? window.location.href : location.href;
39
- }
40
- };
41
- default:
42
- break;
43
- }
44
- if (typeof location[name] === 'function') {
45
- return location[name].bind && location[name].bind(target);
46
- } else if (isAboutBlank(location)) {
47
- return window.location[name];
48
- } else {
49
- return location[name];
50
- }
51
- }
52
- });
53
- });
54
- var _default = Location;
55
- exports.default = _default;
package/lib/Window.js DELETED
@@ -1,101 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
- var _events = require("./events");
12
- var _common = require("./utils/common");
13
- /**
14
- * Window.js
15
- */
16
-
17
- var globalFnName = ['setTimeout', 'setInterval', 'clearInterval', 'clearTimeout'];
18
- var globalVars = ['location', 'history'];
19
- var defaultExternals = ['requestAnimationFrame', 'webkitRequestAnimationFrame', 'mozRequestAnimationFrame', 'oRequestAnimationFrame', 'msRequestAnimationFrame', 'cancelAnimationFrame', 'webkitCancelAnimationFrame', 'mozCancelAnimationFrame', 'oCancelAnimationFrame', 'msCancelAnimationFrame', 'matchMedia', 'getSelection', 'open'];
20
- function getContextWindow(context) {
21
- var descriptor = Object.getOwnPropertyDescriptor(context, 'window');
22
- if (descriptor) {
23
- descriptor.configurable = true;
24
- var hasGetter = Object.prototype.hasOwnProperty.call(descriptor, 'get');
25
- if (!hasGetter) {
26
- descriptor.writable = true;
27
- }
28
- }
29
- return context.window;
30
- }
31
- var Window = /*#__PURE__*/(0, _createClass2.default)(function Window() {
32
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
33
- var context = arguments.length > 1 ? arguments[1] : undefined;
34
- var frame = arguments.length > 2 ? arguments[2] : undefined;
35
- (0, _classCallCheck2.default)(this, Window);
36
- var externals = [].concat(defaultExternals, (0, _toConsumableArray2.default)(options.externals || []));
37
- var __CONSOLE_OS_GLOBAL_VARS_ = {};
38
-
39
- // 拦截全局方法
40
- globalFnName.forEach(function (name) {
41
- if (externals.includes(name)) {
42
- return;
43
- }
44
- __CONSOLE_OS_GLOBAL_VARS_[name] = frame.contentWindow[name].bind(frame.contentWindow);
45
- });
46
-
47
- // 通过拦截外置的全局变量,指向外部变量
48
- globalVars.forEach(function (name) {
49
- if (externals.includes(name)) {
50
- __CONSOLE_OS_GLOBAL_VARS_[name] = window[name];
51
- }
52
- });
53
- return new Proxy(frame.contentWindow, {
54
- set: function set(target, name, value) {
55
- target[name] = value;
56
- __CONSOLE_OS_GLOBAL_VARS_[name] = value;
57
- return true;
58
- },
59
- get: function get(target, name) {
60
- if (externals.includes(name)) {
61
- var windowValue = window[name];
62
- if (typeof windowValue === 'function' && !(0, _common.isBoundedFunction)(windowValue) && !(0, _common.isConstructable)(windowValue)) {
63
- var bindFn = windowValue.bind(window);
64
- for (var key in windowValue) {
65
- bindFn[key] = windowValue[key];
66
- }
67
- return bindFn;
68
- } else {
69
- return windowValue;
70
- }
71
- }
72
- switch (name) {
73
- case 'window':
74
- return getContextWindow(context);
75
- case 'document':
76
- return context.document;
77
- case 'location':
78
- return context.location;
79
- case 'history':
80
- return context.history;
81
- case '__CONSOLE_OS_GLOBAL_VARS_':
82
- return __CONSOLE_OS_GLOBAL_VARS_;
83
- case 'addEventListener':
84
- return (0, _events.addEventListener)(context);
85
- case 'removeEventListener':
86
- return (0, _events.removeEventListener)(context);
87
- }
88
- if (__CONSOLE_OS_GLOBAL_VARS_[name]) {
89
- return __CONSOLE_OS_GLOBAL_VARS_[name];
90
- }
91
- var value = target[name];
92
- if (typeof value === 'function' && !(0, _common.isBoundedFunction)(value) && !(0, _common.isConstructable)(value)) {
93
- return value.bind && value.bind(target);
94
- } else {
95
- return value;
96
- }
97
- }
98
- });
99
- });
100
- var _default = Window;
101
- exports.default = _default;
package/lib/events.js DELETED
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.removeEventListener = exports.domEventsListeningTo = exports.addEventListener = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _isSSR = require("./utils/isSSR");
10
- var rawAddEventListener = !(0, _isSSR.isSSR)() ? window.addEventListener : function () {};
11
- var rawRemoveEventListener = !(0, _isSSR.isSSR)() ? window.removeEventListener : function () {};
12
- ;
13
- 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'];
14
- exports.domEventsListeningTo = domEventsListeningTo;
15
- var addEventListener = function addEventListener(context) {
16
- return function (type, listener, options) {
17
- var listeners = context._listenerMap.get(type) || [];
18
- context._listenerMap.set(type, [].concat((0, _toConsumableArray2.default)(listeners), [listener]));
19
- if (domEventsListeningTo.indexOf(type) === -1) {
20
- return context.baseFrame.addEventListener.apply(context.baseFrame.contentWindow, [type, listener, options]);
21
- }
22
- return rawAddEventListener.apply(window, [type, listener, options]);
23
- };
24
- };
25
- exports.addEventListener = addEventListener;
26
- var removeEventListener = function removeEventListener(context) {
27
- return function (type, listener, options) {
28
- var storedTypeListeners = context._listenerMap.get(type);
29
- if (storedTypeListeners && storedTypeListeners.length && storedTypeListeners.indexOf(listener) !== -1) {
30
- storedTypeListeners.splice(storedTypeListeners.indexOf(listener), 1);
31
- }
32
- if (domEventsListeningTo.indexOf(type) === -1) {
33
- return context.baseFrame.removeEventListener.apply(context.baseFrame.contentWindow, [type, listener, options]);
34
- }
35
- return rawRemoveEventListener.apply(window, [type, listener, options]);
36
- };
37
- };
38
- exports.removeEventListener = removeEventListener;