cloudcmd 19.20.0 → 19.20.1

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.
package/dist/sw.js CHANGED
@@ -302,7 +302,7 @@ const respondWith = currify((f, e) => {
302
302
  e.respondWith(f(e));
303
303
  });
304
304
  const getPathName = url => new URL(url).pathname;
305
- const date = "Thu Aug 06 2026 16:28:17 GMT+0300 (Eastern European Summer Time)";
305
+ const date = "Sun Aug 23 2026 10:54:37 GMT+0300 (Eastern European Summer Time)";
306
306
  const NAME = `cloudcmd: ${date}`;
307
307
  const createRequest = a => new Request(a, {
308
308
  credentials: 'same-origin'
@@ -32,7 +32,7 @@ eval("{\n\nconst identityLoginURL = 'static.olark.com/jsclient/loader.js';\n\nif
32
32
  \************************/
33
33
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
34
34
  "use strict";
35
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
35
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
36
36
 
37
37
  },
38
38
  "./css/main.css"
@@ -41,7 +41,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
41
41
  \**********************/
42
42
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
43
43
  "use strict";
44
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
44
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
45
45
 
46
46
  },
47
47
  "./css/terminal.css"
@@ -50,7 +50,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
50
50
  \**************************/
51
51
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
52
52
  "use strict";
53
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
53
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
54
54
 
55
55
  },
56
56
  "./css/user-menu.css"
@@ -59,7 +59,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
59
59
  \***************************/
60
60
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
61
61
  "use strict";
62
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
62
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
63
63
 
64
64
  },
65
65
  "./css/view.css"
@@ -68,7 +68,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
68
68
  \**********************/
69
69
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
70
70
  "use strict";
71
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
71
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
72
72
 
73
73
  },
74
74
  "./node_modules/@cloudcmd/modal/css/modal.css"
@@ -77,7 +77,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
77
77
  \****************************************************/
78
78
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
79
79
  "use strict";
80
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
80
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
81
81
 
82
82
  },
83
83
  "./node_modules/smalltalk/css/smalltalk.css"
@@ -86,7 +86,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
86
86
  \**************************************************/
87
87
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
88
88
  "use strict";
89
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
89
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
90
90
 
91
91
  },
92
92
  "./node_modules/supermenu/css/supermenu.css"
@@ -95,7 +95,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
95
95
  \**************************************************/
96
96
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
97
97
  "use strict";
98
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/config.css\n}");
98
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/terminal.css\n}");
99
99
 
100
100
  },
101
101
  "./node_modules/apart/lib/apart.js"
@@ -1259,7 +1259,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1259
1259
  \*****************************/
1260
1260
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1261
1261
  "use strict";
