haxeshim
Version:
Haxe shim to deal with cooexisting versions.
532 lines (529 loc) • 18 kB
JavaScript
// Generated by Haxe 3.4.2 (git build development @ e033003)
if (typeof process !== "undefined") if (process.version < "v4.0.0") console.warn("Module " + (typeof(module) == "undefined" ? "" : module.filename) + " requires node.js version 4.0.0 or higher");
(function () { "use strict";
var $estr = function() { return js_Boot.__string_rec(this,''); };
function $extend(from, fields) {
function Inherit() {} Inherit.prototype = from; var proto = new Inherit();
for (var name in fields) proto[name] = fields[name];
if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString;
return proto;
}
var HxOverrides = function() { };
HxOverrides.__name__ = true;
HxOverrides.cca = function(s,index) {
var x = s.charCodeAt(index);
if(x != x) {
return undefined;
}
return x;
};
HxOverrides.substr = function(s,pos,len) {
if(len == null) {
len = s.length;
} else if(len < 0) {
if(pos == 0) {
len = s.length + len;
} else {
return "";
}
}
return s.substr(pos,len);
};
HxOverrides.iter = function(a) {
return { cur : 0, arr : a, hasNext : function() {
return this.cur < this.arr.length;
}, next : function() {
return this.arr[this.cur++];
}};
};
var Lambda = function() { };
Lambda.__name__ = true;
Lambda.foreach = function(it,f) {
var x = $iterator(it)();
while(x.hasNext()) {
var x1 = x.next();
if(!f(x1)) {
return false;
}
}
return true;
};
Math.__name__ = true;
var Std = function() { };
Std.__name__ = true;
Std.string = function(s) {
return js_Boot.__string_rec(s,"");
};
var StringTools = function() { };
StringTools.__name__ = true;
StringTools.isSpace = function(s,pos) {
var c = HxOverrides.cca(s,pos);
if(!(c > 8 && c < 14)) {
return c == 32;
} else {
return true;
}
};
StringTools.ltrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,r)) ++r;
if(r > 0) {
return HxOverrides.substr(s,r,l - r);
} else {
return s;
}
};
StringTools.rtrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
if(r > 0) {
return HxOverrides.substr(s,0,l - r);
} else {
return s;
}
};
StringTools.trim = function(s) {
return StringTools.ltrim(StringTools.rtrim(s));
};
StringTools.replace = function(s,sub,by) {
return s.split(sub).join(by);
};
var Sys = function() { };
Sys.__name__ = true;
Sys.systemName = function() {
var _g = process.platform;
switch(_g) {
case "darwin":
return "Mac";
case "freebsd":
return "BSD";
case "linux":
return "Linux";
case "win32":
return "Windows";
default:
var other = _g;
return other;
}
};
var haxe_io_Bytes = function(data) {
this.length = data.byteLength;
this.b = new Uint8Array(data);
this.b.bufferValue = data;
data.hxBytes = this;
data.bytes = this.b;
};
haxe_io_Bytes.__name__ = true;
haxe_io_Bytes.ofString = function(s) {
var a = [];
var i = 0;
while(i < s.length) {
var c = s.charCodeAt(i++);
if(55296 <= c && c <= 56319) {
c = c - 55232 << 10 | s.charCodeAt(i++) & 1023;
}
if(c <= 127) {
a.push(c);
} else if(c <= 2047) {
a.push(192 | c >> 6);
a.push(128 | c & 63);
} else if(c <= 65535) {
a.push(224 | c >> 12);
a.push(128 | c >> 6 & 63);
a.push(128 | c & 63);
} else {
a.push(240 | c >> 18);
a.push(128 | c >> 12 & 63);
a.push(128 | c >> 6 & 63);
a.push(128 | c & 63);
}
}
return new haxe_io_Bytes(new Uint8Array(a).buffer);
};
haxe_io_Bytes.prototype = {
blit: function(pos,src,srcpos,len) {
if(pos < 0 || srcpos < 0 || len < 0 || pos + len > this.length || srcpos + len > src.length) {
throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);
}
if(srcpos == 0 && len == src.b.byteLength) {
this.b.set(src.b,pos);
} else {
this.b.set(src.b.subarray(srcpos,srcpos + len),pos);
}
}
,fill: function(pos,len,value) {
var _g1 = 0;
var _g = len;
while(_g1 < _g) {
var i = _g1++;
this.b[pos++] = value & 255;
}
}
,sub: function(pos,len) {
if(pos < 0 || len < 0 || pos + len > this.length) {
throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);
}
return new haxe_io_Bytes(this.b.buffer.slice(pos + this.b.byteOffset,pos + this.b.byteOffset + len));
}
,compare: function(other) {
var b1 = this.b;
var b2 = other.b;
var len = this.length < other.length ? this.length : other.length;
var _g1 = 0;
var _g = len;
while(_g1 < _g) {
var i = _g1++;
if(b1[i] != b2[i]) {
return b1[i] - b2[i];
}
}
return this.length - other.length;
}
};
var haxe_crypto_Base64 = function() { };
haxe_crypto_Base64.__name__ = true;
haxe_crypto_Base64.decode = function(str,complement) {
if(complement == null) {
complement = true;
}
if(complement) {
while(HxOverrides.cca(str,str.length - 1) == 61) str = HxOverrides.substr(str,0,-1);
}
return new haxe_crypto_BaseCode(haxe_crypto_Base64.BYTES).decodeBytes(haxe_io_Bytes.ofString(str));
};
var haxe_crypto_BaseCode = function(base) {
var len = base.length;
var nbits = 1;
while(len > 1 << nbits) ++nbits;
if(nbits > 8 || len != 1 << nbits) {
throw new js__$Boot_HaxeError("BaseCode : base length must be a power of two.");
}
this.base = base;
this.nbits = nbits;
};
haxe_crypto_BaseCode.__name__ = true;
haxe_crypto_BaseCode.prototype = {
initTable: function() {
var tbl = [];
var _g = 0;
while(_g < 256) {
var i = _g++;
tbl[i] = -1;
}
var _g1 = 0;
var _g2 = this.base.length;
while(_g1 < _g2) {
var i1 = _g1++;
tbl[this.base.b[i1]] = i1;
}
this.tbl = tbl;
}
,decodeBytes: function(b) {
var nbits = this.nbits;
var base = this.base;
if(this.tbl == null) {
this.initTable();
}
var tbl = this.tbl;
var size = b.length * nbits >> 3;
var out = new haxe_io_Bytes(new ArrayBuffer(size));
var buf = 0;
var curbits = 0;
var pin = 0;
var pout = 0;
while(pout < size) {
while(curbits < 8) {
curbits += nbits;
buf <<= nbits;
var i = tbl[b.b[pin++]];
if(i == -1) {
throw new js__$Boot_HaxeError("BaseCode : invalid encoded char");
}
buf |= i;
}
curbits -= 8;
out.b[pout++] = buf >> curbits & 255 & 255;
}
return out;
}
};
var haxe_io_Eof = function() { };
haxe_io_Eof.__name__ = true;
haxe_io_Eof.prototype = {
toString: function() {
return "Eof";
}
};
var haxe_io_Error = { __ename__ : true, __constructs__ : ["Blocked","Overflow","OutsideBounds","Custom"] };
haxe_io_Error.Blocked = ["Blocked",0];
haxe_io_Error.Blocked.toString = $estr;
haxe_io_Error.Blocked.__enum__ = haxe_io_Error;
haxe_io_Error.Overflow = ["Overflow",1];
haxe_io_Error.Overflow.toString = $estr;
haxe_io_Error.Overflow.__enum__ = haxe_io_Error;
haxe_io_Error.OutsideBounds = ["OutsideBounds",2];
haxe_io_Error.OutsideBounds.toString = $estr;
haxe_io_Error.OutsideBounds.__enum__ = haxe_io_Error;
haxe_io_Error.Custom = function(e) { var $x = ["Custom",3,e]; $x.__enum__ = haxe_io_Error; $x.toString = $estr; return $x; };
var haxe_io_Path = function(path) {
switch(path) {
case ".":case "..":
this.dir = path;
this.file = "";
return;
}
var c1 = path.lastIndexOf("/");
var c2 = path.lastIndexOf("\\");
if(c1 < c2) {
this.dir = HxOverrides.substr(path,0,c2);
path = HxOverrides.substr(path,c2 + 1,null);
this.backslash = true;
} else if(c2 < c1) {
this.dir = HxOverrides.substr(path,0,c1);
path = HxOverrides.substr(path,c1 + 1,null);
} else {
this.dir = null;
}
var cp = path.lastIndexOf(".");
if(cp != -1) {
this.ext = HxOverrides.substr(path,cp + 1,null);
this.file = HxOverrides.substr(path,0,cp);
} else {
this.ext = null;
this.file = path;
}
};
haxe_io_Path.__name__ = true;
var haxeshim_PostInstall = function() { };
haxeshim_PostInstall.__name__ = true;
haxeshim_PostInstall.makeExe = function(call) {
var call1 = haxe_io_Bytes.ofString(call);
var replacer = new haxe_io_Bytes(new ArrayBuffer(haxeshim_PostInstall.placeholder.length));
replacer.fill(0,replacer.length,0);
replacer.blit(0,call1,0,call1.length);
var buf = new haxe_io_Bytes(new ArrayBuffer(haxeshim_PostInstall.exifier.length));
buf.blit(0,haxeshim_PostInstall.exifier,0,buf.length);
buf.blit(haxeshim_PostInstall.offset,replacer,0,replacer.length);
return buf;
};
haxeshim_PostInstall.exify = function(dir,source,mayFail) {
var _g = 0;
var _g1 = ["haxe","haxelib","neko"];
while(_g < _g1.length) {
var name = _g1[_g];
++_g;
var exe = "" + dir + "/" + name + ".exe";
if(sys_FileSystem.exists(exe) && !sys_FileSystem.exists("" + exe + ".bak")) {
js_node_Fs.renameSync(exe,"" + exe + ".bak");
}
try {
js_node_Fs.writeFileSync(exe,new js_node_buffer_Buffer(haxeshim_PostInstall.makeExe("node \"" + source + "/" + name + "shim.js\"").b.bufferValue));
} catch( e ) {
if(!mayFail(name)) {
process.stdout.write(Std.string("failed to shim " + name));
process.stdout.write("\n");
process.exit(500);
}
}
}
};
haxeshim_PostInstall.which = function(name) {
return Std.string(js_node_ChildProcess.spawnSync(haxeshim_PostInstall.WINDOWS ? "where" : "which",[name]).stdout).split("\n").map(StringTools.trim);
};
haxeshim_PostInstall.main = function() {
if(haxeshim_PostInstall.GLOBAL) {
if(haxeshim_PostInstall.WINDOWS) {
var sources = StringTools.replace(__dirname,"\\","/");
var mayFail;
var args = ["--run","show-version"];
var _g = args == null ? js_node_ChildProcess.spawnSync("haxe",{ stdio : "inherit"}).status : js_node_ChildProcess.spawnSync("haxe",args,{ stdio : "inherit"}).status;
if(_g == 0) {
mayFail = function(c) {
return c == "haxe";
};
} else {
mayFail = function(_) {
return false;
};
}
var _g1 = 0;
var _g2 = haxeshim_PostInstall.which("haxe");
while(_g1 < _g2.length) {
var p = _g2[_g1];
++_g1;
var _g3 = new haxe_io_Path(p);
switch(_g3.ext) {
case "cmd":
var npm = _g3.dir;
haxeshim_PostInstall.exify(npm,sources,mayFail);
break;
case "exe":
var std = [_g3.dir];
if(Lambda.foreach(["CHANGES.txt","CONTRIB.txt","LICENSE.txt"],(function(std1) {
return function(file) {
return sys_FileSystem.exists("" + std1[0] + "/" + file);
};
})(std))) {
haxeshim_PostInstall.exify(std[0],sources,mayFail);
}
break;
default:
}
}
}
}
};
var js__$Boot_HaxeError = function(val) {
Error.call(this);
this.val = val;
this.message = String(val);
if(Error.captureStackTrace) {
Error.captureStackTrace(this,js__$Boot_HaxeError);
}
};
js__$Boot_HaxeError.__name__ = true;
js__$Boot_HaxeError.wrap = function(val) {
if((val instanceof Error)) {
return val;
} else {
return new js__$Boot_HaxeError(val);
}
};
js__$Boot_HaxeError.__super__ = Error;
js__$Boot_HaxeError.prototype = $extend(Error.prototype,{
});
var js_Boot = function() { };
js_Boot.__name__ = true;
js_Boot.__string_rec = function(o,s) {
if(o == null) {
return "null";
}
if(s.length >= 5) {
return "<...>";
}
var t = typeof(o);
if(t == "function" && (o.__name__ || o.__ename__)) {
t = "object";
}
switch(t) {
case "function":
return "<function>";
case "object":
if(o instanceof Array) {
if(o.__enum__) {
if(o.length == 2) {
return o[0];
}
var str = o[0] + "(";
s += "\t";
var _g1 = 2;
var _g = o.length;
while(_g1 < _g) {
var i = _g1++;
if(i != 2) {
str += "," + js_Boot.__string_rec(o[i],s);
} else {
str += js_Boot.__string_rec(o[i],s);
}
}
return str + ")";
}
var l = o.length;
var i1;
var str1 = "[";
s += "\t";
var _g11 = 0;
var _g2 = l;
while(_g11 < _g2) {
var i2 = _g11++;
str1 += (i2 > 0 ? "," : "") + js_Boot.__string_rec(o[i2],s);
}
str1 += "]";
return str1;
}
var tostr;
try {
tostr = o.toString;
} catch( e ) {
return "???";
}
if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
var s2 = o.toString();
if(s2 != "[object Object]") {
return s2;
}
}
var k = null;
var str2 = "{\n";
s += "\t";
var hasp = o.hasOwnProperty != null;
for( var k in o ) {
if(hasp && !o.hasOwnProperty(k)) {
continue;
}
if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
continue;
}
if(str2.length != 2) {
str2 += ", \n";
}
str2 += s + k + " : " + js_Boot.__string_rec(o[k],s);
}
s = s.substring(1);
str2 += "\n" + s + "}";
return str2;
case "string":
return o;
default:
return String(o);
}
};
var js_node_ChildProcess = require("child_process");
var js_node_Fs = require("fs");
var js_node_buffer_Buffer = require("buffer").Buffer;
var sys_FileSystem = function() { };
sys_FileSystem.__name__ = true;
sys_FileSystem.exists = function(path) {
try {
js_node_Fs.accessSync(path);
return true;
} catch( _ ) {
return false;
}
};
function $iterator(o) { if( o instanceof Array ) return function() { return HxOverrides.iter(o); }; return typeof(o.iterator) == 'function' ? $bind(o,o.iterator) : o.iterator; }
var $_, $fid = 0;
function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $fid++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = function(){ return f.method.apply(f.scope, arguments); }; f.scope = o; f.method = m; o.hx__closures__[m.__id__] = f; } return f; }
String.__name__ = true;
Array.__name__ = true;
haxe_crypto_Base64.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
haxe_crypto_Base64.BYTES = haxe_io_Bytes.ofString(haxe_crypto_Base64.CHARS);
haxeshim_PostInstall.placeholder = haxe_io_Bytes.ofString("abcdefghijklmnopqrstufvwxyzABCDEFGHIJKLMNOPQRSTUFVWXYZ0123456789abcdefghijklmnopqrstufvwxyzABCDEFGHIJKLMNOPQRSTUFVWXYZ0123456789abcdefghijklmnopqrstufvwxyzABCDEFGHIJKLMNOPQRSTUFVWXYZ0123456789abcdefghijklmnopqrstufvwxyzABCDEFGHIJKLMNOPQRSTUFVWXYZ0123456789");
haxeshim_PostInstall.exifier = haxe_crypto_Base64.decode("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");
haxeshim_PostInstall.offset = (function($this) {
var $r;
var ret = -1;
{
var _g1 = 0;
var _g = haxeshim_PostInstall.exifier.length - haxeshim_PostInstall.placeholder.length;
while(_g1 < _g) {
var i = _g1++;
if(haxeshim_PostInstall.exifier.sub(i,haxeshim_PostInstall.placeholder.length).compare(haxeshim_PostInstall.placeholder) == 0) {
ret = i;
break;
}
}
}
if(ret == -1) {
throw new js__$Boot_HaxeError("no placeholder found");
}
$r = ret;
return $r;
}(this));
haxeshim_PostInstall.GLOBAL = !(!process.env["npm_config_global"]);
haxeshim_PostInstall.WINDOWS = Sys.systemName() == "Windows";
haxeshim_PostInstall.main();
})();