cloudcmd 19.13.1 → 19.15.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.
package/dist/sw.js CHANGED
@@ -311,7 +311,7 @@ const respondWith = currify((f, e) => {
311
311
  e.respondWith(f(e));
312
312
  });
313
313
  const getPathName = url => new URL(url).pathname;
314
- const date = "Tue Apr 21 2026 23:31:12 GMT+0300 (Eastern European Summer Time)";
314
+ const date = "Tue Apr 28 2026 23:44:16 GMT+0300 (Eastern European Summer Time)";
315
315
  const NAME = `cloudcmd: ${date}`;
316
316
  const createRequest = a => new Request(a, {
317
317
  credentials: 'same-origin'
@@ -1459,7 +1459,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
1459
1459
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1460
1460
 
1461
1461
  "use strict";
1462
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ selectFile: () => (/* binding */ selectFile)\n/* harmony export */ });\n/* harmony import */ var _vim_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vim.js */ \"./client/key/vim/vim.js\");\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./find.js */ \"./client/key/vim/find.js\");\n/* harmony import */ var _set_current_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set-current.js */ \"./client/key/vim/set-current.js\");\n/* global CloudCmd */\n/* global DOM */\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((key, event, overrides = {}) => {\n const defaults = {\n ...globalThis.DOM,\n ...globalThis.CloudCmd\n };\n const deps = {\n ...defaults,\n ...overrides\n };\n const operations = getOperations(event, deps);\n (0,_vim_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key, operations, deps);\n});\n(Object.getOwnPropertyDescriptor(__WEBPACK_DEFAULT_EXPORT__, \"name\") || {}).writable || Object.defineProperty(__WEBPACK_DEFAULT_EXPORT__, \"name\", { value: \"default\", configurable: true });\nconst getOperations = (event, deps) => {\n var _event$preventDefault, _event$preventDefault2;\n const {\n Info = globalThis.DOM.CurrentInfo,\n CloudCmd = globalThis.CloudCmd,\n Operation,\n unselectFiles,\n setCurrentFile,\n setCurrentByName,\n getCurrentName,\n prompt = globalThis.DOM.Dialog.prompt,\n preventDefault = event === null || event === void 0 || (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.bind(event),\n stopImmediatePropagation = event === null || event === void 0 || (_event$preventDefault2 = event.preventDefault) === null || _event$preventDefault2 === void 0 ? void 0 : _event$preventDefault2.bind(event),\n promptNewFile = DOM.promptNewFile,\n toggleSelectedFile,\n Buffer = {},\n createFindNext = _createFindNext,\n createFindPrevious = _createFindPrevious,\n createMakeFile = _createMakeFile\n } = deps;\n return {\n makeFile: createMakeFile({\n promptNewFile,\n preventDefault,\n stopImmediatePropagation\n }),\n findNext: createFindNext({\n setCurrentByName\n }),\n findPrevious: createFindPrevious({\n setCurrentByName\n }),\n escape: unselectFiles,\n remove: () => {\n Operation.show('delete');\n },\n makeDirectory: () => {\n event.stopImmediatePropagation();\n event.preventDefault();\n DOM.promptNewDir();\n },\n terminal: () => {\n CloudCmd.Terminal.show();\n },\n edit: () => {\n CloudCmd.EditFileVim.show();\n },\n copy: () => {\n Buffer.copy();\n unselectFiles();\n },\n select: () => {\n const current = Info.element;\n toggleSelectedFile(current);\n },\n paste: Buffer.paste,\n moveNext: ({\n count,\n isVisual,\n isDelete\n }) => {\n (0,_set_current_js__WEBPACK_IMPORTED_MODULE_2__.setCurrent)('next', {\n count,\n isVisual,\n isDelete\n }, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n });\n },\n movePrevious: ({\n count,\n isVisual,\n isDelete\n }) => {\n (0,_set_current_js__WEBPACK_IMPORTED_MODULE_2__.setCurrent)('previous', {\n count,\n isVisual,\n isDelete\n }, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n });\n },\n find: async () => {\n preventDefault();\n const [, value] = await prompt('Find', '');\n if (!value) return;\n const names = Info.files.map(getCurrentName);\n const [result] = _find_js__WEBPACK_IMPORTED_MODULE_1__.find(value, names);\n setCurrentByName(result);\n }\n };\n};\nconst selectFile = _set_current_js__WEBPACK_IMPORTED_MODULE_2__.selectFileNotParent;\nconst _createFindPrevious = (overrides = {}) => () => {\n const {\n setCurrentByName\n } = overrides;\n const name = _find_js__WEBPACK_IMPORTED_MODULE_1__.findPrevious();\n setCurrentByName(name);\n};\nconst _createFindNext = (overrides = {}) => () => {\n const {\n setCurrentByName\n } = overrides;\n const name = _find_js__WEBPACK_IMPORTED_MODULE_1__.findNext();\n setCurrentByName(name);\n};\nconst _createMakeFile = (overrides = {}) => () => {\n const {\n promptNewFile,\n stopImmediatePropagation,\n preventDefault\n } = overrides;\n stopImmediatePropagation();\n preventDefault();\n promptNewFile();\n};\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/key/vim/index.js\n}");
1462
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ selectFile: () => (/* binding */ selectFile)\n/* harmony export */ });\n/* harmony import */ var _vim_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vim.js */ \"./client/key/vim/vim.js\");\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./find.js */ \"./client/key/vim/find.js\");\n/* harmony import */ var _set_current_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set-current.js */ \"./client/key/vim/set-current.js\");\n/* global CloudCmd */\n/* global DOM */\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((key, event, overrides = {}) => {\n const defaults = {\n ...globalThis.DOM,\n ...globalThis.CloudCmd\n };\n const deps = {\n ...defaults,\n ...overrides\n };\n const operations = getOperations(event, deps);\n (0,_vim_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key, operations, deps);\n});\n(Object.getOwnPropertyDescriptor(__WEBPACK_DEFAULT_EXPORT__, \"name\") || {}).writable || Object.defineProperty(__WEBPACK_DEFAULT_EXPORT__, \"name\", { value: \"default\", configurable: true });\nconst getOperations = (event, deps) => {\n var _event$preventDefault, _event$preventDefault2;\n const {\n Info = globalThis.DOM.CurrentInfo,\n CloudCmd = globalThis.CloudCmd,\n Operation,\n unselectFiles,\n setCurrentFile,\n setCurrentByName,\n getCurrentName,\n prompt = globalThis.DOM.Dialog.prompt,\n preventDefault = event === null || event === void 0 || (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.bind(event),\n stopImmediatePropagation = event === null || event === void 0 || (_event$preventDefault2 = event.preventDefault) === null || _event$preventDefault2 === void 0 ? void 0 : _event$preventDefault2.bind(event),\n promptNewFile = DOM.promptNewFile,\n toggleSelectedFile,\n Buffer = {},\n createFindNext = _createFindNext,\n createFindPrevious = _createFindPrevious,\n createMakeFile = _createMakeFile\n } = deps;\n return {\n makeFile: createMakeFile({\n promptNewFile,\n preventDefault,\n stopImmediatePropagation\n }),\n findNext: createFindNext({\n setCurrentByName\n }),\n findPrevious: createFindPrevious({\n setCurrentByName\n }),\n escape: unselectFiles,\n remove: () => {\n Operation.show('delete');\n },\n operationCopy: () => {\n event.preventDefault();\n Operation.show('copy');\n },\n operationMove: () => {\n event.preventDefault();\n Operation.show('move');\n },\n makeDirectory: () => {\n event.stopImmediatePropagation();\n event.preventDefault();\n DOM.promptNewDir();\n },\n terminal: () => {\n CloudCmd.Terminal.show();\n },\n edit: () => {\n CloudCmd.EditFileVim.show();\n },\n copy: () => {\n Buffer.copy();\n unselectFiles();\n },\n select: () => {\n const current = Info.element;\n toggleSelectedFile(current);\n },\n paste: Buffer.paste,\n moveNext: ({\n count,\n isVisual,\n isDelete\n }) => {\n (0,_set_current_js__WEBPACK_IMPORTED_MODULE_2__.setCurrent)('next', {\n count,\n isVisual,\n isDelete\n }, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n });\n },\n movePrevious: ({\n count,\n isVisual,\n isDelete\n }) => {\n (0,_set_current_js__WEBPACK_IMPORTED_MODULE_2__.setCurrent)('previous', {\n count,\n isVisual,\n isDelete\n }, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n });\n },\n find: async () => {\n preventDefault();\n const [, value] = await prompt('Find', '');\n if (!value) return;\n const names = Info.files.map(getCurrentName);\n const [result] = _find_js__WEBPACK_IMPORTED_MODULE_1__.find(value, names);\n setCurrentByName(result);\n }\n };\n};\nconst selectFile = _set_current_js__WEBPACK_IMPORTED_MODULE_2__.selectFileNotParent;\nconst _createFindPrevious = (overrides = {}) => () => {\n const {\n setCurrentByName\n } = overrides;\n const name = _find_js__WEBPACK_IMPORTED_MODULE_1__.findPrevious();\n setCurrentByName(name);\n};\nconst _createFindNext = (overrides = {}) => () => {\n const {\n setCurrentByName\n } = overrides;\n const name = _find_js__WEBPACK_IMPORTED_MODULE_1__.findNext();\n setCurrentByName(name);\n};\nconst _createMakeFile = (overrides = {}) => () => {\n const {\n promptNewFile,\n stopImmediatePropagation,\n preventDefault\n } = overrides;\n stopImmediatePropagation();\n preventDefault();\n promptNewFile();\n};\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/key/vim/index.js\n}");
1463
1463
 
