// ==UserScript==
// @name Hook Ajax
// @namespace https://gitee.com/HGJing/everthing-hook/
// @version 0.1.0
// @description it can hook all ajax
// @author Cangshi
// @include *
// @run-at document-start
// @grant none
// ==/UserScript==
!
function(t, e) {
"object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis: t || self).$hookAjax = {})
} (this, (function(t) {
"use strict";
function e(t, e) { (null == e || e > t.length) && (e = t.length);
for (var n = 0,
r = new Array(e); n < e; n++) r[n] = t[n];
return r
}
function n(t, n) {
return function(t) {
if (Array.isArray(t)) return t
} (t) ||
function(t, e) {
var n = t && ("undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]);
if (null != n) {
var r, o, i = [],
u = !0,
c = !1;
try {
for (n = n.call(t); ! (u = (r = n.next()).done) && (i.push(r.value), !e || i.length !== e); u = !0);
} catch(t) {
c = !0,
o = t
} finally {
try {
u || null == n.
return || n.
return ()
} finally {
if (c) throw o
}
}
return i
}
} (t, n) ||
function(t, n) {
if (t) {
if ("string" == typeof t) return e(t, n);
var r = Object.prototype.toString.call(t).slice(8, -1);
return "Object" === r && t.constructor && (r = t.constructor.name),
"Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? e(t, n) : void 0
}
} (t, n) ||
function() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
} ()
}
function r(t) {
if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return t
}
function o(t, e) {
return (o = Object.setPrototypeOf ||
function(t, e) {
return t.__proto__ = e,
t
})(t, e)
}
function i(t) {
return (i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ?
function(t) {
return typeof t
}: function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol": typeof t
})(t)
}
function u(t, e) {
return ! e || "object" !== i(e) && "function" != typeof e ? r(t) : e
}
function c(t) {
return (c = Object.setPrototypeOf ? Object.getPrototypeOf: function(t) {
return t.__proto__ || Object.getPrototypeOf(t)
})(t)
}
function a(t, e) {
if (! (t instanceof e)) throw new TypeError("Cannot call a class as a function")
}
function f(t, e) {
for (var n = 0; n < e.length; n++) {
var r = e[n];
r.enumerable = r.enumerable || !1,
r.configurable = !0,
"value" in r && (r.writable = !0),
Object.defineProperty(t, r.key, r)
}
}
function s(t, e, n) {
return e in t ? Object.defineProperty(t, e, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[e] = n,
t
}
var l = function(t, e) {
if (! (t instanceof e)) throw new TypeError("Cannot call a class as a function")
};
function p(t, e) {
return t(e = {
exports: {}
},
e.exports),
e.exports
}
var y = p((function(t) {
function e(n, r) {
return t.exports = e = Object.setPrototypeOf ||
function(t, e) {
return t.__proto__ = e,
t
},
e(n, r)
}
t.exports = e
}));
var v = function(t, e) {
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
t.prototype = Object.create(e && e.prototype, {
constructor: {
value: t,
writable: !0,
configurable: !0
}
}),
e && y(t, e)
},
h = p((function(t) {
function e(n) {
return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? t.exports = e = function(t) {
return typeof t
}: t.exports = e = function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol": typeof t
},
e(n)
}
t.exports = e
}));
var b = function(t) {
if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return t
};
var d = function(t, e) {
return ! e || "object" !== h(e) && "function" != typeof e ? b(t) : e
},
g = p((function(t) {
function e(n) {
return t.exports = e = Object.setPrototypeOf ? Object.getPrototypeOf: function(t) {
return t.__proto__ || Object.getPrototypeOf(t)
},
e(n)
}
t.exports = e
}));
var m = function(t, e) { (null == e || e > t.length) && (e = t.length);
for (var n = 0,
r = new Array(e); n < e; n++) r[n] = t[n];
return r
};
var O = function(t) {
if (Array.isArray(t)) return m(t)
};
var w = function(t) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t)
};
var j = function(t, e) {
if (t) {
if ("string" == typeof t) return m(t, e);
var n = Object.prototype.toString.call(t).slice(8, -1);
return "Object" === n && t.constructor && (n = t.constructor.name),
"Map" === n || "Set" === n ? Array.from(t) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? m(t, e) : void 0
}
};
var S = function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
};
var x = function(t) {
return O(t) || w(t) || j(t) || S()
};
function R(t, e) {
for (var n = 0; n < e.length; n++) {
var r = e[n];
r.enumerable = r.enumerable || !1,
r.configurable = !0,
"value" in r && (r.writable = !0),
Object.defineProperty(t, r.key, r)
}
}
var k = function(t, e, n) {
return e && R(t.prototype, e),
n && R(t, n),
t
};
var A = function(t, e) {
for (; ! Object.prototype.hasOwnProperty.call(t, e) && null !== (t = g(t)););
return t
},
P = p((function(t) {
function e(n, r, o) {
return "undefined" != typeof Reflect && Reflect.get ? t.exports = e = Reflect.get: t.exports = e = function(t, e, n) {
var r = A(t, e);
if (r) {
var o = Object.getOwnPropertyDescriptor(r, e);
return o.get ? o.get.call(n) : o.value
}
},
e(n, r, o || n)
}
t.exports = e
}));
var H = function(t) {
return - 1 !== Function.toString.call(t).indexOf("[native code]")
};
var E = function() {
if ("undefined" == typeof Reflect || !Reflect.construct) return ! 1;
if (Reflect.construct.sham) return ! 1;
if ("function" == typeof Proxy) return ! 0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))),
!0
} catch(t) {
return ! 1
}
},
_ = p((function(t) {
function e(n, r, o) {
return E() ? t.exports = e = Reflect.construct: t.exports = e = function(t, e, n) {
var r = [null];
r.push.apply(r, e);
var o = new(Function.bind.apply(t, r));
return n && y(o, n.prototype),
o
},
e.apply(null, arguments)
}
t.exports = e
})),
T = p((function(t) {
function e(n) {
var r = "function" == typeof Map ? new Map: void 0;
return t.exports = e = function(t) {
if (null === t || !H(t)) return t;
if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
if (void 0 !== r) {
if (r.has(t)) return r.get(t);
r.set(t, e)
}
function e() {
return _(t, arguments, g(this).constructor)
}
return e.prototype = Object.create(t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}),
y(e, t)
},
e(n)
}
t.exports = e
}));
function I(t, e) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "initAssign",
r = Object.getPrototypeOf(e);
return Object.setPrototypeOf(t, r),
"function" == typeof r[n] && r[n].call(t, e),
t
}
function D(t) {
return Number(Math.random().toString().substr(3, t) + Date.now()).toString(36)
}
function q(t) {
var e = function() {
if ("undefined" == typeof Reflect || !Reflect.construct) return ! 1;
if (Reflect.construct.sham) return ! 1;
if ("function" == typeof Proxy) return ! 0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))),
!0
} catch(t) {
return ! 1
}
} ();
return function() {
var n, r = g(t);
if (e) {
var o = g(this).constructor;
n = Reflect.construct(r, arguments, o)
} else n = r.apply(this, arguments);
return d(this, n)
}
} !
function(t, e) {
t(e = {
exports: {}
},
e.exports)
} ((function(t) {
function e(n) {
return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? t.exports = e = function(t) {
return typeof t
}: t.exports = e = function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol": typeof t
},
e(n)
}
t.exports = e
}));
var M = {
instanceType: function(t) {
v(n, t);
var e = q(n);
function n() {
return l(this, n),
e.apply(this, arguments)
}
return k(n, [{
key: "initAssign",
value: function(t) {
this.id = D(7),
function(t, e, n, r) {
e && void 0 !== e[n] ? t[n] = e[n] : "function" == typeof r && (t[n] = r())
} (this, t, "uniqueId", (function() {
return D(7)
}))
}
},
{
key: "bind",
value: function(t) {
var e, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
return I((e = P(g(n.prototype), "bind", this)).call.apply(e, [this, t].concat(x(r))), this)
}
},
{
key: "before",
value: function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
return this.surround({
before: t,
adaptAsync: e
})
}
},
{
key: "after",
value: function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
return this.surround({
after: t,
adaptAsync: e
})
}
},
{
key: "surround",
value: function(t) {
var e = t.before,
n = void 0 === e ? void 0 : e,
r = t.after,
o = void 0 === r ? void 0 : r,
i = t.onError,
u = void 0 === i ? void 0 : i,
c = t.adaptAsync,
a = void 0 !== c && c,
f = this;
return "function" != typeof f ? f: I((function() {
for (var t = this,
e = arguments.length,
r = new Array(e), i = 0; i < e; i++) r[i] = arguments[i];
var c = {},
s = {
origin: f,
args: r,
trans: c
},
l = "function" == typeof u;
try {
var p, y, v = !1;
return "function" == typeof n && (p = n.call(this, Object.assign({},
s, {
preventDefault: function() {
v = !0
}
})), v) ? p: (y = p instanceof Promise && a ? p.then((function() {
return f.apply(t, r)
})) : f.apply(this, r), "function" == typeof o && (y = y instanceof Promise && a ? y.then((function(e) {
return o.call(t, Object.assign({},
s, {
lastValue: e
}))
})) : o.call(this, Object.assign({},
s, {
lastValue: y
}))), y instanceof Promise && a && l ? y.
catch((function(e) {
var n = !1,
r = "";
return Promise.resolve(u.call(t, Object.assign({},
s, {
error: e,
resolve: function(t) {
r = t,
n = !0
}
}))).then((function(t) {
if (!n) throw e;
return r || t
}))
})) : y)
} catch(t) {
if (!l) throw t;
var h = !1,
b = "",
d = function(t) {
b = t,
h = !0
},
g = u.call(this, Object.assign({},
s, {
error: t,
resolve: d
}));
if (!h) throw t;
return b || g
}
}), this)
}
},
{
key: "then",
value: function(t) {
var e = this;
return I((function() {
for (var n = arguments.length,
r = new Array(n), o = 0; o < n; o++) r[o] = arguments[o];
var i = e.apply(this, r);
return Promise.resolve(i).then(t)
}), this)
}
},
{
key: "catch",
value: function(t) {
var e = this;
return I((function() {
var n;
try {
for (var r = arguments.length,
o = new Array(r), i = 0; i < r; i++) o[i] = arguments[i];
if ((n = e.apply(this, o)) instanceof Promise) return n.
catch(t)
} catch(e) {
n = t.call(this, e)
}
return n
}), this)
}
},
{
key: "finally",
value: function(t) {
var e = this;
return I((function() {
var n = function() {
try {
t.call(this)
} catch(t) {}
};
try {
for (var r = arguments.length,
o = new Array(r), i = 0; i < r; i++) o[i] = arguments[i];
var u = e.apply(this, o);
return u instanceof Promise ? "function" == typeof u.
finally ? u.
finally((function() {
return n()
})) : u.
catch((function(t) {
return t
})).then((function(t) {
if (n(), t instanceof Error) throw t
})) : (n(), u)
} catch(t) {
throw n(),
t
}
}), this)
}
},
{
key: "register",
value: function() {
var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
return this.registerClass((function(e) {
var n = function(t) {
v(n, t);
var e = q(n);
function n() {
return l(this, n),
e.apply(this, arguments)
}
return n
} (e);
return Object.assign(n.prototype, t),
n
}))
}
},
{
key: "registerClass",
value: function(t) {
var e = t(this.constructor),
n = this.bind(this);
if (Object.setPrototypeOf(n, e.prototype), "function" != typeof e || !(n instanceof this.constructor)) throw new Error("Registered class must extend FunctionInstance");
return n
}
}]),
n
} (T(Function))
};
function C(t, e) {
var n = function() {
for (var e = arguments.length,
n = new Array(e), r = 0; r < e; r++) n[r] = arguments[r];
return (t ||
function() {}).apply(this, n)
};
return function(t, e) {
var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "initAssign",
r = e.prototype;
Object.setPrototypeOf(t, r),
"function" == typeof r[n] && r[n].call(t)
} (n, (e = Object.assign({},
M, e)).instanceType),
n
}
var N = {
protect: !1,
syncDesc: !0,
native: !1
},
L = Object.defineProperty,
F = Object.defineProperties;
function $(t, e, n) {
var r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {},
o = t[e];
if ("function" == typeof o) {
var i = Object.assign({},
N, r),
u = i.native,
c = n(u ? o: C(o));
t[e] = u ? c: function() {
for (var t = arguments.length,
e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];
try {
return c.apply(this, e)
} catch(t) {
return console.warn("[Hook JS]", "Hooks running lost once."),
o.apply(this, e)
}
};
var a = i.protect,
f = i.syncDesc;
a && J(t, e),
f && U(o, t[e])
}
}
function J(t, e) {
L.call(Object, t, e, {
writable: !1
})
}
function U(t, e) {
F.call(Object, e, {
toString: {
enumerable: !1,
writable: !0,
value: function() {
return t.toString()
}
},
toLocaleString: {
enumerable: !1,
writable: !0,
value: function() {
return t.toLocaleString()
}
}
})
}
function B(t, e) {
var n = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
if (!n) {
if (Array.isArray(t) || (n = function(t, e) {
if (!t) return;
if ("string" == typeof t) return V(t, e);
var n = Object.prototype.toString.call(t).slice(8, -1);
"Object" === n && t.constructor && (n = t.constructor.name);
if ("Map" === n || "Set" === n) return Array.from(t);
if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return V(t, e)
} (t)) || e && t && "number" == typeof t.length) {
n && (t = n);
var r = 0,
o = function() {};
return {
s: o,
n: function() {
return r >= t.length ? {
done: !0
}: {
done: !1,
value: t[r++]
}
},
e: function(t) {
throw t
},
f: o
}
}
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 i, u = !0,
c = !1;
return {
s: function() {
n = n.call(t)
},
n: function() {
var t = n.next();
return u = t.done,
t
},
e: function(t) {
c = !0,
i = t
},
f: function() {
try {
u || null == n.
return || n.
return ()
} finally {
if (c) throw i
}
}
}
}
function V(t, e) { (null == e || e > t.length) && (e = t.length);
for (var n = 0,
r = new Array(e); n < e; n++) r[n] = t[n];
return r
}
function X(t) {
var e = function() {
if ("undefined" == typeof Reflect || !Reflect.construct) return ! 1;
if (Reflect.construct.sham) return ! 1;
if ("function" == typeof Proxy) return ! 0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))),
!0
} catch(t) {
return ! 1
}
} ();
return function() {
var n, r = c(t);
if (e) {
var o = c(this).constructor;
n = Reflect.construct(r, arguments, o)
} else n = r.apply(this, arguments);
return u(this, n)
}
}
var z, G = 0;
function K() {
return G++
} !
function(t) {
t.SEND = "send",
t.OPEN = "open"
} (z || (z = {}));
var Q = function() {
function t() {
var e = this;
a(this, t),
s(this, "urlHooks", {}),
s(this, "responseHooks", {});
var n = this; !
function(t, e, n) {
var r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
$(t, e, n, Object.assign({},
r, {
native: !0
}))
} (window, "XMLHttpRequest", (function(t) {
return function(t) { !
function(t, e) {
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
t.prototype = Object.create(e && e.prototype, {
constructor: {
value: t,
writable: !0,
configurable: !0
}
}),
e && o(t, e)
} (i, t);
var e = X(i);
function i() {
var t;
a(this, i);
for (var o = arguments.length,
u = new Array(o), c = 0; c < o; c++) u[c] = arguments[c];
return s(r(t = e.call.apply(e, [this].concat(u))), "id", void 0),
t.id = K(),
t.addEventListener("readystatechange", (function() { (4 == t.readyState || [200, 304, 201, 202, 203].includes(t.state)) && n.onResponse(r(t))
})),
t
}
return i
} (t)
})),
Object.values(z).forEach((function(t) {
$(window.XMLHttpRequest.prototype, t, e.getHookedRequestHandler(t))
}))
}
var e, i, u;
return e = t,
(i = [{
key: "getHookedRequestHandler",
value: function(t) {
var e = this;
return function(n) {
return n.before((function(n) {
var r = n.args,
o = n.preventDefault;
return e.onRequest(this, t, r, o)
}))
}
}
},
{
key: "onRequest",
value: function(t, e, r, o) {
var i, u = n(r, 2)[1];
for (var c in this.urlHooks) if (new RegExp(u).test(u)) {
var a = {
args: r,
type: e,
prevent: o
},
f = this.urlHooks[c];
"function" == typeof f.onRequest && (i = f.onRequest.call(t, a) || i),
e === z.OPEN && this.signResponseHooks(t.id, f)
}
return i
}
},
{
key: "onResponse",
value: function(t) {
if (4 === t.readyState || [200, 201, 202, 304].includes(t.status)) {
var e, n = t.responseText || t.response;
try {
e = JSON.parse(n)
} catch(t) {
e = n
}
var r, o = {
response: e,
originResponse: n,
replace: function(t) {
o.response = t
},
define: function(e, n) {
Object.defineProperty(t, e, {
writable: !1,
configurable: !0,
value: n
})
}
},
i = t.id,
u = B(this.responseHooks[i] || []);
try {
for (u.s(); ! (r = u.n()).done;) {
var c = r.value;
c && "function" == typeof c && (c.call(t, o), "string" != typeof(a = o.response) && (a = JSON.stringify(a)), Object.defineProperties(t, {
response: {
writable: !1,
configurable: !0,
value: a
},
responseText: {
writable: !1,
configurable: !0,
value: a
}
}))
}
} catch(t) {
u.e(t)
} finally {
u.f()
}
this.clearResponseHooks(i)
}
var a
}
}, {
key: "signResponseHooks",
value: function(t, e) {
if (e.onResponse && "function" == typeof e.onResponse) {
var n = this.responseHooks[t] || [];
n.push(e.onResponse),
this.responseHooks[t] = n
}
}
},
{
key: "clearResponseHooks",
value: function(t) {
this.responseHooks[t] = []
}
},
{
key: "register",
value: function(t, e) {
this.urlHooks[t] = e
}
}]) && f(e.prototype, i),
u && f(e, u),
t
} ();
t.AjaxInterceptor = Q,
Object.defineProperty(t, "__esModule", {
value: !0
})
}));