cloudcmd 19.0.17 → 19.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/ChangeLog +18 -0
  2. package/HELP.md +3 -1
  3. package/README.md +1 -1
  4. package/bin/cloudcmd.mjs +1 -1
  5. package/common/try-to-promise-all.js +1 -1
  6. package/dist/cloudcmd.common.js +2 -2
  7. package/dist/cloudcmd.common.js.map +1 -1
  8. package/dist/cloudcmd.js +1 -1
  9. package/dist/cloudcmd.js.map +1 -1
  10. package/dist/modules/cloud.js +1 -1
  11. package/dist/modules/cloud.js.map +1 -1
  12. package/dist/modules/command-line.js +1 -1
  13. package/dist/modules/command-line.js.map +1 -1
  14. package/dist/modules/config.js +1 -1
  15. package/dist/modules/config.js.map +1 -1
  16. package/dist/modules/contact.js +1 -1
  17. package/dist/modules/contact.js.map +1 -1
  18. package/dist/modules/edit-file-vim.js +1 -1
  19. package/dist/modules/edit-file-vim.js.map +1 -1
  20. package/dist/modules/edit-file.js +1 -1
  21. package/dist/modules/edit-file.js.map +1 -1
  22. package/dist/modules/edit-names-vim.js +1 -1
  23. package/dist/modules/edit-names-vim.js.map +1 -1
  24. package/dist/modules/edit-names.js +1 -1
  25. package/dist/modules/edit-names.js.map +1 -1
  26. package/dist/modules/edit.js +1 -1
  27. package/dist/modules/edit.js.map +1 -1
  28. package/dist/modules/help.js +1 -1
  29. package/dist/modules/help.js.map +1 -1
  30. package/dist/modules/konsole.js +1 -1
  31. package/dist/modules/konsole.js.map +1 -1
  32. package/dist/modules/markdown.js +1 -1
  33. package/dist/modules/markdown.js.map +1 -1
  34. package/dist/modules/menu.js +1 -1
  35. package/dist/modules/menu.js.map +1 -1
  36. package/dist/modules/operation.js +1 -1
  37. package/dist/modules/operation.js.map +1 -1
  38. package/dist/modules/polyfill.js +1 -1
  39. package/dist/modules/polyfill.js.map +1 -1
  40. package/dist/modules/terminal-run.js +1 -1
  41. package/dist/modules/terminal-run.js.map +1 -1
  42. package/dist/modules/terminal.js +1 -1
  43. package/dist/modules/terminal.js.map +1 -1
  44. package/dist/modules/upload.js +1 -1
  45. package/dist/modules/upload.js.map +1 -1
  46. package/dist/modules/user-menu.js +1 -1
  47. package/dist/modules/user-menu.js.map +1 -1
  48. package/dist/modules/view.js +1 -1
  49. package/dist/modules/view.js.map +1 -1
  50. package/dist/sw.js +1 -1
  51. package/dist/sw.js.map +1 -1
  52. package/dist-dev/cloudcmd.common.js +101 -36
  53. package/dist-dev/sw.js +43 -3
  54. package/package.json +9 -9
  55. package/server/cloudcmd.mjs +1 -1
  56. package/server/columns.mjs +4 -3
  57. package/server/config.js +2 -2
  58. package/server/distribute/import.mjs +1 -1
  59. package/server/route.mjs +1 -1
  60. package/server/server.mjs +1 -1
  61. package/server/terminal.js +1 -1
  62. package/server/theme.mjs +3 -4
  63. package/server/user-menu.mjs +1 -1
  64. package/server/validate.mjs +1 -1
package/dist-dev/sw.js CHANGED
@@ -16,7 +16,7 @@
16
16
  (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
17
17
 
18
18
  "use strict";
19
- eval("{\n\nconst process = __webpack_require__(/*! node: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 = \"Wed Dec 24 2025 14:42:33 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\n}");
19
+ eval("{\n\nconst process = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\nconst {\n tryToCatch\n} = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.cjs\");\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 Jan 12 2026 13:33:14 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\n}");
20
20
 
21
21
  /***/ },
22
22
 
@@ -41,14 +41,25 @@ eval("{// shim for using process in browser\nvar process = module.exports = {};\
41
41
 
42
42
  /***/ },