1464
1464
  /***/ },
1465
1465
 
@@ -1481,7 +1481,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
1481
1481
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1482
1482
 
1483
1483
  "use strict";
1484
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var fullstore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fullstore */ \"./node_modules/fullstore/lib/fullstore.js\");\n\nconst store = (0,fullstore__WEBPACK_IMPORTED_MODULE_0__.fullstore)('');\nconst visual = (0,fullstore__WEBPACK_IMPORTED_MODULE_0__.fullstore)(false);\nconst stopVisual = () => {\n visual(false);\n};\nconst end = () => {\n store('');\n};\nconst rmFirst = a => {\n return a.split('').slice(1).join('');\n};\nconst noop = () => {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((key, operations = {}) => {\n const prevStore = store();\n const isVisual = visual();\n const value = store(prevStore.concat(key));\n const {\n escape = noop,\n moveNext = noop,\n movePrevious = noop,\n remove = noop,\n copy = noop,\n paste = noop,\n select = noop,\n find = noop,\n findNext = noop,\n findPrevious = noop,\n makeFile = noop,\n makeDirectory = noop,\n terminal = noop,\n edit = noop\n } = operations;\n if (key === 'Enter') return end();\n if (key === 'Escape') {\n visual(false);\n escape();\n return end();\n }\n if (key === 'j' || key === 'w') {\n const {\n count,\n isDelete,\n isVisual\n } = handleDelete(prevStore);\n !isNaN(count) && moveNext({\n count,\n isVisual,\n isDelete\n });\n return end();\n }\n if (key === 'k' || key === 'b') {\n const {\n count,\n isDelete,\n isVisual\n } = handleDelete(prevStore);\n !isNaN(count) && movePrevious({\n count,\n isVisual,\n isDelete\n });\n return end();\n }\n if (value === 'gg' || key === '^') {\n const {\n isDelete,\n isVisual\n } = handleDelete(prevStore);\n movePrevious({\n count: Infinity,\n isVisual,\n isDelete\n });\n return end();\n }\n if (value === 'md') {\n makeDirectory();\n return end();\n }\n if (value === 'tt') {\n terminal();\n return end();\n }\n if (value === 'e') {\n edit();\n return end();\n }\n if (value === 'mf') {\n makeFile();\n return end();\n }\n if (key === 'd' && (visual() || prevStore === 'd')) {\n stopVisual();\n remove();\n return end();\n }\n if (key === 'G' || key === '$') {\n moveNext({\n count: Infinity,\n isVisual\n });\n return end();\n }\n if (key === 'y') {\n if (!visual()) return end();\n stopVisual();\n copy();\n return end();\n }\n if (/^p$/i.test(key)) {\n paste();\n return end();\n }\n if (/^v$/i.test(key)) {\n visual(!visual());\n select();\n return end();\n }\n if (key === '/') {\n find();\n return end();\n }\n if (key === 'n') {\n findNext();\n return end();\n }\n if (key === 'N') {\n findPrevious();\n return end();\n }\n if (key === ' ') return end();\n});\n(Object.getOwnPropertyDescriptor(__WEBPACK_DEFAULT_EXPORT__, \"name\") || {}).writable || Object.defineProperty(__WEBPACK_DEFAULT_EXPORT__, \"name\", { value: \"default\", configurable: true });\nfunction handleDelete(prevStore) {\n const isDelete = prevStore[0] === 'd';\n if (isDelete) {\n visual(true);\n prevStore = rmFirst(prevStore);\n }\n const count = getNumber(prevStore);\n const isVisual = visual();\n return {\n count,\n isDelete,\n isVisual\n };\n}\nfunction getNumber(value) {\n if (!value) return 1;\n if (value === 'g') return 1;\n return parseInt(value);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/key/vim/vim.js\n}");
1484
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var fullstore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fullstore */ \"./node_modules/fullstore/lib/fullstore.js\");\n\nconst store = (0,fullstore__WEBPACK_IMPORTED_MODULE_0__.fullstore)('');\nconst visual = (0,fullstore__WEBPACK_IMPORTED_MODULE_0__.fullstore)(false);\nconst stopVisual = () => {\n visual(false);\n};\nconst end = () => {\n store('');\n};\nconst rmFirst = a => {\n return a.split('').slice(1).join('');\n};\nconst noop = () => {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((key, operations = {}) => {\n const prevStore = store();\n const isVisual = visual();\n const value = store(prevStore.concat(key));\n const {\n escape = noop,\n moveNext = noop,\n movePrevious = noop,\n remove = noop,\n copy = noop,\n paste = noop,\n select = noop,\n find = noop,\n findNext = noop,\n findPrevious = noop,\n makeFile = noop,\n makeDirectory = noop,\n terminal = noop,\n edit = noop,\n operationCopy = noop,\n operationMove = noop\n } = operations;\n if (key === 'Enter') return end();\n if (key === 'Escape') {\n visual(false);\n escape();\n return end();\n }\n if (key === 'j' || key === 'w') {\n const {\n count,\n isDelete,\n isVisual\n } = handleDelete(prevStore);\n !isNaN(count) && moveNext({\n count,\n isVisual,\n isDelete\n });\n return end();\n }\n if (key === 'k' || key === 'b') {\n const {\n count,\n isDelete,\n isVisual\n } = handleDelete(prevStore);\n !isNaN(count) && movePrevious({\n count,\n isVisual,\n isDelete\n });\n return end();\n }\n if (value === 'gg' || key === '^') {\n const {\n isDelete,\n isVisual\n } = handleDelete(prevStore);\n movePrevious({\n count: Infinity,\n isVisual,\n isDelete\n });\n return end();\n }\n if (value === 'md') {\n makeDirectory();\n return end();\n }\n if (value === 'tt') {\n terminal();\n return end();\n }\n if (value === 'e') {\n edit();\n return end();\n }\n if (value === 'cc') {\n operationCopy();\n return end();\n }\n if (value === 'mm') {\n operationMove();\n return end();\n }\n if (value === 'mf') {\n makeFile();\n return end();\n }\n if (key === 'd' && (visual() || prevStore === 'd')) {\n stopVisual();\n remove();\n return end();\n }\n if (key === 'G' || key === '$') {\n moveNext({\n count: Infinity,\n isVisual\n });\n return end();\n }\n if (key === 'y') {\n if (!visual()) return end();\n stopVisual();\n copy();\n return end();\n }\n if (/^p$/i.test(key)) {\n paste();\n return end();\n }\n if (/^v$/i.test(key)) {\n visual(!visual());\n select();\n return end();\n }\n if (key === '/') {\n find();\n return end();\n }\n if (key === 'n') {\n findNext();\n return end();\n }\n if (key === 'N') {\n findPrevious();\n return end();\n }\n if (key === ' ') return end();\n});\n(Object.getOwnPropertyDescriptor(__WEBPACK_DEFAULT_EXPORT__, \"name\") || {}).writable || Object.defineProperty(__WEBPACK_DEFAULT_EXPORT__, \"name\", { value: \"default\", configurable: true });\nfunction handleDelete(prevStore) {\n const isDelete = prevStore[0] === 'd';\n if (isDelete) {\n visual(true);\n prevStore = rmFirst(prevStore);\n }\n const count = getNumber(prevStore);\n const isVisual = visual();\n return {\n count,\n isDelete,\n isVisual\n };\n}\nfunction getNumber(value) {\n if (!value) return 1;\n if (value === 'g') return 1;\n return parseInt(value);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/key/vim/vim.js\n}");
1485
1485
 