1262
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n Key: () => (Key),\n _listener: () => (_listener)\n});\n/* import */ var _cloudcmd_clipboard__rspack_import_0 = __webpack_require__(/*! @cloudcmd/clipboard */ \"./node_modules/@cloudcmd/clipboard/lib/clipboard.js\");\n/* import */ var fullstore__rspack_import_1 = __webpack_require__(/*! fullstore */ \"./node_modules/fullstore/lib/fullstore.js\");\n/* import */ var _dom_events__rspack_import_2 = __webpack_require__(/*! #dom/events */ \"./client/dom/events/index.js\");\n/* import */ var _dom_buffer_js__rspack_import_3 = __webpack_require__(/*! ../dom/buffer.js */ \"./client/dom/buffer.js\");\n/* import */ var _key_js__rspack_import_4 = __webpack_require__(/*! ./key.js */ \"./client/key/key.js\");\n/* import */ var _vim_index_js__rspack_import_5 = __webpack_require__(/*! ./vim/index.js */ \"./client/key/vim/index.js\");\n/* import */ var _set_current_by_char_js__rspack_import_6 = __webpack_require__(/*! ./set-current-by-char.js */ \"./client/key/set-current-by-char.js\");\n/* import */ var _binder_js__rspack_import_7 = __webpack_require__(/*! ./binder.js */ \"./client/key/binder.js\");\n/* global CloudCmd, DOM */ \n\n\n\n\n\n\n\nconst Chars = (0,fullstore__rspack_import_1.fullstore)();\nconst toggleVim = (keyCode, overrides = {})=>{\n const { _config, config } = overrides;\n if (!config('vim') && keyCode === _key_js__rspack_import_4.ESC) _config('vim', true);\n};\nconst isUndefined = (a)=>typeof a === 'undefined';\nChars([]);\nconst { assign } = Object;\nconst binder = (0,_binder_js__rspack_import_7.createBinder)();\nconst bind = ()=>{\n _dom_events__rspack_import_2.addKey(listener, true);\n binder.setBind();\n};\nconst Key = assign(binder, _key_js__rspack_import_4, {\n bind\n});\nconst _listener = listener;\nfunction getChar(event) {\n /*\n * event.keyIdentifier deprecated in chrome v51\n * but event.key is absent in chrome <= v51\n */ const { key, shift, keyCode, keyIdentifier } = event;\n const char = key || fromCharCode(keyIdentifier);\n const symbol = getSymbol(shift, keyCode);\n return [\n symbol,\n char\n ];\n}\nasync function listener(event, overrides = {}) {\n const { config = CloudCmd.config, _config = CloudCmd._config, switchKey = _switchKey, vim = _vim_index_js__rspack_import_5[\"default\"] } = overrides;\n const { keyCode } = event;\n // strange chrome bug calls listener twice\n // in second time event misses a lot fields\n if (isUndefined(event.altKey)) return;\n const alt = event.altKey;\n const ctrl = event.ctrlKey;\n const meta = event.metaKey;\n const isBetween = keyCode >= _key_js__rspack_import_4.ZERO && keyCode <= _key_js__rspack_import_4.Z;\n const isNumpad = /Numpad/.test(event.code);\n const [symbol, char] = getChar(event);\n if (!binder.isBind()) return;\n toggleVim(keyCode, {\n config,\n _config\n });\n const isVim = config('vim');\n if (!isVim && !isNumpad && !alt && !ctrl && !meta && (isBetween || symbol)) return (0,_set_current_by_char_js__rspack_import_6[\"default\"])(char, Chars);\n Chars([]);\n await switchKey(event);\n if (keyCode >= _key_js__rspack_import_4.F1 && keyCode <= _key_js__rspack_import_4.F10) return;\n if (isVim) vim(char, event);\n}\nfunction getSymbol(shift, keyCode) {\n switch(keyCode){\n case _key_js__rspack_import_4.DOT:\n return '.';\n case _key_js__rspack_import_4.HYPHEN:\n return shift ? '_' : '-';\n case _key_js__rspack_import_4.EQUAL:\n return shift ? '+' : '=';\n }\n return '';\n}\nfunction fromCharCode(keyIdentifier) {\n const code = keyIdentifier.substring(2);\n const hex = parseInt(code, 16);\n return String.fromCharCode(hex);\n}\nasync function _switchKey(event) {\n const Info = DOM.CurrentInfo;\n let i;\n let isSelected;\n let prev;\n let next;\n let current = Info.element;\n let dataName;\n const { name, panel, path, isDir } = Info;\n const { Operation, changeDir, config } = CloudCmd;\n const { keyCode } = event;\n const alt = event.altKey;\n const shift = event.shiftKey;\n const ctrl = event.ctrlKey;\n const meta = event.metaKey;\n const ctrlMeta = ctrl || meta;\n if (current) {\n prev = current.previousSibling;\n next = current.nextSibling;\n }\n switch(keyCode){\n case _key_js__rspack_import_4.TAB:\n DOM.changePanel();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.INSERT:\n DOM.toggleSelectedFile(current).setCurrentFile(next);\n break;\n case _key_js__rspack_import_4.INSERT_MAC:\n DOM.toggleSelectedFile(current).setCurrentFile(next);\n break;\n case _key_js__rspack_import_4.DELETE:\n if (shift) Operation.show('delete:silent');\n else Operation.show('delete');\n break;\n case _key_js__rspack_import_4.ASTERISK:\n DOM.toggleAllSelectedFiles(current);\n break;\n case _key_js__rspack_import_4.PLUS:\n DOM.expandSelection();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.MINUS:\n DOM.shrinkSelection();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F1:\n CloudCmd.Help.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F2:\n CloudCmd.UserMenu.show();\n break;\n case _key_js__rspack_import_4.F3:\n event.preventDefault();\n if (Info.isDir) await changeDir(path);\n else if (shift) CloudCmd.View.show(null, {\n raw: true\n });\n else if (ctrlMeta) CloudCmd.sortPanel('name');\n else CloudCmd.View.show();\n break;\n case _key_js__rspack_import_4.F4:\n if (config('vim')) CloudCmd.EditFileVim.show();\n else CloudCmd.EditFile.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F5:\n if (ctrlMeta) CloudCmd.sortPanel('date');\n else if (alt) Operation.show('pack');\n else Operation.show('copy');\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F6:\n if (ctrlMeta) CloudCmd.sortPanel('size');\n else if (shift) DOM.renameCurrent(current);\n else Operation.show('move');\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F7:\n if (shift) DOM.promptNewFile();\n else DOM.promptNewDir();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F8:\n Operation.show('delete');\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F9:\n if (alt) Operation.show('extract');\n else CloudCmd.Menu.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F10:\n CloudCmd.Config.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.TRA:\n event.preventDefault();\n if (shift) return CloudCmd.Terminal.show();\n CloudCmd.Konsole.show();\n break;\n case _key_js__rspack_import_4.BRACKET_CLOSE:\n CloudCmd.Konsole.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.SPACE:\n event.preventDefault();\n if (!isDir || name === '..') isSelected = true;\n else isSelected = DOM.isSelected(current);\n if (!isSelected) await DOM.loadCurrentSize(current);\n DOM.toggleSelectedFile(current);\n break;\n case _key_js__rspack_import_4.U:\n if (ctrlMeta) {\n DOM.swapPanels();\n event.preventDefault();\n }\n break;\n /* navigation on file table: *\n * in case of pressing button 'up', *\n * select previous row */ case _key_js__rspack_import_4.UP:\n if (shift) DOM.toggleSelectedFile(current);\n DOM.setCurrentFile(prev);\n event.preventDefault();\n break;\n /* in case of pressing button 'down', *\n * select next row */ case _key_js__rspack_import_4.DOWN:\n if (shift) DOM.toggleSelectedFile(current);\n DOM.setCurrentFile(next);\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.LEFT:\n if (!alt) return;\n event.preventDefault();\n dataName = Info.panel.getAttribute('data-name');\n if (dataName === 'js-right') DOM.duplicatePanel();\n break;\n case _key_js__rspack_import_4.RIGHT:\n if (!alt) return;\n event.preventDefault();\n dataName = Info.panel.getAttribute('data-name');\n if (dataName === 'js-left') DOM.duplicatePanel();\n break;\n /* in case of pressing button 'Home', *\n * go to top element */ case _key_js__rspack_import_4.HOME:\n DOM.setCurrentFile(Info.first);\n event.preventDefault();\n break;\n /* in case of pressing button 'End', select last element */ case _key_js__rspack_import_4.END:\n DOM.setCurrentFile(Info.last);\n event.preventDefault();\n break;\n /* если нажали клавишу page down проматываем экран */ case _key_js__rspack_import_4.PAGE_DOWN:\n DOM.scrollByPages(panel, 1);\n for(i = 0; i < 30; i++){\n if (!current.nextSibling) break;\n current = current.nextSibling;\n }\n DOM.setCurrentFile(current);\n event.preventDefault();\n break;\n /* если нажали клавишу page up проматываем экран */ case _key_js__rspack_import_4.PAGE_UP:\n DOM.scrollByPages(panel, -1);\n for(i = 0; i < 30; i++){\n if (!current.previousSibling) break;\n current = current.previousSibling;\n }\n DOM.setCurrentFile(current);\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.ENTER:\n if (Info.isDir) await changeDir(path);\n else CloudCmd.View.show();\n break;\n case _key_js__rspack_import_4.BACKSPACE:\n CloudCmd.goToParentDir();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.BACKSLASH:\n if (ctrlMeta) await changeDir('/');\n break;\n case _key_js__rspack_import_4.A:\n if (ctrlMeta) {\n DOM.selectAllFiles();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.G:\n if (alt) {\n DOM.goToDirectory();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.L:\n if (ctrlMeta && shift) {\n CloudCmd.logOut();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.M:\n if (ctrlMeta) {\n if (config('vim')) CloudCmd.EditNamesVim.show();\n else CloudCmd.EditNames.show();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.P:\n if (!ctrlMeta) return;\n event.preventDefault();\n _cloudcmd_clipboard__rspack_import_0.writeText(Info.dirPath).catch(CloudCmd.log);\n break;\n /**\n * обновляем страницу,\n * загружаем содержимое каталога\n * при этом данные берём всегда с\n * сервера, а не из кэша\n * (обновляем кэш)\n */ case _key_js__rspack_import_4.R:\n if (ctrlMeta) {\n CloudCmd.log('reloading page...\\n');\n CloudCmd.refresh();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.C:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.copy();\n break;\n case _key_js__rspack_import_4.X:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.cut();\n break;\n case _key_js__rspack_import_4.V:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.paste();\n break;\n case _key_js__rspack_import_4.Z:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.clear();\n break;\n case _key_js__rspack_import_4.COLON:\n CloudCmd.CommandLine.show();\n event.preventDefault();\n break;\n /* чистим хранилище */ case _key_js__rspack_import_4.D:\n if (ctrlMeta) {\n CloudCmd.log('clearing storage...');\n await DOM.Storage.clear();\n CloudCmd.log('storage cleared');\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.DOT:\n if (meta && shift) {\n const showDotFiles = !CloudCmd.config('showDotFiles');\n CloudCmd._config('showDotFiles', showDotFiles);\n CloudCmd.refresh();\n await DOM.RESTful.Config.write({\n showDotFiles\n });\n }\n break;\n }\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/key/index.js\n}");
1262
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n Key: () => (Key),\n _listener: () => (_listener)\n});\n/* import */ var _cloudcmd_clipboard__rspack_import_0 = __webpack_require__(/*! @cloudcmd/clipboard */ \"./node_modules/@cloudcmd/clipboard/lib/clipboard.js\");\n/* import */ var fullstore__rspack_import_1 = __webpack_require__(/*! fullstore */ \"./node_modules/fullstore/lib/fullstore.js\");\n/* import */ var _dom_events__rspack_import_2 = __webpack_require__(/*! #dom/events */ \"./client/dom/events/index.js\");\n/* import */ var _dom_buffer_js__rspack_import_3 = __webpack_require__(/*! ../dom/buffer.js */ \"./client/dom/buffer.js\");\n/* import */ var _key_js__rspack_import_4 = __webpack_require__(/*! ./key.js */ \"./client/key/key.js\");\n/* import */ var _vim_index_js__rspack_import_5 = __webpack_require__(/*! ./vim/index.js */ \"./client/key/vim/index.js\");\n/* import */ var _set_current_by_char_js__rspack_import_6 = __webpack_require__(/*! ./set-current-by-char.js */ \"./client/key/set-current-by-char.js\");\n/* import */ var _binder_js__rspack_import_7 = __webpack_require__(/*! ./binder.js */ \"./client/key/binder.js\");\n/* global CloudCmd, DOM */ \n\n\n\n\n\n\n\nconst Chars = (0,fullstore__rspack_import_1.fullstore)();\nconst toggleVim = (keyCode, overrides = {})=>{\n const { _config, config } = overrides;\n if (!config('vim') && keyCode === _key_js__rspack_import_4.ESC) _config('vim', true);\n};\nconst isUndefined = (a)=>typeof a === 'undefined';\nChars([]);\nconst { assign } = Object;\nconst binder = (0,_binder_js__rspack_import_7.createBinder)();\nconst bind = ()=>{\n _dom_events__rspack_import_2.addKey(listener, true);\n binder.setBind();\n};\nconst Key = assign(binder, _key_js__rspack_import_4, {\n bind\n});\nconst _listener = listener;\nfunction getChar(event) {\n /*\n * event.keyIdentifier deprecated in chrome v51\n * but event.key is absent in chrome <= v51\n */ const { key, shift, keyCode, keyIdentifier } = event;\n const char = key || fromCharCode(keyIdentifier);\n const symbol = getSymbol(shift, keyCode);\n return [\n symbol,\n char\n ];\n}\nasync function listener(event, overrides = {}) {\n const { config = CloudCmd.config, _config = CloudCmd._config, switchKey = _switchKey, vim = _vim_index_js__rspack_import_5[\"default\"] } = overrides;\n const { keyCode } = event;\n // strange chrome bug calls listener twice\n // in second time event misses a lot fields\n if (isUndefined(event.altKey)) return;\n const alt = event.altKey;\n const ctrl = event.ctrlKey;\n const meta = event.metaKey;\n const isBetween = keyCode >= _key_js__rspack_import_4.ZERO && keyCode <= _key_js__rspack_import_4.Z;\n const isNumpad = /Numpad/.test(event.code);\n const [symbol, char] = getChar(event);\n if (!binder.isBind()) return;\n toggleVim(keyCode, {\n config,\n _config\n });\n const isVim = config('vim');\n if (!isVim && !isNumpad && !alt && !ctrl && !meta && (isBetween || symbol)) return (0,_set_current_by_char_js__rspack_import_6[\"default\"])(char, Chars);\n Chars([]);\n await switchKey(event);\n if (keyCode >= _key_js__rspack_import_4.F1 && keyCode <= _key_js__rspack_import_4.F10) return;\n if (isVim) vim(char, event);\n}\nfunction getSymbol(shift, keyCode) {\n if (keyCode === _key_js__rspack_import_4.DOT) return '.';\n if (keyCode === _key_js__rspack_import_4.HYPHEN) return shift ? '_' : '-';\n if (keyCode === _key_js__rspack_import_4.EQUAL) return shift ? '+' : '=';\n return '';\n}\nfunction fromCharCode(keyIdentifier) {\n const code = keyIdentifier.substring(2);\n const hex = parseInt(code, 16);\n return String.fromCharCode(hex);\n}\nasync function _switchKey(event) {\n const Info = DOM.CurrentInfo;\n let i;\n let isSelected;\n let prev;\n let next;\n let current = Info.element;\n let dataName;\n const { name, panel, path, isDir } = Info;\n const { Operation, changeDir, config } = CloudCmd;\n const { keyCode } = event;\n const alt = event.altKey;\n const shift = event.shiftKey;\n const ctrl = event.ctrlKey;\n const meta = event.metaKey;\n const ctrlMeta = ctrl || meta;\n if (current) {\n prev = current.previousSibling;\n next = current.nextSibling;\n }\n switch(keyCode){\n case _key_js__rspack_import_4.TAB:\n DOM.changePanel();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.INSERT:\n DOM.toggleSelectedFile(current).setCurrentFile(next);\n break;\n case _key_js__rspack_import_4.INSERT_MAC:\n DOM.toggleSelectedFile(current).setCurrentFile(next);\n break;\n case _key_js__rspack_import_4.DELETE:\n if (shift) Operation.show('delete:silent');\n else Operation.show('delete');\n break;\n case _key_js__rspack_import_4.ASTERISK:\n DOM.toggleAllSelectedFiles(current);\n break;\n case _key_js__rspack_import_4.PLUS:\n DOM.expandSelection();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.MINUS:\n DOM.shrinkSelection();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F1:\n CloudCmd.Help.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F2:\n CloudCmd.UserMenu.show();\n break;\n case _key_js__rspack_import_4.F3:\n event.preventDefault();\n if (Info.isDir) await changeDir(path);\n else if (shift) CloudCmd.View.show(null, {\n raw: true\n });\n else if (ctrlMeta) CloudCmd.sortPanel('name');\n else CloudCmd.View.show();\n break;\n case _key_js__rspack_import_4.F4:\n if (config('vim')) CloudCmd.EditFileVim.show();\n else CloudCmd.EditFile.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F5:\n if (ctrlMeta) CloudCmd.sortPanel('date');\n else if (alt) Operation.show('pack');\n else Operation.show('copy');\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F6:\n if (ctrlMeta) CloudCmd.sortPanel('size');\n else if (shift) DOM.renameCurrent(current);\n else Operation.show('move');\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F7:\n if (shift) DOM.promptNewFile();\n else DOM.promptNewDir();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F8:\n Operation.show('delete');\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F9:\n if (alt) Operation.show('extract');\n else CloudCmd.Menu.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.F10:\n CloudCmd.Config.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.TRA:\n event.preventDefault();\n if (shift) return CloudCmd.Terminal.show();\n CloudCmd.Konsole.show();\n break;\n case _key_js__rspack_import_4.BRACKET_CLOSE:\n CloudCmd.Konsole.show();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.SPACE:\n event.preventDefault();\n if (!isDir || name === '..') isSelected = true;\n else isSelected = DOM.isSelected(current);\n if (!isSelected) await DOM.loadCurrentSize(current);\n DOM.toggleSelectedFile(current);\n break;\n case _key_js__rspack_import_4.U:\n if (ctrlMeta) {\n DOM.swapPanels();\n event.preventDefault();\n }\n break;\n /* navigation on file table: *\n * in case of pressing button 'up', *\n * select previous row */ case _key_js__rspack_import_4.UP:\n if (shift) DOM.toggleSelectedFile(current);\n DOM.setCurrentFile(prev);\n event.preventDefault();\n break;\n /* in case of pressing button 'down', *\n * select next row */ case _key_js__rspack_import_4.DOWN:\n if (shift) DOM.toggleSelectedFile(current);\n DOM.setCurrentFile(next);\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.LEFT:\n if (!alt) return;\n event.preventDefault();\n dataName = Info.panel.getAttribute('data-name');\n if (dataName === 'js-right') DOM.duplicatePanel();\n break;\n case _key_js__rspack_import_4.RIGHT:\n if (!alt) return;\n event.preventDefault();\n dataName = Info.panel.getAttribute('data-name');\n if (dataName === 'js-left') DOM.duplicatePanel();\n break;\n /* in case of pressing button 'Home', *\n * go to top element */ case _key_js__rspack_import_4.HOME:\n DOM.setCurrentFile(Info.first);\n event.preventDefault();\n break;\n /* in case of pressing button 'End', select last element */ case _key_js__rspack_import_4.END:\n DOM.setCurrentFile(Info.last);\n event.preventDefault();\n break;\n /* если нажали клавишу page down проматываем экран */ case _key_js__rspack_import_4.PAGE_DOWN:\n DOM.scrollByPages(panel, 1);\n for(i = 0; i < 30; i++){\n if (!current.nextSibling) break;\n current = current.nextSibling;\n }\n DOM.setCurrentFile(current);\n event.preventDefault();\n break;\n /* если нажали клавишу page up проматываем экран */ case _key_js__rspack_import_4.PAGE_UP:\n DOM.scrollByPages(panel, -1);\n for(i = 0; i < 30; i++){\n if (!current.previousSibling) break;\n current = current.previousSibling;\n }\n DOM.setCurrentFile(current);\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.ENTER:\n if (Info.isDir) await changeDir(path);\n else CloudCmd.View.show();\n break;\n case _key_js__rspack_import_4.BACKSPACE:\n CloudCmd.goToParentDir();\n event.preventDefault();\n break;\n case _key_js__rspack_import_4.BACKSLASH:\n if (ctrlMeta) await changeDir('/');\n break;\n case _key_js__rspack_import_4.A:\n if (ctrlMeta) {\n DOM.selectAllFiles();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.G:\n if (alt) {\n DOM.goToDirectory();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.L:\n if (ctrlMeta && shift) {\n CloudCmd.logOut();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.M:\n if (ctrlMeta) {\n if (config('vim')) CloudCmd.EditNamesVim.show();\n else CloudCmd.EditNames.show();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.P:\n if (!ctrlMeta) return;\n event.preventDefault();\n _cloudcmd_clipboard__rspack_import_0.writeText(Info.dirPath).catch(CloudCmd.log);\n break;\n /**\n * обновляем страницу,\n * загружаем содержимое каталога\n * при этом данные берём всегда с\n * сервера, а не из кэша\n * (обновляем кэш)\n */ case _key_js__rspack_import_4.R:\n if (ctrlMeta) {\n CloudCmd.log('reloading page...\\n');\n CloudCmd.refresh();\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.C:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.copy();\n break;\n case _key_js__rspack_import_4.X:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.cut();\n break;\n case _key_js__rspack_import_4.V:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.paste();\n break;\n case _key_js__rspack_import_4.Z:\n if (ctrlMeta) _dom_buffer_js__rspack_import_3.clear();\n break;\n case _key_js__rspack_import_4.COLON:\n CloudCmd.CommandLine.show();\n event.preventDefault();\n break;\n /* чистим хранилище */ case _key_js__rspack_import_4.D:\n if (ctrlMeta) {\n CloudCmd.log('clearing storage...');\n await DOM.Storage.clear();\n CloudCmd.log('storage cleared');\n event.preventDefault();\n }\n break;\n case _key_js__rspack_import_4.DOT:\n if (meta && shift) {\n const showDotFiles = !CloudCmd.config('showDotFiles');\n CloudCmd._config('showDotFiles', showDotFiles);\n CloudCmd.refresh();\n await DOM.RESTful.Config.write({\n showDotFiles\n });\n }\n break;\n }\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/key/index.js\n}");
1263
1263
 
