cloudcmd 19.20.4 → 19.20.5

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.
@@ -32,7 +32,7 @@ eval("{\n\nconst identityLoginURL = 'static.olark.com/jsclient/loader.js';\n\nif
32
32
  \************************/
33
33
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
34
34
  "use strict";
35
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
35
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
36
36
 
37
37
  },
38
38
  "./css/main.css"
@@ -41,7 +41,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
41
41
  \**********************/
42
42
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
43
43
  "use strict";
44
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
44
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
45
45
 
46
46
  },
47
47
  "./css/terminal.css"
@@ -50,7 +50,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
50
50
  \**************************/
51
51
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
52
52
  "use strict";
53
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
53
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
54
54
 
55
55
  },
56
56
  "./css/user-menu.css"
@@ -59,7 +59,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
59
59
  \***************************/
60
60
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
61
61
  "use strict";
62
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
62
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
63
63
 
64
64
  },
65
65
  "./css/view.css"
@@ -68,7 +68,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
68
68
  \**********************/
69
69
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
70
70
  "use strict";
71
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
71
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
72
72
 
73
73
  },
74
74
  "./node_modules/@cloudcmd/modal/css/modal.css"
@@ -77,7 +77,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
77
77
  \****************************************************/
78
78
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
79
79
  "use strict";
80
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
80
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
81
81
 
82
82
  },
83
83
  "./node_modules/smalltalk/css/smalltalk.css"
@@ -86,7 +86,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
86
86
  \**************************************************/
87
87
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
88
88
  "use strict";
89
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
89
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
90
90
 
91
91
  },
92
92
  "./node_modules/supermenu/css/supermenu.css"
@@ -95,7 +95,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-
95
95
  \**************************************************/
96
96
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
97
97
  "use strict";
98
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/light.css\n}");
98
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
99
99
 
100
100
  },
101
101
  "./node_modules/apart/lib/apart.js"
@@ -670,15 +670,6 @@ eval("{\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n\n\n/
670
670
  "use strict";
671
671
  eval("{\n\nvar $isNaN = __webpack_require__(/*! ./isNaN */ \"./node_modules/math-intrinsics/isNaN.js\");\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/math-intrinsics/sign.js\n}");
672
672
 
673
- },
674
- "./node_modules/path-browserify/index.js"
675
- /*!***********************************************!*\
676
- !*** ./node_modules/path-browserify/index.js ***!
677
- \***********************************************/
678
- (module, __unused_rspack_exports, __webpack_require__) {
679
- "use strict";
680
- eval("{/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\n// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/path-browserify/index.js\n}");
681
-
682
673
  },
683
674
  "./node_modules/possible-typed-array-names/index.js"
684
675
  /*!**********************************************************!*\
@@ -1385,7 +1376,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1385
1376
  \****************************************/
1386
1377
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1387
1378
  "use strict";