43
43
 
44
+ /***/ "./node_modules/try-to-catch/lib/try-to-catch.cjs"
45
+ /*!********************************************************!*\
46
+ !*** ./node_modules/try-to-catch/lib/try-to-catch.cjs ***!
47
+ \********************************************************/
48
+ (module, __unused_webpack_exports, __webpack_require__) {
49
+
50
+ "use strict";
51
+ eval("{\n\nconst {tryToCatch} = __webpack_require__(/*! ./try-to-catch.js */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n\nmodule.exports = tryToCatch;\nmodule.exports.tryToCatch = tryToCatch;\n\n\n//# sourceURL=file://cloudcmd/node_modules/try-to-catch/lib/try-to-catch.cjs\n}");
52
+
53
+ /***/ },
54
+
44
55
  /***/ "./node_modules/try-to-catch/lib/try-to-catch.js"
45
56
  /*!*******************************************************!*\
46
57
  !*** ./node_modules/try-to-catch/lib/try-to-catch.js ***!
47
58
  \*******************************************************/
48
- (module) {
59
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
49
60
 
50
61
  "use strict";
51
- eval("{\n\nmodule.exports = async (fn, ...args) => {\n check(fn);\n \n try {\n return [null, await fn(...args)];\n } catch(e) {\n return [e];\n }\n};\n\nfunction check(fn) {\n if (typeof fn !== 'function')\n throw Error('fn should be a function!');\n}\n\n\n\n//# sourceURL=file://cloudcmd/node_modules/try-to-catch/lib/try-to-catch.js\n}");
62
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ tryToCatch: () => (/* binding */ tryToCatch)\n/* harmony export */ });\nconst isFn = (a) => typeof a === 'function';\n\nconst tryToCatch = async (fn, ...args) => {\n check(fn);\n \n try {\n return [null, await fn(...args)];\n } catch(e) {\n return [e];\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tryToCatch);\n\nfunction check(fn) {\n if (!isFn(fn))\n throw Error('fn should be a function!');\n}\n\n\n//# sourceURL=file://cloudcmd/node_modules/try-to-catch/lib/try-to-catch.js\n}");
52
63
 
53
64
  /***/ }
54
65
 
@@ -85,6 +96,35 @@ eval("{\n\nmodule.exports = async (fn, ...args) => {\n check(fn);\n \n
85
96
  /******/ }
86
97
  /******/
87
98
  /************************************************************************/
99
+ /******/ /* webpack/runtime/define property getters */
100
+ /******/ (() => {
101
+ /******/ // define getter functions for harmony exports
102
+ /******/ __webpack_require__.d = (exports, definition) => {
103
+ /******/ for(var key in definition) {
104
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
105
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
106
+ /******/ }
107
+ /******/ }
108
+ /******/ };
109
+ /******/ })();
110
+ /******/
111
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
112
+ /******/ (() => {
113
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
114
+ /******/ })();
115
+ /******/
116
+ /******/ /* webpack/runtime/make namespace object */
117
+ /******/ (() => {
118
+ /******/ // define __esModule on exports
119
+ /******/ __webpack_require__.r = (exports) => {
120
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
121
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
122
+ /******/ }
123
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
124
+ /******/ };
125
+ /******/ })();
126
+ /******/
127
+ /************************************************************************/
88
128
  /******/
89
129
  /******/ // startup
90
130
  /******/ // Load entry module and return exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "19.0.17",
3
+ "version": "19.1.1",
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",
@@ -108,7 +108,7 @@
108
108
  "find-up": "^8.0.0",
109
109
  "for-each-key": "^2.0.0",
110
110
  "format-io": "^2.0.0",
111
- "fullstore": "^3.0.0",
111
+ "fullstore": "^4.0.0",
112
112
  "http-auth": "^4.2.1",
113
113
  "inly": "^5.0.0",
114
114
  "jaguar": "^6.0.0",
@@ -140,8 +140,8 @@
140
140
  "socket.io-client": "^4.0.1",
141
141
  "squad": "^3.0.0",
142
142
  "table": "^6.0.1",