1486
1486
  /***/ },
1487
1487
 
@@ -1745,7 +1745,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
1745
1745
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1746
1746
 
1747
1747
  "use strict";
1748
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setListeners: () => (/* binding */ setListeners)\n/* harmony export */ });\n/* harmony import */ var for_each_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! for-each-key */ \"./node_modules/for-each-key/lib/for-each-key.js\");\n/* harmony import */ var wraptile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* harmony import */ var _format_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./format.js */ \"./client/modules/operation/format.js\");\n/* global DOM */\n\n\n\nconst {\n Dialog,\n Images\n} = DOM;\nconst setListeners = options => emitter => {\n const {\n operation,\n callback,\n noContinue,\n from,\n to\n } = options;\n let done;\n let lastError;\n const onAbort = wraptile__WEBPACK_IMPORTED_MODULE_1__(({\n emitter,\n operation\n }) => {\n emitter.abort();\n const msg = `${operation} aborted`;\n lastError = true;\n Dialog.alert(msg, {\n cancel: false\n });\n });\n const removeListener = emitter.removeListener.bind(emitter);\n const on = emitter.on.bind(emitter);\n const message = (0,_format_js__WEBPACK_IMPORTED_MODULE_2__.format)(operation, from, to);\n const progress = Dialog.progress(message);\n progress.catch(onAbort({\n emitter,\n operation\n }));\n let noProgress = true;\n const listeners = {\n progress: value => {\n done = value === 100;\n progress.setProgress(value);\n noProgress = false;\n },\n end: () => {\n Images.hide();\n for_each_key__WEBPACK_IMPORTED_MODULE_0__(removeListener, listeners);\n progress.remove();\n if (lastError || done || noProgress) callback();\n },\n error: async error => {\n lastError = error;\n if (noContinue) {\n listeners.end(error);\n Dialog.alert(error);\n progress.remove();\n return;\n }\n const [cancel] = await Dialog.confirm(`${error}\n Continue?`);\n if (!done && !cancel) return emitter.continue();\n emitter.abort();\n progress.remove();\n }\n };\n for_each_key__WEBPACK_IMPORTED_MODULE_0__(on, listeners);\n};\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/operation/set-listeners.js\n}");
1748
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setListeners: () => (/* binding */ setListeners)\n/* harmony export */ });\n/* harmony import */ var for_each_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! for-each-key */ \"./node_modules/for-each-key/lib/for-each-key.js\");\n/* harmony import */ var wraptile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* harmony import */ var _format_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./format.js */ \"./client/modules/operation/format.js\");\n/* global DOM */\n\n\n\nconst {\n Dialog,\n Images\n} = DOM;\nconst setListeners = options => emitter => {\n const {\n operation,\n callback,\n noContinue,\n from,\n to\n } = options;\n let done;\n const onAbort = wraptile__WEBPACK_IMPORTED_MODULE_1__(({\n emitter,\n operation\n }) => {\n emitter.abort();\n const msg = `${operation} aborted`;\n Dialog.alert(msg, {\n cancel: false\n });\n });\n const removeListener = emitter.removeListener.bind(emitter);\n const on = emitter.on.bind(emitter);\n const message = (0,_format_js__WEBPACK_IMPORTED_MODULE_2__.format)(operation, from, to);\n const progress = Dialog.progress(message);\n progress.catch(onAbort({\n emitter,\n operation\n }));\n const listeners = {\n progress: value => {\n done = value === 100;\n progress.setProgress(value);\n },\n end: () => {\n Images.hide();\n for_each_key__WEBPACK_IMPORTED_MODULE_0__(removeListener, listeners);\n progress.remove();\n callback();\n },\n error: async error => {\n if (noContinue) {\n listeners.end(error);\n Dialog.alert(error);\n progress.remove();\n return;\n }\n const [cancel] = await Dialog.confirm(`${error}\n Continue?`);\n if (!done && !cancel) return emitter.continue();\n emitter.abort();\n progress.remove();\n }\n };\n for_each_key__WEBPACK_IMPORTED_MODULE_0__(on, listeners);\n};\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/operation/set-listeners.js\n}");
1749
1749
 
