asajs
Version:
Make your Minecraft JsonUI with ScriptingAPI
105 lines (104 loc) • 4.54 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var Random_exports = {};
__export(Random_exports, {
Random: () => Random
});
module.exports = __toCommonJS(Random_exports);
var import_Class = require("./Class");
var import_Config = require("../compilers/Config");
const HEX = Array.from(
{ length: 256 },
(_, i) => i.toString(16).toUpperCase().padStart(2, "0")
);
const CHARS = "0123456789abcdefghijklmnopqrstuvwxyz";
const _Random = class _Random extends import_Class.Class {
static get uiConfig() {
var _a;
return (_a = this._uiConfig) != null ? _a : this._uiConfig = import_Config.Configs.getConfig().compiler.UI;
}
static get isObfuscate() {
return import_Config.Configs.getConfig().compiler.UI.obfuscateName;
}
static get uniqueKey() {
var _a;
return (_a = this._uniqueKey) != null ? _a : this._uniqueKey = _Random.genString(5, 16).toUpperCase();
}
static get prefix() {
return this.uniqueKey;
}
static genString(length, base = 32) {
const chars = CHARS.slice(0, base);
const out = new Array(length);
try {
const buffer = new Uint8Array(length);
crypto.getRandomValues(buffer);
for (let i = 0; i < length; i++) {
out[i] = chars[buffer[i] % base];
}
} catch (e) {
for (let i = 0; i < length; i++) {
out[i] = chars[Math.floor(Math.random() * base)];
}
}
return out.join("");
}
static getName(length = _Random.uiConfig.nameLength) {
if (_Random.isObfuscate) return _Random.genString(length);
const counter = ++_Random.counter.element;
return "".concat(_Random.prefix, "_ELEMENT_").concat(counter.toString(16).toUpperCase());
}
static getAnimationName(length = _Random.uiConfig.nameLength) {
if (_Random.isObfuscate) return _Random.genString(length);
const counter = ++_Random.counter.animation;
return "".concat(_Random.prefix, "_ANIMATION_").concat(counter.toString(16).toUpperCase());
}
static getNamespace() {
if (!_Random.namespaces) {
const { namespaceAmount, namespaceLength } = _Random.uiConfig;
_Random.namespaces = Array.from(
{ length: namespaceAmount },
(_, index2) => _Random.isObfuscate ? _Random.genString(namespaceLength) : "".concat(_Random.prefix, "_NAMESPACE_").concat((index2 + 1).toString(16).toUpperCase())
);
}
const index = _Random.namespaceIndex++ % _Random.namespaces.length;
return _Random.namespaces[index];
}
static getUUID() {
const b = Array.from({ length: 16 }, () => Math.floor(Math.random() * 256));
return "".concat(HEX[b[0]]).concat(HEX[b[1]]).concat(HEX[b[2]]).concat(HEX[b[3]], "-").concat(HEX[b[4]]).concat(HEX[b[5]], "-").concat(HEX[b[6]]).concat(HEX[b[7]], "-").concat(HEX[b[8]]).concat(HEX[b[9]], "-").concat(HEX[b[10]]).concat(HEX[b[11]]).concat(HEX[b[12]]).concat(HEX[b[13]]).concat(HEX[b[14]]).concat(HEX[b[15]]);
}
static bindingName() {
if (_Random.isObfuscate) return "#".concat(_Random.genString(_Random.uiConfig.nameLength));
const counter = ++_Random.counter.binding;
return "#".concat(_Random.prefix, "_BINDING_").concat(counter.toString(16).toUpperCase());
}
};
__publicField(_Random, "namespaces");
__publicField(_Random, "namespaceIndex", 0);
__publicField(_Random, "_uiConfig");
__publicField(_Random, "_uniqueKey");
__publicField(_Random, "counter", { element: 0, animation: 0, binding: 0 });
let Random = _Random;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Random
});