cloudcmd 19.1.18 → 19.1.19

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
@@ -1,2 +1,2 @@
1
- (()=>{var t={4299(t){"use strict";const n=(t,...e)=>{if(function(t){if("function"!=typeof t)throw Error("fn should be function!")}(t),e.length>=t.length)return t(...e);const r=(...r)=>n(t,...e,...r),i=t.length-e.length-1,o=(t=>[function(n){return t(...arguments)},function(n,e){return t(...arguments)},function(n,e,r){return t(...arguments)},function(n,e,r,i){return t(...arguments)},function(n,e,r,i,o){return t(...arguments)}])(r)[i];return o||r};t.exports=n},5606(t){var n,e,r=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function c(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{e="function"==typeof clearTimeout?clearTimeout:o}catch(t){e=o}}();var s,a=[],u=!1,l=-1;function f(){u&&s&&(u=!1,s.length?a=s.concat(a):l=-1,a.length&&h())}function h(){if(!u){var t=c(f);u=!0;for(var n=a.length;n;){for(s=a,a=[];++l<n;)s&&s[l].run();l=-1,n=a.length}s=null,u=!1,function(t){if(e===clearTimeout)return clearTimeout(t);if((e===o||!e)&&clearTimeout)return e=clearTimeout,clearTimeout(t);try{return e(t)}catch(n){try{return e.call(null,t)}catch(n){return e.call(this,t)}}}(t)}}function d(t,n){this.fun=t,this.array=n}function p(){}r.nextTick=function(t){var n=new Array(arguments.length-1);if(arguments.length>1)for(var e=1;e<arguments.length;e++)n[e-1]=arguments[e];a.push(new d(t,n)),1!==a.length||u||c(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=p,r.addListener=p,r.once=p,r.off=p,r.removeListener=p,r.removeAllListeners=p,r.emit=p,r.prependListener=p,r.prependOnceListener=p,r.listeners=function(t){return[]},r.binding=function(t){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(t){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}}},n={};function e(r){var i=n[r];if(void 0!==i)return i.exports;var o=n[r]={exports:{}};return t[r](o,o.exports,e),o.exports}(()=>{"use strict";e(5606);var t=e(4299);const n=t((t,n)=>n.waitUntil(t())),r=t((t,n)=>{const{request:e}=n,{url:r}=e,o=i(r);r.endsWith("/")||/\^\/fs/.test(o)||"GET"===e.method&&"basic"===e.type&&(o.startsWith("/api")||/^socket.io/.test(o)||n.respondWith(t(n)))}),i=t=>new URL(t).pathname,o="cloudcmd: Fri Jan 30 2026 00:56:02 GMT+0200 (Eastern European Standard Time)";globalThis.addEventListener("install",n(async function(){console.info(`cloudcmd: sw: install: ${o}`),await globalThis.skipWaiting()})),globalThis.addEventListener("fetch",r(async function(t){const{request:n}=t,{url:e}=n,r=((t,n)=>"/"!==t?n:new Request("/",{credentials:"same-origin"}))(i(e),t.request),c=await caches.open(o),s=await c.match(n);if(s)return s;const[a,u]=await(async(t,...n)=>{!function(t){if("function"!=typeof t)throw Error("fn should be a function!")}(t);try{return[null,await t(...n)]}catch(t){return[t]}})(fetch,r,{credentials:"same-origin"});return a?new Response(a.message):(await async function(t,n){return(await caches.open(o)).put(t,n)}(n,u.clone()),u)})),globalThis.addEventListener("activate",n(async function(){console.info(`cloudcmd: sw: activate: ${o}`),await globalThis.clients.claim();const t=await caches.keys(),n=caches.delete.bind(caches);await Promise.all(t.map(n))}))})()})();
1
+ (()=>{var t={4299(t){"use strict";const n=(t,...e)=>{if(function(t){if("function"!=typeof t)throw Error("fn should be function!")}(t),e.length>=t.length)return t(...e);const r=(...r)=>n(t,...e,...r),i=t.length-e.length-1,o=(t=>[function(n){return t(...arguments)},function(n,e){return t(...arguments)},function(n,e,r){return t(...arguments)},function(n,e,r,i){return t(...arguments)},function(n,e,r,i,o){return t(...arguments)}])(r)[i];return o||r};t.exports=n},5606(t){var n,e,r=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function c(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{e="function"==typeof clearTimeout?clearTimeout:o}catch(t){e=o}}();var s,a=[],u=!1,l=-1;function f(){u&&s&&(u=!1,s.length?a=s.concat(a):l=-1,a.length&&h())}function h(){if(!u){var t=c(f);u=!0;for(var n=a.length;n;){for(s=a,a=[];++l<n;)s&&s[l].run();l=-1,n=a.length}s=null,u=!1,function(t){if(e===clearTimeout)return clearTimeout(t);if((e===o||!e)&&clearTimeout)return e=clearTimeout,clearTimeout(t);try{return e(t)}catch(n){try{return e.call(null,t)}catch(n){return e.call(this,t)}}}(t)}}function d(t,n){this.fun=t,this.array=n}function p(){}r.nextTick=function(t){var n=new Array(arguments.length-1);if(arguments.length>1)for(var e=1;e<arguments.length;e++)n[e-1]=arguments[e];a.push(new d(t,n)),1!==a.length||u||c(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=p,r.addListener=p,r.once=p,r.off=p,r.removeListener=p,r.removeAllListeners=p,r.emit=p,r.prependListener=p,r.prependOnceListener=p,r.listeners=function(t){return[]},r.binding=function(t){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(t){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}}},n={};function e(r){var i=n[r];if(void 0!==i)return i.exports;var o=n[r]={exports:{}};return t[r](o,o.exports,e),o.exports}(()=>{"use strict";e(5606);var t=e(4299);const n=t((t,n)=>n.waitUntil(t())),r=t((t,n)=>{const{request:e}=n,{url:r}=e,o=i(r);r.endsWith("/")||/\^\/fs/.test(o)||"GET"===e.method&&"basic"===e.type&&(o.startsWith("/api")||/^socket.io/.test(o)||n.respondWith(t(n)))}),i=t=>new URL(t).pathname,o="cloudcmd: Fri Jan 30 2026 21:04:39 GMT+0200 (Eastern European Standard Time)";globalThis.addEventListener("install",n(async function(){console.info(`cloudcmd: sw: install: ${o}`),await globalThis.skipWaiting()})),globalThis.addEventListener("fetch",r(async function(t){const{request:n}=t,{url:e}=n,r=((t,n)=>"/"!==t?n:new Request("/",{credentials:"same-origin"}))(i(e),t.request),c=await caches.open(o),s=await c.match(n);if(s)return s;const[a,u]=await(async(t,...n)=>{!function(t){if("function"!=typeof t)throw Error("fn should be a function!")}(t);try{return[null,await t(...n)]}catch(t){return[t]}})(fetch,r,{credentials:"same-origin"});return a?new Response(a.message):(await async function(t,n){return(await caches.open(o)).put(t,n)}(n,u.clone()),u)})),globalThis.addEventListener("activate",n(async function(){console.info(`cloudcmd: sw: activate: ${o}`),await globalThis.clients.claim();const t=await caches.keys(),n=caches.delete.bind(caches);await Promise.all(t.map(n))}))})()})();
2
2
  //# sourceMappingURL=sw.js.map
@@ -947,10 +947,10 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-ext
947
947
  /*!************************************************************!*\
948
948
  !*** ./node_modules/@cloudcmd/modal/lib/get-class-name.js ***!
949
949
  \************************************************************/
950
- (module) {
950
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
951
951
 
952
952
  "use strict";
953
- eval("{\n\nmodule.exports = ({autoSize, isTitle}) => {\n const classNames = [\n 'modal-main',\n ];\n \n if (autoSize)\n classNames.push('modal-autosize');\n \n if (isTitle)\n classNames.push('modal-is-title');\n \n return classNames.join(' ');\n};\n\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/get-class-name.js\n}");
953
+ 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 default export */ const __WEBPACK_DEFAULT_EXPORT__ = (({autoSize, isTitle}) => {\n const classNames = ['modal-main'];\n \n if (autoSize)\n classNames.push('modal-autosize');\n \n if (isTitle)\n classNames.push('modal-is-title');\n \n return classNames.join(' ');\n});\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/get-class-name.js\n}");
954
954
 
955
955
  /***/ },
956
956
 
@@ -958,10 +958,10 @@ eval("{\n\nmodule.exports = ({autoSize, isTitle}) => {\n const classNames = [
958
958
  /*!***************************************************!*\
959
959
  !*** ./node_modules/@cloudcmd/modal/lib/modal.js ***!
960
960
  \***************************************************/
961
- (module, __unused_webpack_exports, __webpack_require__) {
961
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
962
962
 
963
963
  "use strict";
964
- eval("{\n\nconst store = __webpack_require__(/*! fullstore */ \"./node_modules/@cloudcmd/modal/node_modules/fullstore/lib/fullstore.js\");\nconst currify = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\nconst createElement = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n\n__webpack_require__(/*! ../css/modal.css */ \"./node_modules/@cloudcmd/modal/css/modal.css\");\nconst parseImages = __webpack_require__(/*! ./parse-images */ \"./node_modules/@cloudcmd/modal/lib/parse-images.js\");\nconst showTitle = __webpack_require__(/*! ./show-title */ \"./node_modules/@cloudcmd/modal/lib/show-title.js\");\nconst query = __webpack_require__(/*! ./query */ \"./node_modules/@cloudcmd/modal/lib/query.js\");\nconst getClassName = __webpack_require__(/*! ./get-class-name */ \"./node_modules/@cloudcmd/modal/lib/get-class-name.js\");\n\nconst noop = () => {};\n\nconst optionsStore = store({});\n\nconst innerHTML = `\n <div class=\"modal-child\" data-name=\"modal-child\">\n <div class=\"modal-close\" data-name=\"modal-close\"></div>\n </div>\n`;\n\nconst addEvent = currify((el, fn, name) => query(el).addEventListener(name, fn));\nconst addAllEvents = (el, fn, names) => names.map(addEvent(el, fn));\n\nconst {isArray} = Array;\n\nmodule.exports.open = (inner, options = {}) => {\n check(inner);\n \n if (query('main'))\n return;\n \n const {\n beforeShow = noop,\n beforeClose = noop,\n afterShow = noop,\n afterClose = noop,\n onOverlayClick = noop,\n autoSize = false,\n index = 0,\n helpers = {},\n title = '',\n } = options;\n \n optionsStore({\n beforeClose,\n afterClose,\n });\n \n beforeShow();\n \n const isImage = isArray(inner);\n const isTitle = helpers.title && title || isImage;\n \n const className = getClassName({autoSize, isTitle});\n \n const el = createElement('div', {\n innerHTML,\n className,\n dataName: 'modal-main',\n });\n \n addAllEvents('main', onMainClick(onOverlayClick), [\n 'click',\n 'contextmenu',\n ]);\n \n query('close').addEventListener('click', close);\n \n const child = query('child');\n \n if (isImage)\n return parseImages(child, inner, {\n index,\n afterShow,\n helpers,\n });\n \n child.appendChild(inner);\n \n if (isTitle)\n showTitle(title, child);\n \n afterShow();\n \n return el;\n};\n\nconst onMainClick = currify((overlayClick, event) => {\n if (event.target !== query('main'))\n return;\n \n close(event);\n overlayClick(event);\n});\n\nconst close = (event) => {\n if (event)\n event.stopPropagation();\n \n const el = query('main');\n \n const {\n beforeClose = noop,\n afterClose = noop,\n } = optionsStore();\n \n if (!el)\n return;\n \n beforeClose();\n \n document.body.removeChild(el);\n \n afterClose();\n};\n\nmodule.exports.close = close;\n\nmodule.exports._optionsStore = optionsStore;\nmodule.exports._onMainClick = onMainClick;\n\nfunction check(inner) {\n if (!inner)\n throw Error('inner should be DOM-element!');\n}\n\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/modal.js\n}");
964
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _onMainClick: () => (/* binding */ _onMainClick),\n/* harmony export */ _optionsStore: () => (/* binding */ _optionsStore),\n/* harmony export */ close: () => (/* binding */ close),\n/* harmony export */ open: () => (/* binding */ open)\n/* harmony export */ });\n/* harmony import */ var fullstore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fullstore */ \"./node_modules/fullstore/lib/fullstore.js\");\n/* harmony import */ var currify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* harmony import */ var _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* harmony import */ var _css_modal_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../css/modal.css */ \"./node_modules/@cloudcmd/modal/css/modal.css\");\n/* harmony import */ var _parse_images_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./parse-images.js */ \"./node_modules/@cloudcmd/modal/lib/parse-images.js\");\n/* harmony import */ var _show_title_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./show-title.js */ \"./node_modules/@cloudcmd/modal/lib/show-title.js\");\n/* harmony import */ var _query_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./query.js */ \"./node_modules/@cloudcmd/modal/lib/query.js\");\n/* harmony import */ var _get_class_name_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./get-class-name.js */ \"./node_modules/@cloudcmd/modal/lib/get-class-name.js\");\n\n\n\n\n\n\n\n\n\nconst noop = () => {};\n\nconst optionsStore = (0,fullstore__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({});\n\nconst innerHTML = `\n <div class=\"modal-child\" data-name=\"modal-child\">\n <div class=\"modal-close\" data-name=\"modal-close\"></div>\n </div>\n`;\n\nconst addEvent = currify__WEBPACK_IMPORTED_MODULE_1__((el, fn, query, name) => query(el).addEventListener(name, fn));\nconst addAllEvents = (el, fn, query, names) => names.map(addEvent(el, fn, query));\n\nconst {isArray} = Array;\n\nconst open = (inner, options = {}) => {\n check(inner);\n \n const {\n beforeShow = noop,\n beforeClose = noop,\n afterShow = noop,\n afterClose = noop,\n onOverlayClick = noop,\n autoSize = false,\n index = 0,\n helpers = {},\n title = '',\n query = _query_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n showTitle = _show_title_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n parseImages = _parse_images_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n } = options;\n \n if (query('main'))\n return;\n \n optionsStore({\n beforeClose,\n afterClose,\n });\n \n beforeShow();\n \n const isImage = isArray(inner);\n const isTitle = helpers.title && title || isImage;\n \n const className = (0,_get_class_name_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])({\n autoSize,\n isTitle,\n });\n \n const el = _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_2__('div', {\n innerHTML,\n className,\n dataName: 'modal-main',\n });\n \n addAllEvents('main', onMainClick(onOverlayClick), query, ['click', 'contextmenu']);\n \n query('close').addEventListener('click', close);\n \n const child = query('child');\n \n if (isImage)\n return parseImages(child, inner, {\n index,\n afterShow,\n helpers,\n });\n \n child.appendChild(inner);\n \n if (isTitle)\n showTitle(title, child);\n \n afterShow();\n \n return el;\n};\n\nconst onMainClick = (overlayClick, overrides = {}) => (event) => {\n const {query = _query_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]} = overrides;\n \n if (event.target !== query('main'))\n return;\n \n close(event);\n overlayClick(event);\n};\n\nconst close = (event, overrides = {}) => {\n const {query = _query_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]} = overrides;\n \n if (event)\n event.stopPropagation();\n \n const el = query('main');\n \n const {\n beforeClose = noop,\n afterClose = noop,\n } = optionsStore();\n \n if (!el)\n return;\n \n beforeClose();\n \n document.body.removeChild(el);\n \n afterClose();\n};\n\nconst _optionsStore = optionsStore;\nconst _onMainClick = onMainClick;\n\nfunction check(inner) {\n if (!inner)\n throw Error('inner should be DOM-element!');\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/modal.js\n}");
965
965
 
966
966
  /***/ },
967
967
 
@@ -969,10 +969,10 @@ eval("{\n\nconst store = __webpack_require__(/*! fullstore */ \"./node_modules/@
969
969
  /*!**********************************************************!*\
970
970
  !*** ./node_modules/@cloudcmd/modal/lib/parse-images.js ***!
971
971
  \**********************************************************/
972
- (module, __unused_webpack_exports, __webpack_require__) {
972
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
973
973
 
974
974
  "use strict";
975
- eval("{\n\nconst wraptile = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\nconst store = __webpack_require__(/*! fullstore */ \"./node_modules/@cloudcmd/modal/node_modules/fullstore/lib/fullstore.js\");\nconst createElement = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n\nconst showTitle = __webpack_require__(/*! ./show-title */ \"./node_modules/@cloudcmd/modal/lib/show-title.js\");\nconst query = __webpack_require__(/*! ./query */ \"./node_modules/@cloudcmd/modal/lib/query.js\");\n\nconst indexStore = store();\nconst helpersStore = store();\n\nconst next = wraptile((img, images) => setImage(indexStore() + 1, img, images));\nconst prev = wraptile((img, images) => setImage(indexStore() - 1, img, images));\n\nconst onload = wraptile((parent, afterShow) => {\n parent.hidden = false;\n afterShow();\n});\n\nconst onKeydown = (img, images) => function keydownListener(e) {\n let i = indexStore();\n \n const ArrowLeft = 37;\n const ArrowRight = 39;\n const Esc = 27;\n \n const {keyCode} = e;\n \n if (keyCode === ArrowLeft)\n --i;\n else if (keyCode === ArrowRight)\n ++i;\n else {\n if (keyCode === Esc)\n return document.body.removeEventListener('keydown', keydownListener);\n \n return;\n }\n \n setImage(i, img, images);\n};\n\nfunction setImage(i, img, images) {\n const n = images.length - 1;\n \n if (i < 0 || i > n)\n return;\n \n indexStore(i);\n \n query('nav-left').hidden = !i;\n query('nav-right').hidden = i === n;\n \n const {\n href,\n title,\n } = images[i];\n \n img.src = href;\n img.title = title;\n img.href = title;\n img.alt = title;\n \n if (helpersStore().title)\n showTitle(title, query('child'));\n}\n\nmodule.exports = parseImages;\n\nfunction parseImages(parent, images, {afterShow, helpers, index}) {\n indexStore(index);\n helpersStore(helpers);\n \n const img = createImage();\n parent.appendChild(img);\n \n parent.hidden = true;\n \n parent.appendChild(createElement('div', {\n className: 'modal-nav modal-nav-left',\n dataName: 'modal-nav-left',\n innerHTML: '<span></span>',\n }));\n \n parent.appendChild(createElement('div', {\n className: 'modal-nav modal-nav-right',\n dataName: 'modal-nav-right',\n innerHTML: '<span data-name=\"modal-next\"></span>',\n }));\n \n setImage(index, img, images);\n addListenerOnce(img, 'load', onload(parent, afterShow));\n \n query('nav-left')\n .addEventListener('click', prev(img, images));\n \n query('nav-right')\n .addEventListener('click', next(img, images));\n \n document.body.addEventListener('keydown', onKeydown(img, images));\n}\n\nfunction createImage() {\n const el = document.createElement('img');\n \n el.className = 'modal-image';\n \n return el;\n}\n\nmodule.exports._rmListener = rmListener;\nfunction rmListener(el, name, fn) {\n return function f(e) {\n fn(e);\n el.removeEventListener(name, f);\n };\n}\n\nmodule.exports._addListenerOnce = addListenerOnce;\nfunction addListenerOnce(el, name, fn) {\n el.addEventListener(name, rmListener(el, name, fn));\n}\n\nmodule.exports._onKeydown = onKeydown;\nmodule.exports._indexStore = indexStore;\nmodule.exports._helpersStore = helpersStore;\nmodule.exports._onload = onload;\n\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/parse-images.js\n}");
975
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _addListenerOnce: () => (/* binding */ _addListenerOnce),\n/* harmony export */ _helpersStore: () => (/* binding */ _helpersStore),\n/* harmony export */ _indexStore: () => (/* binding */ _indexStore),\n/* harmony export */ _onKeydown: () => (/* binding */ _onKeydown),\n/* harmony export */ _onload: () => (/* binding */ _onload),\n/* harmony export */ _rmListener: () => (/* binding */ _rmListener),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var wraptile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* harmony import */ var fullstore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fullstore */ \"./node_modules/fullstore/lib/fullstore.js\");\n/* harmony import */ var _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* harmony import */ var _show_title_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./show-title.js */ \"./node_modules/@cloudcmd/modal/lib/show-title.js\");\n/* harmony import */ var _query_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./query.js */ \"./node_modules/@cloudcmd/modal/lib/query.js\");\n\n\n\n\n\n\nconst indexStore = (0,fullstore__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\nconst helpersStore = (0,fullstore__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\nconst next = wraptile__WEBPACK_IMPORTED_MODULE_0__((img, images) => setImage(indexStore() + 1, img, images));\nconst prev = wraptile__WEBPACK_IMPORTED_MODULE_0__((img, images) => setImage(indexStore() - 1, img, images));\n\nconst onload = wraptile__WEBPACK_IMPORTED_MODULE_0__((parent, afterShow) => {\n parent.hidden = false;\n afterShow();\n});\n\nconst onKeydown = (img, images, query) => function keydownListener(e) {\n let i = indexStore();\n \n const ArrowLeft = 37;\n const ArrowRight = 39;\n const Esc = 27;\n \n const {keyCode} = e;\n \n if (keyCode === ArrowLeft) {\n --i;\n } else if (keyCode === ArrowRight) {\n ++i;\n } else {\n if (keyCode === Esc)\n return document.body.removeEventListener('keydown', keydownListener);\n \n return;\n }\n \n setImage(i, img, images, {\n query,\n });\n};\n\nfunction setImage(i, img, images, {query, showTitle}) {\n const n = images.length - 1;\n \n if (i < 0 || i > n)\n return;\n \n indexStore(i);\n \n query('nav-left').hidden = !i;\n query('nav-right').hidden = i === n;\n \n const {href, title} = images[i];\n \n img.src = href;\n img.title = title;\n img.href = title;\n img.alt = title;\n \n if (helpersStore().title)\n showTitle(title, query('child'));\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parseImages);\n\nfunction parseImages(parent, images, overrides = {}) {\n const {\n afterShow,\n helpers,\n index,\n query = _query_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n createElement = _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_2__,\n showTitle = _show_title_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n } = overrides;\n \n indexStore(index);\n helpersStore(helpers);\n \n const img = createImage();\n parent.appendChild(img);\n \n parent.hidden = true;\n \n parent.appendChild(createElement('div', {\n className: 'modal-nav modal-nav-left',\n dataName: 'modal-nav-left',\n innerHTML: '<span></span>',\n }));\n \n parent.appendChild(createElement('div', {\n className: 'modal-nav modal-nav-right',\n dataName: 'modal-nav-right',\n innerHTML: '<span data-name=\"modal-next\"></span>',\n }));\n \n setImage(index, img, images, {\n query,\n showTitle,\n });\n addListenerOnce(img, 'load', onload(parent, afterShow));\n \n query('nav-left').addEventListener('click', prev(img, images, query));\n \n query('nav-right').addEventListener('click', next(img, images, query));\n \n document.body.addEventListener('keydown', onKeydown(img, images, query));\n}\n\nfunction createImage() {\n const el = document.createElement('img');\n \n el.className = 'modal-image';\n \n return el;\n}\n\nconst _rmListener = rmListener;\nfunction rmListener(el, name, fn) {\n return function f(e) {\n fn(e);\n el.removeEventListener(name, f);\n };\n}\n\nconst _addListenerOnce = addListenerOnce;\nfunction addListenerOnce(el, name, fn) {\n el.addEventListener(name, rmListener(el, name, fn));\n}\n\nconst _onKeydown = onKeydown;\nconst _indexStore = indexStore;\nconst _helpersStore = helpersStore;\nconst _onload = onload;\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/parse-images.js\n}");
976
976
 
977
977
  /***/ },
978
978
 
@@ -980,10 +980,10 @@ eval("{\n\nconst wraptile = __webpack_require__(/*! wraptile */ \"./node_modules
980
980
  /*!***************************************************!*\
981
981
  !*** ./node_modules/@cloudcmd/modal/lib/query.js ***!
982
982
  \***************************************************/
983
- (module) {
983
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
984
984
 
985
985
  "use strict";
986
- eval("{\n\nmodule.exports = (a) => document.querySelector(`[data-name=\"modal-${a}\"]`);\n\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/query.js\n}");
986
+ 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 default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((a) => document.querySelector(`[data-name=\"modal-${a}\"]`));\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/query.js\n}");
987
987
 
988
988
  /***/ },
989
989
 
@@ -991,21 +991,10 @@ eval("{\n\nmodule.exports = (a) => document.querySelector(`[data-name=\"modal-${
991
991
  /*!********************************************************!*\
992
992
  !*** ./node_modules/@cloudcmd/modal/lib/show-title.js ***!
993
993
  \********************************************************/
994
- (module, __unused_webpack_exports, __webpack_require__) {
995
-
996
- "use strict";
997
- eval("{\n\nconst createElement = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\nconst query = __webpack_require__(/*! ./query */ \"./node_modules/@cloudcmd/modal/lib/query.js\");\n\nmodule.exports = (title, parent) => {\n const titleEl = query('title');\n \n if (titleEl) {\n query('title-text').textContent = title;\n return;\n }\n \n const el = createElement('div', {\n className: 'modal-title',\n dataName: 'modal-title',\n parent,\n });\n \n createElement('span', {\n parent: el,\n textContent: title,\n className: 'modal-title-text',\n dataName: 'modal-title-text',\n });\n};\n\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/show-title.js\n}");
998
-
999
- /***/ },
1000
-
1001
- /***/ "./node_modules/@cloudcmd/modal/node_modules/fullstore/lib/fullstore.js"
1002
- /*!******************************************************************************!*\
1003
- !*** ./node_modules/@cloudcmd/modal/node_modules/fullstore/lib/fullstore.js ***!
1004
- \******************************************************************************/
1005
- (module) {
994
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
1006
995
 
1007
996
  "use strict";
1008
- eval("{\n\nmodule.exports = (value) => {\n const data = {\n value,\n };\n \n return (...args) => {\n const [value] = args;\n \n if (!args.length)\n return data.value;\n \n data.value = value;\n \n return value;\n };\n};\n\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/node_modules/fullstore/lib/fullstore.js\n}");
997
+ 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 _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* harmony import */ var _query_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query.js */ \"./node_modules/@cloudcmd/modal/lib/query.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((title, parent, overrides = {}) => {\n const {\n query = _query_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n createElement = _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_0__,\n } = overrides;\n \n const titleEl = query('title');\n \n if (titleEl) {\n query('title-text').textContent = title;\n return;\n }\n \n const el = createElement('div', {\n className: 'modal-title',\n dataName: 'modal-title',\n parent,\n });\n \n createElement('span', {\n parent: el,\n textContent: title,\n className: 'modal-title-text',\n dataName: 'modal-title-text',\n });\n});\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/@cloudcmd/modal/lib/show-title.js\n}");
1009
998
 
1010
999
  /***/ },
1011
1000
 
package/dist-dev/sw.js CHANGED
@@ -16,7 +16,7 @@
16
16
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17
17
 
18
18
  "use strict";
19
- 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 = \"Fri Jan 30 2026 00:56:05 GMT+0200 (Eastern European Standard 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.mjs\n}");
19
+ 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 = \"Fri Jan 30 2026 21:04:42 GMT+0200 (Eastern European Standard 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.mjs\n}");
20
20
 
21
21
  /***/ },
22
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "19.1.18",
3
+ "version": "19.1.19",
4
4
  "type": "commonjs",
5
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
6
6
  "description": "File manager for the web with console and editor",
@@ -155,7 +155,7 @@
155
155
  "@babel/preset-env": "^7.0.0",
156
156
  "@cloudcmd/clipboard": "^2.0.0",
157
157
  "@cloudcmd/create-element": "^2.0.0",
158
- "@cloudcmd/modal": "^3.0.0",
158
+ "@cloudcmd/modal": "^4.0.0",
159
159
  "@cloudcmd/olark": "^3.0.2",
160
160
  "@cloudcmd/stub": "^5.0.0",
161
161
  "@iocmd/wait": "^2.1.0",