1264
1264
  },
1265
1265
  "./client/key/key.js"
@@ -1376,7 +1376,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1376
1376
  \****************************************/
1377
1377
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1378
1378
  "use strict";
1379
- 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 switch(keyCode){\n case Key.ESC:\n return hide();\n case Key.ENTER:\n return await onChange(target);\n }\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}");
1379
+ 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}");
1380
1380
 
1381
1381
  },
1382
1382
  "./client/modules/config/input.js"
package/dist-dev/sw.js CHANGED
@@ -23,7 +23,7 @@ eval("{// shim for using process in browser\nvar process = module.exports = {};\
23
23
  \*************************/
24
24
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
  "use strict";
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* import */ var node_process__rspack_import_0 = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.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 currify__rspack_import_2 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\n\nconst isDev = \"development\" === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify__rspack_import_2((f, e) => e.waitUntil(f()));\nconst respondWith = currify__rspack_import_2((f, e) => {\n const {\n request\n } = e;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n if (url.endsWith('/') || /\\^\\/fs/.test(pathname)) return;\n if (!isGet(request)) return;\n if (!isBasic(request)) return;\n if (pathname.startsWith('/api')) return;\n if (/^socket.io/.test(pathname)) return;\n e.respondWith(f(e));\n});\nconst getPathName = url => new URL(url).pathname;\nconst date = \"Thu Aug 06 2026 16:28:17 GMT+0300 (Eastern European Summer Time)\";\nconst NAME = `cloudcmd: ${date}`;\nconst createRequest = a => new Request(a, {\n credentials: 'same-origin'\n});\nconst getRequest = (a, request) => {\n if (a !== '/') return request;\n return createRequest('/');\n};\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n await Promise.all(keys.map(deleteCache));\n}\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n await globalThis.skipWaiting();\n}\nasync function onFetch(event) {\n const {\n request\n } = event;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n if (!isDev && response) return response;\n const [e, resp] = await (0,try_to_catch__rspack_import_1.tryToCatch)(fetch, newRequest, {\n credentials: 'same-origin'\n });\n if (e) return new Response(e.message);\n await addToCache(request, resp.clone());\n return resp;\n}\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* import */ var node_process__rspack_import_0 = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.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 currify__rspack_import_2 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\n\nconst isDev = \"development\" === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify__rspack_import_2((f, e) => e.waitUntil(f()));\nconst respondWith = currify__rspack_import_2((f, e) => {\n const {\n request\n } = e;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n if (url.endsWith('/') || /\\^\\/fs/.test(pathname)) return;\n if (!isGet(request)) return;\n if (!isBasic(request)) return;\n if (pathname.startsWith('/api')) return;\n if (/^socket.io/.test(pathname)) return;\n e.respondWith(f(e));\n});\nconst getPathName = url => new URL(url).pathname;\nconst date = \"Sun Aug 23 2026 10:54:38 GMT+0300 (Eastern European Summer Time)\";\nconst NAME = `cloudcmd: ${date}`;\nconst createRequest = a => new Request(a, {\n credentials: 'same-origin'\n});\nconst getRequest = (a, request) => {\n if (a !== '/') return request;\n return createRequest('/');\n};\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n await Promise.all(keys.map(deleteCache));\n}\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n await globalThis.skipWaiting();\n}\nasync function onFetch(event) {\n const {\n request\n } = event;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n if (!isDev && response) return response;\n const [e, resp] = await (0,try_to_catch__rspack_import_1.tryToCatch)(fetch, newRequest, {\n credentials: 'same-origin'\n });\n if (e) return new Response(e.message);\n await addToCache(request, resp.clone());\n return resp;\n}\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js\n}");
27
27
 
