UNPKG

asajs

Version:

Make your Minecraft JsonUI with ScriptingAPI

105 lines (104 loc) 4.54 kB
"use strict"; 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 });