cloudcmd 19.9.9 → 19.9.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ChangeLog CHANGED
@@ -1,3 +1,13 @@
1
+ 2026.03.29, v19.9.11
2
+
3
+ feature:
4
+ - 1f95f188 cloudcmd: get rid of simport
5
+
6
+ 2026.03.29, v19.9.10
7
+
8
+ feature:
9
+ - f0deb323 docker: io: add ja_JP.UTF-8
10
+
1
11
  2026.03.29, v19.9.9
2
12
 
3
13
  fix:
package/HELP.md CHANGED
@@ -1,4 +1,4 @@
1
- # Cloud Commander v19.9.9
1
+ # Cloud Commander v19.9.11
2
2
 
3
3
  ### [Main][MainURL] [Blog][BlogURL] [Support][SupportURL] [Demo][DemoURL]
4
4
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  **Cloud Commander** is a file manager for the web. It includes a command-line console and a text editor. Cloud Commander helps you manage your server and work with files, directories and programs in a web browser from any computer, mobile or tablet.
17
17
 
18
- ![Cloud Commander](/img/logo/cloudcmd.png "Cloud Commander")
18
+ ![Cloud Commander](https://cloudcmd.io/img/logo/cloudcmd.png "Cloud Commander")
19
19
 
20
20
  ## Benefits
21
21
 
@@ -1114,6 +1114,8 @@ There are a lot of ways to be involved in `Cloud Commander` development:
1114
1114
 
1115
1115
  ## Version history
1116
1116
 
1117
+ - *2026.03.29*, **[v19.9.11](//github.com/coderaiser/cloudcmd/releases/tag/v19.9.11)**
1118
+ - *2026.03.29*, **[v19.9.10](//github.com/coderaiser/cloudcmd/releases/tag/v19.9.10)**
1117
1119
  - *2026.03.29*, **[v19.9.9](//github.com/coderaiser/cloudcmd/releases/tag/v19.9.9)**
1118
1120
  - *2026.03.28*, **[v19.9.8](//github.com/coderaiser/cloudcmd/releases/tag/v19.9.8)**
1119
1121
  - *2026.03.27*, **[v19.9.7](//github.com/coderaiser/cloudcmd/releases/tag/v19.9.7)**
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Cloud Commander v19.9.9 [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Codacy][CodacyIMG]][CodacyURL] [![Gitter][GitterIMGURL]][GitterURL]
1
+ # Cloud Commander v19.9.11 [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Codacy][CodacyIMG]][CodacyURL] [![Gitter][GitterIMGURL]][GitterURL]
2
2
 
3
3
  ### [Main][MainURL] [Blog][BlogURL] [Support][SupportURL] [Demo][DemoURL]
4
4
 
package/bin/cloudcmd.js CHANGED
@@ -4,21 +4,20 @@ import process from 'node:process';
4
4
  import {createRequire} from 'node:module';
5
5
  import {promisify} from 'node:util';
6
6
  import {tryToCatch} from 'try-to-catch';
7
- import {createSimport} from 'simport';
8
7
  import parse from 'yargs-parser';
9
8
  import exit from '../server/exit.js';
10
9
  import {createConfig, configPath} from '../server/config.js';
11
10
  import * as env from '../server/env.js';
12
11
  import prefixer from '../server/prefixer.js';
13
12
  import * as validate from '../server/validate.js';
13
+ import Info from '../package.json' with {
14
+ type: 'json',
15
+ };
14
16
 
15
17
  process.on('unhandledRejection', exit);
16
-
17
18
  const require = createRequire(import.meta.url);
18
19
 
19
- const Info = require('../package.json');
20
20
  const isUndefined = (a) => typeof a === 'undefined';
21
- const simport = createSimport(import.meta.url);
22
21
 
23
22
  const choose = (a, b) => {
24
23
  if (isUndefined(a))
@@ -170,7 +169,7 @@ else
170
169
  main();
171
170
 
172
171
  async function main() {
173
- const {validateArgs} = await simport('@putout/cli-validate-args');
172
+ const {validateArgs} = await import('@putout/cli-validate-args');
174
173
 
175
174
  const error = await validateArgs(args, [
176
175
  ...yargsOptions.boolean,
@@ -251,7 +250,7 @@ async function main() {
251
250
  if (args.showConfig)
252
251
  await showConfig();
253
252
 
254
- const {distributeImport} = await simport('../server/distribute/import.js');
253
+ const {distributeImport} = await import('../server/distribute/import.js');
255
254
  const importConfig = promisify(distributeImport);
256
255
 
257
256
  await start(options, config);
@@ -273,7 +272,7 @@ function validateRoot(root, config) {
273
272
  }
274
273
 
275
274
  async function getPassword(password) {
276
- const criton = await simport('criton');
275
+ const {default: criton} = await import('criton');
277
276
  return criton(password, config('algo'));
278
277
  }
279
278
 
@@ -282,12 +281,10 @@ function version() {
282
281
  }
283
282
 
284
283
  async function start(options, config) {
285
- const SERVER = `../server/server.js`;
286
-
287
284
  if (!args.server)
288
285
  return;
289
286
 
290
- const server = await simport(SERVER);
287
+ const {default: server} = await import('../server/server.js');
291
288
  server(options, config);
292
289
  }
293
290
 
@@ -311,13 +308,13 @@ async function readConfig(name) {
311
308
  if (!name)
312
309
  return;
313
310
 
314
- const tryToCatch = await simport('try-to-catch');
315
- const forEachKey = await simport('for-each-key');
311
+ const {default: forEachKey} = await import('for-each-key');
316
312
 
317
- const [error, data] = await tryToCatch(simport, name);
318
-
319
- if (error)
320
- return exit(error.message);
313
+ const data = await import(name, {
314
+ with: {
315
+ type: 'json',
316
+ },
317
+ });
321
318
 
322
319
  forEachKey(config, data);
323
320
  }
@@ -329,8 +326,8 @@ async function help() {
329
326
  },
330
327
  });
331
328
 
332
- const forEachKey = await simport('for-each-key');
333
- const currify = await simport('currify');
329
+ const {default: forEachKey} = await import('for-each-key');
330
+ const {currify} = await import('currify');
334
331
 
335
332
  const usage = 'Usage: cloudcmd [options]';
336
333
  const url = Info.homepage;
@@ -348,9 +345,9 @@ function repl() {
348
345
  }
349
346
 
350
347
  async function checkUpdate() {
351
- const load = await simport('package-json');
352
-
348
+ const {default: load} = await import('package-json');
353
349
  const {version} = await load(Info.name, 'latest');
350
+
354
351
  await showUpdateInfo(version);
355
352
  }
356
353
 
@@ -358,7 +355,7 @@ async function showUpdateInfo(version) {
358
355
  if (version === Info.version)
359
356
  return;
360
357
 
361
- const chalk = await simport('chalk');
358
+ const {default: chalk} = await import('chalk');
362
359
 
363
360
  const latestVersion = chalk.green.bold(`v${version}`);
364
361
  const latest = `update available: ${latestVersion}`;
package/dist/sw.js CHANGED
@@ -311,7 +311,7 @@ const respondWith = currify((f, e) => {
311
311
  e.respondWith(f(e));
312
312
  });
313
313
  const getPathName = url => new URL(url).pathname;
314
- const date = "Sun Mar 29 2026 00:56:23 GMT+0200 (Eastern European Standard Time)";
314
+ const date = "Sun Mar 29 2026 12:30:36 GMT+0300 (Eastern European Summer Time)";
315
315
  const NAME = `cloudcmd: ${date}`;
316
316
  const createRequest = a => new Request(a, {
317
317
  credentials: 'same-origin'
package/dist/sw.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sw.js","mappings":";;;;;;;AAAa;;AAEb;AACA;AACA,kBAAkB,yBAAyB;AAC3C,qBAAqB,yBAAyB;AAC9C,wBAAwB,yBAAyB;AACjD,2BAA2B,yBAAyB;AACpD,8BAA8B,yBAAyB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA,6BAA6B;;;;;;;UCvL7B;UAC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","sources":["file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/currify/lib/currify.js","file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/process/browser.js","file://cloudcmd/webpack/bootstrap","file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/try-to-catch/lib/try-to-catch.js","file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js"],"sourcesContent":["'use strict';\n\nconst f = (fn) => [\n /*eslint no-unused-vars: 0*/\n function (a) {return fn(...arguments);},\n function (a, b) {return fn(...arguments);},\n function (a, b, c) {return fn(...arguments);},\n function (a, b, c, d) {return fn(...arguments);},\n function (a, b, c, d, e) {return fn(...arguments);},\n];\n\nconst currify = (fn, ...args) => {\n check(fn);\n \n if (args.length >= fn.length)\n return fn(...args);\n \n const again = (...args2) => {\n return currify(fn, ...[...args, ...args2]);\n };\n \n const count = fn.length - args.length - 1;\n const func = f(again)[count];\n \n return func || again;\n};\n\nmodule.exports = currify;\n\nfunction check(fn) {\n if (typeof fn !== 'function')\n throw Error('fn should be function!');\n}\n\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","const isFn = (a) => typeof a === 'function';\n\nexport const 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\nfunction check(fn) {\n if (!isFn(fn))\n throw Error('fn should be a function!');\n}\n","import process from 'node:process';\nimport codegen from 'codegen.macro';\nimport {tryToCatch} from 'try-to-catch';\nimport currify from 'currify';\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst isGet = (a) => a.method === 'GET';\nconst isBasic = (a) => a.type === 'basic';\n\nconst wait = currify((f, e) => e.waitUntil(f()));\nconst respondWith = currify((f, e) => {\n const {request} = e;\n const {url} = request;\n const pathname = getPathName(url);\n \n if (url.endsWith('/') || /\\^\\/fs/.test(pathname))\n return;\n \n if (!isGet(request))\n return;\n \n if (!isBasic(request))\n return;\n \n if (pathname.startsWith('/api'))\n return;\n \n if (/^socket.io/.test(pathname))\n return;\n \n e.respondWith(f(e));\n});\n\nconst getPathName = (url) => new URL(url).pathname;\n\nconst date = codegen`module.exports = '\"' + Date() + '\"'`;\nconst NAME = `cloudcmd: ${date}`;\n\nconst createRequest = (a) => new Request(a, {\n credentials: 'same-origin',\n});\n\nconst getRequest = (a, request) => {\n if (a !== '/')\n return request;\n \n return createRequest('/');\n};\n\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\n\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n \n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n \n await Promise.all(keys.map(deleteCache));\n}\n\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n \n await globalThis.skipWaiting();\n}\n\nasync function onFetch(event) {\n const {request} = event;\n const {url} = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n \n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n \n if (!isDev && response)\n return response;\n \n const [e, resp] = await tryToCatch(fetch, newRequest, {\n credentials: 'same-origin',\n });\n \n if (e)\n return new Response(e.message);\n \n await addToCache(request, resp.clone());\n \n return resp;\n}\n\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n"],"names":["process","tryToCatch","currify","isDev","env","NODE_ENV","isGet","a","method","isBasic","type","wait","f","e","waitUntil","respondWith","request","url","pathname","getPathName","endsWith","test","startsWith","URL","date","NAME","createRequest","Request","credentials","getRequest","globalThis","addEventListener","onInstall","onFetch","onActivate","console","info","clients","claim","keys","caches","deleteCache","delete","bind","Promise","all","map","skipWaiting","event","newRequest","cache","open","response","match","resp","fetch","Response","message","addToCache","clone","put"],"sourceRoot":""}
1
+ {"version":3,"file":"sw.js","mappings":";;;;;;;AAAa;;AAEb;AACA;AACA,kBAAkB,yBAAyB;AAC3C,qBAAqB,yBAAyB;AAC9C,wBAAwB,yBAAyB;AACjD,2BAA2B,yBAAyB;AACpD,8BAA8B,yBAAyB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA,6BAA6B;;;;;;;UCvL7B;UAC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","sources":["file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/currify/lib/currify.js","file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/process/browser.js","file://cloudcmd/webpack/bootstrap","file://cloudcmd//Users/coderaiser/cloudcmd/node_modules/try-to-catch/lib/try-to-catch.js","file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js"],"sourcesContent":["'use strict';\n\nconst f = (fn) => [\n /*eslint no-unused-vars: 0*/\n function (a) {return fn(...arguments);},\n function (a, b) {return fn(...arguments);},\n function (a, b, c) {return fn(...arguments);},\n function (a, b, c, d) {return fn(...arguments);},\n function (a, b, c, d, e) {return fn(...arguments);},\n];\n\nconst currify = (fn, ...args) => {\n check(fn);\n \n if (args.length >= fn.length)\n return fn(...args);\n \n const again = (...args2) => {\n return currify(fn, ...[...args, ...args2]);\n };\n \n const count = fn.length - args.length - 1;\n const func = f(again)[count];\n \n return func || again;\n};\n\nmodule.exports = currify;\n\nfunction check(fn) {\n if (typeof fn !== 'function')\n throw Error('fn should be function!');\n}\n\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","const isFn = (a) => typeof a === 'function';\n\nexport const 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\nfunction check(fn) {\n if (!isFn(fn))\n throw Error('fn should be a function!');\n}\n","import process from 'node:process';\nimport codegen from 'codegen.macro';\nimport {tryToCatch} from 'try-to-catch';\nimport currify from 'currify';\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst isGet = (a) => a.method === 'GET';\nconst isBasic = (a) => a.type === 'basic';\n\nconst wait = currify((f, e) => e.waitUntil(f()));\nconst respondWith = currify((f, e) => {\n const {request} = e;\n const {url} = request;\n const pathname = getPathName(url);\n \n if (url.endsWith('/') || /\\^\\/fs/.test(pathname))\n return;\n \n if (!isGet(request))\n return;\n \n if (!isBasic(request))\n return;\n \n if (pathname.startsWith('/api'))\n return;\n \n if (/^socket.io/.test(pathname))\n return;\n \n e.respondWith(f(e));\n});\n\nconst getPathName = (url) => new URL(url).pathname;\n\nconst date = codegen`module.exports = '\"' + Date() + '\"'`;\nconst NAME = `cloudcmd: ${date}`;\n\nconst createRequest = (a) => new Request(a, {\n credentials: 'same-origin',\n});\n\nconst getRequest = (a, request) => {\n if (a !== '/')\n return request;\n \n return createRequest('/');\n};\n\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\n\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n \n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n \n await Promise.all(keys.map(deleteCache));\n}\n\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n \n await globalThis.skipWaiting();\n}\n\nasync function onFetch(event) {\n const {request} = event;\n const {url} = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n \n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n \n if (!isDev && response)\n return response;\n \n const [e, resp] = await tryToCatch(fetch, newRequest, {\n credentials: 'same-origin',\n });\n \n if (e)\n return new Response(e.message);\n \n await addToCache(request, resp.clone());\n \n return resp;\n}\n\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n"],"names":["process","tryToCatch","currify","isDev","env","NODE_ENV","isGet","a","method","isBasic","type","wait","f","e","waitUntil","respondWith","request","url","pathname","getPathName","endsWith","test","startsWith","URL","date","NAME","createRequest","Request","credentials","getRequest","globalThis","addEventListener","onInstall","onFetch","onActivate","console","info","clients","claim","keys","caches","deleteCache","delete","bind","Promise","all","map","skipWaiting","event","newRequest","cache","open","response","match","resp","fetch","Response","message","addToCache","clone","put"],"sourceRoot":""}
package/dist-dev/sw.js CHANGED
@@ -37,7 +37,7 @@ eval("{// shim for using process in browser\nvar process = module.exports = {};\
37
37
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
38
38
 
39
39
  "use strict";
40
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* harmony import */ var try_to_catch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* harmony import */ var currify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\n\nconst isDev = \"development\" === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify__WEBPACK_IMPORTED_MODULE_2__((f, e) => e.waitUntil(f()));\nconst respondWith = currify__WEBPACK_IMPORTED_MODULE_2__((f, e) => {\n const {\n request\n } = e;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n if (url.endsWith('/') || /\\^\\/fs/.test(pathname)) return;\n if (!isGet(request)) return;\n if (!isBasic(request)) return;\n if (pathname.startsWith('/api')) return;\n if (/^socket.io/.test(pathname)) return;\n e.respondWith(f(e));\n});\nconst getPathName = url => new URL(url).pathname;\nconst date = \"Sun Mar 29 2026 00:56:25 GMT+0200 (Eastern European Standard Time)\";\nconst NAME = `cloudcmd: ${date}`;\nconst createRequest = a => new Request(a, {\n credentials: 'same-origin'\n});\nconst getRequest = (a, request) => {\n if (a !== '/') return request;\n return createRequest('/');\n};\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n await Promise.all(keys.map(deleteCache));\n}\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n await globalThis.skipWaiting();\n}\nasync function onFetch(event) {\n const {\n request\n } = event;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n if (!isDev && response) return response;\n const [e, resp] = await (0,try_to_catch__WEBPACK_IMPORTED_MODULE_1__.tryToCatch)(fetch, newRequest, {\n credentials: 'same-origin'\n });\n if (e) return new Response(e.message);\n await addToCache(request, resp.clone());\n return resp;\n}\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js\n}");
40
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:process */ \"./node_modules/process/browser.js\");\n/* harmony import */ var try_to_catch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! try-to-catch */ \"./node_modules/try-to-catch/lib/try-to-catch.js\");\n/* harmony import */ var currify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! currify */ \"./node_modules/currify/lib/currify.js\");\n\n\n\nconst isDev = \"development\" === 'development';\nconst isGet = a => a.method === 'GET';\nconst isBasic = a => a.type === 'basic';\nconst wait = currify__WEBPACK_IMPORTED_MODULE_2__((f, e) => e.waitUntil(f()));\nconst respondWith = currify__WEBPACK_IMPORTED_MODULE_2__((f, e) => {\n const {\n request\n } = e;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n if (url.endsWith('/') || /\\^\\/fs/.test(pathname)) return;\n if (!isGet(request)) return;\n if (!isBasic(request)) return;\n if (pathname.startsWith('/api')) return;\n if (/^socket.io/.test(pathname)) return;\n e.respondWith(f(e));\n});\nconst getPathName = url => new URL(url).pathname;\nconst date = \"Sun Mar 29 2026 12:30:38 GMT+0300 (Eastern European Summer Time)\";\nconst NAME = `cloudcmd: ${date}`;\nconst createRequest = a => new Request(a, {\n credentials: 'same-origin'\n});\nconst getRequest = (a, request) => {\n if (a !== '/') return request;\n return createRequest('/');\n};\nglobalThis.addEventListener('install', wait(onInstall));\nglobalThis.addEventListener('fetch', respondWith(onFetch));\nglobalThis.addEventListener('activate', wait(onActivate));\nasync function onActivate() {\n console.info(`cloudcmd: sw: activate: ${NAME}`);\n await globalThis.clients.claim();\n const keys = await caches.keys();\n const deleteCache = caches.delete.bind(caches);\n await Promise.all(keys.map(deleteCache));\n}\nasync function onInstall() {\n console.info(`cloudcmd: sw: install: ${NAME}`);\n await globalThis.skipWaiting();\n}\nasync function onFetch(event) {\n const {\n request\n } = event;\n const {\n url\n } = request;\n const pathname = getPathName(url);\n const newRequest = getRequest(pathname, event.request);\n const cache = await caches.open(NAME);\n const response = await cache.match(request);\n if (!isDev && response) return response;\n const [e, resp] = await (0,try_to_catch__WEBPACK_IMPORTED_MODULE_1__.tryToCatch)(fetch, newRequest, {\n credentials: 'same-origin'\n });\n if (e) return new Response(e.message);\n await addToCache(request, resp.clone());\n return resp;\n}\nasync function addToCache(request, response) {\n const cache = await caches.open(NAME);\n return cache.put(request, response);\n}\n\n//# sourceURL=file://cloudcmd//Users/coderaiser/cloudcmd/client/sw/sw.js\n}");
41
41
 
42
42
  /***/ },
43
43
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcmd",
3
- "version": "19.9.9",
3
+ "version": "19.9.11",
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",
@@ -135,7 +135,6 @@
135
135
  "restafary": "^13.0.1",
136
136
  "restbox": "^4.0.0",
137
137
  "shortdate": "^2.0.0",
138
- "simport": "^1.0.1",
139
138
  "socket.io": "^4.0.0",
140
139
  "socket.io-client": "^4.0.1",
141
140
  "squad": "^3.0.0",
package/server/config.js CHANGED
@@ -1,8 +1,7 @@
1
- import path, {dirname} from 'node:path';
1
+ import path from 'node:path';
2
2
  import fs from 'node:fs';
3
3
  import Emitter from 'node:events';
4
4
  import {homedir} from 'node:os';
5
- import {fileURLToPath} from 'node:url';
6
5
  import currify from 'currify';
7
6
  import wraptile from 'wraptile';
8
7
  import {tryToCatch} from 'try-to-catch';
@@ -15,15 +14,16 @@ import {tryCatch} from 'try-catch';
15
14
  import criton from 'criton';
16
15
  import * as CloudFunc from '#common/cloudfunc';
17
16
  import exit from './exit.js';
17
+ import rootConfig from '../json/config.json' with {
18
+ type: 'json',
19
+ };
18
20
 
19
- const __filename = fileURLToPath(import.meta.url);
20
- const __dirname = dirname(__filename);
21
- const DIR_SERVER = `${__dirname}/`;
22
21
  const isUndefined = (a) => typeof a === 'undefined';
23
- const DIR = `${DIR_SERVER}../`;
22
+
24
23
  const HOME = homedir();
25
24
 
26
25
  const resolve = Promise.resolve.bind(Promise);
26
+
27
27
  const formatMsg = currify((a, b) => CloudFunc.formatMsg(a, b));
28
28
 
29
29
  const {apiURL} = CloudFunc;
@@ -32,10 +32,10 @@ const key = (a) => Object
32
32
  .keys(a)
33
33
  .pop();
34
34
 
35
- const ConfigPath = path.join(DIR, 'json/config.json');
36
-
37
35
  const connection = currify(_connection);
36
+
38
37
  const connectionWrapped = wraptile(_connection);
38
+
39
39
  const middle = currify(_middle);
40
40
 
41
41
  const readjsonSync = (name) => {
@@ -44,8 +44,6 @@ const readjsonSync = (name) => {
44
44
  });
45
45
  };
46
46
 
47
- const rootConfig = readjsonSync(ConfigPath);
48
-
49
47
  function read(filename) {
50
48
  if (!filename)
51
49
  return rootConfig;