143
- "try-catch": "^3.0.0",
144
- "try-to-catch": "^3.0.0",
143
+ "try-catch": "^4.0.4",
144
+ "try-to-catch": "^4.0.0",
145
145
  "tryrequire": "^3.0.0",
146
146
  "win32": "^7.0.0",
147
147
  "wraptile": "^3.0.0",
@@ -156,7 +156,7 @@
156
156
  "@cloudcmd/create-element": "^2.0.0",
157
157
  "@cloudcmd/modal": "^3.0.0",
158
158
  "@cloudcmd/olark": "^3.0.2",
159
- "@cloudcmd/stub": "^4.0.1",
159
+ "@cloudcmd/stub": "^5.0.0",
160
160
  "@iocmd/wait": "^2.1.0",
161
161
  "@putout/eslint-flat": "^3.0.1",
162
162
  "@putout/plugin-cloudcmd": "^4.0.0",
@@ -175,7 +175,7 @@
175
175
  "eslint": "^9.23.0",
176
176
  "eslint-plugin-n": "^17.0.0-4",
177
177
  "eslint-plugin-putout": "^29.0.2",
178
- "globals": "^16.3.0",
178
+ "globals": "^17.0.0",
179
179
  "gritty": "^9.0.0",
180
180
  "gunzip-maybe": "^1.3.1",
181
181
  "html-webpack-plugin": "^5.6.3",
@@ -184,7 +184,7 @@
184
184
  "just-pascal-case": "^3.2.0",
185
185
  "limier": "^3.0.0",
186
186
  "load.js": "^3.0.0",
187
- "madrun": "^11.0.0",
187
+ "madrun": "^12.1.0",
188
188
  "memfs": "^4.2.0",
189
189
  "mini-css-extract-plugin": "^2.9.2",
190
190
  "minor": "^1.2.2",
@@ -199,7 +199,7 @@
199
199
  "postcss": "^8.5.3",
200
200
  "process": "^0.11.10",
201
201
  "readjson": "^2.0.1",
202
- "redlint": "^4.1.1",
202
+ "redlint": "^5.0.0",
203
203
  "request": "^2.76.0",
204
204
  "rimraf": "^6.0.1",
205
205
  "scroll-into-view-if-needed": "^3.0.4",
@@ -207,7 +207,7 @@
207
207
  "smalltalk": "^4.0.0",
208
208
  "style-loader": "^4.0.0",
209
209
  "supermenu": "^4.0.1",
210
- "supertape": "^11.0.4",
210
+ "supertape": "^12.0.0",
211
211
  "tar-stream": "^3.0.0",
212
212
  "unionfs": "^4.0.0",
213
213
  "url-loader": "^4.0.0",
@@ -2,7 +2,7 @@ import path, {dirname, join} from 'node:path';
2
2
  import {fileURLToPath} from 'node:url';
3
3
  import process from 'node:process';
4
4
  import fs from 'node:fs';
5
- import fullstore from 'fullstore';
5
+ import {fullstore} from 'fullstore';
6
6
  import currify from 'currify';
7
7
  import apart from 'apart';
8
8
  import ponse from 'ponse';
@@ -2,11 +2,12 @@ import path, {dirname} from 'node:path';
2
2
  import {fileURLToPath} from 'node:url';
3
3
  import process from 'node:process';
4
4
  import fs from 'node:fs';
5
- import fullstore from 'fullstore';
6
- import nanomemoizeDefault from 'nano-memoize';
5
+ import {fullstore} from 'fullstore';
6
+ import * as nanomemoizeDefault from 'nano-memoize';
7
7
  import readFilesSync from '@cloudcmd/read-files-sync';
8
8
 
9
- const {nanomemoize} = nanomemoizeDefault;
9
+ const nanomemoize = nanomemoizeDefault.default.nanomemoize || nanomemoizeDefault.default;
10
+
10
11
  const __filename = fileURLToPath(import.meta.url);
11
12
  const __dirname = dirname(__filename);
12
13
  const isMap = (a) => /\.(map|js)$/.test(a);
package/server/config.js CHANGED
@@ -11,13 +11,13 @@ const {homedir} = require('node:os');
11
11
  const currify = require('currify');
12
12
 
13
13
  const wraptile = require('wraptile');
