Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@x-python/core

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@x-python/core - npm Package Compare versions

Comparing version 0.0.4 to 0.0.5

303

dist/x-python.js

@@ -1,3 +0,2 @@

import m from "immer";
function w(I, g, C) {
function Y(I, g, C) {
return g in I ? Object.defineProperty(I, g, {

@@ -13,6 +12,6 @@ value: C,

if (Object.getOwnPropertySymbols) {
var A = Object.getOwnPropertySymbols(I);
g && (A = A.filter(function(i) {
return Object.getOwnPropertyDescriptor(I, i).enumerable;
})), C.push.apply(C, A);
var l = Object.getOwnPropertySymbols(I);
g && (l = l.filter(function(A) {
return Object.getOwnPropertyDescriptor(I, A).enumerable;
})), C.push.apply(C, l);
}

@@ -24,6 +23,6 @@ return C;

var C = arguments[g] != null ? arguments[g] : {};
g % 2 ? X(Object(C), !0).forEach(function(A) {
w(I, A, C[A]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(I, Object.getOwnPropertyDescriptors(C)) : X(Object(C)).forEach(function(A) {
Object.defineProperty(I, A, Object.getOwnPropertyDescriptor(C, A));
g % 2 ? X(Object(C), !0).forEach(function(l) {
Y(I, l, C[l]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(I, Object.getOwnPropertyDescriptors(C)) : X(Object(C)).forEach(function(l) {
Object.defineProperty(I, l, Object.getOwnPropertyDescriptor(C, l));
});

@@ -33,54 +32,54 @@ }

}
function Y() {
function H() {
for (var I = arguments.length, g = new Array(I), C = 0; C < I; C++)
g[C] = arguments[C];
return function(A) {
return g.reduceRight(function(i, l) {
return l(i);
}, A);
return function(l) {
return g.reduceRight(function(A, i) {
return i(A);
}, l);
};
}
function s(I) {
function m(I) {
return function g() {
for (var C = this, A = arguments.length, i = new Array(A), l = 0; l < A; l++)
i[l] = arguments[l];
return i.length >= I.length ? I.apply(this, i) : function() {
for (var c = arguments.length, B = new Array(c), G = 0; G < c; G++)
B[G] = arguments[G];
return g.apply(C, [].concat(i, B));
for (var C = this, l = arguments.length, A = new Array(l), i = 0; i < l; i++)
A[i] = arguments[i];
return A.length >= I.length ? I.apply(this, A) : function() {
for (var G = arguments.length, d = new Array(G), b = 0; b < G; b++)
d[b] = arguments[b];
return g.apply(C, [].concat(A, d));
};
};
}
function e(I) {
function K(I) {
return {}.toString.call(I).includes("Object");
}
function H(I) {
function V(I) {
return !Object.keys(I).length;
}
function K(I) {
function s(I) {
return typeof I == "function";
}
function V(I, g) {
function k(I, g) {
return Object.prototype.hasOwnProperty.call(I, g);
}
function k(I, g) {
return e(g) || n("changeType"), Object.keys(g).some(function(C) {
return !V(I, C);
function r(I, g) {
return K(g) || n("changeType"), Object.keys(g).some(function(C) {
return !k(I, C);
}) && n("changeField"), g;
}
function r(I) {
K(I) || n("selectorType");
}
function L(I) {
K(I) || e(I) || n("handlerType"), e(I) && Object.values(I).some(function(g) {
return !K(g);
}) && n("handlersType");
s(I) || n("selectorType");
}
function R(I) {
I || n("initialIsRequired"), e(I) || n("initialType"), H(I) && n("initialContent");
s(I) || K(I) || n("handlerType"), K(I) && Object.values(I).some(function(g) {
return !s(g);
}) && n("handlersType");
}
function J(I, g) {
function J(I) {
I || n("initialIsRequired"), K(I) || n("initialType"), V(I) && n("initialContent");
}
function v(I, g) {
throw new Error(I[g] || I.default);
}
var v = {
var F = {
initialIsRequired: "initial state is required",

@@ -95,41 +94,41 @@ initialType: "initial state should be an object",

default: "an unknown error accured in `state-local` package"
}, n = s(J)(v), a = {
changes: k,
selector: r,
handler: L,
initial: R
}, n = m(v)(F), u = {
changes: r,
selector: L,
handler: R,
initial: J
};
function F(I) {
function U(I) {
var g = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
a.initial(I), a.handler(g);
u.initial(I), u.handler(g);
var C = {
current: I
}, A = s(z)(C, g), i = s(N)(C), l = s(a.changes)(I), c = s(U)(C);
function B() {
var b = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(y) {
return y;
}, l = m(Q)(C, g), A = m(z)(C), i = m(u.changes)(I), G = m(N)(C);
function d() {
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(w) {
return w;
};
return a.selector(b), b(C.current);
return u.selector(c), c(C.current);
}
function G(b) {
Y(A, i, l, c)(b);
function b(c) {
H(l, A, i, G)(c);
}
return [B, G];
return [d, b];
}
function U(I, g) {
return K(g) ? g(I.current) : g;
function N(I, g) {
return s(g) ? g(I.current) : g;
}
function N(I, g) {
function z(I, g) {
return I.current = W(W({}, I.current), g), g;
}
function z(I, g, C) {
return K(g) ? g(I.current) : Object.keys(C).forEach(function(A) {
var i;
return (i = g[A]) === null || i === void 0 ? void 0 : i.call(g, I.current[A]);
function Q(I, g, C) {
return s(g) ? g(I.current) : Object.keys(C).forEach(function(l) {
var A;
return (A = g[l]) === null || A === void 0 ? void 0 : A.call(g, I.current[l]);
}), C;
}
var Q = {
create: F
var T = {
create: U
};
const T = {
const O = {
loadPyodideOptions: {

@@ -139,13 +138,20 @@ indexURL: "https://cdn.jsdelivr.net/pyodide/v0.21.3/full/"

};
var t = /* @__PURE__ */ ((I) => (I[I.READY = 0] = "READY", I))(t || {}), d = /* @__PURE__ */ ((I) => (I[I.EXEC = 0] = "EXEC", I[I.COMPLETE = 1] = "COMPLETE", I[I.INSTALL = 2] = "INSTALL", I[I.FORMAT = 3] = "FORMAT", I))(d || {});
function O(I) {
var t = /* @__PURE__ */ ((I) => (I[I.READY = 0] = "READY", I))(t || {}), o = /* @__PURE__ */ ((I) => (I[I.EXEC = 0] = "EXEC", I[I.COMPLETE = 1] = "COMPLETE", I[I.INSTALL = 2] = "INSTALL", I[I.FORMAT = 3] = "FORMAT", I))(o || {});
function f(I) {
let g;
return () => (g || (g = I()), g);
}
function p(I, g) {
function e(I, g) {
if (!g)
throw new Error(`a wrong id is provided from worker - callback with ${I} id doesn't exist`);
}
function p(I, g) {
const { [g]: C, ...l } = I;
return l;
}
function y(I, g, C) {
return { ...I, [g]: C };
}
const h = "dmFyIHksIFAsIHgsIFQsIEMgPSB7IGV4cG9ydHM6IHt9IH07CkMuZXhwb3J0cyA9IGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIGUocykgewogICAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KHMpKSAmJiBpc0Zpbml0ZShzKTsKICB9CiAgZnVuY3Rpb24gdChzKSB7CiAgICByZXR1cm4gcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyaW5nKDEpOwogIH0KICBmdW5jdGlvbiBuKHMpIHsKICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXNbc107CiAgICB9OwogIH0KICB2YXIgciA9IFsiaXNDb25zdHJ1Y3RvciIsICJpc0V2YWwiLCAiaXNOYXRpdmUiLCAiaXNUb3BsZXZlbCJdLCBpID0gWyJjb2x1bW5OdW1iZXIiLCAibGluZU51bWJlciJdLCBvID0gWyJmaWxlTmFtZSIsICJmdW5jdGlvbk5hbWUiLCAic291cmNlIl0sIGEgPSBbImFyZ3MiXSwgZCA9IFsiZXZhbE9yaWdpbiJdLCBtID0gci5jb25jYXQoaSwgbywgYSwgZCk7CiAgZnVuY3Rpb24gbChzKSB7CiAgICBpZiAocykKICAgICAgZm9yICh2YXIgcCA9IDA7IHAgPCBtLmxlbmd0aDsgcCsrKQogICAgICAgIHNbbVtwXV0gIT09IHZvaWQgMCAmJiB0aGlzWyJzZXQiICsgdChtW3BdKV0oc1ttW3BdXSk7CiAgfQogIGwucHJvdG90eXBlID0geyBnZXRBcmdzOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmFyZ3M7CiAgfSwgc2V0QXJnczogZnVuY3Rpb24ocykgewogICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzKSAhPT0gIltvYmplY3QgQXJyYXldIikKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJncyBtdXN0IGJlIGFuIEFycmF5Iik7CiAgICB0aGlzLmFyZ3MgPSBzOwogIH0sIGdldEV2YWxPcmlnaW46IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZXZhbE9yaWdpbjsKICB9LCBzZXRFdmFsT3JpZ2luOiBmdW5jdGlvbihzKSB7CiAgICBpZiAocyBpbnN0YW5jZW9mIGwpCiAgICAgIHRoaXMuZXZhbE9yaWdpbiA9IHM7CiAgICBlbHNlIHsKICAgICAgaWYgKCEocyBpbnN0YW5jZW9mIE9iamVjdCkpCiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXZhbCBPcmlnaW4gbXVzdCBiZSBhbiBPYmplY3Qgb3IgU3RhY2tGcmFtZSIpOwogICAgICB0aGlzLmV2YWxPcmlnaW4gPSBuZXcgbChzKTsKICAgIH0KICB9LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7CiAgICB2YXIgcyA9IHRoaXMuZ2V0RmlsZU5hbWUoKSB8fCAiIiwgcCA9IHRoaXMuZ2V0TGluZU51bWJlcigpIHx8ICIiLCBoID0gdGhpcy5nZXRDb2x1bW5OdW1iZXIoKSB8fCAiIiwgdiA9IHRoaXMuZ2V0RnVuY3Rpb25OYW1lKCkgfHwgIiI7CiAgICByZXR1cm4gdGhpcy5nZXRJc0V2YWwoKSA/IHMgPyAiW2V2YWxdICgiICsgcyArICI6IiArIHAgKyAiOiIgKyBoICsgIikiIDogIltldmFsXToiICsgcCArICI6IiArIGggOiB2ID8gdiArICIgKCIgKyBzICsgIjoiICsgcCArICI6IiArIGggKyAiKSIgOiBzICsgIjoiICsgcCArICI6IiArIGg7CiAgfSB9LCBsLmZyb21TdHJpbmcgPSBmdW5jdGlvbihzKSB7CiAgICB2YXIgcCA9IHMuaW5kZXhPZigiKCIpLCBoID0gcy5sYXN0SW5kZXhPZigiKSIpLCB2ID0gcy5zdWJzdHJpbmcoMCwgcCksIFcgPSBzLnN1YnN0cmluZyhwICsgMSwgaCkuc3BsaXQoIiwiKSwgUiA9IHMuc3Vic3RyaW5nKGggKyAxKTsKICAgIGlmIChSLmluZGV4T2YoIkAiKSA9PT0gMCkKICAgICAgdmFyIEUgPSAvQCguKz8pKD86OihcZCspKT8oPzo6KFxkKykpPyQvLmV4ZWMoUiwgIiIpLCBYID0gRVsxXSwgQiA9IEVbMl0sIFYgPSBFWzNdOwogICAgcmV0dXJuIG5ldyBsKHsgZnVuY3Rpb25OYW1lOiB2LCBhcmdzOiBXIHx8IHZvaWQgMCwgZmlsZU5hbWU6IFgsIGxpbmVOdW1iZXI6IEIgfHwgdm9pZCAwLCBjb2x1bW5OdW1iZXI6IFYgfHwgdm9pZCAwIH0pOwogIH07CiAgZm9yICh2YXIgZiA9IDA7IGYgPCByLmxlbmd0aDsgZisrKQogICAgbC5wcm90b3R5cGVbImdldCIgKyB0KHJbZl0pXSA9IG4ocltmXSksIGwucHJvdG90eXBlWyJzZXQiICsgdChyW2ZdKV0gPSBmdW5jdGlvbihzKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihwKSB7CiAgICAgICAgdGhpc1tzXSA9IEJvb2xlYW4ocCk7CiAgICAgIH07CiAgICB9KHJbZl0pOwogIGZvciAodmFyIGMgPSAwOyBjIDwgaS5sZW5ndGg7IGMrKykKICAgIGwucHJvdG90eXBlWyJnZXQiICsgdChpW2NdKV0gPSBuKGlbY10pLCBsLnByb3RvdHlwZVsic2V0IiArIHQoaVtjXSldID0gZnVuY3Rpb24ocykgewogICAgICByZXR1cm4gZnVuY3Rpb24ocCkgewogICAgICAgIGlmICghZShwKSkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyArICIgbXVzdCBiZSBhIE51bWJlciIpOwogICAgICAgIHRoaXNbc10gPSBOdW1iZXIocCk7CiAgICAgIH07CiAgICB9KGlbY10pOwogIGZvciAodmFyIHUgPSAwOyB1IDwgby5sZW5ndGg7IHUrKykKICAgIGwucHJvdG90eXBlWyJnZXQiICsgdChvW3VdKV0gPSBuKG9bdV0pLCBsLnByb3RvdHlwZVsic2V0IiArIHQob1t1XSldID0gZnVuY3Rpb24ocykgewogICAgICByZXR1cm4gZnVuY3Rpb24ocCkgewogICAgICAgIHRoaXNbc10gPSBTdHJpbmcocCk7CiAgICAgIH07CiAgICB9KG9bdV0pOwogIHJldHVybiBsOwp9KCk7CnZhciBxID0gKHkgPSBDLmV4cG9ydHMsIFAgPSAvKF58QClcUys6XGQrLywgeCA9IC9eXHMqYXQgLiooXFMrOlxkK3xcKG5hdGl2ZVwpKS9tLCBUID0gL14oZXZhbEApPyhcW25hdGl2ZSBjb2RlXSk/JC8sIHsgcGFyc2U6IGZ1bmN0aW9uKGUpIHsKICBpZiAoZS5zdGFja3RyYWNlICE9PSB2b2lkIDAgfHwgZVsib3BlcmEjc291cmNlbG9jIl0gIT09IHZvaWQgMCkKICAgIHJldHVybiB0aGlzLnBhcnNlT3BlcmEoZSk7CiAgaWYgKGUuc3RhY2sgJiYgZS5zdGFjay5tYXRjaCh4KSkKICAgIHJldHVybiB0aGlzLnBhcnNlVjhPcklFKGUpOwogIGlmIChlLnN0YWNrKQogICAgcmV0dXJuIHRoaXMucGFyc2VGRk9yU2FmYXJpKGUpOwogIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhcnNlIGdpdmVuIEVycm9yIG9iamVjdCIpOwp9LCBleHRyYWN0TG9jYXRpb246IGZ1bmN0aW9uKGUpIHsKICBpZiAoZS5pbmRleE9mKCI6IikgPT09IC0xKQogICAgcmV0dXJuIFtlXTsKICB2YXIgdCA9IC8oLis/KSg/OjooXGQrKSk/KD86OihcZCspKT8kLy5leGVjKGUucmVwbGFjZSgvWygpXS9nLCAiIikpOwogIHJldHVybiBbdFsxXSwgdFsyXSB8fCB2b2lkIDAsIHRbM10gfHwgdm9pZCAwXTsKfSwgcGFyc2VWOE9ySUU6IGZ1bmN0aW9uKGUpIHsKICByZXR1cm4gZS5zdGFjay5zcGxpdChgCmApLmZpbHRlcihmdW5jdGlvbih0KSB7CiAgICByZXR1cm4gISF0Lm1hdGNoKHgpOwogIH0sIHRoaXMpLm1hcChmdW5jdGlvbih0KSB7CiAgICB0LmluZGV4T2YoIihldmFsICIpID4gLTEgJiYgKHQgPSB0LnJlcGxhY2UoL2V2YWwgY29kZS9nLCAiZXZhbCIpLnJlcGxhY2UoLyhcKGV2YWwgYXQgW14oKV0qKXwoLC4qJCkvZywgIiIpKTsKICAgIHZhciBuID0gdC5yZXBsYWNlKC9eXHMrLywgIiIpLnJlcGxhY2UoL1woZXZhbCBjb2RlL2csICIoIikucmVwbGFjZSgvXi4qP1xzKy8sICIiKSwgciA9IG4ubWF0Y2goLyAoXCguK1wpJCkvKTsKICAgIG4gPSByID8gbi5yZXBsYWNlKHJbMF0sICIiKSA6IG47CiAgICB2YXIgaSA9IHRoaXMuZXh0cmFjdExvY2F0aW9uKHIgPyByWzFdIDogbiksIG8gPSByICYmIG4gfHwgdm9pZCAwLCBhID0gWyJldmFsIiwgIjxhbm9ueW1vdXM+Il0uaW5kZXhPZihpWzBdKSA+IC0xID8gdm9pZCAwIDogaVswXTsKICAgIHJldHVybiBuZXcgeSh7IGZ1bmN0aW9uTmFtZTogbywgZmlsZU5hbWU6IGEsIGxpbmVOdW1iZXI6IGlbMV0sIGNvbHVtbk51bWJlcjogaVsyXSwgc291cmNlOiB0IH0pOwogIH0sIHRoaXMpOwp9LCBwYXJzZUZGT3JTYWZhcmk6IGZ1bmN0aW9uKGUpIHsKICByZXR1cm4gZS5zdGFjay5zcGxpdChgCmApLmZpbHRlcihmdW5jdGlvbih0KSB7CiAgICByZXR1cm4gIXQubWF0Y2goVCk7CiAgfSwgdGhpcykubWFwKGZ1bmN0aW9uKHQpIHsKICAgIGlmICh0LmluZGV4T2YoIiA+IGV2YWwiKSA+IC0xICYmICh0ID0gdC5yZXBsYWNlKC8gbGluZSAoXGQrKSg/OiA+IGV2YWwgbGluZSBcZCspKiA+IGV2YWw6XGQrOlxkKy9nLCAiOiQxIikpLCB0LmluZGV4T2YoIkAiKSA9PT0gLTEgJiYgdC5pbmRleE9mKCI6IikgPT09IC0xKQogICAgICByZXR1cm4gbmV3IHkoeyBmdW5jdGlvbk5hbWU6IHQgfSk7CiAgICB2YXIgbiA9IC8oKC4qIi4rIlteQF0qKT9bXkBdKikoPzpAKS8sIHIgPSB0Lm1hdGNoKG4pLCBpID0gciAmJiByWzFdID8gclsxXSA6IHZvaWQgMCwgbyA9IHRoaXMuZXh0cmFjdExvY2F0aW9uKHQucmVwbGFjZShuLCAiIikpOwogICAgcmV0dXJuIG5ldyB5KHsgZnVuY3Rpb25OYW1lOiBpLCBmaWxlTmFtZTogb1swXSwgbGluZU51bWJlcjogb1sxXSwgY29sdW1uTnVtYmVyOiBvWzJdLCBzb3VyY2U6IHQgfSk7CiAgfSwgdGhpcyk7Cn0sIHBhcnNlT3BlcmE6IGZ1bmN0aW9uKGUpIHsKICByZXR1cm4gIWUuc3RhY2t0cmFjZSB8fCBlLm1lc3NhZ2UuaW5kZXhPZihgCmApID4gLTEgJiYgZS5tZXNzYWdlLnNwbGl0KGAKYCkubGVuZ3RoID4gZS5zdGFja3RyYWNlLnNwbGl0KGAKYCkubGVuZ3RoID8gdGhpcy5wYXJzZU9wZXJhOShlKSA6IGUuc3RhY2sgPyB0aGlzLnBhcnNlT3BlcmExMShlKSA6IHRoaXMucGFyc2VPcGVyYTEwKGUpOwp9LCBwYXJzZU9wZXJhOTogZnVuY3Rpb24oZSkgewogIGZvciAodmFyIHQgPSAvTGluZSAoXGQrKS4qc2NyaXB0ICg/OmluICk/KFxTKykvaSwgbiA9IGUubWVzc2FnZS5zcGxpdChgCmApLCByID0gW10sIGkgPSAyLCBvID0gbi5sZW5ndGg7IGkgPCBvOyBpICs9IDIpIHsKICAgIHZhciBhID0gdC5leGVjKG5baV0pOwogICAgYSAmJiByLnB1c2gobmV3IHkoeyBmaWxlTmFtZTogYVsyXSwgbGluZU51bWJlcjogYVsxXSwgc291cmNlOiBuW2ldIH0pKTsKICB9CiAgcmV0dXJuIHI7Cn0sIHBhcnNlT3BlcmExMDogZnVuY3Rpb24oZSkgewogIGZvciAodmFyIHQgPSAvTGluZSAoXGQrKS4qc2NyaXB0ICg/OmluICk/KFxTKykoPzo6IEluIGZ1bmN0aW9uIChcUyspKT8kL2ksIG4gPSBlLnN0YWNrdHJhY2Uuc3BsaXQoYApgKSwgciA9IFtdLCBpID0gMCwgbyA9IG4ubGVuZ3RoOyBpIDwgbzsgaSArPSAyKSB7CiAgICB2YXIgYSA9IHQuZXhlYyhuW2ldKTsKICAgIGEgJiYgci5wdXNoKG5ldyB5KHsgZnVuY3Rpb25OYW1lOiBhWzNdIHx8IHZvaWQgMCwgZmlsZU5hbWU6IGFbMl0sIGxpbmVOdW1iZXI6IGFbMV0sIHNvdXJjZTogbltpXSB9KSk7CiAgfQogIHJldHVybiByOwp9LCBwYXJzZU9wZXJhMTE6IGZ1bmN0aW9uKGUpIHsKICByZXR1cm4gZS5zdGFjay5zcGxpdChgCmApLmZpbHRlcihmdW5jdGlvbih0KSB7CiAgICByZXR1cm4gISF0Lm1hdGNoKFApICYmICF0Lm1hdGNoKC9eRXJyb3IgY3JlYXRlZCBhdC8pOwogIH0sIHRoaXMpLm1hcChmdW5jdGlvbih0KSB7CiAgICB2YXIgbiwgciA9IHQuc3BsaXQoIkAiKSwgaSA9IHRoaXMuZXh0cmFjdExvY2F0aW9uKHIucG9wKCkpLCBvID0gci5zaGlmdCgpIHx8ICIiLCBhID0gby5yZXBsYWNlKC88YW5vbnltb3VzIGZ1bmN0aW9uKDogKFx3KykpPz4vLCAiJDIiKS5yZXBsYWNlKC9cKFteKV0qXCkvZywgIiIpIHx8IHZvaWQgMDsKICAgIG8ubWF0Y2goL1woKFteKV0qKVwpLykgJiYgKG4gPSBvLnJlcGxhY2UoL15bXihdK1woKFteKV0qKVwpJC8sICIkMSIpKTsKICAgIHZhciBkID0gbiA9PT0gdm9pZCAwIHx8IG4gPT09ICJbYXJndW1lbnRzIG5vdCBhdmFpbGFibGVdIiA/IHZvaWQgMCA6IG4uc3BsaXQoIiwiKTsKICAgIHJldHVybiBuZXcgeSh7IGZ1bmN0aW9uTmFtZTogYSwgYXJnczogZCwgZmlsZU5hbWU6IGlbMF0sIGxpbmVOdW1iZXI6IGlbMV0sIGNvbHVtbk51bWJlcjogaVsyXSwgc291cmNlOiB0IH0pOwogIH0sIHRoaXMpOwp9IH0pOwpjb25zdCB3ID0gdHlwZW9mIHByb2Nlc3MgPCAidSIgJiYgcHJvY2Vzcy5yZWxlYXNlICYmIHByb2Nlc3MucmVsZWFzZS5uYW1lID09PSAibm9kZSIgJiYgcHJvY2Vzcy5icm93c2VyID09PSB2b2lkIDA7CmxldCBJLCBGLCBMLCBVLCAkLCBqLCBrLCBNLCBiOwppZiAoaiA9IHcgPyBmdW5jdGlvbihlLCB0KSB7CiAgcmV0dXJuIEwucmVzb2x2ZSh0IHx8ICIuIiwgZSk7Cn0gOiBmdW5jdGlvbihlLCB0KSB7CiAgcmV0dXJuIHQgPT09IHZvaWQgMCAmJiAodCA9IGxvY2F0aW9uKSwgbmV3IFVSTChlLCB0KS50b1N0cmluZygpOwp9LCB3IHx8IChrID0gIi8iKSwgTSA9IHcgPyBhc3luYyBmdW5jdGlvbihlLCB0KSB7CiAgaWYgKGUuc3RhcnRzV2l0aCgiZmlsZTovLyIpICYmIChlID0gZS5zbGljZSg3KSksIGUuaW5jbHVkZXMoIjovLyIpKSB7CiAgICBsZXQgbiA9IGF3YWl0IEYoZSk7CiAgICBpZiAoIW4ub2spCiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgJyR7ZX0nOiByZXF1ZXN0IGZhaWxlZC5gKTsKICAgIHJldHVybiBuZXcgVWludDhBcnJheShhd2FpdCBuLmFycmF5QnVmZmVyKCkpOwogIH0KICB7CiAgICBjb25zdCBuID0gYXdhaXQgJC5yZWFkRmlsZShlKTsKICAgIHJldHVybiBuZXcgVWludDhBcnJheShuLmJ1ZmZlciwgbi5ieXRlT2Zmc2V0LCBuLmJ5dGVMZW5ndGgpOwogIH0KfSA6IGFzeW5jIGZ1bmN0aW9uKGUsIHQpIHsKICBjb25zdCBuID0gbmV3IFVSTChlLCBsb2NhdGlvbik7CiAgbGV0IHIgPSB0ID8geyBpbnRlZ3JpdHk6IHQgfSA6IHt9LCBpID0gYXdhaXQgZmV0Y2gobiwgcik7CiAgaWYgKCFpLm9rKQogICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCAnJHtufSc6IHJlcXVlc3QgZmFpbGVkLmApOwogIHJldHVybiBuZXcgVWludDhBcnJheShhd2FpdCBpLmFycmF5QnVmZmVyKCkpOwp9LCBnbG9iYWxUaGlzLmRvY3VtZW50KQogIGIgPSBhc3luYyAoZSkgPT4gYXdhaXQgaW1wb3J0KGUpOwplbHNlIGlmIChnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpCiAgYiA9IGFzeW5jIChlKSA9PiB7CiAgICB0cnkgewogICAgICBnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMoZSk7CiAgICB9IGNhdGNoICh0KSB7CiAgICAgIGlmICghKHQgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKQogICAgICAgIHRocm93IHQ7CiAgICAgIGF3YWl0IGltcG9ydChlKTsKICAgIH0KICB9OwplbHNlIHsKICBpZiAoIXcpCiAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkZXRlcm1pbmUgcnVudGltZSBlbnZpcm9ubWVudCIpOwogIGIgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBlLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSAmJiAoZSA9IGUuc2xpY2UoNykpLCBlLmluY2x1ZGVzKCI6Ly8iKSA/IFUucnVuSW5UaGlzQ29udGV4dChhd2FpdCAoYXdhaXQgRihlKSkudGV4dCgpKSA6IGF3YWl0IGltcG9ydChJLnBhdGhUb0ZpbGVVUkwoZSkuaHJlZik7CiAgfTsKfQpmdW5jdGlvbiB6KGUsIHQsIG4sIHIpIHsKICBuICYmIChlLnByaW50ID0gbiksIHIgJiYgKGUucHJpbnRFcnIgPSByKSwgdCAmJiBlLnByZVJ1bi5wdXNoKGZ1bmN0aW9uKCkgewogICAgZS5GUy5pbml0KGZ1bmN0aW9uKGkpIHsKICAgICAgY29uc3QgbyA9IG5ldyBUZXh0RW5jb2RlcigpOwogICAgICBsZXQgYSA9IG5ldyBVaW50OEFycmF5KDApLCBkID0gLTE7CiAgICAgIGZ1bmN0aW9uIG0oKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChkID09PSAtMSkgewogICAgICAgICAgICBsZXQgbCA9IGkoKTsKICAgICAgICAgICAgaWYgKGwgPT0gbnVsbCkKICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgaWYgKHR5cGVvZiBsICE9ICJzdHJpbmciKQogICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHN0ZGluIHRvIHJldHVybiBzdHJpbmcsIG51bGwsIG9yIHVuZGVmaW5lZCwgZ290IHR5cGUgJHt0eXBlb2YgbH0uYCk7CiAgICAgICAgICAgIGwuZW5kc1dpdGgoYApgKSB8fCAobCArPSBgCmApLCBhID0gby5lbmNvZGUobCksIGQgPSAwOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGQgPCBhLmxlbmd0aCkgewogICAgICAgICAgICBsZXQgbCA9IGFbZF07CiAgICAgICAgICAgIHJldHVybiBkKyssIGw7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZCA9IC0xLCBudWxsOwogICAgICAgIH0gY2F0Y2ggKGwpIHsKICAgICAgICAgIHRocm93IGNvbnNvbGUuZXJyb3IoIkVycm9yIHRocm93biBpbiBzdGRpbjoiKSwgY29uc29sZS5lcnJvcihsKSwgbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG07CiAgICB9KHQpLCBudWxsLCBudWxsKTsKICB9KTsKfQpmdW5jdGlvbiBHKGUsIHQpIHsKICBlLnJ1blB5dGhvbkludGVybmFsX2RpY3QgPSBlLl9weW9kaWRlLl9iYXNlLmV2YWxfY29kZSgie30iKSwgZS5pbXBvcnRsaWIgPSBlLnJ1blB5dGhvbkludGVybmFsKCJpbXBvcnQgaW1wb3J0bGliOyBpbXBvcnRsaWIiKTsKICBsZXQgbiA9IGUuaW1wb3J0bGliLmltcG9ydF9tb2R1bGU7CiAgZS5zeXMgPSBuKCJzeXMiKSwgZS5zeXMucGF0aC5pbnNlcnQoMCwgdC5ob21lZGlyKTsKICBsZXQgciA9IGUucnVuUHl0aG9uSW50ZXJuYWwoImltcG9ydCBfX21haW5fXzsgX19tYWluX18uX19kaWN0X18iKSwgaSA9IGUucnVuUHl0aG9uSW50ZXJuYWwoImltcG9ydCBidWlsdGluczsgYnVpbHRpbnMuX19kaWN0X18iKTsKICB2YXIgbzsKICBlLmdsb2JhbHMgPSAobyA9IGksIG5ldyBQcm94eShyLCB7IGdldDogKG0sIGwpID0+IGwgPT09ICJnZXQiID8gKGYpID0+IHsKICAgIGxldCBjID0gbS5nZXQoZik7CiAgICByZXR1cm4gYyA9PT0gdm9pZCAwICYmIChjID0gby5nZXQoZikpLCBjOwogIH0gOiBsID09PSAiaGFzIiA/IChmKSA9PiBtLmhhcyhmKSB8fCBvLmhhcyhmKSA6IFJlZmxlY3QuZ2V0KG0sIGwpIH0pKTsKICBsZXQgYSA9IGUuX3B5b2RpZGUuX2ltcG9ydGhvb2s7CiAgYS5yZWdpc3Rlcl9qc19maW5kZXIoKSwgYS5yZWdpc3Rlcl9qc19tb2R1bGUoImpzIiwgdC5qc2dsb2JhbHMpLCBhLnJlZ2lzdGVyX3VudmVuZG9yZWRfc3RkbGliX2ZpbmRlcigpOwogIGxldCBkID0gZS5tYWtlUHVibGljQVBJKCk7CiAgcmV0dXJuIGEucmVnaXN0ZXJfanNfbW9kdWxlKCJweW9kaWRlX2pzIiwgZCksIGUucHlvZGlkZV9weSA9IG4oInB5b2RpZGUiKSwgZS5weW9kaWRlX2NvZGUgPSBuKCJweW9kaWRlLmNvZGUiKSwgZS5weW9kaWRlX2ZmaSA9IG4oInB5b2RpZGUuZmZpIiksIGUucGFja2FnZV9sb2FkZXIgPSBuKCJweW9kaWRlLl9wYWNrYWdlX2xvYWRlciIpLCBkLnB5b2RpZGVfcHkgPSBlLnB5b2RpZGVfcHksIGQuZ2xvYmFscyA9IGUuZ2xvYmFscywgZDsKfQphc3luYyBmdW5jdGlvbiBKKGUgPSB7fSkgewogIGF3YWl0IGFzeW5jIGZ1bmN0aW9uKCkgewogICAgaWYgKCF3IHx8IChJID0gKGF3YWl0IGltcG9ydCgiLi9fX3ZpdGUtYnJvd3Nlci1leHRlcm5hbC01MDAzZDI5Yy5qcyIpKS5kZWZhdWx0LCAkID0gYXdhaXQgaW1wb3J0KCIuL19fdml0ZS1icm93c2VyLWV4dGVybmFsLTUwMDNkMjljLmpzIiksIEYgPSBnbG9iYWxUaGlzLmZldGNoID8gZmV0Y2ggOiAoYXdhaXQgaW1wb3J0KCIuL2luZGV4LTgzODU0MzZmLmpzIikpLmRlZmF1bHQsIFUgPSAoYXdhaXQgaW1wb3J0KCIuL19fdml0ZS1icm93c2VyLWV4dGVybmFsLTUwMDNkMjljLmpzIikpLmRlZmF1bHQsIEwgPSBhd2FpdCBpbXBvcnQoIi4vX192aXRlLWJyb3dzZXItZXh0ZXJuYWwtNTAwM2QyOWMuanMiKSwgayA9IEwuc2VwLCB0eXBlb2YgcmVxdWlyZSA8ICJ1IikpCiAgICAgIHJldHVybjsKICAgIGNvbnN0IGMgPSB7IGZzOiBhd2FpdCBpbXBvcnQoIi4vX192aXRlLWJyb3dzZXItZXh0ZXJuYWwtNTAwM2QyOWMuanMiKSwgY3J5cHRvOiBhd2FpdCBpbXBvcnQoIi4vX192aXRlLWJyb3dzZXItZXh0ZXJuYWwtNTAwM2QyOWMuanMiKSwgd3M6IGF3YWl0IGltcG9ydCgiLi9fX3ZpdGUtYnJvd3Nlci1leHRlcm5hbC01MDAzZDI5Yy5qcyIpLCBjaGlsZF9wcm9jZXNzOiBhd2FpdCBpbXBvcnQoIi4vX192aXRlLWJyb3dzZXItZXh0ZXJuYWwtNTAwM2QyOWMuanMiKSB9OwogICAgZ2xvYmFsVGhpcy5yZXF1aXJlID0gZnVuY3Rpb24odSkgewogICAgICByZXR1cm4gY1t1XTsKICAgIH07CiAgfSgpOwogIGxldCB0ID0gZS5pbmRleFVSTCB8fCBmdW5jdGlvbigpIHsKICAgIGlmICh0eXBlb2YgX19kaXJuYW1lID09ICJzdHJpbmciKQogICAgICByZXR1cm4gX19kaXJuYW1lOwogICAgbGV0IGM7CiAgICB0cnkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKICAgIH0gY2F0Y2ggKHApIHsKICAgICAgYyA9IHA7CiAgICB9CiAgICBsZXQgdSA9IHEucGFyc2UoYylbMF0uZmlsZU5hbWU7CiAgICBjb25zdCBzID0gdS5sYXN0SW5kZXhPZihrKTsKICAgIGlmIChzID09PSAtMSkKICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZXh0cmFjdCBpbmRleFVSTCBwYXRoIGZyb20gcHlvZGlkZSBtb2R1bGUgbG9jYXRpb24iKTsKICAgIHJldHVybiB1LnNsaWNlKDAsIHMpOwogIH0oKTsKICB0ID0gaih0KSwgdC5lbmRzV2l0aCgiLyIpIHx8ICh0ICs9ICIvIiksIGUuaW5kZXhVUkwgPSB0OwogIGNvbnN0IG4gPSB7IGZ1bGxTdGRMaWI6ICEwLCBqc2dsb2JhbHM6IGdsb2JhbFRoaXMsIHN0ZGluOiBnbG9iYWxUaGlzLnByb21wdCA/IGdsb2JhbFRoaXMucHJvbXB0IDogdm9pZCAwLCBob21lZGlyOiAiL2hvbWUvcHlvZGlkZSIsIGxvY2tGaWxlVVJMOiB0ICsgInJlcG9kYXRhLmpzb24iIH0sIHIgPSBPYmplY3QuYXNzaWduKG4sIGUpLCBpID0gTShyLmluZGV4VVJMICsgInB5b2RpZGVfcHkudGFyIiksIG8gPSB7IG5vSW1hZ2VEZWNvZGluZzogITAsIG5vQXVkaW9EZWNvZGluZzogITAsIG5vV2FzbURlY29kaW5nOiAhMSwgcHJlbG9hZGVkV2FzbToge30sIHByZVJ1bjogW10gfSwgYSA9IHsgY29uZmlnOiByIH07CiAgby5BUEkgPSBhLCB6KG8sIHIuc3RkaW4sIHIuc3Rkb3V0LCByLnN0ZGVyciksIGZ1bmN0aW9uKGMsIHUpIHsKICAgIGMucHJlUnVuLnB1c2goZnVuY3Rpb24oKSB7CiAgICAgIHRyeSB7CiAgICAgICAgYy5GUy5ta2RpclRyZWUodSk7CiAgICAgIH0gY2F0Y2ggKHMpIHsKICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBvY2N1cnJlZCB3aGlsZSBtYWtpbmcgYSBob21lIGRpcmVjdG9yeSAnJHt1fSc6YCksIGNvbnNvbGUuZXJyb3IocyksIGNvbnNvbGUuZXJyb3IoIlVzaW5nICcvJyBmb3IgYSBob21lIGRpcmVjdG9yeSBpbnN0ZWFkIiksIHUgPSAiLyI7CiAgICAgIH0KICAgICAgYy5FTlYuSE9NRSA9IHUsIGMuRlMuY2hkaXIodSk7CiAgICB9KTsKICB9KG8sIHIuaG9tZWRpcik7CiAgY29uc3QgZCA9IG5ldyBQcm9taXNlKChjKSA9PiBvLnBvc3RSdW4gPSBjKTsKICBvLmxvY2F0ZUZpbGUgPSAoYykgPT4gci5pbmRleFVSTCArIGM7CiAgY29uc3QgbSA9IGAke3IuaW5kZXhVUkx9cHlvZGlkZS5hc20uanNgOwogIGlmIChhd2FpdCBiKG0pLCBhd2FpdCBfY3JlYXRlUHlvZGlkZU1vZHVsZShvKSwgYXdhaXQgZCwgYS52ZXJzaW9uICE9PSAiMC4yMS4zIikKICAgIHRocm93IG5ldyBFcnJvcihgUHlvZGlkZSB2ZXJzaW9uIGRvZXMgbm90IG1hdGNoOiAnMC4yMS4zJyA8PT0+ICcke2EudmVyc2lvbn0nLiBJZiB5b3UgdXBkYXRlZCB0aGUgUHlvZGlkZSB2ZXJzaW9uLCBtYWtlIHN1cmUgeW91IGFsc28gdXBkYXRlZCB0aGUgJ2luZGV4VVJMJyBwYXJhbWV0ZXIgcGFzc2VkIHRvIGxvYWRQeW9kaWRlLmApOwogIG8ubG9jYXRlRmlsZSA9IChjKSA9PiB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkRpZG4ndCBleHBlY3QgdG8gbG9hZCBhbnkgbW9yZSBmaWxlX3BhY2thZ2VyIGZpbGVzISIpOwogIH07CiAgY29uc3QgbCA9IGF3YWl0IGk7CiAgKGZ1bmN0aW9uKGMsIHUpIHsKICAgIGxldCBzID0gYy5GUy5vcGVuKCIvcHlvZGlkZV9weS50YXIiLCAidyIpOwogICAgYy5GUy53cml0ZShzLCB1LCAwLCB1LmJ5dGVMZW5ndGgsIHZvaWQgMCwgITApLCBjLkZTLmNsb3NlKHMpOwogICAgY29uc3QgcCA9IGMuc3RyaW5nVG9OZXdVVEY4KGAKZnJvbSBzeXMgaW1wb3J0IHZlcnNpb25faW5mbwpweXZlcnNpb24gPSBmInB5dGhvbnt2ZXJzaW9uX2luZm8ubWFqb3J9Lnt2ZXJzaW9uX2luZm8ubWlub3J9IgppbXBvcnQgc2h1dGlsCnNodXRpbC51bnBhY2tfYXJjaGl2ZSgiL3B5b2RpZGVfcHkudGFyIiwgZiIvbGliL3tweXZlcnNpb259L3NpdGUtcGFja2FnZXMvIikKZGVsIHNodXRpbAppbXBvcnQgaW1wb3J0bGliCmltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCmRlbCBpbXBvcnRsaWIKICAgIGApOwogICAgaWYgKGMuX1B5UnVuX1NpbXBsZVN0cmluZyhwKSkKICAgICAgdGhyb3cgbmV3IEVycm9yKCJPT1BTISIpOwogICAgYy5fZnJlZShwKSwgYy5GUy51bmxpbmsoIi9weW9kaWRlX3B5LnRhciIpOwogIH0pKG8sIGwpLCBvLl9weW9kaWRlX2luaXQoKTsKICBjb25zdCBmID0gRyhhLCByKTsKICBpZiAoZi52ZXJzaW9uLmluY2x1ZGVzKCJkZXYiKSB8fCBhLnNldENkblVybChgaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L3B5b2RpZGUvdiR7Zi52ZXJzaW9ufS9mdWxsL2ApLCBhd2FpdCBhLnBhY2thZ2VJbmRleFJlYWR5LCBhLnJlcG9kYXRhX2luZm8udmVyc2lvbiAhPT0gIjAuMjEuMyIpCiAgICB0aHJvdyBuZXcgRXJyb3IoIkxvY2sgZmlsZSB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggUHlvZGlkZSB2ZXJzaW9uIik7CiAgcmV0dXJuIHIuZnVsbFN0ZExpYiAmJiBhd2FpdCBmLmxvYWRQYWNrYWdlKFsiZGlzdHV0aWxzIl0pLCBmLnJ1blB5dGhvbigicHJpbnQoJ1B5dGhvbiBpbml0aWFsaXphdGlvbiBjb21wbGV0ZScpIiksIGY7Cn0KY29uc3QgWSA9IHsKICBsb2FkUHlvZGlkZU9wdGlvbnM6IHsKICAgIGluZGV4VVJMOiAiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L3B5b2RpZGUvdjAuMjEuMy9mdWxsLyIKICB9Cn07CnZhciBLID0gYCMgcHlyaWdodDogcmVwb3J0TWlzc2luZ0ltcG9ydHM9ZmFsc2UKIyB0eXBlOiBpZ25vcmUKCiMgYmxhY2sKaW1wb3J0IHN5cwppbXBvcnQgbWljcm9waXAKaW1wb3J0IGFzeW5jaW8Kc3lzLm1vZHVsZXNbIl9tdWx0aXByb2Nlc3NpbmciXSA9IG9iamVjdAoKYXdhaXQgbWljcm9waXAuaW5zdGFsbCgiamVkaSIpCmF3YWl0IG1pY3JvcGlwLmluc3RhbGwoImJsYWNrIikKCmltcG9ydCBqZWRpCmZyb20gYmxhY2sgaW1wb3J0IGZvcm1hdF9zdHIsIEZpbGVNb2RlCgoKZGVmIGdldF9hdXRvY29tcGxldGlvbihjb2RlLCBsaW5lLCBjb2x1bW4pOgogICAgcmVzdWx0ID0gamVkaS5JbnRlcnByZXRlcihjb2RlLCBbZ2xvYmFscygpLCBsb2NhbHMoKV0pCgogICAgY29tcGxldGlvbnMgPSByZXN1bHQuY29tcGxldGUobGluZSwgY29sdW1uKQoKICAgIG1hdGNoZXMgPSBbXQogICAgZm9yIGNvbXAgaW4gY29tcGxldGlvbnM6CiAgICAgICAgbWF0Y2hlcy5hcHBlbmQoZGljdCgKICAgICAgICAgICAgbmFtZT1jb21wLm5hbWUsCiAgICAgICAgICAgIHR5cGU9Y29tcC50eXBlLAogICAgICAgICAgICBkZXNjcmlwdGlvbj1jb21wLmRlc2NyaXB0aW9uLAogICAgICAgICAgICBmdWxsX25hbWU9Y29tcC5mdWxsX25hbWUKICAgICAgICApKQoKICAgIHJldHVybiB7CiAgICAgICAgIm1hdGNoZXMiOiBtYXRjaGVzCiAgICB9CgoKYXN5bmMgZGVmIGluc3RhbGxfcGFjYWtnZShwYWNrYWdlKToKICAgIHRyeToKICAgICAgICBhd2FpdCBtaWNyb3BpcC5pbnN0YWxsKHBhY2thZ2UsIGtlZXBfZ29pbmc9VHJ1ZSkKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAic3VjY2VzcyI6IFRydWUKICAgICAgICB9CiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgInN1Y2Nlc3MiOiBGYWxzZSwKICAgICAgICAgICAgImVycm9yIjogc3RyKGUpCiAgICAgICAgfQoKCmRlZiBmb3JtYXRfY29kZShjb2RlKToKICAgIHJldHVybiBmb3JtYXRfc3RyKGNvZGUsIG1vZGU9RmlsZU1vZGUoKSkKYCwgQSA9IC8qIEBfX1BVUkVfXyAqLyAoKGUpID0+IChlW2UuUkVBRFkgPSAwXSA9ICJSRUFEWSIsIGUpKShBIHx8IHt9KSwgZyA9IC8qIEBfX1BVUkVfXyAqLyAoKGUpID0+IChlW2UuRVhFQyA9IDBdID0gIkVYRUMiLCBlW2UuQ09NUExFVEUgPSAxXSA9ICJDT01QTEVURSIsIGVbZS5JTlNUQUxMID0gMl0gPSAiSU5TVEFMTCIsIGVbZS5GT1JNQVQgPSAzXSA9ICJGT1JNQVQiLCBlKSkoZyB8fCB7fSk7CmNvbnN0IEQgPSAid3JhcHBlciI7CmZ1bmN0aW9uIF8oZSwgdCkgewogIHZhciBpOwogIGNvbnN0IG4gPSAoKGkgPSBlID09IG51bGwgPyB2b2lkIDAgOiBlLnRvSnMpID09IG51bGwgPyB2b2lkIDAgOiBpLmNhbGwoZSwgewogICAgZGljdF9jb252ZXJ0ZXI6IE9iamVjdC5mcm9tRW50cmllcywKICAgIGNyZWF0ZV9weXByb3hpZXM6ICExCiAgfSkpIHx8IGUsIHIgPSB0LmlzUHlQcm94eShuKSA/IG4udG9TdHJpbmcoKSA6IG47CiAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhyKSkgewogICAgY29uc3QgbyA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShyKTsKICAgIHJldHVybiBlLmdldEJ1ZmZlcigpLnJlbGVhc2UoKSwgbzsKICB9CiAgcmV0dXJuIHI7Cn0KY29uc3QgTiA9IC9GaWxlICI8ZXhlYz4iLCBsaW5lIChcZCspKCR8LCBpbiA8bW9kdWxlPikkL20sIE8gPSBuZXcgUmVnRXhwKAogIGBGaWxlICI8ZXhlYz4iLCBsaW5lIChcXGQrKSwgaW4gJHtEfWAsCiAgIm0iCiksIEggPSAvbGluZSAoXGQrKS9nOwpmdW5jdGlvbiBTKGUpIHsKICByZXR1cm4gZS5yZXBsYWNlKEgsICh0LCBuKSA9PiBgbGluZSAkeytuIC0gMX1gKTsKfQpmdW5jdGlvbiBRKGUpIHsKICBjb25zdCB0ID0gTi50ZXN0KGUpLCBuID0gTy50ZXN0KGUpOwogIGlmICghKHQgfHwgbikpCiAgICByZXR1cm4gZTsKICBjb25zdCByID0gZS5zcGxpdChgCmApLCBpID0gci5maW5kSW5kZXgoCiAgICAoYSkgPT4gdCA/IE4udGVzdChhKSA6IE8udGVzdChhKQogICk7CiAgbGV0IG8gPSAhMTsKICByZXR1cm4gci5zbGljZShpKS5yZWR1Y2UoKGEsIGQpID0+IHsKICAgIGlmIChvKQogICAgICBhLnB1c2goUyhkKSk7CiAgICBlbHNlIHsKICAgICAgaWYgKHQgJiYgIW4gJiYgTi50ZXN0KGQpKQogICAgICAgIHJldHVybiBvID0gITAsIGEucHVzaChTKGQpLnJlcGxhY2UoIiwgaW4gPG1vZHVsZT4iLCAiIikpLCBhOwogICAgICBpZiAobiAmJiBPLnRlc3QoZCkpCiAgICAgICAgcmV0dXJuIG8gPSAhMCwgYS5wdXNoKFMoZCkucmVwbGFjZShgLCBpbiAke0R9YCwgIiIpKSwgYTsKICAgIH0KICAgIHJldHVybiBhOwogIH0sIFtdKS5qb2luKGAKYCk7Cn0KYXN5bmMgZnVuY3Rpb24gWigpIHsKICBjb25zdCBlID0gYXdhaXQgSihZLmxvYWRQeW9kaWRlT3B0aW9ucyk7CiAgYXdhaXQgZS5sb2FkUGFja2FnZSgibWljcm9waXAiKSwgYXdhaXQgZS5ydW5QeXRob25Bc3luYyhLKSwgcG9zdE1lc3NhZ2UoQS5SRUFEWSk7CiAgY29uc3QgdCA9IHsKICAgIFtnLkVYRUNdOiBhc3luYyAoeyBjb2RlOiBuLCBjb250ZXh0OiByID0ge30gfSkgPT4gewogICAgICBPYmplY3QuZW50cmllcyhyKS5mb3JFYWNoKChbaSwgb10pID0+IHsKICAgICAgICBlLmdsb2JhbHMuc2V0KGksIGUudG9QeShvKSk7CiAgICAgIH0pOwogICAgICB0cnkgewogICAgICAgIGF3YWl0IGUubG9hZFBhY2thZ2VzRnJvbUltcG9ydHMobiksIGUucnVuUHl0aG9uKCJpbXBvcnQgc3lzLCBpbzsgc3lzLnN0ZG91dCA9IGlvLlN0cmluZ0lPKCk7IHN5cy5zdGRlcnIgPSBpby5TdHJpbmdJTygpIik7CiAgICAgICAgY29uc3QgaSA9IGF3YWl0IGUucnVuUHl0aG9uQXN5bmMobiksIG8gPSBlLnJ1blB5dGhvbigiaW1wb3J0IHN5czsgc3lzLnN0ZG91dC5nZXR2YWx1ZSgpIikudHJpbSgpLCBhID0gZS5ydW5QeXRob24oImltcG9ydCBzeXM7IHN5cy5zdGRlcnIuZ2V0dmFsdWUoKSIpLnRyaW0oKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgcmVzdWx0OiBfKGksIGUpLAogICAgICAgICAgc3Rkb3V0OiBfKG8sIGUpLAogICAgICAgICAgc3RkZXJyOiBhLAogICAgICAgICAgZXJyb3I6IG51bGwKICAgICAgICB9OwogICAgICB9IGNhdGNoIChpKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHJlc3VsdDogbnVsbCwKICAgICAgICAgIHN0ZG91dDogbnVsbCwKICAgICAgICAgIHN0ZGVycjogbnVsbCwKICAgICAgICAgIGVycm9yOiBRKGkubWVzc2FnZSkKICAgICAgICB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIE9iamVjdC5lbnRyaWVzKHIpLmZvckVhY2goKFtpXSkgPT4gewogICAgICAgICAgdmFyIG87CiAgICAgICAgICBlLmdsb2JhbHMuc2V0KGksIChvID0gZS50b1B5KG51bGwpKSA9PSBudWxsID8gdm9pZCAwIDogby50b1N0cmluZygpKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIFtnLkNPTVBMRVRFXTogYXN5bmMgKHsKICAgICAgY29kZTogbiwKICAgICAgbGluZTogciwKICAgICAgY29sdW1uOiBpCiAgICB9KSA9PiB7CiAgICAgIGF3YWl0IGUubG9hZFBhY2thZ2VzRnJvbUltcG9ydHMobik7CiAgICAgIGNvbnN0IG8gPSBlLmdsb2JhbHMuZ2V0KCJnZXRfYXV0b2NvbXBsZXRpb24iKShuLCByLCBpKTsKICAgICAgcmV0dXJuIHsgcmVzdWx0OiBfKG8sIGUpLCBlcnJvcjogbnVsbCB9OwogICAgfSwKICAgIFtnLklOU1RBTExdOiBhc3luYyAoeyBwYWNrYWdlczogbiB9KSA9PiB7CiAgICAgIGNvbnN0IHIgPSBhd2FpdCBlLmdsb2JhbHMuZ2V0KCJpbnN0YWxsX3BhY2FrZ2UiKShuWzBdKTsKICAgICAgcmV0dXJuIGNvbnNvbGUubG9nKF8ociwgZSkpLCBfKHIsIGUpOwogICAgfSwKICAgIFtnLkZPUk1BVF06IGFzeW5jICh7IGNvZGU6IG4gfSkgPT4gewogICAgICBjb25zdCByID0gZS5nbG9iYWxzLmdldCgiZm9ybWF0X2NvZGUiKShuKTsKICAgICAgcmV0dXJuIHsgcmVzdWx0OiBfKHIsIGUpLCBlcnJvcjogbnVsbCB9OwogICAgfQogIH07CiAgb25tZXNzYWdlID0gYXN5bmMgZnVuY3Rpb24ocikgewogICAgY29uc3QgeyBpZDogaSwgYWN0aW9uOiBvID0gZy5FWEVDIH0gPSByLmRhdGE7CiAgICBzd2l0Y2ggKG8pIHsKICAgICAgY2FzZSBnLkVYRUM6CiAgICAgICAgY29uc3QgYSA9IGF3YWl0IHRbZy5FWEVDXShyLmRhdGEucGF5bG9hZCk7CiAgICAgICAgcG9zdE1lc3NhZ2UoewogICAgICAgICAgLi4uYSwKICAgICAgICAgIGlkOiBpLAogICAgICAgICAgYWN0aW9uOiBvCiAgICAgICAgfSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgZy5DT01QTEVURToKICAgICAgICBjb25zdCBkID0gYXdhaXQgdFtnLkNPTVBMRVRFXSgKICAgICAgICAgIHIuZGF0YS5wYXlsb2FkCiAgICAgICAgKTsKICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAuLi5kLAogICAgICAgICAgaWQ6IGksCiAgICAgICAgICBhY3Rpb246IG8KICAgICAgICB9KTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSBnLklOU1RBTEw6CiAgICAgICAgY29uc3QgbSA9IGF3YWl0IHRbZy5JTlNUQUxMXShyLmRhdGEucGF5bG9hZCk7CiAgICAgICAgcG9zdE1lc3NhZ2UoewogICAgICAgICAgLi4ubSwKICAgICAgICAgIGlkOiBpLAogICAgICAgICAgYWN0aW9uOiBvCiAgICAgICAgfSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgZy5GT1JNQVQ6CiAgICAgICAgY29uc3QgbCA9IGF3YWl0IHRbZy5GT1JNQVRdKHIuZGF0YS5wYXlsb2FkKTsKICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAuLi5sLAogICAgICAgICAgaWQ6IGksCiAgICAgICAgICBhY3Rpb246IG8KICAgICAgICB9KTsKICAgICAgICBicmVhazsKICAgIH0KICB9Owp9ClooKTsK", S = typeof window < "u" && window.Blob && new Blob([atob(h)], { type: "text/javascript;charset=utf-8" });
function f() {
function M() {
const I = S && (window.URL || window.webkitURL).createObjectURL(S);

@@ -158,4 +164,4 @@ try {

}
const M = Boolean(globalThis.Worker), [Z, o] = Q.create({
config: T,
const j = Boolean(globalThis.Worker), [B, Z] = T.create({
config: O,
pyodideWorker: null,

@@ -167,86 +173,78 @@ execCallbacks: {},

commandUniqueId: 0
}), u = {
}), a = {
async ensureWorkerIsSetup() {
const { pyodideWorker: I } = Z();
I || await E();
const { pyodideWorker: I } = B();
I || await q();
},
async command(I, g) {
await u.ensureWorkerIsSetup();
const { commandUniqueId: C, pyodideWorker: A } = Z();
o({ commandUniqueId: C + 1 }), A == null || A.postMessage({ payload: I, id: C, action: g });
await a.ensureWorkerIsSetup();
const { commandUniqueId: C, pyodideWorker: l } = B();
Z({ commandUniqueId: C + 1 }), l == null || l.postMessage({ payload: I, id: C, action: g });
}
};
function j({ result: I, error: g, id: C, stderr: A, stdout: i }) {
const { execCallbacks: l } = Z();
p(C, Boolean(l[C]));
const { resolve: c } = l[C];
o({
execCallbacks: m(l, (B) => {
delete B[C];
})
}), c({ result: I, error: g, stderr: A, stdout: i });
function P({ result: I, error: g, id: C, stderr: l, stdout: A }) {
const { execCallbacks: i } = B();
e(C, Boolean(i[C]));
const { resolve: G } = i[C];
Z({
execCallbacks: p(i, C)
}), G({ result: I, error: g, stderr: l, stdout: A });
}
function P({ result: I, error: g, id: C }) {
const { completeCallbacks: A } = Z();
p(C, Boolean(A[C]));
const { resolve: i, reject: l } = A[C];
if (o({
completeCallbacks: m(A, (c) => {
delete c[C];
})
function x({ result: I, error: g, id: C }) {
const { completeCallbacks: l } = B();
e(C, Boolean(l[C]));
const { resolve: A, reject: i } = l[C];
if (Z({
completeCallbacks: p(l, C)
}), g) {
l == null || l(g);
i == null || i(g);
return;
}
i(I);
A(I);
}
function x({ success: I, error: g, id: C }) {
const { installCallbacks: A } = Z();
p(C, Boolean(A[C]));
const { resolve: i, reject: l } = A[C];
if (o({
installCallbacks: m(A, (c) => {
delete c[C];
})
function D({ success: I, error: g, id: C }) {
const { installCallbacks: l } = B();
e(C, Boolean(l[C]));
const { resolve: A, reject: i } = l[C];
if (Z({
installCallbacks: p(l, C)
}), g) {
l == null || l(g);
i == null || i(g);
return;
}
i({ success: I, error: g });
A({ success: I, error: g });
}
function D({ result: I, error: g, id: C }) {
const { formatCallbacks: A } = Z();
p(C, Boolean(A[C]));
const { resolve: i } = A[C];
o({
formatCallbacks: m(A, (l) => {
delete l[C];
})
}), i({ result: I, error: g });
function E({ result: I, error: g, id: C }) {
const { formatCallbacks: l } = B();
e(C, Boolean(l[C]));
const { resolve: A } = l[C];
Z({
formatCallbacks: p(l, C)
}), A({ result: I, error: g });
}
const E = O(function() {
const q = f(function() {
return new Promise((g, C) => {
M || C(new Error(`your browser does
j || C(new Error(`your browser does
t support web workers!`));
const A = new f();
A.onmessage = function(l) {
l.data === t.READY ? (o({ pyodideWorker: A }), A.onmessage = function(B) {
const { action: G, ...b } = B.data;
switch (G) {
case d.EXEC:
j(b);
const l = new M();
l.onmessage = function(i) {
i.data === t.READY ? (Z({ pyodideWorker: l }), l.onmessage = function(d) {
const { action: b, ...c } = d.data;
switch (b) {
case o.EXEC:
P(c);
break;
case d.COMPLETE:
P(b);
case o.COMPLETE:
x(c);
break;
case d.INSTALL:
x(b);
case o.INSTALL:
D(c);
break;
case d.FORMAT:
D(b);
case o.FORMAT:
E(c);
break;
}
}, g(A)) : C(new Error("unexpected error in setup process"));
}, A.onerror = function(l) {
C(l.message);
}, g(l)) : C(new Error("unexpected error in setup process"));
}, l.onerror = function(i) {
C(i.message);
};

@@ -257,7 +255,5 @@ });

return new Promise((g) => {
const { execCallbacks: C, commandUniqueId: A } = Z();
u.command(I, d.EXEC), o({
execCallbacks: m(C, (i) => {
i[A] = { resolve: g };
})
const { execCallbacks: C, commandUniqueId: l } = B();
a.command(I, o.EXEC), Z({
execCallbacks: y(C, l, { resolve: g })
});

@@ -269,9 +265,10 @@ });

return new Promise((g, C) => {
const { commandUniqueId: A, completeCallbacks: i } = Z(), { code: l, line: c, column: B } = I;
let G = c, b = B;
c || (G = l.split(`
`).length), b || (b = l.split(`
`)[G - 1].length), u.command({ code: l, line: G, column: b }, d.COMPLETE), o({
completeCallbacks: m(i, (y) => {
y[A] = { resolve: g, reject: C };
const { commandUniqueId: l, completeCallbacks: A } = B(), { code: i, line: G, column: d } = I;
let b = G, c = d;
G || (b = i.split(`
`).length), c || (c = i.split(`
`)[b - 1].length), a.command({ code: i, line: b, column: c }, o.COMPLETE), Z({
completeCallbacks: y(A, l, {
resolve: g,
reject: C
})

@@ -284,6 +281,7 @@ });

return new Promise((g, C) => {
const { installCallbacks: A, commandUniqueId: i } = Z();
u.command({ packages: I }, d.INSTALL), o({
installCallbacks: m(A, (l) => {
l[i] = { resolve: g, reject: C };
const { installCallbacks: l, commandUniqueId: A } = B();
a.command({ packages: I }, o.INSTALL), Z({
installCallbacks: y(l, A, {
resolve: g,
reject: C
})

@@ -295,6 +293,7 @@ });

return new Promise((g, C) => {
const { formatCallbacks: A, commandUniqueId: i } = Z();
u.command(I, d.FORMAT), o({
formatCallbacks: m(A, (l) => {
l[i] = { resolve: g, reject: C };
const { formatCallbacks: l, commandUniqueId: A } = B();
a.command(I, o.FORMAT), Z({
formatCallbacks: y(l, A, {
resolve: g,
reject: C
})

@@ -308,4 +307,4 @@ });

gI as format,
E as init,
q as init,
II as install
};
{
"name": "@x-python/core",
"version": "0.0.4",
"version": "0.0.5",
"type": "module",

@@ -54,3 +54,2 @@ "license": "MIT",

"dependencies": {
"immer": "^9.0.16",
"pyodide": "^0.21.3",

@@ -57,0 +56,0 @@ "state-local": "^1.0.7"

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc