cloudcmd 19.22.0 → 19.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var r,e,o,t,n={},i={};function l(r){var e=i[r];if(void 0!==e)return e.exports;var o=i[r]={exports:{}};return n[r].call(o.exports,o,o.exports,l),o.exports}l.m=n,l.d=(r,e,o)=>{var t=(e,o)=>{for(var t in e)l.o(e,t)&&!l.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,[o]:e[t]})};t(e,"get"),t(o,"value")},l.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(r){if("object"==typeof window)return window}})(),l.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),l.r=r=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},r=[],l.O=(e,o,t,n)=>{if(o){n=n||0;for(var i=r.length;i>0&&r[i-1][2]>n;i--)r[i]=r[i-1];r[i]=[o,t,n];return}for(var a=1/0,i=0;i<r.length;i++){for(var[o,t,n]=r[i],u=!0,f=0;f<o.length;f++)(!1&n||a>=n)&&Object.keys(l.O).every(r=>l.O[r](o[f]))?o.splice(f--,1):(u=!1,n<a&&(a=n));if(u){r.splice(i--,1);var s=t();void 0!==s&&(e=s)}}return e},l.j="228",e={228:0},l.O.j=r=>0===e[r],o=(r,o)=>{var t,n,[i,a,u]=o,f=0;if(i.some(r=>0!==e[r])){for(t in a)l.o(a,t)&&(l.m[t]=a[t]);if(u)var s=u(l)}for(r&&r(o);f<i.length;f++)n=i[f],l.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return l.O(s)},(t=globalThis.rspackChunkcloudcmd||=[]).forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t));var a=l.O(void 0,["136"],()=>l(2821));a=l.O(a)})();
1
+ (()=>{"use strict";var r,e,o,t,n={},i={};function l(r){var e=i[r];if(void 0!==e)return e.exports;var o=i[r]={exports:{}};return n[r].call(o.exports,o,o.exports,l),o.exports}l.m=n,l.d=(r,e,o)=>{var t=(e,o)=>{for(var t in e)l.o(e,t)&&!l.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,[o]:e[t]})};t(e,"get"),t(o,"value")},l.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(r){if("object"==typeof window)return window}})(),l.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),l.r=r=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},r=[],l.O=(e,o,t,n)=>{if(o){n=n||0;for(var i=r.length;i>0&&r[i-1][2]>n;i--)r[i]=r[i-1];r[i]=[o,t,n];return}for(var a=1/0,i=0;i<r.length;i++){for(var[o,t,n]=r[i],u=!0,f=0;f<o.length;f++)(!1&n||a>=n)&&Object.keys(l.O).every(r=>l.O[r](o[f]))?o.splice(f--,1):(u=!1,n<a&&(a=n));if(u){r.splice(i--,1);var s=t();void 0!==s&&(e=s)}}return e},l.j="228",e={228:0},l.O.j=r=>0===e[r],o=(r,o)=>{var t,n,[i,a,u]=o,f=0;if(i.some(r=>0!==e[r])){for(t in a)l.o(a,t)&&(l.m[t]=a[t]);if(u)var s=u(l)}for(r&&r(o);f<i.length;f++)n=i[f],l.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return l.O(s)},(t=globalThis.rspackChunkcloudcmd||=[]).forEach(o.bind(null,0)),t.push=o.bind(null,t.push.bind(t));var a=l.O(void 0,["136"],()=>l(9602));a=l.O(a)})();
2
2
  //# sourceMappingURL=user-menu.js.map
package/dist/sw.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var t={4299(t){"use strict";let e=(t,...n)=>{if(function(t){if("function"!=typeof t)throw Error("fn should be function!")}(t),n.length>=t.length)return t(...n);let r=(...r)=>e(t,...n,...r);return[function(t){return r(...arguments)},function(t,e){return r(...arguments)},function(t,e,n){return r(...arguments)},function(t,e,n,i){return r(...arguments)},function(t,e,n,i,o){return r(...arguments)}][t.length-n.length-1]||r};t.exports=e},5606(t){var e,n,r,i=t.exports={};function o(){throw Error("setTimeout has not been defined")}function a(){throw Error("clearTimeout has not been defined")}try{e="function"==typeof setTimeout?setTimeout:o}catch(t){e=o}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(t){n=a}function c(t){if(e===setTimeout)return setTimeout(t,0);if((e===o||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}var s=[],u=!1,l=-1;function f(){u&&r&&(u=!1,r.length?s=r.concat(s):l=-1,s.length&&h())}function h(){if(!u){var t=c(f);u=!0;for(var e=s.length;e;){for(r=s,s=[];++l<e;)r&&r[l].run();l=-1,e=s.length}r=null,u=!1,function(t){if(n===clearTimeout)return clearTimeout(t);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(t);try{n(t)}catch(e){try{return n.call(null,t)}catch(e){return n.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function p(){}i.nextTick=function(t){var e=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];s.push(new d(t,e)),1!==s.length||u||c(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=p,i.addListener=p,i.once=p,i.off=p,i.removeListener=p,i.removeAllListeners=p,i.emit=p,i.prependListener=p,i.prependOnceListener=p,i.listeners=function(t){return[]},i.binding=function(t){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw Error("process.chdir is not supported")},i.umask=function(){return 0}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}(()=>{"use strict";n(5606);var t=n(4299);let e=t((t,e)=>e.waitUntil(t())),r=t((t,e)=>{let{request:n}=e,{url:r}=n,o=i(r);r.endsWith("/")||/\^\/fs/.test(o)||"GET"===n.method&&("basic"!==n.type||o.startsWith("/api")||/^socket.io/.test(o)||e.respondWith(t(e)))}),i=t=>new URL(t).pathname,o="cloudcmd: Sun Nov 08 2026 00:07:50 GMT+0200 (Eastern European Standard Time)";globalThis.addEventListener("install",e(async function(){console.info(`cloudcmd: sw: install: ${o}`),await globalThis.skipWaiting()})),globalThis.addEventListener("fetch",r(async function(t){var e,n;let{request:r}=t,{url:a}=r,c=(e=i(a),n=t.request,"/"!==e?n:new Request("/",{credentials:"same-origin"})),s=await caches.open(o),u=await s.match(r);if(u)return u;let[l,f]=await (async(t,...e)=>{var n=t;if("function"!=typeof n)throw Error("fn should be a function!");try{return[null,await t(...e)]}catch(t){return[t]}})(fetch,c,{credentials:"same-origin"});return l?new Response(l.message):(await async function(t,e){return(await caches.open(o)).put(t,e)}(r,f.clone()),f)})),globalThis.addEventListener("activate",e(async function(){console.info(`cloudcmd: sw: activate: ${o}`),await globalThis.clients.claim();let t=await caches.keys(),e=caches.delete.bind(caches);await Promise.all(t.map(e))}))})()})();
1
+ (()=>{var t={4299(t){"use strict";let e=(t,...n)=>{if(function(t){if("function"!=typeof t)throw Error("fn should be function!")}(t),n.length>=t.length)return t(...n);let r=(...r)=>e(t,...n,...r);return[function(t){return r(...arguments)},function(t,e){return r(...arguments)},function(t,e,n){return r(...arguments)},function(t,e,n,i){return r(...arguments)},function(t,e,n,i,o){return r(...arguments)}][t.length-n.length-1]||r};t.exports=e},5606(t){var e,n,r,i=t.exports={};function o(){throw Error("setTimeout has not been defined")}function a(){throw Error("clearTimeout has not been defined")}try{e="function"==typeof setTimeout?setTimeout:o}catch(t){e=o}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(t){n=a}function c(t){if(e===setTimeout)return setTimeout(t,0);if((e===o||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}var s=[],u=!1,l=-1;function f(){u&&r&&(u=!1,r.length?s=r.concat(s):l=-1,s.length&&h())}function h(){if(!u){var t=c(f);u=!0;for(var e=s.length;e;){for(r=s,s=[];++l<e;)r&&r[l].run();l=-1,e=s.length}r=null,u=!1,function(t){if(n===clearTimeout)return clearTimeout(t);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(t);try{n(t)}catch(e){try{return n.call(null,t)}catch(e){return n.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function p(){}i.nextTick=function(t){var e=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];s.push(new d(t,e)),1!==s.length||u||c(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=p,i.addListener=p,i.once=p,i.off=p,i.removeListener=p,i.removeAllListeners=p,i.emit=p,i.prependListener=p,i.prependOnceListener=p,i.listeners=function(t){return[]},i.binding=function(t){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw Error("process.chdir is not supported")},i.umask=function(){return 0}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}(()=>{"use strict";n(5606);var t=n(4299);let e=t((t,e)=>e.waitUntil(t())),r=t((t,e)=>{let{request:n}=e,{url:r}=n,o=i(r);r.endsWith("/")||/\^\/fs/.test(o)||"GET"===n.method&&("basic"!==n.type||o.startsWith("/api")||/^socket.io/.test(o)||e.respondWith(t(e)))}),i=t=>new URL(t).pathname,o="cloudcmd: Mon Nov 09 2026 22:52:57 GMT+0200 (Eastern European Standard Time)";globalThis.addEventListener("install",e(async function(){console.info(`cloudcmd: sw: install: ${o}`),await globalThis.skipWaiting()})),globalThis.addEventListener("fetch",r(async function(t){var e,n;let{request:r}=t,{url:a}=r,c=(e=i(a),n=t.request,"/"!==e?n:new Request("/",{credentials:"same-origin"})),s=await caches.open(o),u=await s.match(r);if(u)return u;let[l,f]=await (async(t,...e)=>{var n=t;if("function"!=typeof n)throw Error("fn should be a function!");try{return[null,await t(...e)]}catch(t){return[t]}})(fetch,c,{credentials:"same-origin"});return l?new Response(l.message):(await async function(t,e){return(await caches.open(o)).put(t,e)}(r,f.clone()),f)})),globalThis.addEventListener("activate",e(async function(){console.info(`cloudcmd: sw: activate: ${o}`),await globalThis.clients.claim();let t=await caches.keys(),e=caches.delete.bind(caches);await Promise.all(t.map(e))}))})()})();
2
2
  //# sourceMappingURL=sw.js.map
@@ -1025,7 +1025,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1025
1025
  \**************************/
1026
1026
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1027
1027
  "use strict";
1028
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n createCloudCmd: () => (createCloudCmd)\n});\n/* import */ var node_process__rspack_import_0 = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* import */ var emitify__rspack_import_1 = __webpack_require__(/*! emitify */ \"./node_modules/emitify/lib/emitify.js\");\n/* import */ var inherits__rspack_import_2 = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* import */ var rendy__rspack_import_3 = __webpack_require__(/*! rendy */ \"./node_modules/rendy/lib/rendy.js\");\n/* import */ var load_js__rspack_import_4 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var try_to_catch__rspack_import_5 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var format_io__rspack_import_6 = __webpack_require__(/*! format-io */ \"./node_modules/format-io/lib/format.js\");\n/* import */ var just_pascal_case__rspack_import_7 = __webpack_require__(/*! just-pascal-case */ \"./node_modules/just-pascal-case/index.mjs\");\n/* import */ var currify__rspack_import_8 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* import */ var _common_cloudfunc__rspack_import_9 = __webpack_require__(/*! #common/cloudfunc */ \"./common/cloudfunc.js\");\n/* import */ var _dom_images__rspack_import_10 = __webpack_require__(/*! #dom/images */ \"./client/dom/images.js\");\n/* import */ var _sw_register_js__rspack_import_11 = __webpack_require__(/*! ./sw/register.js */ \"./client/sw/register.js\");\n/* import */ var _get_json_from_file_table_js__rspack_import_12 = __webpack_require__(/*! ./get-json-from-file-table.js */ \"./client/get-json-from-file-table.js\");\n/* import */ var _key_index_js__rspack_import_13 = __webpack_require__(/*! ./key/index.js */ \"./client/key/index.js\");\n/* import */ var _load_module_js__rspack_import_14 = __webpack_require__(/*! ./load-module.js */ \"./client/load-module.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst noJS = (a)=>a.replace(/.js$/, '');\nconst isDev = \"development\" === 'development';\ninherits__rspack_import_2(CloudCmdProto, emitify__rspack_import_1);\nconst createCloudCmd = ({ DOM, Listeners })=>{\n return new CloudCmdProto({\n DOM,\n Listeners\n });\n};\nload_js__rspack_import_4.addErrorListener((e, src)=>{\n const msg = `file ${src} could not be loaded`;\n _dom_images__rspack_import_10.show.error(msg);\n});\nfunction CloudCmdProto({ DOM, Listeners }) {\n emitify__rspack_import_1.call(this);\n const CloudCmd = this;\n const Info = DOM.CurrentInfo;\n const { Storage, Files } = DOM;\n this.log = ()=>{\n if (!isDev) return;\n };\n this.prefix = '';\n this.prefixSocket = '';\n this.prefixURL = '';\n this.MIN_ONE_PANEL_WIDTH = DOM.getCSSVar('min-one-panel-width');\n this.HOST = location.origin || location.protocol + '//' + location.host;\n this.sort = {\n left: 'name',\n right: 'name'\n };\n this.order = {\n left: 'asc',\n right: 'asc'\n };\n this.changeDir = async (path, overrides = {})=>{\n const { isRefresh, panel, history: history1 = true, noCurrent, currentName } = overrides;\n const refresh = isRefresh;\n let panelChanged;\n if (!noCurrent && panel && panel !== Info.panel) {\n DOM.changePanel();\n panelChanged = true;\n }\n let imgPosition;\n if (panelChanged || refresh || !history1) imgPosition = 'top';\n _dom_images__rspack_import_10.show.load(imgPosition, panel);\n /* загружаем содержимое каталога */ await ajaxLoad((0,format_io__rspack_import_6.addSlashToEnd)(path), {\n refresh,\n history: history1,\n noCurrent,\n currentName,\n showDotFiles: CloudCmd.config('showDotFiles')\n }, panel);\n };\n /**\n * Конструктор CloudClient, который\n * выполняет весь функционал по\n * инициализации\n */ this.init = async (prefix, config)=>{\n CloudCmd.prefix = prefix;\n CloudCmd.prefixURL = `${prefix}${_common_cloudfunc__rspack_import_9.apiURL}`;\n CloudCmd.prefixSocket = config.prefixSocket;\n CloudCmd.DIR_DIST = `${prefix}/dist`;\n CloudCmd.DIR_MODULES = `${this.DIR_DIST}/modules`;\n CloudCmd.config = (key)=>config[key];\n CloudCmd.config.if = currify__rspack_import_8((key, fn, a)=>config[key] && fn(a));\n CloudCmd._config = (key, value)=>{\n /*\n * should be called from config.js only\n * after successful update on server\n */ if (key === 'password') return;\n config[key] = value;\n };\n if (config.oneFilePanel) CloudCmd.MIN_ONE_PANEL_WIDTH = Infinity;\n if (!document.body.scrollIntoViewIfNeeded) await load_js__rspack_import_4.js(`${CloudCmd.DIR_MODULES}/polyfill.js`);\n await initModules();\n await baseInit();\n CloudCmd.route(location.hash);\n };\n this.route = (path)=>{\n const query = path.split('/');\n if (!path) return;\n const [kebabModule] = query;\n const module = noJS((0,just_pascal_case__rspack_import_7[\"default\"])(kebabModule.slice(1)));\n const [, file] = query;\n const current = DOM.getCurrentByName(file);\n if (file && !current) {\n const msg = (0,_common_cloudfunc__rspack_import_9.formatMsg)('set current file', file, 'error');\n CloudCmd.log(msg);\n return;\n }\n DOM.setCurrentFile(current);\n CloudCmd.execFromModule(module, 'show');\n };\n this.logOut = async ()=>{\n const url = CloudCmd.prefix + '/logout';\n const error = ()=>document.location.reload();\n const { prefix } = CloudCmd;\n await DOM.Storage.clear();\n (0,_sw_register_js__rspack_import_11.unregisterSW)(prefix);\n DOM.load.ajax({\n url,\n error\n });\n };\n const initModules = async ()=>{\n CloudCmd.Key = _key_index_js__rspack_import_13.Key;\n CloudCmd.Key.bind();\n const [, modules] = await (0,try_to_catch__rspack_import_5.tryToCatch)(Files.get, 'modules');\n const showLoad = _dom_images__rspack_import_10.show.load;\n const doBefore = {\n edit: showLoad,\n menu: showLoad\n };\n const load = (name, path, dobefore)=>{\n (0,_load_module_js__rspack_import_14.loadModule)({\n name,\n path,\n dobefore\n });\n };\n if (!modules) return;\n for (const module of modules.local){\n load(null, module, doBefore[module]);\n }\n };\n async function saveCurrentName(currentName) {\n await Storage.set('current-name', currentName);\n }\n async function baseInit() {\n const files = DOM.getFiles();\n CloudCmd.on('current-file', DOM.updateCurrentInfo);\n CloudCmd.on('current-name', saveCurrentName);\n const name = await Storage.get('current-name');\n const currentFile = name && DOM.getCurrentByName(name) || files[0];\n /* выделяем строку с первым файлом */ if (files) DOM.setCurrentFile(currentFile, {\n // when hash is present\n // it should be handled with this.route\n // overwre otherwise\n history: !location.hash\n });\n const dirPath = DOM.getCurrentDirPath();\n Listeners.init();\n const panels = getPanels();\n panels.forEach(Listeners.setOnPanel);\n Listeners.initKeysPanel();\n if (!CloudCmd.config('dirStorage')) return;\n const data = await Storage.get(dirPath);\n if (!data) await Storage.setJson(dirPath, (0,_get_json_from_file_table_js__rspack_import_12.getJsonFromFileTable)());\n }\n function getPanels() {\n const panels = [\n 'left'\n ];\n if (CloudCmd.config('oneFilePanel')) return panels;\n return [\n ...panels,\n 'right'\n ];\n }\n this.execFromModule = async (moduleName, funcName, ...args)=>{\n await CloudCmd[moduleName]();\n const func = CloudCmd[moduleName][funcName];\n func(...args);\n };\n this.refresh = async (options = {})=>{\n const { panel = Info.panel, currentName } = options;\n const path = DOM.getCurrentDirPath(panel);\n const isRefresh = true;\n const history1 = false;\n const noCurrent = options?.noCurrent;\n await CloudCmd.changeDir(path, {\n isRefresh,\n history: history1,\n panel,\n noCurrent,\n currentName\n });\n };\n /**\n * Функция загружает json-данные о Файловой Системе\n * через ajax-запрос.\n * @param path - каталог для чтения\n * @param options\n * { refresh, history } - необходимость обновить данные о каталоге\n * @param panel\n *\n */ async function ajaxLoad(path, options = {}, panel) {\n const { RESTful } = DOM;\n CloudCmd.log(`reading dir: \"${path}\";`);\n const dirStorage = CloudCmd.config('dirStorage');\n const json = dirStorage && await Storage.getJson(path);\n const name = options.currentName || Info.name;\n const { noCurrent, refresh } = options;\n if (!refresh && json) return await createFileTable(json, panel, options);\n const position = DOM.getPanelPosition(panel);\n const sort = CloudCmd.sort[position];\n const order = CloudCmd.order[position];\n const query = (0,rendy__rspack_import_3.rendy)('?sort={{ sort }}&order={{ order }}', {\n sort,\n order\n });\n const [, newObj] = await RESTful.read(path + query, 'json');\n if (!newObj) // that's OK, error handled by RESTful\n return;\n options.sort = sort;\n options.order = order;\n await createFileTable(newObj, panel, options);\n if (refresh && !noCurrent) DOM.setCurrentByName(name);\n if (!CloudCmd.config('dirStorage')) return;\n Storage.setJson(path, newObj);\n }\n /**\n * Функция строит файловую таблицу\n * @param data - данные о файлах\n * @param panelParam\n * @param options - history, noCurrent, showDotFiles\n */ async function createFileTable(data, panelParam, options) {\n const { history: history1, noCurrent, showDotFiles } = options;\n const names = [\n 'file',\n 'path',\n 'link',\n 'pathLink'\n ];\n const [error, [file, path, link, pathLink]] = await (0,try_to_catch__rspack_import_5.tryToCatch)(Files.get, names);\n if (error) return DOM.Dialog.alert(error.responseText);\n const panel = panelParam || DOM.getPanel();\n const { prefix } = CloudCmd;\n const { dir, name } = Info;\n const { childNodes } = panel;\n let i = childNodes.length;\n while(i--)panel.removeChild(panel.lastChild);\n panel.innerHTML = (0,_common_cloudfunc__rspack_import_9.buildFromJSON)({\n sort: options.sort,\n order: options.order,\n data,\n id: panel.id,\n prefix,\n showDotFiles,\n template: {\n file,\n path,\n pathLink,\n link\n }\n });\n Listeners.setOnPanel(panel);\n if (!noCurrent) {\n let current;\n if (name === '..' && dir !== '/') current = DOM.getCurrentByName(dir);\n if (!current) [current] = DOM.getFiles(panel);\n DOM.setCurrentFile(current, {\n history: history1\n });\n CloudCmd.emit('active-dir', Info.dirPath);\n }\n }\n this.goToParentDir = async ()=>{\n const { dir, dirPath, parentDirPath, panel } = Info;\n if (dirPath === parentDirPath) return;\n const path = parentDirPath;\n await CloudCmd.changeDir(path);\n const current = DOM.getCurrentByName(dir);\n const [first] = DOM.getFiles(panel);\n DOM.setCurrentFile(current || first, {\n history\n });\n };\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/client.js\n}");
1028
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n createCloudCmd: () => (createCloudCmd)\n});\n/* import */ var node_process__rspack_import_0 = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* import */ var emitify__rspack_import_1 = __webpack_require__(/*! emitify */ \"./node_modules/emitify/lib/emitify.js\");\n/* import */ var inherits__rspack_import_2 = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* import */ var rendy__rspack_import_3 = __webpack_require__(/*! rendy */ \"./node_modules/rendy/lib/rendy.js\");\n/* import */ var load_js__rspack_import_4 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var try_to_catch__rspack_import_5 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var format_io__rspack_import_6 = __webpack_require__(/*! format-io */ \"./node_modules/format-io/lib/format.js\");\n/* import */ var just_pascal_case__rspack_import_7 = __webpack_require__(/*! just-pascal-case */ \"./node_modules/just-pascal-case/index.mjs\");\n/* import */ var currify__rspack_import_8 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* import */ var _common_cloudfunc__rspack_import_9 = __webpack_require__(/*! #common/cloudfunc */ \"./common/cloudfunc.js\");\n/* import */ var _dom_images__rspack_import_10 = __webpack_require__(/*! #dom/images */ \"./client/dom/images.js\");\n/* import */ var _sw_register_js__rspack_import_11 = __webpack_require__(/*! ./sw/register.js */ \"./client/sw/register.js\");\n/* import */ var _get_json_from_file_table_js__rspack_import_12 = __webpack_require__(/*! ./get-json-from-file-table.js */ \"./client/get-json-from-file-table.js\");\n/* import */ var _key_index_js__rspack_import_13 = __webpack_require__(/*! ./key/index.js */ \"./client/key/index.js\");\n/* import */ var _load_module_js__rspack_import_14 = __webpack_require__(/*! ./load-module.js */ \"./client/load-module.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst noJS = (a)=>a.replace(/.js$/, '');\nconst isDev = \"development\" === 'development';\ninherits__rspack_import_2(CloudCmdProto, emitify__rspack_import_1);\nconst createCloudCmd = ({ DOM, Listeners })=>{\n return new CloudCmdProto({\n DOM,\n Listeners\n });\n};\nload_js__rspack_import_4.addErrorListener((e, src)=>{\n const msg = `file ${src} could not be loaded`;\n _dom_images__rspack_import_10.show.error(msg);\n});\nfunction CloudCmdProto({ DOM, Listeners }) {\n emitify__rspack_import_1.call(this);\n const CloudCmd = this;\n const Info = DOM.CurrentInfo;\n const { Storage, Files } = DOM;\n this.log = ()=>{\n if (!isDev) return;\n };\n this.prefix = '';\n this.prefixSocket = '';\n this.prefixURL = '';\n this.MIN_ONE_PANEL_WIDTH = DOM.getCSSVar('min-one-panel-width');\n this.HOST = location.origin || location.protocol + '//' + location.host;\n this.sort = {\n left: 'name',\n right: 'name'\n };\n this.order = {\n left: 'asc',\n right: 'asc'\n };\n this.changeDir = async (path, overrides = {})=>{\n const { isRefresh, panel, history: history1 = true, noCurrent, currentName } = overrides;\n const refresh = isRefresh;\n let panelChanged;\n if (!noCurrent && panel && panel !== Info.panel) {\n DOM.changePanel();\n panelChanged = true;\n }\n let imgPosition;\n if (panelChanged || refresh || !history1) imgPosition = 'top';\n _dom_images__rspack_import_10.show.load(imgPosition, panel);\n /* загружаем содержимое каталога */ await ajaxLoad((0,format_io__rspack_import_6.addSlashToEnd)(path), {\n refresh,\n history: history1,\n noCurrent,\n currentName,\n showDotFiles: CloudCmd.config('showDotFiles')\n }, panel);\n };\n /**\n * Конструктор CloudClient, который\n * выполняет весь функционал по\n * инициализации\n */ this.init = async (prefix, config)=>{\n CloudCmd.prefix = prefix;\n CloudCmd.prefixURL = `${prefix}${_common_cloudfunc__rspack_import_9.apiURL}`;\n CloudCmd.prefixSocket = config.prefixSocket;\n CloudCmd.DIR_DIST = `${prefix}/dist`;\n CloudCmd.DIR_MODULES = `${this.DIR_DIST}/modules`;\n CloudCmd.config = (key)=>config[key];\n CloudCmd.config.if = currify__rspack_import_8((key, fn, a)=>config[key] && fn(a));\n CloudCmd._config = (key, value)=>{\n /*\n * should be called from config.js only\n * after successful update on server\n */ if (key === 'password') return;\n config[key] = value;\n };\n if (config.oneFilePanel) CloudCmd.MIN_ONE_PANEL_WIDTH = Infinity;\n if (!document.body.scrollIntoViewIfNeeded) await load_js__rspack_import_4.js(`${CloudCmd.DIR_MODULES}/polyfill.js`);\n await initModules();\n await baseInit();\n CloudCmd.route(location.hash);\n };\n this.route = (path)=>{\n const query = path.split('/');\n if (!path) return;\n const [kebabModule] = query;\n const module = noJS((0,just_pascal_case__rspack_import_7[\"default\"])(kebabModule.slice(1)));\n const [, file] = query;\n const current = DOM.getCurrentByName(file);\n if (file && !current) {\n const msg = (0,_common_cloudfunc__rspack_import_9.formatMsg)('set current file', file, 'error');\n CloudCmd.log(msg);\n return;\n }\n DOM.setCurrentFile(current);\n CloudCmd.execFromModule(module, 'show');\n };\n this.logOut = async ()=>{\n const url = CloudCmd.prefix + '/logout';\n const error = ()=>document.location.reload();\n const { prefix } = CloudCmd;\n await DOM.Storage.clear();\n (0,_sw_register_js__rspack_import_11.unregisterSW)(prefix);\n DOM.load.ajax({\n url,\n error\n });\n };\n const initModules = async ()=>{\n CloudCmd.Key = _key_index_js__rspack_import_13.Key;\n CloudCmd.Key.bind();\n const [, modules] = await (0,try_to_catch__rspack_import_5.tryToCatch)(Files.get, 'modules');\n const showLoad = _dom_images__rspack_import_10.show.load;\n const doBefore = {\n edit: showLoad,\n menu: showLoad\n };\n const usesPutout = ()=>[\n 'putout'\n ];\n const usesMenuPutout = ()=>{\n if (CloudCmd.config('menu') === 'supermenu') return [];\n return usesPutout();\n };\n const requires = {\n 'menu': usesMenuPutout,\n 'config-putout': usesPutout\n };\n const load = (name, path, dobefore)=>{\n (0,_load_module_js__rspack_import_14.loadModule)({\n name,\n path,\n dobefore,\n requires: requires[path]\n });\n };\n if (!modules) return;\n for (const module of modules.local){\n load(null, module, doBefore[module]);\n }\n };\n async function saveCurrentName(currentName) {\n await Storage.set('current-name', currentName);\n }\n async function baseInit() {\n const files = DOM.getFiles();\n CloudCmd.on('current-file', DOM.updateCurrentInfo);\n CloudCmd.on('current-name', saveCurrentName);\n const name = await Storage.get('current-name');\n const currentFile = name && DOM.getCurrentByName(name) || files[0];\n /* выделяем строку с первым файлом */ if (files) DOM.setCurrentFile(currentFile, {\n // when hash is present\n // it should be handled with this.route\n // overwre otherwise\n history: !location.hash\n });\n const dirPath = DOM.getCurrentDirPath();\n Listeners.init();\n const panels = getPanels();\n panels.forEach(Listeners.setOnPanel);\n Listeners.initKeysPanel();\n if (!CloudCmd.config('dirStorage')) return;\n const data = await Storage.get(dirPath);\n if (!data) await Storage.setJson(dirPath, (0,_get_json_from_file_table_js__rspack_import_12.getJsonFromFileTable)());\n }\n function getPanels() {\n const panels = [\n 'left'\n ];\n if (CloudCmd.config('oneFilePanel')) return panels;\n return [\n ...panels,\n 'right'\n ];\n }\n this.execFromModule = async (moduleName, funcName, ...args)=>{\n await CloudCmd[moduleName]();\n const func = CloudCmd[moduleName][funcName];\n func(...args);\n };\n this.refresh = async (options = {})=>{\n const { panel = Info.panel, currentName } = options;\n const path = DOM.getCurrentDirPath(panel);\n const isRefresh = true;\n const history1 = false;\n const noCurrent = options?.noCurrent;\n await CloudCmd.changeDir(path, {\n isRefresh,\n history: history1,\n panel,\n noCurrent,\n currentName\n });\n };\n /**\n * Функция загружает json-данные о Файловой Системе\n * через ajax-запрос.\n * @param path - каталог для чтения\n * @param options\n * { refresh, history } - необходимость обновить данные о каталоге\n * @param panel\n *\n */ async function ajaxLoad(path, options = {}, panel) {\n const { RESTful } = DOM;\n CloudCmd.log(`reading dir: \"${path}\";`);\n const dirStorage = CloudCmd.config('dirStorage');\n const json = dirStorage && await Storage.getJson(path);\n const name = options.currentName || Info.name;\n const { noCurrent, refresh } = options;\n if (!refresh && json) return await createFileTable(json, panel, options);\n const position = DOM.getPanelPosition(panel);\n const sort = CloudCmd.sort[position];\n const order = CloudCmd.order[position];\n const query = (0,rendy__rspack_import_3.rendy)('?sort={{ sort }}&order={{ order }}', {\n sort,\n order\n });\n const [, newObj] = await RESTful.read(path + query, 'json');\n if (!newObj) // that's OK, error handled by RESTful\n return;\n options.sort = sort;\n options.order = order;\n await createFileTable(newObj, panel, options);\n if (refresh && !noCurrent) DOM.setCurrentByName(name);\n if (!CloudCmd.config('dirStorage')) return;\n Storage.setJson(path, newObj);\n }\n /**\n * Функция строит файловую таблицу\n * @param data - данные о файлах\n * @param panelParam\n * @param options - history, noCurrent, showDotFiles\n */ async function createFileTable(data, panelParam, options) {\n const { history: history1, noCurrent, showDotFiles } = options;\n const names = [\n 'file',\n 'path',\n 'link',\n 'pathLink'\n ];\n const [error, [file, path, link, pathLink]] = await (0,try_to_catch__rspack_import_5.tryToCatch)(Files.get, names);\n if (error) return DOM.Dialog.alert(error.responseText);\n const panel = panelParam || DOM.getPanel();\n const { prefix } = CloudCmd;\n const { dir, name } = Info;\n const { childNodes } = panel;\n let i = childNodes.length;\n while(i--)panel.removeChild(panel.lastChild);\n panel.innerHTML = (0,_common_cloudfunc__rspack_import_9.buildFromJSON)({\n sort: options.sort,\n order: options.order,\n data,\n id: panel.id,\n prefix,\n showDotFiles,\n template: {\n file,\n path,\n pathLink,\n link\n }\n });\n Listeners.setOnPanel(panel);\n if (!noCurrent) {\n let current;\n if (name === '..' && dir !== '/') current = DOM.getCurrentByName(dir);\n if (!current) [current] = DOM.getFiles(panel);\n DOM.setCurrentFile(current, {\n history: history1\n });\n CloudCmd.emit('active-dir', Info.dirPath);\n }\n }\n this.goToParentDir = async ()=>{\n const { dir, dirPath, parentDirPath, panel } = Info;\n if (dirPath === parentDirPath) return;\n const path = parentDirPath;\n await CloudCmd.changeDir(path);\n const current = DOM.getCurrentByName(dir);\n const [first] = DOM.getFiles(panel);\n DOM.setCurrentFile(current || first, {\n history\n });\n };\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/client.js\n}");
1029
1029
 
1030
1030
  },
1031
1031
  "./client/cloudcmd.js"
@@ -1331,7 +1331,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1331
1331
  \*******************************/
1332
1332
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1333
1333
  "use strict";
1334
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n loadModule: () => (loadModule)\n});\n/* import */ var execon__rspack_import_0 = __webpack_require__(/*! execon */ \"./node_modules/execon/lib/exec.js\");\n/* import */ var try_to_catch__rspack_import_1 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var load_js__rspack_import_2 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var just_pascal_case__rspack_import_3 = __webpack_require__(/*! just-pascal-case */ \"./node_modules/just-pascal-case/index.mjs\");\n/* global CloudCmd */ \n\n\n\nconst noJS = (a)=>a.replace(/.js$/, '');\n/**\n * function load modules\n * @params = {name, path, func, dobefore, arg}\n */ const loadModule = (params)=>{\n if (!params) return;\n const { path } = params;\n const name = path && noJS((0,just_pascal_case__rspack_import_3[\"default\"])(path));\n const doBefore = params.dobefore;\n if (CloudCmd[name]) return;\n CloudCmd[name] = async ()=>{\n execon__rspack_import_0(doBefore);\n const { DIR_MODULES } = CloudCmd;\n const pathFull = `${DIR_MODULES}/${path}.js`;\n await (0,load_js__rspack_import_2.js)(pathFull);\n const newModule = async (f)=>f && f();\n const module = CloudCmd[name];\n Object.assign(newModule, module);\n CloudCmd[name] = newModule;\n CloudCmd.log('init', name);\n await module.init();\n return newModule;\n };\n CloudCmd[name].show = async (...args)=>{\n CloudCmd.log('show', name, args);\n const m = CloudCmd[name];\n const [e, a] = await (0,try_to_catch__rspack_import_1.tryToCatch)(m);\n if (e) return;\n return await a.show(...args);\n };\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/load-module.js\n}");
1334
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n loadModule: () => (loadModule)\n});\n/* import */ var execon__rspack_import_0 = __webpack_require__(/*! execon */ \"./node_modules/execon/lib/exec.js\");\n/* import */ var try_to_catch__rspack_import_1 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var load_js__rspack_import_2 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var just_pascal_case__rspack_import_3 = __webpack_require__(/*! just-pascal-case */ \"./node_modules/just-pascal-case/index.mjs\");\n/* global CloudCmd */ \n\n\n\nconst noJS = (a)=>a.replace(/.js$/, '');\nconst getName = (path)=>noJS((0,just_pascal_case__rspack_import_3[\"default\"])(path));\nconst registries = new WeakMap();\nconst getRegistry = ()=>{\n if (!registries.has(CloudCmd)) registries.set(CloudCmd, new Map());\n return registries.get(CloudCmd);\n};\nconst loadModule = (params, overrides = {})=>{\n if (!params) return;\n const { loadJS = load_js__rspack_import_2.js } = overrides;\n const { path, requires = ()=>[] } = params;\n const name = path && getName(path);\n const doBefore = params.dobefore;\n if (CloudCmd[name]) return;\n const registry = getRegistry();\n let loading;\n const loadOnce = async ()=>{\n execon__rspack_import_0(doBefore);\n for (const dependency of requires())await registry.get(getName(dependency))();\n const { DIR_MODULES } = CloudCmd;\n const pathFull = `${DIR_MODULES}/${path}.js`;\n await loadJS(pathFull);\n const newModule = async (f)=>f && f();\n const module = CloudCmd[name];\n Object.assign(newModule, module);\n CloudCmd[name] = newModule;\n CloudCmd.log('init', name);\n await module.init();\n return newModule;\n };\n const loadModuleOnce = ()=>{\n loading = loading || loadOnce();\n return loading;\n };\n registry.set(name, loadModuleOnce);\n CloudCmd[name] = loadModuleOnce;\n CloudCmd[name].show = async (...args)=>{\n CloudCmd.log('show', name, args);\n const m = CloudCmd[name];\n const [e, a] = await (0,try_to_catch__rspack_import_1.tryToCatch)(m);\n if (e) return;\n return await a.show(...args);\n };\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/load-module.js\n}");
1335
1335
 
1336
1336
  },
1337
1337
  "./client/modules/cloud.js"
@@ -1358,7 +1358,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1358
1358
  \****************************************/
1359
1359
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1360
1360
  "use strict";
1361
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n hide: () => (hide),\n init: () => (init),\n show: () => (show)\n});\n/* import */ var _css_config_css__rspack_import_0 = __webpack_require__(/*! ../../../css/config.css */ \"./css/config.css\");\n/* import */ var rendy__rspack_import_1 = __webpack_require__(/*! rendy */ \"./node_modules/rendy/lib/rendy.js\");\n/* import */ var currify__rspack_import_2 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* import */ var wraptile__rspack_import_3 = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* import */ var squad__rspack_import_4 = __webpack_require__(/*! squad */ \"./node_modules/squad/lib/squad.js\");\n/* import */ var es6_promisify__rspack_import_5 = __webpack_require__(/*! es6-promisify */ \"./node_modules/es6-promisify/dist/promisify.mjs\");\n/* import */ var try_to_catch__rspack_import_6 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var load_js__rspack_import_7 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var _cloudcmd_create_element__rspack_import_8 = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* import */ var _dom_events__rspack_import_9 = __webpack_require__(/*! #dom/events */ \"./client/dom/events/index.js\");\n/* import */ var _dom_files__rspack_import_10 = __webpack_require__(/*! #dom/files */ \"./client/dom/files.js\");\n/* import */ var _common_cloudfunc__rspack_import_11 = __webpack_require__(/*! #common/cloudfunc */ \"./common/cloudfunc.js\");\n/* import */ var _dom_images__rspack_import_12 = __webpack_require__(/*! #dom/images */ \"./client/dom/images.js\");\n/* import */ var _input_js__rspack_import_13 = __webpack_require__(/*! ./input.js */ \"./client/modules/config/input.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst { CloudCmd, DOM } = globalThis;\nconst { Dialog, setTitle } = DOM;\nconst Name = 'Config';\nconst loadSocket = (0,es6_promisify__rspack_import_5.promisify)(DOM.loadSocket);\nconst showLoad = ()=>{\n _dom_images__rspack_import_12.show.load('top');\n};\nconst addKey = currify__rspack_import_2((fn, input)=>{\n _dom_events__rspack_import_9.addKey(input, fn);\n return input;\n});\nconst addChange = currify__rspack_import_2((fn, input)=>{\n _dom_events__rspack_import_9.add('change', input, fn);\n return input;\n});\nconst Config = {};\nlet Template;\nconst loadCSS = load_js__rspack_import_7.css;\nasync function init() {\n if (!CloudCmd.config('configDialog')) return;\n showLoad();\n const { DIR_DIST } = CloudCmd;\n [Template] = await Promise.all([\n _dom_files__rspack_import_10.get('config-tmpl'),\n loadSocket(),\n loadCSS(`${DIR_DIST}/config.css`),\n CloudCmd.View()\n ]);\n initSocket();\n}\nconst { config, Key } = CloudCmd;\nlet Element;\nfunction getHost() {\n const { host, origin, protocol } = location;\n return origin || `${protocol}//${host}`;\n}\nfunction initSocket() {\n const href = getHost();\n const { prefixSocket, prefix } = CloudCmd;\n const ONE_MINUTE = 60 * 1000;\n const socket = globalThis.io.connect(href + prefixSocket + '/config', {\n reconnectionAttempts: Infinity,\n reconnectionDelay: ONE_MINUTE,\n path: `${prefix}/socket.io`\n });\n const save = (data)=>{\n onSave(data);\n socket.send(data);\n };\n authCheck(socket);\n socket.on('connect', ()=>{\n Config.save = save;\n });\n socket.on('message', onSave);\n socket.on('log', CloudCmd.log);\n socket.on('disconnect', ()=>{\n Config.save = saveHttp;\n });\n socket.on('err', Dialog.alert);\n}\nfunction authCheck(socket) {\n socket.emit('auth', config('username'), config('password'));\n socket.on('reject', wraptile__rspack_import_3(Dialog.alert, 'Wrong credentials!'));\n}\nConfig.save = saveHttp;\nasync function show() {\n if (!CloudCmd.config('configDialog')) return;\n await fillTemplate();\n}\nasync function fillTemplate() {\n const [error, config] = await (0,try_to_catch__rspack_import_6.tryToCatch)(_dom_files__rspack_import_10.get, 'config');\n if (error) return Dialog.alert('Could not load config!');\n const { editor, menu, packer, columns, theme, configAuth, configPort, ...obj } = _input_js__rspack_import_13.convert(config);\n obj[`${menu}-selected`] = 'selected';\n obj[`${editor}-selected`] = 'selected';\n obj[`${packer}-selected`] = 'selected';\n obj[`${columns}-selected`] = 'selected';\n obj[`${theme}-selected`] = 'selected';\n obj.configAuth = configAuth ? '' : 'hidden';\n obj.configPort = configPort ? '' : 'hidden';\n const innerHTML = (0,rendy__rspack_import_1.rendy)(Template, obj);\n Element = _cloudcmd_create_element__rspack_import_8('form', {\n className: 'config',\n innerHTML\n });\n const inputs = document.querySelectorAll('input, select', Element);\n const [inputFirst] = inputs;\n let afterShow;\n if (inputFirst) {\n onAuthChange(inputFirst.checked);\n afterShow = inputFirst.focus.bind(inputFirst);\n }\n const getTarget = ({ target })=>target;\n const handleChange = squad__rspack_import_4(onChange, getTarget);\n Array.from(inputs).map(addKey(onKey)).map(addChange(handleChange));\n const autoSize = true;\n CloudCmd.View.show(Element, {\n autoSize,\n afterShow\n });\n}\nfunction hide() {\n CloudCmd.View.hide();\n}\nasync function onChange(el) {\n const obj = {};\n const name = _input_js__rspack_import_13.getName(el);\n const data = _input_js__rspack_import_13.getValue(name, Element);\n if (name === 'name') onNameChange(data);\n else if (name === 'auth') onAuthChange(data);\n obj[name] = data;\n await Config.save(obj);\n}\nfunction onSave(obj) {\n for (const name of Object.keys(obj)){\n const data = obj[name];\n CloudCmd._config(name, data);\n _input_js__rspack_import_13.setValue(name, data, Element);\n }\n}\nasync function saveHttp(obj) {\n const { RESTful } = DOM;\n const [e] = await RESTful.Config.write(obj);\n if (e) return;\n onSave(obj);\n}\nfunction onAuthChange(checked) {\n const elUsername = _input_js__rspack_import_13.getElementByName('username', Element);\n const elPassword = _input_js__rspack_import_13.getElementByName('password', Element);\n elUsername.disabled = !checked;\n elPassword.disabled = !checked;\n}\nfunction onNameChange(name) {\n setTitle((0,_common_cloudfunc__rspack_import_11.getTitle)({\n name\n }));\n}\nasync function onKey({ keyCode, target }) {\n if (keyCode === Key.ESC) return hide();\n if (keyCode === Key.ENTER) return await onChange(target);\n}\nCloudCmd[Name] = {\n init,\n show,\n hide\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/index.js\n}");
1361
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n hide: () => (hide),\n init: () => (init),\n show: () => (show)\n});\n/* import */ var _css_config_css__rspack_import_0 = __webpack_require__(/*! ../../../css/config.css */ \"./css/config.css\");\n/* import */ var currify__rspack_import_1 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* import */ var wraptile__rspack_import_2 = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* import */ var squad__rspack_import_3 = __webpack_require__(/*! squad */ \"./node_modules/squad/lib/squad.js\");\n/* import */ var es6_promisify__rspack_import_4 = __webpack_require__(/*! es6-promisify */ \"./node_modules/es6-promisify/dist/promisify.mjs\");\n/* import */ var try_to_catch__rspack_import_5 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var load_js__rspack_import_6 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var _cloudcmd_create_element__rspack_import_7 = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* import */ var _dom_events__rspack_import_8 = __webpack_require__(/*! #dom/events */ \"./client/dom/events/index.js\");\n/* import */ var _dom_files__rspack_import_9 = __webpack_require__(/*! #dom/files */ \"./client/dom/files.js\");\n/* import */ var _common_cloudfunc__rspack_import_10 = __webpack_require__(/*! #common/cloudfunc */ \"./common/cloudfunc.js\");\n/* import */ var _dom_images__rspack_import_11 = __webpack_require__(/*! #dom/images */ \"./client/dom/images.js\");\n/* import */ var _input_js__rspack_import_12 = __webpack_require__(/*! ./input.js */ \"./client/modules/config/input.js\");\n/* import */ var _pick_renderer_js__rspack_import_13 = __webpack_require__(/*! ./pick-renderer.js */ \"./client/modules/config/pick-renderer.js\");\n/* import */ var _sync_enabled_js__rspack_import_14 = __webpack_require__(/*! ./sync-enabled.js */ \"./client/modules/config/sync-enabled.js\");\n/* import */ var _rendy_render_js__rspack_import_15 = __webpack_require__(/*! ./rendy/render.js */ \"./client/modules/config/rendy/render.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst { CloudCmd, DOM } = globalThis;\nconst { Dialog, setTitle } = DOM;\nconst Name = 'Config';\nconst loadSocket = (0,es6_promisify__rspack_import_4.promisify)(DOM.loadSocket);\nconst showLoad = ()=>{\n _dom_images__rspack_import_11.show.load('top');\n};\nconst addKey = currify__rspack_import_1((fn, input)=>{\n _dom_events__rspack_import_8.addKey(input, fn);\n return input;\n});\nconst addChange = currify__rspack_import_1((fn, input)=>{\n _dom_events__rspack_import_8.add('change', input, fn);\n return input;\n});\nconst Config = {};\nlet Template;\nconst loadCSS = load_js__rspack_import_6.css;\nconst renderPutout = async (config, template)=>{\n await CloudCmd.ConfigPutout();\n return CloudCmd.ConfigPutout.render(config, template);\n};\nconst renderers = {\n rendy: _rendy_render_js__rspack_import_15.render,\n putout: renderPutout\n};\nconst noop = ()=>{};\nconst attachPutout = (element, options)=>CloudCmd.ConfigPutout.attach(element, options);\nconst attachers = {\n rendy: noop,\n putout: attachPutout\n};\nconst enablers = {\n rendy: _sync_enabled_js__rspack_import_14.syncEnabled,\n putout: noop\n};\nasync function init() {\n if (!CloudCmd.config('configDialog')) return;\n showLoad();\n const { DIR_DIST } = CloudCmd;\n [Template] = await Promise.all([\n _dom_files__rspack_import_9.get('config-tmpl'),\n loadSocket(),\n loadCSS(`${DIR_DIST}/config.css`),\n CloudCmd.View()\n ]);\n initSocket();\n}\nconst { config, Key } = CloudCmd;\nlet Element;\nlet Form;\nlet enable = noop;\nfunction getHost() {\n const { host, origin, protocol } = location;\n return origin || `${protocol}//${host}`;\n}\nfunction initSocket() {\n const href = getHost();\n const { prefixSocket, prefix } = CloudCmd;\n const ONE_MINUTE = 60 * 1000;\n const socket = globalThis.io.connect(href + prefixSocket + '/config', {\n reconnectionAttempts: Infinity,\n reconnectionDelay: ONE_MINUTE,\n path: `${prefix}/socket.io`\n });\n const save = (data)=>{\n onSave(data);\n socket.send(data);\n };\n authCheck(socket);\n socket.on('connect', ()=>{\n Config.save = save;\n });\n socket.on('message', onSave);\n socket.on('log', CloudCmd.log);\n socket.on('disconnect', ()=>{\n Config.save = saveHttp;\n });\n socket.on('err', Dialog.alert);\n}\nfunction authCheck(socket) {\n socket.emit('auth', config('username'), config('password'));\n socket.on('reject', wraptile__rspack_import_2(Dialog.alert, 'Wrong credentials!'));\n}\nConfig.save = saveHttp;\nasync function show() {\n if (!CloudCmd.config('configDialog')) return;\n await fillTemplate();\n}\nasync function fillTemplate() {\n const [error, config] = await (0,try_to_catch__rspack_import_5.tryToCatch)(_dom_files__rspack_import_9.get, 'config');\n if (error) return Dialog.alert('Could not load config!');\n const engine = CloudCmd.config('engine');\n const render = (0,_pick_renderer_js__rspack_import_13.pickRenderer)(engine, renderers);\n const attach = (0,_pick_renderer_js__rspack_import_13.pickRenderer)(engine, attachers);\n const innerHTML = await render(config, Template);\n enable = (0,_pick_renderer_js__rspack_import_13.pickRenderer)(engine, enablers);\n Element = _cloudcmd_create_element__rspack_import_7('form', {\n className: 'config',\n innerHTML\n });\n Form = attach(Element, {\n config,\n template: Template\n });\n const inputs = document.querySelectorAll('input, select', Element);\n const [inputFirst] = inputs;\n let afterShow;\n if (inputFirst) {\n enable(Element);\n afterShow = inputFirst.focus.bind(inputFirst);\n }\n const getTarget = ({ target })=>target;\n const handleChange = squad__rspack_import_3(onChange, getTarget);\n Array.from(inputs).map(addKey(onKey)).map(addChange(handleChange));\n const autoSize = true;\n CloudCmd.View.show(Element, {\n autoSize,\n afterShow\n });\n}\nfunction hide() {\n CloudCmd.View.hide();\n}\nasync function onChange(el) {\n const obj = {};\n const name = _input_js__rspack_import_12.getName(el);\n const data = _input_js__rspack_import_12.getValue(name, Element);\n if (name === 'name') onNameChange(data);\n enable(Element);\n obj[name] = data;\n await Config.save(obj);\n}\nfunction onSave(obj) {\n for (const name of Object.keys(obj)){\n const data = obj[name];\n CloudCmd._config(name, data);\n _input_js__rspack_import_12.setValue(name, data, Element);\n Form?.set(name, data);\n }\n}\nasync function saveHttp(obj) {\n const { RESTful } = DOM;\n const [e] = await RESTful.Config.write(obj);\n if (e) return;\n onSave(obj);\n}\nfunction onNameChange(name) {\n setTitle((0,_common_cloudfunc__rspack_import_10.getTitle)({\n name\n }));\n}\nasync function onKey({ keyCode, target }) {\n if (keyCode === Key.ESC) return hide();\n if (keyCode === Key.ENTER) return await onChange(target);\n}\nCloudCmd[Name] = {\n init,\n show,\n hide\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/index.js\n}");
1362
1362
 
1363
1363
  },
1364
1364
  "./client/modules/config/input.js"
@@ -1369,6 +1369,168 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1369
1369
  "use strict";
1370
1370
  eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n convert: () => (convert),\n getElementByName: () => (getElementByName),\n getName: () => (getName),\n getValue: () => (getValue),\n setValue: () => (setValue)\n});\n/* import */ var _common_entity__rspack_import_0 = __webpack_require__(/*! #common/entity */ \"./common/entity.js\");\n\nconst isBool = (a)=>typeof a === 'boolean';\nconst isString = (a)=>typeof a === 'string';\nconst { keys } = Object;\nfunction getElementByName(selector, element) {\n const str = `[data-name=\"js-${selector}\"]`;\n return element.querySelector(str);\n}\nconst getName = (element)=>{\n const name = element.getAttribute('data-name').replace(/^js-/, '');\n return name;\n};\nconst convert = (config)=>{\n const result = config;\n for (const name of keys(config)){\n const item = config[name];\n if (isBool(item)) {\n result[name] = setState(item);\n continue;\n }\n if (isString(item)) {\n result[name] = (0,_common_entity__rspack_import_0.encode)(item);\n continue;\n }\n }\n return result;\n};\nfunction setState(state) {\n if (state) return ' checked';\n return '';\n}\nconst getValue = (name, element)=>{\n const el = getElementByName(name, element);\n const { type } = el;\n if (type === 'checkbox') return el.checked;\n if (type === 'number') return Number(el.value);\n return el.value;\n};\nconst setValue = (name, value, element)=>{\n const el = getElementByName(name, element);\n const { type } = el;\n switch(type){\n case 'checkbox':\n el.checked = value;\n break;\n default:\n el.value = value;\n break;\n }\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/input.js\n}");
1371
1371
 
1372
+ },
1373
+ "./client/modules/config/pick-renderer.js"
1374
+ /*!************************************************!*\
1375
+ !*** ./client/modules/config/pick-renderer.js ***!
1376
+ \************************************************/
1377
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1378
+ "use strict";
1379
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n pickRenderer: () => (pickRenderer)\n});\nconst pickRenderer = (name, { rendy, ...renderers })=>renderers[name] || rendy;\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/pick-renderer.js\n}");
1380
+
1381
+ },
1382
+ "./client/modules/config/putout/encode-markup.js"
1383
+ /*!*******************************************************!*\
1384
+ !*** ./client/modules/config/putout/encode-markup.js ***!
1385
+ \*******************************************************/
1386
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1387
+ "use strict";
1388
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n encodeMarkup: () => (encodeMarkup)\n});\n/* import */ var _common_entity__rspack_import_0 = __webpack_require__(/*! #common/entity */ \"./common/entity.js\");\n\nconst encodeMarkup = (str)=>(0,_common_entity__rspack_import_0.encode)(String(str).replaceAll('&', '&amp;'));\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/encode-markup.js\n}");
1389
+
1390
+ },
1391
+ "./client/modules/config/putout/form/form.js"
1392
+ /*!***************************************************!*\
1393
+ !*** ./client/modules/config/putout/form/form.js ***!
1394
+ \***************************************************/
1395
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1396
+ "use strict";
1397
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n attachForm: () => (attachForm)\n});\n/* import */ var _input_js__rspack_import_0 = __webpack_require__(/*! ../../input.js */ \"./client/modules/config/input.js\");\n/* import */ var _render_js__rspack_import_1 = __webpack_require__(/*! ../render.js */ \"./client/modules/config/putout/render.js\");\n/* import */ var _actions_json__rspack_import_2 = __webpack_require__(/*! ./actions.json */ \"./client/modules/config/putout/form/actions.json\");\n/* import */ var _state_js__rspack_import_3 = __webpack_require__(/*! ./state.js */ \"./client/modules/config/putout/form/state.js\");\n/* import */ var _listen_js__rspack_import_4 = __webpack_require__(/*! ./listen.js */ \"./client/modules/config/putout/form/listen.js\");\n/* import */ var _patch_js__rspack_import_5 = __webpack_require__(/*! ./patch.js */ \"./client/modules/config/putout/form/patch.js\");\n\n\n\n\n\n\nconst noop = ()=>{};\nconst parse = (html)=>{\n const template = document.createElement('template');\n template.innerHTML = html;\n return template.content;\n};\nconst attachForm = (element, { config, template, onCommit = noop })=>{\n const state = (0,_state_js__rspack_import_3.createState)(config);\n const stats = {\n renders: 0\n };\n const draw = ()=>{\n ++stats.renders;\n return (0,_render_js__rspack_import_1.render)(state.read(), template);\n };\n const stop = (0,_listen_js__rspack_import_4.listen)(element, _actions_json__rspack_import_2, ({ target, render })=>{\n const name = (0,_input_js__rspack_import_0.getName)(target);\n const value = (0,_input_js__rspack_import_0.getValue)(name, element);\n state.commit(name, value);\n if (render) (0,_patch_js__rspack_import_5.patch)(element, parse(draw()), {\n activeElement: document.activeElement\n });\n onCommit(name, value);\n });\n return {\n stop,\n stats,\n set: state.commit,\n read: state.read\n };\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/form/form.js\n}");
1398
+
1399
+ },
1400
+ "./client/modules/config/putout/form/listen.js"
1401
+ /*!*****************************************************!*\
1402
+ !*** ./client/modules/config/putout/form/listen.js ***!
1403
+ \*****************************************************/
1404
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1405
+ "use strict";
1406
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n listen: () => (listen)\n});\nconst hasName = ({ dataset })=>Boolean(dataset?.name);\nconst listen = (element, actions, onAction)=>{\n const handlers = [];\n for (const { event, render } of actions){\n const handler = ({ target })=>{\n if (hasName(target)) onAction({\n target,\n render\n });\n };\n element.addEventListener(event, handler);\n handlers.push([\n event,\n handler\n ]);\n }\n return ()=>{\n for (const [event, handler] of handlers)element.removeEventListener(event, handler);\n };\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/form/listen.js\n}");
1407
+
1408
+ },
1409
+ "./client/modules/config/putout/form/patch.js"
1410
+ /*!****************************************************!*\
1411
+ !*** ./client/modules/config/putout/form/patch.js ***!
1412
+ \****************************************************/
1413
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1414
+ "use strict";
1415
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n patch: () => (patch)\n});\nconst isCheckbox = ({ type })=>type === 'checkbox';\nconst removeMissing = (live, next)=>{\n const attributes = Array.from(live.attributes);\n for (const { name } of attributes){\n if (!next.hasAttribute(name)) live.removeAttribute(name);\n }\n};\nconst setChanged = (live, next, isFocused)=>{\n const attributes = Array.from(next.attributes);\n for (const { name, value } of attributes){\n if (name === 'value' && isFocused) continue;\n if (live.getAttribute(name) !== value) live.setAttribute(name, value);\n }\n};\nconst patch = (live, next, { activeElement })=>{\n const liveElements = Array.from(live.querySelectorAll('*'));\n const nextElements = Array.from(next.querySelectorAll('*'));\n if (liveElements.length !== nextElements.length) throw Error('The structure of the form changed');\n for (const [index, element] of liveElements.entries()){\n const nextElement = nextElements[index];\n removeMissing(element, nextElement);\n setChanged(element, nextElement, element === activeElement);\n if (isCheckbox(element)) element.checked = nextElement.hasAttribute('checked');\n }\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/form/patch.js\n}");
1416
+
1417
+ },
1418
+ "./client/modules/config/putout/form/state.js"
1419
+ /*!****************************************************!*\
1420
+ !*** ./client/modules/config/putout/form/state.js ***!
1421
+ \****************************************************/
1422
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1423
+ "use strict";
1424
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n createState: () => (createState)\n});\nconst createState = (config)=>{\n let state = {\n ...config\n };\n const read = ()=>state;\n const commit = (name, value)=>{\n state = {\n ...state,\n [name]: value\n };\n };\n return {\n read,\n commit\n };\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/form/state.js\n}");
1425
+
1426
+ },
1427
+ "./client/modules/config/putout/from-hbs.js"
1428
+ /*!**************************************************!*\
1429
+ !*** ./client/modules/config/putout/from-hbs.js ***!
1430
+ \**************************************************/
1431
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1432
+ "use strict";
1433
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n fromHbs: () => (fromHbs)\n});\n/* import */ var _putout_processor_html__rspack_import_0 = __webpack_require__(/*! @putout/processor-html */ \"@putout/processor-html\");\n\nconst VISIBLE = /\\{\\{\\s*(config\\w+)\\s*\\}\\}/g;\nconst PLACEHOLDER = /\\{\\{\\s*[\\w-]+\\s*\\}\\}/g;\nconst INPUT = /<input([^>]*?)\\s*\\/?>/g;\nconst fromHbs = (template)=>{\n const html = template.replace(VISIBLE, 'data-visible-by=\"$1\"').replace(PLACEHOLDER, '').replace(INPUT, '<input$1/>');\n const [{ source }] = (0,_putout_processor_html__rspack_import_0.branch)(html);\n return source;\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/from-hbs.js\n}");
1434
+
1435
+ },
1436
+ "./client/modules/config/putout/index.js"
1437
+ /*!***********************************************!*\
1438
+ !*** ./client/modules/config/putout/index.js ***!
1439
+ \***********************************************/
1440
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1441
+ "use strict";
1442
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* import */ var _render_js__rspack_import_0 = __webpack_require__(/*! ./render.js */ \"./client/modules/config/putout/render.js\");\n/* import */ var _form_form_js__rspack_import_1 = __webpack_require__(/*! ./form/form.js */ \"./client/modules/config/putout/form/form.js\");\n\n\nconst noop = ()=>{};\nconst { CloudCmd } = globalThis;\nCloudCmd.ConfigPutout = {\n init: noop,\n render: _render_js__rspack_import_0.render,\n attach: _form_form_js__rspack_import_1.attachForm\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/index.js\n}");
1443
+
1444
+ },
1445
+ "./client/modules/config/putout/jsx.js"
1446
+ /*!*********************************************!*\
1447
+ !*** ./client/modules/config/putout/jsx.js ***!
1448
+ \*********************************************/
1449
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1450
+ "use strict";
1451
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n addFlag: () => (addFlag),\n escape: () => (escape),\n getAttribute: () => (getAttribute),\n getName: () => (getName),\n getText: () => (getText),\n hasAttribute: () => (hasAttribute),\n removeAttribute: () => (removeAttribute),\n setAttribute: () => (setAttribute),\n toOptionName: () => (toOptionName)\n});\n/* import */ var putout__rspack_import_0 = __webpack_require__(/*! putout */ \"putout\");\n/* import */ var _encode_markup_js__rspack_import_1 = __webpack_require__(/*! ./encode-markup.js */ \"./client/modules/config/putout/encode-markup.js\");\n\n\nconst { jsxAttribute, jsxIdentifier, stringLiteral } = putout__rspack_import_0.types;\nconst { getAttributeNode, setAttributeValue } = putout__rspack_import_0.operator;\nconst isText = ({ type })=>type === 'JSXText';\nconst trim = ({ value })=>value.trim();\nconst isNotName = (name)=>({ name: a })=>a.name !== name;\nconst escape = _encode_markup_js__rspack_import_1.encodeMarkup;\nconst getName = ({ node })=>node.openingElement.name.name;\nconst hasAttribute = (path, name)=>Boolean(getAttributeNode(path, name));\nconst toOptionName = (name)=>name.replace(/^js-/, '');\nconst getAttribute = (path, name)=>{\n const attribute = getAttributeNode(path, name);\n if (!attribute) return '';\n return attribute.value.value;\n};\nconst setAttribute = (path, name, value)=>{\n const escaped = escape(value);\n if (hasAttribute(path, name)) return setAttributeValue(path, name, escaped);\n const attribute = jsxAttribute(jsxIdentifier(name), stringLiteral(escaped));\n path.node.openingElement.attributes.push(attribute);\n};\nconst addFlag = (path, name)=>{\n const attribute = jsxAttribute(jsxIdentifier(name));\n path.node.openingElement.attributes.push(attribute);\n};\nconst removeAttribute = ({ node }, name)=>{\n const { openingElement } = node;\n openingElement.attributes = openingElement.attributes.filter(isNotName(name));\n};\nconst getText = ({ node })=>node.children.filter(isText).map(trim).join('');\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/jsx.js\n}");
1452
+
1453
+ },
1454
+ "./client/modules/config/putout/render.js"
1455
+ /*!************************************************!*\
1456
+ !*** ./client/modules/config/putout/render.js ***!
1457
+ \************************************************/
1458
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1459
+ "use strict";
1460
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n render: () => (render)\n});\n/* import */ var putout__rspack_import_0 = __webpack_require__(/*! putout */ \"putout\");\n/* import */ var _putout_processor_html__rspack_import_1 = __webpack_require__(/*! @putout/processor-html */ \"@putout/processor-html\");\n/* import */ var _rules_apply_checked_index_js__rspack_import_2 = __webpack_require__(/*! ./rules/apply-checked/index.js */ \"./client/modules/config/putout/rules/apply-checked/index.js\");\n/* import */ var _rules_apply_value_index_js__rspack_import_3 = __webpack_require__(/*! ./rules/apply-value/index.js */ \"./client/modules/config/putout/rules/apply-value/index.js\");\n/* import */ var _rules_apply_selected_index_js__rspack_import_4 = __webpack_require__(/*! ./rules/apply-selected/index.js */ \"./client/modules/config/putout/rules/apply-selected/index.js\");\n/* import */ var _rules_apply_visibility_index_js__rspack_import_5 = __webpack_require__(/*! ./rules/apply-visibility/index.js */ \"./client/modules/config/putout/rules/apply-visibility/index.js\");\n/* import */ var _rules_apply_choices_index_js__rspack_import_6 = __webpack_require__(/*! ./rules/apply-choices/index.js */ \"./client/modules/config/putout/rules/apply-choices/index.js\");\n/* import */ var _rules_apply_enabled_index_js__rspack_import_7 = __webpack_require__(/*! ./rules/apply-enabled/index.js */ \"./client/modules/config/putout/rules/apply-enabled/index.js\");\n/* import */ var _choices_json__rspack_import_8 = __webpack_require__(/*! ./choices.json */ \"./client/modules/config/putout/choices.json\");\n/* import */ var _from_hbs_js__rspack_import_9 = __webpack_require__(/*! ./from-hbs.js */ \"./client/modules/config/putout/from-hbs.js\");\n\n\n\n\n\n\n\n\n\n\nconst render = (config, template)=>{\n const options = [\n 'on',\n {\n config,\n choices: _choices_json__rspack_import_8\n }\n ];\n const { code } = (0,putout__rspack_import_0.putout)((0,_from_hbs_js__rspack_import_9.fromHbs)(template), {\n rules: {\n 'config-form/apply-choices': options,\n 'config-form/apply-checked': options,\n 'config-form/apply-value': options,\n 'config-form/apply-selected': options,\n 'config-form/apply-visibility': options,\n 'config-form/apply-enabled': options\n },\n plugins: [\n [\n 'config-form/apply-choices',\n _rules_apply_choices_index_js__rspack_import_6\n ],\n [\n 'config-form/apply-checked',\n _rules_apply_checked_index_js__rspack_import_2\n ],\n [\n 'config-form/apply-value',\n _rules_apply_value_index_js__rspack_import_3\n ],\n [\n 'config-form/apply-selected',\n _rules_apply_selected_index_js__rspack_import_4\n ],\n [\n 'config-form/apply-visibility',\n _rules_apply_visibility_index_js__rspack_import_5\n ],\n [\n 'config-form/apply-enabled',\n _rules_apply_enabled_index_js__rspack_import_7\n ]\n ]\n });\n return (0,_putout_processor_html__rspack_import_1.merge)('', [\n code\n ]);\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/render.js\n}");
1461
+
1462
+ },
1463
+ "./client/modules/config/putout/rules/apply-checked/index.js"
1464
+ /*!*******************************************************************!*\
1465
+ !*** ./client/modules/config/putout/rules/apply-checked/index.js ***!
1466
+ \*******************************************************************/
1467
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1468
+ "use strict";
1469
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n filter: () => (filter),\n fix: () => (fix),\n include: () => (include),\n report: () => (report)\n});\n/* import */ var _jsx_js__rspack_import_0 = __webpack_require__(/*! ../../jsx.js */ \"./client/modules/config/putout/jsx.js\");\n\nconst report = ()=>'Check the checkbox of an option that is on';\nconst include = ()=>[\n 'JSXElement'\n ];\nconst isCheckbox = (path)=>(0,_jsx_js__rspack_import_0.getName)(path) === 'input' && (0,_jsx_js__rspack_import_0.getAttribute)(path, 'type') === 'checkbox';\nconst filter = (path, { options })=>{\n if (!isCheckbox(path)) return false;\n const name = (0,_jsx_js__rspack_import_0.toOptionName)((0,_jsx_js__rspack_import_0.getAttribute)(path, 'data-name'));\n return options.config[name] && !(0,_jsx_js__rspack_import_0.hasAttribute)(path, 'checked');\n};\nconst fix = (path)=>(0,_jsx_js__rspack_import_0.addFlag)(path, 'checked');\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/rules/apply-checked/index.js\n}");
1470
+
1471
+ },
1472
+ "./client/modules/config/putout/rules/apply-choices/index.js"
1473
+ /*!*******************************************************************!*\
1474
+ !*** ./client/modules/config/putout/rules/apply-choices/index.js ***!
1475
+ \*******************************************************************/
1476
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1477
+ "use strict";
1478
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n filter: () => (filter),\n fix: () => (fix),\n include: () => (include),\n report: () => (report)\n});\n/* import */ var putout__rspack_import_0 = __webpack_require__(/*! putout */ \"putout\");\n/* import */ var _jsx_js__rspack_import_1 = __webpack_require__(/*! ../../jsx.js */ \"./client/modules/config/putout/jsx.js\");\n\n\nconst { jsxClosingElement, jsxElement, jsxIdentifier, jsxOpeningElement, jsxText } = putout__rspack_import_0.types;\nconst report = ()=>'Take the options of the select from the list of choices';\nconst include = ()=>[\n 'JSXElement'\n ];\nconst isOption = ({ type, openingElement })=>type === 'JSXElement' && openingElement.name.name === 'option';\nconst toText = (node)=>(0,_jsx_js__rspack_import_1.getText)({\n node\n });\nconst getChoices = (path, { options })=>options.choices[(0,_jsx_js__rspack_import_1.toOptionName)((0,_jsx_js__rspack_import_1.getAttribute)(path, 'data-name'))];\nconst getCurrent = ({ node })=>node.children.filter(isOption).map(toText);\nconst createOption = (value)=>jsxElement(jsxOpeningElement(jsxIdentifier('option'), []), jsxClosingElement(jsxIdentifier('option')), [\n jsxText(value)\n ]);\nconst filter = (path, { options })=>{\n if ((0,_jsx_js__rspack_import_1.getName)(path) !== 'select') return false;\n const choices = getChoices(path, {\n options\n });\n if (!choices) return false;\n return getCurrent(path).join() !== choices.join();\n};\nconst fix = (path, { options })=>{\n const choices = getChoices(path, {\n options\n });\n path.node.children = choices.map(createOption);\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/rules/apply-choices/index.js\n}");
1479
+
1480
+ },
1481
+ "./client/modules/config/putout/rules/apply-enabled/index.js"
1482
+ /*!*******************************************************************!*\
1483
+ !*** ./client/modules/config/putout/rules/apply-enabled/index.js ***!
1484
+ \*******************************************************************/
1485
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1486
+ "use strict";
1487
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n filter: () => (filter),\n fix: () => (fix),\n include: () => (include),\n report: () => (report)\n});\n/* import */ var _jsx_js__rspack_import_0 = __webpack_require__(/*! ../../jsx.js */ \"./client/modules/config/putout/jsx.js\");\n\nconst report = ()=>'Disable the control when the checkbox it depends on is off';\nconst include = ()=>[\n 'JSXElement'\n ];\nconst filter = (path, { options })=>{\n if (!(0,_jsx_js__rspack_import_0.hasAttribute)(path, 'data-enabled-by')) return false;\n const name = (0,_jsx_js__rspack_import_0.getAttribute)(path, 'data-enabled-by');\n return !options.config[name] && !(0,_jsx_js__rspack_import_0.hasAttribute)(path, 'disabled');\n};\nconst fix = (path)=>(0,_jsx_js__rspack_import_0.addFlag)(path, 'disabled');\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/rules/apply-enabled/index.js\n}");
1488
+
1489
+ },
1490
+ "./client/modules/config/putout/rules/apply-selected/index.js"
1491
+ /*!********************************************************************!*\
1492
+ !*** ./client/modules/config/putout/rules/apply-selected/index.js ***!
1493
+ \********************************************************************/
1494
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1495
+ "use strict";
1496
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n filter: () => (filter),\n fix: () => (fix),\n include: () => (include),\n report: () => (report)\n});\n/* import */ var _jsx_js__rspack_import_0 = __webpack_require__(/*! ../../jsx.js */ \"./client/modules/config/putout/jsx.js\");\n\nconst report = ()=>'Select the option that is the value of the option of the config';\nconst include = ()=>[\n 'JSXElement'\n ];\nconst filter = (path, { options })=>{\n if ((0,_jsx_js__rspack_import_0.getName)(path) !== 'option') return false;\n const name = (0,_jsx_js__rspack_import_0.toOptionName)((0,_jsx_js__rspack_import_0.getAttribute)(path.parentPath, 'data-name'));\n return options.config[name] === (0,_jsx_js__rspack_import_0.getText)(path) && !(0,_jsx_js__rspack_import_0.hasAttribute)(path, 'selected');\n};\nconst fix = (path)=>(0,_jsx_js__rspack_import_0.addFlag)(path, 'selected');\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/rules/apply-selected/index.js\n}");
1497
+
1498
+ },
1499
+ "./client/modules/config/putout/rules/apply-value/index.js"
1500
+ /*!*****************************************************************!*\
1501
+ !*** ./client/modules/config/putout/rules/apply-value/index.js ***!
1502
+ \*****************************************************************/
1503
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1504
+ "use strict";
1505
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n filter: () => (filter),\n fix: () => (fix),\n include: () => (include),\n report: () => (report)\n});\n/* import */ var _jsx_js__rspack_import_0 = __webpack_require__(/*! ../../jsx.js */ \"./client/modules/config/putout/jsx.js\");\n\nconst isUndefined = (a)=>typeof a === 'undefined';\nconst report = ()=>'Set the value of the input from the option';\nconst include = ()=>[\n 'JSXElement'\n ];\nconst isEmpty = (a)=>isUndefined(a) || a === null;\nconst toText = (a)=>isEmpty(a) ? '' : String(a);\nconst isInput = (path)=>(0,_jsx_js__rspack_import_0.getName)(path) === 'input' && (0,_jsx_js__rspack_import_0.getAttribute)(path, 'type') !== 'checkbox';\nconst getText = (path, { config })=>{\n const name = (0,_jsx_js__rspack_import_0.toOptionName)((0,_jsx_js__rspack_import_0.getAttribute)(path, 'data-name'));\n return toText(config[name]);\n};\nconst filter = (path, { options })=>{\n if (!isInput(path)) return false;\n return (0,_jsx_js__rspack_import_0.getAttribute)(path, 'value') !== (0,_jsx_js__rspack_import_0.escape)(getText(path, options));\n};\nconst fix = (path, { options })=>(0,_jsx_js__rspack_import_0.setAttribute)(path, 'value', getText(path, options));\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/rules/apply-value/index.js\n}");
1506
+
1507
+ },
1508
+ "./client/modules/config/putout/rules/apply-visibility/index.js"
1509
+ /*!**********************************************************************!*\
1510
+ !*** ./client/modules/config/putout/rules/apply-visibility/index.js ***!
1511
+ \**********************************************************************/
1512
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1513
+ "use strict";
1514
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n filter: () => (filter),\n fix: () => (fix),\n include: () => (include),\n report: () => (report)\n});\n/* import */ var _jsx_js__rspack_import_0 = __webpack_require__(/*! ../../jsx.js */ \"./client/modules/config/putout/jsx.js\");\n\nconst report = ()=>'Hide the item when its option is off';\nconst include = ()=>[\n 'JSXElement'\n ];\nconst filter = (path)=>(0,_jsx_js__rspack_import_0.hasAttribute)(path, 'data-visible-by');\nconst fix = (path, { options })=>{\n const name = (0,_jsx_js__rspack_import_0.getAttribute)(path, 'data-visible-by');\n if (!options.config[name]) (0,_jsx_js__rspack_import_0.addFlag)(path, 'hidden');\n (0,_jsx_js__rspack_import_0.removeAttribute)(path, 'data-visible-by');\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/rules/apply-visibility/index.js\n}");
1515
+
1516
+ },
1517
+ "./client/modules/config/rendy/render.js"
1518
+ /*!***********************************************!*\
1519
+ !*** ./client/modules/config/rendy/render.js ***!
1520
+ \***********************************************/
1521
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1522
+ "use strict";
1523
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n render: () => (render)\n});\n/* import */ var rendy__rspack_import_0 = __webpack_require__(/*! rendy */ \"./node_modules/rendy/lib/rendy.js\");\n/* import */ var _input_js__rspack_import_1 = __webpack_require__(/*! ../input.js */ \"./client/modules/config/input.js\");\n\n\nconst render = (config, template)=>{\n const { editor, engine, menu, packer, columns, theme, configAuth, configPort, ...obj } = _input_js__rspack_import_1.convert(config);\n obj[`${menu}-selected`] = 'selected';\n obj[`${editor}-selected`] = 'selected';\n obj[`${engine}-selected`] = 'selected';\n obj[`${packer}-selected`] = 'selected';\n obj[`${columns}-selected`] = 'selected';\n obj[`${theme}-selected`] = 'selected';\n obj.configAuth = configAuth ? '' : 'hidden';\n obj.configPort = configPort ? '' : 'hidden';\n return (0,rendy__rspack_import_0.rendy)(template, obj);\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/rendy/render.js\n}");
1524
+
1525
+ },
1526
+ "./client/modules/config/sync-enabled.js"
1527
+ /*!***********************************************!*\
1528
+ !*** ./client/modules/config/sync-enabled.js ***!
1529
+ \***********************************************/
1530
+ (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1531
+ "use strict";
1532
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n syncEnabled: () => (syncEnabled)\n});\nconst syncEnabled = (root)=>{\n const dependents = root.querySelectorAll('[data-enabled-by]');\n for (const element of dependents){\n const name = element.dataset.enabledBy;\n const checkbox = root.querySelector(`[data-name=\"js-${name}\"]`);\n element.disabled = !checkbox.checked;\n }\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/sync-enabled.js\n}");
1533
+
1372
1534
  },
1373
1535
  "./client/modules/contact.js"
1374
1536
  /*!***********************************!*\
@@ -1657,6 +1819,24 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1657
1819
  "use strict";
1658
1820
  eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n escapeRegExp: () => (escapeRegExp),\n findObjByNameInArr: () => (findObjByNameInArr),\n getExt: () => (getExt),\n getRegExp: () => (getRegExp),\n time: () => (time),\n timeEnd: () => (timeEnd)\n});\n/* import */ var execon__rspack_import_0 = __webpack_require__(/*! execon */ \"./node_modules/execon/lib/exec.js\");\n\nconst isString = (a)=>typeof a === 'string';\nconst escapeRegExp = (str)=>{\n const isStr = isString(str);\n if (isStr) str = str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n return str;\n};\n/**\n * get regexp from wild card\n */ const getRegExp = (wildcard)=>{\n const escaped = `^${wildcard // search from start of line\n .replace(/\\./g, '\\\\.').replace(/\\*/g, '.*').replace('?', '.?')}$`;\n // search to end of line\n return RegExp(escaped);\n};\n/**\n * function gets file extension\n *\n * @param name\n * @return ext\n */ const getExt = (name)=>{\n const isStr = isString(name);\n if (!isStr) return '';\n const dot = name.lastIndexOf('.');\n if (~dot) return name.substr(dot);\n return '';\n};\n/**\n * find object by name in array\n *\n * @param array\n * @param name\n */ const findObjByNameInArr = (array, name)=>{\n let ret;\n if (!Array.isArray(array)) throw Error('array should be array!');\n if (!isString(name)) throw Error('name should be string!');\n array.some((item)=>{\n const is = item.name === name;\n const isArray = Array.isArray(item);\n if (is) {\n ret = item;\n return is;\n }\n if (!isArray) return is;\n return item.some((item)=>{\n const is = item.name === name;\n if (is) ret = item.data;\n return is;\n });\n });\n return ret;\n};\n/**\n * start timer\n * @param name\n */ const time = (name)=>{\n execon__rspack_import_0.ifExist(console, 'time', [\n name\n ]);\n};\n/**\n * stop timer\n * @param name\n */ const timeEnd = (name)=>{\n execon__rspack_import_0.ifExist(console, 'timeEnd', [\n name\n ]);\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/common/util.js\n}");