1388
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n convert: () => (convert),\n getElementByName: () => (getElementByName),\n getName: () => (getName),\n getValue: () => (getValue),\n setValue: () => (setValue)\n});\n/* import */ var _common_entity__rspack_import_0 = __webpack_require__(/*! #common/entity */ \"./common/entity.js\");\n\nconst isBool = (a)=>typeof a === 'boolean';\nconst isString = (a)=>typeof a === 'string';\nconst { keys } = Object;\nfunction getElementByName(selector, element) {\n const str = `[data-name=\"js-${selector}\"]`;\n return element.querySelector(str);\n}\nconst getName = (element)=>{\n const name = element.getAttribute('data-name').replace(/^js-/, '');\n return name;\n};\nconst convert = (config)=>{\n const result = config;\n for (const name of keys(config)){\n const item = config[name];\n if (isBool(item)) {\n result[name] = setState(item);\n continue;\n }\n if (isString(item)) {\n result[name] = (0,_common_entity__rspack_import_0.encode)(item);\n continue;\n }\n }\n return result;\n};\nfunction setState(state) {\n if (state) return ' checked';\n return '';\n}\nconst getValue = (name, element)=>{\n const el = getElementByName(name, element);\n const { type } = el;\n switch(type){\n case 'checkbox':\n return el.checked;\n case 'number':\n return Number(el.value);\n default:\n return el.value;\n }\n};\nconst setValue = (name, value, element)=>{\n const el = getElementByName(name, element);\n const { type } = el;\n switch(type){\n case 'checkbox':\n el.checked = value;\n break;\n default:\n el.value = value;\n break;\n }\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/input.js\n}");
1379
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n convert: () => (convert),\n getElementByName: () => (getElementByName),\n getName: () => (getName),\n getValue: () => (getValue),\n setValue: () => (setValue)\n});\n/* import */ var _common_entity__rspack_import_0 = __webpack_require__(/*! #common/entity */ \"./common/entity.js\");\n\nconst isBool = (a)=>typeof a === 'boolean';\nconst isString = (a)=>typeof a === 'string';\nconst { keys } = Object;\nfunction getElementByName(selector, element) {\n const str = `[data-name=\"js-${selector}\"]`;\n return element.querySelector(str);\n}\nconst getName = (element)=>{\n const name = element.getAttribute('data-name').replace(/^js-/, '');\n return name;\n};\nconst convert = (config)=>{\n const result = config;\n for (const name of keys(config)){\n const item = config[name];\n if (isBool(item)) {\n result[name] = setState(item);\n continue;\n }\n if (isString(item)) {\n result[name] = (0,_common_entity__rspack_import_0.encode)(item);\n continue;\n }\n }\n return result;\n};\nfunction setState(state) {\n if (state) return ' checked';\n return '';\n}\nconst getValue = (name, element)=>{\n const el = getElementByName(name, element);\n const { type } = el;\n if (type === 'checkbox') return el.checked;\n if (type === 'number') return Number(el.value);\n return el.value;\n};\nconst setValue = (name, value, element)=>{\n const el = getElementByName(name, element);\n const { type } = el;\n switch(type){\n case 'checkbox':\n el.checked = value;\n break;\n default:\n el.value = value;\n break;\n }\n};\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/config/input.js\n}");
1389
1380
 
1390
1381
  },
1391
1382
  "./client/modules/contact.js"
@@ -1628,16 +1619,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
1628
1619
  \**************************************/
1629
1620
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1630
1621
  "use strict";
1631
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n _Config: () => (_Config),\n _createIframe: () => (_createIframe),\n _initConfig: () => (_initConfig),\n _viewHtml: () => (_viewHtml),\n hide: () => (hide),\n init: () => (init),\n show: () => (show)\n});\n/* import */ var _css_view_css__rspack_import_0 = __webpack_require__(/*! #css/view.css */ \"./css/view.css\");\n/* import */ var rendy__rspack_import_1 = __webpack_require__(/*! rendy */ \"./node_modules/rendy/lib/rendy.js\");\n/* import */ var currify__rspack_import_2 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* import */ var wraptile__rspack_import_3 = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* import */ var try_to_catch__rspack_import_4 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var load_js__rspack_import_5 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var _cloudcmd_modal__rspack_import_6 = __webpack_require__(/*! @cloudcmd/modal */ \"./node_modules/@cloudcmd/modal/lib/modal.js\");\n/* import */ var _cloudcmd_create_element__rspack_import_7 = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* import */ var _common_util__rspack_import_8 = __webpack_require__(/*! #common/util */ \"./common/util.js\");\n/* import */ var _dom_files__rspack_import_9 = __webpack_require__(/*! #dom/files */ \"./client/dom/files.js\");\n/* import */ var _dom_events__rspack_import_10 = __webpack_require__(/*! #dom/events */ \"./client/dom/events/index.js\");\n/* import */ var _common_cloudfunc__rspack_import_11 = __webpack_require__(/*! #common/cloudfunc */ \"./common/cloudfunc.js\");\n/* import */ var _dom_images__rspack_import_12 = __webpack_require__(/*! #dom/images */ \"./client/dom/images.js\");\n/* import */ var _common_entity__rspack_import_13 = __webpack_require__(/*! #common/entity */ \"./common/entity.js\");\n/* import */ var _types_js__rspack_import_14 = __webpack_require__(/*! ./types.js */ \"./client/modules/view/types.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst CloudCmd = globalThis.CloudCmd || {};\nconst DOM = globalThis.DOM || {};\nconst isString = (a)=>typeof a === 'string';\nconst { assign } = Object;\nconst { isArray } = Array;\nconst lifo = currify__rspack_import_2((fn, el, cb, name)=>fn(name, el, cb));\nconst series = wraptile__rspack_import_3((...a)=>{\n for (const f of a)f();\n});\nconst isFn = (a)=>typeof a === 'function';\nconst noop = ()=>{};\nconst addEvent = lifo(_dom_events__rspack_import_10.add);\nconst loadCSS = load_js__rspack_import_5.css;\nlet Loading = false;\nconst Name = 'View';\nCloudCmd[Name] = {\n init,\n show,\n hide\n};\nconst Info = DOM.CurrentInfo;\nconst { Key } = CloudCmd;\nconst basename = (a)=>a.split('/').pop();\nlet El;\nlet TemplateAudio;\nlet Overlay;\nconst Config = {\n beforeShow: ()=>{\n _dom_images__rspack_import_12.hide();\n Key.unsetBind();\n },\n beforeClose: ()=>{\n _dom_events__rspack_import_10.rmKey(listener);\n Key.setBind();\n },\n afterShow: ()=>{\n El.focus();\n },\n onOverlayClick,\n afterClose: noop,\n autoSize: false,\n helpers: {\n title: {}\n }\n};\nconst _Config = Config;\nasync function init() {\n await loadAll();\n const events = [\n 'click',\n 'contextmenu'\n ];\n events.forEach(addEvent(Overlay, onOverlayClick));\n}\nasync function show(data, options = {}) {\n const prefixURL = CloudCmd.prefixURL + _common_cloudfunc__rspack_import_11.FS;\n if (Loading) return;\n if (!options || options.bindKeys !== false) _dom_events__rspack_import_10.addKey(listener);\n El = _cloudcmd_create_element__rspack_import_7('div', {\n className: 'view',\n notAppend: true\n });\n El.tabIndex = 0;\n if (data) {\n if (isArray(data)) El.append(...data);\n else El.append(data);\n _cloudcmd_modal__rspack_import_6.open(El, initConfig(options));\n return;\n }\n _dom_images__rspack_import_12.show.load();\n const path = prefixURL + Info.path;\n const type = options.raw ? '' : await (0,_types_js__rspack_import_14.getType)(path);\n switch(type){\n default:\n return await viewFile();\n case 'markdown':\n return await CloudCmd.Markdown.show(Info.path);\n case 'html':\n return viewHtml(path);\n case 'image':\n return viewImage(Info.path, prefixURL);\n case 'media':\n return await viewMedia(path);\n case 'pdf':\n return viewPDF(path);\n }\n}\nconst _createIframe = createIframe;\nfunction createIframe(src, overrides = {}) {\n const { createElement = _cloudcmd_create_element__rspack_import_7 } = overrides;\n const element = createElement('iframe', {\n src,\n width: '100%',\n height: '100%'\n });\n element.addEventListener('load', ()=>{\n element.contentWindow.addEventListener('keydown', listener);\n });\n return element;\n}\nconst _viewHtml = viewHtml;\nfunction viewHtml(src, overrides = {}) {\n const { modal = _cloudcmd_modal__rspack_import_6 } = overrides;\n modal.open(createIframe(src), Config);\n}\nfunction viewPDF(src) {\n const element = createIframe(src);\n const options = assign({}, Config);\n if (CloudCmd.config('showFileName')) options.title = Info.name;\n _cloudcmd_modal__rspack_import_6.open(element, options);\n}\nasync function viewMedia(path) {\n const [e, element] = await getMediaElement(path);\n if (e) return alert(e);\n const allConfig = {\n ...Config,\n ...{\n autoSize: true,\n afterShow: ()=>{\n element.querySelector('audio, video').focus();\n }\n }\n };\n _cloudcmd_modal__rspack_import_6.open(element, allConfig);\n}\nasync function viewFile() {\n const [error, data] = await Info.getData();\n if (error) return _dom_images__rspack_import_12.hide();\n const element = document.createTextNode(data);\n const options = Config;\n if (CloudCmd.config('showFileName')) options.title = Info.name;\n El.append(element);\n _cloudcmd_modal__rspack_import_6.open(El, options);\n}\nconst copy = (a)=>assign({}, a);\nconst _initConfig = initConfig;\nfunction initConfig(options) {\n const config = copy(Config);\n if (!options) return config;\n const names = Object.keys(options);\n for (const name of names){\n const isConfig = Boolean(config[name]);\n const item = options[name];\n if (!isFn(item) || !isConfig) {\n config[name] = options[name];\n continue;\n }\n const fn = config[name];\n config[name] = series(fn, item);\n }\n return config;\n}\nfunction hide() {\n _cloudcmd_modal__rspack_import_6.close();\n}\nfunction viewImage(path, prefixURL) {\n const isSupportedImage = (a)=>(0,_types_js__rspack_import_14.isImage)(a) || a === path;\n const makeTitle = (path)=>({\n href: `${prefixURL}${path}`,\n title: (0,_common_entity__rspack_import_13.encode)(basename(path))\n });\n const names = Info.files.map(DOM.getCurrentPath).filter(isSupportedImage);\n const titles = names.map(makeTitle);\n const index = names.indexOf(Info.path);\n const imageConfig = {\n index,\n autoSize: true,\n arrows: true,\n keys: true,\n helpers: {\n title: {}\n }\n };\n const config = {\n ...Config,\n ...imageConfig\n };\n _cloudcmd_modal__rspack_import_6.open(titles, config);\n}\nasync function getMediaElement(src) {\n check(src);\n const [error, template] = await (0,try_to_catch__rspack_import_4.tryToCatch)(_dom_files__rspack_import_9.get, 'view/media-tmpl');\n if (error) return [\n error\n ];\n const { name } = Info;\n if (!TemplateAudio) TemplateAudio = template;\n const is = (0,_types_js__rspack_import_14.isAudio)(name);\n const type = is ? 'audio' : 'video';\n const innerHTML = (0,rendy__rspack_import_1.rendy)(TemplateAudio, {\n src,\n type,\n name\n });\n const element = _cloudcmd_create_element__rspack_import_7('div', {\n innerHTML\n });\n return [\n null,\n element\n ];\n}\nfunction check(src) {\n if (!isString(src)) throw Error('src should be a string!');\n}\nasync function loadAll() {\n const { DIR_DIST } = CloudCmd;\n (0,_common_util__rspack_import_8.time)(`${Name} load`);\n Loading = true;\n await loadCSS(`${DIR_DIST}/view.css`);\n Loading = false;\n}\nfunction onOverlayClick(event) {\n const position = {\n x: event.clientX,\n y: event.clientY\n };\n setCurrentByPosition(position);\n}\nfunction setCurrentByPosition(position) {\n const element = DOM.getCurrentByPosition(position);\n if (!element) return;\n const { files, filesPassive } = Info;\n const isFiles = files.includes(element);\n const isFilesPassive = filesPassive.includes(element);\n if (!isFiles && !isFilesPassive) return;\n const isCurrent = DOM.isCurrentFile(element);\n if (isCurrent) return;\n DOM.setCurrentFile(element);\n}\nfunction listener({ keyCode }) {\n if (keyCode === Key.ESC) hide();\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/view/index.js\n}");
1632
-
1633
- },
1634
- "./client/modules/view/types.js"
1635
- /*!**************************************!*\
1636
- !*** ./client/modules/view/types.js ***!
1637
- \**************************************/
1638
- (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
1639
- "use strict";
1640
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n _detectType: () => (_detectType),\n getType: () => (getType),\n isAudio: () => (isAudio),\n isImage: () => (isImage)\n});\n/* import */ var node_path__rspack_import_0 = __webpack_require__(/*! node:path */ \"./node_modules/path-browserify/index.js\");\n/* import */ var currify__rspack_import_1 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\nconst isAudio = (name)=>/\\.(mp3|ogg|m4a|flac)$/i.test(name);\nconst testRegExp = currify__rspack_import_1((name, reg)=>reg.test(name));\nconst getRegExp = (ext)=>RegExp(`\\\\.${ext}$`, 'i');\nconst isPDF = (a)=>/\\.pdf$/i.test(a);\nconst isHTML = (a)=>a.endsWith('.html');\nconst isMarkdown = (a)=>/.\\.md$/.test(a);\nconst getType = async (path)=>{\n const ext = (0,node_path__rspack_import_0.extname)(path);\n if (!ext) path = await detectType(path);\n if (isPDF(path)) return 'pdf';\n if (isImage(path)) return 'image';\n if (isMedia(path)) return 'media';\n if (isHTML(path)) return 'html';\n if (isMarkdown(path)) return 'markdown';\n};\nfunction isImage(name) {\n const images = [\n 'jp(e|g|eg)',\n 'gif',\n 'png',\n 'bmp',\n 'webp',\n 'svg',\n 'ico'\n ];\n return images.map(getRegExp).some(testRegExp(name));\n}\nfunction isMedia(name) {\n return isAudio(name) || isVideo(name);\n}\nfunction isVideo(name) {\n return /\\.(mp4|avi|webm)$/i.test(name);\n}\nconst _detectType = detectType;\nasync function detectType(path) {\n const { headers } = await fetch(path, {\n method: 'HEAD'\n });\n for (const [name, value] of headers){\n if (name === 'content-type') return `.${value.split('/').pop()}`;\n }\n return '';\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/view/types.js\n}");
1622
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n _Config: () => (_Config),\n _createIframe: () => (_createIframe),\n _initConfig: () => (_initConfig),\n _viewHtml: () => (_viewHtml),\n hide: () => (hide),\n init: () => (init),\n show: () => (show)\n});\n/* import */ var _css_view_css__rspack_import_0 = __webpack_require__(/*! #css/view.css */ \"./css/view.css\");\n/* import */ var currify__rspack_import_1 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n/* import */ var wraptile__rspack_import_2 = __webpack_require__(/*! wraptile */ \"./node_modules/wraptile/lib/wraptile.js\");\n/* import */ var load_js__rspack_import_3 = __webpack_require__(/*! load.js */ \"./node_modules/load.js/lib/load.js\");\n/* import */ var _cloudcmd_modal__rspack_import_4 = __webpack_require__(/*! @cloudcmd/modal */ \"./node_modules/@cloudcmd/modal/lib/modal.js\");\n/* import */ var _cloudcmd_create_element__rspack_import_5 = __webpack_require__(/*! @cloudcmd/create-element */ \"./node_modules/@cloudcmd/create-element/lib/create-element.js\");\n/* import */ var _common_util__rspack_import_6 = __webpack_require__(/*! #common/util */ \"./common/util.js\");\n/* import */ var _dom_events__rspack_import_7 = __webpack_require__(/*! #dom/events */ \"./client/dom/events/index.js\");\n/* import */ var _dom_images__rspack_import_8 = __webpack_require__(/*! #dom/images */ \"./client/dom/images.js\");\n\n\n\n\n\n\n\n\n\nconst CloudCmd = globalThis.CloudCmd || {};\nconst DOM = globalThis.DOM || {};\nconst { assign } = Object;\nconst { isArray } = Array;\nconst lifo = currify__rspack_import_1((fn, el, cb, name)=>fn(name, el, cb));\nconst series = wraptile__rspack_import_2((...a)=>{\n for (const f of a)f();\n});\nconst isFn = (a)=>typeof a === 'function';\nconst noop = ()=>{};\nconst addEvent = lifo(_dom_events__rspack_import_7.add);\nconst loadCSS = load_js__rspack_import_3.css;\nlet Loading = false;\nconst Name = 'View';\nCloudCmd[Name] = {\n init,\n show,\n hide\n};\nconst Info = DOM.CurrentInfo;\nconst { Key } = CloudCmd;\nlet El;\nlet Overlay;\nconst Config = {\n beforeShow: ()=>{\n _dom_images__rspack_import_8.hide();\n Key.unsetBind();\n },\n beforeClose: ()=>{\n _dom_events__rspack_import_7.rmKey(listener);\n Key.setBind();\n },\n afterShow: ()=>{\n El.focus();\n },\n onOverlayClick,\n afterClose: noop,\n autoSize: false,\n helpers: {\n title: {}\n }\n};\nconst _Config = Config;\nasync function init() {\n await loadAll();\n const events = [\n 'click',\n 'contextmenu'\n ];\n events.forEach(addEvent(Overlay, onOverlayClick));\n}\nasync function show(data, options = {}) {\n if (Loading) return;\n if (!options || options.bindKeys !== false) _dom_events__rspack_import_7.addKey(listener);\n El = _cloudcmd_create_element__rspack_import_5('div', {\n className: 'view',\n notAppend: true\n });\n El.tabIndex = 0;\n if (data) {\n if (isArray(data)) El.append(...data);\n else El.append(data);\n _cloudcmd_modal__rspack_import_4.open(El, initConfig(options));\n return;\n }\n _dom_images__rspack_import_8.show.load();\n return await viewFile();\n}\nconst _createIframe = createIframe;\nfunction createIframe(src, overrides = {}) {\n const { createElement = _cloudcmd_create_element__rspack_import_5 } = overrides;\n const element = createElement('iframe', {\n src,\n width: '100%',\n height: '100%'\n });\n element.addEventListener('load', ()=>{\n element.contentWindow.addEventListener('keydown', listener);\n });\n return element;\n}\nconst _viewHtml = viewHtml;\nfunction viewHtml(src, overrides = {}) {\n const { modal = _cloudcmd_modal__rspack_import_4 } = overrides;\n modal.open(createIframe(src), Config);\n}\nasync function viewFile() {\n const [error, data] = await Info.getData();\n if (error) return _dom_images__rspack_import_8.hide();\n const element = document.createTextNode(data);\n const options = Config;\n if (CloudCmd.config('showFileName')) options.title = Info.name;\n El.append(element);\n _cloudcmd_modal__rspack_import_4.open(El, options);\n}\nconst copy = (a)=>assign({}, a);\nconst _initConfig = initConfig;\nfunction initConfig(options) {\n const config = copy(Config);\n if (!options) return config;\n const names = Object.keys(options);\n for (const name of names){\n const isConfig = Boolean(config[name]);\n const item = options[name];\n if (!isFn(item) || !isConfig) {\n config[name] = options[name];\n continue;\n }\n const fn = config[name];\n config[name] = series(fn, item);\n }\n return config;\n}\nfunction hide() {\n _cloudcmd_modal__rspack_import_4.close();\n}\nasync function loadAll() {\n const { DIR_DIST } = CloudCmd;\n (0,_common_util__rspack_import_6.time)(`${Name} load`);\n Loading = true;\n await loadCSS(`${DIR_DIST}/view.css`);\n Loading = false;\n}\nfunction onOverlayClick(event) {\n const position = {\n x: event.clientX,\n y: event.clientY\n };\n setCurrentByPosition(position);\n}\nfunction setCurrentByPosition(position) {\n const element = DOM.getCurrentByPosition(position);\n if (!element) return;\n const { files, filesPassive } = Info;\n const isFiles = files.includes(element);\n const isFilesPassive = filesPassive.includes(element);\n if (!isFiles && !isFilesPassive) return;\n const isCurrent = DOM.isCurrentFile(element);\n if (isCurrent) return;\n DOM.setCurrentFile(element);\n}\nfunction listener({ keyCode }) {\n if (keyCode === Key.ESC) hide();\n}\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/modules/view/index.js\n}");
1641
1623
 
