cloudcmd 16.17.8 → 16.18.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.
Files changed (52) hide show
  1. package/ChangeLog +12 -0
  2. package/HELP.md +3 -1
  3. package/README.md +1 -1
  4. package/dist/cloudcmd.common.js +3 -3
  5. package/dist/cloudcmd.common.js.map +1 -1
  6. package/dist/cloudcmd.js +1 -1
  7. package/dist/cloudcmd.js.map +1 -1
  8. package/dist/modules/cloud.js +1 -1
  9. package/dist/modules/cloud.js.map +1 -1
  10. package/dist/modules/command-line.js +1 -1
  11. package/dist/modules/command-line.js.map +1 -1
  12. package/dist/modules/config.js +1 -1
  13. package/dist/modules/config.js.map +1 -1
  14. package/dist/modules/contact.js +1 -1
  15. package/dist/modules/contact.js.map +1 -1
  16. package/dist/modules/edit-file-vim.js +1 -1
  17. package/dist/modules/edit-file-vim.js.map +1 -1
  18. package/dist/modules/edit-file.js +1 -1
  19. package/dist/modules/edit-file.js.map +1 -1
  20. package/dist/modules/edit-names-vim.js +1 -1
  21. package/dist/modules/edit-names-vim.js.map +1 -1
  22. package/dist/modules/edit-names.js +1 -1
  23. package/dist/modules/edit-names.js.map +1 -1
  24. package/dist/modules/edit.js +1 -1
  25. package/dist/modules/edit.js.map +1 -1
  26. package/dist/modules/help.js +1 -1
  27. package/dist/modules/help.js.map +1 -1
  28. package/dist/modules/konsole.js +1 -1
  29. package/dist/modules/konsole.js.map +1 -1
  30. package/dist/modules/markdown.js +1 -1
  31. package/dist/modules/markdown.js.map +1 -1
  32. package/dist/modules/menu.js +1 -1
  33. package/dist/modules/menu.js.map +1 -1
  34. package/dist/modules/operation.js +1 -1
  35. package/dist/modules/operation.js.map +1 -1
  36. package/dist/modules/polyfill.js +1 -1
  37. package/dist/modules/polyfill.js.map +1 -1
  38. package/dist/modules/terminal-run.js +1 -1
  39. package/dist/modules/terminal-run.js.map +1 -1
  40. package/dist/modules/terminal.js +1 -1
  41. package/dist/modules/terminal.js.map +1 -1
  42. package/dist/modules/upload.js +1 -1
  43. package/dist/modules/upload.js.map +1 -1
  44. package/dist/modules/user-menu.js +1 -1
  45. package/dist/modules/user-menu.js.map +1 -1
  46. package/dist/modules/view.js +1 -1
  47. package/dist/modules/view.js.map +1 -1
  48. package/dist/sw.js +1 -1
  49. package/dist-dev/cloudcmd.common.js +11 -45
  50. package/dist-dev/cloudcmd.js +13 -1
  51. package/dist-dev/sw.js +1 -1
  52. package/package.json +3 -3
package/dist/sw.js CHANGED
@@ -5,5 +5,5 @@ var serviceWorkerOption = {
5
5
  ]
6
6
  };
7
7
 