1659
1821
 
1822
+ },
1823
+ "./client/modules/config/putout/choices.json"
1824
+ /*!***************************************************!*\
1825
+ !*** ./client/modules/config/putout/choices.json ***!
1826
+ \***************************************************/
1827
+ (module) {
1828
+ "use strict";
1829
+ eval("{module.exports = /*#__PURE__*/JSON.parse('{\"theme\":[\"light\",\"dark\"],\"columns\":[\"name-size-date-owner-mode\",\"name-size-date-time\",\"name-size-date\",\"name-size\"],\"editor\":[\"edward\",\"dword\",\"deepword\",\"qword\"],\"engine\":[\"rendy\",\"putout\"],\"menu\":[\"aleman\",\"supermenu\",\"lunes\"],\"packer\":[\"tar\",\"zip\"]}')\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/choices.json\n}");
1830
+
1831
+ },
1832
+ "./client/modules/config/putout/form/actions.json"
1833
+ /*!********************************************************!*\
1834
+ !*** ./client/modules/config/putout/form/actions.json ***!
1835
+ \********************************************************/
1836
+ (module) {
1837
+ "use strict";
1838
+ eval("{module.exports = /*#__PURE__*/JSON.parse('[{\"event\":\"input\",\"render\":false},{\"event\":\"change\",\"render\":true}]')\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/putout/form/actions.json\n}");
1839
+
1660
1840
  },