1750
1750
  /***/ },
1751
1751
 
package/dist-dev/sw.js CHANGED
@@ -37,7 +37,7 @@ eval("{// shim for using process in browser\nvar process = module.exports = {};\
37
37
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
38
38
 
39
39
  "use strict";
40
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* harmony import */ var try_to_catch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* harmony import */ var currify__WEBPACK_IMPORTED_MODULE_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__WEBPACK_IMPORTED_MODULE_2__((f, e) => e.waitUntil(f()));\nconst respondWith = currify__WEBPACK_IMPORTED_MODULE_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 = \"Tue Apr 21 2026 23:31:15 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__WEBPACK_IMPORTED_MODULE_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}");
40
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* harmony import */ var try_to_catch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* harmony import */ var currify__WEBPACK_IMPORTED_MODULE_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__WEBPACK_IMPORTED_MODULE_2__((f, e) => e.waitUntil(f()));\nconst respondWith = currify__WEBPACK_IMPORTED_MODULE_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 = \"Tue Apr 28 2026 23:44:18 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__WEBPACK_IMPORTED_MODULE_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}");
41
41
 
42
42
  /***/ },
43
43
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "19.13.1",
3
+ "version": "19.15.0",
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",
@@ -127,7 +127,7 @@
127
127
  "open": "^11.0.0",