1642
1624
  },
1643
1625
  "./client/sort.js"
@@ -6,7 +6,7 @@ var __webpack_modules__ = ({
6
6
  !*** ./css/columns/name-size.css ***!
7
7
  \***********************************/
8
8
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/help.css\n}");
9
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
10
10
 
11
11
  },
12
12
 
@@ -6,7 +6,7 @@ var __webpack_modules__ = ({
6
6
  !*** ./css/config.css ***!
7
7
  \************************/
8
8
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/help.css\n}");
9
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
10
10
 
11
11
  },
12
12
 
package/dist-dev/nojs.js CHANGED
@@ -6,7 +6,7 @@ var __webpack_modules__ = ({
6
6
  !*** ./css/nojs.css ***!
7
7
  \**********************/
8
8
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/help.css\n}");
9
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
10
10
 
11
11
  },
12
12
 
package/dist-dev/sw.js CHANGED
@@ -23,7 +23,7 @@ eval("{// shim for using process in browser\nvar process = module.exports = {};\
23
23
  \*************************/
24
24
  (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
  "use strict";
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* import */ var node_process__rspack_import_0 = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* import */ var try_to_catch__rspack_import_1 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var currify__rspack_import_2 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\n\nconst isDev = \"development\" === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify__rspack_import_2((f, e) => e.waitUntil(f()));\nconst respondWith = currify__rspack_import_2((f, e) => {\n const {\n request\n } = e;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n if (url.endsWith('/') || /\\^\\/fs/.test(pathname)) return;\n if (!isGet(request)) return;\n if (!isBasic(request)) return;\n if (pathname.startsWith('/api')) return;\n if (/^socket.io/.test(pathname)) return;\n e.respondWith(f(e));\n});\nconst getPathName = url => new URL(url).pathname;\nconst date = \"Wed Aug 26 2026 22:14:53 GMT+0300 (Eastern European Summer Time)\";\nconst NAME = `cloudcmd: ${date}`;\nconst createRequest = a => new Request(a, {\n credentials: 'same-origin'\n});\nconst getRequest = (a, request) => {\n if (a !== '/') return request;\n return createRequest('/');\n};\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n await Promise.all(keys.map(deleteCache));\n}\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n await globalThis.skipWaiting();\n}\nasync function onFetch(event) {\n const {\n request\n } = event;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n if (!isDev && response) return response;\n const [e, resp] = await (0,try_to_catch__rspack_import_1.tryToCatch)(fetch, newRequest, {\n credentials: 'same-origin'\n });\n if (e) return new Response(e.message);\n await addToCache(request, resp.clone());\n return resp;\n}\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* import */ var node_process__rspack_import_0 = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* import */ var try_to_catch__rspack_import_1 = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* import */ var currify__rspack_import_2 = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\n\nconst isDev = \"development\" === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify__rspack_import_2((f, e) => e.waitUntil(f()));\nconst respondWith = currify__rspack_import_2((f, e) => {\n const {\n request\n } = e;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n if (url.endsWith('/') || /\\^\\/fs/.test(pathname)) return;\n if (!isGet(request)) return;\n if (!isBasic(request)) return;\n if (pathname.startsWith('/api')) return;\n if (/^socket.io/.test(pathname)) return;\n e.respondWith(f(e));\n});\nconst getPathName = url => new URL(url).pathname;\nconst date = \"Fri Sep 04 2026 11:37:13 GMT+0300 (Eastern European Summer Time)\";\nconst NAME = `cloudcmd: ${date}`;\nconst createRequest = a => new Request(a, {\n credentials: 'same-origin'\n});\nconst getRequest = (a, request) => {\n if (a !== '/') return request;\n return createRequest('/');\n};\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n await Promise.all(keys.map(deleteCache));\n}\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n await globalThis.skipWaiting();\n}\nasync function onFetch(event) {\n const {\n request\n } = event;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n if (!isDev && response) return response;\n const [e, resp] = await (0,try_to_catch__rspack_import_1.tryToCatch)(fetch, newRequest, {\n credentials: 'same-origin'\n });\n if (e) return new Response(e.message);\n await addToCache(request, resp.clone());\n return resp;\n}\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js\n}");
27
27
 
28
28
  },