1661
1841
 
1662
1842
  }]);
@@ -0,0 +1,172 @@
1
+ (() => {
2
+ "use strict";
3
+ var __webpack_modules__ = ({
4
+ "@putout/processor-html"
5
+ /*!***********************************************!*\
6
+ !*** external "CloudCmdPutout.processorHtml" ***!
7
+ \***********************************************/
8
+ (module) {
9
+ module.exports = CloudCmdPutout.processorHtml;
10
+
11
+ },
12
+ "putout"
13
+ /*!****************************************!*\
14
+ !*** external "CloudCmdPutout.putout" ***!
15
+ \****************************************/
16
+ (module) {
17
+ module.exports = CloudCmdPutout.putout;
18
+
19
+ },
20
+
21
+ });
22
+ // The module cache
23
+ var __webpack_module_cache__ = {};
24
+
25
+ // The require function
26
+ function __webpack_require__(moduleId) {
27
+
28
+ // Check if module is in cache
29
+ var cachedModule = __webpack_module_cache__[moduleId];
30
+ if (cachedModule !== undefined) {
31
+ return cachedModule.exports;
32
+ }
33
+ // Create a new module (and put it into the cache)
34
+ var module = (__webpack_module_cache__[moduleId] = {
35
+ exports: {}
36
+ });
37
+ // Execute the module function
38
+ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
39
+
40
+ // Return the exports of the module
41
+ return module.exports;
42
+
43
+ }
44
+
45
+ // expose the modules object (__webpack_modules__)
46
+ __webpack_require__.m = __webpack_modules__;
47
+
48
+ // webpack/runtime/define_property_getters
49
+ (() => {
50
+ __webpack_require__.d = (exports, getters, values) => {
51
+ var define = (defs, kind) => {
52
+ for(var key in defs) {
53
+ if(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {
54
+ Object.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });
55
+ }
56
+ }
57
+ };
58
+ define(getters, "get");
59
+ define(values, "value");
60
+ };
61
+ })();
62
+ // webpack/runtime/global
63
+ (() => {
64
+ __webpack_require__.g = (() => {
65
+ if (typeof globalThis === 'object') return globalThis;
66
+ try {
67
+ return this || new Function('return this')();
68
+ } catch (e) {
69
+ if (typeof window === 'object') return window;
70
+ }
71
+ })();
72
+ })();
73
+ // webpack/runtime/has_own_property
74
+ (() => {
75
+ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
76
+ })();
77
+ // webpack/runtime/make_namespace_object
78
+ (() => {
79
+ // define __esModule on exports
80
+ __webpack_require__.r = (exports) => {
81
+ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
82
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
83
+ }
84
+ Object.defineProperty(exports, '__esModule', { value: true });
85
+ };
86
+ })();
87
+ // webpack/runtime/on_chunk_loaded
88
+ (() => {
89
+ var deferred = [];
90
+ __webpack_require__.O = (result, chunkIds, fn, priority) => {
91
+ if (chunkIds) {
92
+ priority = priority || 0;
93
+ for (var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--)
94
+ deferred[i] = deferred[i - 1];
95
+ deferred[i] = [chunkIds, fn, priority];
96
+ return;
97
+ }
98
+ var notFulfilled = Infinity;
99
+ for (var i = 0; i < deferred.length; i++) {
100
+ var [chunkIds, fn, priority] = deferred[i];
101
+ var fulfilled = true;
102
+ for (var j = 0; j < chunkIds.length; j++) {
103
+ if (
104
+ (priority & (1 === 0) || notFulfilled >= priority) &&
105
+ Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))
106
+ ) {
107
+ chunkIds.splice(j--, 1);
108
+ } else {
109
+ fulfilled = false;
110
+ if (priority < notFulfilled) notFulfilled = priority;
111
+ }
112
+ }
113
+ if (fulfilled) {
114
+ deferred.splice(i--, 1);
115
+ var r = fn();
116
+ if (r !== undefined) result = r;
117
+ }
118
+ }
119
+ return result;
120
+ };
121
+
122
+ })();
123
+ // webpack/runtime/jsonp_chunk_loading
124
+ (() => {
125
+
126
+ // object to store loaded and loading chunks
127
+ // undefined = chunk not loaded, null = chunk preloaded/prefetched
128
+ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
129
+ var jsonpInstalledChunks = {"./modules/config-putout": 0,};
130
+ __webpack_require__.O.j = (chunkId) => (jsonpInstalledChunks[chunkId] === 0);
131
+ // install a JSONP callback for chunk loading
132
+ var __rspack_jsonp = (parentChunkLoadingFunction, data) => {
133
+ var [chunkIds, moreModules, runtime] = data;
134
+ // add "moreModules" to the modules object,
135
+ // then flag all "chunkIds" as loaded and fire callback
136
+ var moduleId, chunkId, i = 0;
137
+ if (chunkIds.some((id) => (jsonpInstalledChunks[id] !== 0))) {
138
+ for (moduleId in moreModules) {
139
+ if (__webpack_require__.o(moreModules, moduleId)) {
140
+ __webpack_require__.m[moduleId] = moreModules[moduleId];
141
+ }
142
+ }
143
+ if (runtime) var result = runtime(__webpack_require__);
144
+ }
145
+ if (parentChunkLoadingFunction) parentChunkLoadingFunction(data);
146
+ for (; i < chunkIds.length; i++) {
147
+ chunkId = chunkIds[i];
148
+ if (
149
+ __webpack_require__.o(jsonpInstalledChunks, chunkId) &&
150
+ jsonpInstalledChunks[chunkId]
151
+ ) {
152
+ jsonpInstalledChunks[chunkId][0]();
153
+ }
154
+ jsonpInstalledChunks[chunkId] = 0;
155
+ }
156
+
157
+ return __webpack_require__.O(result);
158
+
159
+ };
160
+
161
+ var jsonpChunkLoadingGlobal = globalThis["rspackChunkcloudcmd"] ||= [];
162
+ jsonpChunkLoadingGlobal.forEach(__rspack_jsonp.bind(null, 0));
163
+ jsonpChunkLoadingGlobal.push = __rspack_jsonp.bind(null, jsonpChunkLoadingGlobal.push.bind(jsonpChunkLoadingGlobal));
164
+
165
+ })();
166
+ // module factories are used so entry inlining is disabled
167
+ // startup
168
+ // Load entry module and return exports
169
+ var __webpack_exports__ = __webpack_require__.O(undefined, ["cloudcmd.common"], () => __webpack_require__("./client/modules/config/putout/index.js"));
170
+ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
171
+ })()
172
+ ;