28
28
  },
29
29
  "./node_modules/try-to-catch/lib/try-to-catch.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "19.20.0",
3
+ "version": "19.20.1",
4
4
  "type": "module",
5
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
6
6
  "description": "File manager for the web with console and editor",
@@ -87,7 +87,7 @@
87
87
  "dependencies": {
88
88
  "@cloudcmd/dropbox": "^5.0.1",
89
89
  "@cloudcmd/fileop": "^9.0.7",
90
- "@cloudcmd/move-files": "^8.0.0",
90
+ "@cloudcmd/move-files": "^9.0.0",
91
91
  "@cloudcmd/read-files-sync": "^2.0.0",
92
92
  "@putout/cli-validate-args": "^2.0.0",
93
93
  "@putout/plugin-cloudcmd": "^5.2.0",
@@ -21,13 +21,11 @@ export default callbackify(async (name, rootDir, request) => {
21
21
 
22
22
  const {method} = request;
23
23
 
24
- switch(method) {
25
- case 'GET':
24
+ if (method === 'GET')
26
25
  return await onGET(request, name, rootDir);
27
26
 
28
- case 'PUT':
27
+ if (method === 'PUT')
29
28
  return await onPUT(request);
30
- }
31
29
  });
32
30
 
33
31
  function parseName(query, name, rootDir) {
@@ -10,7 +10,7 @@ import pullout from 'pullout';
10
10
  import json from 'jonny';
11
11
  import * as ponse from 'ponse';
12
12
  import {copymitter} from 'copymitter';
13
- import _moveFiles from '@cloudcmd/move-files';
13
+ import {moveFiles as _moveFiles} from '@cloudcmd/move-files';
14
14
  import * as CloudFunc from '#common/cloudfunc';
15
15
  import root from '../root.js';
16
16
  import markdown from '../markdown/index.js';
@@ -97,11 +97,10 @@ function sendData(params, {fs, config, moveFiles}, callback) {
97
97
 
98
98
  const {method} = p.request;
99
99
 
100
- switch(method) {
101
- case 'GET':
100
+ if (method === 'GET')
102
101
  return onGET(params, config, callback);
103
102
 
104
- case 'PUT':
103
+ if (method === 'PUT')
105
104
  return pullout(p.request)
106
105
  .then((body) => {
107
106
  onPUT({
@@ -113,7 +112,6 @@ function sendData(params, {fs, config, moveFiles}, callback) {
113
112
  }, callback);
114
113
  })
115
114
  .catch(callback);
116
- }
117
115
  }
118
116
 
119
117
  function onGET(params, config, callback) {