29
29
  "./node_modules/try-to-catch/lib/try-to-catch.js"
@@ -6,7 +6,7 @@ var __webpack_modules__ = ({
6
6
  !*** ./css/terminal.css ***!
7
7
  \**************************/
8
8
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/themes/dark.css\n}");
9
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
10
10
 
11
11
  },
12
12
 
@@ -6,7 +6,7 @@ var __webpack_modules__ = ({
6
6
  !*** ./css/user-menu.css ***!
7
7
  \***************************/
8
8
  (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
- eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/user-menu.css\n}");
9
+ eval("{__webpack_require__.r(__webpack_exports__);\n// extracted by css-extract-rspack-plugin\n\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/css/columns/name-size-date.css\n}");
10
10
 
11
11
  },
12
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "19.20.4",
3
+ "version": "19.20.5",
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",
@@ -174,7 +174,7 @@
174
174
  "codegen.macro": "^4.0.0",
175
175
  "css-loader": "^7.1.2",
176
176
  "css-modules-require-hook": "^4.2.3",
177
- "cssnano-preset-default": "^8.0.1",
177
+ "cssnano-preset-default": "^9.0.1",
178
178
  "domtokenlist-shim": "^1.2.0",
179
179
  "emitify": "^4.0.1",
180
180
  "eslint": "^10.0.0",
package/server/route.js CHANGED
@@ -7,6 +7,7 @@ import format from 'format-io';
7
7
  import currify from 'currify';
8
8
  import wraptile from 'wraptile';
9
9
  import {tryToCatch} from 'try-to-catch';
10
+ import {tryCatch} from 'try-catch';
10
11
  import once from 'once';
11
12
  import pipe from 'pipe-io';
12
13
  import {contentType} from 'mime-types';
@@ -76,10 +77,10 @@ async function route({config, options, request, response}) {
76
77
  config('prefix', prefixer(request.baseUrl));
77
78
 
78
79
  const rootName = name.replace(CloudFunc.FS, '') || '/';
79
- const fullPath = root(rootName, config('root'));
80
+ const [resolveError, fullPath] = tryCatch(root.resolve, rootName, config('root'));
80
81
 
81
- if (fullPath.indexOf(config('root')))
82
- return ponse.sendError(Error(`Path '${fullPath}' beyond root '${config('root')}'`), p);
82
+ if (resolveError)
83
+ return ponse.sendError(resolveError, p);
83
84
 
84
85
  const {html, win32} = options;
85
86