128
128
  "package-json": "^10.0.0",
129
129
  "pipe-io": "^4.0.1",
130
- "ponse": "^7.0.0",
130
+ "ponse": "^8.0.0",
131
131
  "pullout": "^5.0.0",
132
132
  "putout": "^42.0.5",
133
133
  "redzip": "^4.6.1",
@@ -5,7 +5,7 @@ import fs from 'node:fs';
5
5
  import {fullstore} from 'fullstore';
6
6
  import currify from 'currify';
7
7
  import apart from 'apart';
8
- import ponse from 'ponse';
8
+ import * as ponse from 'ponse';
9
9
  import {restafary} from 'restafary';
10
10
  import restbox from 'restbox';
11
11
  import {konsole} from 'console-io';
@@ -186,7 +186,7 @@ function cloudcmdMiddle({modules, config}) {
186
186
  const zip = apart(config, 'zip');
187
187
  const root = apart(config, 'root');
188
188
 
189
- const ponseStatic = ponse.static({
189
+ const ponseStatic = ponse.createStatic({
190
190
  cache,
191
191
  root: DIR_ROOT,
192
192
  });
package/server/config.js CHANGED
@@ -6,7 +6,7 @@ import currify from 'currify';
6
6
  import wraptile from 'wraptile';
7
7
  import {tryToCatch} from 'try-to-catch';
8
8
  import pullout from 'pullout';
9
- import ponse from 'ponse';
9
+ import * as ponse from 'ponse';
10
10
  import jonny from 'jonny';
11
11
  import jju from 'jju';
12
12
  import writejson from 'writejson';
@@ -2,7 +2,7 @@ import {callbackify} from 'node:util';
2
2
  import {fileURLToPath} from 'node:url';
3
3
  import {dirname} from 'node:path';
4
4
  import pullout from 'pullout';
5
- import ponse from 'ponse';
5
+ import {getQuery} from 'ponse';
6
6
  import {read} from 'redzip';
7
7
  import root from '../root.js';
8
8
  import parse from './worker.js';
@@ -40,7 +40,7 @@ function parseName(query, name, rootDir) {
40
40
  }
41
41
 
42
42
  async function onGET(request, name, root) {
43
- const query = ponse.getQuery(request);
43
+ const query = getQuery(request);
44
44
  const fileName = parseName(query, name, root);
45
45
  const stream = await read(fileName);
46
46
  const data = await pullout(stream);
@@ -8,7 +8,7 @@ import wraptile from 'wraptile';
8
8
  import currify from 'currify';
9
9
  import pullout from 'pullout';
10
10
  import json from 'jonny';
11
- import ponse from 'ponse';
11
+ import * as ponse from 'ponse';
12
12
  import {copymitter} from 'copymitter';
13
13
  import _moveFiles from '@cloudcmd/move-files';
14
14
  import * as CloudFunc from '#common/cloudfunc';
package/server/route.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {createRequire} from 'node:module';
2
2
  import {extname} from 'node:path';
3
3
  import * as _win32 from 'win32';
4
- import ponse from 'ponse';
4
+ import * as ponse from 'ponse';
5
5
  import {rendy} from 'rendy';
6
6
  import format from 'format-io';
7
7
  import currify from 'currify';