New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@balancy/cocos-creator

Package Overview
Dependencies
Maintainers
0
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@balancy/cocos-creator - npm Package Compare versions

Comparing version 1.0.0-rc.8 to 1.0.0-rc.9

dist/server.js

46

dist/hooks.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.throwError = void 0;
exports.onAfterBuild = onAfterBuild;
exports.onAfterBuildAssets = onAfterBuildAssets;
exports.onBeforeBuildFinish = onBeforeBuildFinish;
exports.load = load;
exports.unload = unload;
const path_1 = require("path");
const fs_1 = require("fs");
exports.throwError = true;
async function onAfterBuild(options) {
const wasmName = 'Balancy.wasm';
const filename = (0, path_1.resolve)(Editor.Project.path, 'node_modules', '@balancy/wasm/dist', wasmName);
const filename = (0, path_1.resolve)(Editor.Project.path, 'node_modules', '@balancy', 'wasm', 'dist', wasmName);
(0, fs_1.copyFileSync)(filename, (0, path_1.resolve)(Editor.Project.path, options.buildPath.replace('project://', ''), options.outputName, wasmName));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxvQ0FTQztBQVpELCtCQUFvQztBQUNwQywyQkFBa0M7QUFFM0IsS0FBSyxVQUFVLFlBQVksQ0FBQyxPQUF5QjtJQUMxRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUM7SUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFPLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlGLElBQUEsaUJBQVksRUFBQyxRQUFRLEVBQUUsSUFBQSxjQUFPLEVBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNuQixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQzNDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLFFBQVEsQ0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUJ1aWxkVGFza09wdGlvbiB9IGZyb20gJ0Bjb2Nvcy9jcmVhdG9yLXR5cGVzL2VkaXRvci9wYWNrYWdlcy9idWlsZGVyL0B0eXBlcyc7XG5pbXBvcnQgeyByZXNvbHZlLCBzZXAgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGNvcHlGaWxlU3luYyB9IGZyb20gJ2ZzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uQWZ0ZXJCdWlsZChvcHRpb25zOiBJQnVpbGRUYXNrT3B0aW9uKSB7XG4gIGNvbnN0IHdhc21OYW1lID0gJ0JhbGFuY3kud2FzbSc7XG4gIGNvbnN0IGZpbGVuYW1lID0gcmVzb2x2ZShFZGl0b3IuUHJvamVjdC5wYXRoLCAnbm9kZV9tb2R1bGVzJywgJ0BiYWxhbmN5L3dhc20vZGlzdCcsIHdhc21OYW1lKTtcbiAgY29weUZpbGVTeW5jKGZpbGVuYW1lLCByZXNvbHZlKFxuICAgIEVkaXRvci5Qcm9qZWN0LnBhdGgsXG4gICAgb3B0aW9ucy5idWlsZFBhdGgucmVwbGFjZSgncHJvamVjdDovLycsICcnKSxcbiAgICBvcHRpb25zLm91dHB1dE5hbWUsXG4gICAgd2FzbU5hbWUsXG4gICkpO1xufVxuIl19
async function onAfterBuildAssets(options) {
console.log('onAfterBuildAssets', options);
}
async function onBeforeBuildFinish(options) {
console.log('onBeforeBuildFinish', options);
// @ts-ignore
// Editor['log']('Building ' + options.platform + ' to ' + options.dest);
//
// // Этот хук срабатывает при завершении процесса сборки, который включается при запуске режима Run
// const wasmName = 'Balancy.wasm';
// const wasmSource = resolve(Editor.Project.path, 'node_modules', '@balancy', 'wasm', 'dist', wasmName);
//
// console.log('wasmSource', wasmSource);
//
// // Папка, куда будет скопирован WASM
// const buildDest = join(options.dest, 'assets/'); // Указываем правильную папку для билда
//
// console.log('buildDest', buildDest);
//
// // Убедимся, что папка существует
// if (!existsSync(buildDest)) {
// mkdirSync(buildDest, { recursive: true });
// }
//
// // Копируем WASM файл
// copyFileSync(wasmSource, join(buildDest, wasmName));
}
function load() {
console.log('Editor', Editor);
// @ts-ignore
// Editor.Builder.on('before-change-files', onBeforeBuildFinish);
}
function unload() {
// @ts-ignore
// Editor.Builder.removeListener('before-change-files', onBeforeBuildFinish);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsb0NBU0M7QUFFRCxnREFFQztBQUVELGtEQXVCQztBQUVELG9CQUlDO0FBRUQsd0JBR0M7QUF0REQsK0JBQTBDO0FBQzFDLDJCQUF5RDtBQUU1QyxRQUFBLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFFeEIsS0FBSyxVQUFVLFlBQVksQ0FBQyxPQUF5QjtJQUMxRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUM7SUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFPLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BHLElBQUEsaUJBQVksRUFBQyxRQUFRLEVBQUUsSUFBQSxjQUFPLEVBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNuQixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQzNDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLFFBQVEsQ0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUFDLE9BQXlCO0lBQ2hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxPQUF5QjtJQUNqRSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLGFBQWE7SUFDYix5RUFBeUU7SUFDekUsRUFBRTtJQUNGLG9HQUFvRztJQUNwRyxtQ0FBbUM7SUFDbkMseUdBQXlHO0lBQ3pHLEVBQUU7SUFDRix5Q0FBeUM7SUFDekMsRUFBRTtJQUNGLHVDQUF1QztJQUN2QywyRkFBMkY7SUFDM0YsRUFBRTtJQUNGLHVDQUF1QztJQUN2QyxFQUFFO0lBQ0Ysb0NBQW9DO0lBQ3BDLGdDQUFnQztJQUNoQywrQ0FBK0M7SUFDL0MsSUFBSTtJQUNKLEVBQUU7SUFDRix3QkFBd0I7SUFDeEIsdURBQXVEO0FBQ3pELENBQUM7QUFFRCxTQUFnQixJQUFJO0lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLGFBQWE7SUFDYixpRUFBaUU7QUFDbkUsQ0FBQztBQUVELFNBQWdCLE1BQU07SUFDcEIsYUFBYTtJQUNiLDZFQUE2RTtBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUJ1aWxkVGFza09wdGlvbiB9IGZyb20gJ0Bjb2Nvcy9jcmVhdG9yLXR5cGVzL2VkaXRvci9wYWNrYWdlcy9idWlsZGVyL0B0eXBlcyc7XG5pbXBvcnQgeyByZXNvbHZlLCBzZXAsIGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGNvcHlGaWxlU3luYywgZXhpc3RzU3luYywgbWtkaXJTeW5jIH0gZnJvbSAnZnMnO1xuXG5leHBvcnQgY29uc3QgdGhyb3dFcnJvciA9IHRydWU7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvbkFmdGVyQnVpbGQob3B0aW9uczogSUJ1aWxkVGFza09wdGlvbikge1xuICBjb25zdCB3YXNtTmFtZSA9ICdCYWxhbmN5Lndhc20nO1xuICBjb25zdCBmaWxlbmFtZSA9IHJlc29sdmUoRWRpdG9yLlByb2plY3QucGF0aCwgJ25vZGVfbW9kdWxlcycsICdAYmFsYW5jeScsICd3YXNtJywgJ2Rpc3QnLCB3YXNtTmFtZSk7XG4gIGNvcHlGaWxlU3luYyhmaWxlbmFtZSwgcmVzb2x2ZShcbiAgICBFZGl0b3IuUHJvamVjdC5wYXRoLFxuICAgIG9wdGlvbnMuYnVpbGRQYXRoLnJlcGxhY2UoJ3Byb2plY3Q6Ly8nLCAnJyksXG4gICAgb3B0aW9ucy5vdXRwdXROYW1lLFxuICAgIHdhc21OYW1lLFxuICApKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uQWZ0ZXJCdWlsZEFzc2V0cyhvcHRpb25zOiBJQnVpbGRUYXNrT3B0aW9uKSB7XG4gIGNvbnNvbGUubG9nKCdvbkFmdGVyQnVpbGRBc3NldHMnLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uQmVmb3JlQnVpbGRGaW5pc2gob3B0aW9uczogSUJ1aWxkVGFza09wdGlvbikge1xuICBjb25zb2xlLmxvZygnb25CZWZvcmVCdWlsZEZpbmlzaCcsIG9wdGlvbnMpO1xuICAvLyBAdHMtaWdub3JlXG4gIC8vIEVkaXRvclsnbG9nJ10oJ0J1aWxkaW5nICcgKyBvcHRpb25zLnBsYXRmb3JtICsgJyB0byAnICsgb3B0aW9ucy5kZXN0KTtcbiAgLy9cbiAgLy8gLy8g0K3RgtC+0YIg0YXRg9C6INGB0YDQsNCx0LDRgtGL0LLQsNC10YIg0L/RgNC4INC30LDQstC10YDRiNC10L3QuNC4INC/0YDQvtGG0LXRgdGB0LAg0YHQsdC+0YDQutC4LCDQutC+0YLQvtGA0YvQuSDQstC60LvRjtGH0LDQtdGC0YHRjyDQv9GA0Lgg0LfQsNC/0YPRgdC60LUg0YDQtdC20LjQvNCwIFJ1blxuICAvLyBjb25zdCB3YXNtTmFtZSA9ICdCYWxhbmN5Lndhc20nO1xuICAvLyBjb25zdCB3YXNtU291cmNlID0gcmVzb2x2ZShFZGl0b3IuUHJvamVjdC5wYXRoLCAnbm9kZV9tb2R1bGVzJywgJ0BiYWxhbmN5JywgJ3dhc20nLCAnZGlzdCcsIHdhc21OYW1lKTtcbiAgLy9cbiAgLy8gY29uc29sZS5sb2coJ3dhc21Tb3VyY2UnLCB3YXNtU291cmNlKTtcbiAgLy9cbiAgLy8gLy8g0J/QsNC/0LrQsCwg0LrRg9C00LAg0LHRg9C00LXRgiDRgdC60L7Qv9C40YDQvtCy0LDQvSBXQVNNXG4gIC8vIGNvbnN0IGJ1aWxkRGVzdCA9IGpvaW4ob3B0aW9ucy5kZXN0LCAnYXNzZXRzLycpOyAvLyDQo9C60LDQt9GL0LLQsNC10Lwg0L/RgNCw0LLQuNC70YzQvdGD0Y4g0L/QsNC/0LrRgyDQtNC70Y8g0LHQuNC70LTQsFxuICAvL1xuICAvLyBjb25zb2xlLmxvZygnYnVpbGREZXN0JywgYnVpbGREZXN0KTtcbiAgLy9cbiAgLy8gLy8g0KPQsdC10LTQuNC80YHRjywg0YfRgtC+INC/0LDQv9C60LAg0YHRg9GJ0LXRgdGC0LLRg9C10YJcbiAgLy8gaWYgKCFleGlzdHNTeW5jKGJ1aWxkRGVzdCkpIHtcbiAgLy8gICBta2RpclN5bmMoYnVpbGREZXN0LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgLy8gfVxuICAvL1xuICAvLyAvLyDQmtC+0L/QuNGA0YPQtdC8IFdBU00g0YTQsNC50LtcbiAgLy8gY29weUZpbGVTeW5jKHdhc21Tb3VyY2UsIGpvaW4oYnVpbGREZXN0LCB3YXNtTmFtZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZCgpIHtcbiAgY29uc29sZS5sb2coJ0VkaXRvcicsIEVkaXRvcik7XG4gIC8vIEB0cy1pZ25vcmVcbiAgLy8gRWRpdG9yLkJ1aWxkZXIub24oJ2JlZm9yZS1jaGFuZ2UtZmlsZXMnLCBvbkJlZm9yZUJ1aWxkRmluaXNoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVubG9hZCgpIHtcbiAgLy8gQHRzLWlnbm9yZVxuICAvLyBFZGl0b3IuQnVpbGRlci5yZW1vdmVMaXN0ZW5lcignYmVmb3JlLWNoYW5nZS1maWxlcycsIG9uQmVmb3JlQnVpbGRGaW5pc2gpO1xufVxuXG4iXX0=

12

dist/main.js

@@ -20,6 +20,6 @@ "use strict";

*/
openPanel() {
openConfigPanel() {
console.log('open panel');
Editor.Panel.open(package_json_1.default.name);
},
}
};

@@ -30,3 +30,7 @@ /**

*/
function load() { }
function load() {
// console.log('Editor', Editor);
// @ts-ignore
// Editor.Builder.on('before-change-files', onBeforeBuildFinish);
}
/**

@@ -37,2 +41,2 @@ * @en Method triggered when uninstalling the extension

function unload() { }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXNCQSxvQkFBMEI7QUFNMUIsd0JBQTRCO0FBNUI1QixhQUFhO0FBQ2IsbUVBQTBDO0FBRTFDOzs7R0FHRztBQUNVLFFBQUEsT0FBTyxHQUE0QztJQUM1RDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDSixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsU0FBZ0IsSUFBSSxLQUFLLENBQUM7QUFFMUI7OztHQUdHO0FBQ0gsU0FBZ0IsTUFBTSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgcGFja2FnZUpTT04gZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCB7IHN5bWxpbmtTeW5jIH0gZnJvbSAnZnMnO1xuLyoqXG4gKiBAZW4gUmVnaXN0cmF0aW9uIG1ldGhvZCBmb3IgdGhlIG1haW4gcHJvY2VzcyBvZiBFeHRlbnNpb25cbiAqIEB6aCDkuLrmianlsZXnmoTkuLvov5vnqIvnmoTms6jlhozmlrnms5VcbiAqL1xuZXhwb3J0IGNvbnN0IG1ldGhvZHM6IHsgW2tleTogc3RyaW5nXTogKC4uLmFueTogYW55KSA9PiBhbnkgfSA9IHtcbiAgICAvKipcbiAgICAgKiBAZW4gQSBtZXRob2QgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IG1lc3NhZ2VcbiAgICAgKiBAemgg6YCa6L+HIG1lc3NhZ2Ug6Kem5Y+R55qE5pa55rOVXG4gICAgICovXG4gICAgb3BlblBhbmVsKCkge1xuICAgICAgY29uc29sZS5sb2coJ29wZW4gcGFuZWwnKTtcbiAgICAgICAgRWRpdG9yLlBhbmVsLm9wZW4ocGFja2FnZUpTT04ubmFtZSk7XG4gICAgfSxcbn07XG5cbi8qKlxuICogQGVuIE1ldGhvZCBUcmlnZ2VyZWQgb24gRXh0ZW5zaW9uIFN0YXJ0dXBcbiAqIEB6aCDmianlsZXlkK/liqjml7bop6blj5HnmoTmlrnms5VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWQoKSB7IH1cblxuLyoqXG4gKiBAZW4gTWV0aG9kIHRyaWdnZXJlZCB3aGVuIHVuaW5zdGFsbGluZyB0aGUgZXh0ZW5zaW9uXG4gKiBAemgg5Y246L295omp5bGV5pe26Kem5Y+R55qE5pa55rOVXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmxvYWQoKSB7IH1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXNCQSxvQkFJQztBQU1ELHdCQUE0QjtBQWhDNUIsYUFBYTtBQUNiLG1FQUEwQztBQUUxQzs7O0dBR0c7QUFDVSxRQUFBLE9BQU8sR0FBNEM7SUFDNUQ7OztPQUdHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0osQ0FBQztBQUVGOzs7R0FHRztBQUNILFNBQWdCLElBQUk7SUFDbEIsaUNBQWlDO0lBQ2pDLGFBQWE7SUFDYixpRUFBaUU7QUFDbkUsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLE1BQU0sS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHBhY2thZ2VKU09OIGZyb20gJy4uL3BhY2thZ2UuanNvbic7XG5pbXBvcnQgeyBzeW1saW5rU3luYyB9IGZyb20gJ2ZzJztcbi8qKlxuICogQGVuIFJlZ2lzdHJhdGlvbiBtZXRob2QgZm9yIHRoZSBtYWluIHByb2Nlc3Mgb2YgRXh0ZW5zaW9uXG4gKiBAemgg5Li65omp5bGV55qE5Li76L+b56iL55qE5rOo5YaM5pa55rOVXG4gKi9cbmV4cG9ydCBjb25zdCBtZXRob2RzOiB7IFtrZXk6IHN0cmluZ106ICguLi5hbnk6IGFueSkgPT4gYW55IH0gPSB7XG4gICAgLyoqXG4gICAgICogQGVuIEEgbWV0aG9kIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBieSBtZXNzYWdlXG4gICAgICogQHpoIOmAmui/hyBtZXNzYWdlIOinpuWPkeeahOaWueazlVxuICAgICAqL1xuICAgIG9wZW5Db25maWdQYW5lbCgpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdvcGVuIHBhbmVsJyk7XG4gICAgICAgIEVkaXRvci5QYW5lbC5vcGVuKHBhY2thZ2VKU09OLm5hbWUpO1xuICAgIH1cbn07XG5cbi8qKlxuICogQGVuIE1ldGhvZCBUcmlnZ2VyZWQgb24gRXh0ZW5zaW9uIFN0YXJ0dXBcbiAqIEB6aCDmianlsZXlkK/liqjml7bop6blj5HnmoTmlrnms5VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWQoKSB7XG4gIC8vIGNvbnNvbGUubG9nKCdFZGl0b3InLCBFZGl0b3IpO1xuICAvLyBAdHMtaWdub3JlXG4gIC8vIEVkaXRvci5CdWlsZGVyLm9uKCdiZWZvcmUtY2hhbmdlLWZpbGVzJywgb25CZWZvcmVCdWlsZEZpbmlzaCk7XG59XG5cbi8qKlxuICogQGVuIE1ldGhvZCB0cmlnZ2VyZWQgd2hlbiB1bmluc3RhbGxpbmcgdGhlIGV4dGVuc2lvblxuICogQHpoIOWNuOi9veaJqeWxleaXtuinpuWPkeeahOaWueazlVxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5sb2FkKCkgeyB9XG4iXX0=
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -6,2 +29,3 @@ const fs_extra_1 = require("fs-extra");

const child_process_1 = require("child_process");
const fs = __importStar(require("fs"));
async function balancy(command, flags = {}) {

@@ -15,7 +39,7 @@ flags['format'] = 'json';

const executionCommand = `npm run --silent balancy -- ${command} ${f}`;
console.log('executionCommand', executionCommand);
console.log('>executionCommand', executionCommand);
return new Promise((resolve, reject) => {
(0, child_process_1.exec)(executionCommand, { cwd }, (error, stdout, stderr) => {
let out = {};
let err = {};
let err = null;
try {

@@ -33,2 +57,10 @@ out = JSON.parse(stdout.split('\n').pop());

}
const state = {
gamesLoading: false,
loadedGames: [], // Define the structure if needed
branchesLoading: false,
branchesLoaded: false,
loadedBranches: [], // Define the structure if needed
selectedBranch: null,
};
module.exports = Editor.Panel.define({

@@ -42,94 +74,326 @@ listeners: {

$: {
app: '#app',
login: '#login'
form: '#auth-form',
email: '#email',
password: '#password',
authErrorMessage: '#auth-error-message',
userInfo: '#user-info',
userEmail: '#user-email',
logoutButton: '#logout-button',
gameSelect: '#game-select',
reloadButton: '#reload-button',
branchSelect: '#branch-select',
actionButtons: '#action-buttons',
generateCodeButton: '#generate-code-button',
downloadDataButton: '#download-data-button',
mainContent: '#main-content',
},
methods: {
loading() {
if (this.$.app) {
this.$.app.innerHTML = 'Loading';
updateButtonVisibility() {
if (this.$.actionButtons) {
this.$.actionButtons.style.display = state.selectedBranch ? 'block' : 'none';
}
},
async game(game) {
var _a, _b;
if (this.$.app) {
const { err, out } = await balancy('list');
this.$.app.innerHTML = ((_b = (_a = out.list) === null || _a === void 0 ? void 0 : _a.find(({ id }) => id === game)) === null || _b === void 0 ? void 0 : _b.name) || 'Smth wrong';
getStatusConfig() {
const filePath = (0, path_1.join)(Editor.Project.path, '.balancy_cache/user.info');
try {
const fileContent = (0, fs_extra_1.readFileSync)(filePath, 'utf-8');
const userInfo = JSON.parse(fileContent);
return userInfo;
}
catch (error) {
return null;
}
},
loginForm() {
const form = document.createElement('form');
form.innerHTML = `
email: <input type="email" name="email" /><br/>
password: <input type="password" name="password" /><br/>
<input type="submit" value="go" />
`;
form.onsubmit = async (e) => {
e.preventDefault();
const formData = new FormData(this.$.app.getElementsByTagName('form').item(0));
const { email, password } = Object.fromEntries(formData);
const { out, err } = await balancy('login', { email: email.toString(), password: password.toString() });
if (err && err.code === 403) {
const answer = document.createElement('div');
answer.innerHTML = err.title;
form.prepend(answer);
updateState() {
let status = this.getStatusConfig();
if (status) {
// Show the user info section and hide the login form
if (this.$.form)
this.$.form.style.display = 'none';
if (this.$.mainContent) {
this.$.mainContent.style.display = 'flex';
if (this.$.userEmail)
this.$.userEmail.innerText = status.email;
if (this.$.logoutButton) {
this.$.logoutButton.addEventListener('click', () => this.logout());
}
}
else if (out) {
console.log('stdout', out);
this.list().then();
const gameSelect = this.$.gameSelect;
gameSelect.innerHTML = '<option value="">Select a game</option>';
if (state.loadedGames.length > 0) {
const selectedGameId = status.selectedGameId;
state.loadedGames.forEach(game => {
const option = document.createElement('option');
option.value = game.id;
option.textContent = game.name;
if (game.id === selectedGameId)
option.selected = true;
gameSelect.appendChild(option);
});
const branchSelect = this.$.branchSelect;
branchSelect.innerHTML = '<option value="">Select a branch</option>';
state.selectedBranch = null;
if (state.loadedBranches.length > 0) {
const selectedBranchId = status.selectedBranches[selectedGameId];
state.loadedBranches.forEach(branch => {
const option = document.createElement('option');
option.value = branch.id;
option.textContent = branch.name;
if (branch.id == selectedBranchId) {
option.selected = true;
state.selectedBranch = branch.id;
}
branchSelect.appendChild(option);
});
}
else {
// Load the list of games if it hasn't been loaded yet
if (!state.branchesLoaded && !state.branchesLoading) {
this.loadListOfBranches();
}
}
}
};
this.$.app.innerHTML = '';
this.$.app.appendChild(form);
else {
// Load the list of games if it hasn't been loaded yet
if (!state.gamesLoading)
this.loadListOfGames();
}
}
else {
// Show the login form and hide the user info section
if (this.$.form)
this.$.form.style.display = 'block';
if (this.$.mainContent)
this.$.mainContent.style.display = 'none';
}
this.updateButtonVisibility();
},
async generate(game) {
this.loading();
const { err, out } = await balancy('generate', { game, path: (0, path_1.resolve)(Editor.Project.path, 'balancy') });
logout() {
const filePath = (0, path_1.join)(Editor.Project.path, '.balancy_cache/user.info');
try {
fs.unlinkSync(filePath);
this.updateState(); // Refresh the UI after logout
}
catch (error) {
console.error('Error logging out:', error);
}
},
async auth(email, password, path) {
//I forgot what code was here, please add it back
const { out, err } = await balancy('config-login', { email, password, path });
if (err) {
console.error(err);
this.setAuthError(err.message);
}
else {
this.game(game).then();
this.updateState();
}
},
async list() {
var _a;
const { err, out } = await balancy('list');
if (err && err.code === 403) {
this.loginForm();
setAuthError(message) {
const errorMessageElement = this.$.authErrorMessage;
if (errorMessageElement) {
errorMessageElement.innerHTML = message;
}
else if (out) {
const form = document.createElement('form');
const list = document.createElement('select');
list.name = 'id';
(_a = out.list) === null || _a === void 0 ? void 0 : _a.forEach(({ id, name }) => {
const option = document.createElement('option');
option.text = name;
option.value = id;
list.appendChild(option);
});
this.$.app.innerHTML = '';
form.appendChild(list);
const submit = document.createElement('input');
submit.type = 'submit';
submit.value = 'Generate';
form.appendChild(submit);
this.$.app.appendChild(form);
form.onsubmit = async (e) => {
e.preventDefault();
const formData = new FormData(form);
const { id } = Object.fromEntries(formData);
this.generate(id.toString()).then();
};
else {
console.error('Error message element not found');
}
},
submitForm() {
const emailElement = this.$.email;
const passwordElement = this.$.password;
this.setAuthError('');
if (emailElement && passwordElement) {
const email = emailElement.value;
const password = passwordElement.value;
console.error('go auth ', email, password);
if (email && password) {
let path = Editor.Project.path;
this.auth(email, password, path).then((result) => {
this.updateState();
});
}
else
this.setAuthError('Please enter email and password');
}
else {
console.error('Email or password element not found');
}
},
loadListOfGames() {
let path = Editor.Project.path;
state.gamesLoading = true;
state.branchesLoaded = false;
state.loadedBranches = [];
balancy('config-list-games', { path: path }).then((result) => {
var _a;
state.gamesLoading = false;
state.loadedGames = ((_a = result.out) === null || _a === void 0 ? void 0 : _a.list) || [];
this.updateState();
});
},
loadListOfBranches() {
let path = Editor.Project.path;
state.branchesLoading = true;
state.branchesLoaded = false;
balancy('config-list-branches', { path: path }).then((result) => {
var _a;
state.branchesLoading = false;
state.branchesLoaded = true;
state.loadedBranches = ((_a = result.out) === null || _a === void 0 ? void 0 : _a.list) || [];
this.updateState();
});
}
},
ready() {
if (this.$.app) {
this.$.app.innerHTML = 'Loading';
if (this.$.form) {
this.$.form.addEventListener('submit', (event) => {
event.preventDefault();
this.submitForm();
});
}
this.list().then();
if (this.$.reloadButton) {
this.$.reloadButton.addEventListener('click', () => this.loadListOfGames());
}
const gameSelect = this.$.gameSelect;
gameSelect.addEventListener('change', (event) => {
const game = event.target.value;
balancy('config-select-game', { game, path: Editor.Project.path }).then((result) => {
this.loadListOfBranches();
this.updateState();
});
});
const branchSelect = this.$.branchSelect;
branchSelect.addEventListener('change', (event) => {
const branch = event.target.value;
balancy('config-select-branch', { branch, path: Editor.Project.path }).then((result) => {
this.updateState();
});
});
if (this.$.generateCodeButton) {
this.$.generateCodeButton.addEventListener('click', () => {
if (state.selectedBranch) {
console.log("Generate Code clicked with branch:", state.selectedBranch);
balancy('config-generate', { path: Editor.Project.path }).then((result) => {
console.log('Generate Code result:', result);
});
}
});
}
// Set up Download Data button click handler
if (this.$.downloadDataButton) {
this.$.downloadDataButton.addEventListener('click', () => {
if (state.selectedBranch) {
console.log("Download Data clicked with branch:", state.selectedBranch);
balancy('config-download', { path: Editor.Project.path }).then((result) => {
console.log('Data download result:', result);
});
}
});
}
this.updateState();
},
beforeClose() { },
beforeClose() {
balancy('config-close');
},
close() { },
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFuZWxzL2RlZmF1bHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBd0M7QUFDeEMsK0JBQXFDO0FBQ3JDLGlEQUFxQztBQUVyQyxLQUFLLFVBQVUsT0FBTyxDQUFDLE9BQXNDLEVBQUUsUUFBZ0MsRUFBRTtJQUM3RixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDN0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUMsRUFBRSxFQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFN0IsTUFBTSxnQkFBZ0IsR0FBRywrQkFBK0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXZFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUVsRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ25DLElBQUEsb0JBQUksRUFBQyxnQkFBZ0IsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNwRCxJQUFJLEdBQUcsR0FBRSxFQUFFLENBQUM7WUFDWixJQUFJLEdBQUcsR0FBd0IsRUFBRSxDQUFDO1lBQ2xDLElBQUks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Q0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssRUFBRSxDQUFjLEVBQUUsRUFBRTtvQkFDckMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNuQixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQTtZQUNMLENBQUM7UUFDTCxDQUFDO0tBQ0o7SUFDRCxLQUFLO1FBRUQsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxXQUFXLEtBQUssQ0FBQztJQUNqQixLQUFLLEtBQUssQ0FBQztDQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGpvaW4sIHJlc29sdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuYXN5bmMgZnVuY3Rpb24gYmFsYW5jeShjb21tYW5kOiAnbG9naW4nIHwgJ2xpc3QnIHwgJ2dlbmVyYXRlJywgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSk6IFByb21pc2U8e291dDoge3RpdGxlPzogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBsaXN0Pzoge2lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZ31bXX0sIGVycjogUmVjb3JkPHN0cmluZywgYW55Pn0+IHtcbiAgICBmbGFnc1snZm9ybWF0J10gPSAnanNvbic7XG4gICAgY29uc3QgY3dkID0gRWRpdG9yLlBhY2thZ2UuZ2V0UGF0aCgnQGJhbGFuY3kvY29jb3MtY3JlYXRvcicpO1xuICAgIGNvbnN0IGYgPSBPYmplY3Qua2V5cyhmbGFncykucmVkdWNlKChvdXRwdXQsIGtleSkgPT4ge1xuICAgICAgICBvdXRwdXQucHVzaChgLS0ke2tleX0gJHtmbGFnc1trZXldfWApO1xuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH0sIFtdIGFzIHN0cmluZ1tdKS5qb2luKCcgJyk7XG5cbiAgICBjb25zdCBleGVjdXRpb25Db21tYW5kID0gYG5wbSBydW4gLS1zaWxlbnQgYmFsYW5jeSAtLSAke2NvbW1hbmR9ICR7Zn1gO1xuXG4gICAgY29uc29sZS5sb2coJ2V4ZWN1dGlvbkNvbW1hbmQnLCBleGVjdXRpb25Db21tYW5kKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGV4ZWMoZXhlY3V0aW9uQ29tbWFuZCwge2N3ZH0sIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgICAgIGxldCBvdXQ9IHt9O1xuICAgICAgICAgICAgbGV0IGVycjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXQgPSBKU09OLnBhcnNlKHN0ZG91dC5zcGxpdCgnXFxuJykucG9wKCkhKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZXJyID0gSlNPTi5wYXJzZShzdGRlcnIuc3BsaXQoJ1xcbicpLnBvcCgpISk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgICAgICByZXNvbHZlKHsgb3V0LCBlcnIgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzID0gRWRpdG9yLlBhbmVsLmRlZmluZSh7XG4gICAgbGlzdGVuZXJzOiB7XG4gICAgICAgIHNob3coKSB7IGNvbnNvbGUubG9nKCdzaG93Jyk7IH0sXG4gICAgICAgIGhpZGUoKSB7IGNvbnNvbGUubG9nKCdoaWRlJyk7IH0sXG4gICAgfSxcbiAgICB0ZW1wbGF0ZTogcmVhZEZpbGVTeW5jKGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vc3RhdGljL3RlbXBsYXRlL2RlZmF1bHQvaW5kZXguaHRtbCcpLCAndXRmLTgnKSxcbiAgICBzdHlsZTogcmVhZEZpbGVTeW5jKGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vc3RhdGljL3N0eWxlL2RlZmF1bHQvaW5kZXguY3NzJyksICd1dGYtOCcpLFxuICAgICQ6IHtcbiAgICAgICAgYXBwOiAnI2FwcCcsXG4gICAgICAgIGxvZ2luOiAnI2xvZ2luJ1xuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgICBsb2FkaW5nKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuJC5hcHApIHtcbiAgICAgICAgICAgICAgICB0aGlzLiQuYXBwLmlubmVySFRNTCA9ICdMb2FkaW5nJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZ2FtZShnYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLiQuYXBwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2Vyciwgb3V0fSA9IGF3YWl0IGJhbGFuY3koJ2xpc3QnKTtcbiAgICAgICAgICAgICAgICB0aGlzLiQuYXBwLmlubmVySFRNTCA9IG91dC5saXN0Py5maW5kKCh7IGlkfSkgPT4gaWQgPT09IGdhbWUpPy5uYW1lIHx8ICdTbXRoIHdyb25nJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9naW5Gb3JtKCkge1xuXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICAgICAgICAgICAgZm9ybS5pbm5lckhUTUwgPSBgXG4gICAgICAgICAgICAgICAgZW1haWw6IDxpbnB1dCB0eXBlPVwiZW1haWxcIiBuYW1lPVwiZW1haWxcIiAvPjxici8+XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBuYW1lPVwicGFzc3dvcmRcIiAvPjxici8+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cImdvXCIgLz5cbiAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgIGZvcm0ub25zdWJtaXQgPSBhc3luYyAoZTogU3VibWl0RXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEodGhpcy4kLmFwcCEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKS5pdGVtKDApISk7XG4gICAgICAgICAgICAgICAgY29uc3Qge2VtYWlsLCBwYXNzd29yZH0gPSBPYmplY3QuZnJvbUVudHJpZXMoZm9ybURhdGEpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qge291dCwgZXJyIH0gPSBhd2FpdCBiYWxhbmN5KCdsb2dpbicsIHtlbWFpbDogZW1haWwudG9TdHJpbmcoKSwgcGFzc3dvcmQ6IHBhc3N3b3JkLnRvU3RyaW5nKCl9KTtcbiAgICAgICAgICAgICAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSA0MDMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5zd2VyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICAgICAgICAgIGFuc3dlci5pbm5lckhUTUwgPSBlcnIudGl0bGU7XG4gICAgICAgICAgICAgICAgICAgIGZvcm0ucHJlcGVuZChhbnN3ZXIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdGRvdXQnLCBvdXQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3QoKS50aGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy4kLmFwcCEuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICB0aGlzLiQuYXBwIS5hcHBlbmRDaGlsZChmb3JtKTtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZ2VuZXJhdGUoZ2FtZTogc3RyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcoKTtcbiAgICAgICAgICAgIGNvbnN0IHtlcnIsIG91dH0gPSBhd2FpdCBiYWxhbmN5KCdnZW5lcmF0ZScsIHsgZ2FtZSwgcGF0aDogcmVzb2x2ZShFZGl0b3IuUHJvamVjdC5wYXRoLCAnYmFsYW5jeScpIH0pO1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nYW1lKGdhbWUpLnRoZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgbGlzdCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHtlcnIsIG91dH0gPSBhd2FpdCBiYWxhbmN5KCdsaXN0Jyk7XG4gICAgICAgICAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSA0MDMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRm9ybSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvdXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTtcbiAgICAgICAgICAgICAgICBsaXN0Lm5hbWUgPSAnaWQnO1xuICAgICAgICAgICAgICAgIG91dC5saXN0Py5mb3JFYWNoKCh7aWQsIG5hbWV9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgb3B0aW9uLnRleHQgPSBuYW1lO1xuICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IGlkO1xuICAgICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLiQuYXBwIS5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGxpc3QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1Ym1pdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAgICAgc3VibWl0LnR5cGUgPSAnc3VibWl0JztcbiAgICAgICAgICAgICAgICBzdWJtaXQudmFsdWUgPSAnR2VuZXJhdGUnO1xuICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQoc3VibWl0KTtcbiAgICAgICAgICAgICAgICB0aGlzLiQuYXBwIS5hcHBlbmRDaGlsZChmb3JtKTtcbiAgICAgICAgICAgICAgICBmb3JtLm9uc3VibWl0ID0gYXN5bmMgKGU6IFN1Ym1pdEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgaWQgfSA9IE9iamVjdC5mcm9tRW50cmllcyhmb3JtRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGUoaWQudG9TdHJpbmcoKSkudGhlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgcmVhZHkoKSB7XG5cbiAgICAgICAgaWYgKHRoaXMuJC5hcHApIHtcbiAgICAgICAgICAgIHRoaXMuJC5hcHAuaW5uZXJIVE1MID0gJ0xvYWRpbmcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saXN0KCkudGhlbigpO1xuICAgIH0sXG4gICAgYmVmb3JlQ2xvc2UoKSB7IH0sXG4gICAgY2xvc2UoKSB7IH0sXG59KTtcbiJdfQ==
// module.exports = Editor.Panel.define({
// listeners: {
// show() { console.log('show'); },
// hide() { console.log('hide'); },
// },
// template: readFileSync(join(__dirname, '../../../static/template/default/index.html'), 'utf-8'),
// style: readFileSync(join(__dirname, '../../../static/style/default/index.css'), 'utf-8'),
// $: {
// app: '#app',
// login: '#login'
// },
// methods: {
// loading() {
// if (this.$.app) {
// this.$.app.innerHTML = 'Loading';
// }
// },
// async game(game: string) {
// if (this.$.app) {
// const {err, out} = await balancy('list');
// this.$.app.innerHTML = out.list?.find(({ id}) => id === game)?.name || 'Smth wrong';
// }
// },
// loginForm() {
//
// const form = document.createElement('form');
// form.innerHTML = `
// email: <input type="email" name="email" /><br/>
// password: <input type="password" name="password" /><br/>
// <input type="submit" value="go" />
// `;
//
// form.onsubmit = async (e: SubmitEvent) => {
// e.preventDefault();
// const formData = new FormData(this.$.app!.getElementsByTagName('form').item(0)!);
// const {email, password} = Object.fromEntries(formData);
//
// const {out, err } = await balancy('login', {email: email.toString(), password: password.toString()});
// if (err && err.code === 403) {
// const answer = document.createElement('div');
// answer.innerHTML = err.title;
// form.prepend(answer);
// } else if (out) {
// console.log('stdout', out);
// this.list().then();
// }
// }
// this.$.app!.innerHTML = '';
// this.$.app!.appendChild(form);
// },
// async generate(game: string) {
// this.loading();
// const {err, out} = await balancy('generate', { game, path: resolve(Editor.Project.path, 'assets/balancy') });
// if (err) {
// console.error(err);
// } else {
// this.game(game).then();
// }
// },
// async list() {
// const {err, out} = await balancy('list');
// if (err && err.code === 403) {
// this.loginForm();
// } else if (out) {
// const form = document.createElement('form');
// const list = document.createElement('select');
// list.name = 'id';
// out.list?.forEach(({id, name}) => {
// const option = document.createElement('option');
// option.text = name;
// option.value = id;
// list.appendChild(option);
// });
// this.$.app!.innerHTML = '';
// form.appendChild(list);
// const submit = document.createElement('input');
// submit.type = 'submit';
// submit.value = 'Generate';
// form.appendChild(submit);
// this.$.app!.appendChild(form);
// form.onsubmit = async (e: SubmitEvent) => {
// e.preventDefault();
// const formData = new FormData(form);
// const { id } = Object.fromEntries(formData);
// this.generate(id.toString()).then();
// }
// }
// }
// },
// ready() {
//
// if (this.$.app) {
// this.$.app.innerHTML = 'Loading';
// }
//
// this.list().then();
// },
// beforeClose() { },
// close() { },
// });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFuZWxzL2RlZmF1bHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF3QztBQUN4QywrQkFBcUM7QUFDckMsaURBQXFDO0FBQ3JDLHVDQUF5QjtBQUV6QixLQUFLLFVBQVUsT0FBTyxDQUFDLE9BQWlNLEVBQUUsUUFBZ0MsRUFBRTtJQUN4UCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDN0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUMsRUFBRSxFQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFN0IsTUFBTSxnQkFBZ0IsR0FBRywrQkFBK0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXZFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUVuRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ25DLElBQUEsb0JBQUksRUFBQyxnQkFBZ0IsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUVwRCxJQUFJLEdBQUcsR0FBRSxFQUFFLENBQUM7WUFDWixJ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QkFBb0I7QUFDcEIsZ0JBQWdCO0FBQ2hCLFlBQVk7QUFDWixTQUFTO0FBQ1QsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRiw0QkFBNEI7QUFDNUIsZ0RBQWdEO0FBQ2hELFlBQVk7QUFDWixFQUFFO0FBQ0YsOEJBQThCO0FBQzlCLFNBQVM7QUFDVCx5QkFBeUI7QUFDekIsbUJBQW1CO0FBQ25CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBqb2luLCByZXNvbHZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5cbmFzeW5jIGZ1bmN0aW9uIGJhbGFuY3koY29tbWFuZDogJ2NvbmZpZy1sYXVuY2gnIHwgJ2NvbmZpZy1jbG9zZScgfCAnY29uZmlnLWxvZ2luJyB8ICdjb25maWctbGlzdC1nYW1lcycgfCAnY29uZmlnLWxpc3QtYnJhbmNoZXMnIHwgJ2NvbmZpZy1nZW5lcmF0ZScgfCAnY29uZmlnLWRvd25sb2FkJyB8ICdjb25maWctc2VsZWN0LWdhbWUnIHwgJ2NvbmZpZy1zZWxlY3QtYnJhbmNoJywgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSk6IFByb21pc2U8e291dDoge3RpdGxlPzogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBsaXN0Pzoge2lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZ31bXX0sIGVycjogbnVsbCB8IFJlY29yZDxzdHJpbmcsIGFueT59PiB7XG4gICAgZmxhZ3NbJ2Zvcm1hdCddID0gJ2pzb24nO1xuICAgIGNvbnN0IGN3ZCA9IEVkaXRvci5QYWNrYWdlLmdldFBhdGgoJ0BiYWxhbmN5L2NvY29zLWNyZWF0b3InKTtcbiAgICBjb25zdCBmID0gT2JqZWN0LmtleXMoZmxhZ3MpLnJlZHVjZSgob3V0cHV0LCBrZXkpID0+IHtcbiAgICAgICAgb3V0cHV0LnB1c2goYC0tJHtrZXl9ICR7ZmxhZ3Nba2V5XX1gKTtcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9LCBbXSBhcyBzdHJpbmdbXSkuam9pbignICcpO1xuXG4gICAgY29uc3QgZXhlY3V0aW9uQ29tbWFuZCA9IGBucG0gcnVuIC0tc2lsZW50IGJhbGFuY3kgLS0gJHtjb21tYW5kfSAke2Z9YDtcblxuICAgIGNvbnNvbGUubG9nKCc+ZXhlY3V0aW9uQ29tbWFuZCcsIGV4ZWN1dGlvbkNvbW1hbmQpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZXhlYyhleGVjdXRpb25Db21tYW5kLCB7Y3dkfSwgKGVycm9yLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuXG4gICAgICAgICAgICBsZXQgb3V0PSB7fTtcbiAgICAgICAgICAgIGxldCBlcnI6IG51bGwgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gbnVsbDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgb3V0ID0gSlNPTi5wYXJzZShzdGRvdXQuc3BsaXQoJ1xcbicpLnBvcCgpISk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGVyciA9IEpTT04ucGFyc2Uoc3RkZXJyLnNwbGl0KCdcXG4nKS5wb3AoKSEpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cblxuICAgICAgICAgICAgcmVzb2x2ZSh7IG91dCwgZXJyIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuY29uc3Qgc3RhdGUgPSB7XG4gICAgZ2FtZXNMb2FkaW5nOiBmYWxzZSxcbiAgICBsb2FkZWRHYW1lczogW10gYXMgeyBpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfVtdLCAvLyBEZWZpbmUgdGhlIHN0cnVjdHVyZSBpZiBuZWVkZWRcbiAgICBicmFuY2hlc0xvYWRpbmc6IGZhbHNlLFxuICAgIGJyYW5jaGVzTG9hZGVkOiBmYWxzZSxcbiAgICBsb2FkZWRCcmFuY2hlczogW10gYXMgeyBpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfVtdLCAvLyBEZWZpbmUgdGhlIHN0cnVjdHVyZSBpZiBuZWVkZWRcbiAgICBzZWxlY3RlZEJyYW5jaDogbnVsbCBhcyBzdHJpbmcgfCBudWxsLFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFZGl0b3IuUGFuZWwuZGVmaW5lKHtcbiAgICBsaXN0ZW5lcnM6IHtcbiAgICAgICAgc2hvdygpIHsgY29uc29sZS5sb2coJ3Nob3cnKTsgfSxcbiAgICAgICAgaGlkZSgpIHsgY29uc29sZS5sb2coJ2hpZGUnKTsgfSxcbiAgICB9LFxuICAgIHRlbXBsYXRlOiByZWFkRmlsZVN5bmMoam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi9zdGF0aWMvdGVtcGxhdGUvZGVmYXVsdC9pbmRleC5odG1sJyksICd1dGYtOCcpLFxuICAgIHN0eWxlOiByZWFkRmlsZVN5bmMoam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi9zdGF0aWMvc3R5bGUvZGVmYXVsdC9pbmRleC5jc3MnKSwgJ3V0Zi04JyksXG4gICAgJDoge1xuICAgICAgICBmb3JtOiAnI2F1dGgtZm9ybScsXG4gICAgICAgIGVtYWlsOiAnI2VtYWlsJyxcbiAgICAgICAgcGFzc3dvcmQ6ICcjcGFzc3dvcmQnLFxuICAgICAgICBhdXRoRXJyb3JNZXNzYWdlOiAnI2F1dGgtZXJyb3ItbWVzc2FnZScsXG4gICAgICAgIHVzZXJJbmZvOiAnI3VzZXItaW5mbycsXG4gICAgICAgIHVzZXJFbWFpbDogJyN1c2VyLWVtYWlsJyxcbiAgICAgICAgbG9nb3V0QnV0dG9uOiAnI2xvZ291dC1idXR0b24nLFxuICAgICAgICBnYW1lU2VsZWN0OiAnI2dhbWUtc2VsZWN0JyxcbiAgICAgICAgcmVsb2FkQnV0dG9uOiAnI3JlbG9hZC1idXR0b24nLFxuICAgICAgICBicmFuY2hTZWxlY3Q6ICcjYnJhbmNoLXNlbGVjdCcsXG4gICAgICAgIGFjdGlvbkJ1dHRvbnM6ICcjYWN0aW9uLWJ1dHRvbnMnLFxuICAgICAgICBnZW5lcmF0ZUNvZGVCdXR0b246ICcjZ2VuZXJhdGUtY29kZS1idXR0b24nLFxuICAgICAgICBkb3dubG9hZERhdGFCdXR0b246ICcjZG93bmxvYWQtZGF0YS1idXR0b24nLFxuICAgICAgICBtYWluQ29udGVudDogJyNtYWluLWNvbnRlbnQnLFxuICAgIH0sXG5cbiAgICBtZXRob2RzOiB7XG4gICAgICAgIHVwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy4kLmFjdGlvbkJ1dHRvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiQuYWN0aW9uQnV0dG9ucy5zdHlsZS5kaXNwbGF5ID0gc3RhdGUuc2VsZWN0ZWRCcmFuY2ggPyAnYmxvY2snIDogJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRTdGF0dXNDb25maWcoKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4oRWRpdG9yLlByb2plY3QucGF0aCwgJy5iYWxhbmN5X2NhY2hlL3VzZXIuaW5mbycpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlQ29udGVudCA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKGZpbGVDb250ZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdXNlckluZm87XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVTdGF0ZSgpIHtcbiAgICAgICAgICAgIGxldCBzdGF0dXMgPSB0aGlzLmdldFN0YXR1c0NvbmZpZygpO1xuXG4gICAgICAgICAgICBpZiAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgLy8gU2hvdyB0aGUgdXNlciBpbmZvIHNlY3Rpb24gYW5kIGhpZGUgdGhlIGxvZ2luIGZvcm1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy4kLmZvcm0pIHRoaXMuJC5mb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuJC5tYWluQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiQubWFpbkNvbnRlbnQuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuJC51c2VyRW1haWwpIHRoaXMuJC51c2VyRW1haWwuaW5uZXJUZXh0ID0gc3RhdHVzLmVtYWlsO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4kLmxvZ291dEJ1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kLmxvZ291dEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMubG9nb3V0KCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZ2FtZVNlbGVjdCA9IHRoaXMuJC5nYW1lU2VsZWN0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgICAgICAgICAgICAgIGdhbWVTZWxlY3QuaW5uZXJIVE1MID0gJzxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgYSBnYW1lPC9vcHRpb24+JztcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUubG9hZGVkR2FtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEdhbWVJZCA9IHN0YXR1cy5zZWxlY3RlZEdhbWVJZDtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUubG9hZGVkR2FtZXMuZm9yRWFjaChnYW1lID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0gZ2FtZS5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi50ZXh0Q29udGVudCA9IGdhbWUubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnYW1lLmlkID09PSBzZWxlY3RlZEdhbWVJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2FtZVNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBicmFuY2hTZWxlY3QgPSB0aGlzLiQuYnJhbmNoU2VsZWN0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBicmFuY2hTZWxlY3QuaW5uZXJIVE1MID0gJzxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgYSBicmFuY2g8L29wdGlvbj4nO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zZWxlY3RlZEJyYW5jaCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5sb2FkZWRCcmFuY2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJyYW5jaElkID0gc3RhdHVzLnNlbGVjdGVkQnJhbmNoZXNbc2VsZWN0ZWRHYW1lSWRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUubG9hZGVkQnJhbmNoZXMuZm9yRWFjaChicmFuY2ggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IGJyYW5jaC5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24udGV4dENvbnRlbnQgPSBicmFuY2gubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnJhbmNoLmlkID09IHNlbGVjdGVkQnJhbmNoSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2VsZWN0ZWRCcmFuY2ggPSBicmFuY2guaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaFNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBMb2FkIHRoZSBsaXN0IG9mIGdhbWVzIGlmIGl0IGhhc24ndCBiZWVuIGxvYWRlZCB5ZXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RhdGUuYnJhbmNoZXNMb2FkZWQgJiYgIXN0YXRlLmJyYW5jaGVzTG9hZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZExpc3RPZkJyYW5jaGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBMb2FkIHRoZSBsaXN0IG9mIGdhbWVzIGlmIGl0IGhhc24ndCBiZWVuIGxvYWRlZCB5ZXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGF0ZS5nYW1lc0xvYWRpbmcpIHRoaXMubG9hZExpc3RPZkdhbWVzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBTaG93IHRoZSBsb2dpbiBmb3JtIGFuZCBoaWRlIHRoZSB1c2VyIGluZm8gc2VjdGlvblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLiQuZm9ybSkgdGhpcy4kLmZvcm0uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuJC5tYWluQ29udGVudCkgdGhpcy4kLm1haW5Db250ZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGxvZ291dCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbihFZGl0b3IuUHJvamVjdC5wYXRoLCAnLmJhbGFuY3lfY2FjaGUvdXNlci5pbmZvJyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZzLnVubGlua1N5bmMoZmlsZVBhdGgpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoKTsgLy8gUmVmcmVzaCB0aGUgVUkgYWZ0ZXIgbG9nb3V0XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvZ2dpbmcgb3V0OicsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgYXV0aCAoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgICAgICAvL0kgZm9yZ290IHdoYXQgY29kZSB3YXMgaGVyZSwgcGxlYXNlIGFkZCBpdCBiYWNrXG4gICAgICAgICAgICBjb25zdCB7b3V0LCBlcnJ9ID0gYXdhaXQgYmFsYW5jeSgnY29uZmlnLWxvZ2luJywge2VtYWlsLCBwYXNzd29yZCwgcGF0aH0pO1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0QXV0aEVycm9yKGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTdGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZXRBdXRoRXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VFbGVtZW50ID0gdGhpcy4kLmF1dGhFcnJvck1lc3NhZ2UgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgICAgaWYgKGVycm9yTWVzc2FnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2VFbGVtZW50LmlubmVySFRNTCA9IG1lc3NhZ2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG1lc3NhZ2UgZWxlbWVudCBub3QgZm91bmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc3VibWl0Rm9ybSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVtYWlsRWxlbWVudCA9IHRoaXMuJC5lbWFpbCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHBhc3N3b3JkRWxlbWVudCA9IHRoaXMuJC5wYXNzd29yZCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcblxuICAgICAgICAgICAgdGhpcy5zZXRBdXRoRXJyb3IoJycpO1xuICAgICAgICAgICAgaWYgKGVtYWlsRWxlbWVudCAmJiBwYXNzd29yZEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbWFpbCA9IGVtYWlsRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXNzd29yZCA9IHBhc3N3b3JkRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdnbyBhdXRoICcsIGVtYWlsLCBwYXNzd29yZCk7XG4gICAgICAgICAgICAgICAgaWYgKGVtYWlsICYmIHBhc3N3b3JkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXRoID0gRWRpdG9yLlByb2plY3QucGF0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoKGVtYWlsLCBwYXNzd29yZCwgcGF0aCkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEF1dGhFcnJvcignUGxlYXNlIGVudGVyIGVtYWlsIGFuZCBwYXNzd29yZCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFbWFpbCBvciBwYXNzd29yZCBlbGVtZW50IG5vdCBmb3VuZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb2FkTGlzdE9mR2FtZXMoKSB7XG4gICAgICAgICAgICBsZXQgcGF0aCA9IEVkaXRvci5Qcm9qZWN0LnBhdGg7XG4gICAgICAgICAgICBzdGF0ZS5nYW1lc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUuYnJhbmNoZXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHN0YXRlLmxvYWRlZEJyYW5jaGVzID0gW107XG4gICAgICAgICAgICBiYWxhbmN5KCdjb25maWctbGlzdC1nYW1lcycsIHtwYXRoOiBwYXRofSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgc3RhdGUuZ2FtZXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc3RhdGUubG9hZGVkR2FtZXMgPSByZXN1bHQub3V0Py5saXN0IHx8IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBsb2FkTGlzdE9mQnJhbmNoZXMoKSB7XG4gICAgICAgICAgICBsZXQgcGF0aCA9IEVkaXRvci5Qcm9qZWN0LnBhdGg7XG4gICAgICAgICAgICBzdGF0ZS5icmFuY2hlc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUuYnJhbmNoZXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJhbGFuY3koJ2NvbmZpZy1saXN0LWJyYW5jaGVzJywge3BhdGg6IHBhdGh9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5icmFuY2hlc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5icmFuY2hlc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgc3RhdGUubG9hZGVkQnJhbmNoZXMgPSByZXN1bHQub3V0Py5saXN0IHx8IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICByZWFkeSgpIHtcbiAgICAgICAgaWYgKHRoaXMuJC5mb3JtKSB7XG4gICAgICAgICAgICB0aGlzLiQuZm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm0oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuJC5yZWxvYWRCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuJC5yZWxvYWRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmxvYWRMaXN0T2ZHYW1lcygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdhbWVTZWxlY3QgPSB0aGlzLiQuZ2FtZVNlbGVjdCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICAgICAgZ2FtZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdhbWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgICAgIGJhbGFuY3koJ2NvbmZpZy1zZWxlY3QtZ2FtZScsIHtnYW1lLCBwYXRoOiBFZGl0b3IuUHJvamVjdC5wYXRofSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkTGlzdE9mQnJhbmNoZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYnJhbmNoU2VsZWN0ID0gdGhpcy4kLmJyYW5jaFNlbGVjdCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcbiAgICAgICAgYnJhbmNoU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYnJhbmNoID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICBiYWxhbmN5KCdjb25maWctc2VsZWN0LWJyYW5jaCcsIHticmFuY2gsIHBhdGg6IEVkaXRvci5Qcm9qZWN0LnBhdGh9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuJC5nZW5lcmF0ZUNvZGVCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuJC5nZW5lcmF0ZUNvZGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnNlbGVjdGVkQnJhbmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiR2VuZXJhdGUgQ29kZSBjbGlja2VkIHdpdGggYnJhbmNoOlwiLCBzdGF0ZS5zZWxlY3RlZEJyYW5jaCk7XG4gICAgICAgICAgICAgICAgICAgIGJhbGFuY3koJ2NvbmZpZy1nZW5lcmF0ZScsIHtwYXRoOiBFZGl0b3IuUHJvamVjdC5wYXRofSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnR2VuZXJhdGUgQ29kZSByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdXAgRG93bmxvYWQgRGF0YSBidXR0b24gY2xpY2sgaGFuZGxlclxuICAgICAgICBpZiAodGhpcy4kLmRvd25sb2FkRGF0YUJ1dHRvbikge1xuICAgICAgICAgICAgdGhpcy4kLmRvd25sb2FkRGF0YUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUuc2VsZWN0ZWRCcmFuY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJEb3dubG9hZCBEYXRhIGNsaWNrZWQgd2l0aCBicmFuY2g6XCIsIHN0YXRlLnNlbGVjdGVkQnJhbmNoKTtcbiAgICAgICAgICAgICAgICAgICAgYmFsYW5jeSgnY29uZmlnLWRvd25sb2FkJywge3BhdGg6IEVkaXRvci5Qcm9qZWN0LnBhdGh9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdEYXRhIGRvd25sb2FkIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUoKTtcbiAgICB9LFxuICAgIGJlZm9yZUNsb3NlKCkge1xuICAgICAgICBiYWxhbmN5KCdjb25maWctY2xvc2UnKTtcbiAgICB9LFxuICAgIGNsb3NlKCkgeyB9LFxufSk7XG5cbi8vIG1vZHVsZS5leHBvcnRzID0gRWRpdG9yLlBhbmVsLmRlZmluZSh7XG4vLyAgICAgbGlzdGVuZXJzOiB7XG4vLyAgICAgICAgIHNob3coKSB7IGNvbnNvbGUubG9nKCdzaG93Jyk7IH0sXG4vLyAgICAgICAgIGhpZGUoKSB7IGNvbnNvbGUubG9nKCdoaWRlJyk7IH0sXG4vLyAgICAgfSxcbi8vICAgICB0ZW1wbGF0ZTogcmVhZEZpbGVTeW5jKGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vc3RhdGljL3RlbXBsYXRlL2RlZmF1bHQvaW5kZXguaHRtbCcpLCAndXRmLTgnKSxcbi8vICAgICBzdHlsZTogcmVhZEZpbGVTeW5jKGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vc3RhdGljL3N0eWxlL2RlZmF1bHQvaW5kZXguY3NzJyksICd1dGYtOCcpLFxuLy8gICAgICQ6IHtcbi8vICAgICAgICAgYXBwOiAnI2FwcCcsXG4vLyAgICAgICAgIGxvZ2luOiAnI2xvZ2luJ1xuLy8gICAgIH0sXG4vLyAgICAgbWV0aG9kczoge1xuLy8gICAgICAgICBsb2FkaW5nKCkge1xuLy8gICAgICAgICAgICAgaWYgKHRoaXMuJC5hcHApIHtcbi8vICAgICAgICAgICAgICAgICB0aGlzLiQuYXBwLmlubmVySFRNTCA9ICdMb2FkaW5nJztcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgfSxcbi8vICAgICAgICAgYXN5bmMgZ2FtZShnYW1lOiBzdHJpbmcpIHtcbi8vICAgICAgICAgICAgIGlmICh0aGlzLiQuYXBwKSB7XG4vLyAgICAgICAgICAgICAgICAgY29uc3Qge2Vyciwgb3V0fSA9IGF3YWl0IGJhbGFuY3koJ2xpc3QnKTtcbi8vICAgICAgICAgICAgICAgICB0aGlzLiQuYXBwLmlubmVySFRNTCA9IG91dC5saXN0Py5maW5kKCh7IGlkfSkgPT4gaWQgPT09IGdhbWUpPy5uYW1lIHx8ICdTbXRoIHdyb25nJztcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgfSxcbi8vICAgICAgICAgbG9naW5Gb3JtKCkge1xuLy9cbi8vICAgICAgICAgICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7XG4vLyAgICAgICAgICAgICBmb3JtLmlubmVySFRNTCA9IGBcbi8vICAgICAgICAgICAgICAgICBlbWFpbDogPGlucHV0IHR5cGU9XCJlbWFpbFwiIG5hbWU9XCJlbWFpbFwiIC8+PGJyLz5cbi8vICAgICAgICAgICAgICAgICBwYXNzd29yZDogPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIG5hbWU9XCJwYXNzd29yZFwiIC8+PGJyLz5cbi8vICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiZ29cIiAvPlxuLy8gICAgICAgICAgICAgYDtcbi8vXG4vLyAgICAgICAgICAgICBmb3JtLm9uc3VibWl0ID0gYXN5bmMgKGU6IFN1Ym1pdEV2ZW50KSA9PiB7XG4vLyAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuLy8gICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKHRoaXMuJC5hcHAhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb3JtJykuaXRlbSgwKSEpO1xuLy8gICAgICAgICAgICAgICAgIGNvbnN0IHtlbWFpbCwgcGFzc3dvcmR9ID0gT2JqZWN0LmZyb21FbnRyaWVzKGZvcm1EYXRhKTtcbi8vXG4vLyAgICAgICAgICAgICAgICAgY29uc3Qge291dCwgZXJyIH0gPSBhd2FpdCBiYWxhbmN5KCdsb2dpbicsIHtlbWFpbDogZW1haWwudG9TdHJpbmcoKSwgcGFzc3dvcmQ6IHBhc3N3b3JkLnRvU3RyaW5nKCl9KTtcbi8vICAgICAgICAgICAgICAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSA0MDMpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5zd2VyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4vLyAgICAgICAgICAgICAgICAgICAgIGFuc3dlci5pbm5lckhUTUwgPSBlcnIudGl0bGU7XG4vLyAgICAgICAgICAgICAgICAgICAgIGZvcm0ucHJlcGVuZChhbnN3ZXIpO1xuLy8gICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3V0KSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdGRvdXQnLCBvdXQpO1xuLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3QoKS50aGVuKCk7XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgdGhpcy4kLmFwcCEuaW5uZXJIVE1MID0gJyc7XG4vLyAgICAgICAgICAgICB0aGlzLiQuYXBwIS5hcHBlbmRDaGlsZChmb3JtKTtcbi8vICAgICAgICAgfSxcbi8vICAgICAgICAgYXN5bmMgZ2VuZXJhdGUoZ2FtZTogc3RyaW5nKSB7XG4vLyAgICAgICAgICAgICB0aGlzLmxvYWRpbmcoKTtcbi8vICAgICAgICAgICAgIGNvbnN0IHtlcnIsIG91dH0gPSBhd2FpdCBiYWxhbmN5KCdnZW5lcmF0ZScsIHsgZ2FtZSwgcGF0aDogcmVzb2x2ZShFZGl0b3IuUHJvamVjdC5wYXRoLCAnYXNzZXRzL2JhbGFuY3knKSB9KTtcbi8vICAgICAgICAgICAgIGlmIChlcnIpIHtcbi8vICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4vLyAgICAgICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgICAgIHRoaXMuZ2FtZShnYW1lKS50aGVuKCk7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH0sXG4vLyAgICAgICAgIGFzeW5jIGxpc3QoKSB7XG4vLyAgICAgICAgICAgICBjb25zdCB7ZXJyLCBvdXR9ID0gYXdhaXQgYmFsYW5jeSgnbGlzdCcpO1xuLy8gICAgICAgICAgICAgaWYgKGVyciAmJiBlcnIuY29kZSA9PT0gNDAzKSB7XG4vLyAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0oKTtcbi8vICAgICAgICAgICAgIH0gZWxzZSBpZiAob3V0KSB7XG4vLyAgICAgICAgICAgICAgICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcbi8vICAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7XG4vLyAgICAgICAgICAgICAgICAgbGlzdC5uYW1lID0gJ2lkJztcbi8vICAgICAgICAgICAgICAgICBvdXQubGlzdD8uZm9yRWFjaCgoe2lkLCBuYW1lfSkgPT4ge1xuLy8gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpO1xuLy8gICAgICAgICAgICAgICAgICAgIG9wdGlvbi50ZXh0ID0gbmFtZTtcbi8vICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWUgPSBpZDtcbi8vICAgICAgICAgICAgICAgICAgICBsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7XG4vLyAgICAgICAgICAgICAgICAgfSk7XG4vLyAgICAgICAgICAgICAgICAgdGhpcy4kLmFwcCEuaW5uZXJIVE1MID0gJyc7XG4vLyAgICAgICAgICAgICAgICAgZm9ybS5hcHBlbmRDaGlsZChsaXN0KTtcbi8vICAgICAgICAgICAgICAgICBjb25zdCBzdWJtaXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuLy8gICAgICAgICAgICAgICAgIHN1Ym1pdC50eXBlID0gJ3N1Ym1pdCc7XG4vLyAgICAgICAgICAgICAgICAgc3VibWl0LnZhbHVlID0gJ0dlbmVyYXRlJztcbi8vICAgICAgICAgICAgICAgICBmb3JtLmFwcGVuZENoaWxkKHN1Ym1pdCk7XG4vLyAgICAgICAgICAgICAgICAgdGhpcy4kLmFwcCEuYXBwZW5kQ2hpbGQoZm9ybSk7XG4vLyAgICAgICAgICAgICAgICAgZm9ybS5vbnN1Ym1pdCA9IGFzeW5jIChlOiBTdWJtaXRFdmVudCkgPT4ge1xuLy8gICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKGZvcm0pO1xuLy8gICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGlkIH0gPSBPYmplY3QuZnJvbUVudHJpZXMoZm9ybURhdGEpO1xuLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlKGlkLnRvU3RyaW5nKCkpLnRoZW4oKTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICB9LFxuLy8gICAgIHJlYWR5KCkge1xuLy9cbi8vICAgICAgICAgaWYgKHRoaXMuJC5hcHApIHtcbi8vICAgICAgICAgICAgIHRoaXMuJC5hcHAuaW5uZXJIVE1MID0gJ0xvYWRpbmcnO1xuLy8gICAgICAgICB9XG4vL1xuLy8gICAgICAgICB0aGlzLmxpc3QoKS50aGVuKCk7XG4vLyAgICAgfSxcbi8vICAgICBiZWZvcmVDbG9zZSgpIHsgfSxcbi8vICAgICBjbG9zZSgpIHsgfSxcbi8vIH0pO1xuIl19

@@ -5,3 +5,3 @@ {

"name": "@balancy/cocos-creator",
"version": "1.0.0-rc.8",
"version": "1.0.0-rc.9",
"author": "Balancy Team",

@@ -14,3 +14,5 @@ "editor": ">=3.8.3",

"start": "tsc -w",
"balancy": "balancy"
"balancy": "balancy",
"publish:next": "npm publish --tag next --access public",
"publish:last": "npm publish --tag last --access public"
},

@@ -35,3 +37,3 @@ "description": "i18n:balancy.description",

"fs-extra": "^10.0.0",
"@balancy/cli": "~1.0.0-rc.8"
"@balancy/cli": "~1.0.0-rc.9"
},

@@ -46,3 +48,3 @@ "devDependencies": {

"default": {
"title": "Balancy Login Panel",
"title": "Balancy Config",
"type": "dockable",

@@ -53,4 +55,4 @@ "main": "dist/panels/default",

"min-height": 300,
"width": 1024,
"height": 600
"width": 500,
"height": 500
}

@@ -62,26 +64,28 @@ }

{
"path": "i18n:menu.panel/balancy",
"label": "i18n:balancy.open_panel",
"message": "open-panel"
},
{
"path": "i18n:menu.develop/balancy",
"label": "i18n:balancy.send_to_panel",
"message": "send-to-panel"
"path": "i18n:Tools/Balancy",
"label": "i18n:Config",
"message": "balancy:config:show"
}
],
"messages": {
"open-panel": {
"balancy:config:show": {
"methods": [
"openPanel"
"openConfigPanel"
]
},
"send-to-panel": {
"methods": [
"default.hello"
]
}
},
"builder": "./dist/builder"
"builder": "./dist/builder",
"server": "./dist/server",
"asset-db": {
"mount": {
"path": "./node_modules/@balancy/wasm/dist",
"readonly": true,
"visible": true
}
}
},
"runtime-resource": {
"path": "node_modules/@balancy/wasm/dist",
"name": "BalancyWasm"
}
}
}

Sorry, the diff of this file is not supported yet

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