@balancy/cocos-creator
Advanced tools
Comparing version 1.0.0-rc.8 to 1.0.0-rc.9
"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= |
@@ -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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
77121
17
723
7
3
Updated@balancy/cli@~1.0.0-rc.9