8
- !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=0)}([function(t,e,n){"use strict";const r=n(1),o=n(2),i=n(3),c="development"===r.env.NODE_ENV,u=i((t,e)=>e.waitUntil(t())),s=i((t,e)=>{const{request:n}=e,{url:r}=n,o=a(r);r.endsWith("/")||/\^\/fs/.test(o)||"GET"===n.method&&(t=>"basic"===t.type)(n)&&(o.startsWith("/api")||/^socket.io/.test(o)||e.respondWith(t(e)))}),a=t=>new URL(t).pathname,f="cloudcmd: Mon Dec 04 2023 20:18:17 GMT+0200 (Eastern European Standard Time)",l=(t,e)=>"/"!==t?e:(t=>new Request(t,{credentials:"same-origin"}))("/");self.addEventListener("install",u((async function(){console.info("cloudcmd: sw: install: "+f),await self.skipWaiting()}))),self.addEventListener("fetch",s((async function(t){const{request:e}=t,{url:n}=e,r=a(n),i=l(r,t.request),u=await caches.open(f),s=await u.match(e);if(!c&&s)return s;const[d,h]=await o(fetch,i,{credentials:"same-origin"});return d?new Response(d.message):(await async function(t,e){return(await caches.open(f)).put(t,e)}(e,h.clone()),h)}))),self.addEventListener("activate",u((async function(){console.info("cloudcmd: sw: activate: "+f),await self.clients.claim();const t=await caches.keys(),e=caches.delete.bind(caches);await Promise.all(t.map(e))})))},function(t,e){var n,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function u(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{r="function"==typeof clearTimeout?clearTimeout:c}catch(t){r=c}}();var s,a=[],f=!1,l=-1;function d(){f&&s&&(f=!1,s.length?a=s.concat(a):l=-1,a.length&&h())}function h(){if(!f){var t=u(d);f=!0;for(var e=a.length;e;){for(s=a,a=[];++l<e;)s&&s[l].run();l=-1,e=a.length}s=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===c||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function m(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];a.push(new p(t,e)),1!==a.length||f||u(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,n){"use strict";t.exports=async(t,...e)=>{!function(t){if("function"!=typeof t)throw Error("fn should be a function!")}(t);try{return[null,await t(...e)]}catch(t){return[t]}}},function(t,e,n){"use strict";const r=(t,...e)=>{if(function(t){if("function"!=typeof t)throw Error("fn should be function!")}(t),e.length>=t.length)return t(...e);const n=(...n)=>r(t,...e,...n),o=t.length-e.length-1;return(t=>[function(e){return t(...arguments)},function(e,n){return t(...arguments)},function(e,n,r){return t(...arguments)},function(e,n,r,o){return t(...arguments)},function(e,n,r,o,i){return t(...arguments)}])(n)[o]||n};t.exports=r}]);
8
+ !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=0)}([function(t,e,n){"use strict";const r=n(1),o=n(2),i=n(3),c="development"===r.env.NODE_ENV,u=i((t,e)=>e.waitUntil(t())),s=i((t,e)=>{const{request:n}=e,{url:r}=n,o=a(r);r.endsWith("/")||/\^\/fs/.test(o)||"GET"===n.method&&(t=>"basic"===t.type)(n)&&(o.startsWith("/api")||/^socket.io/.test(o)||e.respondWith(t(e)))}),a=t=>new URL(t).pathname,f="cloudcmd: Fri Dec 08 2023 13:20:23 GMT+0200 (Eastern European Standard Time)",l=(t,e)=>"/"!==t?e:(t=>new Request(t,{credentials:"same-origin"}))("/");self.addEventListener("install",u((async function(){console.info("cloudcmd: sw: install: "+f),await self.skipWaiting()}))),self.addEventListener("fetch",s((async function(t){const{request:e}=t,{url:n}=e,r=a(n),i=l(r,t.request),u=await caches.open(f),s=await u.match(e);if(!c&&s)return s;const[d,h]=await o(fetch,i,{credentials:"same-origin"});return d?new Response(d.message):(await async function(t,e){return(await caches.open(f)).put(t,e)}(e,h.clone()),h)}))),self.addEventListener("activate",u((async function(){console.info("cloudcmd: sw: activate: "+f),await self.clients.claim();const t=await caches.keys(),e=caches.delete.bind(caches);await Promise.all(t.map(e))})))},function(t,e){var n,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function u(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{r="function"==typeof clearTimeout?clearTimeout:c}catch(t){r=c}}();var s,a=[],f=!1,l=-1;function d(){f&&s&&(f=!1,s.length?a=s.concat(a):l=-1,a.length&&h())}function h(){if(!f){var t=u(d);f=!0;for(var e=a.length;e;){for(s=a,a=[];++l<e;)s&&s[l].run();l=-1,e=a.length}s=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===c||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function m(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];a.push(new p(t,e)),1!==a.length||f||u(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,n){"use strict";t.exports=async(t,...e)=>{!function(t){if("function"!=typeof t)throw Error("fn should be a function!")}(t);try{return[null,await t(...e)]}catch(t){return[t]}}},function(t,e,n){"use strict";const r=(t,...e)=>{if(function(t){if("function"!=typeof t)throw Error("fn should be function!")}(t),e.length>=t.length)return t(...e);const n=(...n)=>r(t,...e,...n),o=t.length-e.length-1;return(t=>[function(e){return t(...arguments)},function(e,n){return t(...arguments)},function(e,n,r){return t(...arguments)},function(e,n,r,o){return t(...arguments)},function(e,n,r,o,i){return t(...arguments)}])(n)[o]||n};t.exports=r}]);
9
9
  //# sourceMappingURL=sw.js.map
@@ -44,7 +44,7 @@ eval("\n\nconst tryToCatch = __webpack_require__(/*! try-to-catch */ \"./node_mo
44
44
  /***/ (function(module, exports, __webpack_require__) {
45
45
 
46
46
  "use strict";
47
- eval("\n\n/* global CloudCmd */\nconst philip = __webpack_require__(/*! philip */ \"./node_modules/philip/legacy/philip.js\");\nconst Images = __webpack_require__(/*! ./images */ \"./client/dom/images.js\");\nconst {\n FS\n} = __webpack_require__(/*! ../../common/cloudfunc */ \"./common/cloudfunc.js\");\nconst DOM = __webpack_require__(/*! . */ \"./client/dom/index.js\");\nconst Dialog = __webpack_require__(/*! ./dialog */ \"./client/dom/dialog.js\");\nconst {\n getCurrentDirPath: getPathWhenRootEmpty\n} = DOM;\nmodule.exports = items => {\n if (items.length) Images.show('top');\n const entries = Array.from(items).map(item => item.webkitGetAsEntry());\n const dirPath = getPathWhenRootEmpty();\n const path = dirPath.replace(/\\/$/, '');\n const progress = Dialog.progress('Uploading...');\n progress.catch(() => {\n Dialog.alert('Upload aborted');\n uploader.abort();\n });\n const uploader = philip(entries, (type, name, data, i, n, callback) => {\n const {\n prefixURL\n } = CloudCmd;\n const full = prefixURL + FS + path + name;\n let upload;\n switch (type) {\n case 'file':\n upload = uploadFile(full, data);\n break;\n case 'directory':\n upload = uploadDir(full);\n break;\n }\n upload.on('end', callback);\n upload.on('progress', count => {\n const current = percent(i, n);\n const next = percent(i + 1, n);\n const max = next - current;\n const value = current + percent(count, 100, max);\n progress.setProgress(value);\n });\n });\n uploader.on('error', error => {\n Dialog.alert(error);\n uploader.abort();\n });\n uploader.on('end', CloudCmd.refresh);\n};\nfunction percent(i, n, per = 100) {\n return Math.round(i * per / n);\n}\nfunction uploadFile(url, data) {\n return DOM.load.put(url, data);\n}\nfunction uploadDir(url) {\n return DOM.load.put(`${url}?dir`);\n}\n\n//# sourceURL=file://cloudcmd/client/dom/directory.js");
47
+ eval("\n\n/* global CloudCmd */\nconst philip = __webpack_require__(/*! philip */ \"./node_modules/philip/lib/philip.js\");\nconst Images = __webpack_require__(/*! ./images */ \"./client/dom/images.js\");\nconst {\n FS\n} = __webpack_require__(/*! ../../common/cloudfunc */ \"./common/cloudfunc.js\");\nconst DOM = __webpack_require__(/*! . */ \"./client/dom/index.js\");\nconst Dialog = __webpack_require__(/*! ./dialog */ \"./client/dom/dialog.js\");\nconst {\n getCurrentDirPath: getPathWhenRootEmpty\n} = DOM;\nmodule.exports = items => {\n if (items.length) Images.show('top');\n const entries = Array.from(items).map(item => item.webkitGetAsEntry());\n const dirPath = getPathWhenRootEmpty();\n const path = dirPath.replace(/\\/$/, '');\n const progress = Dialog.progress('Uploading...');\n progress.catch(() => {\n Dialog.alert('Upload aborted');\n uploader.abort();\n });\n const uploader = philip(entries, (type, name, data, i, n, callback) => {\n const {\n prefixURL\n } = CloudCmd;\n const full = prefixURL + FS + path + name;\n let upload;\n switch (type) {\n case 'file':\n upload = uploadFile(full, data);\n break;\n case 'directory':\n upload = uploadDir(full);\n break;\n }\n upload.on('end', callback);\n upload.on('progress', count => {\n const current = percent(i, n);\n const next = percent(i + 1, n);\n const max = next - current;\n const value = current + percent(count, 100, max);\n progress.setProgress(value);\n });\n });\n uploader.on('error', error => {\n Dialog.alert(error);\n uploader.abort();\n });\n uploader.on('end', CloudCmd.refresh);\n};\nfunction percent(i, n, per = 100) {\n return Math.round(i * per / n);\n}\nfunction uploadFile(url, data) {\n return DOM.load.put(url, data);\n}\nfunction uploadDir(url) {\n return DOM.load.put(`${url}?dir`);\n}\n\n//# sourceURL=file://cloudcmd/client/dom/directory.js");
48
48
 
49
49
  /***/ }),
50
50
 
@@ -818,26 +818,15 @@ eval("if (typeof Object.create === 'function') {\n // implementation from stand
818
818
 
819
819
  /***/ }),
820
820
 
821
- /***/ "./node_modules/itchy/legacy/index.js":
822
- /*!********************************************!*\
823
- !*** ./node_modules/itchy/legacy/index.js ***!
824
- \********************************************/
825
- /*! no static exports found */
826
- /***/ (function(module, exports, __webpack_require__) {
827
-
828
- eval("module.exports = __webpack_require__(/*! ./lib/itchy */ \"./node_modules/itchy/legacy/lib/itchy.js\");\n\n\n//# sourceURL=file://cloudcmd/node_modules/itchy/legacy/index.js");
829
-
830
- /***/ }),
831
-
832
- /***/ "./node_modules/itchy/legacy/lib/itchy.js":
833
- /*!************************************************!*\
834
- !*** ./node_modules/itchy/legacy/lib/itchy.js ***!
835
- \************************************************/
821
+ /***/ "./node_modules/itchy/lib/itchy.js":
822
+ /*!*****************************************!*\
823
+ !*** ./node_modules/itchy/lib/itchy.js ***!
824
+ \*****************************************/
836
825
  /*! no static exports found */
837
826
  /***/ (function(module, exports, __webpack_require__) {
838
827
 
839
828
  "use strict";
840
- eval("\n\nmodule.exports = function (array, iterator, done) {\n check(array, iterator, done);\n \n var i = -1;\n var n = array.length;\n \n var loop = function (e) {\n ++i;\n \n if (e || i === n)\n { return done(e); }\n \n iterator(array[i], loop);\n };\n \n loop();\n}\n\nfunction check(array, iterator, done) {\n if (!Array.isArray(array))\n { throw Error('array should be an array!'); }\n \n if (typeof iterator !== 'function')\n { throw Error('iterator should be a function!'); }\n \n if (typeof done !== 'function')\n { throw Error('done should be a function!'); }\n}\n\n\n\n//# sourceURL=file://cloudcmd/node_modules/itchy/legacy/lib/itchy.js");
829
+ eval("\n\nconst isFn = (a) => typeof a === 'function';\n\nmodule.exports = (array, iterator, done) => {\n check(array, iterator, done);\n \n let i = -1;\n const n = array.length;\n \n const loop = (e) => {\n ++i;\n \n if (e || i === n)\n return done(e);\n \n iterator(array[i], loop);\n };\n \n loop();\n};\n\nfunction check(array, iterator, done) {\n if (!Array.isArray(array))\n throw Error('array should be an array!');\n \n if (!isFn(iterator))\n throw Error('iterator should be a function!');\n \n if (!isFn(done))\n throw Error('done should be a function!');\n}\n\n\n//# sourceURL=file://cloudcmd/node_modules/itchy/lib/itchy.js");
841
830
 
842
831
  /***/ }),
843
832
 
@@ -992,38 +981,15 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and
992
981
 
993
982
  /***/ }),
994
983
 
995
- /***/ "./node_modules/philip/legacy/philip.js":
996
- /*!**********************************************!*\
997
- !*** ./node_modules/philip/legacy/philip.js ***!
998
- \**********************************************/
999
- /*! no static exports found */
1000
- /***/ (function(module, exports, __webpack_require__) {
1001
-
1002
- "use strict";
1003
- eval("\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar findit = __webpack_require__(/*! domfs-findit */ \"./node_modules/domfs-findit/legacy/findit.js\");\nvar Emitify = __webpack_require__(/*! emitify/legacy */ \"./node_modules/philip/node_modules/emitify/legacy/index.js\");\nvar itchy = __webpack_require__(/*! itchy/legacy */ \"./node_modules/itchy/legacy/index.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nmodule.exports = Philip;\n\ninherits(Philip, Emitify);\n\nfunction Philip(entries, processingFn) {\n var _this = this;\n\n if (!(this instanceof Philip)) return new Philip(entries, processingFn);\n\n if (typeof processingFn !== 'function') throw Error('processingFn should be function!');\n\n Emitify.call(this);\n\n var array = Array.isArray(entries) ? entries : [entries];\n\n this._i = 0;\n this._n = 0;\n this._processingFn = processingFn;\n this._pause = false;\n this._prev = 0;\n\n this._find(array, function (files, dirs) {\n _this._files = files;\n _this._dirs = dirs;\n _this._n = files.length + dirs.length;\n _this._data = {};\n\n _this._getFiles(files, _this._data, function () {\n _this._process();\n });\n });\n}\n\nPhilip.prototype._process = function () {\n var _this2 = this;\n\n var argsLength = this._processingFn.length;\n var fn = function fn(error) {\n ++_this2._i;\n\n if (error) {\n _this2.emit('error', error);\n _this2.pause();\n }\n\n _this2._process();\n _this2._progress();\n };\n\n var data = void 0;\n var name = this._dirs.shift();\n var type = 'directory';\n\n if (!name) {\n type = 'file';\n var el = this._files.shift();\n\n if (el) {\n name = el.fullPath;\n data = this._data[name];\n }\n }\n\n if (!name) return this.emit('end');\n\n var args = void 0;\n if (!this._pause) {\n switch (argsLength) {\n default:\n args = [type, name, data];\n break;\n\n case 6:\n args = [type, name, data, this._i, this._n];\n break;\n }\n\n args.push(fn);\n\n this._processingFn.apply(this, _toConsumableArray(args));\n }\n};\n\nPhilip.prototype.pause = function () {\n this._pause = true;\n};\n\nPhilip.prototype.continue = function () {\n if (this._pause) {\n this._pause = false;\n this._process();\n }\n};\n\nPhilip.prototype.abort = function () {\n this._files = [];\n this._dirs = [];\n\n this._process();\n};\n\nPhilip.prototype._progress = function () {\n var value = Math.round(this._i * 100 / this._n);\n\n if (value !== this._prev) {\n this._prev = value;\n this.emit('progress', value);\n }\n};\n\nPhilip.prototype._getFiles = function (files, obj, callback) {\n var _this3 = this;\n\n var filesList = files.slice();\n var current = filesList.shift();\n\n if (!current) return callback(null, obj);\n\n current.file(function (file) {\n var name = current.fullPath;\n\n obj[name] = file;\n\n _this3._getFiles(filesList, obj, callback);\n });\n};\n\nPhilip.prototype._find = function (entries, fn) {\n var files = [];\n var dirs = [];\n\n itchy(entries, function (entry, callback) {\n var finder = findit(entry);\n\n finder.on('directory', function (name) {\n dirs.push(name);\n });\n\n finder.on('file', function (name, current) {\n files.push(current);\n });\n\n finder.on('end', function () {\n callback();\n });\n }, function () {\n fn(files, dirs);\n });\n};\n\n//# sourceURL=file://cloudcmd/node_modules/philip/legacy/philip.js");
1004
-
1005
- /***/ }),
1006
-
1007
- /***/ "./node_modules/philip/node_modules/emitify/legacy/index.js":
1008
- /*!******************************************************************!*\
1009
- !*** ./node_modules/philip/node_modules/emitify/legacy/index.js ***!
1010
- \******************************************************************/
1011
- /*! no static exports found */
1012
- /***/ (function(module, exports, __webpack_require__) {
1013
-
1014
- eval("module.exports = __webpack_require__(/*! ./lib/emitify */ \"./node_modules/philip/node_modules/emitify/legacy/lib/emitify.js\");\n\n\n//# sourceURL=file://cloudcmd/node_modules/philip/node_modules/emitify/legacy/index.js");
1015
-
1016
- /***/ }),
1017
-
1018
- /***/ "./node_modules/philip/node_modules/emitify/legacy/lib/emitify.js":
1019
- /*!************************************************************************!*\
1020
- !*** ./node_modules/philip/node_modules/emitify/legacy/lib/emitify.js ***!
1021
- \************************************************************************/
984
+ /***/ "./node_modules/philip/lib/philip.js":
985
+ /*!*******************************************!*\
986
+ !*** ./node_modules/philip/lib/philip.js ***!
987
+ \*******************************************/
1022
988
  /*! no static exports found */
1023
989
  /***/ (function(module, exports, __webpack_require__) {
1024
990
 
1025
991
  "use strict";
1026
- eval("\n\nmodule.exports = Emitify;\n\nfunction Emitify() {\n if (!(this instanceof Emitify)) return new Emitify();\n\n this._all = {};\n}\n\nEmitify.prototype.on = function (event, callback) {\n var funcs = this._all[event];\n\n check(event, callback);\n\n if (funcs) funcs.push(callback);else this._all[event] = [callback];\n\n return this;\n};\n\nEmitify.prototype.addListener = Emitify.prototype.on;\n\nEmitify.prototype.once = function (event, callback) {\n var self = this;\n\n check(event, callback);\n\n self.on(event, function fn() {\n callback.apply(null, arguments);\n self.off(event, fn);\n });\n\n return this;\n};\n\nEmitify.prototype.off = function (event, callback) {\n var events = this._all[event] || [];\n var index = events.indexOf(callback);\n\n check(event, callback);\n\n while (~index) {\n events.splice(index, 1);\n index = events.indexOf(callback);\n }\n\n return this;\n};\n\nEmitify.prototype.removeListener = Emitify.prototype.off;\n\nEmitify.prototype.emit = function (event) {\n var args = [].slice.call(arguments, 1);\n var funcs = this._all[event];\n\n checkEvent(event);\n\n if (!funcs && event === 'error') throw args[0];\n\n if (!funcs) return this;\n\n funcs.forEach(function (fn) {\n fn.apply(null, args);\n });\n\n return this;\n};\n\nEmitify.prototype.removeAllListeners = function (event) {\n checkEvent(event);\n\n this._all[event] = [];\n\n return this;\n};\n\nfunction checkEvent(event) {\n if (typeof event !== 'string') throw Error('event should be string!');\n}\n\nfunction checkFn(callback) {\n if (typeof callback !== 'function') throw Error('callback should be function!');\n}\n\nfunction check(event, callback) {\n checkEvent(event);\n checkFn(callback);\n}\n\n//# sourceURL=file://cloudcmd/node_modules/philip/node_modules/emitify/legacy/lib/emitify.js");
992
+ eval("\n\nconst findit = __webpack_require__(/*! domfs-findit */ \"./node_modules/domfs-findit/legacy/findit.js\");\nconst Emitify = __webpack_require__(/*! emitify */ \"./node_modules/emitify/lib/emitify.js\");\nconst itchy = __webpack_require__(/*! itchy */ \"./node_modules/itchy/lib/itchy.js\");\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nconst {isArray} = Array;\nconst maybeArray = (a) => isArray(a) ? a : [a];\nconst isFn = (a) => typeof a === 'function';\n\nmodule.exports = Philip;\n\ninherits(Philip, Emitify);\n\nfunction Philip(entries, processingFn) {\n if (!(this instanceof Philip))\n return new Philip(entries, processingFn);\n \n if (!isFn(processingFn))\n throw Error('processingFn should be function!');\n \n Emitify.call(this);\n \n const array = maybeArray(entries);\n \n this._i = 0;\n this._n = 0;\n this._processingFn = processingFn;\n this._pause = false;\n this._prev = 0;\n \n this._find(array, (files, dirs) => {\n this._files = files;\n this._dirs = dirs;\n this._n = files.length + dirs.length;\n this._data = {};\n \n this._getFiles(files, this._data, () => {\n this._process();\n });\n });\n}\n\nPhilip.prototype._process = function() {\n const argsLength = this._processingFn.length;\n const fn = (error) => {\n ++this._i;\n \n if (error) {\n this.emit('error', error);\n this.pause();\n }\n \n this._process();\n this._progress();\n };\n \n let data;\n let name = this._dirs.shift();\n let type = 'directory';\n \n if (!name) {\n type = 'file';\n const el = this._files.shift();\n \n if (el) {\n name = el.fullPath;\n data = this._data[name];\n }\n }\n \n if (!name)\n return this.emit('end');\n \n let args;\n \n if (!this._pause) {\n switch(argsLength) {\n default:\n args = [\n type,\n name,\n data,\n ];\n break;\n \n case 6:\n args = [\n type,\n name,\n data,\n this._i,\n this._n,\n ];\n break;\n }\n \n args.push(fn);\n \n this._processingFn(...args);\n }\n};\n\nPhilip.prototype.pause = function() {\n this._pause = true;\n};\n\nPhilip.prototype.continue = function() {\n if (this._pause) {\n this._pause = false;\n this._process();\n }\n};\n\nPhilip.prototype.abort = function() {\n this._files = [];\n this._dirs = [];\n \n this._process();\n};\n\nPhilip.prototype._progress = function() {\n const value = Math.round(this._i * 100 / this._n);\n \n if (value !== this._prev) {\n this._prev = value;\n this.emit('progress', value);\n }\n};\n\nPhilip.prototype._getFiles = function(files, obj, callback) {\n const filesList = files.slice();\n const current = filesList.shift();\n \n if (!current)\n return callback(null, obj);\n \n current.file((file) => {\n const name = current.fullPath;\n \n obj[name] = file;\n \n this._getFiles(filesList, obj, callback);\n });\n};\n\nPhilip.prototype._find = function(entries, fn) {\n const files = [];\n const dirs = [];\n \n itchy(entries, (entry, callback) => {\n const finder = findit(entry);\n \n finder.on('directory', (name) => {\n dirs.push(name);\n });\n \n finder.on('file', (name, current) => {\n files.push(current);\n });\n \n finder.on('end', () => {\n callback();\n });\n }, () => {\n fn(files, dirs);\n });\n};\n\n\n//# sourceURL=file://cloudcmd/node_modules/philip/lib/philip.js");
1027
993
 
1028
994
  /***/ }),
1029
995
 
@@ -247,7 +247,19 @@ eval("\n\nconst fullstore = __webpack_require__(/*! fullstore */ \"./node_module
247
247
  /***/ (function(module, exports, __webpack_require__) {
248
248
 
249
249
  "use strict";
250
- eval("\n\n/* global CloudCmd */\n/* global DOM */\nconst vim = __webpack_require__(/*! ./vim */ \"./client/key/vim/vim.js\");\nconst finder = __webpack_require__(/*! ./find */ \"./client/key/vim/find.js\");\nconst {\n Dialog\n} = DOM;\nconst DEPS = {\n ...DOM,\n ...CloudCmd\n};\nmodule.exports = async (key, event, deps = DEPS) => {\n const operations = getOperations(event, deps);\n await vim(key, operations);\n};\nconst getOperations = (event, deps) => {\n const {\n Info = DOM.CurrentInfo,\n Operation,\n unselectFiles,\n setCurrentFile,\n setCurrentByName,\n getCurrentName,\n toggleSelectedFile,\n Buffer = {}\n } = deps;\n return {\n escape: unselectFiles,\n remove: () => {\n Operation.show('delete');\n },\n makeDirectory: () => {\n event.stopImmediatePropagation();\n event.preventDefault();\n DOM.promptNewDir();\n },\n makeFile: () => {\n event.stopImmediatePropagation();\n event.preventDefault();\n DOM.promptNewFile();\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 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 setCurrent('previous', {\n count,\n isVisual,\n isDelete\n }, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n });\n },\n find: async () => {\n event.preventDefault();\n const [, value] = await Dialog.prompt('Find', '');\n if (!value) return;\n const names = Info.files.map(getCurrentName);\n const [result] = finder.find(value, names);\n setCurrentByName(result);\n },\n findNext: () => {\n const name = finder.findNext();\n setCurrentByName(name);\n },\n findPrevious: () => {\n const name = finder.findPrevious();\n setCurrentByName(name);\n }\n };\n};\nmodule.exports.selectFile = selectFileNotParent;\nfunction selectFileNotParent(current, {\n getCurrentName,\n selectFile\n} = DOM) {\n const name = getCurrentName(current);\n if (name === '..') return;\n selectFile(current);\n}\nfunction setCurrent(sibling, {\n count,\n isVisual,\n isDelete\n}, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n}) {\n let current = Info.element;\n const select = isVisual ? selectFileNotParent : unselectFiles;\n select(current);\n const position = `${sibling}Sibling`;\n for (let i = 0; i < count; i++) {\n const next = current[position];\n if (!next) break;\n current = next;\n select(current);\n }\n setCurrentFile(current);\n if (isDelete) Operation.show('delete');\n}\n\n//# sourceURL=file://cloudcmd/client/key/vim/index.js");
250
+ eval("\n\n/* global CloudCmd */\n/* global DOM */\nconst vim = __webpack_require__(/*! ./vim */ \"./client/key/vim/vim.js\");\nconst finder = __webpack_require__(/*! ./find */ \"./client/key/vim/find.js\");\nconst {\n setCurrent,\n selectFileNotParent\n} = __webpack_require__(/*! ./set-current */ \"./client/key/vim/set-current.js\");\nconst {\n Dialog\n} = DOM;\nconst DEPS = {\n ...DOM,\n ...CloudCmd\n};\nmodule.exports = async (key, event, deps = DEPS) => {\n const operations = getOperations(event, deps);\n await vim(key, operations);\n};\nconst getOperations = (event, deps) => {\n const {\n Info = DOM.CurrentInfo,\n Operation,\n unselectFiles,\n setCurrentFile,\n setCurrentByName,\n getCurrentName,\n toggleSelectedFile,\n Buffer = {}\n } = deps;\n return {\n escape: unselectFiles,\n remove: () => {\n Operation.show('delete');\n },\n makeDirectory: () => {\n event.stopImmediatePropagation();\n event.preventDefault();\n DOM.promptNewDir();\n },\n makeFile: () => {\n event.stopImmediatePropagation();\n event.preventDefault();\n DOM.promptNewFile();\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 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 setCurrent('previous', {\n count,\n isVisual,\n isDelete\n }, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n });\n },\n find: async () => {\n event.preventDefault();\n const [, value] = await Dialog.prompt('Find', '');\n if (!value) return;\n const names = Info.files.map(getCurrentName);\n const [result] = finder.find(value, names);\n setCurrentByName(result);\n },\n findNext: () => {\n const name = finder.findNext();\n setCurrentByName(name);\n },\n findPrevious: () => {\n const name = finder.findPrevious();\n setCurrentByName(name);\n }\n };\n};\nmodule.exports.selectFile = selectFileNotParent;\n\n//# sourceURL=file://cloudcmd/client/key/vim/index.js");
251
+
252
+ /***/ }),
253
+
254
+ /***/ "./client/key/vim/set-current.js":
255
+ /*!***************************************!*\
256
+ !*** ./client/key/vim/set-current.js ***!
257
+ \***************************************/
258
+ /*! no static exports found */
259
+ /***/ (function(module, exports, __webpack_require__) {
260
+
261
+ "use strict";
262
+ eval("\n\n/* global DOM */\nmodule.exports.selectFileNotParent = selectFileNotParent;\nfunction selectFileNotParent(current, {\n getCurrentName,\n selectFile\n} = DOM) {\n const name = getCurrentName(current);\n if (name === '..') return;\n selectFile(current);\n}\nmodule.exports.setCurrent = (sibling, {\n count,\n isVisual,\n isDelete\n}, {\n Info,\n setCurrentFile,\n unselectFiles,\n Operation\n}) => {\n let current = Info.element;\n const select = isVisual ? selectFileNotParent : unselectFiles;\n select(current);\n const position = `${sibling}Sibling`;\n for (let i = 0; i < count; i++) {\n const next = current[position];\n if (!next) break;\n current = next;\n select(current);\n }\n setCurrentFile(current);\n if (isDelete) Operation.show('delete');\n};\n\n//# sourceURL=file://cloudcmd/client/key/vim/set-current.js");
251
263
 
252
264
  /***/ }),
253
265
 
package/dist-dev/sw.js CHANGED
@@ -101,7 +101,7 @@ var serviceWorkerOption = {
101
101
  /***/ (function(module, exports, __webpack_require__) {
102
102
 
103
103
  "use strict";
104
- eval("\n\nconst process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\nconst tryToCatch = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\nconst currify = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\nconst isDev = process.env.NODE_ENV === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify((f, e) => e.waitUntil(f()));\nconst respondWith = currify((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 = \"Mon Dec 04 2023 20:18:30 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};\nself.addEventListener('install', wait(onInstall));\nself.addEventListener('fetch', respondWith(onFetch));\nself.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await self.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 self.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 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/client/sw/sw.js");
104
+ eval("\n\nconst process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\nconst tryToCatch = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\nconst currify = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\nconst isDev = process.env.NODE_ENV === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify((f, e) => e.waitUntil(f()));\nconst respondWith = currify((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 Dec 08 2023 13:20:31 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};\nself.addEventListener('install', wait(onInstall));\nself.addEventListener('fetch', respondWith(onFetch));\nself.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await self.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 self.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 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/client/sw/sw.js");
105
105
 
106
106
  /***/ }),
107
107
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "16.17.8",
3
+ "version": "16.18.0",
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",
@@ -118,7 +118,7 @@
118
118
  "jju": "^1.3.0",
119
119
  "jonny": "^3.0.0",
120
120
  "just-snake-case": "^1.1.0",
121
- "markdown-it": "^13.0.1",
121
+ "markdown-it": "^14.0.0",
122
122
  "mellow": "^3.0.0",
123
123
  "nomine": "^4.0.0",
124
124
  "object.omit": "^3.0.0",
@@ -189,7 +189,7 @@
189
189
  "multi-rename": "^2.0.0",
190
190
  "nodemon": "^3.0.1",
191
191
  "optimize-css-assets-webpack-plugin": "^5.0.0",
192
- "philip": "^2.0.0",
192
+ "philip": "^3.0.0",
193
193
  "place": "^1.1.4",
194
194
  "readjson": "^2.0.1",
195
195
  "request": "^2.76.0",