14
- const tryToCatch = require('try-to-catch');
14
+ const {tryToCatch} = require('try-to-catch');
15
15
  const pullout = require('pullout');
16
16
  const ponse = require('ponse');
17
17
  const jonny = require('jonny');
18
18
  const jju = require('jju');
19
19
  const writejson = require('writejson');
20
- const tryCatch = require('try-catch');
20
+ const {tryCatch} = require('try-catch');
21
21
  const criton = require('criton');
22
22
  const exit = require(`${DIR_SERVER}exit`);
23
23
 
@@ -1,7 +1,7 @@
1
1
  import currify from 'currify';
2
2
  import wraptile from 'wraptile';
3
3
  import squad from 'squad';
4
- import fullstore from 'fullstore';
4
+ import {fullstore} from 'fullstore';
5
5
  import io from 'socket.io-client';
6
6
  import _forEachKey from 'for-each-key';
7
7
  import log from './log.mjs';
package/server/route.mjs CHANGED
@@ -6,7 +6,7 @@ import rendy from 'rendy';
6
6
  import format from 'format-io';
7
7
  import currify from 'currify';
8
8
  import wraptile from 'wraptile';
9
- import tryToCatch from 'try-to-catch';
9
+ import {tryToCatch} from 'try-to-catch';
10
10
  import once from 'once';
11
11
  import pipe from 'pipe-io';
12
12
  import {contentType} from 'mime-types';
package/server/server.mjs CHANGED
@@ -3,7 +3,7 @@ import {promisify} from 'node:util';
3
3
  import process from 'node:process';
4
4
  import currify from 'currify';
5
5
  import squad from 'squad';
6
- import tryToCatch from 'try-to-catch';
6
+ import {tryToCatch} from 'try-to-catch';
7
7
  import opn from 'open';
8
8
  import express from 'express';
9
9
  import {Server} from 'socket.io';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const tryCatch = require('try-catch');
3
+ const {tryCatch} = require('try-catch');
4
4
 
5
5
  const noop = (req, res, next) => {
6
6
  next && next();
package/server/theme.mjs CHANGED
@@ -2,10 +2,11 @@ import path, {dirname} from 'node:path';
2
2
  import {fileURLToPath} from 'node:url';
3
3
  import process from 'node:process';
4
4
  import fs from 'node:fs';
5
- import fullstore from 'fullstore';
6
- import nanomemoizeDefault from 'nano-memoize';
5
+ import {fullstore} from 'fullstore';
6
+ import * as nanomemoizeDefault from 'nano-memoize';
7
7
  import readFilesSync from '@cloudcmd/read-files-sync';
8
8
 
9
+ const nanomemoize = nanomemoizeDefault.default.nanomemoize || nanomemoizeDefault.default;
9
10
  const __filename = fileURLToPath(import.meta.url);
10
11
  const __dirname = dirname(__filename);
11
12
  const isMap = (a) => /\.(map|js)$/.test(a);
@@ -20,8 +21,6 @@ export const getThemes = ({isDev = _isDev()} = {}) => {
20
21
  return readFilesSyncMemo(isDev);
21
22
  };
22
23
 
23
- const {nanomemoize} = nanomemoizeDefault;
24
-
25
24
  const readFilesSyncMemo = nanomemoize((isDev) => {
26
25
  const dist = getDist(isDev);
27
26
  const themesDir = path.join(__dirname, '..', dist, 'themes');
@@ -2,7 +2,7 @@ import {homedir} from 'node:os';
2
2
  import {readFile as _readFile} from 'node:fs/promises';
3
3
  import {join} from 'node:path';
4
4
  import montag from 'montag';
5
- import tryToCatch from 'try-to-catch';
5
+ import {tryToCatch} from 'try-to-catch';
6
6
  import currify from 'currify';
7
7
  import {putout, codeframe} from 'putout';
8
8
 
@@ -1,5 +1,5 @@
1
1
  import {statSync as _statSync} from 'node:fs';
2
- import tryCatch from 'try-catch';
2
+ import {tryCatch} from 'try-catch';
3
3
  import _exit from './exit.js';
4
4
  import {getColumns as _getColumns} from './columns.mjs';
5
5
  import {getThemes as _getThemes} from './theme.mjs';