Compare commits

...

4127 commits

Author SHA1 Message Date
coderiaser
78e87796df chore: cloudcmd: v19.1.9 2026-01-21 20:08:24 +02:00
coderiaser
75ad4415c4 feature: cloudcmd: @putout/eslint-flat v4.0.0 2026-01-21 20:06:53 +02:00
coderiaser
c5d9bd7c1f feature: client: key: vim: get rid of mock-require 2026-01-21 20:06:35 +02:00
coderiaser
f437a52ff0 feature: client: images: migrate to EMS 2026-01-21 19:59:27 +02:00
coderiaser
7192a56e94 feature: client: dom: current-file: migrate to ESM 2026-01-21 19:50:30 +02:00
coderiaser
b9dd4f2676 chore: cloudcmd: v19.1.8 2026-01-20 23:43:51 +02:00
coderiaser
e8cf3c92f9 chore: lint 2026-01-20 23:43:06 +02:00
coderiaser
d574a93d6d feature: client: key: migrate to ESM 2026-01-20 23:41:26 +02:00
coderiaser
8a769fd512 fix: client: modules: operation: no update after copy 2026-01-20 23:41:26 +02:00
coderiaser
3b409074c1 feature: client: modules: operation: migrate to ESM 2026-01-20 23:41:26 +02:00
coderiaser
3b6b0b5a5b feature: client: buffer: migrate to ESM 2026-01-20 23:41:26 +02:00
coderiaser
8876f050e0 feature: cloudcmd: eslint-plugin-putout v30.0.0 2026-01-20 23:41:26 +02:00
coderiaser
8507282d55 test: cloudcmd: client: key: rm skip 2026-01-20 23:41:26 +02:00
coderaiser
f61b21eecc chore: cloudcmd: actions: lint ☘️ 2026-01-17 12:36:49 +00:00
coderiaser
242820b7cf chore: cloudcmd: v19.1.7 2026-01-17 14:36:00 +02:00
coderiaser
dd240ba9b2 test: client: key: vim: rm skip 2026-01-17 14:36:00 +02:00
coderaiser
4b945c0047 chore: cloudcmd: actions: lint ☘️ 2026-01-17 12:23:41 +00:00
coderiaser
23a6a6981a feature: client: dom/events -> #dom/events 2026-01-17 14:22:49 +02:00
coderiaser
9cebb2416f feature: client: dom: events: migrate to ESM 2026-01-17 14:22:49 +02:00
coderiaser
a94fa0d465 feature: client: cloudcmd: migrate to ESM 2026-01-17 14:22:49 +02:00
coderiaser
3bdf47a5bb feature: client: migrate to ESM 2026-01-17 14:22:49 +02:00
coderaiser
0ccd109a50 chore: cloudcmd: actions: lint ☘️ 2026-01-16 22:25:24 +00:00
coderaiser
6b0bd2e1de
refactor: client: move out inner functions 2026-01-16 23:24:31 +01:00
coderiaser
c23a6a12c8 chore: cloudcmd: v19.1.6 2026-01-16 23:56:12 +02:00
coderiaser
a523ef65f5 fix: tests 2026-01-16 23:55:32 +02:00
coderaiser
0971ac4e94 chore: cloudcmd: actions: lint ☘️ 2026-01-16 21:49:12 +00:00
coderiaser
64654e8d5c feature: common: cloudfunc: migrate to ESM 2026-01-16 23:48:19 +02:00
coderaiser
a063353a27 chore: cloudcmd: actions: lint ☘️ 2026-01-16 21:21:49 +00:00
coderiaser
add31607f9 feature: common: cloudfunc: get rid of bas64 2026-01-16 23:20:54 +02:00
coderiaser
e36de00ce8 feature: modulas: migrate to ESM 2026-01-16 23:20:54 +02:00
coderaiser
2c1210bbb1 chore: cloudcmd: actions: lint ☘️ 2026-01-16 17:14:25 +00:00
coderiaser
85ebf21122 chore: cloudcmd: v19.1.5 2026-01-16 19:13:27 +02:00
coderiaser
450f14614d feature: client: improve testability 2026-01-16 19:12:44 +02:00
coderaiser
f75bf4a401 chore: cloudcmd: actions: lint ☘️ 2026-01-16 16:28:05 +00:00
coderiaser
d979e94927 feature: server: env: migrate to ESM 2026-01-16 18:27:01 +02:00
coderiaser
8de9bd0847 chore: webpack: migrate to ESM 2026-01-16 14:19:35 +02:00
coderiaser
e178321be9 chore: cloudcmd: v19.1.4 2026-01-15 22:14:35 +02:00
coderiaser
4b84d20bb0 chore: cloudcmd 2026-01-15 22:14:01 +02:00
coderiaser
6e778a35ba feature: client: sort: migrate to ESM 2026-01-15 18:03:09 +02:00
coderiaser
e27ef51d43 feature: client: sort: migrate to ESM 2026-01-15 18:02:54 +02:00
coderiaser
917f585137 feature: client: load-module: migrate to ESM 2026-01-15 17:55:17 +02:00
coderiaser
9950cacad9 feature: client: get-json-from-file-table: migrate to ESM 2026-01-15 17:53:45 +02:00
coderiaser
457e23f31d chore: cloudcmd: v19.1.3 2026-01-15 16:33:27 +02:00
coderiaser
cfa0b5e382 test: cloudcmd: client: key 2026-01-15 16:32:28 +02:00
coderiaser
f903c5c9c5 feature: cloudcmd: multi-rename v3.0.0 2026-01-15 16:22:47 +02:00
coderiaser
08dd5ac183 chore: cloudcmd: v19.1.2 2026-01-14 14:38:46 +02:00
coderiaser
9e2c5ac635 fix: client: edit-names: group rename not renaming (#453) 2026-01-14 14:37:29 +02:00
coderiaser
6856207d0d feature: server: env -> env.parse 2026-01-14 13:20:37 +02:00
coderiaser
f0dcbe946f fix: client: key: config 2026-01-14 13:18:53 +02:00
coderiaser
008279df57 chore: rm eslintrc 2026-01-13 16:03:49 +02:00
coderiaser
dc99417c27 feature: client: key: get rid of mock-require 2026-01-13 15:19:32 +02:00
coderiaser
12751646fe test: ployfill: get rid of mock-require 2026-01-13 13:47:14 +02:00
coderaiser
8234201a39 chore: cloudcmd: actions: lint ☘️ 2026-01-13 11:37:25 +00:00
coderiaser
4bb7d704b4 feature: client: modules: view: get rid of mock-require 2026-01-13 13:36:35 +02:00
coderiaser
feb5aad36b test: client: sw: register: get rid of mock-require 2026-01-13 13:28:31 +02:00
coderiaser
c231fca334 test: client: dom: operations: rename-current: get rid of mock-require 2026-01-12 21:48:18 +02:00
coderiaser
14452d05b6 test: client: dom: io: get rid of mock-require 2026-01-12 21:40:54 +02:00
coderiaser
5c1ad5f8ff chore: cloudcmd: v19.1.1 2026-01-12 13:33:21 +02:00
coderiaser
5b4bb90d61 test: client: dom: goTiDirectory: get rid of mock-require 2026-01-12 13:32:48 +02:00
coderiaser
5cc6f79d6a feature: cloudcmd: @cloudcmd/stub v5.0.0 2026-01-12 13:15:36 +02:00
coderiaser
024bc41345 feature: cloudcmd: fullstore v4.0.0 2026-01-12 13:15:36 +02:00
coderiaser
fb115c675e test: common: util: get rid of mock-require 2026-01-12 13:10:05 +02:00
coderiaser
53f6f9e76f feature: cloudcmd: globals v17.0.0 2026-01-04 22:43:24 +02:00
coderiaser
6d21c539d4 feature: cloudcmd: madrun v12.1.0 2026-01-04 22:43:21 +02:00
coderiaser
253389ea7b feature: cloudcmd: supertape v12.0.0 2026-01-04 22:43:17 +02:00
coderiaser
cdf11f7483 chore: cloudcmd: v19.1.0 2025-12-31 14:14:29 +02:00
coderiaser
0ff16314d7 feature: cloudcmd: redlint v5.0.0 2025-12-31 14:13:33 +02:00
coderiaser
cc889bda4f chore: lint 2025-12-31 14:13:10 +02:00
coderiaser
43edba8cb8 feature: cloudcmd: try-to-catch v4.0.0 2025-12-31 13:44:04 +02:00
coderiaser
06f3b78256 feature: cloudcmd: try-catch v4.0.4 2025-12-31 13:44:00 +02:00
coderiaser
dfcd655780 feature: deno config: add 2025-12-24 16:47:48 +02:00
coderiaser
ab20a462db feature: server: bun support (oven-sh/bun#25674) 2025-12-24 15:53:38 +02:00
coderiaser
2ec57132ed chore: cloudcmd: v19.0.17 2025-12-24 14:42:43 +02:00
coderiaser
0222d177fc feature: cloudcmd: gritty v9.0.0 2025-12-24 14:25:32 +02:00
coderiaser
db0e0aef73 chore: cloudcmd: v19.0.16 2025-12-05 19:32:16 +02:00
coderiaser
14ec19e80a feature: cloudcmd: find-up v8.0.0 2025-12-05 19:30:34 +02:00
coderiaser
e6a00979ff feature: cloudcmd: eslint-plugin-putout v29.0.2 2025-12-05 19:29:52 +02:00
coderiaser
5b5352c7d9 feature: cloudcmd: putout v41.0.0 2025-12-05 19:29:47 +02:00
coderiaser
78ddbd8a39 chore: cloudcmd: v19.0.15 2025-11-28 13:07:28 +02:00
coderiaser
0067653109 feature: cloudcmd: aleman v1.16.5 2025-11-28 13:06:31 +02:00
coderiaser
5a2ac765d4 chore: cloudcmd: v19.0.14 2025-11-27 20:17:40 +02:00
coderiaser
3ceb9a8c59 feature: cloudcmd: open v11.0.0 2025-11-27 20:16:41 +02:00
coderiaser
2a525e9bbb fix: aleman: copy paste in text editor (#449) 2025-11-27 20:16:05 +02:00
coderaiser
a49e963dc9 chore: lint 2025-10-26 15:17:50 +02:00
coderiaser
1037a1a264 chore: cloudcmd: v19.0.13 2025-09-26 13:21:16 +03:00
coderiaser
8477f3e466 feature: cloudcmd: aleman v1.16.3 (#446) 2025-09-26 13:20:41 +03:00
coderiaser
e5d004c0af chore: cloudcmd: v19.0.12 2025-09-25 20:26:41 +03:00
coderiaser
836e908e11 feature: cloudcmd: aleman v1.16.2 2025-09-25 20:25:54 +03:00
coderiaser
9fd4a451ab chore: cloudcmd: v19.0.11 2025-09-24 18:08:25 +03:00
coderiaser
f4386a6f0f feature: cloudcmd: aleman v1.16.1 2025-09-24 18:07:18 +03:00
coderaiser
91f9c0a1aa
chore: putout: client: disable nodejs 2025-09-24 08:13:59 +02:00
coderiaser
babeb9fb85 chore: cloudcmd: v19.0.10 2025-09-23 21:16:46 +03:00
coderiaser
2e667ba693 feature: cloudcmd: aleman v1.15.0 2025-09-23 21:16:21 +03:00
coderiaser
07d18cfe96 chore: cloudcmd: v19.0.9 2025-09-22 17:58:22 +03:00
coderiaser
60c56164b0 feature: cloudcmd: aleman v1.14.4 2025-09-22 17:57:42 +03:00
coderiaser
d8453236c2 chore: cloudcmd: v19.0.8 2025-09-20 13:14:00 +03:00
coderiaser
efe81320e1 feature: cloudcmd: aleman v1.14.3 2025-09-20 13:13:42 +03:00
coderaiser
14e6754be3 chore: cloudcmd: actions: lint ☘️ 2025-09-18 16:56:23 +00:00
coderiaser
3033aed2e3 chore: cloudcmd: v19.0.7 2025-09-18 19:55:21 +03:00
coderiaser
5b972e2e4a feature: cloudcmd: aleman v1.14.0 2025-09-18 19:54:51 +03:00
coderaiser
543e08a837 chore: cloudcmd: actions: lint ☘️ 2025-09-17 20:17:02 +00:00
coderiaser
2a8109f090 chore: cloudcmd: v19.0.6 2025-09-17 23:16:00 +03:00
coderiaser
39a24028ac feature: cloudcmd: aleman v1.13.0 2025-09-17 23:15:17 +03:00
coderiaser
3f3c644500 chore: cloudcmd: v19.0.5 2025-09-16 17:13:04 +03:00
coderiaser
38dd510158 feature: cloudcmd: aleman v1.12.4 2025-09-16 17:12:17 +03:00
coderiaser
64df81bc45 fix: cloudcmd: client: listeners: f9: stopPropagation 2025-09-16 17:11:32 +03:00
coderiaser
8366b3bbe2 chore: cloudcmd: v19.0.4 2025-09-15 22:11:21 +03:00
coderiaser
66db798c35 feature: cloudcmd: aleman v1.12.3 2025-09-15 22:10:56 +03:00
coderiaser
56ed1cd535 chore: cloudcmd: v19.0.3 2025-09-15 17:49:10 +03:00
coderiaser
c5aed16f63 feature: cloudcmd: aleman v1.12.2 2025-09-15 17:48:40 +03:00
coderiaser
1537fa73fc chore: cloudcmd: v19.0.2 2025-09-14 22:22:41 +03:00
coderiaser
511347d3ef feature: cloudcmd: aleman v1.11.0 2025-09-14 22:22:04 +03:00
coderiaser
c963ffefee chore: cloudcmd: v19.0.1 2025-09-14 22:10:54 +03:00
coderiaser
fc6304a1c6 fix: tmpl: config: aleman, supermenu 2025-09-14 22:10:30 +03:00
coderiaser
a05ecdb406 feature: cloudcmd: aleman v1.10.0 2025-09-14 22:07:48 +03:00
coderiaser
9e4d66df4d docs: help: menu: typos 2025-09-14 19:46:31 +03:00
coderiaser
3f7e17721e chore: cloudcmd: v19.0.0 2025-09-14 19:40:40 +03:00
coderiaser
50b19dcc44 feature: cloudcmd: menu: default: supermenu -> aleman 2025-09-14 19:38:46 +03:00
coderiaser
7fb130cdbd chore: actions: v24 2025-09-14 19:38:18 +03:00
coderiaser
5970f10a84 feature: cloudcmd: drop support of node < 22 2025-09-14 19:37:41 +03:00
coderiaser
84a51a932c chore: cloudcmd: v18.8.11 2025-09-14 19:12:26 +03:00
coderiaser
b0360d8ef4 feature: cloudcmd: aleman v1.9.1 2025-09-14 19:11:45 +03:00
coderiaser
00a20129de feature: cloudcmd: html: importsmap: add 2025-09-14 19:11:04 +03:00
coderiaser
5e657e9bd1 chore: cloudcmd: v18.8.10 2025-09-14 18:20:57 +03:00
coderiaser
2559343eef docs: help: menu: hot keys 2025-09-14 18:09:41 +03:00
coderiaser
ddf9e45567 feature: cloudcmd: aleman v1.9.0 2025-09-14 18:09:15 +03:00
coderiaser
84bfef562d chore: cloudcmd: v18.8.9 2025-09-14 12:13:49 +03:00
coderiaser
2e7bdb8aa0 feature: cloudcmd: aleman v1.8.0 2025-09-14 12:13:00 +03:00
coderiaser
a2f66951a8 chore: cloudcmd: v18.8.8 2025-09-13 16:56:52 +03:00
coderiaser
03631d95f7 feature: cloudcmd: aleman v1.7.0 2025-09-13 16:55:59 +03:00
coderiaser
1fc57fdb91 chore: cloudcmd: v18.8.7 2025-09-12 16:43:18 +03:00
coderiaser
09408af5dd feature: cloudcmd: aleman v1.6.1 2025-09-12 16:42:35 +03:00
coderiaser
4eb47f9d42 chore: cloudcmd: v18.8.6 2025-09-12 16:15:36 +03:00
coderiaser
4fcaf2885d feature: cloudcmd: aleman v1.6.0 2025-09-12 16:14:20 +03:00
coderiaser
eaea183536 chore: cloudcmd: v18.8.5 2025-09-10 19:56:40 +03:00
coderiaser
c69ec16ef0 feature: cloudcmd: aleman v1.5.0 2025-09-10 19:56:04 +03:00
coderiaser
3cf13a92c0 chore: cloudcmd: v18.8.4 2025-09-09 18:53:23 +03:00
coderiaser
08d13c6d6b feature: cloudcmd: aleman v1.4.9 2025-09-09 18:52:27 +03:00
coderiaser
df79dda4d0 chore: cloudcmd: v18.8.3 2025-09-04 23:40:33 +03:00
coderiaser
b4792fc3f2 feature: cloudcmd: aleman v1.4.0 2025-09-04 23:40:07 +03:00
coderiaser
c164766895 chore: cloudcmd: v18.8.2 2025-09-04 20:21:08 +03:00
coderiaser
0584f4f431 feature: cloudcmd: aleman v1.3.0 2025-09-04 20:21:08 +03:00
coderaiser
67e4b8f0e4 chore: cloudcmd: actions: lint ☘️ 2025-09-03 22:33:25 +00:00
coderiaser
876bbfded5 chore: cloudcmd: v18.8.1 2025-09-04 01:32:26 +03:00
coderiaser
15b71c1485 feature: cloudcmd: aleman v1.2.5 2025-09-04 01:31:41 +03:00
coderiaser
d252fe5fcb feature: robots.txt: add 2025-09-03 11:55:13 +03:00
coderaiser
25119ac6ea chore: cloudcmd: actions: lint ☘️ 2025-09-01 21:45:36 +00:00
coderiaser
fc20b9a4e1 chore: cloudcmd: v18.8.0 2025-09-02 00:44:38 +03:00
coderaiser
faa2f9c765 chore: cloudcmd: actions: lint ☘️ 2025-09-01 21:44:29 +00:00
coderiaser
08b5c6b2b5 feature: client: menu: aleman: add 2025-09-02 00:33:25 +03:00
coderiaser
83a1e527e5 chore: cloudcmd: v18.7.4 2025-08-30 15:10:44 +03:00
coderiaser
a6d18ddb88 fix: select file: name -> line 2025-08-30 15:09:23 +03:00
coderiaser
7db31363ff refactor: clients: dom: events: simplify 2025-08-17 15:13:51 +03:00
coderiaser
2077468a85 fix: client: listeners: click: avoid select on conext menu 2025-08-17 15:13:24 +03:00
coderaiser
e3fcb7f24e
chore: client: view: rm comment 2025-08-13 21:23:53 +02:00
coderiaser
64e4aba414 fix: client: menu: before show: unsetBind 2025-08-10 23:50:05 +03:00
coderaiser
899266a62a
docs: HELP: demo 2025-08-01 17:45:23 +03:00
coderiaser
d568a4d896 chore: cloudcmd: v18.7.3 2025-07-26 22:53:15 +03:00
coderiaser
884c83eb60 fix: client: polyfill (#442) 2025-07-26 22:52:50 +03:00
coderaiser
b34ee44bb1
docs: bug_report: update 2025-07-26 14:12:44 +03:00
coderaiser
c3251bf5e1
docs: README: demo 2025-07-26 14:03:54 +03:00
coderiaser
54bbd4e34d chore: cloudcmd: v18.7.2 2025-07-24 19:17:31 +03:00
coderiaser
3d13b9c5f8 feature: docker: npm -> bun 2025-07-24 19:17:31 +03:00
coderiaser
61107329fc feature: cloudcmd: html-looks-like: remove 2025-07-24 16:50:42 +03:00
coderiaser
f0bc286aea chore: cloudcmd: v18.7.1 2025-07-06 20:25:56 +03:00
coderiaser
8eb724b58c fix: docker: install: -f 2025-07-06 20:25:56 +03:00
coderiaser
784bb2ebdd fix: build: sw 2025-07-06 20:19:40 +03:00
coderiaser
8f52376d3f feature: cloudcmd: revert: optimize-css-assets-webpack-plugin -> css-minimizer-webpack-plugin: broken spinner
This reverts commit 8200874912.
2025-07-06 20:02:22 +03:00
coderiaser
ed31dd2409 chore: devDependencies: serviceworker-webpack-plugin 2025-07-06 20:02:08 +03:00
coderiaser
8200874912 feature: cloudcmd: optimize-css-assets-webpack-plugin -> css-minimizer-webpack-plugin 2025-07-06 15:11:18 +03:00
coderiaser
4b8568b264 chore: cloudcmd: v18.7.0 2025-07-05 20:43:51 +03:00
coderiaser
de41aec77d test: server 2025-07-05 20:42:36 +03:00
coderaiser
74f5eb0cae chore: cloudcmd: actions: lint ☘️ 2025-07-05 17:40:30 +00:00
coderiaser
1d983e9950 test: cloudcmd: server 2025-07-05 20:39:25 +03:00
coderiaser
f9b3844153 chore: lint 2025-07-05 20:35:16 +03:00
coderiaser
546d061068 feature: cloudcmd: process v0.11.10 2025-07-05 20:34:57 +03:00
coderiaser
b1e231a5bb fix: client: menu: close: ESC 2025-07-05 20:32:21 +03:00
coderiaser
121b114e89 feature: cloudcmd: path-browserify v1.0.1 2025-07-05 20:29:57 +03:00
coderiaser
8592cedce0 feature: cloudcmd: mini-css-extract-plugin v2.9.2 2025-07-05 20:27:55 +03:00
coderiaser
a53ab67b7d feature: cloudcmd: webpack-cli v6.0.1 2025-07-05 20:26:27 +03:00
coderiaser
de2cedd99d feature: cloudcmd: webpack v5.99.9 2025-07-05 20:26:27 +03:00
coderiaser
da545ea418 feature: cloudcmd: style-loader v4.0.0 2025-07-05 20:26:26 +03:00
coderiaser
db6e8334b8 feature: cloudcmd: optimize-css-assets-webpack-plugin v6.0.1 2025-07-05 20:26:26 +03:00
coderiaser
2f0c1a616c feature: cloudcmd: html-webpack-plugin v5.6.3 2025-07-05 20:26:25 +03:00
coderiaser
e100dcf627 feature: cloudcmd: extract-text-webpack-plugin v3.0.2 2025-07-05 20:26:25 +03:00
coderiaser
76c4000890 feature: cloudcmd: css-loader v7.1.2 2025-07-05 20:26:24 +03:00
coderiaser
fb5e5a320f feature: cloudcmd: clean-css-loader v4.2.1 2025-07-05 20:26:24 +03:00
coderiaser
8551cd54a6 feature: cloudcmd: babel-loader v10.0.0 2025-07-05 20:26:23 +03:00
coderiaser
c93803190b feature: webpack 5 2025-07-05 20:25:41 +03:00
coderiaser
ddc94adbf1 feature: cloudcmd: eslint-plugin-putout v28.0.0 2025-07-04 14:23:05 +03:00
coderiaser
ef42330848 chore: cloudcmd: v18.6.1 2025-07-04 13:41:56 +03:00
coderiaser
a54caa1d7c chore: lint 2025-07-04 13:41:22 +03:00
coderiaser
9eafa189a8 feature: cloudcmd: http-auth v4.2.1 2025-07-04 13:41:22 +03:00
coderaiser
baaf47e62f chore: cloudcmd: actions: lint ☘️ 2025-07-04 10:34:29 +00:00
coderiaser
0d61a972fb chore: lint 2025-07-04 13:32:47 +03:00
coderiaser
af77eeed8d chore: lint 2025-07-04 12:54:30 +03:00
coderiaser
e99d084728 feature: cloudcmd: montag v1.2.1 2025-07-03 23:21:44 +03:00
coderiaser
b77e9c91d4 feature: cloudcmd: pipe-io v4.0.1 2025-07-03 23:21:05 +03:00
coderiaser
4b476a6dff feature: cloudcmd: globals v16.3.0 2025-07-03 23:20:57 +03:00
coderiaser
2057065dbf feature: cloudcmd: @putout/eslint-flat v3.0.1 2025-07-03 23:20:53 +03:00
coderiaser
a87e5ceaf6 chore: cloudcmd: v18.6.0 2025-07-02 21:18:44 +03:00
coderiaser
2eb3dc6692 feature: cloudcmd: @iocmd/wait v2.1.0 2025-07-02 21:17:48 +03:00
coderiaser
5f0391fc44 chore: lint 2025-07-02 21:15:33 +03:00
coderiaser
1679b788c2 feature: cloudcmd: webpackbar v7.0.0 2025-07-02 19:57:34 +03:00
coderiaser
9a4cf388d3 feature: cloudcmd: eslint-plugin-putout v27.2.1 2025-07-02 18:42:15 +03:00
coderiaser
f4b0f92f05 feature: cloudcmd: express v5.1.0 2025-07-02 18:40:04 +03:00
coderiaser
4ab4be124b feature: thread-it: get rid (#438) 2025-07-02 18:34:59 +03:00
coderiaser
99ad0c217d feature: cloudcmd: rm @putout/babel 2025-07-02 17:17:12 +03:00
coderiaser
8ccec23d6c feature: cloudcmd: help: require -> import 2025-07-02 17:16:39 +03:00
coderiaser
2a97ac66fb feature: cloudcmd: yargs-parser v22.0.0 2025-07-02 17:14:47 +03:00
coderiaser
b26c8bba37 feature: cloudcmd: thread-it v3.0.0 2025-04-24 17:19:31 +03:00
coderiaser
4b78d70b5c chore: cloudcmd: v18.5.2 2025-04-10 17:24:15 +03:00
coderiaser
8450bfa611 feature: cloudcmd: putout v40.0.3 2025-04-10 17:23:39 +03:00
coderaiser
84c6935ae4 chore: cloudcmd: actions: lint ☘️ 2025-03-29 17:32:46 +00:00
coderiaser
9f52ed795d chore: package: postcss 2025-03-29 19:30:48 +02:00
coderiaser
f7379c0562 chore: lint 2025-03-29 19:30:48 +02:00
coderiaser
51f51b54de feature: cloudcmd: @putout/plugin-cloudcmd v4.0.0 2025-03-29 19:30:48 +02:00
coderiaser
e87418adde chore: lint 2025-03-29 19:30:48 +02:00
coderiaser
08ab63d704 feature: cloudcmd: supertape v11.0.4 2025-03-29 19:30:48 +02:00
coderiaser
e7cc9b92ae feature: cloudcmd: redlint v4.1.1 2025-03-29 19:30:48 +02:00
coderiaser
368c9bb814 feature: cloudcmd: eslint v9.23.0 2025-03-29 19:30:48 +02:00
coderiaser
43fd5ed660 feature: cloudcmd: madrun v11.0.0 2025-03-29 19:30:48 +02:00
coderiaser
f774d5b290 feature: cloudcmd: eslint-plugin-putout v26.1.0 2025-03-29 19:30:48 +02:00
coderiaser
b0a7fc1648 feature: cloudcmd: putout v39.3.0 2025-03-29 19:30:48 +02:00
coderaiser
f1193955fb chore: cloudcmd: actions: lint ☘️ 2025-02-04 17:04:57 +00:00
coderaiser
2d21001e55
Update config.yml 2025-02-04 19:03:58 +02:00
coderiaser
99118e65a6 chore: lint 2025-02-04 19:02:58 +02:00
coderaiser
8ff0ee6a1a
Update issue_template.md 2025-02-04 18:14:03 +02:00
coderaiser
ac9a27b333 chore: cloudcmd: actions: lint ☘️ 2025-02-04 16:13:38 +00:00
coderaiser
84719365b1
Update issue templates 2025-02-04 18:12:28 +02:00
coderaiser
34fb175d63 chore: cloudcmd: actions: lint ☘️ 2025-02-04 15:45:56 +00:00
coderaiser
dbd8c6ab7c
Update issue_template.md 2025-02-04 17:45:01 +02:00
coderaiser
716765104c
Update config.yml 2025-02-04 17:44:25 +02:00
coderaiser
51a4cee688
Update issue_template.md 2025-02-04 17:43:54 +02:00
coderaiser
b2f113bf0a
Update issue_template.md 2025-02-04 17:43:12 +02:00
coderaiser
2e02ba46e8 chore: cloudcmd: actions: lint ☘️ 2025-02-04 15:41:51 +00:00
coderaiser
38666cbb8b
Update issue_template.md 2025-02-04 17:40:55 +02:00
coderaiser
53acae1a63 chore: cloudcmd: actions: lint ☘️ 2025-02-04 15:39:36 +00:00
coderaiser
e2591061af
chore: issue_template: updated 2025-02-04 17:38:33 +02:00
coderaiser
3d52ce80f2
Update FUNDING.yml 2025-02-04 16:06:08 +02:00
coderaiser
a598ef3ed0 chore: cloudcmd: actions: lint ☘️ 2025-02-04 14:05:53 +00:00
coderaiser
e71550d557
chrome: issue_template: improve 2025-02-04 16:04:53 +02:00
coderaiser
56d621b1ff chore: cloudcmd: actions: lint ☘️ 2025-02-04 13:59:35 +00:00
coderaiser
a38b3a79ce
chrome: issue_template.md 2025-02-04 15:58:38 +02:00
coderaiser
7ae60605bb chore: cloudcmd: actions: lint ☘️ 2025-02-04 13:57:41 +00:00
coderaiser
7492b4bfc7
chore: issue_template: configure 2025-02-04 15:56:47 +02:00
coderaiser
3adfec81c2
chore: github: config: forbid blank issues 2025-02-04 15:54:49 +02:00
coderaiser
c68a3a7f07
chore: github: issue_template.md 2025-02-04 15:54:10 +02:00
coderaiser
4eaeccba1c
chore: github: issue template 2025-02-04 15:53:17 +02:00
coderiaser
2dea0a3b2d chore: cloudcmd: v18.5.1 2025-02-03 14:51:27 +02:00
coderiaser
467f0a79c3 feature: cloudcmd: webpack-merge v6.0.1 2025-02-03 14:50:27 +02:00
coderiaser
353a1fb6c1 feature: cloudcmd: putout v38.0.5 2025-02-03 14:49:47 +02:00
coderiaser
8e98b778bd feature: cloudcmd: eslint-plugin-putout v24.0.0 2025-02-03 14:49:43 +02:00
coderiaser
3ad6720f5f chore: lint 2025-01-24 00:48:44 +02:00
coderiaser
b0be119474 chore: actions: yarn -> bun 2025-01-21 00:52:48 +02:00
coderiaser
161d4f952b chore: lint 2025-01-21 00:45:53 +02:00
coderiaser
301252906f chore: cloudcmd: v18.5.0 2025-01-20 18:48:58 +02:00
coderiaser
ddd1722f39 chore: lint 2025-01-20 18:48:26 +02:00
coderiaser
907afc6e4a chore: test: lint 2025-01-20 18:19:13 +02:00
coderiaser
d8da7922d9 chore: client: lint 2025-01-20 18:18:52 +02:00
coderiaser
2fc503f71f feature: cloudcmd: @putout/babel v3.0.0 2025-01-20 18:05:22 +02:00
coderiaser
ad8e55d824 fix: client: themes -> columns (#434) 2025-01-20 18:04:29 +02:00
coderiaser
5d22722010 chore: lint 2025-01-03 13:44:00 +02:00
coderaiser
13cb970a55
docs: license: 2025 2025-01-01 10:03:15 +01:00
coderiaser
94ebbf84cb chore: cloudcmd: v18.4.1 2024-12-13 14:51:41 +02:00
coderiaser
100e940e4b feature: cloudcmd: putout v37.0.1 2024-12-13 14:51:21 +02:00
coderiaser
a6ce6d3953 chore: cloudcmd: v18.4.0 2024-11-22 12:19:36 +02:00
coderiaser
da0e99ad8c refactor: server: auth: destructure 2024-11-22 12:19:14 +02:00
Hagay Goshen
dff0267239
fix: cloudcmd: make manifest.json accessible when authentication is enabled (#428)
* Make manifest.json accessable when authentication is enabled

* add test for manifest.json availability when authentication is enabled
2024-11-22 11:14:34 +01:00
coderiaser
03e3ba6ad8 chore: cloudcmd: v18.3.0 2024-11-14 12:26:52 +02:00
coderaiser
4c73315b5c chore: cloudcmd: actions: lint ☘️ 2024-11-13 21:13:27 +00:00
Hagay Goshen
71dc8dd6be
feature: cloudcmd: Add support for Progressive Web App (#426)
* Add support for Progressive Web App

* Add resized favicon 256x256
2024-11-13 22:11:13 +01:00
coderaiser
f2ef160ca8 chore: cloudcmd: actions: lint ☘️ 2024-11-06 15:01:08 +00:00
coderiaser
be4f6271f4 chore: cloudcmd: v18.2.1 2024-11-06 16:59:23 +02:00
coderiaser
a733d81441 feature: css: --is-mobile: add 2024-11-06 16:59:03 +02:00
coderaiser
06cf0eebce chore: cloudcmd: actions: lint ☘️ 2024-11-01 19:00:41 +00:00
Hagay Goshen
59024eea98
refactor: css: query: move width consts to css variables (#424)
* Move const panel width from code to css variables

* Update css/query.css

* Update css/query.css

---------

Co-authored-by: coderaiser <mnemonic.enemy@gmail.com>
2024-11-01 19:58:39 +01:00
coderaiser
62af673117 chore: cloudcmd: actions: lint ☘️ 2024-10-30 20:36:45 +00:00
Hagay Goshen
f22120dc38
feature: cloudcmd: prevent unselect being fired on panel click when in mobile view (#422)
* Prevent unselect being fired on panel click when in mobile view

* Prevent unselect being fired on panel click when in mobile view after review

---------

Co-authored-by: hagaygo <hagay@WORKROOM>
2024-10-30 21:34:39 +01:00
Marc
1a0af863a2
feature: docker: add image source label to dockerfiles (#421)
see #419
2024-10-28 09:56:38 +01:00
Marc
0446a74d28
feature: docker: add image source label to dockerfiles (#419)
To get changelogs shown with Renovate a docker container has to add the source label described in the OCI Image Format Specification.

For reference: https://github.com/renovatebot/renovate/blob/main/lib/modules/datasource/docker/readme.md
2024-10-27 12:09:02 +02:00
coderiaser
5562b47d84 chore: cloudcmd: v18.2.0 2024-10-27 12:06:21 +02:00
coderiaser
7309ceff37 chore: lint 2024-10-27 12:05:51 +02:00
coderiaser
ac9abbd385 feature: cloudcmd: eslint-plugin-putout v23.1.0 2024-10-27 12:05:51 +02:00
Hagay Goshen
4bc5a7834e feature: cloudcmd: add context menu option to toggle file selection (#420) 2024-10-27 12:05:42 +02:00
coderaiser
0f5fe2d4fe chore: cloudcmd: actions: lint ☘️ 2024-08-17 10:19:32 +00:00
coderiaser
f5015e75e8 chore: cloudcmd: v18.1.0 2024-08-17 13:17:49 +03:00
coderiaser
ddf4542b75 feature: cloudcmd: add ability to hide dot files (#307) 2024-08-17 13:17:01 +03:00
coderiaser
9dbd812b3d chore: cloudcmd: v18.0.2 2024-08-16 17:18:24 +03:00
coderiaser
3d03efbe63 feature: css: show links in one small screens 2024-08-16 17:17:44 +03:00
coderiaser
a522c49c1f chore: cloudcmd: v18.0.1 2024-08-16 14:54:54 +03:00
coderiaser
9ec94dee15 feature: cloudcmd: chalk v5.3.0 2024-08-16 14:54:05 +03:00
coderiaser
62ed8411ae fix: bin: validateArgs is not a function (#147) 2024-08-16 14:53:14 +03:00
coderaiser
75a75365cf chore: cloudcmd: actions: lint ☘️ 2024-08-16 09:17:21 +00:00
coderiaser
ac3f20c5d1 chore: cloudcmd: v18.0.0 2024-08-16 12:15:44 +03:00
coderiaser
9109511e95 chore: lint 2024-08-16 12:15:19 +03:00
coderiaser
b63d6fccde chore: lint 2024-08-16 12:13:29 +03:00
coderiaser
88df2f0518 chore: actions: node v22 2024-08-16 12:08:02 +03:00
coderiaser
5e93bcca1e feature: cloudcmd: rimraf v6.0.1 2024-08-16 12:06:47 +03:00
coderiaser
74d1eb7e28 feature: drop support of node < 20 2024-08-16 12:05:52 +03:00
coderiaser
544e30dbf8 chore: cloudcmd: v17.4.4 2024-08-16 11:48:11 +03:00
coderiaser
282b3d5cca feature: cloudcmd: @putout/cli-validate-args v2.0.0 2024-08-16 11:47:20 +03:00
coderiaser
a6aa9bbc44 fix: revert rimraf v6.0.1
This reverts commit 6e8348b843.
2024-08-16 11:46:51 +03:00
coderiaser
3140b7f998 chore: cloudcmd: v17.4.3 2024-07-27 15:54:10 +03:00
coderiaser
d70362fbf1 chore: npmvrc: add 2024-07-19 18:15:40 +03:00
coderiaser
6e8348b843 feature: cloudcmd: rimraf v6.0.1 2024-07-19 17:34:34 +03:00
coderiaser
61ca7f36a4 feature: cloudcmd: putout v36.0.2 2024-07-19 17:34:06 +03:00
coderiaser
b5e9ae5ad9 chore: cloudcmd: v17.4.2 2024-07-03 16:09:41 +03:00
coderiaser
ba2d0b36af feature: cloudcmd: just-snake-case v3.2.0 2024-07-03 15:36:21 +03:00
coderiaser
4cc47e30de feature: cloudcmd: just-capitalize v3.2.0 2024-07-03 15:36:21 +03:00
coderiaser
d8451e56aa feature: cloudcmd: just-pascal-case v3.2.0 2024-07-03 15:36:21 +03:00
coderiaser
6abf327d0d feature: cloudcmd: package-json v10.0.0 2024-07-03 15:36:21 +03:00
coderaiser
79fb49479e chore: cloudcmd: actions: lint ☘️ 2024-07-03 12:01:49 +00:00
zilion2000
2ae6ad34fc feature: docker: Dockerimage update Debian12 (#414) 2024-07-03 14:58:40 +03:00
coderiaser
14d9618a64 chore: lint 2024-06-14 22:33:14 +03:00
coderiaser
05ef0ae452 feature: cloudcmd: c8 v10.1.2 2024-06-14 22:32:50 +03:00
coderiaser
883eee96a2 chore: lint 2024-06-14 22:26:27 +03:00
coderaiser
9c8c0533a4
Update CONTRIBUTING.md 2024-06-13 09:11:36 +03:00
coderaiser
14d46c007b chore: cloudcmd: actions: lint ☘️ 2024-05-06 11:52:34 +00:00
coderaiser
25872c3b11 chore: cloudcmd: v17.4.1 2024-05-06 14:49:44 +03:00
coderaiser
610ba8827f chore: lint 2024-05-06 14:48:47 +03:00
coderaiser
154b4bd627 feature: cloudcmd: @cloudcmd/move-files v8.0.0 2024-05-06 12:21:01 +03:00
coderaiser
c409a2db82 feature: cloudcmd: copymitter v9.0.0 2024-05-06 12:20:55 +03:00
coderaiser
52df5bfcf4 chore: cloudcmd: v17.4.0 2024-04-17 00:05:05 +03:00
coderaiser
2428853613 chore: lint 2024-04-17 00:04:12 +03:00
coderaiser
6fb2102099 fix: server: route: path traversal 2024-04-17 00:04:12 +03:00
Devin Buhl
37ab7068d9
feature: publish container image to GHCR (#409)
* feat: publish container image to GHCR

Fixes: #408

* add permissions to workflow
2024-04-16 07:47:40 +03:00
coderaiser
d061aa82ea chore: cloudcmd: v17.3.3 2024-04-03 09:37:44 +03:00
coderaiser
b088b84eb1 feature: cloudcmd: deepword v10.0.0 2024-04-03 09:36:32 +03:00
coderaiser
fceddc20f8 chore: cloudcmd: v17.3.2 2024-03-29 16:01:48 +02:00
coderaiser
f7a6a36696 fix: typo: Wraped -> Wrapped 2024-03-29 16:01:13 +02:00
coderaiser
91de9b3d27 chore: cloudcmd: v17.3.1 2024-03-29 15:03:21 +02:00
coderaiser
2d37f6c6e9 docs: env: theme 2024-03-29 15:01:55 +02:00
coderaiser
d75818297b feature: distribute: convert to ESM 2024-03-29 15:01:55 +02:00
coderaiser
faa2cb3f90 docs: help 2024-03-29 14:28:55 +02:00
coderaiser
29914c09f1 docs: Special Thanks: link 2024-03-29 13:30:50 +02:00
coderaiser
7f5e5c6825 chore: cloudcmd: v17.3.0 2024-03-29 13:28:57 +02:00
coderaiser
6bc4f3ec26 feature: dark theme: add (#332) 2024-03-29 13:27:38 +02:00
coderaiser
35622082a9 feature: route: convert to ESM 2024-03-29 11:24:25 +02:00
coderaiser
65cf97a7be chore: cloudcmd: v17.2.1 2024-03-29 10:33:09 +02:00
coderaiser
cf9ed97c3e chore: lint 2024-03-29 10:32:22 +02:00
coderaiser
cc134464a4 fix: client: vim: space 2024-03-29 10:32:22 +02:00
coderaiser
e3f89e8845 feature: dark mode: add 2024-03-29 10:32:22 +02:00
coderaiser
c45b23fe55 feature: css: vars: add 2024-03-29 10:32:22 +02:00
coderaiser
b1f74c0057 feature: css: add vars 2024-03-29 10:32:22 +02:00
coderaiser
bf2e8f9a7d chore: cloudcmd: actions: lint ☘️ 2024-03-22 21:03:18 +00:00
coderaiser
f5f34a85ea chore: server: cloudcmd: sort imports 2024-03-22 23:01:42 +02:00
coderaiser
04e5d5b7e0 chore: cloudcmd: v17.2.0 2024-03-22 23:00:58 +02:00
coderaiser
3e565109b3 feature: convert to ESM 2024-03-22 23:00:24 +02:00
coderaiser
770a0812aa feature: pack: get rid of mock-require 2024-03-22 22:56:05 +02:00
coderaiser
25d8faea63 feature: rest: get rid of mock-require 2024-03-22 22:56:05 +02:00
coderaiser
98e0011e8e chore: cloudcmd: actions: lint ☘️ 2024-03-22 14:59:40 +00:00
coderaiser
401a669aca feature: user-menu: get rid of mock-require 2024-03-22 16:57:38 +02:00
coderaiser
4e32241d83 feature: terminal: get rid of mock-require 2024-03-22 10:52:25 +02:00
coderaiser
cfa3d69538 chore: cloudcmd: v17.1.6 2024-03-21 09:58:31 +02:00
coderaiser
e01ee4575b feature: server: route: get rid of mock-require 2024-03-21 09:57:49 +02:00
coderaiser
a03185e14e chore: cloudcmd: actions: lint ☘️ 2024-03-21 07:02:53 +00:00
coderaiser
564de89333 chore: server: cloudcmd: lint 2024-03-21 09:00:56 +02:00
coderaiser
0655988ed7 chore: lint 2024-03-21 08:50:25 +02:00
coderaiser
c7f9090126 feature: root: get rid of mock-require 2024-03-21 08:49:14 +02:00
coderaiser
1bef0d4381 chore: lint 2024-03-21 08:46:31 +02:00
coderaiser
fcce26d4e1 feature: cloudfunc: get rid of mock-require 2024-03-21 08:46:31 +02:00
coderaiser
6e99c7e3c5 chore: cloudcmd: actions: lint ☘️ 2024-03-20 11:28:14 +00:00
coderaiser
3f83f6f09a chore: cloudcmd: v17.1.5 2024-03-20 13:26:21 +02:00
coderaiser
bf90bf2295 feature: server: validate: get rid of mock-require 2024-03-20 13:25:44 +02:00
coderaiser
043ba29b32 chore: cloudcmd: v17.1.4 2024-03-20 13:13:28 +02:00
coderaiser
95c36b0a37 chore: lint 2024-03-20 13:12:45 +02:00
coderaiser
98d3a4cc56 feature: server: columns: get rid of mock-require 2024-03-20 12:37:27 +02:00
coderaiser
46c8accd84 chore: cloudcmd: actions: lint ☘️ 2024-03-18 16:32:23 +00:00
coderaiser
57d2f8e93d chore: cloudcmd: v17.1.3 2024-03-18 18:30:17 +02:00
coderaiser
e080a54022 feature: server: cloudcmd: get rid of mock-require 2024-03-18 18:29:13 +02:00
coderaiser
eff34215ee chore: lint 2024-03-18 16:46:11 +02:00
coderaiser
4503237ac4 chore: cloudcmd: v17.1.2 2024-03-18 15:04:56 +02:00
coderaiser
bf614e1dc9 feature: cloudcmd: redlint v3.13.1 2024-03-18 15:04:24 +02:00
coderaiser
857c97006d fix: docker: alpine 2024-03-18 15:04:24 +02:00
coderaiser
b2478a8145
docs: README: rm arm v7 2024-03-18 07:51:49 +02:00
coderaiser
3c5ca3dca4 chore: cloudcmd: v17.1.1 2024-03-16 18:45:42 +02:00
coderaiser
a92a5a0d34 feature: cloudcmd: restbox v4.0.0 2024-03-16 17:58:18 +02:00
coderaiser
c51ba1d8f6 feature: docker: drop arm v7 2024-03-16 17:22:05 +02:00
coderaiser
a57833aaf8 chore: cloudcmd: v17.1.0 2024-03-16 15:27:16 +02:00
coderaiser
0bcff30faa chore: lint 2024-03-16 15:26:23 +02:00
coderaiser
10d6d2e247 feature: cloudcmd: @types/node-fetch v2.6.11 2024-03-16 15:26:23 +02:00
coderaiser
2047cb7ad8 feature: cloudcmd: @cloudcmd/dropbox v5.0.1 2024-03-16 15:26:23 +02:00
coderaiser
6b793cca04 feature: cloudcmd: docker: alpine 2024-03-16 15:26:23 +02:00
coderaiser
5fa9fcc57c feature: cloudcmd: pullout v5.0.0 2024-03-16 15:26:23 +02:00
coderaiser
bc617c17ef feature: cloudcmd: serve-once v3.0.1 2024-03-16 15:26:23 +02:00
coderaiser
0ecd1853d0
Update ISSUE_TEMPLATE.md 2024-03-16 11:58:19 +02:00
coderaiser
dc2d3146a1
Update ISSUE_TEMPLATE.md 2024-03-15 12:29:43 +02:00
coderaiser
266aff4ffb chore: cloudcmd: v17.0.7 2024-03-12 17:40:33 +02:00
coderaiser
a407e0c3fa chore: lint 2024-03-12 17:39:58 +02:00
coderaiser
97627dc2ff feature: cloudcmd: auto-globals v4.0.0 2024-03-12 17:24:51 +02:00
coderaiser
683c865eda feature: cloudcmd: gritty v8.0.0 2024-03-12 17:08:35 +02:00
coderaiser
b795a1f5dd chore: cloudcmd: v17.0.6 2024-03-11 22:32:40 +02:00
coderaiser
d928c0b83d fix: cloudcmd: ocker: revert alpine (#406)
This reverts commit 33201dade2.
2024-03-11 22:31:13 +02:00
coderaiser
1d3567f3a3 chore: cloudcmd: v17.0.5 2024-03-11 16:07:05 +02:00
coderaiser
33201dade2 fix: cloudcmd: docker: alpine (#406) 2024-03-11 16:02:35 +02:00
coderaiser
5ced36b0d6 chore: cloudcmd: v17.0.4 2024-02-02 18:22:45 +02:00
coderaiser
7ce954503c feature: cloudcmd: deepword v9.0.0 2024-02-02 18:20:57 +02:00
coderaiser
1c73e525ff feature: cloudcmd: edward v15.0.0 2024-02-02 12:13:32 +02:00
coderaiser
da967f080c feature: cloudcmd: dword v15.0.0 2024-02-02 12:09:28 +02:00
coderaiser
f0a6109a7d feature: cloudcmd: restafary v12.0.0 2024-02-02 11:53:14 +02:00
coderaiser
e84c7dcbab chore: cloudcmd: v17.0.3 2024-02-01 14:43:33 +02:00
coderaiser
796ee627e7 chore: lint 2024-02-01 14:23:33 +02:00
coderaiser
aca4119fb1 feature: cloudcmd: inly v5.0.0 2024-02-01 14:14:37 +02:00
coderaiser
ed95dec964 chore: cloudcmd: v17.0.2 2024-02-01 12:44:28 +02:00
coderaiser
5324a41abd feature: cloudcmd: supertape v10.0.0 2024-02-01 12:43:49 +02:00
coderaiser
d453a1b291 feature: cloudcmd: onezip v6.0.1 2024-02-01 12:43:49 +02:00
coderaiser
71b915bed3 feature: cloudcmd: @cloudcmd/fileop v8.0.0 2024-02-01 12:43:49 +02:00
coderaiser
1ac4191c66
docs: LICENSE: 2024 2024-01-30 09:31:19 +02:00
coderaiser
4f25500351 chore: cloudcmd: actions: lint ☘️ 2024-01-25 10:02:20 +00:00
coderaiser
a0c398264c chore: cloudcmd: v17.0.1 2024-01-25 12:00:28 +02:00
coderaiser
d79a577611 feature: cloudcmd: putout v35.0.0 2024-01-25 11:56:36 +02:00
coderaiser
8d92aa91e9 feature: cloudcmd: package-json v9.0.0 2024-01-25 11:54:47 +02:00
coderaiser
5ab5576e68 feature: cloudcmd: open v10.0.3 2024-01-25 11:54:30 +02:00
coderaiser
c5cfe68c8a feature: cloudcmd: c8 v9.1.0 2024-01-25 11:54:06 +02:00
coderaiser
2fc241a9fa chore: lint 2023-12-12 23:12:50 +02:00
coderaiser
81a6b18165 chore: cloudcmd: actions: lint ☘️ 2023-12-12 18:00:45 +00:00
coderaiser
084c84a277 chore: lint 2023-12-12 19:58:39 +02:00
coderaiser
ba9915a1df chore: lint 2023-12-12 19:57:07 +02:00
coderaiser
60b682b62a
chore: query: lint 2023-12-12 19:09:02 +02:00
coderaiser
a3d310a3e4 chore: cloudcmd: v17.0.0 2023-12-12 16:11:42 +02:00
coderaiser
bbaad041be chore: lint (stylelint/stylelint#7401) 2023-12-12 16:09:30 +02:00
coderaiser
b22ad537e2 chore: proposal -> transform 2023-12-12 16:09:30 +02:00
coderaiser
154e3b078e feature: cloudcmd: find-up v7.0.0 2023-12-12 16:09:30 +02:00
coderaiser
a02d288df9 feature: cloudcmd: @putout/babel v2.0.0 2023-12-12 16:09:30 +02:00
coderaiser
3314f9b94f feature: drop support of node < 18 2023-12-12 16:09:30 +02:00
coderaiser
a6afa205a9 feature: cloudcmd: supertape v9.0.0 2023-12-12 16:05:18 +02:00
coderaiser
e600c05d18 feature: cloudcmd: eslint-plugin-putout v22.0.0 2023-12-12 16:05:18 +02:00
coderaiser
99c009542a feature: cloudcmd: madrun v10.0.0 2023-12-12 16:05:18 +02:00
coderaiser
afdf74342a feature: cloudcmd: putout v34.0.7 2023-12-12 16:05:18 +02:00
coderaiser
552d95013b
chore: server: route: newlines 2023-12-08 15:43:04 +02:00
coderaiser
eb606bb608 chore: cloudcmd: v16.18.0 2023-12-08 13:20:42 +02:00
coderaiser
f4a3add818 test: coverage 2023-12-08 13:19:24 +02:00
coderaiser
4462f26925 feature: cloudcmd: markdown-it v14.0.0 2023-12-08 13:19:24 +02:00
coderaiser
0cc76bd4f7 feature: cloudcmd: philip v3.0.0: decrease bundle size 2023-12-08 13:19:24 +02:00
coderaiser
949a09340f chore: cloudcmd: actions: lint ☘️ 2023-12-06 19:36:45 +00:00
coderaiser
5d6bed3d66 chore: lint 2023-12-06 21:33:38 +02:00
coderaiser
656ebd87e0 feature: client: move out set-current 2023-12-04 23:08:33 +02:00
coderaiser
72df4288ef chore: webpack: apply webpack5 externals 2023-12-04 20:46:37 +02:00
coderaiser
48dba5fa7e chore: cloudcmd: actions: lint ☘️ 2023-12-04 18:43:50 +00:00
coderaiser
8a85f99eb2 chore: cloudcmd: v16.17.9 2023-12-04 20:40:53 +02:00
coderaiser
2c7782c06a chore: putout: use npm instead of bun 2023-12-04 20:40:04 +02:00
coderaiser
fb2d081402 fix: github actions 2023-12-04 20:35:49 +02:00
coderaiser
f8f6377551 chore: cloudcmd: v16.17.8 2023-12-04 20:18:39 +02:00
coderaiser
b04cbcd8c5 chore: lint 2023-12-04 20:13:53 +02:00
coderaiser
094df666f4 test: cloudcmd: update 2023-12-04 20:04:39 +02:00
coderaiser
75bf8a1275 chore: lint 2023-12-03 23:07:50 +02:00
coderaiser
93aa7278b7 feature: yaspeller: rm 2023-12-03 20:23:20 +02:00
coderaiser
af9c916e08 feature: cloudcmd: eslint-plugin-putout v21.0.2 2023-12-03 20:21:52 +02:00
coderaiser
01dccbfd07 feature: cloudcmd: putout v33.13.3 2023-12-03 20:21:49 +02:00
coderaiser
ea86bd6a2f chore: cloudcmd: v16.17.7 2023-10-12 11:00:00 +03:00
coderaiser
7857fb720d feature: package: rendy v4.1.3 2023-10-12 10:37:10 +03:00
coderaiser
900d4307bb chore: cloudcmd: v16.17.6 2023-09-22 11:12:29 +03:00
coderaiser
570cb8c094 feature: package: nodemon v3.0.1 2023-09-22 11:10:11 +03:00
coderaiser
828d10a8ee feature: package: rimraf v5.0.1 2023-09-22 11:02:16 +03:00
coderaiser
88908b3528 feature: package: eslint-plugin-putout v20.0.0 2023-09-22 11:02:01 +03:00
coderaiser
93f4a07ec6 feature: package: putout v32.0.6 2023-09-22 11:01:50 +03:00
coderaiser
a5f93523c1 feature: github actions: use bun 2023-09-12 11:30:09 +03:00
coderaiser
99980c7f1d chore: cloudcmd: v16.17.5 2023-09-06 14:17:51 +03:00
coderaiser
3b0941bc87 feature: actions: docker/login-action@v2 (#396) 2023-09-06 14:17:00 +03:00
coderaiser
0dca7b6419 chore: cloudcmd: v16.17.4 2023-09-05 23:38:51 +03:00
coderaiser
35dedfdf95 feature: github: update docker actions (#396) 2023-09-05 23:37:40 +03:00
coderaiser
c37979801a chore: cloudcmd: v16.17.3 2023-09-05 12:42:26 +03:00
coderaiser
3c93b29b86 feature: github: docker/build-push-action v4 (#396) 2023-09-05 12:41:33 +03:00
coderaiser
7e2587459f chore: cloudcmd: v16.17.2 2023-09-04 17:19:08 +03:00
coderaiser
621f52da2f fix: docker 2023-09-04 17:18:19 +03:00
coderaiser
8ab7e468a8 chore: cloudcmd: v16.17.1 2023-09-04 16:12:18 +03:00
coderaiser
eb3f037a02 fix: docker: bun -> node 2023-09-04 16:11:00 +03:00
coderaiser
55032ebd7d chore: cloudcmd: actions: lint ☘️ 2023-09-04 13:04:01 +00:00
coderaiser
ee5a0fb4b2 fix: disable bun for CI 2023-09-04 16:01:26 +03:00
coderaiser
34258c6f27 chore: cloudcmd: actions: lint ☘️ 2023-09-04 12:59:45 +00:00
coderaiser
47893e3b83 chore: cloudcmd: v16.17.0 2023-09-04 15:56:39 +03:00
coderaiser
4c7dd74abd chore: test: add timeout 2023-09-04 15:55:41 +03:00
coderaiser
224e539708 feature: docker: use bun instead of node 2023-09-04 15:52:23 +03:00
coderaiser
ea929465a8 chore: lint 2023-09-04 15:43:38 +03:00
coderaiser
4b9267f375 feature: package: edward v14.2.0 2023-09-04 15:38:32 +03:00
coderaiser
809ef1cf60 chore: package: v16.16.3 2023-08-10 13:32:55 +03:00
coderaiser
354c137de6 feature: package: console-io v14.0.0 2023-08-10 13:31:41 +03:00
coderaiser
574b425c02 chore: package: v16.16.2 2023-08-09 19:04:52 +03:00
coderaiser
e353fff711 feature: package: redzip v3.0.0 2023-08-09 17:50:41 +03:00
coderaiser
4b74b8f286
Update README.md 2023-08-09 10:04:09 +03:00
coderaiser
339560fab2 chore: cloudcmd: actions: lint ☘️ 2023-08-07 15:09:19 +00:00
coderaiser
ba7133f2e6
Update README.md 2023-08-07 18:06:56 +03:00
coderaiser
e8ca8cedc5
Update README.md 2023-08-07 18:04:42 +03:00
coderaiser
f9aa9911d5 chore: package: v16.16.1 2023-08-07 17:56:00 +03:00
coderaiser
fcd06769b2 chore: lint 2023-08-07 17:54:48 +03:00
coderaiser
24dcf78be8 chore: lint 2023-08-07 17:40:25 +03:00
coderaiser
13279299c4 chore: lint 2023-08-07 17:38:39 +03:00
coderaiser
20a00481d6 chore: server: lint 2023-08-07 17:36:06 +03:00
coderaiser
d55b6fb393 chore: lint 2023-08-07 17:35:20 +03:00
coderaiser
d63169ccc0 feature: package: @putout/babel v1.0.5 2023-08-07 15:10:16 +03:00
coderaiser
bb9276bec5 feature: package: eslint-plugin-putout v19.0.3 2023-08-07 15:08:07 +03:00
coderaiser
9aed5f751e feature: package: putout v31.0.3 2023-08-07 15:08:00 +03:00
coderaiser
10f564a315 chore: package: v16.16.0 2023-07-09 12:53:33 +03:00
coderaiser
c4f56c59d0 feature: package: memfs v4.2.0 2023-07-09 12:51:58 +03:00
coderaiser
6b9d43e9ab chore: cloudcmd: actions: lint ☘️ 2023-07-09 09:51:29 +00:00
coderaiser
7aacf203a0 chore: madrun: node v20 2023-07-09 12:46:56 +03:00
coderaiser
4717e035ee chore: lint 2023-07-09 12:43:24 +03:00
coderaiser
f1279666b5 test: update fixtures 2023-07-08 20:40:12 +03:00
coderaiser
0e663e1dc5 feature: package: @putout/plugin-cloudcmd v3.1.1 2023-07-08 13:56:07 +03:00
coderaiser
ff9265b78b feature: package: c8 v8.0.0 2023-07-08 13:56:00 +03:00
coderaiser
22aa337ac0 feature: package: eslint-plugin-n v16.0.1 2023-07-08 13:55:56 +03:00
coderaiser
13350b5517 feature: package: eslint-plugin-putout v18.0.0 2023-07-08 13:55:33 +03:00
coderaiser
ce196abf1e feature: package: putout v30.1.1 2023-07-08 13:55:28 +03:00
coderaiser
3e18f6be28
Update CONTRIBUTING.md 2023-05-17 12:00:04 +03:00
coderaiser
deedca28a9 chore: package: v16.15.0 2023-05-17 11:52:51 +03:00
coderaiser
a1bf40bd83 feature: package: open v9.1.0 2023-05-17 11:50:19 +03:00
coderaiser
d011b13d30 chore: cloudcmd: actions: lint ☘️ 2023-05-17 11:50:19 +03:00
cintolas
ef6088531a feature: client: self signed certs on Chrome (#393) 2023-05-17 11:50:11 +03:00
coderaiser
895d19a153
Update PULL_REQUEST_TEMPLATE.md 2023-05-15 11:47:03 +03:00
coderaiser
67c0b81067
Update PULL_REQUEST_TEMPLATE.md 2023-05-15 11:46:49 +03:00
coderaiser
235dc1b8db test: server: coverage 2023-05-12 17:34:22 +03:00
coderaiser
d0e5fc0cbd chore: lint 2023-05-12 17:32:57 +03:00
coderaiser
bd7dfd0c28 chore: package: v16.14.1 2023-03-21 21:11:27 +02:00
coderaiser
a6c400ae1c chore: lint 2023-03-21 21:10:17 +02:00
coderaiser
b336a4726a feature: package: eslint-plugin-putout v17.1.0 2023-03-21 21:04:20 +02:00
coderaiser
019e15b8bd feature: package: @cloudcmd/fileop v7.0.0 2023-03-21 21:00:23 +02:00
coderaiser
643543002e feature: package: copymitter v8.0.1 2023-03-21 20:48:15 +02:00
coderaiser
2743788002 feature: package: @cloudcmd/move-files v7.0.0 2023-03-21 20:48:07 +02:00
coderaiser
49280722d1 chore: package: v16.14.0 2023-03-08 12:43:34 +02:00
coderaiser
6b22b2412b feature: package: putout v29.0.3 2023-03-08 12:39:50 +02:00
coderaiser
14b05d1b14 chore: package: v16.13.1 2023-01-30 20:34:27 +02:00
coderaiser
88da092fdb chore: lint 2023-01-30 20:33:36 +02:00
coderaiser
8e25a02568 chore: cloudcmd: lint 2023-01-30 16:06:32 +02:00
coderaiser
bdddc5752d feature: client: add DIR_DIST 2023-01-30 13:20:05 +02:00
coderaiser
d7e43d8a18 refactor: client: DIR_CLIENT_MODULES -> DIR_MODULES 2023-01-30 13:20:05 +02:00
coderaiser
656000e7e0 feature: client: DIRCLIENT -> DIR_CLIENT 2023-01-30 13:20:05 +02:00
coderaiser
ce49d9d6ad chore: cloudcmd: actions: lint ☘️ 2023-01-29 19:54:38 +00:00
coderaiser
ed9af6d7a6 chore: package: v16.13.0 2023-01-29 18:05:00 +02:00
coderaiser
fd1eb1dc27 feature: client: key: vim: open editor with 'e' 2023-01-29 18:03:58 +02:00
coderaiser
a27e4ecf61 feature: client: vim: add ability to show terminal with 'tt' 2023-01-29 17:57:15 +02:00
coderaiser
203117d2b9 chore: package: v16.12.0 2023-01-29 13:49:43 +02:00
coderaiser
4a38c64cd6 feature: client: vim: add ability to create directory with 'md', and create file with 'mf' 2023-01-29 13:48:15 +02:00
coderaiser
31e1eeea50 chore: package: v16.11.0 2023-01-22 20:29:52 +02:00
coderaiser
cf41d7d1dd feature: user-menu: add support of mov 2023-01-22 20:29:11 +02:00
coderaiser
2bfd32a1bd chore: package: v16.10.0 2023-01-19 22:50:12 +02:00
coderaiser
5b5889dcf7 feature: client: user-menu: navigate: add support of \D + [JK] to speed up vim navigation 2023-01-19 22:50:04 +02:00
coderaiser
40f17bb670 chore: madrun: envelop 2023-01-19 22:50:04 +02:00
coderaiser
871b05d4d5 fix: lint: eslint-plugin-node -> eslint-plugin-n 2023-01-19 22:50:04 +02:00
coderaiser
2f6b07c469 chore: package: v16.9.1 2023-01-18 11:11:59 +02:00
coderaiser
fecfa9fa58 fix: static: user-menu: convert flac to mp3 2023-01-18 11:11:28 +02:00
coderaiser
09de19b46e test: static: user-menu: coverage 2023-01-17 21:53:47 +02:00
coderaiser
924f8696d0 chore: css: rm quotes 2023-01-17 21:53:13 +02:00
coderaiser
3135314686 chore: package: v16.9.0 2023-01-17 18:19:52 +02:00
coderaiser
c83a5222ad chore: rm unused eslint-plugin-node 2023-01-17 18:16:20 +02:00
coderaiser
7fe5a998c4 feature: package: scroll-into-view-if-needed v3.0.4 2023-01-17 18:12:39 +02:00
coderaiser
519aec8afe feature: package: tar-stream v3.0.0 2023-01-17 18:11:26 +02:00
coderaiser
8126b51831 feature: static: user-menu: add recipes from Cookbook 2023-01-17 18:10:09 +02:00
coderaiser
1309d825e4 chore: package: v16.8.0 2023-01-16 16:55:05 +02:00
coderaiser
e28215ddf3 feature: package: @putout/plugin-cloudcmd v2.0.0: CloudCmd.loadDir() -> CloudCmd.changeDir()' 2023-01-16 16:52:37 +02:00
coderaiser
026c292bae chore: package: v16.7.0 2023-01-15 19:21:59 +02:00
coderaiser
c2c7c74ae8 chore: lint 2023-01-15 19:17:41 +02:00
coderaiser
52f47a2434 chore: madrun: test: rm --check-duplicates 2023-01-15 19:06:44 +02:00
coderaiser
f5df731491 feature: package: @cloudcmd/modal v3.0.0: add ability to not set cursor when close the modal 2023-01-15 19:06:15 +02:00
coderaiser
d7ab5b912d feature: package: auto-globals v3.0.0 2023-01-15 18:37:05 +02:00
coderaiser
6f737e83da feature: package: rimraf v4.0.5 2023-01-15 18:36:52 +02:00
coderaiser
18f0f55a64 feature: user-menu: rm border 2023-01-15 13:53:39 +02:00
coderaiser
4e52bb1371 chore: package: v16.6.1 2022-10-20 19:53:32 +03:00
coderaiser
e9ab141e30 chore: rm useless coveralls 2022-10-20 19:51:01 +03:00
coderaiser
ebadb8deeb feature: package: package-json v8.1.0 2022-10-20 19:51:01 +03:00
coderaiser
63ecdcbd86 feature: package: supertape v8.1.0 2022-10-20 19:51:01 +03:00
coderaiser
10045f6ffb feature: package: putout v28.0.0 2022-10-20 19:51:01 +03:00
coderaiser
bec0d44429
Update nodejs.yml 2022-10-10 12:45:51 +03:00
coderaiser
0a345a34a1 chore: package: v16.6.0 2022-10-09 20:31:20 +03:00
coderaiser
42ddee49a7 chore: lint 2022-10-09 20:29:11 +03:00
coderaiser
0c8bf9f3d0 feature: package: @cloudcmd/fileop v6.0.0 2022-10-09 20:26:15 +03:00
coderaiser
b70aa0cb9c feature: package: @cloudcmd/move-files v6.0.0 2022-10-09 20:24:07 +03:00
coderaiser
3aa52812ab feature: package: copymitter v7.0.0 2022-10-09 20:09:53 +03:00
coderaiser
35a46d0d07 chore: package: v16.5.0 2022-08-06 18:16:15 +03:00
coderaiser
5c84d1616c chore(cloudcmd) actions: lint ☘️ 2022-08-06 15:07:59 +00:00
coderaiser
24fbeec62d feature: client: add Command Line 2022-08-06 18:05:14 +03:00
coderaiser
a5229fae06 feature: package: add funding 2022-08-01 15:09:54 +03:00
coderaiser
1195e570e4 feature(package) gritty v7.0.0 2022-07-23 10:40:22 +03:00
coderaiser
c101b039ea chore(package) v16.4.1 2022-07-20 20:17:53 +03:00
coderaiser
444f659076 chore(cloudcmd) lint 2022-07-20 20:16:35 +03:00
coderaiser
de15ed6766 feature(package) eslint-plugin-n v15.2.4 2022-07-20 20:16:35 +03:00
coderaiser
d0a8e2daac feature(package) putout v27.0.1 2022-07-20 20:16:34 +03:00
coderaiser
f085c0eb06 feature(package) eslint-plugin-putout v16.0.0 2022-07-20 20:16:34 +03:00
coderaiser
cb86e78f8b
docs(help) Environment Variables: add " " 2022-07-12 14:07:46 +03:00
coderaiser
10bd261a3f chore(cloudcmd) actions: lint ☘️ 2022-07-11 17:48:36 +00:00
coderaiser
c337e4507d
Update HELP.md 2022-07-11 20:21:30 +03:00
coderaiser
ba2d02bd3d
Update README.md 2022-07-11 20:21:12 +03:00
coderaiser
9f644f82b1
Update README.md 2022-07-11 20:20:52 +03:00
coderaiser
b6797907a8 chore(package) v16.4.0 2022-07-11 20:17:06 +03:00
coderaiser
33827fea5e feature(cloudcmd) env: add ability to pass 0 and 1 2022-07-11 13:05:57 +03:00
coderaiser
45d44dc74d
docs(help) add demo 2022-07-10 23:16:11 +03:00
coderaiser
50c3f04dcd docs(help) add Support 2022-07-02 13:53:15 +03:00
coderaiser
404142cc40 chore(package) v16.3.1 2022-07-02 13:50:21 +03:00
coderaiser
ab6b93ddca fix(client) cloudcmd: rm window.Emitify 2022-07-02 13:50:21 +03:00
coderaiser
2c9b23db4e
Update README.md 2022-07-01 15:33:46 +03:00
coderaiser
8cc9b0ec66
docs(readme) add Support 2022-07-01 15:31:12 +03:00
coderaiser
ddee470eba chore(package) v16.3.0 2022-07-01 14:29:23 +03:00
coderaiser
bf3a9acc86 chore(cloudcmd) actions: lint ☘️ 2022-07-01 10:56:25 +00:00
coderaiser
391269b1ed feature(cloudcmd) terminal-run: return -1, when not load 2022-07-01 13:49:47 +03:00
coderaiser
e44e4fa47d chore(package) v16.2.0 2022-06-17 16:49:56 +03:00
coderaiser
7fdac390de feature(package) markdown-it v13.0.1 2022-06-17 16:45:46 +03:00
coderaiser
9f4a23e0f1 feature(cloudcmd) server: convert to ESM 2022-06-17 15:34:35 +03:00
coderaiser
42e8e255c0 chore(cloudcmd) actions: lint ☘️ 2022-06-17 15:34:35 +03:00
coderaiser
c345d8b7ef chore(actions) add ☘️ 2022-06-17 15:34:35 +03:00
coderaiser
975d4eb8a0 chore(actions) add typos 2022-06-14 14:39:06 +03:00
coderaiser
ef10ebe97c chore(cloudcmd) lint 2022-06-14 14:38:11 +03:00
coderaiser
81e76857da feature(package) thread-it v2.0.0 2022-06-12 00:02:00 +03:00
coderaiser
b12e0690cd
docs(license) 2022 2022-06-03 19:07:50 +03:00
coderaiser
3d4ba373a6 chore(cloudcmd) lint using actions 2022-06-02 09:55:39 +00:00
coderaiser
ed0c2ad45a
Update FUNDING.yml 2022-06-02 12:55:16 +03:00
coderaiser
4e406d758f
Update FUNDING.yml 2022-06-02 12:54:34 +03:00
coderaiser
18adf0852d
Create FUNDING.yml 2022-06-02 12:52:55 +03:00
coderaiser
42248bc0f4 chore(cloudcmd) lint 2022-05-12 22:29:01 +03:00
coderaiser
b3f3510b2d chore(package) v16.1.1 2022-05-12 14:45:22 +03:00
coderaiser
bbf0c04f55 feature(package) edward v14.0.0 2022-05-12 14:44:11 +03:00
coderaiser
6af8f19bb6 chore(cloudcmd) lint 2022-05-11 14:21:25 +03:00
coderaiser
95ede62e81 feature(package) putout v26.0.1 2022-05-11 11:44:58 +03:00
coderaiser
0c28633bbd chore(package) v16.1.0 2022-04-23 01:35:30 +03:00
coderaiser
42c8fd7bfe feature(cloudcmd) improve support of NBSP 2022-04-23 01:34:07 +03:00
coderaiser
e129ab6a79 chore(package) v16.0.1 2022-04-22 14:49:17 +03:00
coderaiser
6e4667aa85 chore(cloudcmd) lint 2022-04-22 14:26:04 +03:00
coderaiser
46a84c54ea feature(package) dword v14.0.0 2022-04-22 14:26:04 +03:00
coderaiser
c5e3134f37 feature(package) restafary v11.0.0 2022-04-22 14:26:04 +03:00
coderaiser
aa0c15f6b6 feature(package) @cloudcmd/stub v4.0.1 2022-04-22 14:26:04 +03:00
coderaiser
23fcc2b8f7 feature(package) win32 v7.0.0 2022-04-22 14:26:04 +03:00
coderaiser
f5f3048908 chore(cloudcmd) lint using actions 2022-03-06 17:48:21 +00:00
coderaiser
d8d9025286 chore(cloudcmd) lint 2022-03-06 19:45:19 +02:00
coderaiser
66fdb550a6 feature(package) eslint-plugin-putout v14.4.0 2022-03-06 19:45:19 +02:00
coderaiser
e59f3cfa71 chore(package) v16.0.0 2022-02-19 16:29:53 +02:00
coderaiser
44422a5206 feature(cloudcmd) drop support of node < 16 2022-02-19 15:38:47 +02:00
coderaiser
b67b7cf73d feature(package) supertape v7.1.0 2022-02-19 15:38:47 +02:00
coderaiser
3ba6d4ae53 chore(cloudcmd) lint 2022-02-19 15:38:37 +02:00
coderaiser
69c8eecaf1 feature(package) eslint-plugin-putout v13.11.0 2022-02-19 15:30:39 +02:00
coderaiser
b65b3ff940 feature(package) madrun v9.0.0 2022-02-19 15:30:00 +02:00
coderaiser
4f06e6398f feature(package) putout v25.0.1 2022-02-19 15:28:21 +02:00
coderaiser
62d39841b1 chore(package) v15.9.15 2022-01-20 20:54:29 +02:00
coderaiser
2cfc4908a2 chore(cloudcmd) lint using actions 2022-01-20 18:44:25 +00:00
coderaiser
177771df6a chore(cloudcmd) lint 2022-01-20 19:50:10 +02:00
coderaiser
23171f967e fix(css) icons (#368) 2022-01-20 19:49:20 +02:00
coderaiser
09f4090a4b chore(package) v15.9.14 2022-01-13 15:51:15 +02:00
coderaiser
f2db9bf2d5 feature(package) eslint-plugin-putout v13.0.1 2022-01-13 15:50:04 +02:00
coderaiser
0ff8470278 feature(package) putout v24.0.2 2022-01-13 15:49:57 +02:00
coderaiser
9b0ce7c7b7 fix(cloudcmd) client: edit-names in vim mode 2022-01-13 12:45:10 +02:00
coderaiser
e68b3232d9 chore(cloudcmd) lint using actions 2022-01-08 18:47:37 +00:00
Timo Knapp
c32ba39f43
chore(docker) ci: update GitHub action to use redrun (#366) 2022-01-08 20:44:51 +02:00
Timo Knapp
c7371d9c3a
fix(docker) images: make dockerfiles use node:lts-buster and node:lts-buster-slim for alpine (#363) 2022-01-06 15:23:34 +02:00
coderaiser
3269cff066 chore(cloudcmd) lint using actions 2022-01-05 14:08:35 +00:00
Timo Knapp
75b35139e4
fix(docker) images: make dockerfiles use node:lts-buster-slim as base image (#357) 2022-01-05 16:06:00 +02:00
coderaiser
838b2e29cf chore(package) v15.9.13 2021-12-23 12:11:01 +02:00
coderaiser
9adc0778a9 chore(cloudcmd) lint 2021-12-23 11:57:08 +02:00
coderaiser
130ce433f4 feature(package) putout v23.0.0 2021-12-23 11:53:54 +02:00
coderaiser
cac774d7ce chore(package) v15.9.12 2021-12-16 20:07:56 +02:00
coderaiser
7053e6be0b fix(client) loadDir: history enabled by default 2021-12-16 20:06:44 +02:00
coderaiser
2743f78cd3 chore(css) lint 2021-12-15 18:05:19 +02:00
coderaiser
49f4e5bec7 chore(docker) alpine: python -> python3 2021-12-15 17:54:49 +02:00
coderaiser
228744bec8 chore(common) lint 2021-12-15 17:18:23 +02:00
coderaiser
2654197681 chore(cloudcmd) base64: lint 2021-12-15 12:21:28 +02:00
coderaiser
205d641e75 chore(common) base64: is not defined 2021-12-14 16:05:40 +02:00
coderaiser
5accfeeaa7 chore(cloudcmd) lint 2021-12-14 14:57:40 +02:00
coderaiser
a024dcdb61 chore(cloudcmd) lint using actions 2021-12-09 12:21:33 +00:00
coderaiser
5b661140fc chore(package) v15.9.11 2021-12-09 14:19:04 +02:00
coderaiser
ed14250fe2 fix(client) load: Upload stuck for zero byte files (#359) 2021-12-09 14:10:24 +02:00
coderaiser
21e9736c81 chore(putout) declare-undefined-variables: add custom declaration of stopAll 2021-12-04 21:11:52 +02:00
coderaiser
8097d96c72 chore(package) v15.9.10 2021-12-04 01:35:55 +02:00
coderaiser
efb686c332 chore(cloudcmd) lint 2021-12-04 01:35:55 +02:00
coderaiser
bd5a8afdd5 fix(client) operation: move and copy not working (#358) 2021-12-04 01:03:46 +02:00
coderaiser
d15134b272 feature(package) eslint-plugin-putout v12.2.0 2021-12-04 00:38:50 +02:00
coderaiser
b9b4af0454 refactor(client) listeners: rm initF2 2021-11-22 20:16:03 +02:00
coderaiser
18eeec0165 chore(cloudcmd) lint using actions 2021-11-22 12:24:07 +00:00
coderaiser
b2a7a6770c
docs(help) rm heroku 2021-11-22 14:21:40 +02:00
coderaiser
c40d2bb096 chore(package) v15.9.9 2021-11-22 00:53:20 +02:00
coderaiser
c7242199e7 chore(cloudcmd) lint using actions 2021-11-21 22:49:42 +00:00
coderaiser
f1fcde75c3 chore(madrun) ERR_OSSL_EVP_UNSUPPORTED error on node v17 (https://stackoverflow.com/a/69394785) 2021-11-22 00:47:31 +02:00
coderaiser
0f17c11c04 chore(cloudcmd) lint 2021-11-20 22:20:10 +02:00
coderaiser
57390d541f feature(package) putout v22.0.2 2021-11-20 21:54:16 +02:00
coderaiser
e4cf91ac1d feature(package) yargs-parser v21.0.0 2021-11-20 21:54:06 +02:00
coderaiser
8fc0731900 chore(cloudcmd) lint 2021-11-04 14:45:15 +02:00
coderaiser
ae552ede60 feature(package) yaspeller v8.0.0 2021-11-04 14:41:43 +02:00
coderaiser
3dd9d6e454 feature(package) eslint-plugin-putout v11.1.0 2021-11-04 14:41:13 +02:00
coderaiser
7258013b88 feature(package) putout v21.1.2 2021-11-04 14:41:05 +02:00
coderaiser
3172759ca0 chore(cloudcmd) lint 2021-10-19 15:59:57 +03:00
coderaiser
85015881d0 feature(package) eslint v8.0.1 2021-10-19 15:56:50 +03:00
coderaiser
977d9d057f docs(readme) rm heroku 2021-10-06 15:20:39 +03:00
coderaiser
111eba8c31 chore(cloudcmd) lint 2021-09-30 17:22:59 +03:00
coderaiser
8f466b4c9a feature(package) eslint-plugin-putout v10.3.0 2021-09-30 17:07:20 +03:00
coderaiser
057ec42b25 feature(package) find-up v6.1.0 2021-09-30 17:07:10 +03:00
coderaiser
eab9df4490 feature(package) putout v20.5.1 2021-09-30 17:06:59 +03:00
coderaiser
b6549a6484 feature(package) supertape v6.9.1 2021-09-30 16:59:53 +03:00
coderaiser
883b4487e0 chore(cloudcmd) lint 2021-08-15 14:57:22 +03:00
coderaiser
699deb86c6 feature(package) eslint-plugin-putout v9.0.1 2021-08-15 14:57:04 +03:00
coderaiser
8fcfaec8a0 chore(package) v15.9.8 2021-08-09 17:36:16 +03:00
coderaiser
a5ea620ca8 chore(user-menu) lint 2021-08-09 17:35:27 +03:00
coderaiser
c798b42a64 fix(cloudcmd) args: snake case -> camelCase: yargs strip dashed 2021-08-09 17:31:44 +03:00
coderaiser
13f7fb2200 chore(package) v15.9.7 2021-06-27 16:38:03 +03:00
coderaiser
7ca9b8cece feature(package) package-json v7.0.0 2021-06-27 16:36:53 +03:00
coderaiser
c2e51f75a1 fix(config) rm broadcast: cannot change config 2021-06-27 16:36:37 +03:00
coderaiser
4d9878b574 fix(view) close modals using ESC
show: bindKeys: truthy-> not equal false (abc727b846)
2021-06-27 15:58:38 +03:00
coderaiser
abe512c655 feature(config) add more descriptive titles 2021-06-27 15:38:35 +03:00
coderaiser
b67526f09b
chore(actions) node: add versions matrix 2021-06-13 22:57:19 +03:00
coderaiser
e236e87171 chore(package) v15.9.6 2021-06-13 15:45:24 +03:00
coderaiser
26fad02507 feature(package) @cloudcmd/move-files v5.0.0 2021-06-13 15:27:00 +03:00
coderaiser
e73c327687
docs(help) add missing "boot" 2021-06-10 22:41:01 +03:00
coderaiser
f3e0337584 chore(package) v15.9.5 2021-06-08 14:15:52 +03:00
coderaiser
1736ec7be2 chore(cloudcmd) spell 2021-06-08 14:14:55 +03:00
coderaiser
fbc8ae25ad chore(cloudcmd) lint 2021-06-08 14:13:46 +03:00
coderaiser
f92152195c feature(package) eslint-plugin-putout v8.0.1 2021-06-08 12:08:09 +03:00
coderaiser
bbe790e551 feature(package) es6-promisify v7.0.0 2021-06-08 12:08:04 +03:00
coderaiser
954f2c047c feature(package) putout v18.0.1 2021-06-08 12:07:02 +03:00
IhatemyISP
baac531655
docs(help) added instructions to autostart cloudcmd on boot for FreeBSD systems (#348) 2021-06-04 11:45:08 +03:00
khevin014
262c72d44a docs(help) added instructions to autostart cloudcmd on boot for systems using systemd (#347) 2021-05-28 16:26:00 +03:00
coderaiser
5e63a524c1 docs(readme) example: io.listen -> new Server (#341) 2021-05-04 22:23:46 +03:00
coderaiser
5d93d5752c chore(cloudcmd) lint 2021-05-04 21:02:06 +03:00
coderaiser
241efe971b feature(package) putout v17.0.0 2021-05-04 20:50:48 +03:00
coderaiser
8c59333a02 fix(load) put: replace #: single -> multiple 2021-04-12 19:17:20 +03:00
coderaiser
9a724a4bba fix(server) user-menu: e.message -> errorFind.message 2021-04-12 18:46:58 +03:00
coderaiser
8c8ac3bab4 chore(package) v15.9.4 2021-04-05 19:12:18 +03:00
coderaiser
843c319b1e feature(package) socket.io-client v4.0.1 2021-04-05 19:07:47 +03:00
coderaiser
879bc2ff8c feature(package) open v8.0.5 2021-04-05 19:07:17 +03:00
coderaiser
3e303253d2 feature(package) putout v16.4.0 2021-04-05 19:07:07 +03:00
coderaiser
ad689ece31 chore(package) v15.9.3 2021-03-17 16:08:43 +02:00
coderaiser
1801689ef7 fix(cloudcmd) Docker latest-alpine (15.9.2) stopped with errors (#337) 2021-03-17 16:01:02 +02:00
coderaiser
e77d8a709a chore(package) v15.9.2 2021-03-16 18:02:52 +02:00
coderaiser
b090b498a8 test(route) coverage 2021-03-16 17:54:44 +02:00
coderaiser
b5618412c3 feature(package) open v8.0.2 2021-03-16 17:48:27 +02:00
coderaiser
bb3e07def3 feature(package) socket.io-client v4.0.0 2021-03-16 17:48:27 +02:00
coderaiser
a3f0f4ecae feature(package) socket.io v4.0.0 2021-03-16 17:45:59 +02:00
coderaiser
df60dd7ba0 fix(route) unable to navigate between folders (#333) 2021-03-16 17:44:54 +02:00
coderaiser
21e7ea7d4c test(cloudcmd) ok -> match 2021-03-09 18:41:52 +02:00
coderaiser
a091a382ca chore(cloudcmd) lint using actions 2021-03-09 15:52:07 +00:00
coderaiser
0edbffa093 chore(user-menu) lint 2021-03-09 17:42:01 +02:00
coderaiser
08cc5dbba4 chore(archive-link) update 2021-03-05 21:01:10 +02:00
coderaiser
edbebd983e chore(cloudcmd) lint using actions 2021-03-02 12:42:54 +00:00
coderaiser
90eae0e944 test(route) flop -> win32 2021-03-02 14:40:56 +02:00
coderaiser
3976056ee8 chore(package) v15.9.1 2021-03-01 23:17:42 +02:00
coderaiser
8f12c6c25f feature(cloudcmd) icons: add archive icon for small screens 2021-03-01 22:58:33 +02:00
coderaiser
c92815d78d feature(cloudcmd) add archive-link image 2021-03-01 22:44:37 +02:00
coderaiser
2fe6dcf166 chore(package) v15.9.0 2021-03-01 18:13:17 +02:00
coderaiser
33f2572979 test(route) ci 2021-03-01 18:13:17 +02:00
coderaiser
a71dca0e70 chore(route) set content length 2021-03-01 18:13:17 +02:00
coderaiser
cb37ab871b chore(madrun) spell 2021-03-01 17:42:21 +02:00
coderaiser
f391a3391f feature(cloudcmd) add archive icon 2021-03-01 17:38:37 +02:00
coderaiser
ce511812d5 feature(client) rm unused loadCurrentTime 2021-02-28 11:12:18 +02:00
coderaiser
89af33fb9d feature(package) win32 v6.0.0 2021-02-27 20:58:06 +02:00
coderaiser
fec91e7093 feature(package) redzip v2.0.0 2021-02-27 20:52:22 +02:00
coderaiser
a092a2fc9d chore(travis) rm 2021-02-27 16:11:58 +02:00
coderaiser
775850c004 chore(package) v15.8.1 2021-02-27 16:10:47 +02:00
coderaiser
1a5dc6228c chore(cloudcmd) lint using actions 2021-02-27 14:10:23 +00:00
coderaiser
6622d508af feature(package) restafary v9.7.0 (#330) 2021-02-27 16:06:56 +02:00
coderaiser
a6a1e80afb chore(package) v15.8.0 2021-02-23 14:31:19 +02:00
coderaiser
40f885e7c4 feature(cloudcmd) add ability to suggest option, when wrong provided 2021-02-23 14:29:42 +02:00
coderaiser
f0fd4031bb feature(package) supertape v5.0.0 2021-02-23 12:45:30 +02:00
coderaiser
0831723565 chore(cloudcmd) rm dead code 2021-02-22 00:18:07 +02:00
coderaiser
71a7e9dd93 chore(package) v15.7.1 2021-02-21 11:35:51 +02:00
coderaiser
07fe299ad6 fix(cloudcmd) prefix env has no effect (#328) 2021-02-21 11:25:42 +02:00
coderaiser
b18c738f5b chore(package) v15.7.0 2021-02-19 22:27:41 +02:00
coderaiser
bcc11bda74 chore(lint) add progress 2021-02-19 22:26:13 +02:00
coderaiser
a108bd82b5 feature(package) @cloudcmd/move-files v4.0.0 2021-02-19 22:12:30 +02:00
coderaiser
e3d373acf9 chore(madrun) nyc -> c8 2021-02-17 14:09:08 +02:00
coderaiser
2a5ebe300d chore(putout) ignore: html 2021-02-13 15:04:09 +02:00
coderaiser
04e54f2794 chore(cloudcmd) lint 2021-02-13 12:33:00 +02:00
coderaiser
2e75ca18f4 feature(package) putout v15.0.0 2021-02-11 14:00:08 +02:00
coderaiser
d8f0e92727 feature(package) copymitter v6.0.0 2021-02-10 12:22:35 +02:00
coderaiser
70c8ab537c chore(actions) nodejs: putout -> cloudcmd 2021-02-09 14:46:53 +02:00
coderaiser
f97677f384 chore(putout) lint using actions 2021-02-09 11:54:09 +00:00
coderaiser
bbb6d46c09 chore(package) coverage:report 2021-02-09 13:53:09 +02:00
coderaiser
0c7cc3c0a2 docs(help) add versions history 2021-02-09 13:50:20 +02:00
coderaiser
0128014f51 chore(gitignore) add .DS_Store 2021-02-09 13:39:54 +02:00
coderaiser
75361de125 refactor(release) promisify 2021-02-09 13:39:54 +02:00
coderaiser
98be1b01f1 docs(readme) add link to patreon 2021-02-09 13:32:42 +02:00
coderaiser
3ac0bf23e4 chore(cloudcmd-hq) add 2021-02-07 15:12:23 +02:00
coderaiser
983ccac4d1
docs(readme) Docker: add "\n" 2021-02-05 11:11:38 +02:00
coderaiser
47883b8751
docs(readme) Documentation 2021-02-04 21:55:46 +02:00
Frak
955b7f0c4c
docs(README) add documentation link 2021-02-04 21:55:01 +02:00
coderaiser
77bd89f8f7 chore(putout) lint using actions 2021-02-03 19:07:12 +00:00
coderaiser
135edafaee feature(package) @cloudcmd/olark v3.0.2 2021-02-03 21:04:30 +02:00
coderaiser
fce254f724 chore(github-actions) add ability to autofix lint 2021-02-03 14:07:32 +02:00
coderaiser
60607184d4 feature(client) view: unknown file type: method: GET -> HEAD: speed up 2021-02-03 13:53:41 +02:00
coderaiser
5e545c87b3 chore(package) v15.6.0 2021-02-03 13:22:38 +02:00
coderaiser
2b9705d9fc feature(client) view: add ability to detect file type when extension is missing (coderaiser/cloudcmd#287) 2021-02-03 13:20:33 +02:00
coderaiser
0d79531b69 chore(package) v15.5.2 2021-02-02 14:03:24 +02:00
coderaiser
b4f279d07c chore(cloudcmd) lint 2021-02-02 14:03:24 +02:00
coderaiser
3cd1d67e58 fix(client) view: isAudio (#322) 2021-02-02 13:43:12 +02:00
coderaiser
2fc6c6e1a1 docs(changelog) 314 -> 319 2021-01-31 12:48:35 +02:00
coderaiser
a63ce70d49 chore(package) v15.5.1 2021-01-31 12:46:47 +02:00
coderaiser
bc80069f18 fix(cloudcmd) cannot create a directory (#314) 2021-01-31 12:45:06 +02:00
coderaiser
996d99cbac docs(readme) require -> import 2021-01-30 11:41:50 +02:00
coderaiser
a39ea0d61c chore(package) v15.5.0 2021-01-30 11:26:12 +02:00
coderaiser
3b81abed36 feature(package) style-loader v2.0.0 2021-01-30 11:20:11 +02:00
coderaiser
1b5a6a3721 feature(cloudcmd) improve error handling when viewing or editing a file 2021-01-30 11:19:10 +02:00
coderaiser
b3b618b2ca feature(package) putout v14.0.0 2021-01-26 19:28:03 +02:00
coderaiser
7d1a35d8b2 feature(package) eslint-plugin-putout v7.0.0 2021-01-26 19:27:56 +02:00
coderaiser
dae05277d6 chore(package) v15.4.4 2021-01-26 17:36:56 +02:00
coderaiser
ac85786b62 feature(package) win32 v5.1.11 2021-01-26 17:34:37 +02:00
coderaiser
325706756c chore(putout) rm apply-optional-chaining: enabled by default 2021-01-26 17:34:37 +02:00
coderaiser
ee5cbb13b0 chore(package) v15.4.3 2021-01-25 20:56:57 +02:00
coderaiser
b0e63fd3fd feature(package) restbox v3.0.0 2021-01-25 20:45:48 +02:00
coderaiser
fd32f76bf0 feature(package) ponse v6.0.0 2021-01-25 19:55:29 +02:00
coderaiser
49f298bc46 feature(package) files-io v4.0.0 2021-01-25 19:47:53 +02:00
coderaiser
a3c18dcdb2 chore(package) v15.4.2 2021-01-21 20:22:10 +02:00
coderaiser
38d29a6b27 chore(cssnano) lint 2021-01-21 20:17:31 +02:00
coderaiser
e3cac1a892 feature(package) mellow v3.0.0 2021-01-21 16:48:08 +02:00
coderaiser
9b9070b69b feature(route) tokenize -> wraptile 2021-01-21 16:30:21 +02:00
coderaiser
84b5019dd0 chore(package) v15.4.1 2021-01-20 20:29:16 +02:00
coderaiser
ee81cd1533 feature(route) redzip -> win32 (#317) 2021-01-20 20:22:21 +02:00
coderaiser
5edd57a390 chore(package) v15.4.0 2021-01-19 21:09:58 +02:00
coderaiser
f261a0ea08 feature(cloudcmd) add abilit to parse markdown inside zip archives 2021-01-19 21:08:17 +02:00
coderaiser
6182f621d6 chore(package) v15.3.4 2021-01-19 18:10:09 +02:00
coderaiser
72ed5bbe4e docs(readme) spell 2021-01-19 18:08:38 +02:00
coderaiser
fac9b347c2 feature(package) deepword v8.0.0 2021-01-19 18:06:25 +02:00
Timo Knapp
48ae1c2e63
fix(docker) images: change alpine images to be part of master image (#316) 2021-01-19 17:36:27 +02:00
coderaiser
d785952b7e feature(package) console-io v13.0.0 2021-01-19 14:36:40 +02:00
coderaiser
5f13f380e9 feature(package) edward v13.0.0 2021-01-19 14:26:04 +02:00
Timo Knapp
99b93e760a feature(docker) add support of multi-arch builds (#291) 2021-01-19 13:56:00 +02:00
coderaiser
11cc63adcd chore(package) v15.3.3 2021-01-18 21:59:37 +02:00
Jacob Henry
c057b950c8 fix(dom) bug in Firefox with Imagus extension enabled: change getCurrentName to read from data-name instead of title (#313)
Separated out name generation/parsing logic.
Added test case.
2021-01-18 21:59:37 +02:00
coderaiser
b6f30d1ccb chore(package) v15.3.2 2021-01-18 14:43:15 +02:00
coderaiser
546b511a9a fix(client) dom: goToDirectory 2021-01-18 14:43:15 +02:00
coderaiser
ddef087328 chore(package) v15.3.1 2021-01-17 17:19:27 +02:00
coderaiser
2355618409 feature(package) dword v13.0.0 2021-01-17 17:18:18 +02:00
coderaiser
28461fbe19 feature(modules) socket.io v3.1.0 2021-01-17 17:10:21 +02:00
coderaiser
cdb719eb2a fix(view) view html, pdf 2021-01-17 17:10:12 +02:00
coderaiser
da692a4798 chore(package) v15.3.0 2021-01-17 16:43:18 +02:00
coderaiser
c002fc37c5 feature(client) improve vim support: Esc - toggle vim support in editors 2021-01-17 16:39:00 +02:00
coderaiser
4e86f7f308 refactor(dom) loadCurrentSize: callback -> promise 2021-01-17 16:02:19 +02:00
coderaiser
462d7bf3b5 feature(client) view: add ability to view raw files using Shift + F3 2021-01-17 15:55:24 +02:00
coderaiser
eb2c15ba17 chore(madrun) watch:lint: staged files 2021-01-17 15:49:00 +02:00
coderaiser
635b195d48 feature(client) view: show markdown without shift 2021-01-17 15:48:34 +02:00
coderaiser
301bfa3234 feature(key) add ability to toggle global vim config on the time of session 2021-01-17 15:07:09 +02:00
coderaiser
4b51f363ae chore(package) v15.2.0 2021-01-16 00:57:51 +02:00
coderaiser
57485b5b4b feature(cloudcmd) add ability to open html files using F3 2021-01-16 00:53:37 +02:00
coderaiser
cd7bf0fe01 feature(cloudcmd) add ability to toggle vim hotkes using Esc 2021-01-16 00:53:28 +02:00
coderaiser
595805eeaf feature(package) @cloudcmd/fileop v5.0.0 2021-01-15 21:00:50 +02:00
coderaiser
a2c17e5e0e chore(client) rm console.log 2021-01-14 13:00:37 +02:00
coderaiser
af2548acd1 chore(madrun) simplify with cutEnv 2021-01-12 00:59:29 +02:00
coderaiser
82c576c850 fix(server) distribute: simplify colors 2021-01-11 13:44:31 +02:00
coderaiser
0ec17645b6 chore(package) v15.1.0 2021-01-07 00:35:33 +02:00
coderaiser
b35a3e029f feature(cloudcmd) add ability to read zip files like directories (#309) 2021-01-07 00:08:58 +02:00
coderaiser
0037ec9606 chore(package) v15.0.4 2021-01-05 19:07:42 +02:00
coderaiser
cbd5a2786c feature(package) flop v9.0.0 2021-01-05 19:02:57 +02:00
coderaiser
226d7c93bd feature(package) restafary v9.0.1 2021-01-05 19:02:53 +02:00
coderaiser
a2c82c56fb chore(package) webpack: add progress bar 2021-01-05 18:14:11 +02:00
coderaiser
dd91c810ad chore(package) v15.0.3 2021-01-05 18:05:35 +02:00
coderaiser
fcdb2e3a28 chore(cloudcmd) simportConfig -> importConfig 2021-01-05 18:04:42 +02:00
coderaiser
b06c9499a3 docs(readme) rm fossa badge 2021-01-05 17:53:37 +02:00
coderaiser
394bf46eca fix(cloudcmd) validateRoot: import -> simport: forEachKey is not a function (#311) 2021-01-05 17:51:26 +02:00
coderaiser
0967ad12e8 feature(package) onezip v5.0.0 2021-01-05 14:23:18 +02:00
coderaiser
fdcc060861 feature(package) socket.io v3.0.5 (socketio/socket.io#3720) 2021-01-05 13:41:01 +02:00
coderaiser
77384f35c4 chore(madrun) lint 2021-01-05 13:41:01 +02:00
coderaiser
59338a16ac chore(cloudcmd) lint: key-spacing 2021-01-05 13:41:01 +02:00
coderaiser
a91344595c
chore(madrun) start: js -> mjs 2021-01-04 20:45:49 +02:00
coderaiser
a2586424f9 refactor(cloudfunc) getPathLink: map -> for 2021-01-03 14:51:19 +02:00
coderaiser
d08921bde3 test(cloudfunc) lint 2021-01-03 14:51:03 +02:00
coderaiser
9214bb4f31 test(cloudfunc) getPathLink 2021-01-03 14:43:20 +02:00
coderaiser
77aff31bcc chore(package) v15.0.2 2020-12-31 18:52:13 +02:00
coderaiser
89570857bb fix(cloudcmd) criton: crash when password set (#310) 2020-12-31 18:44:14 +02:00
coderaiser
84d1db5f1e docs(readme) docker: -t -> -it 2020-12-30 16:15:38 +02:00
coderaiser
a87fb57188 chore(package) v15.0.1 2020-12-30 15:41:50 +02:00
coderaiser
95db6de63c fix(docker) cloudcmd.js -> cloudcmd.mjs 2020-12-30 15:41:50 +02:00
coderaiser
bbffe1a9bd chore(travis) node v14 2020-12-30 15:09:55 +02:00
coderaiser
9d6b6b7c93 chore(cloudcmd) lint 2020-12-30 14:41:27 +02:00
coderaiser
76e0eab94c fix(cloudcmd) css: media query for screen size with width more then 1600 (cloudcmd/console-io#6) 2020-12-30 14:38:33 +02:00
coderaiser
9a13502597 fix(cloudcmd) client: build: optional chaining 2020-12-30 14:02:36 +02:00
coderaiser
77d02c7844 feature(package) putout v13.0.0 2020-12-28 23:25:37 +02:00
coderaiser
c3339d8ea2 fix(cloudcmd) drop support of node < 14 2020-12-28 23:00:04 +02:00
coderaiser
7371871f15 chore(package) v15.0.0 2020-12-28 20:18:38 +02:00
coderaiser
8f0f6db9d6 chore(madrun) wisdom:type 2020-12-28 20:15:40 +02:00
coderaiser
27ddaf726d chore(cloudcmd) lint 2020-12-28 20:14:10 +02:00
coderaiser
e6c1d928ec feature(package) auto-globals v2.0.0 2020-12-28 19:47:46 +02:00
coderaiser
ae360b1db3 docs(readme) convert commonjs to esm 2020-12-28 17:39:08 +02:00
coderaiser
b5be1f3933 feature(cloudcmd) convert to EcmaScriptModules 2020-12-28 17:37:29 +02:00
coderaiser
006344b58a feature(package) supertape v4.1.0 2020-12-25 18:16:53 +02:00
coderaiser
b18b6af4dc feature(package) supertape v3.10.0 2020-12-21 15:19:18 +02:00
coderaiser
4d8f489b18 chore(madrun) lint: stylelint now bundled with putout 2020-12-15 16:25:06 +02:00
coderaiser
76380a1f04 chore(cloudcmd) lint 2020-12-15 15:30:32 +02:00
coderaiser
332593c23e feature(package) babel-plugin-macros v3.0.0 2020-12-15 15:26:50 +02:00
coderaiser
fd818c5f31 chore(madrun) commonjs -> esm 2020-12-14 15:19:23 +02:00
coderaiser
1b7b163a66 feature(package) putout v12.0.0 2020-12-14 15:19:23 +02:00
coderaiser
1c9ca22b93
chore(travis) rm windows 2020-12-14 00:06:20 +02:00
coderaiser
5a1a39478f test(console) hang 2020-12-04 22:54:28 +02:00
coderaiser
983609f19a chore(datetime) rm unused 2020-12-04 18:49:37 +02:00
coderaiser
c719e37cc1 chore(cloudcmd) update dependencies 2020-12-04 18:47:24 +02:00
coderaiser
4c7f8cc6b6 chore(cloudcmd) lint 2020-12-03 18:27:59 +02:00
coderaiser
1e853b040d feature(package) supertape v3.1.3 2020-12-03 18:21:01 +02:00
coderaiser
fcc59c0674 feature(package) madrun v8.0.0 2020-12-03 18:20:56 +02:00
coderaiser
ee091a33c9 chore(putout) ignore: add dist 2020-12-03 18:20:21 +02:00
coderaiser
13e7af779b docs(help) change link 2020-12-03 18:20:11 +02:00
coderaiser
a9e9dd7270 fix(cloudcmd) app, help: remove duplicate keys 2020-11-25 20:54:47 +02:00
coderaiser
75c6abb2b1 test(cloudcmd) skip: connect_error tests 2020-11-16 17:40:32 +02:00
coderaiser
ca7acdd812 feature(package) gritty v6.0.0 2020-11-16 16:43:28 +02:00
coderaiser
57750689ee feature(package) console-io v12.0.0 2020-11-16 16:17:54 +02:00
coderaiser
ecd7423ac0 docs(help) lint 2020-11-16 16:10:04 +02:00
coderaiser
f74d3e71a2 feature(package) socket.io-client v3.0.1 2020-11-16 15:44:18 +02:00
coderaiser
eba20025fe feature(package) socket.io v3.0.1 2020-11-16 15:44:09 +02:00
coderaiser
30da4bcd85 docs(readme) add to lint 2020-11-03 10:27:36 +02:00
coderaiser
ab7f266e2b feature(package) putout v11.0.2 2020-11-03 10:23:22 +02:00
coderaiser
32f97392bb feature(package) eslint-plugin-putout v6.0.0 2020-11-02 14:57:39 +02:00
coderaiser
382ac94a1f chore(travis) node v15 2020-10-25 10:12:47 +02:00
coderaiser
42046eff3a chore(putout) true -> on, false -> off 2020-10-17 18:05:31 +03:00
coderaiser
154030c5fa chore(putout) prepare for webpack v5 2020-10-17 18:04:35 +03:00
coderaiser
38fa908872 feature(package) markdown-it v12.0.0 2020-10-17 18:04:35 +03:00
j35tor
fd5b2cc6c6
docs(readme) typos in examples (#300)
Co-authored-by: j35tor <j35tor@disroot.org>
2020-10-07 12:59:32 +03:00
coderaiser
514644269c chore(cloudcmd) menu: add lint, fix:lint, test, coverage 2020-09-21 16:10:35 +03:00
coderaiser
6d1b18da07 chore(menu) button -> key 2020-09-21 15:46:35 +03:00
coderaiser
d918ed1f52 chore(github) workflows: add coverage 2020-09-17 16:59:57 +03:00
coderaiser
175d01f3d1 chore(github) workflows: split into 4 steps 2020-09-17 16:58:14 +03:00
coderaiser
1dbc978916 chore(github) workflows: node: v12 -> v14 2020-09-17 16:56:36 +03:00
coderaiser
14dc7ac3a3 feature(package) putout v10.0.0 2020-09-16 19:18:31 +03:00
coderaiser
f434bd1133 test(distribute) import: env: reassign -> delete 2020-09-11 22:06:55 +03:00
coderaiser
d8c2ac4708 feature(package) gritty v5.0.0 2020-09-11 21:52:09 +03:00
coderaiser
79f68d01c8 feature(distribute) import: do not import if env variable set 2020-09-11 21:41:16 +03:00
coderaiser
b8a83868da chore(cloudcmd) save, then import 2020-09-11 19:12:43 +03:00
coderaiser
0b74250248 fix(cloudcmd) importListen prevent server from start (#295) 2020-09-11 18:42:04 +03:00
coderaiser
8932378e07 chore(app) add stack (https://devcenter.heroku.com/articles/upgrading-to-the-latest-stack) 2020-09-11 18:16:08 +03:00
coderaiser
1e4761a10a feature(package) drop support of node < 12 2020-09-06 21:26:51 +03:00
coderaiser
0a7c52c75d chore(cloudcmd) lint: numeric separators 2020-09-06 21:25:40 +03:00
coderaiser
c61681c331 chore(madrun) rm lint:progress, -f progress enabled by default 2020-09-02 16:02:47 +03:00
coderaiser
19888b3ee5 feature(package) table v6.0.1 2020-09-02 15:53:24 +03:00
coderaiser
6d7f274bde chore(package) v14.9.3 2020-08-21 15:51:28 +03:00
coderaiser
706b823c4a fix(client) dom: buffer: get, set -> getJson, setJson (#295) 2020-08-21 15:50:17 +03:00
coderaiser
aeb5906de3 feature(storage) rm unused removeMatch 2020-08-19 18:14:30 +03:00
coderaiser
c8d2098e5b test(storage) coverage 2020-08-19 18:12:30 +03:00
coderaiser
6cb0da0ce8 chore(package) v14.9.2 2020-08-19 17:45:59 +03:00
coderaiser
d181b84c3b fix(cloudcmd) client: edit: json files (#294) 2020-08-19 17:44:26 +03:00
coderaiser
5732752350 chore(package) v14.9.1 2020-08-16 16:33:24 +03:00
coderaiser
0f93c4fa1b feature(cloudcmd) add IO.createDirectory (b54b5486f4) 2020-08-16 16:32:22 +03:00
coderaiser
92e0e4bb91 chore(package) v14.9.0 2020-08-14 19:08:45 +03:00
coderaiser
291dc39c25 feature(key) vim: add ability to navigate to next and previous using w and b 2020-08-14 19:07:28 +03:00
coderaiser
750b7571f5 feature(key) vim: add ability to navigate using to first and last file using ^ and $ 2020-08-14 19:07:28 +03:00
coderaiser
87f4022759 docs(help) UserMenu: add move, copy 2020-08-14 19:07:28 +03:00
coderaiser
d053e60ed2 chore(package) v14.8.0 2020-08-14 17:16:35 +03:00
coderaiser
5041930685 feature(cloudcmd) IO.cp -> IO.copy 2020-08-14 17:14:45 +03:00
coderaiser
13307f3861 feature(cloudcmd) IO.mv -> IO.move 2020-08-14 17:14:45 +03:00
coderaiser
b081dc8b18 feature(package) find-up v5.0.0 2020-08-13 15:52:44 +03:00
coderaiser
7fd5e2bc90 chore(package) v14.7.2 2020-08-11 13:34:49 +03:00
coderaiser
e973f5fd4e fix(client) key: F3: search appears 2020-08-11 13:31:50 +03:00
coderaiser
b2fa10f2de test(view) initConfig: add 2020-08-11 13:31:50 +03:00
coderaiser
222ce237c5 chore(package) v14.7.1 2020-08-11 01:13:50 +03:00
coderaiser
27df34f000 fix(view) init config: copy 2020-08-11 01:11:08 +03:00
coderaiser
50e0152ced chore(package) v14.7.0 2020-08-10 14:43:05 +03:00
coderaiser
c49d25229c fix(client) user menu: click on user menu title 2020-08-10 14:42:11 +03:00
coderaiser
28ceb7f7ff feature(cloudcmd) rest: add rename 2020-08-10 14:42:11 +03:00
coderaiser
d8dd9f5738 feature(rest) mv: improved user errors 2020-08-09 16:18:22 +03:00
coderaiser
16a1eade2a feature(client) io: promisify -> async 2020-08-06 11:21:57 +03:00
coderaiser
807a1bc26d chore(export) lint 2020-07-27 12:29:05 +03:00
coderaiser
e7feb83f76 chore(edit-names) rm unused arguments 2020-07-08 20:04:13 +03:00
coderaiser
a117867307 feature(package) webpack-merge v5.0.8 2020-07-08 20:04:13 +03:00
coderaiser
e08a6bead8 feature(package) eslint-plugin-putout v5.0.0 2020-06-24 16:13:38 +03:00
coderaiser
2ed1c3a9dc feature(package) putout v9.0.0 2020-06-24 16:13:32 +03:00
coderaiser
378d694871 feature(package) madrun v7.0.0 2020-06-24 16:13:30 +03:00
coderaiser
8bb746aa0e chore(cloudcmd) lint: indexOf -> includes 2020-06-07 11:29:06 +03:00
coderaiser
c30bc69f5d chore(cloudcmd) lint: convert indexOf to includes 2020-06-01 19:44:41 +03:00
coderaiser
73dc17318e test(cloudcmd) test/server/prefixer -> server/prefixer 2020-06-01 19:42:19 +03:00
coderaiser
d23118f692 chore(cloudcmd) lint 2020-05-31 03:12:07 +03:00
coderaiser
b48507d92a chore(cloudcmd) lint 2020-05-28 23:52:46 +03:00
coderaiser
7d82ef92e9 chore(package) v14.6.0 2020-05-20 18:37:22 +03:00
coderaiser
8f9c6906a1 feature(package) markdown-it v11.0.0 2020-05-20 18:33:38 +03:00
coderaiser
f506801337 feature(cloudcmd) client: add ability to handle existing file while rename (#289) 2020-05-20 18:32:28 +03:00
coderaiser
e6c51f61ca feature(package) supertape v2.0.0 2020-05-09 22:29:53 +03:00
coderaiser
75a1f9db17 feature(package) @cloudcmd/stub v3.0.0 2020-05-09 22:29:51 +03:00
coderaiser
e13ec9aaf7 chore(package) v14.5.1 2020-05-06 19:13:57 +03:00
coderaiser
5db9bc1606 fix(docker) alpine 2020-05-06 18:35:49 +03:00
coderaiser
ca06ebc233 chore(package) v14.5.0 2020-05-04 18:25:17 +03:00
coderaiser
57b5243509 feature(package) eslint v7.0.0 2020-05-04 17:56:41 +03:00
coderaiser
5f95018abe feature(package) eslint-plugin-putout v4.0.0 2020-05-04 17:47:49 +03:00
coderaiser
2a8b8b57e1 feature(package) putout v8.0.0 2020-05-04 17:47:46 +03:00
coderaiser
13d0b149d1 feature(package) madrun v6.0.0 2020-05-04 17:47:43 +03:00
coderaiser
d7a58ae791 fix(user-menu) choose using Enter 2020-05-04 14:22:18 +03:00
coderaiser
67eef31520 feature(client) directory: add abily to show progress dialog on upload 2020-05-04 14:21:49 +03:00
coderaiser
82f3198bdd chore(travis ) get back node v10 2020-04-27 11:51:54 +03:00
coderaiser
429045e419 docs(help) User Menu: __settings 2020-04-27 11:44:43 +03:00
coderaiser
a645b9317e chore(package) v14.4.0 2020-04-27 00:04:50 +03:00
coderaiser
a9e19d3b4b test(user-menu) parse-user-menu 2020-04-27 00:03:22 +03:00
coderaiser
2267b3e6b2 chore(Dokefile) node v14 2020-04-26 23:45:08 +03:00
coderaiser
5d589ee31d feature(user-menu) add ability to run selected items without showing dialog 2020-04-26 23:44:27 +03:00
coderaiser
28caa05292 test(cloudcmd) promisify 2020-04-25 23:21:44 +03:00
coderaiser
faef643956 chore(travis) node v14 2020-04-21 18:37:23 +03:00
coderaiser
dee9f02cf5
chore(user-menu) move down require of inner dependency 2020-04-14 20:55:08 +03:00
coderaiser
44a5235d30 chore(package) v14.3.10 2020-04-13 18:41:09 +03:00
coderaiser
00eecbf7c8 feature(package) yaspeller v7.0.0 2020-04-13 18:37:10 +03:00
coderaiser
798d974677 fix(util) getRegExp: multiple dots 2020-04-13 18:35:26 +03:00
coderaiser
545b5a5135 fix(cloudcmd) crash on check for update (#286) 2020-04-13 18:30:19 +03:00
coderaiser
a8bd28318f chore(package) v14.3.9 2020-04-10 17:01:07 +03:00
coderaiser
67138dab0f chore(cloudcmd) lint 2020-04-10 14:32:17 +03:00
coderaiser
2a170584e2 test(env) lint 2020-04-10 14:30:10 +03:00
coderaiser
b596376051 fix(docker) node -> node:lts (#280) 2020-04-10 13:17:42 +03:00
coderaiser
24ab06c005 fix(env) UPPER_CASE first, and then lower_case (#283) 2020-04-10 12:46:31 +03:00
coderaiser
511e40fa72 chore(cloudcmd) lint: space-before-function-paren 2020-04-09 13:37:29 +03:00
coderaiser
754d4087b4 feature(cloudcmd) promise -> async 2020-04-07 23:58:45 +03:00
coderaiser
de9a26f8ff chore(package) v14.3.8 2020-04-04 13:38:23 +03:00
coderaiser
f69a6ea82b feature(client) ajaxLoad: callback -> promise 2020-04-04 13:35:11 +03:00
coderaiser
0098fb9975 feature(get-json-from-file-table) mv out from client 2020-04-04 12:48:55 +03:00
coderaiser
b483481c81 chore(package) v14.3.7 2020-04-03 18:19:08 +03:00
coderaiser
5b9e250c95 fix(client) dom: getCurrentType 2020-04-03 18:09:11 +03:00
coderaiser
2efba6c0d7 refactor(client) loadDir: callback -> promise 2020-04-03 18:08:28 +03:00
coderaiser
1614901631 feature(package) chalk v4.0.0 2020-04-03 13:56:54 +03:00
coderaiser
96744e9857 chore(package) v14.3.6 2020-03-31 17:06:08 +03:00
coderaiser
2d08fb98b7 fix(cloudcmd) directoryStorage 2020-03-31 16:48:35 +03:00
coderaiser
12e813c432 chore(package) v14.3.5 2020-03-25 21:31:10 +02:00
coderaiser
1ca0905c52 feature(package) fullstore v3.0.0 2020-03-25 17:02:02 +02:00
coderaiser
f9f5a948b8 feature(package) html-webpack-plugin v4.0.1 2020-03-25 13:41:02 +02:00
coderaiser
31eff2fc92 feature(package) codegen.macro v4.0.0 2020-03-25 13:38:48 +02:00
coderaiser
04df87c992 chore(listeners) lint 2020-03-18 21:08:12 +02:00
coderaiser
ce503c8e9a feature(package) url-loader v4.0.0 2020-03-18 21:03:36 +02:00
coderaiser
0d3f777507 chore(package) v14.3.4 2020-03-03 12:12:09 +02:00
coderaiser
a5aa85acb1 chore(route) lint 2020-03-03 12:11:01 +02:00
coderaiser
8e2bea4230 feature(package) readjson v2.0.1 2020-03-02 19:02:56 +02:00
coderaiser
4ce883c507 feature(package) tryrequire v3.0.0 2020-03-02 18:44:54 +02:00
coderaiser
fe163ef5fb feature(package) flop v8.0.0 2020-03-01 14:10:28 +02:00
coderaiser
901fd252f1 chore(cloudcmd) lint 2020-02-29 01:14:38 +02:00
coderaiser
ed58853acc feature(package) writejson v3.0.0 2020-02-27 18:46:10 +02:00
coderaiser
defc0486a5 feature(package) try-to-catch v3.0.0 2020-02-24 16:41:29 +02:00
coderaiser
c463960bc1 feature(package) try-catch v3.0.0 2020-02-24 16:41:27 +02:00
coderaiser
575b9ab425 refactor(vim) move -> moveNext, movePrevious 2020-02-24 12:09:30 +02:00
coderaiser
7444678eb3 chore(package) v14.3.3 2020-02-23 19:32:11 +02:00
coderaiser
87555ce7ba feature(key) vim: split DOM and vim 2020-02-23 19:30:26 +02:00
coderaiser
7648aee85f chore(package) v14.3.2 2020-02-21 17:06:40 +02:00
coderaiser
83dfba2eb6 feature(package) serve-once v2.0.0 2020-02-21 16:56:19 +02:00
coderaiser
6f570722f4 feature(package) edward v12.0.0 2020-02-21 16:49:04 +02:00
coderaiser
999412e2da feature(package) dword v12.0.0 2020-02-21 16:47:30 +02:00
coderaiser
d7f20c4b3b feature(package) ponse v5.0.0 2020-02-21 16:36:06 +02:00
coderaiser
add3f456c7 chore(package) v14.3.1 2020-02-21 13:05:00 +02:00
coderaiser
88d5071400 feature(package) supermenu v4.0.1 2020-02-19 17:38:49 +02:00
coderaiser
a9ba166bd4 chore(cloudcmd) lint: remove useless arguments 2020-02-17 17:17:16 +02:00
coderaiser
8a92a94a3e feature(package) stylelint-config-standard v20.0.0 2020-02-10 12:28:39 +02:00
coderaiser
59bc7c4cd4 feature(package) http-auth v4.1.2 2020-02-04 19:13:03 +02:00
coderaiser
2f6cb2d2ad chore(travis) deploy 2020-01-29 12:32:56 +02:00
coderaiser
54f9e1271a chore(package) v14.3.0 2020-01-29 10:33:03 +02:00
coderaiser
2be3459b08 feature(listeners) improve file select with ctrl + click (#269) 2020-01-29 10:30:22 +02:00
coderaiser
31d7609858 chore(madrun) docker:manifest:create: simplify 2020-01-29 10:23:38 +02:00
Timo Knapp
7fcc860bea
feature(docker) add Dockerfile for arm based clients such as rpi (#268) 2020-01-29 10:12:25 +02:00
coderaiser
a4c8736663 feature(package) @cloudcmd/clipboard v2.0.0 2020-01-28 18:59:34 +02:00
coderaiser
ba6dd8e50e chore(package) rm unused mkdirp 2020-01-26 12:05:51 +02:00
coderaiser
8f819f1eea chore(set-current-by-char) lint: rm blank line 2020-01-14 11:18:14 +02:00
coderaiser
d5e3621a2a feature(package) stylelint v13.0.0 2020-01-13 11:35:49 +02:00
coderaiser
e5c33037e5 refactor(client) initModules: simplify key init 2020-01-08 14:54:57 +02:00
coderaiser
d0fdf1686d feature(package) emitify v4.0.1 2020-01-08 10:06:46 +02:00
coderaiser
7eb31f9412 chore(travis) windows build: git autocrlf 2020-01-03 11:42:20 +02:00
coderaiser
aeb6f76611 chore(css) add custom variables: --color, --color-transparent 2019-12-30 12:08:39 +02:00
coderaiser
03cfca8a4b feature(package) nyc v15.0.0 2019-12-27 10:45:45 +02:00
coderaiser
4aef2b6c38 feature(package) eslint-plugin-node v11.0.0 2019-12-27 10:45:42 +02:00
coderaiser
395e4a1ee4 chore(package) v14.2.1 2019-12-21 17:39:14 +02:00
coderaiser
c1cf8b414f feature(package) for-each-key v2.0.0 2019-12-21 17:37:37 +02:00
coderaiser
ba0179e62f chore(madrun) add lint:stream 2019-12-21 17:19:38 +02:00
coderaiser
075568d3ec feature(package) jonny v3.0.0 2019-12-21 17:07:49 +02:00
coderaiser
132a837717 feature(package) jaguar v6.0.0 2019-12-19 10:35:38 +02:00
coderaiser
9d6784cebd feature(package) ponse v4.0.0 2019-12-16 17:41:21 +02:00
coderaiser
a6e8a83366 feature(package) ponse v3.5.1 2019-12-15 11:45:50 +02:00
coderaiser
dbf6167aba feature(package) memfs v3.0.1 2019-11-27 13:11:25 +02:00
coderaiser
1abf7c5749 feature(package) url-loader v3.0.0 2019-11-26 17:38:22 +02:00
coderaiser
2d64b64d68 feature(package) nodemon v2.0.1 2019-11-22 15:09:49 +02:00
coderaiser
0ba7df4064 feature(package) stylelint v12.0.0 2019-11-18 12:11:33 +02:00
coderaiser
20e930dd81 chore(package) v14.2.0 2019-11-15 18:18:46 +02:00
Bruno Amaral
d836c0a99f feature(cloudcmd) add CLOUDCMD_PREFIX 2019-11-15 17:47:31 +02:00
coderaiser
98734e345f test(route) rm broken test 2019-11-15 17:42:47 +02:00
coderaiser
314f200477 chore(config) lint 2019-11-14 11:59:59 +02:00
coderaiser
321d3ad306 feature(package) chalk v3.0.0 2019-11-14 11:05:16 +02:00
coderaiser
2215cace30 chore(npmignore) rm madrun 2019-11-08 16:26:15 +02:00
coderaiser
56381ccd55 feature(package) eslint-plugin-putout v3.0.0 2019-11-06 17:08:54 +02:00
coderaiser
e86b5ce0cf feature(package) madrun v5.0.0 2019-11-06 17:08:50 +02:00
coderaiser
8b6f93625b feature(package) putout v7.0.0 2019-11-06 17:08:47 +02:00
coderaiser
4be2a53509 chore(cloudcmd) lint 2019-11-04 13:53:06 +02:00
coderaiser
4dffca0184 docs(readme) unhide -> keep 2019-10-27 11:47:54 +02:00
coderaiser
7fb2435f6b docs(help) add " " 2019-10-27 11:37:35 +02:00
coderaiser
a62fef46a0 chore(io) lint 2019-10-26 03:12:25 +03:00
coderaiser
e3d141a619 feature(package) madrun v4.0.0 2019-10-25 19:17:39 +03:00
coderaiser
037da11545 chore(travis) node v13 2019-10-23 12:52:16 +03:00
coderaiser
9778111c58 feature(package) try-to-catch v2.0.0 2019-10-16 22:07:36 +03:00
coderaiser
9311918278 chore(package) v14.1.2 2019-10-16 14:19:34 +03:00
coderaiser
c1a08d8ad3 chore(madrun) lint 2019-10-16 14:17:40 +03:00
coderaiser
4dd28a27d3 feature(package) @cloudcmd/fileop v4.0.0 2019-10-16 14:17:37 +03:00
coderaiser
44d82a6c54 feature(package) inly v4.0.0 2019-10-16 12:51:07 +03:00
coderaiser
1ec55052e6 feature(package) onezip v4.0.0 2019-10-16 12:51:04 +03:00
coderaiser
3560f5483e feature(package) open v7.0.0 2019-10-16 12:38:06 +03:00
Arek Czogała
c44b1f66ee fix(madrun) client test command: fix test:client command (#260) 2019-10-16 12:12:35 +03:00
coderaiser
d0e2b83b54 chore(client) rm "\n" 2019-10-12 21:32:54 +03:00
coderaiser
9e284e1de0 feature(package) multi-rename v2.0.0 2019-10-11 12:55:37 +03:00
coderaiser
0cfdc600e7 feature(package) shortdate v2.0.0 2019-10-11 12:39:19 +03:00
coderaiser
151cfd85ed chore(package) v14.1.1 2019-10-09 17:26:14 +03:00
coderaiser
b72df1d64c test(mv) promises 2019-10-09 17:03:46 +03:00
coderaiser
d062b8c32f feature(package) @cloudcmd/fileop v3.0.0 2019-10-07 18:08:39 +03:00
coderaiser
4749163d9c feature(package) @cloudcmd/move-files v3.0.0 2019-10-07 18:07:34 +03:00
coderaiser
bc2a2a72be feature(package) copymitter v5.0.0 2019-10-07 17:54:00 +03:00
coderaiser
2538f46dfd chore(package) v14.1.0 2019-10-02 14:14:32 +03:00
coderaiser
bb9fc8ba83 feature(view) add support of webm (#256) 2019-10-02 13:12:14 +03:00
coderaiser
794caced01 chore(cloudcmd) lint 2019-09-28 16:42:30 +03:00
coderaiser
d473a7e187 chore(package) v14.0.2 2019-09-25 14:25:03 +03:00
coderaiser
43ccc76960 fix(client) change directory with enabled dirStorage (#255) 2019-09-25 14:22:06 +03:00
coderaiser
e38766f0fa chore(package) v14.0.1 2019-09-25 00:38:04 +03:00
coderaiser
8b6d0f27d8 feature(package) deepword v7.0.0 2019-09-25 00:36:54 +03:00
coderaiser
22593cd544 fix(cloudcmd) wrong editor root on multi instance 2019-09-25 00:10:05 +03:00
coderaiser
719119b793 feature(cloudcmd) rm now (zeit/micro/issues/377) 2019-09-23 23:22:57 +03:00
coderaiser
edd1665c55 test(route) realpath on mac os 2019-09-23 12:35:59 +03:00
coderaiser
b803021ce2 refactor(server) convert fs to fs.promises 2019-09-22 23:40:10 +03:00
coderaiser
8992a1c7bc chore(package) v14.0.0 2019-09-22 14:46:43 +03:00
coderaiser
626440523d chore(travis) rm node 8 2019-09-22 14:17:55 +03:00
coderaiser
116c965cb4 feature(operation) show progress bar on first operation (#253) 2019-09-22 14:16:13 +03:00
coderaiser
3b2e2a2232 feature(package) pullout v4.0.0 2019-09-21 22:42:04 +03:00
coderaiser
0b36981c3c feature(package) console-io v11.0.0 2019-09-21 22:28:25 +03:00
coderaiser
4a70219ba4 feature(package) flop v7.0.0 2019-09-21 22:26:49 +03:00
coderaiser
ca12b927b5 feature(package) restbox v2.0.0 2019-09-21 22:21:10 +03:00
coderaiser
58cb265c61 feature(package) restafary v8.0.0 2019-09-21 22:21:05 +03:00
coderaiser
777b7e7aaf feature(package) nomine v4.0.0 2019-09-21 22:20:51 +03:00
coderaiser
29afda8b3a feature(cloudcmd) drop support of node < 10 2019-09-21 22:02:07 +03:00
coderaiser
6e4bedca2d feature(cloudcmd) remove --progress option, make always enabled 2019-09-21 22:01:15 +03:00
coderaiser
e0df785ece chore(package) v13.4.2 2019-09-21 16:47:59 +03:00
coderaiser
cd5188c71e fix(terminal) on -> onKey 2019-09-21 16:42:58 +03:00
coderaiser
715fe59ee5 docs(help) group rename link 2019-09-20 17:16:08 +03:00
coderaiser
8c318fce0e chore(package) v13.4.1 2019-09-20 17:12:52 +03:00
coderaiser
4fd5b38832 feature(package) @cloudcmd/olark v3.0.0 2019-09-20 14:30:25 +03:00
coderaiser
68d186e686 feature(package) format-io v2.0.0 2019-09-20 14:05:00 +03:00
coderaiser
8210c4f05d feature(package) limier v3.0.0 2019-09-19 21:57:34 +03:00
coderaiser
f17af9a920 feature(package) currify v4.0.0 2019-09-19 21:45:36 +03:00
coderaiser
b35c692e3b feature(package) limier v2.0.1 2019-09-19 21:40:57 +03:00
coderaiser
160114a364 chore(terminal) lint 2019-09-18 23:16:22 +03:00
coderaiser
83cf1b6990 feature(package) load.js v3.0.0 2019-09-18 17:27:48 +03:00
coderaiser
2157bbf05f feature(package) @cloudcmd/create-element v2.0.0 2019-09-18 17:27:19 +03:00
coderaiser
be8c584e84 feature(package) supermenu v3.0.0 2019-09-18 16:50:36 +03:00
coderaiser
5b14794690 feature(package) smalltalk v4.0.0 2019-09-18 16:46:23 +03:00
coderaiser
e2687af6ef feature(package) @cloudcmd/modal v2.0.0 2019-09-18 16:39:04 +03:00
coderaiser
0ac1724f05 feature(package) putout v6.0.0 2019-09-16 19:04:58 +03:00
coderaiser
a52b0b4115 chore(cloudcmd) lint 2019-09-16 17:48:42 +03:00
coderaiser
ba78be247e feature(package) stylelint-config-standard v19.0.0 2019-09-16 17:42:28 +03:00
coderaiser
e0e1a2480d feature(package) stylelint v11.0.0 2019-09-16 17:42:21 +03:00
coderaiser
7a2ebe7f13 feature(package) markdown-it v10.0.0 2019-09-11 12:15:23 +03:00
coderaiser
2291e35358 feature(package) rm version-io 2019-09-11 12:15:18 +03:00
coderaiser
9876611eef feature(package) fullstore v2.0.2 2019-09-09 19:17:40 +03:00
coderaiser
7e29a2f4ee feature(package) wraptile v3.0.0 2019-09-07 15:49:31 +03:00
coderaiser
3fff765adf feature(package) rendy v3.0.0 2019-09-06 17:34:53 +03:00
coderaiser
b543965f35 feature(package) eslint-plugin-node v10.0.0 2019-09-06 17:32:20 +03:00
coderaiser
68cda2cd46 feature(package) restafary v7.0.0 2019-09-04 16:21:29 +03:00
coderaiser
6879c17edd chore(package) v13.4.0 2019-09-03 18:48:08 +03:00
coderaiser
dda32c3a40 feature(view) add support of pdf 2019-09-03 18:46:12 +03:00
coderaiser
1f07a199db feature(package) madrun v3.0.1 2019-08-30 13:07:56 +03:00
coderaiser
c495db4bc6 chore(package) v13.3.0 2019-08-28 14:30:41 +03:00
coderaiser
950028af92 feature(cloudcmd) decrease bundle size: disable convertion to es5
cloudcmd.common.js: 155K -> 141K
cloudcmd.js: 26K -> 20K
2019-08-27 22:33:32 +03:00
coderaiser
089bdc64a0 feature(client) remove legacy suffix, use modules as is 2019-08-27 22:18:40 +03:00
coderaiser
32628ec43f feature(package) es6-promisify v6.0.2 2019-08-27 18:54:43 +03:00
coderaiser
139a91b094 feature(menu) rm mute: has no sense with new ponse headers 2019-08-26 21:58:40 +03:00
coderaiser
18111aa744 fix(client) rm additional dialog 2019-08-23 21:40:18 +03:00
coderaiser
857fe1d950 fix(user-menu) putout path 2019-08-23 15:20:51 +03:00
coderaiser
e46d104cc7 feature(markdown) move out parse to worker 2019-08-23 15:16:40 +03:00
coderaiser
560dd8fddc refactor(edit-names) smalltalk -> Dialog 2019-08-23 14:05:59 +03:00
coderaiser
a29b6d172a fix(edit-names) hide 2019-08-23 13:46:45 +03:00
coderaiser
4b3afb5223 refactor(edit-names) Dialog -> smalltalk 2019-08-23 13:46:45 +03:00
coderaiser
ca083963e9 fix(vim) find 2019-08-23 13:46:43 +03:00
coderaiser
33c1fdf629 chore(package) v13.2.1 2019-08-22 19:06:35 +03:00
coderaiser
a8793dbbc5 refactor(dom) getRefreshButton: simplify 2019-08-22 18:48:56 +03:00
coderaiser
3ac7ee4b76 fix(buffer) copy, cut 2019-08-22 18:47:58 +03:00
coderaiser
7e6b3c6ba5 fix(key) chrome event double pass 2019-08-21 22:07:56 +03:00
coderaiser
137673c551 chore(madrun) set lint:progress default lint 2019-08-21 19:43:13 +03:00
coderaiser
f22829ef4f fix(user-menu) processing menu item run error 2019-08-21 19:38:28 +03:00
coderaiser
9abb48526b chore(travis) rm allow_failures: node_js v12 2019-08-21 19:34:40 +03:00
coderaiser
57984fe2d6 feature(user-menu) rm path 2019-08-21 19:29:34 +03:00
coderaiser
98e284074c chore(parse-error) comment 2019-08-20 23:35:39 +03:00
coderaiser
99e3f5d95e chore(package) v13.2.0 2019-08-20 23:04:45 +03:00
coderaiser
8ba1340e92 chore(madrun) coverage 2019-08-20 23:02:42 +03:00
coderaiser
511cceb9d9 fix(menu) autoplay on download in firefox 2019-08-20 22:58:57 +03:00
coderaiser
64e6b8387a feature(user-menu) improve error handling 2019-08-20 22:58:57 +03:00
coderaiser
b8592d35c0 fix(dom) getCurrentData 2019-08-20 22:58:55 +03:00
coderaiser
cc76eb9d2b feature(package) eslint-plugin-putout v2.0.0 2019-08-19 20:01:54 +03:00
coderaiser
4189d20961 chore(package) v13.1.0 2019-08-16 18:29:28 +03:00
coderaiser
98a9801644 feature(cloudcmd) add ability to remember position of current file on reload 2019-08-16 18:27:52 +03:00
coderaiser
63be7c8743 feature(madrun) disable web workers, while testing 2019-08-16 18:19:22 +03:00
coderaiser
7d5b3463cc refactor(client) callbacks -> async 2019-08-16 18:06:12 +03:00
coderaiser
eee2cb1b10 docs(help) rm CLOUDCMD_USER_MENU: no longer supported 2019-08-16 15:22:21 +03:00
coderaiser
36b8e5903d feature(user-menu) speed up user menu parsing with help of worker threads 2019-08-16 14:48:51 +03:00
coderaiser
9301506d82 feature(user-menu) add ability to used EcmaScript Modules, improve error handling 2019-08-15 23:50:04 +03:00
coderaiser
bba2f7b570 fix(user-menu) hide load on error 2019-08-15 23:49:08 +03:00
coderaiser
f989880d48 fix(key) keys block 2019-08-15 23:48:55 +03:00
coderaiser
b083de710b feature(server) add compress: speed up client side load 2019-08-15 23:47:59 +03:00
coderaiser
ce8eea7b78 chore(package) v13.0.1 2019-08-14 21:39:06 +03:00
coderaiser
196ccb29fc feature(package) rimraf v3.0.0 2019-08-14 21:31:22 +03:00
coderaiser
a92948ee7e fix(cloudcmd) rm --user-menu: always enabled 2019-08-14 21:30:27 +03:00
coderaiser
9f2989fb62 chore(package) v13.0.0 2019-08-14 15:49:02 +03:00
coderaiser
1ab5b189dc chore(workflow) add 2019-08-14 15:45:14 +03:00
coderaiser
a493e5a4d1 fix(set-listeners) can not continue first error operation error 2019-08-14 15:45:14 +03:00
coderaiser
a8e679bf03 feature(cloudcmd) only user menu on f2 2019-08-14 15:45:11 +03:00
coderaiser
a61eb22b62 feature(cloudcmd) remove plugins 2019-08-14 15:25:07 +03:00
coderaiser
b93e759ba6 fix(view) getMediaElement: play video/audio 2019-08-14 15:15:45 +03:00
coderaiser
66e0acbb8f feature(package) putout v5.2.1 2019-08-12 16:54:34 +03:00
coderaiser
e75948ec01 feature(package) style-loader v1.0.0 2019-08-07 13:43:10 +03:00
coderaiser
a3ef3ae60d chore(cloudcmd) lint 2019-08-05 18:10:16 +03:00
coderaiser
a021090dc9 chore(package) v12.6.3 2019-08-02 13:53:17 +03:00
coderaiser
3c87ce0fa3 fix(operation) first copy after startup fails (close #251) 2019-08-02 13:50:56 +03:00
coderaiser
86417d4781 fix(key) chrome keydown event double pass 2019-08-02 13:48:38 +03:00
coderaiser
7c52d622ba docs(help) add two config managers example (#250) 2019-07-24 14:41:47 +03:00
coderaiser
ab183d89eb docs(help) code example 2019-07-24 14:29:44 +03:00
coderaiser
4b98fa70c0 docs(readme) rm open collective 2019-07-24 13:29:58 +03:00
fossabot
96cb2875c0 docs(readme) add license scan report and status
Signed-off-by: fossabot <badges@fossa.io>
2019-07-24 13:28:28 +03:00
coderaiser
74ee33ee4c chore(travis) disable cache for npm 2019-07-23 15:18:44 +03:00
coderaiser
a6c7d443ae chore(cloudcmd) lint 2019-07-22 20:42:09 +03:00
coderaiser
551fc98498 fix(client) load 2019-07-22 20:35:04 +03:00
coderaiser
ecd2624d2b feature(cloudcmd) simplify lint 2019-07-22 19:37:08 +03:00
coderaiser
b4629a86e4 feature(package) markdown-it v9.0.0 2019-07-11 13:16:10 +03:00
coderaiser
af28ddf201 feature(package) deepmerge v4.0.0 2019-07-10 15:31:46 +03:00
coderaiser
2f2cd58c30 chore(client) lint: merge-if-statements 2019-07-08 12:18:07 +03:00
coderaiser
ed3bdf1586 feature(package) yaspeller v6.0.0 2019-07-08 12:12:34 +03:00
coderaiser
d4ff1f97a9 chore(cloudcmd) lint 2019-07-05 14:21:21 +03:00
coderaiser
f662ec0e67 fix(cloudcmd) server start when importListen enabled 2019-06-26 14:41:55 +03:00
coderaiser
9483fbeb5d chore(cloudcmd) lint: new-line-function-call-arguments 2019-06-26 14:34:38 +03:00
coderaiser
fd6d384ba2 chore(cloudcmd) lint: convert forEach to for-of 2019-06-25 20:12:34 +03:00
coderaiser
6d69cd3a48 chore(set-current-by-char) lint 2019-06-24 15:29:38 +03:00
coderaiser
ea8ec97f49 chore(cloudcmd) lint 2019-06-19 15:05:02 +03:00
coderaiser
83a138f38c chore(cloudcmd) lint: sequence expressions 2019-06-14 14:10:18 +03:00
coderaiser
bed4f1ae13 feature(package) css-loader v3.0.0 2019-06-11 18:34:09 +03:00
coderaiser
aaeb90372e chore(cloudcmd) lint: no-paren 2019-06-11 13:30:38 +03:00
coderaiser
669f412869 feature(babel) remove unused @babel/plugin-syntax-dynamic-import 2019-06-10 18:24:36 +03:00
coderaiser
62053d9a34 feature(cloudcmd) rm Promise polyfill 2019-06-10 18:22:15 +03:00
coderaiser
e4e05e2013 feature(package) rm Object.assign polyfill 2019-06-10 18:22:15 +03:00
coderaiser
1fb920e039 chore(package) v12.6.2 2019-06-06 18:19:59 +03:00
coderaiser
b35762b1ec feature(package) remove file-loader 2019-06-06 18:19:22 +03:00
coderaiser
17498dbc07 feature(package) url-loader v2.0.0 2019-06-06 18:19:19 +03:00
coderaiser
d52fe75e43 fix(cloudcmd) config: save -> write (#247) 2019-06-06 17:58:21 +03:00
coderaiser
aca5ad0c4b chore(package) v12.6.1 2019-06-04 19:10:50 +03:00
coderaiser
b6ed7da0a7 fix(config) configManager: totally move away from singletone 2019-06-04 19:10:02 +03:00
coderaiser
2abe7d688d test(config) coverage 2019-05-31 18:30:16 +03:00
coderaiser
ce794fe0be chore(webpack) js: maxAssetSize 2019-05-31 18:17:22 +03:00
coderaiser
d81149dd15 chore(package) v12.6.0 2019-05-31 17:59:24 +03:00
coderaiser
f9c659612a feature(config-manager) add (#208) 2019-05-31 17:57:38 +03:00
coderaiser
fe9723fa15 feature(package) add support of cwd in TerminalRun with help of gritty v4.7.0 2019-05-31 13:53:31 +03:00
coderaiser
4914c22b5d docs(help) refresh -> await refresh 2019-05-28 19:10:24 +03:00
coderaiser
8961841847 feature(user-menu) add ability to ignore private methods 2019-05-28 19:04:22 +03:00
coderaiser
554023c839 chore(package) v12.5.0 2019-05-28 18:53:53 +03:00
coderaiser
71ce9fea5a docs(readme) add auth info (#219) 2019-05-28 18:50:29 +03:00
coderaiser
24aa355ed0 chore(user-menu) rm "\n" 2019-05-28 14:04:09 +03:00
coderaiser
3273c1abe5 feature(user-menu) add Compare Directories (#220) 2019-05-28 13:56:13 +03:00
coderaiser
303213c48b chore(package) v12.4.0 2019-05-27 20:33:57 +03:00
coderaiser
744983cfc4 docs(help) add User Menu Cookbook 2019-05-27 20:32:11 +03:00
coderaiser
3a16715e03 feature(terminal-run) add ability to resolve exit code 2019-05-27 20:32:09 +03:00
coderaiser
a360301759 chore(cloudfunc) rm no-multi-space 2019-05-27 19:26:29 +03:00
coderaiser
c212acd90b fix(terminal-run) resolve before close 2019-05-27 12:37:18 +03:00
coderaiser
b374437fb6 chore(package) v12.3.2 2019-05-24 19:15:55 +03:00
coderaiser
fc8eda07f7 fix(user-menu) F1 and F keys overlapping 2019-05-24 19:14:51 +03:00
coderaiser
9149f77a37 fix(select-by-pattern) crash 2019-05-24 19:04:16 +03:00
coderaiser
fc747792a1 chore(package) v12.3.1 2019-05-24 18:03:13 +03:00
coderaiser
035a63f19e fix(cloudcmd) copy 2019-05-24 18:02:34 +03:00
coderaiser
4382d8ca73 docs(help) improve User Menu Example 2019-05-24 13:28:20 +03:00
coderaiser
e1de247dbb chore(package) v12.3.0 2019-05-24 13:12:59 +03:00
coderaiser
d617dbfc03 feature(user-menu) hide scroll when small amount of items 2019-05-24 13:03:02 +03:00
coderaiser
0b0f9e80e4 chore(cloudcmd) lint 2019-05-24 12:51:50 +03:00
coderaiser
10cc40ec5a feature(user-menu) add ability to run in mobile devices 2019-05-24 12:36:42 +03:00
coderaiser
8859587768 feature(upload) improve style 2019-05-24 12:31:38 +03:00
coderaiser
070ccc4fbb feature(user-menu) imrove error output 2019-05-24 12:08:18 +03:00
coderaiser
f80f87d77d test(user-menu) coverage 2019-05-24 12:04:08 +03:00
coderaiser
093966f692 test(user-menu) clear 2019-05-23 19:16:12 +03:00
coderaiser
76184c0251 feature(user-menu) add default user menu 2019-05-23 18:18:08 +03:00
coderaiser
7b6e767ccb refactor(dom) RESTful: add tryToCatch wrapper 2019-05-23 18:18:08 +03:00
tarzak
8ac3211a86 fix(user-menu) prefix (#244) 2019-05-23 18:11:55 +03:00
coderaiser
ef38bd7aa3 feature(dialog) cancel -> tryToCatch 2019-05-22 15:16:00 +03:00
coderaiser
7e98ad725d refactor(input) mv client -> client/modules/config 2019-05-22 12:26:23 +03:00
coderaiser
ba72727fba refactor(select-by-pattern) forEach -> for-of 2019-05-22 12:26:21 +03:00
coderaiser
19239655ed test(menu) defaultMenu: add 2019-05-22 12:23:03 +03:00
coderaiser
ee59fbf8d2 refactor(cloudcmd) forEach -> for-of 2019-05-22 12:23:00 +03:00
coderaiser
f7e47d2167 chore(user-menu) double alert 2019-05-20 18:39:06 +03:00
coderaiser
a979d532d5 refactor(dom) files: promisify 2019-05-18 18:49:55 +03:00
coderaiser
9ff5dee979 refactor(files) early return 2019-05-18 17:49:56 +03:00
coderaiser
edf525f269 refactor(dom) RESTful: promisify 2019-05-17 20:10:32 +03:00
coderaiser
1b174d5f2f refactor(client) refresh: promisify 2019-05-17 19:19:51 +03:00
coderaiser
9ff5982a5b feature(user-menu) add default option: create user menu 2019-05-17 19:13:58 +03:00
coderaiser
5fb5652f3d refactor(cloudfunc) getSize: regexp 2019-05-17 14:00:52 +03:00
coderaiser
dbbeb063e7 chore(package) mv es6-promisify to dependencies 2019-05-15 18:36:20 +03:00
coderaiser
aa8c944fe9 chore(madrun) lint: add .cloudcmd.menu.js 2019-05-15 18:36:17 +03:00
coderaiser
21ac9bb45b feature(user-menu) add error handling 2019-05-15 18:24:50 +03:00
coderaiser
0b3348ee77 fix(dom) renameCurrent: try-to-promise RESTful.mv 2019-05-15 13:48:52 +03:00
coderaiser
6574d45939 feature(user-menu) add ability to navigate with j, k 2019-05-14 18:40:08 +03:00
coderaiser
ffd8a54d1e test(user-menu) getUserMenu: coverage 2019-05-14 17:58:19 +03:00
coderaiser
601a7f9310 test(route) buttons: no user menu 2019-05-14 17:55:15 +03:00
coderaiser
1dbcf92336 refactor(user-menu) menuName 2019-05-14 17:52:56 +03:00
coderaiser
a727d6f6ea feature(cloudcmd) deprecate plugins 2019-05-14 11:29:17 +03:00
coderaiser
e6f173df37 chore(travis) allow_failures: node 12 2019-05-13 18:11:51 +03:00
coderaiser
f4f88da945 docs(help) to -> two 2019-05-13 18:02:19 +03:00
coderaiser
aedafe1f4b docs(help) UserMenu: optional 2019-05-13 18:01:40 +03:00
coderaiser
e7f8769f61 docs(readme) bear in mind 2019-05-13 18:01:01 +03:00
coderaiser
ee809e1fe7 docs(readme) read 2019-05-13 17:59:19 +03:00
coderaiser
bb73d81256 chore(package) v12.2.0 2019-05-13 17:54:40 +03:00
coderaiser
ffbb96301e feature(key) add ability to rename file with Shift + F6 2019-05-13 17:51:33 +03:00
coderaiser
eb4f7c0d7c feature(user-menu) add (#221) 2019-05-13 17:45:59 +03:00
coderaiser
f60af287d3 feature(package) clean-css-loader v2.0.0 2019-05-07 18:03:26 +03:00
coderaiser
1f97fd27a0 feature(package) edward v11.0.0 2019-05-06 13:25:29 +03:00
coderaiser
c8bbc2400b feature(npmignore) add fixture.json 2019-05-06 12:13:27 +03:00
coderaiser
57142324ed feature(package) dword v11.0.0 2019-05-06 12:07:40 +03:00
coderaiser
0876469030 feature(package) smalltalk v3.4.0 2019-05-05 18:44:58 +03:00
coderaiser
f6dcdb72ec fix(operation) set-listeners: alert: noCancel -> cancel 2019-05-04 21:26:09 +03:00
coderaiser
cde38e3bb0 fix(cloudcmd) different title 2019-05-04 21:22:58 +03:00
coderaiser
632abeef87 feature(package) eslint v6.0.0-alpha 2019-05-04 20:37:25 +03:00
coderaiser
370182e3aa feature(package) eslint-plugin-node v9.0.1 2019-05-04 19:49:50 +03:00
coderaiser
4ad101dca1 feature(config) speed up load: series -> parallel 2019-05-01 18:21:16 +03:00
coderaiser
9db56a7fd7 test(terminal) node v12 support 2019-05-01 13:02:06 +03:00
coderaiser
d1af83e258 feature(cloudcmd) avoid service worker reoload scripts in dev mode 2019-05-01 12:53:02 +03:00
coderaiser
0e39ecaa77 feature(package) putout v4.23.0 2019-04-24 15:38:23 +03:00
coderaiser
2c6449b14d chore(travis) node: v12 2019-04-24 14:03:58 +03:00
coderaiser
1cfb58d922 feature(package) nyc v14.0.0 2019-04-17 11:28:34 +03:00
coderaiser
d94d448ee4 chore(package) v12.1.0 2019-04-15 15:37:38 +03:00
coderaiser
372395575c feature(edit-names) add bulk rename (#231) 2019-04-15 15:35:59 +03:00
coderaiser
768d4bbab8 feature(package) stylelint v10.0.0 2019-04-15 12:11:38 +03:00
coderaiser
0922649988 fix(heroku) app: add "}" (#236) 2019-04-15 12:04:44 +03:00
coderaiser
39318354d3 chore(package) v12.0.2 2019-04-04 15:13:47 +03:00
coderaiser
813f1c70b7 fix(listeners) any touch open file (#235) 2019-04-04 15:12:26 +03:00
coderaiser
6df78e1c9b chore(package) v12.0.1 2019-04-04 11:47:28 +03:00
coderaiser
3cf12de6c0 chore(cloudcmd) lint 2019-04-04 11:46:31 +03:00
coderaiser
46102d1a76 fix(listeners) unable to navigate into folders (#235) 2019-04-04 11:42:59 +03:00
coderaiser
841e9578b7 chore(package) v12.0.0 2019-04-01 16:27:21 +03:00
coderaiser
31e8c85d99 feature(cloudcmd) drop support of beautify, minify 2019-04-01 16:23:40 +03:00
coderaiser
009628c3ee feature(cloudcmd) improved progress of file operations 2019-04-01 15:31:27 +03:00
coderaiser
7da7bc8606 chore(madrun) watch:client:dev: rm duplicate --progress 2019-04-01 15:30:38 +03:00
coderaiser
d71066b95e feature(cloudcmd) split prefix and prefixSocket finally 2019-04-01 15:30:38 +03:00
coderaiser
5f53da58e7 chore(cloudcmd) lint: keyword spacing 2019-04-01 15:30:38 +03:00
Max_
e32e3ff47d feature(cloudcmd) view file on double click or enter 2019-04-01 15:30:29 +03:00
coderaiser
648997851c feature(cloudcmd) add ability to change directory using F3 2019-03-28 16:31:38 +02:00
coderaiser
9e2e19dfa8 chore(package) v11.8.6 2019-03-27 14:40:45 +02:00
coderaiser
e571c22891 fix(operation) progress 2019-03-27 14:39:56 +02:00
coderaiser
c1a3575d44 feature(package) opn -> open v6.0.0 2019-03-27 14:31:25 +02:00
coderaiser
6382044f1e docs(help) txt.png -> file.png 2019-03-22 13:50:06 +02:00
coderaiser
0a553558c4 chore(now) get back to v1, since v2 not support web sockets (zeit/micro#377) 2019-03-22 13:39:12 +02:00
coderaiser
6d8e58c5d8 chore(now) v2 2019-03-22 13:21:51 +02:00
coderaiser
f7134f6e2d feature(package) remove @babel/plugin-proposal-object-rest-spread 2019-03-22 13:21:51 +02:00
coderaiser
7bffaa8cc3 fix(terminal) rm IntersectionObserver handling (xtermjs/xterm.js#1929) 2019-03-14 12:20:14 +02:00
coderaiser
943924adef chore(cloudcmd) lint 2019-03-14 12:19:08 +02:00
coderaiser
916b971e77 chore(menu) lint 2019-02-28 18:56:14 +02:00
coderaiser
16e0b19df7 chore(cloudcmd) putout: convert-apply-to-spread 2019-02-27 20:53:02 +02:00
coderaiser
3175d8ab47 chore(madrun) lint 2019-02-22 13:16:04 +02:00
coderaiser
4121cc49da chore(madrun) series -> run 2019-02-21 18:09:10 +02:00
coderaiser
76c7443d07 chore(cloudcmd) lint 2019-02-21 17:17:22 +02:00
coderaiser
fa6de0ce67 test(plugins) coverage 2019-02-20 16:31:30 +02:00
coderaiser
c3bbc05f8d chore(package) v11.8.5 2019-02-20 16:19:26 +02:00
coderaiser
e4caeb66b4 fix(plugins) set content-type (#230) 2019-02-20 16:16:22 +02:00
coderaiser
3bac819760 chore(cloudcmd) lint 2019-02-18 18:47:02 +02:00
coderaiser
d6674aed3e feature(package) putout v4.0.0 2019-02-16 21:17:18 +02:00
coderaiser
f20c7b15a4 chore(npmignore) add madrun.js 2019-02-16 18:09:44 +02:00
coderaiser
17b9bde6e5 chore(package) nyc exclude 2019-02-16 18:06:46 +02:00
coderaiser
018c97f497 feature(package) madrun v2.0.0 2019-02-16 18:06:44 +02:00
coderaiser
6841da5557 chore(package) v11.8.4 2019-02-15 16:56:31 +02:00
coderaiser
f9bf2dcbcd fix(terminal) chrome does not display anything on first open (#214) 2019-02-15 13:55:41 +02:00
coderaiser
e6774023ce test(rest) rm autoGlobals 2019-02-15 13:43:24 +02:00
coderaiser
aac1c7ad43 fix(rest) can not read ###files (#223) 2019-02-15 12:50:19 +02:00
coderaiser
32de52042d chore(images) make testable 2019-02-15 12:49:51 +02:00
coderaiser
62e2ca2a64 chore(cloudcmd) lint: no-multi-spaces 2019-02-08 15:47:05 +02:00
coderaiser
d3ecafe0ea feature(package) tar-stream v2.0.0 2019-02-04 12:01:35 +02:00
coderaiser
e17dcd11c9 chore(now) add .madrun.js 2019-02-01 19:17:37 +02:00
coderaiser
d82e08281e chore(package) rm config 2019-02-01 19:05:44 +02:00
coderaiser
19763bb84d test(util) test/common/util.js -> common/util.spec.js 2019-02-01 19:05:44 +02:00
coderaiser
ea08b92e8b chore(cloudcmd) add dangle-comma 2019-02-01 19:05:41 +02:00
coderaiser
4447d43c89 feature(package) redrun -> madrun 2019-02-01 18:24:37 +02:00
coderaiser
d33ee8a7f0 fix(help) add --terminal-auto-restart 2019-02-01 17:25:34 +02:00
coderaiser
d93875b751 chore(cloudcmd) eslint-plugin-putout: one-line-destructuring 2019-02-01 15:38:18 +02:00
coderaiser
90cec0169f fix(cloudcmd) read root from custom config (#224) 2019-01-31 17:57:18 +02:00
coderaiser
040b2c2914 chore(cloudcmd) prefer const 2019-01-31 17:57:18 +02:00
coderaiser
b62984d540 chore(cloudcmd) putout: apply-destructuring 2019-01-30 16:38:08 +02:00
coderaiser
ba5fee3f94 feature(package) unionfs v4.0.0 2019-01-30 15:12:47 +02:00
coderaiser
28277e3c54 feature(package) package-json v6.0.0 2019-01-30 15:11:59 +02:00
coderaiser
79a08a36fa refactor(cloudfunc) concat -> array spread 2019-01-26 17:44:39 +02:00
coderaiser
f223cd7959 chore(eslint) rm extends from eslintrc.json, it is enabled by default 2019-01-26 17:44:25 +02:00
coderaiser
6d0f129949 chore(package) scripts: add putout to lint 2019-01-23 13:00:09 +02:00
coderaiser
8dcd80ce67 test(static) rm only 2019-01-22 11:55:18 +02:00
coderaiser
653a7bf2fa feature(package) add @putout/eslint-config 2019-01-17 13:43:09 +02:00
coderaiser
d5d67b108f chore(package) rm eslint-plugin-tape 2019-01-17 12:14:11 +02:00
coderaiser
02f8d75273 test(remove-extension) test -> client 2019-01-14 12:15:47 +02:00
coderaiser
74d56f795d feature(package) tape -> supertape 2019-01-13 20:55:42 +02:00
coderaiser
64bf5681e8 chore(putout) updated 2019-01-12 13:55:13 +02:00
coderaiser
d0a486d7e7 chore(client) split variable declarations 2019-01-10 14:58:38 +02:00
coderaiser
f6ab3ffd39 feature(package) add putout 2019-01-10 12:05:57 +02:00
coderaiser
8eeb122a38 chore(package) rm eslint-remove-line 2019-01-04 14:44:40 +02:00
coderaiser
0ca918d814 chore(files) throw() -> throw 2019-01-04 14:44:25 +02:00
coderaiser
455f4e77e0 refactor(view) viewImage: href, prefixURL -> prefixURL 2019-01-03 14:30:14 +02:00
coderaiser
d92f5f6cf6 chore(config) rm unused 2018-12-31 19:25:47 +02:00
coderaiser
d31a8188f5 chore(markdown) rm unused pullout 2018-12-31 19:24:10 +02:00
coderaiser
f2b98ba803 chore(route) rm unused 2018-12-31 19:09:01 +02:00
coderaiser
4c4ec32261 chore(validate) rm unused config 2018-12-27 20:23:49 +02:00
coderaiser
bb5898835d chore(cloudcmd) lint: add ";" 2018-12-25 15:15:31 +02:00
coderaiser
4d52059c7d chore(yaspeller) markdown, npm 2018-12-25 15:00:37 +02:00
Manoel
0c24bb1937 chore(eslint) add extension to .eslintrc file (#210)
.eslintrc without extension is deprecated
2018-12-25 14:38:47 +02:00
coderaiser
ca10cf257c feature(package) add eslint-plugin-tape 2018-12-25 14:36:19 +02:00
Tom Kenny
4c91d27cd2 docs(help) improve English translation of HELP.md (#211)
This is mostly grammar and markup fixes (written by a native English speaker).
2018-12-25 14:32:29 +02:00
coderaiser
d925634e17 feature(package) file-loader v3.0.1 2018-12-21 08:51:48 +02:00
coderaiser
160c4a8864 docs(license) 2019 2018-12-20 18:01:50 +02:00
coderaiser
29d1338a6d chore(eslint) rm sourceType 2018-12-20 18:01:30 +02:00
coderaiser
2aafe438fb chore(webpack) js: set default NODE_ENV 2018-12-20 17:30:07 +02:00
coderaiser
96d8489170 chore(webpack) js: hide size warnings 2018-12-20 17:24:36 +02:00
coderaiser
b0148003b7 feature(package) css-loader v2.0.1 2018-12-20 16:40:28 +02:00
coderaiser
a86edf1497 feature(package) kebabToCamelCase -> just-pascal-case 2018-12-05 14:12:39 +02:00
coderaiser
e6dee77695 chore(cloudcmd) destructure 2018-12-05 11:28:42 +02:00
coderaiser
4da7e07703 feature(package) deepmerge v3.0.0 2018-12-05 11:23:19 +02:00
coderaiser
47ef82aca1 chore(server) template string 2018-12-05 11:18:05 +02:00
coderaiser
e05fcf07b5 chore(package) v11.8.3 2018-12-04 20:54:23 +02:00
coderaiser
1f691f1d7f test(export) defaultConfig: prefix 2018-12-04 20:53:16 +02:00
coderaiser
9df87b827b feature(modules) socket.io v2.2.0 2018-12-04 20:44:16 +02:00
coderaiser
0fdbd9052a fix(edit) prefix (#207) 2018-12-04 20:41:54 +02:00
coderaiser
cbfce19f73 test(client) sw: register: coverage 2018-11-30 16:17:14 +02:00
coderaiser
94ad930187 feature(package) clear-module -> mock-require 2018-11-30 16:06:34 +02:00
coderaiser
afa34f7bcd test(client) dom: auto-globals 2018-11-28 11:15:24 +02:00
coderaiser
39822883d2 feature(package) auto-globals v1.7.0 2018-11-27 20:54:01 +02:00
coderaiser
0592e0f653 test(client) sw: register: auto-globals 2018-11-27 20:53:41 +02:00
coderaiser
065c2b78d5 chore(package) publishConfig: access: public 2018-11-26 21:21:57 +02:00
coderaiser
d9febd8117 feature(package) fix:lint: add eslint-remove-line 2018-11-26 21:21:48 +02:00
coderaiser
416d01f6df chore(eslint) no-multiple-empty-lines 2018-11-26 18:03:57 +02:00
coderaiser
497f7bcd40 feature(cloudcmd) sinon, sinon-called-with-diff -> @cloudcmd/stub 2018-11-23 11:55:11 +02:00
coderaiser
2f56d2b5ca test(route) realpath: error 2018-11-22 18:52:47 +02:00
coderaiser
e6195302e2 docs(readme) Docker: add -w workdir option 2018-11-22 12:13:45 +02:00
coderaiser
551f0753e8 chore(package) v11.8.2 2018-11-22 12:10:07 +02:00
coderaiser
d16e345064 fix(Dockerfile) WORKDIR (#182) 2018-11-22 12:01:14 +02:00
coderaiser
cc6e2e626b chore(package) v11.8.1 2018-11-14 18:45:33 +02:00
coderaiser
00ddcfe6f1 test(cloudcmd) before -> serve-once 2018-11-14 17:41:10 +02:00
coderaiser
2a01876c9e test(markdown) before -> serve-once 2018-11-14 17:34:42 +02:00
coderaiser
ae6936d3c2 test(route) terminal 2018-11-14 16:49:13 +02:00
coderaiser
bdf344fc2e test(plugins) description 2018-11-14 16:38:11 +02:00
coderaiser
e47d7e48d9 chore(before) rm unused 2018-11-13 16:24:58 +02:00
coderaiser
f297defea8 chore(package) nyc: exclude spec files 2018-11-13 16:24:45 +02:00
coderaiser
de3ce19eb9 test(markdown) coverage 2018-11-13 16:21:58 +02:00
coderaiser
57c57b7243 test(validate) coverage 2018-11-13 16:20:01 +02:00
coderaiser
18080f878f feature(package) pullout v3.0.0 2018-11-13 16:15:31 +02:00
coderaiser
3721e6ab40 test(plugins) options -> config 2018-11-13 15:06:50 +02:00
coderaiser
eb6a79cf97 fix(validate) corruption of config when root not found 2018-11-13 15:06:47 +02:00
coderaiser
4ff7973d43 feature(validate) root: do not validate dropbox root 2018-11-13 14:26:17 +02:00
coderaiser
4472ea7832 test(modulas) serve-once 2018-11-13 13:46:46 +02:00
coderaiser
14f0fb91ea test(plugins) serve-once 2018-11-13 12:46:49 +02:00
coderaiser
1ed504154b test(validate) rm before 2018-11-12 16:13:53 +02:00
coderaiser
8c7cd6f0de test(static) add serve-once 2018-11-12 15:54:43 +02:00
coderaiser
938938f053 docs(readme) add ` 2018-11-09 20:42:12 +02:00
coderaiser
c2bdb129e6 chore(package) v11.8.0 2018-11-09 20:36:27 +02:00
coderaiser
0908837392 feature(package) add dropbox support 2018-11-09 20:34:57 +02:00
coderaiser
ef116a9a53 test(rest) JSON.parse -> type: json 2018-11-09 14:53:20 +02:00
coderaiser
f713c24ff8 test(pack) serve-once 2018-11-09 14:53:20 +02:00
coderaiser
5505bf238d test(mv) serve-once 2018-11-09 14:53:20 +02:00
coderaiser
34b659693e chore(index) add " " 2018-11-09 14:53:20 +02:00
coderaiser
bb9dde869e test(fs) serve-once 2018-11-09 14:53:20 +02:00
coderaiser
7fc4e2f807 feature(server) add graceful shutdown 2018-11-09 14:53:15 +02:00
coderaiser
dccf79dc55 test(cp) add serve-once 2018-11-07 12:50:58 +02:00
coderaiser
a9635b49ef test(rest) config: add serve-once 2018-11-07 12:35:48 +02:00
coderaiser
d4d9a5d30f feature(package) sinon-called-with-diff v3.0.0 2018-11-05 18:44:24 +02:00
coderaiser
a6f0a8723c fix(dialog) noFiles: reject on close 2018-11-02 12:20:23 +02:00
coderaiser
8ccbff16a9 chore(package) v11.7.1 2018-11-01 19:46:34 +02:00
coderaiser
96600b6616 test(register) mock.reRequire -> reRequire 2018-11-01 19:43:32 +02:00
coderaiser
b782c0aec1 fix(cloudcmd) register service worker on http connection (#203) 2018-11-01 19:38:48 +02:00
coderaiser
7217b73e4a feature(package) criton v2.0.0 2018-11-01 12:51:44 +02:00
coderaiser
5e9db8eb3c refactor(cloudcmd) PREFIX -> prefix 2018-10-29 18:44:10 +02:00
coderaiser
6e65ad615b feature(package) eslint-plugin-node v8.0.0 2018-10-29 11:48:39 +02:00
coderaiser
9345d80b17 docs(help) example: prefix -> express mount point 2018-10-26 14:39:19 +03:00
coderaiser
f8caecf221 chore(Dockerfile) node:10 -> node 2018-10-26 11:55:04 +03:00
coderaiser
a452931ccd chore(package) v11.7.0 2018-10-25 13:12:53 +03:00
coderaiser
6348be150a chore(travis) add node v11 2018-10-25 13:04:07 +03:00
coderaiser
359a0344f8 feature(cloudcmd) add ability to set prefix for web sockets connections with --prefix-socket (#200) 2018-10-25 13:03:22 +03:00
coderaiser
63987a0585 feature(package) deepword v5.0.0 2018-10-25 12:41:19 +03:00
coderaiser
1302274bba feature(package) dword v9.0.0 2018-10-25 12:41:14 +03:00
coderaiser
c5c99a6f12 feature(package) edward v9.0.0 2018-10-25 12:41:10 +03:00
coderaiser
ded3999a12 feature(package) console-io v10.0.0 2018-10-25 12:40:59 +03:00
coderaiser
6d856d1463 feature(package) ponse v3.0.0 2018-10-24 14:49:03 +03:00
coderaiser
9450e3468b feature(package) files-io v3.0.0 2018-10-24 14:48:27 +03:00
coderaiser
96009cecd9 chore(package) v11.6.0 2018-10-23 20:04:49 +03:00
coderaiser
51ee3773f7 feature(cloudcmd) add support of express mounting point (#200) 2018-10-23 20:00:08 +03:00
coderaiser
8a92c97485 chore(package) v11.5.4 2018-10-23 17:11:32 +03:00
coderaiser
b4e2ded876 chore(cloudcmd) rm " " 2018-10-23 16:53:30 +03:00
coderaiser
9b30b0d30a feature(package) supermenu v2.1.2 2018-10-23 16:33:33 +03:00
coderaiser
35630621b6 docs(changelog) rm fix 2018-10-19 23:46:33 +03:00
coderaiser
c5cd7a2f1d feature(npmignore) add ai, cdr, eps 2018-10-19 23:39:41 +03:00
coderaiser
562c82dd62 chore(package) v11.5.3 2018-10-19 23:37:55 +03:00
coderaiser
9677dcb6bd feature(package) console-io v9.0.0 2018-10-19 23:34:28 +03:00
coderaiser
08a296b867 chore(konsole) es2018-ify 2018-10-19 20:40:00 +03:00
coderaiser
aae0025047 chore(markdown) es2018-ify 2018-10-19 20:39:45 +03:00
coderaiser
0d882d31ad chore(terminal) try-to-catch/legacy 2018-10-19 20:27:49 +03:00
coderaiser
e630e636ad chore(edit) es2018-ify 2018-10-19 20:27:15 +03:00
coderaiser
092396cc07 refactor(view) es2018-ify 2018-10-19 20:20:27 +03:00
coderaiser
0b346cc0cb chore(show-config) es2018-ify 2018-10-19 20:11:08 +03:00
coderaiser
6493cc359f feature(npmignore) add fixture 2018-10-19 20:00:31 +03:00
coderaiser
2774016518 chore(travis) add windows and osx 2018-10-19 20:00:25 +03:00
coderaiser
cfc2c84409 docs(help) status-io -> status 2018-10-19 19:07:33 +03:00
coderaiser
b7bdb67eb4 chore(package) v11.5.2 2018-10-19 14:54:31 +03:00
coderaiser
f38d6221c6 refactor(markdown) es2018-ify 2018-10-19 14:44:08 +03:00
coderaiser
b8e354b56c chore(rest) es2018-ify 2018-10-19 14:08:07 +03:00
coderaiser
1a3c535e89 chore(route) es2018-ify 2018-10-19 14:06:14 +03:00
coderaiser
d4ced2f734 fix(server) open error: exit -> warning (#196, #197, #198) 2018-10-19 13:06:36 +03:00
coderaiser
026233c804 chore(package) v11.5.1 2018-10-17 12:36:14 +03:00
coderaiser
2673e745f4 feature(olark) bower -> npm 2018-10-17 12:34:30 +03:00
coderaiser
c3dd2cb44d fix(contact) load 2018-10-17 11:45:58 +03:00
coderaiser
a2f952ff0e docs(man) --config-auth 2018-10-16 13:55:11 +03:00
coderaiser
7c9d773c73 chore(package) v11.5.0 2018-10-16 13:19:42 +03:00
coderaiser
8379a4a9bf feature(config) add ability to remove auth change from config with help of --config-auth flag 2018-10-16 13:15:56 +03:00
coderaiser
c73e4f1e29 chore(input) assign -> spread 2018-10-16 13:01:16 +03:00
coderaiser
1b8c0e2749 chore(package) v11.4.1 2018-10-16 12:49:49 +03:00
coderaiser
131b86c93a feature(package) sinon v7.0.0 2018-10-16 12:45:47 +03:00
coderaiser
51c7e414ff fix(Docker) cloudcmd_open false (#197) 2018-10-16 12:45:08 +03:00
coderaiser
ca700b82c2 chore(package) v11.4.0 2018-10-12 12:55:40 +03:00
coderaiser
8db0a03081 feature(cloudcmd) add env variable CLOUDCMD_OPEN 2018-10-12 12:54:09 +03:00
coderaiser
77862a55f6 chore(package) v11.3.1 2018-10-12 12:28:32 +03:00
coderaiser
49661297ab fix(server) crash on open error (#196) 2018-10-12 12:25:28 +03:00
coderaiser
17629f1f15 feature(cloudcmd) add unhandledRejection listener 2018-10-12 12:13:49 +03:00
coderaiser
aacf36babd feature(exit) add ability to receive error as argument 2018-10-12 12:11:15 +03:00
coderaiser
2b9fca8485 test(exit) test/server -> server/exit.spec 2018-10-12 12:04:25 +03:00
coderaiser
f4a0624470 chore(package) v11.3.0 2018-10-11 18:48:55 +03:00
coderaiser
08e5e34815 feature(img) add file-link, directory-link 2018-10-11 17:36:04 +03:00
coderaiser
846f4aa78f feature(cloudcmd) show size as <link> for links 2018-10-11 13:53:22 +03:00
coderaiser
e18ddb2e18 test(cloudfunc) clear-module -> mock-require 2018-10-10 12:57:09 +03:00
coderaiser
52ffc2ac28 feature(cloudcmd) readify: add support of links 2018-10-10 12:57:06 +03:00
coderaiser
03685ee390 feature(package) nomine v3.0.0 2018-10-10 12:31:28 +03:00
coderaiser
4428cc2232 feature(package) restafary v5.0.0 2018-10-10 11:58:00 +03:00
coderaiser
1e40d759fe feature(package) flop v6.0.0 2018-10-10 11:40:50 +03:00
coderaiser
485ba7b8ac feature(package) currify v3.0.0 2018-10-09 16:05:39 +03:00
coderaiser
901f75a499 chore(package) v11.2.3 2018-10-04 14:43:11 +03:00
coderaiser
4091346ae3 docs(readme) report -> import 2018-10-04 14:31:20 +03:00
coderaiser
e4d22db19d chore(package) rm babel-eslint 2018-10-04 13:54:12 +03:00
coderaiser
399e9c8f1d feature(package) rm unused join-io 2018-10-02 18:11:20 +03:00
coderaiser
828830c660 feature(package) apart v2.0.0 2018-10-02 13:42:06 +03:00
coderaiser
331952a8f5 chore(distribute) rm apply 2018-10-02 13:11:51 +03:00
coderaiser
9c2ed05bab feature(server) callback -> await 2018-10-02 12:48:11 +03:00
coderaiser
d72ff58fe7 chore(exit) es2018-ify 2018-10-02 12:19:45 +03:00
coderaiser
b94cd7d1a1 chore(package) v11.2.2 2018-09-28 18:15:33 +03:00
coderaiser
b5f9261504 fix(cloudcmd) prefix with leading slash (#195) 2018-09-28 18:12:50 +03:00
coderaiser
15abceefeb chore(package) v11.2.1 2018-09-28 14:09:47 +03:00
coderaiser
421b860da5 fix(sw) cache favicon.ico from root (#194) 2018-09-28 14:03:27 +03:00
coderaiser
03fda24c03 feature(package) onezip v3.0.0 2018-09-28 13:49:55 +03:00
coderaiser
207c9dde45 chore(package) v11.2.0 2018-09-28 12:59:36 +03:00
coderaiser
f070833144 feature(package) inly v3.0.0 2018-09-28 12:52:57 +03:00
coderaiser
5048a20760 feature(package) jaguar v5.0.0 2018-09-28 12:42:51 +03:00
coderaiser
3ef7ba9fdf feature(cloudcmd) add --terminal-auto-restart 2018-09-28 11:19:54 +03:00
coderaiser
91ab03c0ed chore(config) saveData -> save 2018-09-27 18:36:31 +03:00
coderaiser
f1c8082252 docs(help) add `CLOUDCMD_TERMINAL_COMMAND 2018-09-27 18:32:15 +03:00
coderaiser
d367eb46f0 chore(package) v11.1.0 2018-09-27 18:13:58 +03:00
coderaiser
ecea6c04e9 chore(stylelint) max-empty-lines 2018-09-27 17:18:04 +03:00
coderaiser
60ee31a074 feature(package) redrun v7.0.0 2018-09-27 17:05:05 +03:00
coderaiser
9218553df5 feature(package) @cloudcmd/read-files-sync v2.0.0 2018-09-27 13:58:57 +03:00
coderaiser
7d552b4089 feature(cloudcmd) --terminal-command: command to run in terminal (shell by default) 2018-09-27 13:50:17 +03:00
coderaiser
8660c06097 feature(package) gritty v4.0.0 2018-09-27 11:13:47 +03:00
coderaiser
3e7021b93e feature(package) console-io v8.0.0 2018-09-27 11:10:36 +03:00
coderaiser
5dc31e46bf chore(package) v11.0.0 2018-09-26 18:33:14 +03:00
coderaiser
ba760ab52b feature(package) babel-eslint v10.0.0 2018-09-26 18:29:36 +03:00
coderaiser
bd33a9d1df feature(package) deepword v4.0.0 2018-09-26 18:29:36 +03:00
coderaiser
500cfafca3 feature(package) edward v8.0.0 2018-09-26 18:29:36 +03:00
coderaiser
f7b39ab754 feature(package) dword v8.0.0 2018-09-26 18:29:36 +03:00
coderaiser
5c2c5321bc feature(package) restafary v4.0.0 2018-09-26 18:29:36 +03:00
coderaiser
217f3112e4 feature(package) flop v5.0.0 2018-09-26 18:29:36 +03:00
coderaiser
add71a9a7e feature(package) @cloudcmd/fileop v2.0.0 2018-09-26 18:29:36 +03:00
coderaiser
ec97df9a59 feature(package) @cloudcmd/move-files v2.0.1 2018-09-26 18:29:36 +03:00
coderaiser
1705fb7b80 feature(package) copymitter v4.0.2: add ability to copy symlinks (#191) 2018-09-26 18:28:29 +03:00
coderaiser
a232da999d chore(cloudcmd) es2018-ify 2018-09-26 18:04:00 +03:00
coderaiser
d3b965ec38 refactor(config) patch: then -> await 2018-09-26 15:36:33 +03:00
coderaiser
4a8b6e4f66 chore(view) rm dead code 2018-09-26 12:52:45 +03:00
coderaiser
33828dd155 feature(config) disable online by default 2018-09-26 12:32:33 +03:00
coderaiser
63a0c1e806 feature(config) enable open by default 2018-09-26 12:32:33 +03:00
coderaiser
1865b26b58 feature(package) set engine to node v8.0.0 LTS 2018-09-26 12:32:15 +03:00
coderaiser
a1a8f90fdb feature(package) package-json v5.0.0 2018-09-26 12:32:15 +03:00
coderaiser
432c571f55 feature(server) drop support of VCAP_APP_PORT 2018-09-26 12:32:15 +03:00
coderaiser
abc6f7b22e feature(cloudcmd) showUpdateInfo: rm rendy 2018-09-25 19:04:04 +03:00
coderaiser
da5bf3ce40 feature(package) squad v3.0.0 2018-09-24 22:45:13 +03:00
coderaiser
3eb3976b54 chore(package) v10.8.2 2018-09-21 18:48:01 +03:00
coderaiser
0c5bde5a89 fix(distribute) export: config 2018-09-21 18:41:49 +03:00
coderaiser
2d7722c19f fix(sw) register: null -> stub 2018-09-21 18:33:48 +03:00
coderaiser
95c160ca55 chore(now) add man 2018-09-21 17:22:52 +03:00
coderaiser
df302a799c chore(now) add export 2018-09-21 17:17:05 +03:00
coderaiser
5818cd4375 chore(package) v10.8.1 2018-09-20 17:03:19 +03:00
coderaiser
2ed62021f6 fix(view) change elements position when open image 2018-09-20 13:38:29 +03:00
coderaiser
8872d419e2 docs(readme) Orthodox web file manager -> File manager for the web 2018-09-19 17:50:31 +03:00
coderaiser
434b0f30e8 chore(package) v10.8.0 2018-09-19 17:18:18 +03:00
coderaiser
f20a781c0b feature(package) load -> load.js + @cloudcmd/create/element 2018-09-19 12:51:25 +03:00
coderaiser
8ab8adb400 feature(cloudcmd) rm jquery 2018-09-19 12:51:25 +03:00
coderaiser
ec2591bff2 chore(terminal) rm additional element 2018-09-17 14:48:41 +03:00
coderaiser
4cb8a57494 chore(package) v10.7.0 2018-09-14 12:37:22 +03:00
coderaiser
35d5e36421 feature(view) fancybox -> @cloudcmd/modal 2018-09-14 12:34:54 +03:00
coderaiser
99a93d77b3 fix(cloudcmd) onUpdateFound: doubled prefix for cloudcmd.common.js (#188) 2018-09-14 10:30:47 +03:00
coderaiser
d0f528892b chore(webpack) simplify build from symlinks 2018-09-14 10:30:28 +03:00
coderaiser
2d7b97986f chore(package) v10.6.0 2018-09-10 15:26:23 +03:00
coderaiser
537c303a18 feature(events) add ability to remove all added listeners 2018-09-10 14:55:08 +03:00
coderaiser
a7ac83cbd3 feature(cloudcmd) add ability update cloudcmd without page reload 2018-09-10 14:43:16 +03:00
coderaiser
3db3e61e81 chore(cloudcmd) add " " 2018-09-10 13:01:59 +03:00
coderaiser
507054c9ff test(route) no one file panel 2018-09-10 12:59:51 +03:00
coderaiser
de42d38b31 test(route) one panel mode -> one file panel 2018-09-10 12:58:34 +03:00
coderaiser
2935181452 fix(view) title: xss 2018-09-10 12:53:41 +03:00
coderaiser
f04808c709 feature(cloudcmd) add --show-file-name to add file name title in view and edit (#183) 2018-09-10 12:13:49 +03:00
coderaiser
ce0938ea11 docs(readme) add --no-show-config 2018-09-10 11:52:39 +03:00
coderaiser
c356bc76f4 fix(sw) navigation error 2018-09-10 11:27:27 +03:00
coderaiser
adbfb95012 chore(package) v10.5.3 2018-09-08 21:35:48 +03:00
coderaiser
dd7e94cde8 fix(webpack) css: font resource ignores prefix setting (#185) 2018-09-08 20:59:55 +03:00
coderaiser
e337a34cd7 chore(sw) rm unused isBasic 2018-09-08 20:59:55 +03:00
coderaiser
98be918c0f refactor(sw) move out url checks from fetch 2018-09-08 20:59:50 +03:00
coderaiser
3778c80fd6 test(config) before -> connect 2018-09-08 00:00:19 +03:00
coderaiser
58986eb52e fix(sw) no auth dialog when serve by service worker 2018-09-07 23:59:29 +03:00
coderaiser
ef0a14ba63 chore(webpack) js: add support of spread in sw 2018-09-07 23:59:29 +03:00
coderaiser
6e9acd781f fix(sw) http auth 2018-09-07 23:59:29 +03:00
coderaiser
6cbdddcd61 feature(package) babel-loader v8.0.0 2018-09-07 20:21:56 +03:00
coderaiser
03977fb928 feature(package) babel v7.0.0 2018-09-07 20:21:24 +03:00
coderaiser
aaecb99d36 feature(package) table v5.0.2 2018-09-07 20:19:23 +03:00
coderaiser
4981220d83 feature(package) style-loader v0.23.0 2018-09-07 20:18:03 +03:00
coderaiser
ed7255ea0e feature(package) nyc v13.0.1 2018-09-07 20:17:10 +03:00
coderaiser
a0a85df559 feature(package) babel-eslint v9.0.0 2018-09-07 20:17:00 +03:00
coderaiser
b1c4d5bad0 docs(help) add "--" 2018-08-25 13:49:48 +03:00
coderaiser
0e8e1edb8e docs(readme) add " " 2018-08-25 13:48:33 +03:00
coderaiser
f0bfc6cbf8 chore(package) v10.5.2 2018-08-25 13:45:40 +03:00
coderaiser
8b10dd3e3d fix(konsole) try to load console.js when console is disabled 2018-08-25 13:32:14 +03:00
coderaiser
c0ff6d7e08 chore(package) v10.5.1 2018-08-25 13:20:04 +03:00
coderaiser
7981d4a257 fix(log) makeColor: mac os 2018-08-24 23:27:38 +03:00
coderaiser
c83cbeeb22 feature(export) add config send log 2018-08-24 19:19:25 +03:00
coderaiser
3250c07a16 refactor(import) squad 2018-08-24 19:12:33 +03:00
coderaiser
954db9ad07 test(console) rm enabled by default 2018-08-24 19:11:51 +03:00
coderaiser
c1e5b5b1e5 docs(readme) localhost -> 127.0.0.1 2018-08-23 23:40:20 +03:00
coderaiser
e5f9b50d21 chore(now) cloudcmd_import_url 2018-08-23 22:59:46 +03:00
coderaiser
c9e9dd2854 chore(package) v10.5.0 2018-08-23 22:45:13 +03:00
coderaiser
1ca08c33fd docs(readme) add " " 2018-08-23 22:44:13 +03:00
coderaiser
5daf1124a1 fix(edit-file) multiple f4 2018-08-23 22:44:13 +03:00
coderaiser
9d7d66fc99 chore(now) add quotes 2018-08-23 22:44:13 +03:00
coderaiser
62412c6d9f chore(appveyor) true 2018-08-23 22:44:13 +03:00
coderaiser
6f1c834e48 chore(now) import token 2018-08-23 22:44:13 +03:00
coderaiser
ecfb4ff31e fix(config) init: load when configDialog disabled 2018-08-23 22:44:13 +03:00
coderaiser
76368ca861 fix(name-size-date) .name width 2018-08-23 22:44:13 +03:00
coderaiser
3b6788fc16 chore(package) rm redundant heroku-postbuild 2018-08-23 22:44:13 +03:00
coderaiser
4887224e45 chore(dom) rm unused 2018-08-23 22:44:13 +03:00
coderaiser
9d20120497 fix(listeners) isNoCurrent: can not go to root when root is empty 2018-08-23 22:44:13 +03:00
coderaiser
2ad2fc4023 feature(distribute) add ability to import config from remote export server 2018-08-23 22:44:10 +03:00
coderaiser
b8e4f9659a feature(package) file-loader v2.0.0 2018-08-23 12:12:47 +03:00
coderaiser
571df9cd06 feature(package) watch:lint:server 2018-08-21 18:27:42 +03:00
coderaiser
3a740330ec test(static) before -> connect 2018-08-20 13:16:52 +03:00
coderaiser
46c6ca51cf test(config) test/config -> server/config.spec 2018-08-20 00:30:46 +03:00
coderaiser
eb11192ab7 chore(images) rm unused CloudCmd 2018-08-20 00:28:18 +03:00
coderaiser
2d5453a532 chore(info) rm "\n" 2018-08-18 22:28:38 +03:00
coderaiser
7173808ce4 feature(package) add watch:test:server 2018-08-18 22:28:24 +03:00
coderaiser
c731f706f8 refactor(cloudcmd) showUpdateInfo: early return 2018-08-18 22:26:29 +03:00
coderaiser
b965ae338c chore(config) reconnectionDelay 2018-08-16 22:48:48 +03:00
coderaiser
d4f2308d77 chore(images) rm log 2018-08-16 22:30:17 +03:00
coderaiser
f0a1721069 fix(client) parallel -> series: route 2018-08-16 22:26:40 +03:00
coderaiser
c054033c54 chore(index) add quotes 2018-08-16 22:25:58 +03:00
coderaiser
441d8ed35e refactor(route) indexProcessing: noKeysPanel 2018-08-16 22:25:31 +03:00
coderaiser
7643d11f74 feature(package) yaspeller v5.0.0 2018-08-13 14:22:56 +03:00
coderaiser
ab3a53a4ec feature(package) style-loader v0.22.0 2018-08-08 11:19:56 +03:00
coderaiser
a69f639541 docs(readme) badges: rm: npm, dependencies 2018-08-06 15:09:16 +03:00
coderaiser
0471d99d13 feature(package) serviceworker-webpack-plugin v1.0.1 2018-08-03 11:43:22 +03:00
coderaiser
4c453e22be test(dom) isContainClass 2018-07-25 18:49:27 +03:00
coderaiser
2ad777025a chore(now) add cssnano.config.js 2018-07-20 14:15:37 +03:00
coderaiser
22da4860f7 chore(package) v10.4.1 2018-07-18 14:35:01 +03:00
coderaiser
0e14b02109 fix(img) loading: svg minify 2018-07-18 12:11:56 +03:00
coderaiser
e034f7c1b6 docs(readme) rm license badge 2018-07-17 13:03:20 +03:00
coderaiser
279fff4395 chore(package) v10.4.0 2018-07-17 12:53:37 +03:00
coderaiser
13d501b75b feature(package) engines: node v4.5.0 2018-07-17 12:47:47 +03:00
coderaiser
3b6f5a0abf feature(package) eslint-plugin-node v7.0.0 2018-07-17 12:41:26 +03:00
coderaiser
d5266070e7 fix(sw) cache of 401 2018-07-17 12:27:10 +03:00
coderaiser
def7a08855 feature(package) @cloudcmd/clipboard v1.0.2 2018-07-16 17:12:44 +03:00
coderaiser
619e0828af fix(polyfill) scrollIntoViewIfNeeded in firefox 2018-07-16 16:07:04 +03:00
coderaiser
6957a876e8 chore(listeners) add "," 2018-07-16 15:56:52 +03:00
coderaiser
75bbb2399c feature(package) rm unused html-webpack-exclude-assets-plugin 2018-07-16 14:32:16 +03:00
coderaiser
c7baed8395 feature(package) gritty v3.0.0 2018-07-16 14:21:04 +03:00
coderaiser
c02b4e35ba feature(package) optimize-css-assets-webpack-plugin v5.0.0 2018-07-16 11:39:07 +03:00
coderaiser
f32c6fcac8 feature(package) @cloudcmd/clipboard v1.0.1 2018-07-13 14:21:03 +03:00
coderaiser
e77d995b35 feature(package) clear-module v3.0.0 2018-07-12 11:38:08 +03:00
coderaiser
e40d03114f feature(package) smalltalk v3.1.0 2018-07-10 17:43:46 +03:00
coderaiser
4e332163e2 feature(package) css-loader v1.0.0 2018-07-09 12:46:33 +03:00
coderaiser
df59469aa3 feature(Dockerfile) mhart/alpine-node -> node:alpine 2018-07-05 16:16:29 +03:00
coderaiser
bf8523b948 docs(readme) badges: flat -> flat-square 2018-07-05 13:52:24 +03:00
coderaiser
ff9eccc38c chore(package) v10.3.2 2018-07-02 14:04:23 +03:00
coderaiser
48779742e3 fix(terminal) prevent init when config disabled 2018-07-02 12:41:47 +03:00
coderaiser
01a09a5f90 test(vim) coverage 2018-07-02 11:41:38 +03:00
coderaiser
aacb1af6b5 fix(operation) next current file after delete 2018-07-01 22:24:24 +03:00
coderaiser
ae468b4de5 fix(key) vim: do not react on navigation after view hide 2018-07-01 21:45:38 +03:00
coderaiser
fc8cbf0f07 feature(package) codegen.macro v3.0.0 2018-06-29 11:52:12 +03:00
coderaiser
af4df5e64f test(vim) mv out from test 2018-06-27 17:39:59 +03:00
coderaiser
0732063e18 chore(package) v10.3.1 2018-06-25 11:49:11 +03:00
coderaiser
374d96053b fix(npmignore) rm dist*/modules 2018-06-25 11:33:01 +03:00
coderaiser
872e4b17b4 feature(package) eslint v5.0.0 2018-06-25 10:42:47 +03:00
coderaiser
467d862215 chore(package) v10.3.0 2018-06-22 17:13:52 +03:00
coderaiser
e91620d17f fix(operation) set next file current when can not delete 2018-06-22 17:11:40 +03:00
coderaiser
37d0d70482 feature(webpack) minimize service worker size 2018-06-22 16:45:49 +03:00
coderaiser
dc781447a8 feature(terminal) move out terminal.css from view.css 2018-06-22 16:43:41 +03:00
coderaiser
15e5fb6951 chore(babel) fast-async: generators -> promises 2018-06-22 16:17:24 +03:00
coderaiser
133c1484f6 feature(package) fast-async v7.0.6 2018-06-22 15:51:29 +03:00
coderaiser
3e310724ff feature(cloudcmd) import -> load.js 2018-06-22 11:22:42 +03:00
coderaiser
4b528280ba feature(load-module) add 2018-06-22 11:07:03 +03:00
coderaiser
146b32b215 chore(package) v10.2.3 2018-06-21 20:44:42 +03:00
coderaiser
1330acbf22 fix(cloudcmd) env variables override (#179) 2018-06-21 17:51:15 +03:00
coderaiser
5592e9dba5 feature(upload-files) add ability to show error message 2018-06-19 15:36:45 +03:00
coderaiser
75f6fac284 fix(sw) register when prefix changed 2018-06-19 15:00:54 +03:00
coderaiser
71c65d7354 refactor(load-remote) wraptile 2018-06-15 14:39:06 +03:00
coderaiser
040b45394a feature(gitignore) add jquery-mouse-wheel 2018-06-15 14:17:51 +03:00
coderaiser
aa645cdfd2 chore(package) v10.2.2 2018-06-15 12:26:41 +03:00
coderaiser
153e2a63e0 test(rest) coverage 2018-06-15 11:26:00 +03:00
coderaiser
fa619b59d6 fix(config) set file mode permissions to readable only by current user (#61) 2018-06-14 16:11:02 +03:00
coderaiser
255621073d chore(package) v10.2.1 2018-06-13 17:32:05 +03:00
coderaiser
5580bcde0b fix(style) .fm: scrolling on ios 2018-06-13 16:31:44 +03:00
coderaiser
97c50d588f feature(dom) touchstart: set passive listener
https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
2018-06-13 12:17:24 +03:00
coderaiser
aa8916aea5 feature(package) format-io v1.0.0 2018-06-12 15:27:35 +03:00
coderaiser
9bc578fbbe docs(readme) add screenshot 2018-06-12 10:40:09 +03:00
coderaiser
d3cbd442e7 feature(package) add domtokenlist-shim from npm 2018-06-11 18:16:22 +03:00
coderaiser
1ce28fd500 feature(polyfill) add scroll-into-view-if-needed polyfill from npm 2018-06-11 18:02:35 +03:00
coderaiser
e12359fdaa chore(package) v10.2.0 2018-06-11 17:33:31 +03:00
coderaiser
9feb4f0fcd chore(package) rm prewisdom 2018-06-11 17:32:52 +03:00
coderaiser
cfa7a8b640 feature(cloudcmd) add ability to set current file closer to removed files 2018-06-11 15:59:41 +03:00
coderaiser
0202192fc0 feature(client) add ability to clear localStorage on logOut 2018-06-11 15:20:48 +03:00
coderaiser
76c3db3e5f feature(package) sinon v6.0.0 2018-06-11 11:01:31 +03:00
coderaiser
37a6ee08dc chore(package) v10.1.2 2018-06-09 11:42:37 +03:00
coderaiser
55488ae292 fix(dom) saveDataToStorage, getDataFromStorage: localStorage option check (#177) 2018-06-09 11:37:41 +03:00
coderaiser
a5c7db711c chore(package) v10.1.1 2018-06-08 17:08:57 +03:00
coderaiser
62d6095edb fix(menu) initial position 2018-06-08 16:52:37 +03:00
coderaiser
9f653d0371 chore(webpack) rm comment 2018-06-08 16:31:02 +03:00
coderaiser
d401a6c33b refactor(client) rm applyConstructor 2018-06-08 16:06:01 +03:00
coderaiser
2239f47d45 chore(package) v10.1.0 2018-06-07 19:33:21 +03:00
coderaiser
f7f0b07361 refactor(menu) rm Loading 2018-06-07 19:32:29 +03:00
coderaiser
d43e0b3e59 fix(operation) deleteSilent: refresh: on error -> always 2018-06-07 11:57:38 +03:00
coderaiser
c015ce6ce3 feature(edit-names-vim) add 2018-06-07 11:57:34 +03:00
coderaiser
772b82857b chore(edit-names) rm duplicate hide 2018-06-07 11:16:50 +03:00
coderaiser
e2cdcbd5ce fix(edit-file-vim) check is file changed on close 2018-06-06 17:04:39 +03:00
coderaiser
b5ff6695e1 feature(package) pullout v2.0.0 2018-06-06 11:43:54 +03:00
coderaiser
8f5d7f1e7f fix(sw) "only-if-cached" can be set only with "same-origin" mode 2018-06-05 18:07:31 +03:00
coderaiser
70e6836f35 test(register) add 2018-06-05 14:34:55 +03:00
coderaiser
40bf54aec1 chore(client) createFileTable: shorthand properties 2018-06-05 10:56:43 +03:00
coderaiser
3a46607c0f chore(package) v10.0.3 2018-06-04 16:36:05 +03:00
coderaiser
11eb619fc6 fix(index) zoom on tap 2018-06-04 14:52:36 +03:00
coderaiser
54ce29d33e fix(client) logout: servicer worker: unregister 2018-06-04 14:43:16 +03:00
coderaiser
82807b2c5c chore(sw) onFetch console.error: e -> e, pathname 2018-06-04 11:24:48 +03:00
coderaiser
ddd44e7753 feature(package) webpack-cli v3.0.1 2018-06-04 10:57:51 +03:00
coderaiser
e5d2f75606 feature(rest) add memory info 2018-06-01 16:31:34 +03:00
coderaiser
9da17585e8 feature(package) babel v7 2018-06-01 16:31:30 +03:00
coderaiser
20185d0fad feature(package) nyc v12.0.1 2018-06-01 14:09:36 +03:00
coderaiser
accdcc885d test(cloudcmd) sw 2018-05-31 13:54:28 +03:00
coderaiser
0323dd3a91 feature(cloudcmd) pullout/legacy -> pullout 2018-05-31 13:43:07 +03:00
coderaiser
293e8eb6c5 feature(package) nomine v2.0.0 2018-05-31 11:51:52 +03:00
coderaiser
b175ea18e2 chore(edit-names) shorthand properties 2018-05-31 11:27:19 +03:00
coderaiser
2fb5bc8f5b refactor(client) loadStyle: plugins -> name 2018-05-30 17:21:53 +03:00
coderaiser
90c96791be refactor(sw) add directory 2018-05-29 17:48:19 +03:00
coderaiser
ff9834cf24 chore(package) v10.0.2 2018-05-29 17:12:11 +03:00
coderaiser
530d0ee14c fix(listeners) copyPath 2018-05-29 16:54:38 +03:00
coderaiser
4aedc1d481 fix(font) copy path 2018-05-29 16:42:03 +03:00
coderaiser
950e54c990 docs(help) heroku: http -> https 2018-05-29 16:32:24 +03:00
coderaiser
b2960285bf chore(package) v10.0.1 2018-05-29 16:29:36 +03:00
coderaiser
ad7f7fcc37 fix(font) terminal icon 2018-05-29 15:09:13 +03:00
coderaiser
2fc08a1c6c docs(readme) heroku url: http -> https 2018-05-29 14:27:06 +03:00
coderaiser
3954bbe862 chore(Dockerfile) node v10 2018-05-29 10:55:08 +03:00
coderaiser
2d028b4969 chore(package) v10.0.0 2018-05-25 18:06:23 +03:00
coderaiser
93047e67c0 chore(tmpl) rm htmlDialogs 2018-05-25 17:47:17 +03:00
coderaiser
66ef51a47d chore(help) rm --cache, --no-cache 2018-05-25 17:45:58 +03:00
coderaiser
4dd54bab8e chore(app) rm duplicate CLOUDCMD_ONE_FILE_PANEL 2018-05-25 17:26:07 +03:00
coderaiser
a2416003d6 chore(cloudcmd) rm unused 2018-05-25 17:03:32 +03:00
coderaiser
7e14d61a34 feature(cloudcmd) --one-panel-mode -> --one-file-panel 2018-05-25 17:03:32 +03:00
coderaiser
0cb953af85 feature(cloudcmd) clear storage -> copy path (#173) 2018-05-25 17:03:07 +03:00
coderaiser
dc781a04c0 feature(config) rm option: htmlDialogs 2018-05-25 16:18:37 +03:00
coderaiser
234f7bcac0 feature(cloudcmd) add service worker 2018-05-25 15:59:22 +03:00
coderaiser
58c10e201a feature(config) rm option: cache 2018-05-25 15:50:23 +03:00
coderaiser
28892b3933 feature(cloudcmd) rm option: localStorage 2018-05-25 15:50:16 +03:00
coderaiser
62f166f15c chore(package) v9.6.0 2018-05-24 17:14:53 +03:00
coderaiser
a193943480 fix(docker) node v10.1 2018-05-24 17:03:25 +03:00
coderaiser
dee8810f3a feature(cloudcmd) rm global window.exec 2018-05-24 14:56:06 +03:00
coderaiser
16905fd42c feature(package) rm vulnerable fresh-require 2018-05-23 14:19:51 +03:00
coderaiser
979a8f32dc feature(package) rm vulnerable nsp 2018-05-23 14:19:51 +03:00
coderaiser
4118f90b6b fix(current-file) getParrentDirPath: path contains "+++" 2018-05-23 14:19:42 +03:00
coderaiser
550f76461e refactor(current-file) mv getParentDirPath 2018-05-23 10:03:06 +03:00
coderaiser
b3fbba10b2 feature(terminal) set fontFamily 2018-05-22 16:52:04 +03:00
coderaiser
e5526572ac feature(modules) socket.io v2.1.1 2018-05-22 11:52:12 +03:00
coderaiser
5944521719 test(rest) mv: rename 2018-05-16 13:53:11 +03:00
coderaiser
835717a084 docs(help) local storage: deprecated 2018-05-15 18:11:22 +03:00
coderaiser
907b0aacdf chore(package) v9.5.0 2018-05-15 18:08:34 +03:00
coderaiser
e77e2dbcce feature(cloudcmd) deprecate localStorage 2018-05-15 18:07:17 +03:00
coderaiser
d6c3a240b5 feature(key) add ability to copy path with help of Ctrl + p 2018-05-15 17:33:14 +03:00
coderaiser
f98027e64b fix(server) mv: rename file 2018-05-15 16:49:36 +03:00
coderaiser
c45ddd7c7c chore(gitignore) add yarn.lock 2018-05-14 12:07:07 +03:00
coderaiser
0f3692928a chore(files) function -> arrow 2018-05-12 12:05:35 +03:00
coderaiser
5f86875ef2 docs(readme) rm duplicate CLOUDCMD_CONFIG_DIALOG 2018-05-12 12:00:45 +03:00
coderaiser
2e0f8604e5 fix(cloudcmd) choose 2018-05-11 18:26:44 +03:00
coderaiser
2c5ef742cc chore(travis) rm node v9 2018-05-11 18:17:58 +03:00
coderaiser
cdc7fed69c test(cloudcmd) deprecate: one panel mode 2018-05-11 18:08:06 +03:00
coderaiser
24ef843b65 chore(vim) rm "\n" 2018-05-11 18:07:49 +03:00
coderaiser
9b2c276036 test(package) gritty: terminal enabled 2018-05-11 15:33:17 +03:00
coderaiser
9c18764178 feature(env) return boolean only 2018-05-11 13:12:10 +03:00
coderaiser
4e99372e6f feature(cloudcmd) move out dist from route 2018-05-11 13:06:31 +03:00
coderaiser
bb44a14780 refactor(listeners) isNoCurrent 2018-05-11 10:24:14 +03:00
coderaiser
493edf8cc5 fix(konsole) Ctrl + P: paste current directory path 2018-05-11 10:14:49 +03:00
coderaiser
c25dd8d774 fix(operation) set moveFn to RESTful.mv on disconnect 2018-05-10 16:16:49 +03:00
coderaiser
6e4115a8d0 docs(readme) gemnasium -> david 2018-05-10 10:29:05 +03:00
coderaiser
40f86c1b5a chore(package) v9.4.0 2018-05-08 16:17:13 +03:00
coderaiser
f1bc32617d chore(travis) rm allow failures 2018-05-08 16:12:37 +03:00
coderaiser
e10eab4de4 chore(travis) script: set series 2018-05-08 16:12:07 +03:00
coderaiser
f92964f578 chore(rest) rm " " 2018-05-08 16:12:07 +03:00
coderaiser
9963577a65 feature(cloudcmd) deprecate --one-panel-mode in favour --one-file-panel 2018-05-08 16:12:04 +03:00
coderaiser
697df5846f feature(cloudcmd) add ability to show progress on move (#157) 2018-05-08 11:16:55 +03:00
coderaiser
c793082ec8 test(terminal) enabled: no string 2018-05-08 10:32:36 +03:00
coderaiser
1b7811c185 feature(package) rm checkup 2018-05-04 16:14:09 +03:00
coderaiser
fe00e26cc7 refactor(rest) currify -> wraptile 2018-05-04 16:14:00 +03:00
coderaiser
d54ba5e25f feature(package) wraptile v2.0.0 2018-05-03 20:01:34 +03:00
coderaiser
aba4dbec0a fix(name-size) margin-right: 0 2018-05-02 20:36:03 +03:00
coderaiser
7ee202d666 feature(package) ponse v2.0.0 2018-05-02 15:00:05 +03:00
coderaiser
0c7b727c9f feature(package) onezip v2.0.0 2018-05-02 14:40:37 +03:00
coderaiser
03a27ecaa9 feature(package) jaguar v4.0.0 2018-05-02 14:39:03 +03:00
coderaiser
6ffd299343 feature(package) files-io v2.0.0 2018-05-02 14:38:52 +03:00
coderaiser
a494028746 feature(package) inly v2.0.0 2018-05-02 14:38:42 +03:00
coderaiser
3425b58855 chore(package) v9.3.2 2018-05-01 22:00:10 +03:00
coderaiser
8adca517ce feature(package) clean-css-loader v1.0.1 2018-05-01 21:56:54 +03:00
coderaiser
5acf252c45 fix(cloudcmd) cyrillic symbols in names 2018-05-01 21:56:14 +03:00
coderaiser
88acb4c9a8 test(terminal) enabled 2018-05-01 21:56:14 +03:00
coderaiser
2ba0fffe85 feature(package) copymitter v3.0.0: improved copy accuracy (#157) 2018-05-01 21:56:06 +03:00
coderaiser
b6e046f223 fix(operation) update file list after error on copy 2018-05-01 13:05:04 +03:00
coderaiser
7163f2df4e docs(readme) gitter url: cloudcmd -> cloudcmd/hello 2018-04-30 20:29:10 +03:00
coderaiser
da25d21898 docs(help) comments: multiline -> one line 2018-04-30 20:14:49 +03:00
coderaiser
4a78738b2a chore(package) v9.3.1 2018-04-30 13:48:49 +03:00
coderaiser
56c16666c3 chore(travis) add allow-failures 2018-04-30 13:36:47 +03:00
coderaiser
7978318992 feature(package) sinon v5.0.1 2018-04-30 13:19:26 +03:00
coderaiser
10ed681608 test(current-file) add 2018-04-30 13:19:22 +03:00
coderaiser
f9075ce252 refactor(listeners) decodePath 2018-04-30 12:57:00 +03:00
coderaiser
753db12b2d fix(listeners) onPathElementClick: empty space (#171) 2018-04-30 12:30:21 +03:00
coderaiser
20afb1c1c9 chore(shell) rm redundant 2018-04-30 12:09:11 +03:00
coderaiser
942fa6ff6e feature(travis) node_js: add 10 2018-04-30 11:24:24 +03:00
coderaiser
f11b22d248 feature(docker) node v10 2018-04-30 11:24:03 +03:00
coderaiser
6b3283e5b2 chore(package) v9.3.0 2018-04-27 17:06:49 +03:00
coderaiser
f604927cb6 feature(package) smalltalk: bower -> npm 2018-04-27 17:04:39 +03:00
coderaiser
9f0d3b2c4e feature(modules) menu-io -> supermenu 2018-04-27 15:22:24 +03:00
coderaiser
b7262f954b feature(package) rendy v2.0.0 2018-04-26 12:11:55 +03:00
coderaiser
44f5a062f7 chore(package) v9.2.0 2018-04-25 17:19:27 +03:00
coderaiser
396919fe6c test(route) render ddos 2018-04-25 17:17:49 +03:00
coderaiser
6a67e57344 test(cloudfunc) readFilesSync 2018-04-25 17:16:53 +03:00
coderaiser
5479dce7da feature(cloudcmd) add ability to use not only alphabet and number symbols (#167) 2018-04-25 17:16:50 +03:00
coderaiser
48c36eb5d3 fix(client) when password changed console and terminal can not authenticate when auth enabled 2018-04-24 10:54:02 +03:00
coderaiser
183700a7d4 test(route) encode 2018-04-23 17:25:43 +03:00
coderaiser
9dcbd7790d chore(package) v9.1.6 2018-04-23 17:23:00 +03:00
coderaiser
23f4d4702c fix(cloudfunc) XSS vulnerability: html in file name: allows executing malicious javascript code in the user's browser 2018-04-23 17:05:14 +03:00
coderaiser
c413d0ba6e feature(entity) add &quot; 2018-04-23 17:04:59 +03:00
coderaiser
44e2ec7f90 chore(cloudcmd) rm redundant 2018-04-23 16:43:31 +03:00
coderaiser
55c5375067 feature(package) add prewisdom 2018-04-20 15:14:36 +03:00
coderaiser
7a4a277aad chore(eslintrc) server: quotes 2018-04-20 15:06:29 +03:00
coderaiser
9bda8031d0 test(console) before -> connect 2018-04-20 15:02:21 +03:00
coderaiser
8ab347f262 test(modules) before -> connect 2018-04-20 14:26:43 +03:00
coderaiser
59d9dc2275 chore(package) v9.1.5 2018-04-19 18:31:23 +03:00
coderaiser
9fe2bdee0a fix(terminal) rows and cols 2018-04-19 18:26:27 +03:00
coderaiser
05af6770b2 fix(wepback) js: devtoolModuleFilenameTemplate 2018-04-19 18:08:11 +03:00
coderaiser
33b8e65002 feature(package) style-loader v0.21.0 2018-04-19 11:43:45 +03:00
coderaiser
11184ae086 test(validate) root: before -> connect 2018-04-19 11:43:35 +03:00
coderaiser
446095591b test(route) promise -> await 2018-04-18 14:49:25 +03:00
coderaiser
9632b671be feature(travis) node_js: rm 6 2018-04-18 14:34:47 +03:00
coderaiser
b5b6931e6b fix(now) files: add .webpack 2018-04-17 14:34:04 +03:00
coderaiser
34041bb6d2 chore(package) v9.1.4 2018-04-17 11:24:42 +03:00
coderaiser
7745fb0e9b test(before) add connect 2018-04-17 11:21:46 +03:00
coderaiser
c7f14d37e9 test(route) sendIndex: coverage 2018-04-17 11:03:13 +03:00
Matt Hoover
2008f55166 fix(download) download files with "#" in name (#80) 2018-04-17 09:46:50 +03:00
coderaiser
fb79abcab7 chore(package) v9.1.3 2018-04-16 10:25:48 +03:00
coderaiser
cb0494d2dc refactor(view) showImage: assign -> spread 2018-04-16 10:24:07 +03:00
David Rapin
cf4a273e83 fix(view) showImage: left key button in image view (#164) 2018-04-16 10:11:15 +03:00
coderaiser
f17d5b149a fix(edit-file-vim) Shift + Esc: task manager 2018-04-15 12:39:42 +03:00
coderaiser
e3470dcad9 chore(package) v9.1.2 2018-04-12 12:05:34 +03:00
coderaiser
b42715950f test(terminal) coverage 2018-04-12 12:04:43 +03:00
coderaiser
6f208c5dfb fix(operations) for-each-key v1.0.1: update file list after removing file 2018-04-12 12:04:36 +03:00
coderaiser
567a14f93d feature(webpack) deepmerge -> webpack-merge 2018-04-11 11:31:32 +03:00
coderaiser
1e716ef64f feature(webpack) split config to: js, html and css 2018-04-11 11:31:04 +03:00
coderaiser
3b17a16217 chore(package) v9.1.1 2018-04-10 12:27:14 +03:00
coderaiser
7eff4f7e41 fix(columns) name-size in firefox (#162) 2018-04-10 12:24:44 +03:00
coderaiser
11c249c8f0 feature(package) add for-each-key from npm 2018-04-04 18:03:12 +03:00
coderaiser
f694857e63 feature(modules) socket.io v2.1.0 2018-04-02 14:52:11 +03:00
coderaiser
e9b56e5887 docs(help) add CLOUDCMD_CACHE 2018-04-02 13:35:03 +03:00
coderaiser
afcbc17250 chore(package) v9.1.0 2018-04-02 13:29:41 +03:00
coderaiser
dd60a3e43f feature(cloudcmd) add --cache cli option 2018-04-02 13:28:17 +03:00
coderaiser
f248e29405 fix(client) authCheck: can not connect via web sockets when auth disabled (#160) 2018-04-02 13:28:05 +03:00
coderaiser
31737ec68f chore(package) v9.0.0 2018-03-30 16:37:47 +03:00
coderaiser
745e9b732c feature(cloudcmd) showKeysPanel -> keysPanel 2018-03-30 15:55:05 +03:00
coderaiser
ab83db8059 test(cloudcmd) coverage 2018-03-30 15:12:59 +03:00
coderaiser
0dd475fcff feature(package) dword v7.0.0 2018-03-30 10:54:14 +03:00
coderaiser
63fe6beac2 feature(package) deepword v3.0.0 2018-03-30 10:53:36 +03:00
coderaiser
eb13b764cf feature(package) edward v7.0.0 2018-03-30 10:52:52 +03:00
coderaiser
a36f862938 feature(package) console-io v7.0.0 2018-03-30 10:26:27 +03:00
coderaiser
e688e9d39e feature(cloudcmd) drop support of gritty < v2 2018-03-30 09:45:48 +03:00
coderaiser
21c829adc2 feature(config) auth 2018-03-30 09:27:57 +03:00
coderaiser
bc25f1babb feature(cloudcmd) spero, ishtar, salam, remedy, omnes -> fileop 2018-03-29 18:49:40 +03:00
coderaiser
cccffc57ba fix(cloudcmd) --no-prefix 2018-03-29 18:48:14 +03:00
coderaiser
eab4d3cc57 fix(client) goToParentDir 2018-03-29 14:15:37 +03:00
coderaiser
bfcb075480 feature(for-each-key) add 2018-03-29 14:15:32 +03:00
coderaiser
68e9bd813e feature(package) html-webpack-exclude-assets-plugin v0.0.7 2018-03-29 11:14:43 +03:00
coderaiser
c0442ce5cf chore(query) add " " 2018-03-26 13:47:03 +03:00
coderaiser
cb3bfefd83 fix(query) portrait on iphone 6 firefox 2018-03-25 14:51:49 +03:00
coderaiser
5568d8f777 feature(query) add support if iphone 6 landscape 2018-03-25 14:02:06 +03:00
coderaiser
2283ce9cbd chore(package) v8.5.2 2018-03-24 21:31:37 +02:00
coderaiser
c03b465051 chore(package) v8.5.1 2018-03-24 21:11:51 +02:00
coderaiser
dd53d178ea fix(operation) progress of copy/move (#155) 2018-03-24 21:09:30 +02:00
coderaiser
407892e995 chore(package) v8.5.0 2018-03-23 14:13:56 +02:00
coderaiser
293043999c feature(cloudcmd) add --sync-console-path 2018-03-23 14:13:41 +02:00
coderaiser
f680180d95 feature(package) console-io v6.0.1 2018-03-20 17:35:18 +02:00
coderaiser
d4d667a99d feature(package) html-webpack-exclude-assets-plugin v0.0.6 2018-03-20 11:46:33 +02:00
coderaiser
5aee086b6b feature(package) html-webpack-plugin v3.0.7 2018-03-20 11:42:31 +02:00
coderaiser
d9c6da1c5f chore(package) rm unused jscs, jshint 2018-03-20 11:35:58 +02:00
coderaiser
3817ee7ae2 feature(cloudcmd) add emitter 2018-03-19 21:23:30 +02:00
coderaiser
92960e7f8a feature(package) os-homedir -> os.homedir 2018-03-19 15:35:39 +02:00
coderaiser
6a704a81b8 fix(rest) jonny: node v4 support 2018-03-16 16:00:45 +02:00
coderaiser
2c467919ed test(cp) always rm tmp dir 2018-03-16 16:00:45 +02:00
coderaiser
62461ad338 refactor(rest) early return 2018-03-16 16:00:40 +02:00
coderaiser
b269ce95b4 refactor(move-files) move out from rest 2018-03-16 15:44:37 +02:00
coderaiser
d10c024d8d test(rest) add mkdirp 2018-03-16 12:47:43 +02:00
coderaiser
05341e2bcb chore(package) v8.4.1 2018-03-16 12:31:22 +02:00
coderaiser
016b92381c fix(rest) moveFiles: could not rename (#150) 2018-03-16 12:29:51 +02:00
coderaiser
1665b607cf chore(package) v8.4.0 2018-03-14 15:12:21 +02:00
coderaiser
f25ccaf67d feature(name-size-date) improve view 2018-03-14 11:54:46 +02:00
coderaiser
b232a936fb feature(columns) add name-size (#139) 2018-03-14 11:54:33 +02:00
coderaiser
22142e00ba feature(package) redrun v6.0.0 2018-03-07 19:15:10 +02:00
coderaiser
712e80d53b test(rest) mv: coverage 2018-03-07 18:07:33 +02:00
coderaiser
a41fd8cea5 chore(webpack) add ";" 2018-03-07 17:52:49 +02:00
coderaiser
dadc294765 test(rest) cp: coverage 2018-03-07 17:52:41 +02:00
coderaiser
d6bd52e866 refactor(webpack) extractPlugin 2018-03-06 19:28:57 +02:00
coderaiser
efab57df8b feature(package) url-loader v1.0.1 2018-03-05 14:06:34 +02:00
coderaiser
a5554933f0 refactor(columns) read-files-sync 2018-03-05 12:54:54 +02:00
coderaiser
22f8fbbf95 test(columns) add 2018-03-02 22:43:45 +02:00
coderaiser
178446a8b3 test(route) no index 2018-03-02 22:35:17 +02:00
coderaiser
b1bb35bfd9 feature(app) add CLOUDCMD_COLUMNS 2018-03-02 22:29:03 +02:00
coderaiser
128078ad6f chore(package) v8.3.0 2018-03-02 22:02:24 +02:00
coderaiser
1407a9849a chore(screen) config 2018-03-02 21:59:13 +02:00
coderaiser
36f95702e1 chore(man) rm ` 2018-03-02 21:59:04 +02:00
coderaiser
172b2f9ea2 fix(route) buildIndex: getIndexPath 2018-03-02 21:53:24 +02:00
coderaiser
dce3efe71b chore(webpack) rm default libraryTarget 2018-03-02 21:53:24 +02:00
coderaiser
b5f98be162 feature(cloudcmd) --columns: add ability to set visible columns (#146) 2018-03-02 21:53:14 +02:00
coderaiser
6c9913e5f1 feature(package) html-webpack-plugin v3.0.4 2018-03-02 14:42:56 +02:00
coderaiser
8f9867d028 feature(package) limier v2.0.0 2018-03-02 11:53:23 +02:00
coderaiser
9293d7599c featur(package) pre6to5:client, pre6to5:client:dev 2018-03-01 17:47:57 +02:00
coderaiser
73ae281bba feature(package) webpack v4.0.0 2018-03-01 17:47:54 +02:00
coderaiser
0a8ed76315 fix(listeners) pop: change #hash 2018-02-23 17:36:19 +02:00
coderaiser
239f537742 refactor(events) concat -> rest 2018-02-23 17:14:33 +02:00
coderaiser
a37cb35829 chore(package) rm unused mkdirp 2018-02-23 17:06:41 +02:00
coderaiser
7a95e0439e refactor(client) init 2018-02-23 17:06:31 +02:00
coderaiser
dfee961458 feature(package) rm jscs, jshint 2018-02-23 17:01:09 +02:00
coderaiser
54a72bd714 test(static) auth: coverage 2018-02-23 16:35:14 +02:00
coderaiser
cd0fad79e8 test(rest) isRootAll: coverage 2018-02-23 16:35:09 +02:00
coderaiser
cd1fe7db29 feature(package) jonny v2.0.3 2018-02-20 17:37:52 +02:00
coderaiser
44dc379053 refactor(config) object properties shorthands 2018-02-20 15:25:43 +02:00
coderaiser
1887b0e13c test(cloudcmd) add clear-module, mock-require 2018-02-19 17:08:12 +02:00
coderaiser
41e0d3ad8b docs(readme) create issue -> create an issue 2018-02-19 15:50:45 +02:00
coderaiser
b39bc5a218 feature(package) flop v4.0.0 2018-02-19 15:32:58 +02:00
coderaiser
895e34856d refactor(opearation) destructuring 2018-02-19 15:25:19 +02:00
coderaiser
196b72448d feature(package) add mock-require, clear-module 2018-02-19 15:24:21 +02:00
coderaiser
2cd1bd9201 chore(package) v8.2.2 2018-02-19 11:13:18 +02:00
coderaiser
8b3d894df1 feature(package) stylelint v9.0.0 2018-02-19 11:07:33 +02:00
coderaiser
ed2cbfed65 fix(directory) upload files with help of dragndrop when root directory is empty (#145) 2018-02-19 11:07:27 +02:00
coderaiser
06e55831f1 feature(package) squad v2.0.0 2018-02-16 13:57:43 +02:00
coderaiser
3f2cf39f45 feature(package) sinon-called-with-diff v2.0.0 2018-02-14 10:19:05 +02:00
coderaiser
1e4a58da2a feature(package) tryrequire v2.0.1 2018-02-09 11:35:23 +02:00
coderaiser
73c7f8713b feature(package) try-catch v2.0.0 2018-02-08 18:17:41 +02:00
coderaiser
7acf191f61 feature(package) eslint-plugin-node v6.0.0 2018-02-06 13:14:47 +02:00
coderaiser
c427244469 feature(package) es6-promisify v6.0.0 2018-01-31 16:04:23 +02:00
coderaiser
5bf10b60b1 feature(package) style-loader v0.20.1 2018-01-29 11:12:54 +02:00
coderaiser
103276eda3 chore(package) v8.2.1 2018-01-23 16:48:37 +02:00
coderaiser
4ca0be8c21 docs(readme) Windows: gritty 2018-01-23 16:47:32 +02:00
coderaiser
94747c9932 fix(operation) paste files when current file is ".." (#142) 2018-01-23 16:42:39 +02:00
coderaiser
10ffddc2f1 chore(listeners) add "\n" 2018-01-22 15:43:21 +02:00
coderaiser
1a424162c7 feature(bower) jquery v3.3.1 2018-01-22 15:42:18 +02:00
coderaiser
491e6220ca chore(index) rm " " 2018-01-19 15:36:40 +02:00
coderaiser
0cea45164e chore(polyfill) es2015-ify 2018-01-19 15:24:42 +02:00
coderaiser
ed5aeff441 chore(rest) sendRequest: var -> const 2018-01-19 15:24:42 +02:00
coderaiser
e547187490 chore(load) es2015-ify 2018-01-19 15:24:42 +02:00
coderaiser
b972b5eff3 refactor(dom) goToDirectory 2018-01-19 15:24:39 +02:00
coderaiser
60fb02f387 chore(dom) scrollIntoViewIfNeeded 2018-01-19 14:54:26 +02:00
coderaiser
c8e9e291ad chore(dom) deleteSelected: for -> map 2018-01-19 14:48:32 +02:00
coderaiser
e6e0b6d3be chore(modules) delSelected -> DOM.deleteSelected 2018-01-19 14:48:20 +02:00
coderaiser
5cfd640131 chore(dom) deleteCurrent: es2015-ify 2018-01-19 14:37:30 +02:00
coderaiser
e92f791c81 chore(dom) hidePanel: es2015-ify 2018-01-19 14:33:49 +02:00
coderaiser
0803780a30 chore(dom) getPanel: es2015-ify 2018-01-19 14:02:10 +02:00
coderaiser
ce8b075f46 chore(package) v8.2.0 2018-01-16 17:29:49 +02:00
coderaiser
1cab380c83 chore(yaspeller) add maintainers, sexualized 2018-01-16 17:23:45 +02:00
coderaiser
f195f8cee1 feature(config) username, password: add autocomplete 2018-01-16 16:44:28 +02:00
coderaiser
c04867451b feature(config) div -> form 2018-01-16 16:44:18 +02:00
coderaiser
da48b5a146 chore(config) rm " " 2018-01-16 16:35:37 +02:00
coderaiser
b8a7cebf08 chore(listeners) var -> const 2018-01-15 15:11:42 +02:00
coderaiser
eda607ff21 feature(package) mock-require v3.0.1 2018-01-15 13:58:56 +02:00
coderaiser
7179f426e2 docs(help) showConfig 2017-12-29 12:57:50 +02:00
coderaiser
f0dce68553 fix(config) showConfig 2017-12-29 12:57:40 +02:00
coderaiser
bcb726144f chore(package) codestyle: calm 2017-12-29 11:49:34 +02:00
coderaiser
5ab570f1f3 fix(now) add quotes 2017-12-29 11:22:25 +02:00
coderaiser
8f1757bd39 chore(operation) add wraptile 2017-12-28 14:25:30 +02:00
coderaiser
0d92aa21fb docs(code-of-conduct) add 2017-12-22 12:14:36 +02:00
coderaiser
ca53e56ee1 chore(edit-file-vim) add destructuring 2017-12-11 17:21:10 +02:00
coderaiser
5a70d3ddfe docs(changelog) rm test, chore 2017-12-08 17:31:12 +02:00
coderaiser
b2b55dc151 chore(package) v8.1.3 2017-12-08 17:29:32 +02:00
coderaiser
ee172502fe feature(edit-file-vim) setOption -> setKeyMap 2017-12-08 17:26:18 +02:00
coderaiser
91590b69ef fix(view) Info.files -> Info 2017-12-08 17:26:03 +02:00
coderaiser
c03fbbf11f refactor(config) connection 2017-12-07 14:43:33 +02:00
coderaiser
aa707d9afb test(config) coverage: middle 2017-12-07 14:15:03 +02:00
coderaiser
81f4a207a7 test(route) keys panel: show 2017-12-06 15:04:32 +02:00
coderaiser
af70eb5ee6 fix(config) patch 2017-12-04 18:32:08 +02:00
coderaiser
53d79bfda8 refactor(config) patch: promisify 2017-12-01 18:25:29 +02:00
coderaiser
d3b6a7505f test(rest) isRootWin32 2017-12-01 15:46:26 +02:00
coderaiser
b64ed343c2 feature(package) stylelint-config-standard v18.0.0 2017-11-27 16:29:47 +02:00
coderaiser
0d48c6b1e9 refactor(config) manageConfig 2017-11-20 17:48:09 +02:00
coderaiser
9c050b3c6e test(config) listen 2017-11-20 16:14:19 +02:00
coderaiser
45b6d20aaa refactor(rest) object shorthand 2017-11-17 16:10:43 +02:00
coderaiser
1419a85f83 fix(fancybox) _afterZoomIn: hide 2017-11-14 17:58:41 +02:00
coderaiser
31889030f1 refactor(view) addEvent: last in first out 2017-11-14 13:16:59 +02:00
coderaiser
b676c67b96 refactor(view) setCurrentByPosition 2017-11-14 12:54:41 +02:00
coderaiser
a088a6718e refactor(view) isImage 2017-11-13 13:44:07 +02:00
coderaiser
ca284ed72f test(cloudcmd) replaceDist: !isDev: dist-dev -> dist 2017-11-13 10:28:15 +02:00
coderaiser
69807a729d teste(cloudcmd) replaceDist: coverage 2017-11-09 16:38:27 +02:00
coderaiser
81262a0711 test(cloudcmd) getPrefix: coverage 2017-11-09 16:25:47 +02:00
coderaiser
bdb7bee0b0 test(cloudcmd) replacePrefix 2017-11-09 16:15:19 +02:00
coderaiser
cc30178aaa test(cloudcmd) getPrefix: coverage 2017-11-09 16:10:16 +02:00
coderaiser
65cbc8455a test(cloudcmd) authCheck 2017-11-09 15:49:48 +02:00
coderaiser
c5a4914103 chore(package) codestyle: rm calm 2017-11-08 18:14:28 +02:00
coderaiser
7c326bcac5 chore(cloudcmd) add ";" 2017-11-08 18:13:06 +02:00
coderaiser
a315e2d8c6 chore(package) fix:lint:dev 2017-11-08 18:12:33 +02:00
coderaiser
0b8d271536 chore(package) fix:lint:server: eslint -> lint 2017-11-08 18:05:24 +02:00
coderaiser
016b5c79f9 test(cloudcmd) getPrefix 2017-11-08 18:05:24 +02:00
coderaiser
10255164d5 test(cloudcmd) _authenticate 2017-11-08 18:05:19 +02:00
coderaiser
430307e574 feature(package) nsp v3.1.0 2017-11-07 10:48:42 +02:00
coderaiser
c4859cbd03 chore(package) codestyle calm 2017-11-06 15:30:42 +02:00
coderaiser
e9fa175d91 chore(yaspeller) Node 2017-11-06 09:35:34 +02:00
coderaiser
62c6acbd0c chore(yaspellerrc) named 2017-11-06 09:34:28 +02:00
coderaiser
5d613886fe refactor(cloudcmd) rm isOption 2017-11-03 17:27:08 +02:00
coderaiser
89efc7b4b3 refactor(cloudcmd) listen: rm unused size 2017-11-03 13:23:22 +02:00
coderaiser
dae5e69f7e chore(Dockerfile) node -> node:8 2017-11-01 12:21:32 +02:00
coderaiser
87ea05ba9a chore(travis) node_js: 7 -> 9 2017-11-01 12:20:06 +02:00
coderaiser
64e8a7bae8 chore(package) v8.1.2 2017-10-23 18:23:37 +03:00
coderaiser
3d874b9326 chore(rest) add " " 2017-10-23 18:18:27 +03:00
coderaiser
35b954ab46 test(rest) getWin32RootMsg 2017-10-23 18:18:27 +03:00
coderaiser
38291f1fc3 test(rest) formatMsg 2017-10-23 18:18:22 +03:00
coderaiser
ecbf8f2fe5 fix(operation) update panel after error on delete files 2017-10-23 12:40:02 +03:00
coderaiser
ba7cefc48b fix(operation) noFilesCheck: false positive: files selected but current is ".." 2017-10-23 11:37:49 +03:00
coderaiser
bba55adcb9 docs(license) 2018 2017-10-20 16:14:40 +03:00
coderaiser
eb549a5515 chore(package) v8.1.1 2017-10-19 19:43:36 +03:00
coderaiser
691aa7ad04 feature(bower) smalltalk v2.5.1 2017-10-19 19:42:16 +03:00
coderaiser
56c2c389c7 chore(menu) rm duplicate 2017-10-19 19:27:29 +03:00
coderaiser
b3a1f8bd8b chore(package) v8.1.0 2017-10-19 15:47:06 +03:00
coderaiser
2d93350d03 feature(package) lint:js:eslint:client -> lint:client 2017-10-19 15:46:37 +03:00
coderaiser
4d93472df0 fix(menu) when click on ".." show full menu 2017-10-19 15:46:34 +03:00
coderaiser
4f1e70a06b fix(menu) show menu on F9 when current is ".." 2017-10-19 13:41:56 +03:00
coderaiser
430c408383 refactor(menu) bind -> wrap 2017-10-19 12:44:43 +03:00
coderaiser
0303129006 chore(menu) rm " " 2017-10-19 12:36:18 +03:00
coderaiser
0c88313682 fix(menu) title: Menu -> Cloud Commander 2017-10-19 12:15:56 +03:00
coderaiser
4662bd7312 fix(menu) uploadTo: when error - do nothing, everything already done 2017-10-19 12:09:31 +03:00
coderaiser
11c6ccb025 feature(cloud) filepicker v2 2017-10-19 12:08:38 +03:00
coderaiser
1ece504bd6 feature(client) log: return str 2017-10-19 12:08:30 +03:00
coderaiser
83440e6da8 refactor(cloud) Util -> time, timeEnd 2017-10-18 16:49:49 +03:00
coderaiser
193448929f chore(package) v8.0.5 2017-10-13 17:08:38 +03:00
coderaiser
b51682fce4 feature(polyfill) clean up old polyfills 2017-10-13 17:07:07 +03:00
coderaiser
74e351475e refactor(config) fillTemplate: forEach -> squad, map 2017-10-13 17:01:45 +03:00
coderaiser
09059a0fe8 feature(events) rm unused dispatch 2017-10-13 17:01:39 +03:00
coderaiser
fb990f4ba7 chore(input) add "\n" 2017-10-13 16:04:47 +03:00
coderaiser
34d266b0fb chore(package) v8.0.4 2017-10-10 17:26:26 +03:00
coderaiser
733ac56aa4 feature(package) deepmerge v2.0.0 2017-10-10 11:06:43 +03:00
coderaiser
772f8abc98 feature(bower) smalltalk v2.5.0 2017-10-09 11:08:13 +03:00
coderaiser
6a0759227f chore(package) v8.0.3 2017-10-06 18:57:16 +03:00
coderaiser
7985c2db16 fix(operation) deleted file do not disappear 2017-10-06 18:52:07 +03:00
coderaiser
b633688bbd chore(package) v8.0.2 2017-10-06 16:23:15 +03:00
coderaiser
3562b6cd6f refactor(operation) add noFilesCheck 2017-10-06 16:05:51 +03:00
coderaiser
c2c66fb29f fix(operation) delete: check no files after ask 2017-10-06 15:48:27 +03:00
coderaiser
13495b8c63 feature(package) url-loader v0.6.1 2017-10-04 18:16:00 +03:00
coderaiser
619b00c8b5 feature(package) style-loader v0.19.0 2017-10-03 16:31:24 +03:00
coderaiser
d4c520d97a chore(package) v8.0.1 2017-10-02 14:51:37 +03:00
coderaiser
9ca6cfcaba fix(package) get back file-loader 2017-10-02 14:04:55 +03:00
coderaiser
cce6cd417c chore(package) v8.0.0 2017-10-02 13:59:07 +03:00
coderaiser
625e9b7183 chore(package) rm unused file-loader 2017-10-02 13:50:25 +03:00
coderaiser
598817a02e feature(cloudcmd) middleware: password: plain -> encrypted (#136) 2017-10-02 13:43:23 +03:00
coderaiser
6255bed777 feature(package) coveralls v3.0.0 2017-09-29 14:09:02 +03:00
coderaiser
fb5fb3df16 chore(package) v7.9.0 2017-09-29 14:08:58 +03:00
coderaiser
e5e8a566e2 feature(cloudcmd) add --confirm-move 2017-09-29 13:56:39 +03:00
coderaiser
743b76d3ec feature(cloudcmd) add --confirm-copy 2017-09-29 12:19:19 +03:00
coderaiser
df28ac7a78 chore(npmignore) rm unused 2017-09-29 12:19:19 +03:00
coderaiser
e3e9e92b44 test(route) getIndexPath 2017-09-29 12:19:15 +03:00
coderaiser
1005690acb test(route) file: fs 2017-09-27 14:54:14 +03:00
coderaiser
132bfc5d05 test(route) buttons: console 2017-09-27 14:54:14 +03:00
coderaiser
671101d201 feature(template) add: read all templates on start 2017-09-27 14:53:56 +03:00
coderaiser
29ac0677af test(route) keys panel 2017-09-26 13:34:04 +03:00
coderaiser
7c460fc13b test(route) buttons: one panel mode: copy, move 2017-09-26 13:25:32 +03:00
coderaiser
1283a0c5a9 feature(package) sinon v4.0.0 2017-09-26 11:21:04 +03:00
coderaiser
30991d7d49 chore(package) v7.8.0 2017-09-25 18:02:56 +03:00
coderaiser
0c2adc7f4b docs(help) Drag and Drop 2017-09-25 17:58:53 +03:00
coderaiser
c8cbe8c871 feature(listeners) add ability to move files via shift + drag 2017-09-25 17:58:21 +03:00
coderaiser
0cef0c5971 chore(package) v7.7.3 2017-09-22 19:40:11 +03:00
coderaiser
192a5dfdcc feature(bower) smalltalk v2.4.2 2017-09-22 16:19:02 +03:00
coderaiser
f983a2b405 chore(package) v7.7.2 2017-09-22 11:57:14 +03:00
coderaiser
b940d95a01 feature(package) spead up directory upload: philip: bower -> npm 2017-09-22 11:18:47 +03:00
coderaiser
b3aba1f5e3 chore(webpack) add "\n" 2017-09-19 18:54:21 +03:00
coderaiser
0a5cf9dbc3 chore(package) v7.7.1 2017-09-18 12:39:00 +03:00
coderaiser
f20debdc48 feature(package) babel-preset-2015 -> babel-preset-env 2017-09-18 12:03:37 +03:00
Tung Nguyen
750ba5571f fix(operation) RESTful.remove -> RESTful.delete (#132)
In OperationProto class, deleteFn is incorrectly set to RESTful.remove, which is undefined, when socket is disconnected.
2017-09-18 10:38:06 +03:00
coderaiser
7f7489c6a7 chore(package) v7.7.0 2017-09-12 11:48:31 +03:00
coderaiser
588025aa88 feature(cloudcmd) add support of CLOUDCMD_VIM env variable 2017-09-12 10:39:12 +03:00
coderaiser
c86c7a8c88 chore(package) v7.6.0 2017-09-11 18:03:43 +03:00
coderaiser
2edf7f8321 feature(vim) add find support with: "/", "n" and "N" 2017-09-11 17:21:43 +03:00
coderaiser
3693f6f799 feature(package) yaspeller v4.0.0 2017-09-11 10:33:20 +03:00
coderaiser
305e0845ae chore(package) v7.5.2 2017-09-08 17:12:55 +03:00
coderaiser
150375160f fix(config) vim: "false" -> false 2017-09-08 17:11:07 +03:00
coderaiser
63edc5697e chore(package) v7.5.1 2017-09-08 16:01:37 +03:00
coderaiser
dad0b7b904 fix(config) vim enabled by default 2017-09-08 15:56:34 +03:00
coderaiser
8d4083f038 fix(cloudcmd) --vim 2017-09-08 15:55:40 +03:00
coderaiser
9ff3c0938a chore(package) v7.5.0 2017-09-08 13:55:18 +03:00
coderaiser
324022743b feature(vim) add hot keys 2017-09-08 13:50:05 +03:00
coderaiser
dc79ab4a25 refactor(key) key -> key/index 2017-09-05 18:07:46 +03:00
coderaiser
752020de1a test(route) symlink-dir: autocreate 2017-09-05 16:07:09 +03:00
coderaiser
c039fae343 chore(package) v7.4.0 2017-09-04 14:10:43 +03:00
coderaiser
26e1e276ff test(route) coverage 2017-09-04 14:09:53 +03:00
coderaiser
408ad49dc0 chore(route) object shorthands 2017-09-04 14:09:52 +03:00
coderaiser
ed8a88bae3 chore(key) rm " " 2017-09-04 14:09:52 +03:00
coderaiser
02f3d3b271 feature(key) add ability to extract archives with Alt + F9 2017-09-04 14:09:46 +03:00
coderaiser
8bf1ea1d4a feature(key) add ability to pack files with Alt + F5 2017-09-04 14:09:33 +03:00
coderaiser
ee434d9376 chore(key) add early return 2017-09-04 09:55:17 +03:00
coderaiser
744b4d0919 docs(readme) rm ")" 2017-09-04 09:53:11 +03:00
coderaiser
4a9fa84d77 feature(package) docker:rm-old: --cam -> -P 2017-08-31 13:17:50 +03:00
coderaiser
fb349a964e feature(package) scripts: wisdom:type: add support of wisdom 6 2017-08-30 12:48:08 +03:00
coderaiser
02e026c09a feature(package) docker:rm-old: --parallel -> --calm 2017-08-30 12:18:54 +03:00
coderaiser
3b5b023dbb feature(package) wisdom: rm docker:rm-old 2017-08-29 15:29:03 +03:00
coderaiser
fb9b8727a0 chore(package) v7.3.2 2017-08-29 12:22:27 +03:00
coderaiser
b3355f1de5 fix(operation) pack in old packer type after changin packer without reload 2017-08-29 11:55:28 +03:00
coderaiser
a777b33389 chore(buffer) object properties shorthands 2017-08-28 11:04:38 +03:00
coderaiser
8ca69c669f chore(buffer) rm " " 2017-08-28 10:44:59 +03:00
coderaiser
fc5b454ad3 test(markdown) coverage 2017-08-17 14:17:28 +03:00
coderaiser
6dba4ba186 test(markdown) coverage: put: error 2017-08-17 13:12:21 +03:00
coderaiser
ad380bb233 test(markdown) coverage 2017-08-17 11:41:30 +03:00
coderaiser
dd256a9252 chore(markdown) rm " " 2017-08-17 11:12:50 +03:00
coderaiser
594d3770b2 test(markdown) coverage 2017-08-16 14:23:53 +03:00
coderaiser
56a833516d chore(markdown) rm " " 2017-08-16 14:09:06 +03:00
coderaiser
f1b750f73b docs(readme) appveyor badge 2017-08-16 13:50:11 +03:00
coderaiser
4a2f8dd3fe docs(readme) add appveyor badge 2017-08-16 10:43:31 +03:00
coderaiser
2af3fbc31e feature(appveyor) add terminal 2017-08-16 10:33:20 +03:00
coderaiser
d6bb29d962 feature(cloudcmd) add now demo 2017-08-15 18:32:00 +03:00
coderaiser
848502448e chore(gitignore) rm unused docker.sh 2017-08-14 18:24:34 +03:00
coderaiser
d39850809b docs(readme) filePicker: add "\n" 2017-08-14 16:40:59 +03:00
coderaiser
e06b2d01ca chore(package) v7.3.1 2017-08-14 15:55:19 +03:00
coderaiser
4efdf94daa fix(cloudcmd) empty string in CLOUDCMD_NAME and CLOUDCMD_ROOT 2017-08-14 15:48:59 +03:00
coderaiser
d0e9edccf2 chore(package) docker-loing: rm $DOCKER_EMAIL 2017-08-14 14:52:28 +03:00
coderaiser
8b28bdca22 chore(package) v7.3.0 2017-08-14 14:44:07 +03:00
coderaiser
824309f626 chore(package) add version-io 2017-08-14 14:44:07 +03:00
coderaiser
ef62697950 chore(travis) docker-ci 2017-08-14 14:36:31 +03:00
coderaiser
9fc3529511 chore(travis) docker.sh -> .travis 2017-08-14 14:27:00 +03:00
coderaiser
9d6e83875d chore(travis) rm "," 2017-08-14 14:12:33 +03:00
coderaiser
cc1205f6b4 feature(cloudcmd) add support of CLOUDCMD_ONE_PANEL_MODE (#64) 2017-08-14 13:49:45 +03:00
coderaiser
98609fde69 feature(cloudcmd) add support of CLOUDCMD_ROOT (#64) 2017-08-14 13:48:43 +03:00
coderaiser
a0f8d02993 feature(travis) add node v8 condition 2017-08-14 12:11:39 +03:00
coderaiser
83ab65396f feature(cloudcmd) add ability to build docker images with help of travis 2017-08-14 12:06:25 +03:00
coderaiser
b8153e9f20 chore(package) v7.2.2 2017-08-11 18:38:22 +03:00
coderaiser
4808a18305 fix(route) buildIndex: no index.html 2017-08-10 17:04:54 +03:00
coderaiser
d2229e965a refactor(route) buildIndex: shorthands 2017-08-10 17:03:35 +03:00
coderaiser
f1bb0bfa71 chore(index) rm " " 2017-08-07 17:07:02 +03:00
coderaiser
a466c19af1 chore(dockerignore) rm redundant bin/legacy.js 2017-08-07 16:23:17 +03:00
coderaiser
832527d0dc chore(npmignore) rm bin/legacy.js 2017-08-07 16:21:53 +03:00
coderaiser
cc29c2a318 refactor(view) fancybox -> fancybox.open: compatibility with fancybox v3 2017-08-07 14:03:27 +03:00
coderaiser
d0a017f6bf chore(util) add ";" 2017-08-07 13:35:35 +03:00
coderaiser
08d131a2f1 feature(Dockerfile) set package-lock false 2017-08-07 12:19:05 +03:00
coderaiser
b63604882c feature(dockerignore) yarn-error 2017-08-07 12:18:33 +03:00
coderaiser
8b7b3f27ed test(util) scope: coverage 2017-08-04 14:04:06 +03:00
coderaiser
abc051cad1 test(util) findObjByNameInArr: coverage 2017-08-04 13:58:36 +03:00
coderaiser
e2b1351424 test(util) getRegExp: coverage 2017-08-04 13:49:16 +03:00
coderaiser
8c01cd4605 chore(util) rm unused extendProto 2017-08-04 13:47:24 +03:00
coderaiser
406030544c feature(package) sinon v3.0.0 2017-08-04 13:28:56 +03:00
coderaiser
1a5abdef7b test(util) getExt: coverage 2017-08-03 16:34:48 +03:00
coderaiser
42c6c37ed8 test(util) escapeRegExp 2017-08-03 16:29:24 +03:00
coderaiser
5283af224f test(util) getRegExp 2017-08-03 14:46:59 +03:00
coderaiser
e0a656864e test(util) findObjByNameInArr 2017-08-03 14:43:39 +03:00
coderaiser
a8fafbf87b test(cloudfunc) coverage 2017-08-02 13:18:02 +03:00
coderaiser
9dd993fe3f refactor(cloudfunc) buildFromJSON: getDotDot 2017-08-02 12:35:49 +03:00
coderaiser
7cb681f293 test(cloudfunc) getPathLink 2017-08-02 12:20:58 +03:00
coderaiser
b695420114 rafactor(cloudfunc) buildFromJSON: getHeaderField: add 2017-08-02 12:03:00 +03:00
coderaiser
9fde2e3361 refactor(util) simplify 2017-08-02 11:30:31 +03:00
coderaiser
62f66c0c01 refactor(util) getRegExp 2017-08-02 11:20:02 +03:00
coderaiser
73e464848f chore(util) lint 2017-08-01 17:06:48 +03:00
coderaiser
697d256730 chore(package) v7.2.1 2017-07-31 15:29:45 +03:00
coderaiser
1197bcfdd4 fix(config) aditional panel 2017-07-31 15:23:37 +03:00
coderaiser
19096e2f14 fix(view) no scrallbar on help 2017-07-31 15:23:37 +03:00
coderaiser
c4b279c9be refactor(dom) updateCurrentInfo: current 2017-07-31 15:23:34 +03:00
coderaiser
a3f64221df fix(package) docker:push:latest: add (#127) 2017-07-31 12:27:02 +03:00
coderaiser
afc2569f38 chore(terminal) add "," 2017-07-28 15:00:40 +03:00
coderaiser
d156cf87ec chore(package) v7.2.0 2017-07-28 14:40:57 +03:00
coderaiser
b232d4c27e feature(cloudcmd) add support of env variable CLOUDCMD_CONSOLE 2017-07-28 14:30:10 +03:00
Jörn Zaefferer
a5656d15b4 feature(contact) add ability to hide contact button with --no-contact (#125) 2017-07-28 14:29:02 +03:00
coderaiser
7147e0a85c chore(package) v7.1.1 2017-07-27 16:37:46 +03:00
coderaiser
1ffc212583 fix(view) config: additional panel at the bottom 2017-07-27 12:50:18 +03:00
coderaiser
172c6efbf9 fix(view) terminal: set .view height 2017-07-27 12:50:08 +03:00
coderaiser
1fdc441e56 chore(package) v7.1.0 2017-07-27 11:24:29 +03:00
coderaiser
868c424f52 fix(route) showKeysPanel 2017-07-27 11:14:07 +03:00
coderaiser
99e022728d fix(config) additional bar: .view: rm height: 100% 2017-07-26 17:57:32 +03:00
coderaiser
9cdca9efe5 feature(cloudcmd) --name: add ability to set tab name in web browser 2017-07-26 17:57:26 +03:00
coderaiser
9ef0dd02dd fix(view) key binding after click outside the modal window 2017-07-26 16:05:05 +03:00
coderaiser
1521abf34b chore(cloudfunc) rm "\n" 2017-07-26 14:33:54 +03:00
coderaiser
9c16e62deb test(cloudfunc) getTitle 2017-07-26 14:27:54 +03:00
coderaiser
98de9c6bfd test(cloudfunc) getTitle 2017-07-26 12:05:48 +03:00
coderaiser
cf36456303 refactor(cloudfunc) formatMsg: name default value 2017-07-26 11:58:38 +03:00
coderaiser
99d8487b29 feature(Dockerfile) decrease image size: clean npm cache after install 2017-07-20 11:29:03 +03:00
coderaiser
dbd09e5f32 feature(gitignore) add yarn-error.log 2017-07-20 11:20:51 +03:00
coderaiser
d5718b5e52 feature(package) stylelint-config-standard v17.0.0 2017-07-17 12:14:50 +03:00
coderaiser
d206d5d3cf feature(package) stylelint v8.0.0 2017-07-17 12:14:40 +03:00
coderaiser
e8b5f46dfd chore(package) v7.0.2 2017-07-14 17:43:40 +03:00
coderaiser
df9b7b32cb feature(package) deepword v2.0.0 2017-07-14 16:56:50 +03:00
coderaiser
05f8b0b524 feature(package) dword v6.0.0 2017-07-14 16:46:06 +03:00
coderaiser
7b281df7ae docs(help) before -> first 2017-07-14 16:45:59 +03:00
coderaiser
6c92415de8 feature(package) edward v6.0.0 2017-07-14 16:26:40 +03:00
coderaiser
0787491822 feature(package) restafary v3.0.0 2017-07-14 16:26:40 +03:00
coderaiser
11717b61a2 feature(package) remedy v3.0.0 2017-07-14 16:26:40 +03:00
coderaiser
3c223e63e6 feature(gitignore) add yarn.lock 2017-07-14 16:26:40 +03:00
coderaiser
d8a599832c feature(package) flop v3.0.0 2017-07-14 16:26:40 +03:00
coderaiser
a7e139c5f8 feature(package) join-io v2.0.0 2017-07-14 16:26:40 +03:00
coderaiser
7a128d4ba4 feature(package) add eslint-plugin-node 2017-07-14 16:26:40 +03:00
coderaiser
a8005ad4ec chore(package) v7.0.1 2017-07-14 16:26:40 +03:00
coderaiser
b6537a5cfd fix(cloudcmd) node v4 support: currify, pullout 2017-07-14 16:26:39 +03:00
coderaiser
3f065f4241 feature(package) console-io v5.0.0 2017-07-14 16:26:39 +03:00
coderaiser
3638d2aa94 chore(webpack.config) add ";" 2017-07-14 16:26:39 +03:00
coderaiser
04c13c16ab chore(route) rm unused 2017-07-14 16:26:39 +03:00
coderaiser
3af24aa339 feature(npmignore) add css, html 2017-07-14 16:26:39 +03:00
coderaiser
5b758818b6 chore(package) v7.0.0 2017-07-14 16:26:39 +03:00
coderaiser
185460341e feature(auth) add currify 2017-07-14 16:26:38 +03:00
coderaiser
20e76dfc1c feature(cloudcmd) require es2015 versions of packages 2017-07-14 16:26:38 +03:00
coderaiser
7d01a4be3d feature(package) opn v5.1.0 2017-07-14 16:26:38 +03:00
coderaiser
3c759b7c14 feature(package) http-auth v3.2.3 2017-07-14 16:26:38 +03:00
coderaiser
c2a61c1584 feature(package) package-json v4.0.1 2017-07-14 16:26:38 +03:00
coderaiser
ab751b7ac8 feature(package) chalk v2.0.1 2017-07-14 16:26:38 +03:00
coderaiser
7a43ae5e9d feature(cloudcmd) rm support of node.js < 4.0.0 2017-07-14 16:26:38 +03:00
coderaiser
03dbb4489b feature(cloudcmd) rm config option: minify 2017-07-14 16:26:38 +03:00
coderaiser
039b535098 feature(route) rm minify 2017-07-14 16:26:38 +03:00
coderaiser
d98156faed test(terminal) coverage 2017-07-14 16:26:38 +03:00
coderaiser
ea7219f37b feature(package) extract-text-webpack-plugin v3.0.0 2017-07-14 16:26:38 +03:00
coderaiser
a76f6d6dee chore(terminal) rm new line 2017-07-14 16:26:38 +03:00
coderaiser
18bf29bdcc chore(webpack) unnecessary escape character 2017-07-14 16:26:38 +03:00
coderaiser
e6cc96e901 chore(route) rm unused DIR_JSON 2017-07-14 16:26:38 +03:00
coderaiser
21ffe6957d feature(package) socket.io v2.0.3 2017-07-14 16:26:32 +03:00
coderaiser
503b0c0f6e chore(package) v6.15.5 2017-07-14 15:47:03 +03:00
coderaiser
e238d52444 fix(cloudcmd) socket.io: support of node < 4 (#121) 2017-07-14 15:42:15 +03:00
coderaiser
3137a23a1c chore(package) v6.15.4 2017-07-10 15:20:07 +03:00
coderaiser
2b5ec2a949 feature(bower) smalltalk v2.4.1 (#117) 2017-07-10 12:43:50 +03:00
coderaiser
ac33f904c3 feature(package) ishtar v2.0.0 2017-07-07 16:50:24 +03:00
coderaiser
7e36d208cd feature(package) remedy v2.0.0 2017-07-07 16:31:17 +03:00
coderaiser
58763a62d7 feature(package) spero v2.0.0 2017-07-07 14:45:44 +03:00
coderaiser
8162523549 chore(main) quotes 2017-07-07 11:03:49 +03:00
coderaiser
1e0d104cda feature(package) rm mollify 2017-07-07 10:54:03 +03:00
coderaiser
616867b3b5 feature(css) add minification build step 2017-07-06 17:35:27 +03:00
coderaiser
981d5b9380 feature(webpack) loaders -> rules 2017-07-06 15:03:15 +03:00
coderaiser
103e51bee0 chore(cloudcmd) deepword: rm minify: does nothing 2017-07-05 16:33:52 +03:00
coderaiser
d209ad08ea feature(package) dword v5.0.0 2017-07-05 14:57:54 +03:00
coderaiser
fcd327ce7d feature(package) edward v5.0.0 2017-07-04 16:35:16 +03:00
coderaiser
fba5df03d9 feature(package) console-io v4.0.0 2017-07-04 14:22:30 +03:00
coderaiser
18c2c4797b chore(package) v6.15.3 2017-06-26 13:08:37 +03:00
coderaiser
f9a4770f4c fix(client) save directory path and file list to storage when dirStorage disabled 2017-06-26 12:18:16 +03:00
coderaiser
6ea54f25c9 chore(client) var -> const 2017-06-26 12:06:49 +03:00
coderaiser
70986f5a51 fix(view) show: close view on ESC 2017-06-23 17:12:36 +03:00
coderaiser
64e6048d7b chore(package) v6.15.2 2017-06-22 12:19:25 +03:00
coderaiser
97c471b71b feature(package) heroku-postbuild -> heroku-postbuild, postheroku-postbuild 2017-06-21 16:03:40 +03:00
coderaiser
706008fcd7 feature(package) webpack v3.0.0 2017-06-21 15:35:05 +03:00
coderaiser
6ab971d51b fix(konsole) when disabled error occures on second call 2017-06-21 13:58:40 +03:00
coderaiser
da8281e387 fix(config) when disabled error occures on second call 2017-06-21 13:56:43 +03:00
coderaiser
56a359a823 fix(terminal) when disabled, error occures on second call 2017-06-21 13:55:31 +03:00
coderaiser
e6a882d265 chore(package) v6.15.1 2017-06-14 15:24:11 +03:00
coderaiser
5b1a514db7 fix(client) rigth -> right 2017-06-14 15:22:33 +03:00
coderaiser
6706d359f4 fix(client) baseInit: init both panels in OnePanelMode (#116) 2017-06-14 11:26:46 +03:00
coderaiser
63f00db931 feature(modules) socket.io v2.0.3 2017-06-13 11:16:58 +03:00
coderaiser
71d366a6a1 feature(package) eslint v4.0.0 2017-06-12 17:24:21 +03:00
coderaiser
ca5a614a55 feature(app) add auth env variables 2017-06-06 16:40:03 +03:00
coderaiser
b307461d46 fix(Dockerfile) ENTRYPOINT: command -> executable 2017-06-06 14:59:23 +03:00
coderaiser
8d27102a46 chore(package) v6.15.0 2017-06-06 11:36:11 +03:00
coderaiser
84f775620f refactor(cloudcmd) port: early return 2017-06-06 11:28:53 +03:00
coderaiser
6ccb4f0be1 feature(show-config) add ability to show config values with --show-config 2017-06-06 11:28:07 +03:00
coderaiser
8132bbe3a3 fix(cloudcmd) editor: choose -> env 2017-06-06 09:35:42 +03:00
coderaiser
fc0c528037 feature(cloudcmd) add CLOUDCMD_USERNAME 2017-06-06 09:35:06 +03:00
coderaiser
4a7b11de86 feature(cloudcmd) add CLOUDCMD_PASSWORD 2017-06-06 09:33:05 +03:00
coderaiser
4860e467cb feature(help) add CLOUDCMD_AUTH 2017-06-06 09:26:56 +03:00
coderaiser
7efcf6c93d feature(modules) socket.io v2.0.2 2017-06-06 08:16:53 +03:00
coderaiser
d5d6c5fe77 feature(package) nyc v11.0.2 2017-06-06 08:16:53 +03:00
coderaiser
ec9665cdca feature(gitignore) add package-lock.json 2017-06-06 08:16:53 +03:00
coderaiser
3ec89e0d72 docs(help) Config: rm sha-1 2017-06-05 21:10:09 +03:00
coderaiser
fd7a548afb feature(package) docker:rm: add -f: force 2017-06-02 12:46:50 +03:00
coderaiser
22f1ed41f7 feature(travis) node_js: 7 -> 8 2017-05-31 12:34:27 +03:00
coderaiser
6e8fb09aa1 feature(dockerignore) reduce size of image 2017-05-30 18:01:59 +03:00
coderaiser
88dac21b21 feature(package) scripts: docker:tag 2017-05-30 18:01:20 +03:00
coderaiser
a5559b1d35 feature(npmignore) add bower.json, manifest.yml 2017-05-30 18:01:07 +03:00
coderaiser
8bfecf21f7 docs(readme) docker run 2017-05-30 15:16:02 +03:00
coderaiser
a73fddfeb2 feature(Dockerfile) Entrypoint: set absolute: add ability to override WorkDir 2017-05-30 14:47:42 +03:00
coderaiser
d50823e6a1 chore(package) v6.14.4 2017-05-25 15:50:58 +03:00
coderaiser
c9a1441c6d fix(package) put fullstore in dependencies 2017-05-25 11:59:40 +03:00
coderaiser
708b7251b6 chore(index) add ";" 2017-05-25 10:56:30 +03:00
coderaiser
77a680ac37 chore(client) add ";" 2017-05-25 10:56:02 +03:00
coderaiser
c91b4a7e52 chore(package) keywords: terminal 2017-05-24 11:46:43 +03:00
coderaiser
f47e224d3f chore(package) watch:client:dev: move upper 2017-05-24 11:40:24 +03:00
coderaiser
f5da939bfa feature(bower) smalltalk v2.4.0 2017-05-23 14:26:22 +03:00
coderaiser
c41efde6a6 feature(package) rm unused version-io 2017-05-23 12:35:27 +03:00
coderaiser
4b41832be7 chore(release) early return 2017-05-23 11:20:34 +03:00
coderaiser
052134d392 chore(package) v6.14.3 2017-05-22 17:20:44 +03:00
coderaiser
30bdde839f fix(client) dirStorage: save date 2017-05-22 17:12:32 +03:00
coderaiser
0e30e972d1 refactor(client) loadModule: add early return 2017-05-22 16:50:10 +03:00
coderaiser
6109edea6e chore(release) rm " " 2017-05-22 13:42:19 +03:00
coderaiser
190b797751 feature(bower) philip v1.3.7 2017-05-22 12:38:23 +03:00
coderaiser
ce73cbfbe7 feature(cloudcmd) store -> fullstore 2017-05-22 12:32:39 +03:00
coderaiser
60fe5b600e chore(package) v6.14.2 2017-05-18 17:05:35 +03:00
coderaiser
6be2c41823 fix(edit-file) show editor when access denied 2017-05-18 16:49:12 +03:00
coderaiser
a741795ef3 chore(package) v6.14.1 2017-05-18 15:02:49 +03:00
coderaiser
e2f3f83265 feature(edit-file-vim) add ability to reuse edit-file: minimize file size 2017-05-18 14:56:55 +03:00
coderaiser
49622faa7e chore(package) v6.14.0 2017-05-17 17:18:07 +03:00
coderaiser
06c9663ae9 feature(edit-file-vim) editor: add vim mode on shift + f4 2017-05-17 17:13:53 +03:00
coderaiser
c068a99e76 feature(bower) smalltalk v2.3.1 2017-05-17 12:15:56 +03:00
coderaiser
0cab93c2c2 chore(edit-file) rm " " 2017-05-16 17:45:16 +03:00
coderaiser
48cc504124 feature(package) rm recess 2017-05-16 17:37:52 +03:00
coderaiser
daa45cc516 fix(route) termianl -> terminal 2017-05-16 17:34:31 +03:00
coderaiser
e54a722ec5 chore(cloudfunc) formatMsg: default arguments 2017-05-16 16:44:29 +03:00
coderaiser
c72c325417 chore(commont) commont -> server/common: compatibility with old node 2017-05-16 16:44:29 +03:00
coderaiser
ea297fc23e feature(store) add 2017-05-16 16:44:25 +03:00
coderaiser
fe0210d573 chore(package) v6.13.0 2017-05-15 17:41:12 +03:00
coderaiser
8db7a77fdf feature(cloudcmd) add terminal button (#115) 2017-05-15 17:38:59 +03:00
coderaiser
999c79559f feature(listeners) add get-index, get-range 2017-05-15 15:43:05 +03:00
coderaiser
7ed91a6084 chore(dom) es2015-ify 2017-05-15 13:42:05 +03:00
coderaiser
d82c49b0d6 refactor(dom) getAllFiles 2017-05-15 13:35:10 +03:00
coderaiser
3ed9b30994 feature(dom) toggleSelect only when not ".." 2017-05-15 13:32:17 +03:00
coderaiser
32076acbad fix(getFilesRange) avoid selecting of ".." 2017-05-15 13:32:11 +03:00
coderaiser
02e4ca294f chore(package) v6.12.0 2017-05-12 16:01:58 +03:00
coderaiser
fb9d7cac53 feature(listeners) add ability to copy files with help of drag n drop (#114) 2017-05-12 15:56:35 +03:00
coderaiser
9b70958c0c fix(listeners) getFileRange: select with shift + click 2017-05-12 15:52:48 +03:00
coderaiser
fe2e8398c3 refactor(listeners) setOnPanel 2017-05-12 12:56:56 +03:00
coderaiser
2c7245298f refactor(listeners) togglSelect 2017-05-12 12:45:31 +03:00
coderaiser
5e209bff32 refactor(listeners) toggleSelect: toggleSelectedFile -> selectFile 2017-05-11 18:15:16 +03:00
coderaiser
e0855bee7b chore(cloudcmd) lint 2017-05-11 18:07:50 +03:00
coderaiser
ae5cd0a99d refactor(listeners) es2015-ify 2017-05-11 18:04:46 +03:00
coderaiser
0c64282391 test(root) add 2017-05-11 12:45:45 +03:00
coderaiser
3d3a479a59 test(modulas) no modules 2017-05-11 12:04:26 +03:00
coderaiser
16e1fbd9a9 chore(cloudcmd) rm default values 2017-05-11 11:45:35 +03:00
coderaiser
1c934d5a82 feature(config) add ability to override absent values in config 2017-05-11 11:42:31 +03:00
coderaiser
a127ac9b53 refactor(cloudcmd) defaultValue 2017-05-11 11:41:09 +03:00
coderaiser
8548c72d22 chore(package) v6.11.0 2017-05-10 17:06:54 +03:00
coderaiser
914ab93ab8 feature(bower) smalltalk v2.2.1 2017-05-10 16:55:38 +03:00
coderaiser
124cc050f3 feature(package) socket.io-client v2.0.1 2017-05-10 14:15:18 +03:00
coderaiser
0aa54010a9 feature(bower) jquery v3.2.1 2017-05-10 14:15:11 +03:00
coderaiser
5c1870e9f7 feature(package) socket.io v2.0.1 2017-05-10 12:45:46 +03:00
coderaiser
958973b57c feature(cloudcmd) add ability to override editor with CLOUDCMD_EDITOR environment variable 2017-05-10 12:45:45 +03:00
coderaiser
c71d087695 feature(modules) socket.io v1.7.4 2017-05-10 12:45:45 +03:00
coderaiser
bb9b131b2f fix(style) focus on click in IOS Safari 2017-05-10 12:45:45 +03:00
coderaiser
9ac60549c7 feature(bower) philip v1.3.6 2017-05-10 12:45:40 +03:00
coderaiser
75a590a411 feature(package) emitify v3.0.2 2017-04-28 16:56:45 +03:00
coderaiser
ad65f25950 feature(bower) rm emitify 2017-04-28 15:42:40 +03:00
coderaiser
f37ad00984 chore(config) dos2unix 2017-04-26 12:44:41 +03:00
coderaiser
86ce735062 chore(package) v6.10.1 2017-04-25 16:25:53 +03:00
coderaiser
0b6897c1ed fix(webpack) umd -> var: load editor before console 2017-04-25 15:20:34 +03:00
coderaiser
eaa58a5ba0 chore(konsole) DOM: require -> global 2017-04-25 15:20:08 +03:00
coderaiser
c3d3242001 fix(edit-names) deepword: setMode 2017-04-25 15:19:27 +03:00
coderaiser
827200c6f9 chore(events) es2015-ify 2017-04-25 15:18:20 +03:00
coderaiser
84478220e9 refactor(edit-names) refresh 2017-04-25 12:44:33 +03:00
coderaiser
5ec7d838ac test(terminal) disabled 2017-04-25 12:24:43 +03:00
coderaiser
82e379ee7f refactor(input) clone -> Object.assign 2017-04-25 12:10:24 +03:00
coderaiser
10307291a3 fix(terminal) config: terminal and terminalPath checked before set 2017-04-25 11:56:49 +03:00
coderaiser
a260a921ba chore(package) v6.10.0 2017-04-24 17:17:27 +03:00
coderaiser
62b0d2a971 chore(yaspeller) gz 2017-04-24 16:43:13 +03:00
coderaiser
ac598c7f95 chore(operation) rm " " 2017-04-24 14:46:26 +03:00
coderaiser
9641415a00 feature(operation) add support of unpacking bzip2 archives: .bz2, .tar.bz2, .tbz2 2017-04-24 14:39:09 +03:00
coderaiser
4f61036847 chore(operation) function -> arrow function 2017-04-24 11:11:16 +03:00
coderaiser
46a09116ea feature(package) babel-loader v7.0.0 2017-04-24 10:30:36 +03:00
coderaiser
75a62b741e chore(jshint) regular parameters should not come after default parameters 2017-04-20 16:57:55 +03:00
coderaiser
67b5cae29f test(cloudfunc) add html-looks-like 2017-04-18 14:29:44 +03:00
coderaiser
905876f865 docs(issue) add command line, config 2017-04-18 12:58:39 +03:00
coderaiser
d20128add5 chore(package) v6.9.3 2017-04-18 12:47:54 +03:00
coderaiser
110e421dd6 feature(client) refresh: panel, options, callback -> options, callback: add currentName 2017-04-18 12:43:47 +03:00
coderaiser
b13f1f4de7 fix(menu) set current file after upload from cloud 2017-04-18 11:47:30 +03:00
coderaiser
7b240cab34 fix(upload-files) upload a file to an empty root directory (#113) 2017-04-18 10:47:01 +03:00
coderaiser
a3ce48f14f refactor(storage) rm unused: isAllowed 2017-04-14 15:29:00 +03:00
coderaiser
3b8500c410 chore(package) v6.9.2 2017-04-13 12:13:59 +03:00
coderaiser
37f8c5e48f fix(terminal) rm style height 2017-04-13 11:50:39 +03:00
coderaiser
b4f51d1353 chore(package) v6.9.1 2017-04-12 16:42:50 +03:00
coderaiser
1cabb14bcc feature(upload-file) add wraptile 2017-04-12 15:58:11 +03:00
coderaiser
d59c998b71 fix(upload-file) PREFIX_URL (#113) 2017-04-12 15:41:52 +03:00
coderaiser
f8e868eaaf feature(package) add sinon-called-with-diff 2017-04-07 11:54:04 +03:00
coderaiser
7c38e5b8c6 chore(cloudfunc) semicolon 2017-04-04 15:54:50 +03:00
coderaiser
d164830770 feature(webpack) devtoolModuleFilenameTemplate: webpack:// -> cloudcmd 2017-04-04 14:19:24 +03:00
coderaiser
5232186a3b feature(webpack) output: pathInfo 2017-04-04 12:06:01 +03:00
coderaiser
828ab6cf4b feature(package) scripts: build:client:dev 2017-04-04 12:05:52 +03:00
coderaiser
45a6a08fc1 feature(Dockerfile) alpine: rm node-pty < 0.6.3 fallback 2017-04-03 15:15:55 +03:00
coderaiser
25c480ae22 chore(cloudfunc) buildFromJSON: es2015-ify 2017-04-03 14:00:32 +03:00
coderaiser
78ac25b752 chore(util) caes -> case 2017-04-03 13:59:53 +03:00
coderaiser
5de00da3ec feature(travis) build client before test 2017-03-30 14:20:24 +03:00
coderaiser
6cddde08eb chore(cloudfunc) getPathLink: es2015-ify 2017-03-29 16:55:04 +03:00
coderaiser
e2950fbdef test(static) /cloudcmd.js 2017-03-29 15:41:16 +03:00
coderaiser
02bac76d1a chore(cloudcmd) arrow function 2017-03-29 15:41:03 +03:00
coderaiser
7474ed9b4f feature(package) scripts: watch:coverage 2017-03-29 15:40:42 +03:00
coderaiser
8b4bc7cdc9 test(route) add 2017-03-28 16:10:11 +03:00
coderaiser
27cbed207b test(terminal) add 2017-03-28 16:10:08 +03:00
coderaiser
b781f90046 test(validate) packer 2017-03-27 15:08:44 +03:00
coderaiser
520aa075fa test(entity) add 2017-03-27 15:08:17 +03:00
coderaiser
0aab46588d test(entity) add 2017-03-27 12:32:59 +03:00
coderaiser
02e835eb06 test(validate) editor 2017-03-24 16:43:50 +02:00
coderaiser
668a0dad9a chore(util) es2015-ify 2017-03-24 16:43:46 +02:00
coderaiser
8249756bcf fix(client) route: strBigFirst -> kebabToCamelCase 2017-03-24 16:03:15 +02:00
coderaiser
2e4c1dfe4d chore(package) v6.9.0 2017-03-23 18:01:27 +02:00
coderaiser
51481fb054 feature(cloudcmd) add ability to override modules (#109) 2017-03-23 17:53:41 +02:00
coderaiser
3044ac0c88 feature(server) cloudfunc: common -> server 2017-03-23 10:30:25 +02:00
coderaiser
b8334d3463 feature(entity) add from cloudfunc 2017-03-22 15:10:08 +02:00
coderaiser
95ac0d9f8f refactor(cloudfunc) add proxy in common 2017-03-22 13:45:25 +02:00
coderaiser
6c2ef63847 refactor(cloudfunc) mv: common -> server 2017-03-22 13:45:17 +02:00
coderaiser
ae3bf436b4 chore(cloudfunc) es2015-ify 2017-03-22 13:35:43 +02:00
coderaiser
084bc60d5e test(exit) add 2017-03-22 12:14:24 +02:00
coderaiser
ac1c8efd8e chore(package) v6.8.1 2017-03-21 12:33:57 +02:00
coderaiser
445bcb70b7 fix(style) .panel, .cmd-button: border in Chrome Canary v59: 1.5px -> 1px 2017-03-21 12:29:23 +02:00
coderaiser
d01682da21 chore(konsole) es2015-ify 2017-03-21 12:14:17 +02:00
coderaiser
1404ceb38f refactor(release) cl: getVersionNew 2017-03-21 11:31:45 +02:00
coderaiser
9a545a9e7c chore(index) renameCurrent: es2015-ify 2017-03-20 16:45:11 +02:00
coderaiser
91fee46a59 test(env) add 2017-03-07 15:08:48 +02:00
coderaiser
8fcb28a0dd chore(package) v6.8.0 2017-03-06 22:20:36 +02:00
coderaiser
1e2b9f0623 chore(babelrc) add " " 2017-03-06 18:02:52 +02:00
coderaiser
be0f596abe fix(key) TRA: prevent Terminal of handling ~ key 2017-03-05 14:37:31 +02:00
coderaiser
5f1c9dbf1f docs(readme) overriden -> overridden 2017-03-05 14:26:46 +02:00
coderaiser
076077223a chore(cloudcmd) add choose 2017-03-05 14:19:39 +02:00
coderaiser
f1310f303f feature(cloudcmd) add env var CLOUDCMD_CONFIG_DIALOG 2017-03-05 13:59:21 +02:00
coderaiser
85676cf023 feature(env) add env vars CLOUDCMD_TERMINAL, CLOUDCMD_TERMINAL_PATH 2017-03-05 13:59:14 +02:00
coderaiser
ecc7da732b chore(package) v6.7.0 2017-03-04 14:12:11 +02:00
coderaiser
db2a58ca44 feature(terminal) add optional --terminal support 2017-03-04 14:02:45 +02:00
coderaiser
9c80c0f3ac chore(client) rm unused 2017-03-03 16:30:08 +02:00
coderaiser
7b7ea2ab5f fix(client) add join 2017-03-03 14:23:40 +02:00
coderaiser
3418bcc3a9 chore(webpack) babel-loader: presets: rm duplicate entry 2017-03-02 12:24:41 +02:00
coderaiser
55c1299619 feature(webpack) babelify only for prod 2017-03-02 12:17:38 +02:00
coderaiser
6242966f44 chore(webpack) rm comment 2017-03-02 12:12:13 +02:00
coderaiser
f5fb8497bc feature(modules) socket.io v1.7.3 2017-03-01 11:14:27 +02:00
coderaiser
c165021b49 feature(bower) fancybox v2.1.6 2017-03-01 10:59:57 +02:00
coderaiser
dfc1d2e5cd chore(dom) es2015-ify 2017-02-28 17:13:22 +02:00
coderaiser
fe36d60c66 chore(dom) getParentDirPath: es2015-ify 2017-02-28 15:30:31 +02:00
coderaiser
f765b285f0 chore(dom) promptNew: es2015-ify 2017-02-28 15:13:52 +02:00
coderaiser
3d9656c4c2 feature(load-remote) add 2017-02-28 14:00:12 +02:00
coderaiser
8daa190351 chore(dom) setCurrentFile: es2015-ify 2017-02-28 12:16:51 +02:00
coderaiser
b2c73f6d1a feature(select-by-pattern) add from dom 2017-02-27 16:32:31 +02:00
coderaiser
44aa8ed11b chore(dom) getAllFiles: es2015-ify 2017-02-27 16:13:06 +02:00
coderaiser
6681d17624 feature(dom-tree) add from dom 2017-02-27 16:06:09 +02:00
coderaiser
40097efbb5 chore(dom) DOMTreeProto: es2015-ify 2017-02-27 15:49:54 +02:00
coderaiser
0f70b5da31 chore(dom) duplicatePanel: es2015-ify 2017-02-27 15:09:40 +02:00
coderaiser
02a19fecbf chore(dom) swapPanels: es2015-ify 2017-02-27 14:51:21 +02:00
coderaiser
4dc5f6a249 refactor(upload-files) add from dom 2017-02-27 12:29:06 +02:00
coderaiser
ebe0183de0 refactor(CloudFunc) window.CloudFunc -> require 2017-02-27 12:20:39 +02:00
coderaiser
62899daa17 refactor(modules) add dom 2017-02-27 11:49:59 +02:00
coderaiser
75b36463f1 refactor(modules) add directory 2017-02-27 11:13:20 +02:00
coderaiser
5f5f72b65d refactor(images) images -> dom/images 2017-02-27 10:29:02 +02:00
coderaiser
e21c920507 chore(package) v6.6.3 2017-02-24 16:46:36 +02:00
coderaiser
93bef66767 refactor(view) DOM.Images -> require 2017-02-24 16:43:37 +02:00
coderaiser
12642d523d refactor(dom) DOM.Images -> Images 2017-02-24 16:42:28 +02:00
coderaiser
96e7b665f7 fix(load) Images 2017-02-24 16:42:15 +02:00
coderaiser
d721b41b95 chore(package) v6.6.2 2017-02-24 16:16:47 +02:00
coderaiser
7fa1db8982 refactor(dom) uploadFiles: es2015-ify 2017-02-24 16:13:37 +02:00
coderaiser
c334873c26 chore(dom) uopdateCurrentInfo: es2015-ify 2017-02-24 15:58:11 +02:00
coderaiser
9e95d5fe97 fix(listeners) resize: empty root 2017-02-24 15:55:15 +02:00
coderaiser
f6043b5477 chore(dom) one var -> multi var 2017-02-24 15:53:07 +02:00
coderaiser
729dc8464e chore(package) v6.6.1 2017-02-24 10:50:02 +02:00
coderaiser
c761d083a7 feature(bower) smalltalk v2.2.0 2017-02-24 10:37:34 +02:00
coderaiser
79c171655b fix(menu) isPath: menu does not open when the root is empty (#108) 2017-02-24 10:21:17 +02:00
coderaiser
73a5d22041 feature(bower) smalltalk v2.1.4 2017-02-23 11:10:33 +02:00
coderaiser
f53bef95bf chore(package) v6.6.0 2017-02-22 13:28:50 +02:00
coderaiser
9bc577a83a feature(config) rm notification: do nothing 2017-02-22 13:25:14 +02:00
coderaiser
189d1c7c1d chore(jshint) redefinition of 2017-02-21 17:37:21 +02:00
coderaiser
9073e4b987 refactor(config) module.exports 2017-02-21 17:31:45 +02:00
coderaiser
56d37467d1 chore(input) rm " " 2017-02-21 17:31:07 +02:00
coderaiser
3d05a6ee1e chore(notify) new -> module.exports 2017-02-21 17:17:35 +02:00
coderaiser
ab196b35a6 refactor(markdown) es2015-ify 2017-02-21 16:53:02 +02:00
coderaiser
1f519121f8 chore(package) v6.5.6 2017-02-21 12:21:36 +02:00
coderaiser
08d34a9efe chore(webpack) add "\n" 2017-02-21 12:11:55 +02:00
coderaiser
4cd8781fd8 refactor(showImage) move out functions from chain 2017-02-21 12:00:30 +02:00
coderaiser
74ff48840b fix(view) showImage: can not show image 2017-02-21 11:39:29 +02:00
coderaiser
a6e8aa6d01 refactor(cloud) require: dom -> images 2017-02-21 11:22:36 +02:00
coderaiser
6069c461e8 refactor(help) require: dom -> images 2017-02-21 11:20:34 +02:00
coderaiser
ad67c2958e chore(webpack) add "use strict" 2017-02-21 10:53:54 +02:00
coderaiser
a7dec45c8e chore(package) v6.5.5 2017-02-21 10:16:06 +02:00
coderaiser
fa58e1f79b fix(docker) ignore: remove client files (#107) 2017-02-21 10:11:06 +02:00
coderaiser
b772c6351c feature(client) object.assign -> babel-plugin-object-assign: decrease client size by 2kb 2017-02-20 17:53:47 +02:00
coderaiser
4e66ceffc3 feature(images) move out from dom 2017-02-20 16:43:33 +02:00
coderaiser
2d669b4361 chore(jshint) disable: You might be leaking a variable 2017-02-20 16:06:29 +02:00
coderaiser
5fd6bc9984 chore(key) es2015-ify 2017-02-20 15:41:31 +02:00
coderaiser
5b05c870fb chore(cloud) console.log -> CloudCmd.log 2017-02-20 15:16:52 +02:00
coderaiser
d051dc2560 chore(storage) es2015-ify 2017-02-20 15:16:42 +02:00
coderaiser
14644f91a6 chore(cloud) es2015-ify 2017-02-20 12:43:17 +02:00
coderaiser
36d2fb8723 feature(jshint) ignore reserved words 2017-02-17 16:33:58 +02:00
coderaiser
5c99214ae3 feature(eslintrc) add no-use-before-define 2017-02-17 16:21:59 +02:00
coderaiser
1aaf9e63ec refactor(edit) initConfig: default parameters 2017-02-17 16:21:53 +02:00
coderaiser
5fbbb114c8 chore(package) v6.5.4 2017-02-17 14:17:29 +02:00
coderaiser
f71da9fb42 refactor(editor) currify 2017-02-17 14:15:16 +02:00
coderaiser
7439befa31 fix(menu) call editor from menu 2017-02-17 14:14:58 +02:00
coderaiser
c95adcbd01 refactor(package) watch:lint:client -> watch:lint 2017-02-17 12:43:59 +02:00
coderaiser
ddd91341b6 chore(view) Element -> El 2017-02-17 11:19:21 +02:00
coderaiser
279fa2ff20 chore(view) return 2017-02-17 11:05:47 +02:00
coderaiser
f56035caa3 chore(load) src 2017-02-17 11:03:25 +02:00
coderaiser
d8d5cf21aa chore(webpack) rm unused dirExternal 2017-02-17 11:02:16 +02:00
coderaiser
b29e0b82d1 chore(package) v6.5.3 2017-02-17 10:45:31 +02:00
coderaiser
70224401c5 feature(webpack) exclude object.assign, promise polyfill from dev build 2017-02-16 17:37:21 +02:00
coderaiser
354acbbdf6 chore(listeners) es2015-ify 2017-02-16 17:23:10 +02:00
coderaiser
4a35054446 chore(polyfill) es2015-ify 2017-02-16 16:47:45 +02:00
coderaiser
60ff870274 feature(package) promise-polyfill -> es6-promise 2017-02-16 16:47:17 +02:00
coderaiser
05659e5873 feature(util) rm copyObj 2017-02-16 15:32:51 +02:00
coderaiser
005d6e6cff feature(webpack) promise -> polyfill 2017-02-16 15:27:31 +02:00
coderaiser
19bb696722 feature(cloudcmd) add Promise, Object.assign polyfill 2017-02-16 15:27:20 +02:00
coderaiser
3ea5b0ee37 refactor(view) es2015-ify 2017-02-16 15:02:27 +02:00
coderaiser
4acbab01b6 chore(load) es2015-ify 2017-02-16 13:26:22 +02:00
coderaiser
750ab79d4c chore(upload) es2015-ify 2017-02-16 11:57:13 +02:00
coderaiser
fe1978d289 fix(contact) do not open 2017-02-16 11:32:00 +02:00
coderaiser
208fb75e1e chore(directory) es2015-ify 2017-02-16 11:31:34 +02:00
coderaiser
a7d77a9cc7 refactor(files) es2015-ify 2017-02-15 18:40:06 +02:00
coderaiser
66763faef8 chore(config) es2015-ify 2017-02-15 18:11:08 +02:00
coderaiser
5f6d331965 refactor(input) constructor -> module.exports 2017-02-15 16:33:08 +02:00
coderaiser
cd291cbcac feature(package) scripts: watch:lint:client 2017-02-15 16:18:12 +02:00
coderaiser
07c31ce81e chore(sort) es2015-ify 2017-02-15 16:11:23 +02:00
coderaiser
59d501a2f0 refactor(help) constructor -> module.exports 2017-02-15 16:07:24 +02:00
coderaiser
1dfee4eac7 chore(package) scripts: add prefix lint:js to js linters 2017-02-15 15:57:56 +02:00
coderaiser
56999599ed chore(operation) reserved words 2017-02-15 15:57:32 +02:00
coderaiser
726d38b442 chore(operation) CloudCmd.config -> config 2017-02-15 15:30:48 +02:00
coderaiser
57ac38fb09 chore(package) v6.5.2 2017-02-15 12:13:45 +02:00
coderaiser
2461cfd745 chore(package) scripts: eslint:bin -> eslint:server 2017-02-15 12:12:08 +02:00
coderaiser
98463a3ce6 chore(edit-file) es2015-ify 2017-02-15 11:23:50 +02:00
coderaiser
f25bea90f1 chore(edit) es2015-ify 2017-02-15 11:06:07 +02:00
coderaiser
774241a179 fix(edit-file) save: Format: global -> require 2017-02-15 10:46:03 +02:00
coderaiser
4293eadf63 fix(edit-names) menu 2017-02-15 10:44:06 +02:00
coderaiser
210f49cb4a chore(webpack) lint 2017-02-15 10:40:43 +02:00
coderaiser
56d92f5c93 fix(edit-names) mode depends on last opened file 2017-02-15 10:36:09 +02:00
coderaiser
fb9f96a54b chore(edit-names) es2015-ify 2017-02-15 10:30:39 +02:00
coderaiser
fd7111f802 chore(package) v6.5.1 2017-02-14 23:50:43 +02:00
coderaiser
5215b50c73 chore(cloudcmd) not defined 2017-02-14 23:47:22 +02:00
coderaiser
4ca3cfe1a5 refactor(buffer) slice -> spread 2017-02-14 23:44:21 +02:00
coderaiser
d875cafb78 chore(buffer) es2015-ify 2017-02-14 23:38:13 +02:00
coderaiser
1bf8fbc52b fix(buffer) dialog 2017-02-14 23:36:22 +02:00
coderaiser
ec8cb4c19a fix(dom) Dialog 2017-02-14 17:57:41 +02:00
coderaiser
18222286f0 chore(package) rm:server: rimraf server -> rimraf server_ legacy 2017-02-14 17:40:16 +02:00
coderaiser
b3988c9aa1 chore(package) v6.5.0 2017-02-14 16:21:27 +02:00
coderaiser
7c857fd537 feature(package) scripts: rm:legacy -> rm:client, rm:server 2017-02-14 16:20:01 +02:00
coderaiser
efb381eb97 feature(cloudcmd) NODE_ENV: debug -> development 2017-02-14 16:17:38 +02:00
coderaiser
56882ee489 feature(webpack) turn of uglify when NODE_ENV=debug 2017-02-14 16:10:15 +02:00
coderaiser
1b1f2b0bb1 feature(package) nyc v10.1.2 2017-02-14 16:08:44 +02:00
coderaiser
f4d1181d99 chore(dialog) es2015-ify 2017-02-14 10:42:56 +02:00
coderaiser
b4193e24b5 feature(package) scripts: 6to5:client: add --progress 2017-02-14 10:21:18 +02:00
coderaiser
a676df2c6c chore(npmignore) rm cercle.yml 2017-02-13 17:55:48 +02:00
coderaiser
44efdff9ec feature(package) scripts: add heroku-postbuild 2017-02-13 17:51:20 +02:00
coderaiser
710ac88a43 chore(operation) rm unused emitify 2017-02-13 16:23:33 +02:00
coderaiser
5a989cd62f refactor(cloudcmd) emitify, exec: make global to prevent additonal loading of extensions 2017-02-13 16:23:33 +02:00
coderaiser
8bc07ca700 chore(konsole) load: es2015-ify 2017-02-13 16:23:33 +02:00
coderaiser
9b14d0b4a6 chore(cloudcmd) createScript: rm unused event 2017-02-13 16:23:27 +02:00
coderaiser
9d67bae487 refactor(client) extendProto -> module.exports 2017-02-13 16:11:10 +02:00
coderaiser
95d3cc67cb feature(package) watch:client:debug 2017-02-13 16:11:10 +02:00
coderaiser
2ecdc752e4 feature(webpack) put commons to cloudcmd.js 2017-02-13 16:11:10 +02:00
coderaiser
6a5b254a75 feature(client) es2015-ify 2017-02-13 16:11:01 +02:00
coderaiser
8944d1522e refactor(client) LIBDIRCLIENT -> DIRCLIENT 2017-02-10 10:52:38 +02:00
coderaiser
3524485249 chore(client) rm unused LIBDIR 2017-02-10 10:50:49 +02:00
coderaiser
70e713d68b chore(dom) one var -> multi var 2017-02-08 17:19:43 +02:00
coderaiser
16616c65a6 chore(legacy) _dir -> dir_ 2017-02-08 14:04:13 +02:00
coderaiser
01fa5ffec8 refactor(copy) rm error 2017-02-07 11:05:16 +02:00
coderaiser
cb1fb02d86 feature(rest) rm rendy 2017-02-07 10:56:11 +02:00
coderaiser
914402aa2a chore(package) v6.4.0 2017-02-06 16:59:00 +02:00
coderaiser
04a63da6ab feature(sort) add hot keys
- <Ctrl> + <F3> - sort by name
- <Ctrl> + <F5> - sort by date
- <Ctrl> + <F6> - sort by size
2017-02-06 16:24:15 +02:00
coderaiser
61eba36c67 refactor(sort) add 2017-02-06 16:01:47 +02:00
coderaiser
82e38cb7c4 feature(package) stylelint-config-standard v16.0.0 2017-02-02 17:48:15 +02:00
coderaiser
e88fe2ed61 chore(package) v6.3.1 2017-02-02 10:02:38 +02:00
coderaiser
556570a51a fix(operation) remove: when can not remove show error -> when can not remove suggest to continue 2017-02-02 09:50:06 +02:00
coderaiser
41cf5904e5 feature(package) copymitter v2.0.0 2017-02-01 18:03:27 +02:00
coderaiser
ebe949b585 feature(package) flop v2.0.0 2017-01-31 17:47:37 +02:00
coderaiser
2bfaa0092d chore(package) v6.3.0 2017-01-27 15:27:18 +02:00
coderaiser
d5aee29558 feature(cloudcmd) simplify archive extraction for: zip, tar, gz, tar.gz, tgz 2017-01-27 15:22:34 +02:00
coderaiser
d3caa9dcd4 fix(listeners) header: event.path -> getPath (#101)
Replaced non-standard event.path which works in Chrome only
2017-01-27 10:44:13 +02:00
coderaiser
e909c929b1 refactor(listeners) getLIElement: add early return 2017-01-27 10:33:37 +02:00
coderaiser
cbad4f651e chore(package) v6.2.2 2017-01-26 10:30:00 +02:00
coderaiser
a13e8c4544 fix(cloudcmd) prefix: duplicate (#102) 2017-01-26 10:28:31 +02:00
coderaiser
1994b84810 fix(cloudcmd) showUpdateInfo: unhandled promise rejection 2017-01-25 10:58:08 +02:00
coderaiser
263e9b7337 chore(package) v6.2.1 2017-01-24 20:52:36 +02:00
coderaiser
ce7210ea8b fix(cloucmd) sort: handle click on header of passive panel 2017-01-24 20:51:15 +02:00
coderaiser
c121fad03f chore(package) v6.2.0 2017-01-24 13:49:53 +02:00
coderaiser
8d81ed3baa feature(cloudcmd) add ability to sort by name, size and date (#101) 2017-01-24 13:46:34 +02:00
coderaiser
d6616c8b76 chore(dom) getCurrentData: add early return 2017-01-24 12:24:20 +02:00
coderaiser
18ee400d6f fix(dom) getDataFromStorage: callback called twice 2017-01-24 11:14:36 +02:00
coderaiser
d0db63c3b0 chore(rest) rm " " 2017-01-23 17:57:16 +02:00
coderaiser
f603de9030 chore(client) ajaxLoad: add early return 2017-01-23 17:33:09 +02:00
coderaiser
74d12c4303 chore(listeners) add early return 2017-01-23 17:33:09 +02:00
coderaiser
cce68c323e test(cloudfunc) es2015-ify 2017-01-23 17:33:00 +02:00
coderaiser
a3540aef6f refactor(cloudfunc) buildFromJSON: for -> map' 2017-01-23 16:32:41 +02:00
coderaiser
7e5fe95928 chore(cloudfunc) rm " " 2017-01-23 12:18:00 +02:00
coderaiser
10df024bb2 chore(package) v6.1.0 2017-01-20 17:15:19 +02:00
coderaiser
bbb8ca15c6 feature(config) improve speed: decrease config loading count 2017-01-20 17:14:12 +02:00
coderaiser
2769ac2ef5 chore(client) loadDir: rm " " 2017-01-19 17:10:00 +02:00
coderaiser
e047f62511 fix(operation) delete: set noContinue: prevent removing node from ui when data not removed 2017-01-18 16:34:22 +02:00
coderaiser
5f6a94247e feature(package) restafary v2.0.0 2017-01-17 17:18:41 +02:00
coderaiser
81357e15e4 fix(package) scripts: docker:rm -> docker:rm:version 2017-01-17 15:52:24 +02:00
coderaiser
46233883c3 fix(package) scripts: postpublish: docker docker:alpine -> docker 2017-01-17 15:23:38 +02:00
coderaiser
5481454bf6 chore(package) v6.0.3 2017-01-17 15:03:25 +02:00
coderaiser
bb0b1f2bce fix(config) auth check 2017-01-17 14:31:18 +02:00
coderaiser
ffa8a44320 fix(config) config dialog: save changes 2017-01-17 14:31:06 +02:00
coderaiser
7a9f50c0da refactor(cloudcmd) authCheck: early return 2017-01-13 15:55:32 +02:00
coderaiser
7888a1e725 chore(cloudcmd) setUrl: rm " " 2017-01-13 15:52:57 +02:00
coderaiser
117ebfd097 chore(cloudcmd) isMinify -> minify 2017-01-13 15:52:52 +02:00
coderaiser
76487a1244 chore(cloudcmd) root: root -> root 2017-01-12 14:18:11 +02:00
coderaiser
018aec0150 chore(route) rm " " 2017-01-10 17:10:42 +02:00
coderaiser
c33ccaba98 chore(package) v6.0.2 2017-01-08 20:30:18 +02:00
coderaiser
14dcd69a1d fix(markdown) DIR_ROOT: help 2017-01-08 20:18:30 +02:00
coderaiser
aea236bd18 chore(package) v6.0.1 2017-01-06 15:04:05 +02:00
coderaiser
4e01d3acd6 refactor(key) setCurrentByChar: for -> filter, some 2017-01-06 15:02:37 +02:00
coderaiser
c35f7da532 feature(dom) Info.files, Info.filesPasive: array 2017-01-06 15:02:37 +02:00
coderaiser
163bd0328a fix(key) Ctrl + A: toggleSelected -> selectAllFiles 2017-01-06 15:02:30 +02:00
coderaiser
94cc923d01 chore(dom) toggleSelectedFile: rm " " 2017-01-06 14:57:05 +02:00
coderaiser
01735954dc refactor(edit-names) getActiveNames 2017-01-06 14:57:05 +02:00
coderaiser
affd9258c5 fix(dom) getAcitveFiles: include current -> return current when none selected 2017-01-06 14:57:05 +02:00
coderaiser
cffa342841 docs(license) 2017 2017-01-06 12:20:54 +02:00
coderaiser
596ac24499 fix(edit-names) rename files when current file is ".." 2016-12-30 15:12:57 +02:00
coderaiser
634def86ee chore(package) v6.0.0 2016-12-29 17:20:51 +02:00
coderaiser
6e7e99201e feature(edit-names) add ability to edit file names in editor 2016-12-29 16:07:21 +02:00
coderaiser
ce92cddf0e feature(edit-file) add 2016-12-29 15:43:08 +02:00
coderaiser
322b103481 fix(cloudcmd) --editor: do not change editor 2016-12-29 14:55:04 +02:00
coderaiser
f35585b3ac feature(util) Util.type -> itype 2016-12-28 17:42:23 +02:00
coderaiser
fc058fcfa7 feature(util) rm checkType 2016-12-28 17:06:41 +02:00
coderaiser
f4332c779e feature(util) add kebabToCamelCase 2016-12-28 13:56:20 +02:00
coderaiser
7036cb8ea2 feature(util) getStrBigFirst: client -> util 2016-12-28 13:48:19 +02:00
coderaiser
f1af8a76e5 test(util) es2015-ify 2016-12-28 13:39:26 +02:00
coderaiser
d638ecd111 chore(eslint) add indent, semi 2016-12-28 11:12:48 +02:00
coderaiser
a8b4ef9230 refactor(view) add initConfig 2016-12-27 12:24:58 +02:00
coderaiser
cc2a46a19b refactor(view) show 2016-12-27 12:15:08 +02:00
coderaiser
3f603be776 chore(package) v5.13.0 2016-12-27 10:38:53 +02:00
coderaiser
e7c5830c48 feature(cloudcmd) show line number when config is not valid json (closes #98) 2016-12-27 10:30:46 +02:00
coderaiser
9da829723d feature(edit) add setValue 2016-12-26 17:22:02 +02:00
coderaiser
978b79f38a chore(edit) add " " 2016-12-26 15:37:36 +02:00
coderaiser
076b2e2ae1 refactor(contact) init: early return 2016-12-26 15:34:20 +02:00
coderaiser
ecaf1cba88 refactor(edit) setMenu: multi var 2016-12-26 15:32:22 +02:00
coderaiser
54619917ae chore(edit) rm " " 2016-12-26 15:28:16 +02:00
coderaiser
bf63b3dc2b feature(edit) show: rm this 2016-12-26 15:26:20 +02:00
coderaiser
fa8356aec1 chore(view) rm " " 2016-12-26 15:24:11 +02:00
coderaiser
53f0f51c7b refactor(view) show 2016-12-26 15:21:53 +02:00
coderaiser
d3ea853e4c refactor(edit) loadFiles: multi var 2016-12-26 14:59:12 +02:00
coderaiser
90ff40fbf0 refactor(edit) setMenu 2016-12-26 14:52:47 +02:00
coderaiser
86b6b8ed50 chore(edit) rm " " 2016-12-26 14:52:42 +02:00
coderaiser
55bbf70d3f refactor(edit) show 2016-12-26 14:52:30 +02:00
coderaiser
ca2c61ee64 refactor(edit) init 2016-12-26 14:38:45 +02:00
coderaiser
f4033c69bd chore(upload) rm " " 2016-12-26 12:12:56 +02:00
coderaiser
a5818e43b5 refactor(edit) authCheck 2016-12-26 12:12:08 +02:00
coderaiser
3c18636e23 refactor(edit) setMsgChanged: rm msg 2016-12-26 12:07:51 +02:00
coderaiser
2917bf9fda chore(edit) rm " " 2016-12-26 12:07:19 +02:00
coderaiser
2abb1097e3 chore(auth) rm " " 2016-12-26 11:54:52 +02:00
coderaiser
05fea68f82 chore(route) DIR_SERVER: __dirname -> ./ 2016-12-26 11:53:55 +02:00
coderaiser
b5eda738c9 chore(markdown) rm " " 2016-12-26 11:52:39 +02:00
coderaiser
4a97a0f999 refactor(rest) add getCMD 2016-12-26 11:51:30 +02:00
coderaiser
04681237c0 refactor(rest) onPUT: shorthand properties 2016-12-26 11:49:49 +02:00
coderaiser
5926c4392f chore(config) //input.js -> /input.js 2016-12-26 11:31:40 +02:00
coderaiser
bfe2879893 refactor(rest) exports: shorthand properties 2016-12-26 11:29:51 +02:00
coderaiser
2ff05c4837 refactor(cloudcmd) listen: shorthand property names 2016-12-26 11:26:35 +02:00
coderaiser
3a100f96e7 chore(package) v5.12.4 2016-12-23 14:36:56 +02:00
coderaiser
69bfc3f47e fix(package) main: legacy/lib -> legacy/server 2016-12-23 14:35:16 +02:00
coderaiser
e3db6c60de chore(package) v5.12.3 2016-12-23 11:47:53 +02:00
coderaiser
449eaf70f0 feature(cloudcmd) lib/server -> server 2016-12-23 11:46:17 +02:00
coderaiser
4b8f772538 fix(cloudcmd) --no-console: console is always enabled (#99) 2016-12-23 11:17:54 +02:00
coderaiser
485923abd7 chore(operation) rm " " 2016-12-21 13:39:59 +02:00
coderaiser
f24f5cbdd6 chore(rest) rm " " 2016-12-21 13:38:33 +02:00
coderaiser
32ef28f1e6 chore(dom) deleteCurrent: multi var 2016-12-21 13:37:30 +02:00
coderaiser
2286436602 chore(rest) rm " " 2016-12-21 13:03:57 +02:00
coderaiser
53a5a88bfa chore(rest) rm " " 2016-12-21 13:02:24 +02:00
coderaiser
f46f7e1e74 chore(eslint) add indentation rule 2016-12-20 10:34:51 +02:00
coderaiser
3e1db58144 chore(routes) es2015-ify 2016-12-20 10:28:52 +02:00
coderaiser
807813ecdb chore(validate) es2015-ify 2016-12-20 10:28:52 +02:00
coderaiser
a4b2e18052 chore(root) es2015-ify 2016-12-20 10:28:52 +02:00
coderaiser
b72f5d06b6 chore(rest) es2015-ify 2016-12-20 10:28:47 +02:00
coderaiser
cffc96ca8a chore(repl) es2015-ify 2016-12-20 10:24:53 +02:00
coderaiser
86d1b4929e chore(prefixer) es-2015-ify 2016-12-20 10:24:53 +02:00
coderaiser
7bc51655b9 chore(makrdown) es2015-ify 2016-12-20 10:24:50 +02:00
coderaiser
2c6a2f232d chore(exit) rm iife 2016-12-19 17:22:57 +02:00
coderaiser
3f72e53bc4 feature(package) legacy:json -> legacy:help: optimize size of published package 2016-12-19 16:52:54 +02:00
coderaiser
272c5b62c2 chore(config) es2015-ify 2016-12-19 16:48:21 +02:00
coderaiser
8e3e40d790 chore(auth) es2015-ify 2016-12-19 15:45:33 +02:00
coderaiser
c6cdd7c66a chore(server) es2015-ify 2016-12-19 15:15:07 +02:00
coderaiser
9b36fe0bc8 chore(cloudcmd) es2015-ify 2016-12-19 14:46:37 +02:00
coderaiser
4c0bbba6f7 chore(plugins) es2015-ify 2016-12-19 14:35:32 +02:00
coderaiser
de2144819e chore(package) v5.12.2 2016-12-19 12:59:56 +02:00
coderaiser
62618ca6b3 fix(package) scripts: legacy:json: fix --help 2016-12-19 12:58:52 +02:00
coderaiser
5d8e70da95 chore(package) v5.12.1 2016-12-19 10:33:29 +02:00
coderaiser
ed3dddd5a5 fix(package) currify v2.0.3 (#93) 2016-12-19 10:32:15 +02:00
coderaiser
a3cbbd4617 chore(package) v5.12.0 2016-12-16 09:59:03 +02:00
coderaiser
b71ec29db6 feature(cloudcmd) lib/client -> client
Move lib/client and lib/server one level upper
2016-12-16 09:56:44 +02:00
coderaiser
8326475a9f chore(rest) rm wrong comments 2016-12-16 09:47:47 +02:00
coderaiser
5023fc5c90 fix(cloudcmd) --html-dialogs: is not cloudcmd option (#97) 2016-12-16 09:39:33 +02:00
coderaiser
59e9ae9480 fix(plugins) arrow -> function 2016-12-14 15:10:02 +02:00
coderaiser
0ab099825d chore(validate) rm unused 2016-12-08 21:08:24 +02:00
coderaiser
8bca529bd3 refactor(cloudcmd) readConfig: else -> return 2016-12-06 17:20:15 +02:00
coderaiser
88ab57eba7 docs(readme) add " " 2016-12-06 15:36:30 +02:00
coderaiser
383f0ce39f fix(validate) root: crash when --no-root used 2016-12-06 11:31:28 +02:00
coderaiser
3931915ee8 chore(package) v5.11.1 2016-12-05 17:46:58 +02:00
coderaiser
82fa47fc6c chore(config) rm unused 2016-12-05 17:45:31 +02:00
coderaiser
7667b4daa6 feature(bower) currify v2.0.3 2016-12-05 17:10:01 +02:00
coderaiser
f63772668e refactor(dom) init: LoadingImage 2016-12-05 16:41:56 +02:00
coderaiser
f05755d55c chore(urls) rm " " 2016-12-05 16:35:47 +02:00
coderaiser
cc78d19fc9 refactor(config) manage 2016-12-05 15:38:29 +02:00
coderaiser
10ecf62ed5 test(static) staatic -> static 2016-12-05 15:29:58 +02:00
coderaiser
47ff924184 refactor(config) patch 2016-12-05 15:26:49 +02:00
coderaiser
1c3d7438c1 fix(help) --editor: add deepword 2016-12-05 14:53:17 +02:00
coderaiser
45d7dd7dd9 docs(help) Version history: v5.11.0 2016-12-01 11:31:33 +02:00
coderaiser
31caeea6d4 docs(readme) v5.11.0 2016-12-01 11:09:42 +02:00
coderaiser
1f3298b2e5 chore(package) v5.11.0 2016-12-01 11:05:59 +02:00
coderaiser
aef6803a76 chore(package) v5.10.2 2016-12-01 10:40:22 +02:00
coderaiser
ba93a87eed test(before) config, plugin -> options 2016-11-30 20:15:36 +02:00
coderaiser
4d14071ede feature(cloudcmd) add plugins 2016-11-30 20:15:30 +02:00
coderaiser
39934033b8 chore(static) rm unused 2016-11-30 17:22:46 +02:00
coderaiser
5a98059387 chore(gitignore) coverage 2016-11-30 17:21:02 +02:00
coderaiser
eddb8bec4a fix(cloudcmd) --console, --config-dialog: defaults 2016-11-30 17:19:53 +02:00
coderaiser
e8f91f4908 test(static) add 2016-11-29 17:24:11 +02:00
coderaiser
94fcdfcded chore(cloudcmd) one var -> multi var 2016-11-28 18:16:25 +02:00
coderaiser
741563fa62 chore(rest) rm " " 2016-11-28 18:16:25 +02:00
coderaiser
0feb8c7a3c chore(rest) var -> multi var 2016-11-28 18:16:25 +02:00
coderaiser
08506e011f chore(circle) rm 2016-11-28 18:16:25 +02:00
coderaiser
4d2f54f5df refactor(cloudcmd) getPrefix: rm result 2016-11-28 18:16:18 +02:00
coderaiser
34a5022f0c chore(cloudcmd) one var -> multi var 2016-11-28 13:47:42 +02:00
coderaiser
40b2265cdc feature(bower) currify v2.0.2 2016-11-24 11:26:29 +02:00
coderaiser
32371bf2a7 test(pack) add tar-stream, gunzip-maybe 2016-11-23 10:57:54 +02:00
coderaiser
b39c7b2cf0 test(pack) tar: put: file: pullout -> pullout string 2016-11-23 10:42:25 +02:00
coderaiser
b91054e783 test(pack) tar: put: file: buffer.length -> Buffer.byteLength 2016-11-23 10:35:48 +02:00
coderaiser
913ff1bd63 test(pack) buffer.length -> Buffer.byteLength 2016-11-23 10:29:23 +02:00
coderaiser
5fdf235ae2 test(pack) tar: put: file: pullout string -> pullout buffer 2016-11-23 10:21:31 +02:00
coderaiser
851728e46d test(pack) compare -> equals 2016-11-22 16:22:39 +02:00
coderaiser
b3ef6ca846 chore(package) v5.10.1 2016-11-22 15:28:43 +02:00
coderaiser
0371173830 fix(rest) getPackReg: config zip -> config packer 2016-11-22 15:25:59 +02:00
coderaiser
53cc837dcb docs(pull_request_teplate) add "-" 2016-11-22 14:40:25 +02:00
coderaiser
d1a99eee6b chore(yaspeller) Olena Zalitok 2016-11-22 11:44:51 +02:00
coderaiser
ce2c45aa44 docs(help) Polietilena -> Olena Zalitok 2016-11-22 11:33:13 +02:00
coderaiser
c1ac8c2fbd chore(currify) jscs v3.0.7 2016-11-21 17:54:40 +02:00
coderaiser
89765d28bb feature(package) stylelint-config-standard v15.0.0 2016-11-21 16:50:04 +02:00
coderaiser
4c764ea54a chore(currify) npm-run-all: 3.1.1 2016-11-21 16:37:25 +02:00
coderaiser
cf6b7989b6 chore(currify) browserify v13.0.0 2016-11-21 16:36:57 +02:00
coderaiser
54eac655af fix(operation) _initPacker: proceed when error 2016-11-18 20:50:59 +02:00
coderaiser
377149948e docs(help) variables -> Variables 2016-11-18 12:23:40 +02:00
coderaiser
ad4d087dde chore(package) v5.10.0 2016-11-18 11:59:49 +02:00
coderaiser
0f2e551c7a chore(yaspeller) add deepword 2016-11-18 11:44:37 +02:00
coderaiser
689dd037c1 feature(cloudcmd) add ability to set packer with: --packer: "tar" or "zip" 2016-11-18 11:40:42 +02:00
coderaiser
a4d8c19247 fix(menu) download: no files selected: title is undefined 2016-11-18 11:03:22 +02:00
coderaiser
ec269d9671 docs(readme) Console: Environment variables 2016-11-18 10:17:51 +02:00
coderaiser
ccb691edd8 test(pack) rm duplicate 2016-11-17 17:00:02 +02:00
coderaiser
084a7292a1 fix(man) add deepword 2016-11-17 16:57:19 +02:00
coderaiser
e0ad32c044 docs(help) Start: deepword 2016-11-17 16:55:02 +02:00
coderaiser
7c3e5aba0c feture(package) 6to5:bin: bin-legacy -> bin_ 2016-11-17 12:54:44 +02:00
coderaiser
324c502ce3 feature(package) nyc v9.0.1 2016-11-15 16:13:13 +02:00
coderaiser
76125f45ae feature(package) console-io v3.0.0 2016-11-15 16:07:03 +02:00
coderaiser
2c024d10ba feature(dom) add setCurrentByName 2016-11-14 16:09:12 +02:00
coderaiser
dabf142759 chore(operation) rm " " 2016-11-14 15:45:10 +02:00
coderaiser
f9a7ca4d19 chore(operation) rm "\n" 2016-11-14 15:43:33 +02:00
coderaiser
721a427351 chore(cloudcmd) rm " " 2016-11-14 15:42:08 +02:00
coderaiser
a6e613bdec feature(cloudcmd) add libDist: .js -> .min.js 2016-11-14 15:40:14 +02:00
coderaiser
558096748f feature(modules) add currify 2016-11-14 15:30:59 +02:00
coderaiser
51fbd7c620 chore(listeners) rm " " 2016-11-14 14:34:11 +02:00
coderaiser
629967b7d1 feature(cloudcmd) es2015-ify 2016-11-14 14:28:13 +02:00
coderaiser
7a23dbfb30 chore(listeners) rm " " 2016-11-14 14:23:06 +02:00
coderaiser
043aadcb2c chore(package) v5.9.1 2016-11-10 17:32:40 +02:00
coderaiser
301a12b57d fix(cloudcmd) bring back working --html-dialogs 2016-11-10 17:31:26 +02:00
coderaiser
a228944434 docs(readme) Backers, Sponsors: html -> markdown 2016-11-10 16:19:26 +02:00
coderaiser
f59e733fe2 chore(package) v5.9.0 2016-11-10 15:56:49 +02:00
coderaiser
c3c008ff72 feature(cloudcmd) add ability to disable console with "--no-console" (#65) 2016-11-10 15:50:28 +02:00
coderaiser
6b26b26115 chore(root) rm iife 2016-11-10 15:32:58 +02:00
coderaiser
7c4a6caa9a chore(config) rm " " 2016-11-10 14:43:27 +02:00
coderaiser
9d3556e557 docs(help) add configDialog 2016-11-09 20:27:58 +02:00
coderaiser
e22e09122c chore(package) v5.8.0 2016-11-09 16:47:56 +02:00
coderaiser
b4c5b5a77a feature(cloudcmd) add --no-config-dialog: add ability to hide config dialog (#65) 2016-11-09 15:28:32 +02:00
coderaiser
0f79fc3037 chore(before) fs: rm unused 2016-11-09 12:49:15 +02:00
coderaiser
12bb87931e chore(operation) setListeners: else 2016-11-09 12:48:52 +02:00
coderaiser
b259102d6c feature(jscs) requireVarDeclFirst: false 2016-11-09 12:48:33 +02:00
coderaiser
91c6396dac test(before) prevent config overwriting 2016-11-09 12:27:07 +02:00
coderaiser
fe7d9baa38 test(config) add 2016-11-09 11:42:35 +02:00
coderaiser
ea8743fa99 feature(package) jaguar v3.0.0 2016-11-08 16:33:11 +02:00
coderaiser
9e11f02a45 test(rest) cloudcmd -> rest 2016-11-08 12:02:07 +02:00
coderaiser
0ac7aabf9a test(before) add 2016-11-08 11:40:30 +02:00
coderaiser
1488accbe3 feature(cloudcmd) rm --html-dialogs: do nothing 2016-11-07 20:25:55 +02:00
coderaiser
bd91b28335 feature(cloudcmd) rm deprecated long time ago --progress-of-copying 2016-11-07 20:14:05 +02:00
coderaiser
adc9eb5b09 chore(cloudcmd) add " " 2016-11-07 20:03:55 +02:00
Pia Mancini
8e5368f83f docs(readme) added backers/sponsors form OpenCollective
Now your backers and sponsors from opencollective will appear automatically on your readme. See for example https://github.com/apex/apex#sponsors
Added some badges the the top as well.
More info: https://github.com/opencollective/opencollective/wiki/Github-banner
2016-11-07 10:42:08 +02:00
coderaiser
390db416d8 docs(readme) rm NPM_INFO 2016-11-07 10:36:01 +02:00
coderaiser
1d1a427c7b chore(package) v5.7.6 2016-11-06 20:09:42 +02:00
coderaiser
8695bef4f4 chore(repl) rm iife 2016-11-06 20:08:51 +02:00
coderaiser
551584d7e9 fix(key) ALT + LEFT/RIGHT: one panel mode 2016-11-06 19:25:23 +02:00
coderaiser
668561f006 fix(key) listener: handle of Numpad keys 2016-11-06 17:47:49 +02:00
coderaiser
79141e173c chore(key) rm " " 2016-11-06 17:45:11 +02:00
coderaiser
7a6fe0d91e chore(package) v5.7.5 2016-11-06 10:34:30 +02:00
coderaiser
efd68b6453 fix(client) baseInit: do not set history when hash preset 2016-11-06 10:32:28 +02:00
coderaiser
a7b861e4be chore(route) rm iife 2016-11-06 10:32:28 +02:00
coderaiser
b304d86fc4 chore(client) route: rm " " 2016-11-06 10:32:28 +02:00
coderaiser
76d18490f2 fix(client) route: open file with module by hash: string.join -> string 2016-11-06 10:32:28 +02:00
coderaiser
4f1e642eb8 docs(readme) used as docker container -> used as a docker container 2016-11-06 09:07:35 +02:00
coderaiser
e4b28b4d61 feature(package) jaguar v2.1.0 2016-10-31 18:22:22 +02:00
coderaiser
5ee5366b4b chore(server) rm unused getPort 2016-10-31 17:36:08 +02:00
coderaiser
be370beb05 feature(package) rm freeport 2016-10-29 22:00:07 +03:00
coderaiser
87895ab946 docs(readme) Using as middleware: quotes 2016-10-28 20:57:57 +03:00
coderaiser
7645daa9f6 docs(readme) Get involved 2016-10-28 15:06:35 +03:00
coderaiser
ac7b345de7 docs(readme) "Cloud Commander orthodox" -> "Cloud Commander is an orthodox 2016-10-28 12:33:02 +03:00
coderaiser
3a9963c81b docs(readme) es2015-ify 2016-10-28 12:22:33 +03:00
coderaiser
b265d1b432 chore(package) v5.7.4 2016-10-27 20:33:56 +03:00
coderaiser
41f7b8ee47 fix(operation) put back setListeners 2016-10-27 20:32:57 +03:00
coderaiser
b2310cfa75 chore(cloudcmd) rm unused 2016-10-27 20:29:12 +03:00
coderaiser
41c22deb91 chore(package) v5.7.3 2016-10-27 20:02:45 +03:00
coderaiser
8cabdb80ee fix(operation) setListeners: leak on copy, pack, delete 2016-10-27 17:59:44 +03:00
coderaiser
704d33d956 feature(cloudcmd) pipe-io -> pullout 2016-10-27 17:30:31 +03:00
coderaiser
bbdb5a72da chore(rest) rm iife 2016-10-27 17:13:34 +03:00
coderaiser
16aa1ebf2c chore(markdown) rm iife 2016-10-27 17:13:15 +03:00
coderaiser
96dd511773 chore(config) rm iife 2016-10-27 17:12:46 +03:00
coderaiser
4b6fc40588 fix(rest) pack, extract: put 2016-10-27 17:11:41 +03:00
coderaiser
8aff5a7f8b chore(travis) rm 4 2016-10-27 14:13:21 +03:00
coderaiser
ff64a49a40 chore(cloudcmd) rm unused: assert 2016-10-27 14:09:42 +03:00
coderaiser
8c1da2dd43 test(cloudcmd) getBody -> pullout 2016-10-27 14:05:38 +03:00
coderaiser
49a714e3b8 chore(lint) es2015-ify 2016-10-27 14:05:37 +03:00
coderaiser
c18921a5c2 feature(validate) mv console.log out 2016-10-27 14:05:37 +03:00
coderaiser
86e5f8dd49 refactor(validate) rm DIR 2016-10-27 14:05:37 +03:00
coderaiser
aad2e38603 chore(validate) rm iife 2016-10-27 14:05:37 +03:00
coderaiser
5becf2c98c test(cloudcmd) rest: pack 2016-10-27 14:05:23 +03:00
coderaiser
2dbbf69a4c test(cloudcmd) add 2016-10-26 17:31:13 +03:00
coderaiser
5364befc75 feature(gitignore) add swp 2016-10-26 17:30:56 +03:00
coderaiser
6f0c50312b feature(package) scripts: watch:test 2016-10-26 17:30:19 +03:00
coderaiser
af753bba8a chore(prefixer) rm iife 2016-10-26 17:03:27 +03:00
coderaiser
335af65709 fix(menu) download: download files and folders with "%" in name 2016-10-26 16:01:16 +03:00
coderaiser
592afff827 feature(travis) node_js: add 7 2016-10-26 10:37:29 +03:00
coderaiser
6d8e1e754f feature(package) stylelint-config-standard v14.0.0 2016-10-24 21:25:34 +03:00
coderaiser
a010787d26 feature(package) edward v4.0.0 2016-10-24 18:01:17 +03:00
coderaiser
ae16e052d3 chore(package) v5.7.2 2016-10-24 12:54:55 +03:00
coderaiser
a2fd2b8bd8 chore(reset) operation: rm unused: wasError 2016-10-24 12:54:20 +03:00
coderaiser
47b12bb07a fix(menu) download: file name containes "#" (#80) 2016-10-24 12:49:52 +03:00
coderaiser
7479ef770c fix(rest) download directory: overwriting response data (#78) 2016-10-24 12:36:11 +03:00
coderaiser
8cfd6d6652 chore(package) v5.7.1 2016-10-24 10:04:08 +03:00
coderaiser
89163b09e7 feature(package) dword v4.0.0 2016-10-21 16:21:51 +03:00
coderaiser
b6d7d4309a feature(gitignore) rm unused 2016-10-20 15:54:01 +03:00
coderaiser
19eec3e108 feature(modules) jquery.fancybox.js -> jquery.fancybox.pack.js 2016-10-20 15:37:55 +03:00
coderaiser
d3391efc2b feature(bower) jquery v3.1.1 2016-10-20 15:33:57 +03:00
coderaiser
b1c370f959 fix(yaspeller) Deepword: quotes 2016-10-19 16:05:58 +03:00
coderaiser
c887486970 feature(yaspeller) add Deepword 2016-10-18 16:05:54 +03:00
coderaiser
9ece2de5ba chore(package) v5.7.0 2016-10-18 16:02:38 +03:00
coderaiser
e7467199f2 feature(cloudcmd) add deepword 2016-10-18 14:06:23 +03:00
coderaiser
7dab795f76 feature(package) yaspeller v3.0.0 2016-10-17 11:19:22 +03:00
coderaiser
3c37cede17 feature(bower) smalltalk v2.1.3 2016-10-04 15:17:03 +03:00
coderaiser
4582640d68 feature(bower) promise-polyfill v6.0.2 2016-09-30 16:47:25 +03:00
coderaiser
d4afb33d48 feature(modules) socket.io v1.4.8 2016-09-23 15:26:25 +03:00
coderaiser
bbe9c6b77e chore(package) v5.6.2 2016-09-22 09:57:53 +03:00
Brian McMichael
42b187a0ed fix(operation) English spelling: directoris -> directories (#76) 2016-09-19 12:28:26 +03:00
coderaiser
04176f3f23 feature(package) markdown-it v8.0.0 2016-09-16 11:54:13 +03:00
coderaiser
af9d3d3f8a chore(package) v5.6.1 2016-09-06 17:35:03 +03:00
Eric Anderson
eceb0ac2af fix(auth) blank password results in inability to authenticate
Found myself in a vicious loop if I failed to type in a password when prompted in Chrome. Every refresh of the page would fall into the criton check with a blank password. Seems Chrome wouldn't clear the headers until I closed the browser and/or switched to a new incognito tab. Probably a user error, but still, this avoided the criton throw.
2016-09-06 09:48:10 +03:00
coderaiser
2164a025f3 docs(readme) rm Circle Ci 2016-09-05 17:10:55 +03:00
coderaiser
15a02f5664 docs(readme) add Android 2016-09-04 19:34:44 +03:00
coderaiser
a056753edc feature(package) stylelint-config-standard v13.0.0 2016-08-30 11:29:52 +03:00
coderaiser
6a101b4053 feature(package) nyc v8.1.0 2016-08-15 15:00:58 +03:00
coderaiser
2299eee106 feature(bower) smalltalk v2.1.2 2016-08-08 21:28:28 +03:00
coderaiser
b3f10dd6eb feature(package) stylelint-config-standard v12.0.0 2016-08-08 16:51:27 +03:00
coderaiser
383d6f0057 feature(package) add eslint 2016-07-28 18:30:38 +03:00
coderaiser
20d14c0bdd fix(events) dispatch: event -> customEvent 2016-07-28 18:17:05 +03:00
coderaiser
ca81c35486 refactor(release) "function" -> "=>" 2016-07-28 17:35:22 +03:00
coderaiser
958cd9321a feature(jshintrc) add legacy 2016-07-28 17:32:55 +03:00
coderaiser
8d9f15ca3e refactor(release) var -> const 2016-07-28 17:32:18 +03:00
coderaiser
dbbf061121 chore(release) rm " " 2016-07-28 15:10:23 +03:00
coderaiser
40f1eb46cc feature(util) json -> jonny 2016-07-28 13:06:03 +03:00
coderaiser
ee1c264aac chore(server) rm " " 2016-07-28 12:55:46 +03:00
coderaiser
2acd7c30f4 chore(cloudcmd) rm " " 2016-07-28 12:54:46 +03:00
coderaiser
f69036f5a3 feature(bower) smalltalk v2.1.1 2016-07-25 19:33:40 +03:00
coderaiser
caa6bd61cd feature(bower) promise-polyfil v6.0.0 2016-07-21 11:17:18 +03:00
coderaiser
b23a230e4d feature(bower) smalltalk v2.1.0 2016-07-21 10:09:55 +03:00
coderaiser
cb753ec048 docs(help) `` -> 2016-07-20 11:15:38 +03:00
coderaiser
14e3ce8c06 docs(help) last -> latest 2016-07-20 11:15:12 +03:00
coderaiser
8db16c5100 chore(package) v5.6.0 2016-07-19 20:07:28 +03:00
coderaiser
5e352fe3e6 feature(package) remedy v1.5.0 2016-07-19 12:09:46 +03:00
coderaiser
4e0cccbce0 feature(package) ishtar v1.5.0 2016-07-19 11:43:03 +03:00
coderaiser
e570d4c93a feature(package) spero v1.5.0 2016-07-19 11:40:54 +03:00
coderaiser
28ad50e43b feature(package) edward v3.2.0 2016-07-19 11:40:04 +03:00
coderaiser
2a1b5c6cd1 feature(package) dword v3.2.0 2016-07-19 11:38:11 +03:00
coderaiser
0ec091a5c8 feature(cloudcmd) authCheck: add accept, reject 2016-07-18 16:43:27 +03:00
coderaiser
0edd99a0fd chore(cloudcmd) rm " " 2016-07-18 16:01:55 +03:00
coderaiser
4e34a96649 feature(package) stylelint-config-standard v11.0.0 2016-07-18 13:16:57 +03:00
coderaiser
4ac2fbe0b7 feature(package) stylelint v7.0.2 2016-07-18 12:33:04 +03:00
coderaiser
13f27e2597 feature(bower) smalltalk v2.0.0 2016-07-15 17:20:17 +03:00
coderaiser
32a59c0c26 feature(edit) add authCheck 2016-07-14 21:12:48 +03:00
coderaiser
1dc7698746 feature(bower) emitify v2.1.1 2016-07-14 20:59:54 +03:00
coderaiser
a96ee4a2dd feature(modules) philip v1.3.4 2016-07-14 20:41:25 +03:00
coderaiser
c5d76a2cc0 feature(modules) findit v1.1.6 2016-07-14 20:40:43 +03:00
coderaiser
3c3954139c feature(operation) add authCheck 2016-07-14 18:17:03 +03:00
coderaiser
5151f878f5 feature(package) dword v3.1.0: add authCheck 2016-07-14 17:07:51 +03:00
coderaiser
8044cf04e4 feature(package) edward v3.1.0: add authCheck 2016-07-14 17:06:59 +03:00
coderaiser
857f4e117d feature(package) remedy v1.4.0: add authCheck 2016-07-14 14:49:07 +03:00
coderaiser
d60a24c241 feature(package) ishtar v1.4.0: add authCheck 2016-07-14 14:48:09 +03:00
coderaiser
bb46a77302 feature(package) spero v1.4.0: add authCheck 2016-07-14 09:39:49 +03:00
coderaiser
6876908e4f feature(bower) jquery v3.1.0 2016-07-12 10:36:54 +03:00
coderaiser
a5e1a9b03d feature(package) nyc v7.0.0 2016-07-11 14:57:39 +03:00
Matteo Contrini
dd66e315a7 docs(help) nginx instructions: correction 2016-07-11 14:51:59 +03:00
coderaiser
da541ef962 feature(package) redrun v5.0.0 2016-07-11 09:46:30 +03:00
coderaiser
55174a60bb feature(package) stylelint-config-standard v10.0.0 2016-07-04 15:50:28 +03:00
coderaiser
cb3bb62177 chore(package) v5.5.1 2016-06-29 19:17:13 +03:00
coderaiser
2e03d0f81e docs(help) History: file -> changelog 2016-06-27 20:34:05 +03:00
coderaiser
82bb9c63b8 feature(travis) rm security 2016-06-27 17:39:52 +03:00
coderaiser
d266f7521c feature(package) redrun v4.0.0 2016-06-23 19:24:05 +03:00
coderaiser
4d01c50084 feature(package) markdown-it v7.0.0 2016-06-23 17:52:39 +03:00
coderaiser
6b18113cf7 feature(img) add v5.5.0 2016-06-16 12:15:58 +03:00
coderaiser
50d41031e4 chore(package) v5.5.0 2016-06-15 22:59:45 +03:00
coderaiser
5b4f7368ad feature(cloudcmd) add one-panel-mode 2016-06-15 22:57:39 +03:00
coderaiser
1ce8a78e04 feature(json) bin -> help 2016-06-15 15:42:26 +03:00
coderaiser
0fe40b5283 feature(style) panel width: 97% -> 98% 2016-06-15 15:40:14 +03:00
coderaiser
2229be3ca0 chore(ssl) rm " " 2016-06-14 17:56:26 +03:00
coderaiser
6af8409f00 chore(route) add " " 2016-06-14 17:55:17 +03:00
coderaiser
5db8e18f44 chore(route) rm "\n" 2016-06-14 17:48:24 +03:00
coderaiser
a7324f761b feature(modules) jquery v3.0.0 2016-06-14 16:03:13 +03:00
coderaiser
9ea2fa0517 feature(package) stylelint-config-standard v9.0.0 2016-06-14 15:57:47 +03:00
coderaiser
510dbd686a docs(help) Update: update -> install 2016-06-10 16:58:07 +03:00
coderaiser
e2de114767 chore(package) v5.4.3 2016-06-10 16:42:29 +03:00
coderaiser
bf15897cc0 fix(operation) shift + delete: delete ".." directory 2016-06-10 14:58:51 +03:00
coderaiser
a95e6e73e5 chore(package) v5.4.2 2016-06-09 19:47:53 +03:00
coderaiser
1e78af657b docs(issue) linux -> Linux 2016-06-09 19:47:01 +03:00
coderaiser
bc4d84f441 docs(github) add templates: issue, pull request 2016-06-09 13:21:16 +03:00
coderaiser
79dba0f0f2 feature(bower) findit v1.1.5 2016-06-06 19:40:11 +03:00
coderaiser
f7629d8ea0 feature(bower) philip v1.3.3 2016-06-06 19:40:04 +03:00
coderaiser
ac64f93d77 feature(bower) emitify v2.1.0 2016-06-03 11:58:45 +03:00
coderaiser
99f1c318b6 fix(edit) Paste: Ctrl+X -> Ctrl+V 2016-05-30 09:52:38 +03:00
coderaiser
e86748f193 feature(olark) contact -> bower 2016-05-26 12:36:24 +03:00
coderaiser
6dd26f2709 docs(help) Menu: add "\n" 2016-05-25 19:34:35 +03:00
coderaiser
6b9fdd1204 docs(readme) rm jitsu 2016-05-25 19:14:37 +03:00
coderaiser
eaed8ccd05 chore(package) v5.4.1 2016-05-25 18:38:00 +03:00
coderaiser
22708ce445 docs(help) add MainURL, BlogURL back 2016-05-25 18:32:31 +03:00
coderaiser
4e23f1e032 refactor(util) findObjByNameInArr: Util.type.array -> Array.isArray 2016-05-24 22:42:42 +03:00
coderaiser
ef4fa58b7c chore(util) throw() -> throw 2016-05-24 22:40:01 +03:00
coderaiser
2c5e217468 feature(rest) rm auth 2016-05-24 22:35:24 +03:00
coderaiser
5c953c81d4 fix(key) add key.identifier back for chrome <= v51 2016-05-24 22:29:40 +03:00
coderaiser
a79b221f75 chore(util) rm ";" 2016-05-24 20:09:03 +03:00
coderaiser
fed1b4e1f3 chore(rest) copy: "to" implicitly declared 2016-05-24 20:08:13 +03:00
coderaiser
30b659ac80 docs(help) Special Thanks: add title to TarZak 2016-05-24 12:23:30 +03:00
coderaiser
4ef13d8670 docs(help) rm second Live 2016-05-24 12:23:29 +03:00
coderaiser
5b9e0f40b5 docs(readme) add codacy badge 2016-05-24 12:23:19 +03:00
coderaiser
ec68852f4e chore(rest) "," -> ";" 2016-05-24 11:43:24 +03:00
coderaiser
1847024267 chore(client) "," -> ";" 2016-05-24 11:43:19 +03:00
coderaiser
66fa7006d9 refactor(util) check 2016-05-24 11:23:55 +03:00
coderaiser
7bc38ef685 docs(help) markdown: redcarpet -> kramdown: links: Main, Blog 2016-05-23 14:46:06 +03:00
coderaiser
b351135438 feature(key) deprecated KeyEvent.keyIdentifier: rm fromCharCode 2016-05-23 12:56:02 +03:00
coderaiser
50a6abd339 feature(package) stylelint-config-standard v8.0.0 2016-05-23 12:02:17 +03:00
coderaiser
9febe08fbd docs(help) v5.3.0 -> v5.3.1 2016-05-17 12:03:00 +03:00
coderaiser
25277600b0 feature(bower) promise-polyfill v5.2.0 2016-05-16 14:37:20 +03:00
coderaiser
72ee4790a5 feature(npmignore) app.json, circle.yml 2016-05-15 21:11:17 +03:00
coderaiser
f3a223bf48 chore(circle) 6 -> 6.1.0 2016-05-15 21:04:05 +03:00
coderaiser
49da4272c6 chore(package) v5.4.0 2016-05-15 20:36:14 +03:00
coderaiser
f6f4ec33fb feature(package) codestyle: redrun --parallel -> redrun 2016-05-12 17:26:12 +03:00
coderaiser
d4b79c40ae feature(jscs) requireMultipleVarDecl: false 2016-05-12 17:26:12 +03:00
coderaiser
26d86f6a99 chore(route) add ";" 2016-05-12 17:26:11 +03:00
coderaiser
6dd3c9a587 feature(package) add keywords 2016-05-12 17:26:11 +03:00
coderaiser
68af062875 feature(package) ~ -> ^ 2016-05-12 17:26:11 +03:00
coderaiser
36dcb9a074 feature(cloudcmd) add --open: open browser when server started 2016-05-12 17:26:11 +03:00
coderaiser
d2cc38dd50 feature(npmignore) add .* 2016-05-12 17:25:28 +03:00
coderaiser
c473a25a48 feature(server) add prefix to url 2016-05-12 15:39:21 +03:00
coderaiser
42ed9c70e2 feature(circle) add 2016-05-11 21:44:48 +03:00
coderaiser
71bb6f64ab chore(package) v5.3.2 2016-05-11 20:32:00 +03:00
coderaiser
26ee40697b fix(route) prefix without "/" at beginning in rendered view 2016-05-11 16:22:24 +03:00
coderaiser
2a215481ba fix(key) Alt + G: replace path with "©" 2016-05-11 12:45:06 +03:00
coderaiser
a71aa83150 feature(bower) smalltalk v1.6.8 2016-05-11 11:13:24 +03:00
coderaiser
f9622e5913 feature(bower) promise-polyfill v5.1.0 2016-05-10 12:23:18 +03:00
coderaiser
0dc964854d feature(package) stylelint-config-standard v7.0.0 2016-05-10 12:19:57 +03:00
coderaiser
7167c7081a feature(package) redrun v3.0.0 2016-05-06 15:30:58 +03:00
coderaiser
481bfe3b2e feture(package) redrun v2.0.0 2016-05-05 11:39:38 +03:00
coderaiser
efaec030e6 feature(bower) promise-polyfill v5.0.0 2016-05-04 11:27:33 +03:00
coderaiser
0d272342f2 feature(travis) add node v6 2016-04-27 03:51:23 -04:00
coderaiser
ec5f4d1898 feature(travis) rm 0.12 2016-04-26 04:20:38 -04:00
coderaiser
94cfadda5e feature(package) npm-run-all -> redrun 2016-04-25 05:25:48 -04:00
coderaiser
f976be0d94 feature(package) stylelint-config-standard v6.0.0 2016-04-25 05:04:13 -04:00
coderaiser
853ddd7d68 feature(package) stylelint v6.1.1 2016-04-25 04:55:34 -04:00
coderaiser
b69684457f chore(jshintrc) dos2unix 2016-04-21 09:18:07 -04:00
coderaiser
f751a179a0 feature(jscsrc) rm disallowUnusedVariables 2016-04-19 09:43:44 -04:00
coderaiser
8c09521bb4 feature(package) jscs v3.0.1 2016-04-15 04:28:48 -04:00
coderaiser
ae41963c87 feature(package) http-auth v2.3.1 2016-04-13 10:58:35 -04:00
coderaiser
4a362d1ba6 feature(package) stylelint-config-standard v5.0.0 2016-04-13 08:34:30 -04:00
coderaiser
6699f0e5c2 feature(query) .name: rm ignored float 2016-04-13 08:33:53 -04:00
coderaiser
40216c919d feature(package) docker:rm:latest-alpine 2016-04-11 06:18:17 -04:00
coderaiser
cf779b78e9 feature(package) scripts docker: rm:old -> rm-old 2016-04-11 06:05:50 -04:00
coderaiser
ed4f7ed5fe feature(package) add docker:rm:old 2016-03-30 03:35:55 -04:00
coderaiser
759a6573b9 feature(package) wisdom: npm-run-all --continue-on-error 2016-03-30 03:31:09 -04:00
coderaiser
ee1627a37e docs(help) v5.3.0 2016-03-28 16:33:04 -04:00
coderaiser
a6a10be4e6 chore(package) v5.3.1 2016-03-28 16:17:16 -04:00
coderaiser
e20ad2083d feature(markdown) throw() -> throw 2016-03-28 16:15:04 -04:00
coderaiser
0164eb4c56 chore(app) dos2nix 2016-03-28 16:07:35 -04:00
coderaiser
3f4c3edbfe docs(readme) v5.3.0 2016-03-28 15:52:47 -04:00
coderaiser
1c5906d9da chore(package) v5.3.0 2016-03-28 15:29:53 -04:00
coderaiser
e29e8b4264 feature(package) scripts: add security 2016-03-28 15:27:04 -04:00
coderaiser
02a061ff11 feature(server) port: 0 means any available 2016-03-28 04:55:25 -04:00
coderaiser
dbf0b6bb05 chore(dockerfile) rm ":" 2016-03-24 10:04:30 -04:00
coderaiser
19d047d5de docs(readme) docker: -it -> -t 2016-03-23 17:09:03 -04:00
coderaiser
0efec5ae7d chore(package) vversion -> version 2016-03-23 16:09:38 -04:00
coderaiser
efb5cda657 feature(package) add docker:rm 2016-03-23 16:05:09 -04:00
coderaiser
2a5002dc8d feature(docker) entrypoint: npm start -- -> bin/cloudcmd.js 2016-03-23 09:38:04 -04:00
coderaiser
4e3f730254 feature(docker) cmd -> entrypoint 2016-03-23 09:27:41 -04:00
coderaiser
7c82f88055 feature(docker) add entrypoint 2016-03-23 09:22:32 -04:00
coderaiser
c4a246293e feature(package) docker: add node-alpine build 2016-03-22 15:45:49 -04:00
coderaiser
34ab8e4aac feature(bower) promise-polyfill v4.0.1 2016-03-21 16:29:57 -04:00
coderaiser
38a6e8113b feature(bower) smalltalk v1.6.7 2016-03-21 16:16:23 -04:00
coderaiser
747d61dff6 chore(package) v5.2.3 2016-03-18 15:06:06 -04:00
coderaiser
56fe6f2efe feature(style) .current-file box-shadow: 1.5px -> 1px 2016-03-18 14:58:50 -04:00
coderaiser
ea990330e6 feature(package) console-io v2.7.1 2016-03-17 16:02:53 -04:00
coderaiser
60a648f501 feature(package) add nodemon 2016-03-17 15:52:25 -04:00
coderaiser
2f1e097599 feature(shell) rm secret 2016-03-14 10:35:37 -04:00
coderaiser
b74e4d4efa feature(package) stylelint v5.0.1 2016-03-14 10:34:28 -04:00
coderaiser
58f5d14593 feature(dockefile) add maintainer 2016-03-11 10:12:52 -05:00
coderaiser
84fe10a652 chore(view) showImage: rm var 2016-03-10 17:05:54 -05:00
coderaiser
92e4e1a76d docs(help) rm " " 2016-03-10 11:01:45 -05:00
coderaiser
923ebcb3a8 chore(package) v5.2.2 2016-03-10 10:32:38 -05:00
coderaiser
f33125154f fix(view) showImage: href 2016-03-10 10:21:54 -05:00
coderaiser
0d54074f6b feature(css) rm a:focus 2016-03-10 10:21:25 -05:00
coderaiser
343716ce0e feature(password) password -> criton 2016-03-09 13:09:14 -05:00
coderaiser
36e8bbb5f6 feature(yaspeller) add yml 2016-03-09 08:00:47 -05:00
coderaiser
5826f748a4 feature(docker-compose) add 2016-03-09 07:58:18 -05:00
coderaiser
c4bd976c57 feature(package) stylelint-config-standard v4.0.0 2016-03-07 13:44:57 -05:00
coderaiser
f214183042 feature(package) nyc v6.0.0 2016-03-07 13:28:47 -05:00
coderaiser
253a0ef51b chore(package) v5.2.1 2016-03-07 08:17:49 -05:00
coderaiser
a2a8144ebb feature(package) dword v3.0.3 2016-03-07 07:30:22 -05:00
coderaiser
a906439ab7 feature(package) edward v3.0.0 2016-03-07 07:27:44 -05:00
coderaiser
5944a966e2 fix(edit) setMenu: set focus on editor insted of prompt when "Go To Line" activated 2016-03-05 15:18:18 -05:00
coderaiser
52a151f4b0 fix(edit) Go To Line: Ctrl+L -> Ctrl+G 2016-03-05 15:01:59 -05:00
coderaiser
704dacb0cf docs(help) rm io.js 2016-03-05 06:02:54 -05:00
coderaiser
b087466feb docs(changelog) rm duplicate 2016-03-05 12:56:46 +02:00
coderaiser
fef8267916 feature(package) add docker:pull:node 2016-03-05 05:54:25 -05:00
coderaiser
1b87f477af chore(package) v5.2.0 2016-03-05 05:50:45 -05:00
coderaiser
8c002ab803 feature(package) add postpublish 2016-03-05 05:50:30 -05:00
coderaiser
b924cbddbe feature(package) add docker:build 2016-03-05 05:48:25 -05:00
coderaiser
ce71828a9a docs(help) add Deploy 2016-03-05 05:41:55 -05:00
coderaiser
df88022556 chore(load) rm unused CloudCmd, CloudFunc 2016-03-05 05:26:22 -05:00
coderaiser
bdc68756a2 docs(readme) add docker 2016-03-05 05:24:26 -05:00
coderaiser
48775ff050 docs(help) rm " " 2016-03-05 05:24:20 -05:00
coderaiser
7880eecfad docs(help) docker: change url 2016-03-05 05:23:38 -05:00
coderaiser
a6a0e40df0 fix(directory) percent: when percent should not change it became bigger by 100 2016-03-05 05:13:20 -05:00
coderaiser
36954a0ae2 feature(directory) uploadFile, uploadDir: rm callback 2016-03-05 05:11:24 -05:00
coderaiser
ad1dc1445f feature(load) put: rm prefix, apiURL 2016-03-05 05:05:03 -05:00
coderaiser
995860b963 refactor(load) ajax: Events.add -> xhr.onreadystatechange 2016-03-05 04:55:29 -05:00
coderaiser
4e7a211b75 chore(load) add "\n" 2016-03-05 04:53:42 -05:00
coderaiser
ea991297bd chore(dom) add "\n" 2016-03-05 04:52:49 -05:00
coderaiser
feda90a7f7 chore(dockerfile) rm "\" 2016-03-04 06:07:12 -05:00
coderaiser
683e0363e0 feature(client) add PREFIX_URL 2016-03-02 13:26:27 -05:00
coderaiser
65c063548e feature(operation) TITLE: Operation -> CloudCmd.TITLE 2016-03-02 12:57:33 -05:00
coderaiser
db4323427b fix(key) switch key: add preventDefault on F8 2016-03-02 12:51:42 -05:00
coderaiser
5a2d4a692c feature(stylint) .stylelintrc -> .stylintrc.yml 2016-03-01 14:52:28 -05:00
coderaiser
b2dd1638f6 feature(bower) menu v1.0.2 2016-03-01 14:51:03 -05:00
coderaiser
ef936837a9 feature(bower) smalltalk v1.6.6 2016-03-01 14:31:28 -05:00
coderaiser
412c57911c feature(reset) rm a:hover, a:active: outline 2016-03-01 14:16:29 -05:00
coderaiser
03c76bf1e8 chore(view) outline -> :focus: outline 2016-03-01 14:11:24 -05:00
coderaiser
4b19e76fff feature(package) add stylelint 2016-03-01 11:12:51 -05:00
coderaiser
61da12a012 docs(help) Benefits: add link to console 2016-02-29 13:23:22 +02:00
coderaiser
22d30ab8aa chore(package) v5.1.5 2016-02-26 16:04:07 -05:00
Brian McMichael
8b692e0e88 fix(view) showImage: prefix 2016-02-26 16:00:14 -05:00
coderaiser
935612bfb5 feature(package) add docker:rm 2016-02-25 07:58:48 -05:00
coderaiser
1c969fedc4 docs(help) add "\n" 2016-02-25 07:57:01 -05:00
coderaiser
6b771e9858 fix(package) docker tag: latest -> vversion 2016-02-25 07:49:27 -05:00
coderaiser
842947fef8 chore(package) v5.1.4 2016-02-25 07:37:15 -05:00
Brian McMichael
796ecb4799 fix(index) prefix: favicon 2016-02-25 07:33:34 -05:00
coderaiser
c2dba516e1 docs(HELP) add "\n" 2016-02-24 07:26:19 -05:00
coderaiser
8de2880d2d chore(package) v5.1.3 2016-02-24 05:14:47 -05:00
coderaiser
b682e9d89d fix(dom) setCurrentName: prefix 2016-02-24 05:14:24 -05:00
coderaiser
ccea2d28c7 fix(travis) npm codestyle -> npm run codestyle 2016-02-22 06:03:50 -05:00
coderaiser
8ef751f06f feature(package) mocha -> tape 2016-02-22 06:01:31 -05:00
coderaiser
2248ec193f feture(index) set color to address bar in Chrome on Android Lollipop 2016-02-22 05:23:16 -05:00
coderaiser
165596255c feature(style) %: .name: 27 -> 26, .date -> 20 -> 19, .mode: 16 -> 18 2016-02-21 07:32:29 -05:00
coderaiser
99174b68d0 chore(package) v5.1.2 2016-02-21 07:15:32 -05:00
coderaiser
0541d555cc fix(cloudfunc) buildFromJson: close quote 2016-02-21 07:14:01 -05:00
coderaiser
39143b6dfc chore(package) v5.1.1 2016-02-21 07:10:08 -05:00
coderaiser
055ebafe73 fix(cloudfunc) when no date use --.--.---- 2016-02-21 07:08:23 -05:00
coderaiser
9b2a8dbad9 chore(package) v5.1.0 2016-02-20 17:01:52 -05:00
coderaiser
d556948c87 feature(cloudcmd) add date column 2016-02-20 17:01:21 -05:00
coderaiser
2ab0df4965 feature(editorconfig) exclude hbs from insert_final_newline 2016-02-20 15:44:09 -05:00
coderaiser
54352af728 docs(readme) Using as Middleware: add socket path 2016-02-20 11:50:24 -05:00
coderaiser
f1ec9fadb6 refactor(load) put: prefix 2016-02-13 09:00:47 -05:00
coderaiser
4c7de2edc5 chore(package) v5.0.15 2016-02-13 08:47:49 -05:00
Brian McMichael
5d1f1c4acf fix(menu) download: prefix 2016-02-13 08:44:46 -05:00
coderaiser
e1f615c16e docs(readme) add gitter badge 2016-02-12 21:22:26 +02:00
coderaiser
bf81c27860 feature(package) markdown-it v6.0.0 2016-02-11 13:29:06 -05:00
coderaiser
abcd969443 chore(package) v5.0.14 2016-02-10 05:50:49 -05:00
coderaiser
4865b3c8c0 fix(cloudcmd) createPass: algo, pass -> pass, algo 2016-02-10 05:50:29 -05:00
coderaiser
7637cf740a docs(help) get jitsu back 2016-02-10 11:59:34 +02:00
coderaiser
f08381be21 docs(help) rm jitsu 2016-02-10 11:47:15 +02:00
coderaiser
6d5ee6d20c chore(package) v5.0.13 2016-02-10 04:27:13 -05:00
coderaiser
c0e193726e fix(cloudcmd) algo, value -> value, algo 2016-02-10 04:26:39 -05:00
coderaiser
305fa8a7f4 feature(package) scripts: publish -> docker 2016-02-10 04:22:01 -05:00
coderaiser
01e0a64ab3 fix(package) scripts: docket -> docker 2016-02-10 04:10:34 -05:00
coderaiser
765e2e0fcb chore(package) v5.0.12 2016-02-10 04:07:49 -05:00
coderaiser
053f9d2ff9 fix(password) createHash: algo could be undefined 2016-02-10 04:05:09 -05:00
coderaiser
015ae51b19 feature(config) rm Util 2016-02-09 10:52:18 -05:00
coderaiser
395b4ab51d feature(package) publish: docker pull, tag, push 2016-02-06 14:46:04 -05:00
coderaiser
d169adb4d0 chore(package) v5.0.11 2016-02-06 04:19:25 -05:00
coderaiser
d632ac6f20 feature(bower) menu v1.0.1 2016-02-05 14:15:53 -05:00
coderaiser
fb42ab8113 feature(bower) menu v1.0.0 2016-02-05 06:59:06 -05:00
coderaiser
8cf54b7e04 docs(changelog) rm chore 2016-02-04 15:20:26 -05:00
coderaiser
839fb561bf docs(changelog) rm test 2016-02-04 15:19:10 -05:00
coderaiser
94e24ad98a chore(package) v5.0.10 2016-02-04 15:07:53 -05:00
coderaiser
a60fb964f6 chore(prefixer) add ";" 2016-02-04 14:59:39 -05:00
coderaiser
9bf97a900e chore(server) rm path 2016-02-04 14:59:20 -05:00
coderaiser
8eeeb3e6c6 fix(server) socket path 2016-02-04 14:46:02 -05:00
coderaiser
de1d74ba37 test(cloudfunc) buildFromJSON: add prefix 2016-02-02 12:06:43 -05:00
coderaiser
bd3a2a32dc docs(changelog) clean 2016-02-02 18:33:19 +02:00
coderaiser
b142ebdabd chore(package) v5.0.9 2016-02-02 11:30:35 -05:00
coderaiser
b6c116fb4c fix(cloudcmd) logout -> prefix + /logout 2016-02-02 11:17:13 -05:00
coderaiser
2e9910ddd3 fix(server) prefix + /socket -> path.join(prefix, /socket) 2016-02-01 13:31:16 -05:00
coderaiser
7badb3eea0 docs(changelog) rm fix: feature 2016-02-01 12:44:30 -05:00
coderaiser
95c63a3e4f chore(package) v5.0.8 2016-02-01 12:28:10 -05:00
coderaiser
35930c2a5c feature(cloudcmd) prefix: remedy, spero, ishtar 2016-02-01 12:18:18 -05:00
coderaiser
392a640ea6 feature(package) spero v1.3.0 2016-02-01 12:17:24 -05:00
coderaiser
14b8acda97 feature(package) remedy v1.3.0 2016-02-01 12:15:38 -05:00
coderaiser
a1ae289c58 feature(package) ishtar v1.3.0 2016-02-01 12:12:32 -05:00
coderaiser
0e1da1a631 feature(package) dword v2.9.0 2016-02-01 11:25:35 -05:00
coderaiser
56aef95c0f feature(package) edward v2.9.0 2016-02-01 07:17:53 -05:00
coderaiser
4040e47c21 chore(package) console-io: ^ -> ~ 2016-02-01 06:35:00 -05:00
coderaiser
97ada5a4e0 feature(package) console-io v2.6.0 2016-01-31 13:04:48 -05:00
coderaiser
b3b06f9d6f fix(config) /config -> prefix + /config 2016-01-31 11:35:51 -05:00
coderaiser
4a67f4537c fix(cloudcmd) loadSocket, loadJquery: prefix 2016-01-31 08:59:22 -05:00
coderaiser
0f3829fefe chore(cloudcmd) add " " 2016-01-30 07:29:11 -05:00
coderaiser
f3f45130b2 feature(modules) socket.io v1.4.5 2016-01-27 03:23:52 -05:00
coderaiser
7132e362e4 chore(package) v5.0.7 2016-01-20 14:16:47 -05:00
coderaiser
52090ddcc3 fix(pathLink) prefix when js disabled 2016-01-20 14:16:32 -05:00
coderaiser
caf20ca7b1 fix(password) default algo: set password 2016-01-20 12:52:26 -05:00
coderaiser
955aae36d4 feature(bower) promise-polyfill v3.1.0 2016-01-15 14:29:14 -05:00
coderaiser
5c57c3619b chore(package) v5.0.6 2016-01-15 14:16:37 -05:00
coderaiser
e1683f6743 fix(client) goToParentDir: set current dir 2016-01-14 14:40:56 -05:00
coderaiser
7f212b116b fix(dom) getParentDirPath: str -> regexp 2016-01-14 14:40:07 -05:00
coderaiser
09440ce56d feature(edit) menu: add Cut, Copy and Paste 2016-01-14 14:11:35 -05:00
coderaiser
d4e86aea73 feature(package) dword v2.8.0 2016-01-14 14:10:35 -05:00
coderaiser
81ed67d236 feature(package) edward v2.8.0 2016-01-14 14:08:25 -05:00
coderaiser
5198b13904 chore(package) v5.0.5 2016-01-11 13:19:07 -05:00
coderaiser
39ffeb2cf5 docs(license) 2016 2016-01-10 08:07:26 -05:00
coderaiser
ca587620a1 feature(bower) promise-polyfill v3.0.0 2016-01-10 07:59:28 -05:00
coderaiser
86f82e0b50 feature(bower) smalltalk v1.6.5 2016-01-10 07:53:04 -05:00
coderaiser
787e54f22f feature(package) markdown-it v5.1.0 2016-01-10 07:27:53 -05:00
coderaiser
b0c867e283 feature(package) socket.io v1.4.3 2016-01-10 07:14:51 -05:00
coderaiser
d0f7722606 chore(cloudcmd) libDir 2015-12-30 02:29:09 -05:00
coderaiser
9170b8b6a7 feature(bower) emitify v2.0.0 2015-12-29 16:18:00 -05:00
coderaiser
8cce30c9ad refactor(server) condition port: "<= 0" -> "< 1" 2015-12-26 12:37:25 -05:00
coderaiser
8dff85e291 fix(server) logger 2015-12-26 12:34:06 -05:00
coderaiser
f96723a420 feature(gulpfile) rm 2015-12-26 07:17:28 -05:00
coderaiser
148b575c0d chore(package) v5.0.4 2015-12-26 07:01:15 -05:00
coderaiser
254350668a fix(client) LIBDIR, LIBDIRCLIENT: rm PREFIX 2015-12-26 07:00:10 -05:00
coderaiser
8d6bcd1c86 docs(help) docker: hosts files system -> hosts root file system 2015-12-21 22:21:52 +02:00
coderaiser
db9415b699 docs(readme) rm shippable 2015-12-18 14:30:42 -05:00
coderaiser
3294c636c0 feature(config) fs.writeFile -> writejson 2015-12-16 14:29:00 -05:00
coderaiser
70b8f1ed15 docs(README) rm "\n" 2015-12-14 07:17:21 -05:00
coderaiser
fd5ac24a7c docs(readme) headers: = > # 2015-12-14 03:52:11 -05:00
coderaiser
683da55ad6 docs(readme) using as middleware 2015-12-14 03:51:02 -05:00
coderaiser
51685d413d feature(package) rm nupdate 2015-12-14 03:36:40 -05:00
coderaiser
af60205bb1 feature(package) rm bupdate 2015-12-14 03:36:14 -05:00
coderaiser
7d2809273a feature(package) rm bower 2015-12-14 03:35:09 -05:00
coderaiser
49f1291086 feature(package) nupdate v3.0.0 2015-12-12 05:14:42 -05:00
coderaiser
22c511d360 feature(package) place v1.1.4 2015-12-11 07:58:31 -05:00
coderaiser
0ea9ed49c4 feature(package) morgan v1.6.1 2015-12-11 07:02:22 -05:00
coderaiser
8066cab451 feature(package) gulp -> npm scripts 2015-12-10 10:33:40 -05:00
coderaiser
83a1e9a7ea feature(gulpfile) rm storage 2015-12-10 02:29:27 -05:00
coderaiser
28a2d233fa feature(package) yaspeller v2.6.0 2015-12-09 15:36:11 -05:00
coderaiser
4ed9b256a7 feature(package) should v8.0.0 2015-12-09 15:35:09 -05:00
coderaiser
6b7d85e49b docs(help) bined -> mount 2015-12-09 15:09:40 -05:00
coderaiser
80b337a0fa feature(package) package-json v2.3.0 2015-12-09 15:07:45 -05:00
coderaiser
582fbb3125 feature(bower) smalltalk v1.6.4 2015-12-09 15:03:49 -05:00
coderaiser
32f2779a6c feature(docker) add 2015-12-09 09:39:19 -05:00
coderaiser
a82aabb0ca chore(package) v5.0.3 2015-12-08 15:09:40 -05:00
coderaiser
15a5e57197 feature(dword) v2.7.0 2015-12-08 14:44:50 -05:00
coderaiser
6bc6c6cdf3 feature(package) edward v2.7.0 2015-12-08 14:44:31 -05:00
coderaiser
7041487b2c feature(bower) smalltalk v1.6.3 2015-12-05 07:56:12 -05:00
coderaiser
2e488303b0 feature(bower) smalltalk v1.6.2 2015-12-05 04:25:18 -05:00
coderaiser
837868999a chore(package) v5.0.2 2015-12-01 13:36:54 -05:00
coderaiser
1a13296ef3 feature(package) edward v2.6.0 2015-12-01 13:33:41 -05:00
coderaiser
ff89f99fcb feature(package) dword v2.6.0 2015-12-01 13:26:48 -05:00
coderaiser
77c29f5bd9 feature(package) gulp-jshint v2.0.0 2015-11-23 13:36:02 -05:00
coderaiser
cfc1a1e912 feature(package) nupdate v2.1.0 2015-11-15 15:10:37 -05:00
coderaiser
2c4b0d274a chore(package) v5.0.1 2015-11-15 06:28:48 -05:00
coderaiser
033b4c8e3d fix(dom) deleteSelected: this -> DOM 2015-11-15 06:26:52 -05:00
coderaiser
e620cdfb24 chore(package) v5.0.0 2015-11-15 05:58:20 -05:00
coderaiser
a494f8e700 feature(gitignore) npm-debug.log -> npm-debug.log* 2015-11-15 05:56:28 -05:00
coderaiser
87b75735c0 feature(package) gulp-mocha v2.2.0 2015-11-15 05:55:13 -05:00
coderaiser
b6d8395666 feature(package) gulp-recess v1.2.0 2015-11-15 05:53:09 -05:00
coderaiser
842fb43e3a feature(config) set htmlDialogs true by default 2015-11-15 05:41:56 -05:00
coderaiser
49302a7f6f feature(cloudcmd) rm deprecated features: --progress-of-copying, prefix -> config.prefix 2015-11-15 05:40:47 -05:00
coderaiser
1e3882506a feature(package) nupdate v2.0.0 2015-11-14 08:46:42 -05:00
coderaiser
3f60915732 feature(package) console-io v2.5.0 2015-11-11 09:13:04 -05:00
coderaiser
3eb1b22937 chore(package) v4.7.7 2015-11-11 02:53:13 -05:00
coderaiser
88507156c2 fix(dom) deleteCurrent: this -> DOM 2015-11-10 10:01:17 -05:00
coderaiser
b2af840ea3 fix(operation) deleteSilent: work with outdated dom elements 2015-11-10 09:58:03 -05:00
coderaiser
249b8c5729 docs(help) trouble 2015-11-06 14:12:55 -05:00
coderaiser
0b942f70d6 chore(package) v4.7.6 2015-11-06 05:21:48 -05:00
coderaiser
6514aa9833 feature(package) dword v2.5.0 2015-11-06 04:43:15 -05:00
coderaiser
1718129044 feature(package) edward v2.5.0 2015-11-06 04:26:14 -05:00
coderaiser
57062d6072 feature(package) console-io v2.4.0 2015-11-04 10:09:39 -05:00
coderaiser
a14c89d7a1 feature(bower) smalltalk v1.6.1 2015-11-02 02:48:53 -05:00
coderaiser
2788671d45 feature(bower) smalltalk v1.6.0 2015-11-02 02:40:15 -05:00
coderaiser
e09a8fb0b9 feature(travis) rm iojs 2015-10-30 03:39:11 -04:00
coderaiser
7df126ec39 feature(travis) node_js: 5 2015-10-30 03:36:05 -04:00
coderaiser
e741a6358e chore(package) v4.7.5 2015-10-29 09:49:09 -04:00
coderaiser
c1c0389544 chore(cloudcmd) add comment 2015-10-29 09:48:41 -04:00
coderaiser
9f034d8ede chore(cloudcmd) add " " 2015-10-29 09:40:37 -04:00
coderaiser
5a36067bab feature(cloudcmd) add getPassword 2015-10-29 09:40:01 -04:00
coderaiser
ed6f8b0ee8 chore(cloudcmd) rm "\n" 2015-10-29 09:35:47 -04:00
coderaiser
696ee9e146 feature(bower) smalltalk v1.5.6 2015-10-29 07:15:19 -04:00
coderaiser
11b7613c52 refactor(route) buildIndex: rm exec 2015-10-27 08:59:11 -04:00
coderaiser
500b778f09 chore(package) v4.7.4 2015-10-27 03:37:05 -04:00
coderaiser
df996ffb47 feature(bower) execon v1.2.9 2015-10-26 14:22:38 -04:00
coderaiser
2e4c64ac69 feature(bower) smalltalk v1.5.5 2015-10-26 14:22:11 -04:00
coderaiser
b716d30b00 feature(package) minify v2.0.0 2015-10-26 11:16:08 -04:00
coderaiser
ee79a19bed feature(package) package-json v2.2.0 2015-10-26 03:40:36 -04:00
coderaiser
a28b985423 chore(package) v4.7.3 2015-10-24 07:16:00 -04:00
coderaiser
7e1970c598 fix(buffer) Dialog.alert -> showMessage 2015-10-24 06:59:34 -04:00
coderaiser
2a8d7be8e2 fix(edit) isChanged: create -> beforeClose 2015-10-24 06:36:37 -04:00
coderaiser
1c3a117d02 feature(cloudcmd) add execon from bower 2015-10-21 03:19:22 -04:00
coderaiser
5fc8127230 refactor(util) exec.with 2015-10-19 06:13:23 -04:00
coderaiser
ca35d4e6c6 feature(package) package-json v2.1.0 2015-10-19 02:56:32 -04:00
coderaiser
2d972468fe chore(package) v4.7.2 2015-10-14 13:27:35 -04:00
coderaiser
9325b22198 feature(bower) rm vk-openapi 2015-10-14 13:26:15 -04:00
coderaiser
625c257c42 feature(bower) rm github 2015-10-14 13:25:14 -04:00
coderaiser
0e0d1e2973 fix(console) authCheck called once 2015-10-14 13:22:45 -04:00
coderaiser
cec53f5de5 chore(package) v4.7.1 2015-10-14 07:30:26 -04:00
coderaiser
cf98f47e8c chore(package) v4.7.1 2015-10-14 07:14:38 -04:00
coderaiser
960430c848 fix(rest) onGET: json.parse 2015-10-14 07:10:11 -04:00
coderaiser
8414dcec9c feature(bower) smalltalk v1.5.3 2015-10-14 07:02:46 -04:00
coderaiser
2656eb9903 feature(package) package-json v2.0.0 2015-10-12 03:54:55 -04:00
coderaiser
22f5da680c feature(package) markdown-it v5.0.0 2015-10-09 08:43:13 -04:00
coderaiser
b6f4227553 chore(package) v4.7.0 2015-10-05 07:49:28 -04:00
coderaiser
e47a6f1a05 feature(package) dword v2.4.0 2015-10-05 06:04:47 -04:00
coderaiser
d44c079116 feature(package) edward v2.4.0 2015-10-05 06:04:33 -04:00
coderaiser
4d13ac9f4e refactor(edit) edward -> editor 2015-10-05 03:17:02 -04:00
coderaiser
cc4002c182 chore(cloudcmd) cloudcmd: rm socket 2015-10-05 02:39:06 -04:00
coderaiser
c7a5f943ad feature(config) add authCheck 2015-10-02 08:04:17 -04:00
coderaiser
732d4fa658 chore(dom) Dialog -> DOM.Dialog 2015-09-30 09:01:30 -04:00
coderaiser
3e148bf4ec feature(bower) emitify v1.3.0 2015-09-30 06:02:01 -04:00
coderaiser
50d698a985 fix(edit) isChanged: call fn only when ok pressed 2015-09-30 05:24:59 -04:00
coderaiser
744d0fa453 fix(edit) isChanged: confirm -> Dialog.confirm 2015-09-30 05:11:50 -04:00
coderaiser
e9f5d257f1 refactor(konsole) create spawn: on auth always -> on auth, only when auth enabled 2015-09-30 03:42:23 -04:00
coderaiser
8c1f3ad99e feature(bower) smalltalk v1.5.2 2015-09-30 03:28:58 -04:00
coderaiser
63ebe53865 feature(cloudcmd) console: add authCheck 2015-09-29 10:37:28 -04:00
coderaiser
f4f3f65701 feature(package) console-io v2.3.0 2015-09-29 10:36:15 -04:00
coderaiser
ba26351338 feature(markdown) lib/server/rest -> lib/server 2015-09-29 08:31:44 -04:00
coderaiser
54a12b724e feature(bower) smalltalk v1.5.1 2015-09-29 07:04:56 -04:00
coderaiser
1d3fcd84c8 chore(package) v4.6.0 2015-09-28 11:46:08 -04:00
coderaiser
a7933b755c feature(cloudcmd) add --html-dialogs 2015-09-28 11:43:03 -04:00
coderaiser
d9c67255a3 feature(package) edward v2.3.0 2015-09-28 10:54:21 -04:00
coderaiser
f7c566a85a feature(package) dword v2.3.0 2015-09-28 10:12:50 -04:00
coderaiser
2ebfba7261 feature(package) bupdate v1.0.4 2015-09-28 03:43:24 -04:00
coderaiser
67b2c76136 feature(package) bower v1.5.3 2015-09-28 03:42:54 -04:00
coderaiser
5a5f97e687 feature(package) gulp-jscs v3.0.0 2015-09-28 03:29:42 -04:00
coderaiser
9a0c3056a5 chore(package) v4.5.7 2015-09-27 09:41:11 -04:00
coderaiser
8cbb379b6e fix(listeners) onPathElementClick: change path of active directory when click on path link of other panel 2015-09-27 09:39:19 -04:00
coderaiser
8c793b162b chore(cloudcmd) rm dialog 2015-09-27 10:25:23 +03:00
coderaiser
983ff4959d feature(cloudcmd) Promise -> Promise.min 2015-09-26 14:05:20 -04:00
coderaiser
e297c55e7b chore(edit) rm " " 2015-09-26 09:23:00 -04:00
coderaiser
0ce42cfc9d feature(edit) addEventListener -> addOnce 2015-09-26 09:22:19 -04:00
coderaiser
ca1f7c6a26 feature(edit) setMenu: preventDefault 2015-09-26 09:18:34 -04:00
coderaiser
4f5b34eff5 feature(listeners) contextMenu: document -> fm 2015-09-25 08:45:34 -04:00
coderaiser
e88420c525 chore(travis) switch to new build infrastracture 2015-09-25 02:54:41 -04:00
coderaiser
ea45c6cefe refactor(dom) setHistory: pTitle -> title 2015-09-24 10:23:32 -04:00
coderaiser
e4b345919b chore(package) v4.5.6 2015-09-24 04:53:50 -04:00
coderaiser
b99befe1b1 feature(server) remove extra layer to express 2015-09-24 04:23:44 -04:00
coderaiser
d487273990 chore(package) v4.5.5 2015-09-23 06:13:17 -04:00
coderaiser
87d7805714 fix(config) alert -> Dialog.alert 2015-09-23 06:01:12 -04:00
coderaiser
7d70fe6d78 fix(directory) alert -> Dialog.alert 2015-09-23 05:26:06 -04:00
coderaiser
28e2663aa5 fix(operation) setListeners: show alert on last file when error 2015-09-23 05:24:55 -04:00
coderaiser
28705aa986 chore(package) v4.5.4 2015-09-22 02:30:25 -04:00
coderaiser
b8ae309e15 fix(operation) deleteShift -> deleteSilent 2015-09-21 11:11:50 -04:00
coderaiser
8a15d707c7 docs(readme) build status: cloudcmd/dev -> cloudcmd 2015-09-21 02:56:18 -04:00
coderaiser
f3088d3947 feature(package) socket.io v1.3.7 2015-09-21 02:32:24 -04:00
coderaiser
85fd114404 feature(package) edward v2.2.0 2015-09-18 07:06:20 -04:00
coderaiser
635dec1787 feature(package) dword v2.2.1 2015-09-18 07:05:19 -04:00
coderaiser
395e25729f docs(changelog) rm merge info 2015-09-18 07:05:02 -04:00
coderaiser
23d3441bbd feature(package) dword v2.1.0 2015-09-18 03:25:09 -04:00
coderaiser
91518ab4c7 feature(package) edward v2.1.0 2015-09-18 03:23:10 -04:00
coderaiser
116ed88683 chore(package) v4.5.3 2015-09-16 03:32:42 -04:00
coderaiser
a74731f9b1 feature(package) gulp-jscs v2.0.0 2015-09-16 03:32:10 -04:00
coderaiser
0f9032a190 feature(travis) node_js: add 4 2015-09-16 03:01:49 -04:00
coderaiser
e2db6fc25d feature(index) New directory -> New Directory 2015-09-15 07:25:52 -04:00
coderaiser
7ef2eb1037 Merge pull request #50 from tarzak/patch-3
feature(keyspanel) uppercased first letters in tooltips
2015-09-15 14:23:49 +03:00
tarzak
1ae1c5f307 Update index.html 2015-09-15 11:50:33 +03:00
coderaiser
aef41a20c4 chore(package) v4.5.2 2015-09-03 09:48:00 -04:00
coderaiser
85145b3205 fix(style) .current-file box-shadow: 0.8 -> 1.5 2015-09-03 09:47:20 -04:00
coderaiser
3b2efffb2d fix(cloudcmd) config save 2015-09-03 09:38:22 -04:00
coderaiser
6d42fe9e35 chore(package) v4.5.1 2015-08-28 04:36:04 -04:00
coderaiser
555460a13a feature(cloud) _filepicker -> cloud 2015-08-26 07:11:54 -04:00
coderaiser
fca61f7314 feature(storage) rm vk, skydrive, github, dropbox 2015-08-26 06:57:51 -04:00
coderaiser
4e1079f272 docs(help) menu: upload to/from cloud 2015-08-26 06:53:24 -04:00
coderaiser
4c306025b4 docs(changelog) rm docs 2015-08-26 12:33:06 +03:00
coderaiser
6257910000 chore(package) v4.5.0 2015-08-26 05:05:45 -04:00
coderaiser
4850eaf586 chore(rest) rm comment 2015-08-26 04:51:11 -04:00
coderaiser
dee5abc100 chore(binom) rm " " 2015-08-26 04:50:52 -04:00
coderaiser
53b08abc57 fix(upload) show: scrollbar 2015-08-26 04:38:05 -04:00
coderaiser
af9e70a7f1 feature(menu) new - uploadFromCloud -> uploadFromCloud 2015-08-26 04:32:58 -04:00
coderaiser
6be62338cb feature(client) execFromModule: exec(fn) -> fn.apply 2015-08-26 04:15:15 -04:00
coderaiser
7e137538bb feature(menu) rework of upload to/from cloud 2015-08-26 03:59:27 -04:00
coderaiser
36bb5cd484 feature(menu) getUploadTo: remove not working items 2015-08-26 03:24:28 -04:00
coderaiser
7f9acde217 fix(github) script src 2015-08-26 03:22:43 -04:00
coderaiser
077988efac docs(help) have not -> did not 2015-08-26 03:12:25 -04:00
coderaiser
4b9863e55e docs(changelog) fix() -> (), feature() -> () 2015-08-25 04:56:23 -04:00
coderaiser
01d150185b chore(package) v4.4.0 2015-08-25 04:45:25 -04:00
coderaiser
505d343025 chore(cloudcmd) add " " 2015-08-24 13:45:50 -04:00
coderaiser
883b9154d7 chore(cloudcmd) rm Util 2015-08-24 13:45:23 -04:00
coderaiser
e8ced37128 fix(cloudcmd) prefix -> getPrefix(prefix) 2015-08-24 13:23:54 -04:00
coderaiser
65cf658652 fix(cloudcmd) listen: webconsole 2015-08-24 12:47:11 -04:00
coderaiser
cb3189d443 feature(cloudcmd) improve prefix support 2015-08-24 12:35:49 -04:00
coderaiser
122430dfef feature(package) edward v2.0.0 2015-08-24 12:35:27 -04:00
coderaiser
9095aac713 feature(package) dword v2.0.0 2015-08-24 12:35:07 -04:00
coderaiser
7fa6b8c51c fix(cloudcmd) prefix 2015-08-24 12:09:43 -04:00
coderaiser
dba345859f fix(cloudcmd) do not save prefix with flag --save 2015-08-24 12:08:49 -04:00
coderaiser
1982625e2f feature(package) restafary v1.5.0 2015-08-24 11:52:37 -04:00
coderaiser
63c40e995c feature(package) bower v1.5.1 2015-08-24 11:30:54 -04:00
coderaiser
2c65ee4224 feature(package) minimist v1.2.0 2015-08-24 10:54:02 -04:00
coderaiser
116f7359df fix(cloudcmd) value -> typeof value 2015-08-24 06:31:08 -04:00
coderaiser
410cb62fac chore(package) v4.3.5 2015-08-21 05:21:08 -04:00
coderaiser
ae547ccd23 fix(dom) getCurrentData: when could not get hash call callback with error 2015-08-21 05:15:29 -04:00
coderaiser
1f3f582217 chore(package) v4.3.4 2015-08-19 08:06:09 -04:00
coderaiser
5d3f697c81 feature(json) add supports 2015-08-19 08:05:25 -04:00
coderaiser
94432e2803 feature(supports) add 2015-08-19 07:50:41 -04:00
coderaiser
1c8c387d8e chore(query) add "\n" 2015-08-19 07:50:29 -04:00
coderaiser
857fcdef7b feature(style) .current-file: improve feel in firefox 2015-08-19 05:22:16 -04:00
coderaiser
ab55c8a383 chore(package) v4.3.3 2015-08-17 09:49:16 -04:00
coderaiser
baf8291a47 feature(package) pipe-io v1.2.0 2015-08-17 08:46:33 -04:00
coderaiser
d0c5dacdd8 fix(cloudcmd) new version message 2015-08-17 07:29:36 -04:00
coderaiser
f080eeb1e3 chore(package) v4.3.2 2015-08-17 02:22:27 -04:00
coderaiser
8149939d6f fix(view) showImage: getSelectedNames -> getFilenames 2015-08-15 21:51:15 +03:00
coderaiser
c74618fa5f chore(package) v4.3.1 2015-08-13 09:17:59 -04:00
coderaiser
1086ece85d feature(bin) change params order 2015-08-12 06:12:26 -04:00
coderaiser
34310684f2 fix(directory) entries -> items 2015-08-12 05:29:51 -04:00
coderaiser
2bfff528ed docs(readme) rm appveyor 2015-08-12 03:19:56 -04:00
coderaiser
bba819970a Merge pull request #46 from tarzak/patch-2
docs(help) add ","
2015-08-11 16:52:05 +03:00
tarzak
71eb4388d1 docs(help) add "," 2015-08-11 16:50:06 +03:00
coderaiser
b93209c107 chore(package) v4.3.0 2015-08-11 09:35:42 -04:00
coderaiser
83d0ebcba4 feature(auth) rm oldName, oldPass 2015-08-11 08:09:57 -04:00
coderaiser
e276ee0974 feature(package) restafary v1.4.0 2015-08-11 07:58:14 -04:00
coderaiser
8ae6e8b8cf chore(dom) throw( -> throw 2015-08-11 07:10:00 -04:00
coderaiser
93e304f5d0 fix(directory) show spinner even when no entries 2015-08-11 07:03:29 -04:00
coderaiser
49004caa12 fix(listeners) uploadDirectory: item.kind 2015-08-11 07:01:33 -04:00
coderaiser
bc7b2a7b9f fix(client) join: urls check - string -> array 2015-08-11 07:00:43 -04:00
coderaiser
5c9182a84c fix(listeners) dragndrop: no check items.length 2015-08-11 06:48:43 -04:00
coderaiser
356094b19c refactur(auth) check 2015-08-11 06:29:11 -04:00
coderaiser
cd46dd4a81 fix(cloudcmd) typeof undefined -> "undefined" 2015-08-11 06:02:24 -04:00
coderaiser
f5bd52bac9 chore(config) add " " 2015-08-11 05:48:36 -04:00
coderaiser
5ff1de40d7 chore(cloudfunc) throw( -> throw 2015-08-11 05:39:51 -04:00
coderaiser
4f2a507f2e refactor(client) join: rm Util.check 2015-08-11 02:54:41 -04:00
coderaiser
5cb7311b30 fix(cloudcmd) prefix: add value check 2015-08-10 09:46:02 -04:00
coderaiser
3a3018a8d2 fix(cloudcmd) when params.prefix used, put it to options.prefix 2015-08-10 07:51:54 -04:00
coderaiser
7e0d44b480 feature(cloudcmd) prefix property deprecated 2015-08-10 07:47:06 -04:00
coderaiser
d7957002ee feature(cloudcmd) when prefix=/ clear prefix 2015-08-10 07:42:51 -04:00
coderaiser
d62049cd59 feature(cloudcmd) add --prefix 2015-08-10 07:39:24 -04:00
coderaiser
6b3fbbe9fd feature(package) get gulp-jscs v1.6.0 back 2015-08-10 07:18:25 -04:00
coderaiser
5bdd5f0c17 fix(operation) processFiles: files not defined 2015-08-10 05:57:55 -04:00
coderaiser
ba24d1251d chore(view) rm Dialog 2015-08-10 05:33:28 -04:00
coderaiser
dd5ac3e361 feature(package) gulp-jscs v2.0.0 2015-08-10 05:32:40 -04:00
coderaiser
8f43c23b96 fix(dom) getFilenames: allFiles.slice -> slice.call(allFiles 2015-07-24 11:06:13 -04:00
coderaiser
18551c74b5 feature(dom) getSelectedNames -> getFilenames 2015-07-24 11:03:39 -04:00
coderaiser
4461463d9d refactor(cloudfunc) rm Util 2015-07-24 08:16:20 -04:00
coderaiser
a7d6974872 chore(package) v4.2.0 2015-07-24 03:39:13 -04:00
coderaiser
4d73f86474 feature(listeners) add select on click' 2015-07-24 03:37:33 -04:00
coderaiser
83542b8dc4 fix(buffer) cut: lenght -> length 2015-07-24 02:43:33 -04:00
coderaiser
3e52f7f954 feature(listeners) toggleSelect only when left mouse button 2015-07-23 10:22:43 -04:00
coderaiser
5b8a83c398 feature(key) rm unselectFiles 2015-07-23 09:27:37 -04:00
coderaiser
b5ee03c816 feature(dom) add unselectFiles 2015-07-23 09:19:10 -04:00
coderaiser
46cc5c2326 feature(listeners) add ability to select files with shift+click 2015-07-23 09:05:11 -04:00
coderaiser
5547094315 feature(listeners) add ability to select files via mouse click 2015-07-23 08:28:09 -04:00
coderaiser
81f5cd4446 chore(package) v4.1.2 2015-07-23 05:39:24 -04:00
coderaiser
06788687c3 fix(key) double slash in path 2015-07-23 05:38:34 -04:00
coderaiser
c9b692382f chore(package) v4.1.1 2015-07-23 02:38:03 -04:00
coderaiser
9c231ad7ed feature(bower) menu-io v0.7.9 2015-07-22 10:35:00 -04:00
coderaiser
24dce00f16 feature(query) .files height: 90% when window height less then 850px 2015-07-22 10:17:59 -04:00
coderaiser
4298137694 feature(menu) show alert when try to cut/copy ".." 2015-07-22 03:18:16 -04:00
coderaiser
8bc6a98574 chore(buffer) rm "{,}" 2015-07-22 03:17:58 -04:00
coderaiser
2bab935044 fix(buffer) try copy and cut ".." 2015-07-22 03:08:45 -04:00
coderaiser
eb4f541400 feature(menu) download: show alert, when ".." 2015-07-22 03:02:38 -04:00
coderaiser
de2c8f6b97 feature(dom) getCurrentData: show alert when ".." 2015-07-22 03:00:07 -04:00
coderaiser
1cd136e029 fix(key) loadDir: add "/" 2015-07-21 12:49:37 -04:00
coderaiser
5a8252886c fix(dom) uploadFiles: progress 2015-07-21 12:42:28 -04:00
coderaiser
131c59bfb9 fix(upload) uploadFiles 2015-07-21 12:27:28 -04:00
coderaiser
ce6be2b141 chore(load) rm async 2015-07-21 11:46:34 -04:00
coderaiser
37ca047bff test(cloudfunc) add "/" 2015-07-21 11:46:11 -04:00
coderaiser
cb7212e7d2 fix(listeners) onDblClick: add "/" 2015-07-21 11:46:00 -04:00
coderaiser
799029a2bc fix(listeners) onDblClick: add "/" 2015-07-21 11:27:07 -04:00
coderaiser
a4a18fe920 feature(cloudfunc) rm rmLastSlash 2015-07-21 11:06:57 -04:00
coderaiser
afeb59b1ca chore(client) add ";" 2015-07-21 10:53:09 -04:00
coderaiser
1322993cc9 chore(package) v4.1.0 2015-07-21 06:32:43 -04:00
coderaiser
1585ddca89 feature(bower) execon v1.2.5 2015-07-21 05:35:17 -04:00
coderaiser
d882699045 feature(bower) emitify v1.2.0 2015-07-21 05:29:09 -04:00
coderaiser
7ca07cdc1d feature(dom) uploadFiles progress: every file -> all files 2015-07-21 05:28:29 -04:00
coderaiser
8b4fbb1998 fix(listeners) dragndrop: toggle -> select/unselect 2015-07-21 05:26:49 -04:00
coderaiser
45b4c8a132 fix(view) series 2015-07-21 04:32:32 -04:00
coderaiser
c500e7a4c6 feature(util) exec: each, eachSeries 2015-07-21 04:32:24 -04:00
coderaiser
ab052f52f0 feature(package) ishtar v1.2.0 2015-07-20 10:33:54 -04:00
coderaiser
ce97ddfd33 feature(package) remedy v1.2.0 2015-07-20 10:23:26 -04:00
coderaiser
f2da10d1ca feature(package) spero v1.2.0 2015-07-20 05:14:46 -04:00
coderaiser
253dc5224e fix(edit) show error message twice 2015-07-20 04:16:21 -04:00
coderaiser
aa9b722d38 feature(directory) improve the accuracy of upload progress 2015-07-20 04:09:39 -04:00
coderaiser
1d8998a133 feature(bower) philip v1.3.0 2015-07-20 04:09:32 -04:00
coderaiser
ae62423fe0 feature(package) socket.io v1.3.6 2015-07-20 02:57:15 -04:00
coderaiser
4f14e236cc feature(bower) philip v1.2.1 2015-07-19 10:54:59 -04:00
coderaiser
198fd8e638 feature(package) add bupdate 2015-07-19 05:06:22 -04:00
coderaiser
724264d755 feature(package) markdown-it v4.4.0 2015-07-19 05:05:23 -04:00
coderaiser
08df9580f5 feature(package) add nupdate 2015-07-19 05:04:32 -04:00
coderaiser
98bb57a6d9 feature(bower) philip v1.2.0 2015-07-18 18:29:21 -04:00
coderaiser
4f8c3591f5 feature(bower) philip v1.1.2 2015-07-17 05:29:11 -04:00
coderaiser
44531adfc6 feature(directory) add ability to upload directories via drag n drop in Chrome 2015-07-16 08:24:11 -04:00
coderaiser
2790799b98 feature(dom) uploadFiles: files -> dir, files 2015-07-16 08:23:13 -04:00
coderaiser
4378d4f6e2 chore(operation) add " " 2015-07-16 08:22:28 -04:00
coderaiser
60a8503e76 fix(client) destroy file view even if we can not read directory 2015-07-16 06:45:35 -04:00
coderaiser
d872a4f0c8 feature(operation) speed up 2015-07-16 04:13:59 -04:00
coderaiser
bea26927e0 feature(css) get list of files from css.json 2015-07-15 06:24:13 -04:00
coderaiser
2fea5ae5a2 feature(query) add 2015-07-15 05:59:26 -04:00
coderaiser
65be11a298 docs(readme) add "deploy to heroku" button 2015-07-14 10:54:54 -04:00
coderaiser
8345457acc chore(package) v4.0.0 2015-07-13 02:28:24 -04:00
coderaiser
844303be04 feature(config) progress: true 2015-07-13 02:25:37 -04:00
coderaiser
75cd36f7c8 fix(listeners) initKeysPanel: name missing 2015-07-12 15:31:24 -04:00
coderaiser
d43150ff47 feature(package) dword v1.9.0 2015-07-12 11:46:42 -04:00
coderaiser
c122fb3412 feature(package) edward v1.9.0 2015-07-12 04:01:48 -04:00
coderaiser
6efbef5210 feature(config) show error.message when file exist, but could not be read from home 2015-07-12 03:45:35 -04:00
coderaiser
08ed4e6621 chore(appveyor) iojs: 1 -> 2 2015-07-11 21:27:04 +03:00
coderaiser
bb42e9b2a0 feature(operation) speed up loading: set delete, copy, pack operations load in order 2015-07-10 05:51:36 -04:00
coderaiser
537bff0569 feature(package) dword v1.8.0 2015-07-10 05:21:57 -04:00
coderaiser
f0283aa2ff feature(package) edward v1.8.0 2015-07-10 05:21:21 -04:00
coderaiser
0626522738 feature(package) ishtar v1.1.5 2015-07-10 04:25:12 -04:00
coderaiser
3f88a0c3f5 feature(package) remedy v1.1.3 2015-07-10 04:24:37 -04:00
coderaiser
e5d51cb13e feature(package) spero v1.1.4 2015-07-10 04:24:01 -04:00
coderaiser
88808ccce0 feature(iocmd) rm 2015-07-10 03:21:20 -04:00
coderaiser
450c2598fa feature(cloudcmd) add progress of pack/extract operations 2015-07-09 11:41:25 -04:00
coderaiser
6081f7a1c4 chore(package) v3.8.1 2015-07-09 10:39:48 -04:00
coderaiser
fd2dbbdaa3 fix(dom) unpack -> extract 2015-07-09 10:36:41 -04:00
coderaiser
27ca342407 fix(dom) twopack: lengh -> length 2015-07-09 10:31:13 -04:00
coderaiser
4ae8713f63 chore(menu) rm unused Operation 2015-07-09 10:20:22 -04:00
coderaiser
b96e31f083 fix(menu) delete: Operation.show -> CloudCmd.Operation.show 2015-07-09 10:18:47 -04:00
coderaiser
9a78ce3fe5 feature(server) add port number check 2015-07-09 10:06:54 -04:00
coderaiser
7c4d5da9d2 fix(rest) streamPack: root 2015-07-08 07:17:40 -04:00
coderaiser
da80935798 fix(files) getConfig promise: add reject 2015-07-08 05:26:49 -04:00
coderaiser
2b307fe6dd feature(rest) callback called on success only -> callback called always 2015-07-08 05:26:31 -04:00
coderaiser
b91aea942b fix(style) file names that conatains Chinese characters breaks the line 2015-07-08 04:59:42 -04:00
coderaiser
7e9ed37b18 feature(listeners) onDragStart: add ability to download directories via drag n drop 2015-07-07 11:08:27 -04:00
coderaiser
2c9b092191 feature(package) jaguar v1.1.0 2015-07-06 10:51:26 -04:00
coderaiser
3da31a2a53 chore(package) v3.8.0 2015-07-06 10:19:11 -04:00
coderaiser
043bf9c874 feature(view) add ability to view next/previous image 2015-07-06 08:53:33 -04:00
coderaiser
70c6d2b970 refactor(view) add showImage 2015-07-06 08:13:54 -04:00
coderaiser
11d9e1fef2 feature(rest) streamPack: add one-click folder download 2015-07-06 07:50:54 -04:00
coderaiser
6c8c128b38 fix(buffer) rmCutClass: forEach -> slice, forEach 2015-07-06 06:39:06 -04:00
coderaiser
f19c28f69e feature(cloudcmd) disallow to view and edit ".." directory 2015-07-06 06:36:31 -04:00
coderaiser
68c663b3b2 feature(rest) rm console.log 2015-07-05 09:33:45 -04:00
coderaiser
d05dc44197 chore(package) v3.7.2 2015-07-04 10:40:12 -04:00
coderaiser
91b73dafce fix(files) getConfig: remove Promise before resolve 2015-07-04 10:38:14 -04:00
coderaiser
a4d292a988 chore(package) v3.7.1 2015-07-04 07:16:25 -04:00
coderaiser
327fa421a0 refactor(config) homedir -> HOME 2015-07-04 04:32:46 -04:00
coderaiser
0f4244756e feature(config) homedir -> os-homedir 2015-07-04 04:00:27 -04:00
coderaiser
12b2c40817 feature(package) chalk v1.1.0 2015-07-03 09:44:13 -04:00
coderaiser
48993d235b docs(changelog) pack -> unpack 2015-07-03 16:20:04 +03:00
coderaiser
ec8eeff462 chore(package) v3.7.0 2015-07-03 09:14:59 -04:00
coderaiser
4365d70411 feature(cloudcmd) pack -> extract 2015-07-03 09:11:30 -04:00
coderaiser
cc8693be60 feature(cloudcmd) jag -> jaguar: add ability to pack couple files in one directory 2015-07-02 10:58:28 -04:00
coderaiser
54bf705240 fix(operation) loading image 2015-07-02 03:03:32 -04:00
coderaiser
73dbba8f17 feature(dom) Images: add chaining 2015-07-02 03:03:14 -04:00
coderaiser
ffba931c1b chore(package) v3.6.0 2015-07-01 06:25:32 -04:00
coderaiser
ab6c3543dd chore(menu) update img 2015-07-01 06:24:35 -04:00
coderaiser
cbcda32df2 fix(client) when none files in the root, menu doesn't work 2015-07-01 03:03:17 -04:00
coderaiser
6f7155e4d0 chore(files) rm " " 2015-06-30 15:53:00 -04:00
coderaiser
993c59f398 feature(config) onKey: onChange on Enter 2015-06-30 15:21:33 -04:00
coderaiser
c39e343357 feature(files) add getTimeoutOnce 2015-06-30 15:16:48 -04:00
coderaiser
05f25e994e feature(menu) show upload in two kinds of menu 2015-06-30 09:50:23 -04:00
coderaiser
e685b5739b fix(cloudcmd) refresh: panel that would be refreshed depends on current file location 2015-06-30 09:40:12 -04:00
coderaiser
161a363b04 fix(dom) getPanel: when no currentFile panel is undefined 2015-06-30 07:39:56 -04:00
coderaiser
ef0fb11a23 fix(cloudcmd) ignore commandl line options when --save flag set 2015-06-30 05:31:38 -04:00
coderaiser
3c538da449 chore(listeners) do not -> doesn't 2015-06-30 04:07:41 -04:00
coderaiser
89621c21f5 Merge pull request #42 from tarzak/patch-1
chore(key) comments lang: ru -> en
2015-06-30 10:32:39 +03:00
tarzak
526975c9b9 translate comments from ru to eng
получаем выдленный файл = > get selected file

если клавиши можно обрабатывать => in case buttons can be processed

навигация по таблице файлов нажали клавишу вверх предыдущую строку => navigation on file table in case of pressing button up select previous row

если нажали клавишу в низ - выделяем следующую строку => in case of pressing button 'down', select next row

если нажали клавишу Home переходим к самому верхнему элементу => in case of pressing button 'Home', go to top element 

если нажали клавишу End выделяем последний элемент => in case of pressing button 'End', select last element

открываем папку => open directory 

чистим хранилище => clear storage
2015-06-30 10:10:29 +03:00
coderaiser
6d73b87ad4 feature(package) yaspeller v2.5.0 2015-06-29 15:03:35 -04:00
coderaiser
97c4c85fc7 feature(package) markdown-it v4.3.0 2015-06-29 14:52:06 -04:00
coderaiser
c27579181d feature(bower) promise-poyfill v2.1.0 2015-06-27 06:58:29 -04:00
coderaiser
e740d2dd04 docs(changelog) rm flop v1.2.0 2015-06-27 13:25:47 +03:00
coderaiser
fed8522972 chore(package) v3.5.0 2015-06-27 06:21:17 -04:00
coderaiser
fadc651d86 feature(cloudcmd) --progressOfCopying deprecated 2015-06-27 06:12:51 -04:00
coderaiser
592f5b32b9 feature(cloudcmd) progress-of-copying -> progress 2015-06-26 07:52:15 -04:00
coderaiser
c14c2ac696 chore(operation) rm " " 2015-06-26 07:41:48 -04:00
coderaiser
9219339417 feature(package) mellow v2.0.0 2015-06-26 07:35:22 -04:00
coderaiser
b9177e7aec feature(flop) v1.3.0 2015-06-26 07:33:57 -04:00
coderaiser
239073b97b docs(help) prefix -> cloudcmd, 31337 -> 1337 2015-06-26 07:11:15 -04:00
coderaiser
2b7c0069bb feature(cloudcmd) show progress of files removing 2015-06-26 07:09:49 -04:00
coderaiser
f6dd602d2e feature(package) flop v1.2.0 2015-06-24 07:31:59 -04:00
coderaiser
e896e84e1f fix(cloudcmd) getPrefix: undefined 2015-06-23 06:16:08 -04:00
coderaiser
61c7afa635 feature(cloudcmd) prefix could be function 2015-06-22 15:32:58 -04:00
coderaiser
080a458712 feature(config) tryrequire -> readjson 2015-06-22 11:57:34 -04:00
coderaiser
f8973e26c0 refactor(express) tryrequire -> require 2015-06-22 11:38:46 -04:00
coderaiser
8ad5359b5b feature(config) socket -> middle 2015-06-22 07:54:13 -04:00
coderaiser
59f122f099 docs(changelog) pre -> prefix 2015-06-22 14:52:18 +03:00
coderaiser
3544a6c8eb chore(package) v3.4.0 2015-06-22 06:30:06 -04:00
coderaiser
82e7f8a220 fix(modules) domkentlist: cloudcmd -> client 2015-06-22 06:14:22 -04:00
coderaiser
de7f6c56dc fix(cloudcmd) password: double crypt 2015-06-22 05:50:57 -04:00
coderaiser
fb0376e5c5 fix(cloudcmd) add password 2015-06-22 05:44:47 -04:00
coderaiser
e74a44b68f feature(package) should v7.0.1 2015-06-22 02:38:41 -04:00
coderaiser
ca4d83f44a docs(help) Using as Middleware 2015-06-22 02:34:54 -04:00
coderaiser
b9eab52f8b feature(validate) add 2015-06-22 02:34:34 -04:00
coderaiser
74a1da51ff feature(index) rm DOMContentLoaded 2015-06-22 01:34:58 -04:00
coderaiser
a74e49f4ab feature(cloudcmd) add prefix support 2015-06-21 12:50:48 -04:00
coderaiser
67d9b7981e feature(config) minify: true -> false 2015-06-21 10:38:46 -04:00
coderaiser
12522095a0 feature(package) express v4.13.0 2015-06-21 10:27:03 -04:00
coderaiser
9802533a6b chore(package) v3.3.0 2015-06-20 13:44:15 -04:00
coderaiser
abf66cba73 docs(help) Update: i -> update 2015-06-20 11:29:22 -04:00
coderaiser
1f220c8761 feature(cloudcmd) add checkUpdate 2015-06-20 11:20:24 -04:00
coderaiser
9257cb4490 feature(bin) add " " 2015-06-20 10:49:44 -04:00
coderaiser
f0456d15b9 feature(konsole) rm CloudFunc 2015-06-20 04:59:32 -04:00
coderaiser
6e9c509a4f chore(route) rm comments 2015-06-18 13:49:19 -04:00
coderaiser
60e80e7f14 feature(markdown) rm util 2015-06-18 12:54:09 -04:00
coderaiser
1849cc227f chore(input) add " " 2015-06-17 13:58:49 -04:00
coderaiser
9a7ca5cc27 feature(config) mapCondition -> filter 2015-06-17 12:44:19 -04:00
coderaiser
f33cb44306 fix(auth) always show auth dialog 2015-06-17 08:33:49 -04:00
coderaiser
90cc76e6c7 feature(edit) fontSize: style -> setOption 2015-06-17 07:43:37 -04:00
coderaiser
ebb4ce2479 feature(package) dword v1.6.0 2015-06-17 07:08:12 -04:00
coderaiser
3eecfd4b96 feature(input) add 2015-06-17 05:12:42 -04:00
coderaiser
4b5110bb51 feature(config) add mapCondition 2015-06-16 14:47:12 -04:00
coderaiser
df122dbcbe refactor(config) value - 0 -> Number(value) 2015-06-16 12:09:31 -04:00
coderaiser
b9a0e4e409 feature(auth) add ability to enable/disable without restart 2015-06-15 03:35:00 -04:00
coderaiser
8df7a8a019 feature(config) add os.homedir 2015-06-15 02:41:40 -04:00
coderaiser
86357ae748 feature(package) morgan v1.6.0 2015-06-15 02:27:22 -04:00
coderaiser
896f9347a1 chore(package) v3.2.0 2015-06-12 03:50:25 -04:00
coderaiser
3634e6abe7 feature(cloudcmd) add logOut 2015-06-12 03:50:09 -04:00
coderaiser
cb42053a1b chore(package) v3.1.4 2015-06-11 10:04:47 -04:00
coderaiser
ce5a9f6796 feature(view) add contextmenu to overlayclick 2015-06-11 10:04:03 -04:00
coderaiser
52f6705de6 fix(listeners) toggleClass -> toggle 2015-06-11 09:59:34 -04:00
coderaiser
060d430856 chore(package) v3.1.3 2015-06-11 04:50:06 -04:00
coderaiser
1b94d1e511 test(cloudfunc) html -> hbs 2015-06-11 02:52:06 -04:00
coderaiser
ae75d3449f feature(tmpl) mv index, auth to html 2015-06-11 02:35:20 -04:00
coderaiser
81a958c31a chore(route) rm console.log 2015-06-10 12:29:47 -04:00
coderaiser
275d89cf89 feature(package) ponse v1.4.0 2015-06-10 12:28:31 -04:00
coderaiser
d533a4259d feature(html) html -> tmpl: 2 x times speed up 2015-06-10 12:28:02 -04:00
coderaiser
c9bbf0cf2b chore(package) v3.1.2 2015-06-10 06:09:08 -04:00
coderaiser
653d0492ae fix(dom) operation: copy/move buttons do not work 2015-06-10 06:08:14 -04:00
coderaiser
5f22fc64cb chore(Rest) new RegExp -> RegExp 2015-06-09 09:23:44 -04:00
coderaiser
6a41110288 chore(package) v3.1.1 2015-06-09 07:32:05 -04:00
coderaiser
92fdfb9803 fix(rest) markdown: "." -> ";" 2015-06-09 07:31:07 -04:00
coderaiser
a8ae90934b docs(help) 3.2.0 -> 3.1.0 2015-06-09 14:16:27 +03:00
coderaiser
73e6c69c0c chore(package) 3.1.0 2015-06-09 07:08:06 -04:00
coderaiser
b274fd17ad chore(package) v3.1.0 2015-06-09 06:57:30 -04:00
coderaiser
224bdc4eae feature(package) checkup v1.3.0 2015-06-09 05:34:42 -04:00
coderaiser
8fe4ff628b feature(cloudcmd) speedup: execon.series -> express 2015-06-09 05:28:51 -04:00
coderaiser
2a2a9fbae4 chore(config) add "\n" 2015-06-09 03:34:48 -04:00
coderaiser
e761f4c8c8 feature(package) checkup v1.1.0 2015-06-09 03:31:53 -04:00
coderaiser
3fd5ad8682 feature(package) add checkup back 2015-06-09 03:02:35 -04:00
coderaiser
0ebc50479c feature(package) v1.1.0 2015-06-08 11:11:43 -04:00
coderaiser
f7b42a3ee9 feature(package) rm checkup 2015-06-08 10:07:34 -04:00
coderaiser
8a5c56db84 feature(package) gulp v3.9.0 2015-06-08 04:05:13 -04:00
coderaiser
33f884e206 feature(listeners) DOM.toggleClass -> classList.toggleClass 2015-06-05 10:16:44 -04:00
coderaiser
e2d4a95c44 feature(bower) add domtokenlist-shim 2015-06-05 10:15:49 -04:00
coderaiser
0020afcf92 feature(util) exec.with: callback.bind -> bind.apply 2015-06-05 09:47:06 -04:00
coderaiser
bd5ae84ba9 fix(util) check: isEmpty 2015-06-05 09:39:14 -04:00
coderaiser
2bfb7bb04b chore(rest) rm " " 2015-06-05 09:38:51 -04:00
coderaiser
9ac3eeb332 feature(util) exec.with: arguments[0] -> slice.call(arguments) 2015-06-05 09:28:17 -04:00
coderaiser
256cf20ab6 chore(bower) html5-polyfills 2015-06-05 09:27:15 -04:00
coderaiser
b53691f91a feature(dom) rm addClass, removeClass 2015-06-05 09:08:56 -04:00
coderaiser
87e77c2654 feature(dom) loading, error: DOM.add/removeClass -> classList.add/remove 2015-06-05 08:27:40 -04:00
coderaiser
aec152d793 feature(dom) Images.show.error: jqXHR -> text 2015-06-05 08:19:43 -04:00
coderaiser
9361dac428 chore(bower) github: update dependencies 2015-06-04 08:48:15 -04:00
coderaiser
99edc05cdf chore(package) v3.0.4 2015-06-04 07:41:45 -04:00
coderaiser
b823ea371a feature(package) join-io v1.4.0 2015-06-04 07:16:16 -04:00
coderaiser
ba04ec275b feature(bower) add vk-openapi 2015-06-04 06:51:04 -04:00
coderaiser
9902e13c11 feature(github) add from bower 2015-06-04 06:46:02 -04:00
coderaiser
1bcd27db77 refactor(buffer) paste 2015-06-04 04:42:17 -04:00
coderaiser
140efc2a78 chore(notify) rm " " 2015-06-04 04:30:20 -04:00
coderaiser
95b3db34e3 feature(package) execon v1.2.0 2015-06-03 07:12:44 -04:00
coderaiser
43d87a6115 chore(style) .fm, .keyspawnl: set correct order 2015-06-02 09:33:48 -04:00
coderaiser
1103cde6b3 chore(package) v3.0.3 2015-06-02 08:56:29 -04:00
coderaiser
1dc0b60c22 fix(cloudcmd) load listener do not removed after load 2015-06-02 06:02:12 -04:00
coderaiser
e7630f46c7 feature(style) .fm: cursor default for ff 2015-06-02 05:54:40 -04:00
coderaiser
987870eb26 feature(style) current file: loocks similar on chrome and ff 2015-06-02 05:51:32 -04:00
coderaiser
53c35c0e02 fix(dom) loadRemote: window[o.name] -> o.name && window[o.name] 2015-06-02 05:38:47 -04:00
coderaiser
a2eb14a79b fix(listeners) contextMenu: event is undefined 2015-06-02 05:36:26 -04:00
coderaiser
8ac7231e74 fix(operation) load image do not hide when operation done loading 2015-06-02 05:10:50 -04:00
coderaiser
bd7259cfe4 feature(dom) resize: set current file on left panel, when right panel is active on resizing, and size is to small for two panels 2015-06-02 05:09:33 -04:00
coderaiser
ff471d0ba4 feature(dom) sendDelete: add Images.show 2015-06-02 04:47:34 -04:00
coderaiser
1b8e05c861 chore(rest) onPUT: rm unused error 2015-06-01 09:28:45 -04:00
coderaiser
49af9e3a1e feature(package) yaspeller v2.4.0 2015-06-01 09:28:01 -04:00
coderaiser
83e2a187de refactor(rest) add isRootAll 2015-05-31 09:30:24 -04:00
coderaiser
394314dd3d refactor(operation) create: add/remove listeners 2015-05-31 08:33:14 -04:00
coderaiser
bac66c5e19 chore(package) v3.0.2 2015-05-31 08:11:42 -04:00
coderaiser
0c14c78775 fix(operation) error listeners do not removed 2015-05-31 08:08:30 -04:00
coderaiser
48c4f3cd6e docs(man) add --progress-of-copying, --no-progress-of-copying 2015-05-29 10:09:48 -04:00
coderaiser
73c699eb2b docs(help) coderaiser/dword -> cloudcmd/dword 2015-05-29 17:06:14 +03:00
coderaiser
9faa6462b4 chore(package) v3.0.1 2015-05-29 09:12:27 -04:00
coderaiser
2c5ab6844a fix(markdown) root -> DIR + root 2015-05-29 08:56:50 -04:00
coderaiser
3e85d3314f fix(markdown) set root when reletive path 2015-05-29 08:55:32 -04:00
coderaiser
17d6efff4d fix(rest) isRootWin32: no root directory check 2015-05-29 08:46:21 -04:00
coderaiser
2f82c2407f fix(markdown) root 2015-05-29 08:37:55 -04:00
coderaiser
66211a7ab2 chore(index) add " " 2015-05-28 11:00:49 -04:00
coderaiser
67ad1f9564 feature(bin) --progress-of-copying, --no-progress-of-copying 2015-05-28 05:46:40 -04:00
coderaiser
ab570a9f05 chore(operation) rm " " 2015-05-28 05:28:01 -04:00
coderaiser
4fdbb13010 chore(package) v3.0.0 2015-05-28 05:19:09 -04:00
coderaiser
2ac9f3806d feature(img) config: progress of copying 2015-05-28 05:15:07 -04:00
coderaiser
b0ee5b5f35 feature(cloudcmd) add progress-of-copying 2015-05-28 05:07:44 -04:00
coderaiser
546a44f216 feature(cloudcmd) add progress of copying 2015-05-28 05:02:13 -04:00
coderaiser
67d3f1f574 chore(dom) rm " " 2015-05-27 09:59:33 -04:00
coderaiser
7673d5934b feature(dom) processMessage -> message 2015-05-27 09:58:11 -04:00
coderaiser
d38f2e2f0e refactor(dom) processFiles: operation, data -> data, operation 2015-05-27 09:43:24 -04:00
coderaiser
8ddec5f792 feature(style) loading::after bottom: 3px -> 5px 2015-05-27 09:20:41 -04:00
coderaiser
e97365de03 chore(dom) rm " " 2015-05-27 08:57:04 -04:00
coderaiser
7a27b40068 feature(listeners) rm online 2015-05-27 06:48:49 -04:00
coderaiser
1438f2f36a chore(dom) rm " " 2015-05-27 03:29:04 -04:00
coderaiser
d51cd46d1d feature(dom) CurrentInfo: add isOnePanel 2015-05-27 03:24:16 -04:00
coderaiser
479c1553b8 refactor(client) loadDir: params.noCurrent -> noCurrent 2015-05-27 03:14:21 -04:00
coderaiser
def70b77aa chore(konsole) rm " " 2015-05-27 02:47:14 -04:00
coderaiser
4ff7ba5225 feature(konsole) rm DOM.loadJquery 2015-05-27 02:43:52 -04:00
coderaiser
a41bf555cf chore(konsole) rm unused join 2015-05-27 02:41:05 -04:00
coderaiser
b199b2fb98 fix(show) position -> pos 2015-05-27 02:31:41 -04:00
coderaiser
e02ffbfd94 fix(menu) did not show when button pressed 2015-05-27 02:20:48 -04:00
coderaiser
3b4aa37413 fix(edit) setMenu: try to show before MenuIO loaded 2015-05-25 06:56:29 -04:00
coderaiser
38ebf18e1b feature(package) gulp-jshint v1.11.0 2015-05-25 02:50:15 -04:00
coderaiser
e5c4755b4b feature(package) gulp-mocha v2.1.0 2015-05-25 02:39:09 -04:00
coderaiser
f787331d19 chore(style) set correct order 2015-05-22 07:52:35 -04:00
coderaiser
688c7117e8 test(cloudfunc) add data-name 2015-05-22 07:52:24 -04:00
coderaiser
914ac6999d fix(konsole) error when multiple key "~" down 2015-05-22 07:50:46 -04:00
coderaiser
20065858fc chore(package) v2.9.3 2015-05-22 07:31:53 -04:00
coderaiser
4e7d460716 feature(file) add data-name 2015-05-22 06:25:09 -04:00
coderaiser
677553f5f0 fix(config) save: json -> jonny 2015-05-22 06:24:46 -04:00
coderaiser
8cb0a95695 fix(menu) show menu on path 2015-05-22 06:15:39 -04:00
coderaiser
16cd7f0bf6 fix(listeners) initKeysPanel: fn not a function 2015-05-22 06:10:54 -04:00
coderaiser
c2f087a93d fix(dom) getCurrentByPosition: current not LI 2015-05-22 05:48:48 -04:00
coderaiser
b210a784e1 feature(listeners) rm onContextMenu 2015-05-22 05:42:12 -04:00
coderaiser
da7f8fc7f9 feature(style) body: overflow hidden 2015-05-22 05:34:50 -04:00
coderaiser
b22e8e96de chore(package) v2.9.2 2015-05-22 04:52:42 -04:00
coderaiser
ba3b80e834 fix(config) json -> jonny 2015-05-22 02:34:34 -04:00
coderaiser
b28e45af25 refactor(cloudcmd) createScript 2015-05-21 09:53:20 -04:00
coderaiser
da2768d56b feature(bower) Util.render -> rendy 2015-05-21 09:33:25 -04:00
coderaiser
cb219ae64e refactor(cloudcmd) unshift -> map 2015-05-21 09:19:46 -04:00
coderaiser
f63a14aa18 feature(rendy) v1.1.0 2015-05-21 07:02:48 -04:00
coderaiser
ca824c07eb feature(files) rm set 2015-05-21 06:21:10 -04:00
coderaiser
d58a3db44c chore(package) v2.9.1 2015-05-19 08:42:27 -04:00
coderaiser
f7ab752bcf fix(config) id="auth" -> data-name="js-auth" 2015-05-19 08:40:19 -04:00
coderaiser
43df69cb9b feature(img) add one-panel-mode 2015-05-18 03:54:40 -04:00
coderaiser
de84664427 chore(package) v2.9.0 2015-05-15 04:43:47 -04:00
coderaiser
ecb8b40184 chore(img) udpate screen 2015-05-15 04:42:36 -04:00
coderaiser
44e6cc0384 fix(key) ctrl + u: open view-source of a browser 2015-05-15 02:38:30 -04:00
coderaiser
f40f49ba8b fix(cloudcmd) could not start because undefined is not supported editor 2015-05-14 13:15:23 -04:00
coderaiser
8a9d20921d feature(package) restafary v1.3.0 2015-05-14 13:05:34 -04:00
coderaiser
64ba44e4d2 feature(cloudcmd) root could be changed without restarting 2015-05-14 10:04:04 -04:00
coderaiser
83b7b8b268 feature(config) add root 2015-05-14 09:35:08 -04:00
coderaiser
0e5e4a8f03 chore(package) v2.8.0 2015-05-14 09:18:02 -04:00
coderaiser
10cbb16645 feature(dom) add goToDirectory 2015-05-14 06:21:49 -04:00
coderaiser
c8de19c7b4 feature(package) copymitter v1.8.0 2015-05-14 02:59:41 -04:00
coderaiser
1eaa6f5a47 fix(dom) processFiles refresh: add callback 2015-05-13 10:44:49 -04:00
coderaiser
5e1875d355 fix(cloudcmd) show "root: undefined", when argument "--root" is absent 2015-05-13 09:41:18 -04:00
coderaiser
4b712c95c6 fix(edit) setValueFirst before edward loaded 2015-05-13 09:07:09 -04:00
coderaiser
5441ac8470 feature(package) copymitter v1.7.0 2015-05-13 06:53:43 -04:00
coderaiser
b02cf140c0 feature(modules) jquery v2.1.4 2015-05-13 05:26:51 -04:00
coderaiser
11c26c8014 refactor(listeners) Util.exec(func) -> func() 2015-05-13 03:54:56 -04:00
coderaiser
dd9db1fe78 feature(style) border: .panel and .cmd-button -> .panel, .cmd-button 2015-05-13 03:08:18 -04:00
coderaiser
8e49de26c3 chore(listeners) rm Files 2015-05-13 02:44:22 -04:00
coderaiser
fe422743bb feature(dom) add swapPanels 2015-05-12 09:59:17 -04:00
coderaiser
63a5ad275b feature(dom) duplicatePanel: show content of directory under cursor in target panel 2015-05-12 09:04:11 -04:00
coderaiser
8e94045cc0 feature(dom) changePanel: element -> name 2015-05-12 08:47:30 -04:00
coderaiser
30cddd45f5 feature(client) loadDir: image position on top, when no history 2015-05-12 08:07:33 -04:00
coderaiser
f2f96e1015 refactor(dom) isContainClass 2015-05-12 07:37:29 -04:00
coderaiser
aca7a36989 fix(dom) getCurrentSize: <dirundefined 2015-05-12 07:31:24 -04:00
coderaiser
f9b83e267e feature(package) yaspeller v2.2.0 2015-05-12 02:51:44 -04:00
coderaiser
ea53b519b9 feature(listeners) rm appStorage 2015-04-28 06:37:08 -04:00
coderaiser
094682be87 feature(package) gulp-jscs v1.6.0 2015-04-27 02:38:05 -04:00
coderaiser
187076c10a feature(package) yaspeller v2.1.0 2015-04-27 02:22:51 -04:00
coderaiser
8df6e4dddd feature(index) make directory -> new directory 2015-04-24 12:09:09 -04:00
coderaiser
04a315bc52 chore(package) v2.7.1 2015-04-24 11:59:44 -04:00
coderaiser
1266e99d77 docs(help) config localStorage 2015-04-24 18:58:38 +03:00
coderaiser
9fa1b1accc feature(package) markdown-it v4.2.0 2015-04-24 11:41:09 -04:00
coderaiser
310328febc chore(package) v2.7.0 2015-04-24 11:32:13 -04:00
coderaiser
6cd01a0ca1 fix(rest) auth: array, name -> name, array 2015-04-24 11:26:21 -04:00
coderaiser
74be4c92d0 feature(binom) Util.findObjByNameInArr -> binom 2015-04-24 11:26:03 -04:00
coderaiser
68114e5ac5 feature(binom) add 2015-04-24 11:17:31 -04:00
coderaiser
6b8235c002 fix(auth) lib/promise.js -> modules/promise-polyfill/Promise.js 2015-04-24 11:17:18 -04:00
coderaiser
8a97369103 feature(panel) id -> data-name 2015-04-24 08:34:56 -04:00
coderaiser
748bb1b7b2 feature(cloudfunc) rm LEFT, RIGHT 2015-04-24 08:23:38 -04:00
coderaiser
29c63f1f2b refactor(dom) processFiles 2015-04-24 08:10:56 -04:00
coderaiser
e36df63a0b feature(dom) processFiles: add ask before overwriting 2015-04-24 05:22:47 -04:00
coderaiser
a3e44763df feature(client) rm MousePosition 2015-04-24 04:47:23 -04:00
coderaiser
f27a3b7474 feature(travis) rm before_install 2015-04-22 04:44:14 -04:00
coderaiser
285632e8ff feature(package) should v6.0.1 2015-04-20 04:58:50 -04:00
coderaiser
66344a0aaf chore(exit) add ";" 2015-04-20 04:43:54 -04:00
coderaiser
c9e5921173 feature(package) yaspeller v2.0.1 2015-04-20 04:38:05 -04:00
coderaiser
f40162232f docs(readme) rm "\n" 2015-04-17 17:32:06 +03:00
coderaiser
ccbe94e5cc chore(package) v2.6.0 2015-04-17 10:26:02 -04:00
coderaiser
5f3cca5fd3 docs(man) add --minify, --editor 2015-04-17 10:24:29 -04:00
coderaiser
682490ae61 feature(yaspeller) dictionary: add dword, edward 2015-04-17 09:48:16 -04:00
coderaiser
6fcbf51cd5 feature(cloudcmd) "port should be a number" -> "cloudcmd --port: should be a number" 2015-04-17 09:42:45 -04:00
coderaiser
0caf78841d feature(cloudcmd) add editor 2015-04-17 09:40:11 -04:00
coderaiser
c4b8ca79f2 feature(dword) v1.5.0 2015-04-17 03:47:36 -04:00
coderaiser
6327b9fa17 feature(package) edward v1.6.0 2015-04-17 03:47:23 -04:00
coderaiser
61e84764a0 feature(edit) rm clearSelection 2015-04-17 03:44:24 -04:00
coderaiser
57dc28ed73 feature(yaspeller) dictionary: add minification 2015-04-15 04:47:47 -04:00
coderaiser
5afcd10313 feature(cloudcmd) add --minify, --no-minify 2015-04-15 04:04:23 -04:00
coderaiser
3c9c97560f feature(config) add sync via sockets 2015-04-15 03:59:38 -04:00
coderaiser
8c6cbcf860 fix(bin) online: string -> boolean 2015-04-15 03:58:39 -04:00
coderaiser
b4e24b4b78 refactor(files) getConfig: no need to save config 2015-04-15 02:52:22 -04:00
coderaiser
8d43463215 refactor(files) getConfig: no need to save promise every time 2015-04-15 02:50:43 -04:00
coderaiser
8ce4d0621e fix(files) config read only once and do not sync with server even when server reloads 2015-04-15 02:31:31 -04:00
coderaiser
efc0479d25 chore(package) v2.5.1 2015-04-14 09:43:39 -04:00
coderaiser
9ad0be3f9f feature(config) id -> data-name 2015-04-14 09:36:24 -04:00
coderaiser
0b5df380d1 chore(img) config: update 2015-04-14 09:23:12 -04:00
coderaiser
a5b205cb85 refactor(config) label: for -> child 2015-04-14 07:41:12 -04:00
coderaiser
86273c129e fix(view) images with upper case extension are not recognized as images 2015-04-13 07:02:32 -04:00
coderaiser
3b546f92ac fix(contact) window could not be closed 2015-04-12 17:19:47 -04:00
coderaiser
c60c87fef6 fix(view) audio, video has no focus, when open by mouse 2015-04-12 17:12:11 -04:00
coderaiser
78092dc067 feature(view) isAudio: add m4a 2015-04-12 17:10:51 -04:00
coderaiser
3f39e4ac11 feature(view) rm FocusWas 2015-04-12 16:55:01 -04:00
coderaiser
0a983e6f7f feature(exit) add 2015-04-11 07:37:43 -04:00
coderaiser
89449e9c02 feature(server) add error listener 2015-04-11 06:20:32 -04:00
coderaiser
6310fc7fd1 feature(cloudcmd) root: add directory check 2015-04-11 03:56:19 -04:00
coderaiser
092892289c docs(help) folders -> directories 2015-04-10 09:21:24 -04:00
coderaiser
e1c4b6eca1 chore(jshintrc) add " " 2015-04-10 08:30:38 -04:00
coderaiser
2e21e3aa91 feature(cloudcmd) args: add check of unknown options 2015-04-10 08:29:36 -04:00
coderaiser
43cabc4889 docs(help) tablet device -> tablet 2015-04-09 05:47:47 -04:00
coderaiser
2d8374fc5c chore(package) v2.5.0 2015-04-09 02:50:55 -04:00
coderaiser
53e9227f4a feature(package) gulp-jscs v1.5.0 2015-04-08 10:27:18 -04:00
coderaiser
685e9b1da5 feature(man) add 2015-04-08 06:04:22 -04:00
coderaiser
046b4bde90 feature(cloudcmd) root: show root, when not "/" 2015-04-08 04:44:48 -04:00
coderaiser
9698dd4dcc feature(config) add root 2015-04-08 04:39:05 -04:00
coderaiser
d00f60f40e feature(cloudcmd) show root directory when used flag --root 2015-04-08 04:37:29 -04:00
coderaiser
ab407b22bd feature(root) rm path 2015-04-08 03:20:10 -04:00
coderaiser
cb4d00828c feature(client) createFileTable: history -> options (history, noCurrent) 2015-04-08 02:59:48 -04:00
coderaiser
72598b88f6 docs(help) --root: folder -> directory 2015-04-07 11:06:52 -04:00
coderaiser
f0043ca20b chore(bin) add " " 2015-04-07 11:05:36 -04:00
coderaiser
03319626be feature(cloudcmd) add command line parameter --root 2015-04-07 11:03:11 -04:00
coderaiser
03402e7a55 feature(cloudcmd) dword, edward: add root 2015-04-07 11:02:25 -04:00
coderaiser
7c46655843 feature(root) add condition dir and root 2015-04-07 11:02:25 -04:00
coderaiser
d6e9fa7c88 feature(package) mellow v1.3.0 2015-04-07 11:02:16 -04:00
coderaiser
99d55be497 feature(config) tryrequire -> try-catch 2015-04-07 11:02:10 -04:00
coderaiser
29beabb114 fix(root) pathToWin only when root dir
fix(route) fullPath -> name
2015-04-07 11:01:59 -04:00
coderaiser
0c76d2dbdf feature(package) mellow v1.1.0 2015-04-07 11:01:58 -04:00
coderaiser
142daeb924 feature(package) restafary v1.2.0 2015-04-07 11:01:51 -04:00
coderaiser
3a8c71d363 feature(cloudcmd) add --root 2015-04-07 11:01:35 -04:00
coderaiser
100edf8b41 feature(config) tryrequire -> try-catch 2015-04-07 06:26:17 -04:00
coderaiser
2e6474cf8f chore(route) add "\n" 2015-04-07 03:07:36 -04:00
coderaiser
4334b34637 refactor(route) route 2015-04-07 02:48:54 -04:00
coderaiser
0026971da2 chore(route) "throw()" -> "throw" 2015-04-07 02:46:31 -04:00
coderaiser
2ac5a353aa feature(server) rm socket condition 2015-04-06 08:13:35 -04:00
coderaiser
a3cfadb84c Merge pull request #26 from alexfernandez/master
docs(readme) use mini-badge for package-quality instead of large badge
2015-04-06 09:51:07 +03:00
coderaiser
ca7b3d81e5 feature(package) gulp-jshint v1.10 2015-04-06 02:43:36 -04:00
coderaiser
64f0f4bd23 feature(package) markdown-it v4.1.0 2015-04-06 02:41:51 -04:00
coderaiser
261a568cc6 feature(package) bower v1.4.1 2015-04-06 02:38:30 -04:00
Alex Fernandez
2cbb4f8684 fix(readme) use mini-badge for package-quality instead of large badge 2015-04-05 00:13:14 +02:00
coderaiser
2accaf286b feature(package) v2.4.2 2015-04-03 05:06:25 -04:00
coderaiser
99796d4f55 feature(cloudcmd) rendy -> %s 2015-03-31 14:00:40 -04:00
coderaiser
c17b1add9e feature(bin) output -> display 2015-03-31 04:53:32 -04:00
coderaiser
047556ecb9 docs(readme) circle ci: rm style 2015-03-31 11:49:25 +03:00
coderaiser
85d067a753 feature(bin) options -> configuration 2015-03-31 04:47:31 -04:00
coderaiser
50718c424f feature(cloudcmd) add -c, --config 2015-03-31 04:47:31 -04:00
coderaiser
6b4da4978d docs(help) start --on-online: remote -> local 2015-03-30 16:46:15 +03:00
coderaiser
14d3acc73c fix(bin) add " " 2015-03-30 05:07:04 -04:00
coderaiser
932c644676 fix(cloudcmd) online: on -> o 2015-03-30 04:57:14 -04:00
coderaiser
11297e03a9 chore(cloudcmd) add "\n" 2015-03-30 04:57:14 -04:00
coderaiser
695c67d2d4 docs(readme) start 2015-03-29 14:30:34 +03:00
coderaiser
3713b7c4bf docs(readme) circle ci 2015-03-29 14:15:26 +03:00
coderaiser
3e6c802608 fix(bin) --no-online: do not load -> load 2015-03-29 10:25:19 +03:00
coderaiser
2d55437bfa fix(bin) --no-online: load -> do not load 2015-03-29 10:23:39 +03:00
coderaiser
3dc4a50949 chore(cloudcmd) rm " " 2015-03-28 11:23:29 -04:00
coderaiser
b27c9c589a refactor(cloudcmd) rm username 2015-03-28 11:23:29 -04:00
coderaiser
2beeb3b7e9 docs(readme) rm jitsu, heroku live images 2015-03-28 17:15:01 +02:00
coderaiser
ea4860d239 feature(package) v2.4.1 2015-03-28 09:42:59 -04:00
coderaiser
cbe2416eb0 feature(client) rm throw when no callback 2015-03-28 09:42:22 -04:00
coderaiser
885c8c03fd feature(package) v2.4.0 2015-03-28 09:18:22 -04:00
coderaiser
b5928c3be9 feature(modules) add 2015-03-28 09:16:49 -04:00
coderaiser
ffda8aaddf feature(bin) -ps -> -p, -p -> --port 2015-03-28 08:48:16 -04:00
coderaiser
8b7080cc4d chore(cloudcmd) add " " 2015-03-27 11:49:11 -04:00
coderaiser
15b2a62217 fix(client) loadDir: changePanel even when noCurrent is true 2015-03-27 11:16:57 -04:00
coderaiser
897f0099b2 feature(rest) onPut: forEach -> RegExp 2015-03-27 08:34:05 -04:00
coderaiser
ed29320b90 feature(package) v2.3.1 2015-03-26 07:14:34 -04:00
coderaiser
0e9f15a7c3 fix(cloudcmd) auth always false 2015-03-26 07:14:07 -04:00
coderaiser
4b50c00028 feature(package) v2.3.0 2015-03-26 06:33:10 -04:00
coderaiser
bb924c86fa feature(docs) zip -> tar.gz 2015-03-26 05:01:12 -04:00
coderaiser
c12cd62ce7 fix(listeners) pop: event.state could be null 2015-03-26 03:48:47 -04:00
coderaiser
d2c0afccab docs(readme) add package quality 2015-03-25 16:51:10 +02:00
coderaiser
8de9f4b85c docs(help) --noauth -> --no-auth 2015-03-25 16:03:37 +02:00
coderaiser
8ea6c6360e docs(help) -on -> -o 2015-03-25 04:43:53 -04:00
coderaiser
54ee683838 feature(bin) add --no-online, --no-auth, --no-server 2015-03-25 04:40:00 -04:00
coderaiser
249e6ccb0d chore(bin) add " " 2015-03-25 04:28:10 -04:00
coderaiser
b531c82567 chore(bin) add " " 2015-03-25 04:13:44 -04:00
coderaiser
b716e390e1 feature(bin) add --noserver 2015-03-25 04:09:12 -04:00
coderaiser
194796432b feature(bin) add --no-server 2015-03-25 04:02:24 -04:00
coderaiser
6146ac8710 feature(bin) add --online, --offline 2015-03-25 03:53:10 -04:00
coderaiser
d1f967b851 feature(bin) add --auth, --no-auth 2015-03-24 11:30:53 -04:00
coderaiser
03e9cbe7f3 fix(cloudcmd) port: port -> number 2015-03-24 11:18:41 -04:00
coderaiser
2cfacf60c0 feature(bin) add --username, --password, --save 2015-03-24 11:05:57 -04:00
coderaiser
d775b6d736 feature(config) save stringify: add 4 2015-03-24 08:58:15 -04:00
coderaiser
4c06854897 feature(config) add algo 2015-03-24 07:07:03 -04:00
coderaiser
56a7c49cbc refactor(auth) init: add algo 2015-03-24 05:36:14 -04:00
coderaiser
83db9f078b feature(package) copymitter v1.6.0 2015-03-23 10:56:55 -04:00
coderaiser
58888f57d0 chore(cloudcmd) add " " 2015-03-23 08:47:32 -04:00
coderaiser
2b981f1b1a chore(cloudcmd) rm " " 2015-03-23 08:46:21 -04:00
coderaiser
1c0d885603 feature(appveyor) io.js: 1.0 -> 1 2015-03-23 04:28:12 -04:00
coderaiser
5b9ec5da26 refactor(route) route: rm NOT_LOG 2015-03-21 07:15:53 -04:00
coderaiser
784967800f feature(route) rm checkup 2015-03-21 07:12:47 -04:00
coderaiser
45590f2cc1 feature(util) rm getTime 2015-03-20 08:13:12 -04:00
coderaiser
f57c1f3c7e feature(util) rm checkExt 2015-03-20 08:11:32 -04:00
coderaiser
1a0ffd499e feature(util) applyConstructor: util -> client 2015-03-20 08:02:33 -04:00
coderaiser
f81b643f29 chore(config) improve structure 2015-03-20 07:14:16 -04:00
coderaiser
0675da97a2 feature(config) add .full-width 2015-03-20 03:42:28 -04:00
coderaiser
b6d1c7dcd1 feature(json) rm ext, edit 2015-03-19 11:41:41 -04:00
coderaiser
e03ac50239 docs(readme) change badges links order 2015-03-19 10:41:27 -04:00
coderaiser
60ce673ef9 docs(readme) add shippable 2015-03-19 10:37:45 -04:00
coderaiser
66a8e34547 feature(package) v2.2.1 2015-03-19 08:27:07 -04:00
coderaiser
e90b59e37f feature(npmignore) add 2015-03-19 06:17:57 -04:00
coderaiser
cd38a2fff1 feature(appveyor) appveyor.yml -> .appveyor.yml 2015-03-18 08:45:01 -04:00
coderaiser
28928d6271 docs(readme) veyorapp: add "]" 2015-03-18 14:38:03 +02:00
coderaiser
950c66bd44 feature(appveyor) add 2015-03-18 08:36:27 -04:00
coderaiser
8790ca11ed feature(travis) rm gulp 2015-03-18 08:30:15 -04:00
coderaiser
7ad6348542 feature(travis) npm start -> npm test 2015-03-18 08:27:16 -04:00
coderaiser
c395c301f3 chore(package) place: rm duplicate 2015-03-17 07:38:29 -04:00
coderaiser
24a0729033 feature(place) v1.1.2 2015-03-17 07:36:17 -04:00
coderaiser
9ab74dd5e4 feature(modules) socket.io v1.3.5 2015-03-17 05:47:19 -04:00
coderaiser
f9111d1c61 feature(package) markdown-it v4.0.1 2015-03-17 05:44:56 -04:00
coderaiser
39483316c6 feature(yaspeller) dictionary: Dword 2015-03-17 03:49:50 -04:00
coderaiser
8fedd88408 feature(package) rm ashify 2015-03-17 03:48:49 -04:00
coderaiser
a84f140114 feature(package) rm patchfile 2015-03-17 03:47:07 -04:00
coderaiser
d1908b5769 docs(help) add dword, edward 2015-03-17 03:35:14 -04:00
coderaiser
ec07038446 fix(contact) hide: infinite loop 2015-03-16 11:03:24 -04:00
coderaiser
6d2b445867 fix(buffer) cut: when cut root directory, it became transparent 2015-03-16 10:52:25 -04:00
coderaiser
7ed1afa775 refactor(dom) processFiles 2015-03-16 10:21:45 -04:00
coderaiser
3da7e63da2 fix(dom) processFiles: when names.length !== 1 name is undefined 2015-03-16 09:31:40 -04:00
coderaiser
15a0da37f2 feature(package) engines: 0.6 -> 0.10 2015-03-16 07:05:24 -04:00
coderaiser
626b741729 feature(package) publish-io -> wisdom 2015-03-16 05:25:35 -04:00
coderaiser
91daf6edf5 feature(package) scripts: add publish-io 2015-03-16 04:57:34 -04:00
coderaiser
af3bf577e4 fix(gulp) add docs 2015-03-13 11:24:11 -04:00
coderaiser
482770af77 feature(gulp) rm changelog, package 2015-03-13 11:18:58 -04:00
coderaiser
0d23199136 chore(config) img 2015-03-13 06:49:12 -04:00
coderaiser
fef6d1a078 fix(util) render: clean up regexp: lazy -> greedy 2015-03-13 06:45:09 -04:00
coderaiser
260f988d2a chore(config) rm INPUT 2015-03-13 06:31:07 -04:00
coderaiser
5d8ddc9b57 feature(config) add editor 2015-03-13 06:00:23 -04:00
coderaiser
2653a2293e refactor(util) render 2015-03-13 05:52:41 -04:00
coderaiser
3410a98f93 refactor(config) onChange: str -> regexp 2015-03-13 05:43:57 -04:00
coderaiser
fc0b8bdba3 feature(config) rm span 2015-03-13 05:29:23 -04:00
coderaiser
281f906e0c feature(config) username, password: add title 2015-03-13 05:26:08 -04:00
coderaiser
851b802bbb refactor(gulp) package 2015-03-13 05:18:45 -04:00
coderaiser
4049116775 feature(gulp) add bower support 2015-03-13 05:13:33 -04:00
coderaiser
113dc28e9c feature(modules) rm 2015-03-13 03:28:16 -04:00
coderaiser
0a0a5f3d7c docs(contributing) rm Branch 2015-03-13 03:25:40 -04:00
coderaiser
f695894343 feature(package) v2.2.0 2015-03-13 03:21:54 -04:00
coderaiser
8a74b1022d docs(help) Start: rm <port> 2015-03-12 12:00:53 -04:00
coderaiser
1cabc3e582 feature(yaspeller) add 2015-03-11 11:33:40 -04:00
coderaiser
de1c2e207e docs(help) websocket -> WebSocket 2015-03-11 11:19:44 -04:00
coderaiser
b5ba15a9aa refactor(storage) add exec, json, type 2015-03-11 09:50:23 -04:00
coderaiser
d31345203f fix(dom) renameCurrent: when there is file with same name - two same names is shown on a panel 2015-03-11 09:44:42 -04:00
coderaiser
d82ea49e94 refactor(key) setCurrentByChar: for -> while 2015-03-11 09:38:59 -04:00
coderaiser
ca739bb5e0 feature(travis) rm 0.10 2015-03-11 03:18:47 -04:00
coderaiser
400dbb8b3a fix(travis) script: node -> npm 2015-03-10 12:37:13 -04:00
coderaiser
643b2e07c7 feature(package) scripts: add gulp 2015-03-10 12:17:10 -04:00
coderaiser
7ddf054d9e fix(key) open konsole on mac with cyrillic 2015-03-10 11:58:55 -04:00
coderaiser
2add21548a feature(package) Util.json -> jonny 2015-03-10 11:16:51 -04:00
coderaiser
412537a7ae feature(package) Util.check -> checkup 2015-03-10 08:57:11 -04:00
coderaiser
5de8ffc4d9 feature(route) add execon 2015-03-10 08:49:30 -04:00
coderaiser
939114466f feature(rest) add try-catch 2015-03-10 08:47:37 -04:00
coderaiser
7fd5cf1f10 feature(key) setCurrentByLatter: add "-, +, =" 2015-03-08 05:35:54 -04:00
coderaiser
128ef5be05 fix(key) all keys are dots 2015-03-08 05:18:00 -04:00
coderaiser
c4f5a251a3 fix(key) listener: dot on win 2015-03-08 05:15:07 -04:00
coderaiser
797b226345 feature(config) add editor 2015-03-06 11:12:26 -05:00
coderaiser
968e90a564 docs(help) ssl -> SSL 2015-03-06 04:15:46 -05:00
coderaiser
1c2ca087f5 docs(help) dir -> directory 2015-03-06 02:40:35 -05:00
coderaiser
0406714095 docs(help) edward -> Edward 2015-03-06 02:38:19 -05:00
coderaiser
22e78638af docs(help) linux -> Linux 2015-03-06 02:37:30 -05:00
coderaiser
697e08efd1 docs(help) filesystem -> file system 2015-03-06 02:37:04 -05:00
coderaiser
488340857b chore(files) jshint: add global 2015-03-05 06:58:52 -05:00
coderaiser
ff3425981c feature(travis) before_install: add bower 2015-03-05 06:06:52 -05:00
coderaiser
97b02eb090 docs(help) install: add bower, git 2015-03-05 05:30:12 -05:00
coderaiser
d289ad7e49 feature(package) dword v1.3.2 2015-03-04 05:46:59 -05:00
coderaiser
0a19e803b8 feature(edit) go to line: Ctrl+G -> Ctrl+L 2015-02-27 10:56:54 -05:00
coderaiser
ed9763a257 chore(travis) eol: 10 -> 13 2015-02-27 09:37:50 -05:00
coderaiser
3b516ea7c7 chore(manifest) rm trailing spaces 2015-02-27 09:25:00 -05:00
coderaiser
7a7a25d67e feature(package) dword v1.2.0 2015-02-27 09:22:16 -05:00
coderaiser
817d54e591 refactor(edit) show: rm once("change") 2015-02-27 09:21:43 -05:00
coderaiser
70c9f64e88 feature(package) edward v1.4.0 2015-02-27 05:27:37 -05:00
coderaiser
6cbd251035 chore(config) end line: 10 -> 13 2015-02-26 04:05:15 -05:00
coderaiser
f8299fa556 fix(edit) show: name -> Info.name 2015-02-25 11:17:44 -05:00
coderaiser
4e0451bb1c chore(edit) add " " 2015-02-25 09:18:57 -05:00
coderaiser
e9d2c509a8 refactor(edit) show: setModeForPath 2015-02-25 09:07:54 -05:00
coderaiser
10af92ec77 feature(cloudcmd) create: rm predefined key commands 2015-02-25 07:46:07 -05:00
coderaiser
0cb501c39c feature(package) marked -> markdown-it 2015-02-25 06:31:15 -05:00
coderaiser
82d4c5ab29 docs(help) ###: add " " 2015-02-25 06:13:01 -05:00
coderaiser
25fb224613 chore(cloudcmd) add " " 2015-02-24 09:44:58 -05:00
coderaiser
2897cb4b4a chore(cloudcmd) rm " " 2015-02-24 07:47:53 -05:00
coderaiser
0603393a52 feature(dword) add 2015-02-24 07:31:42 -05:00
coderaiser
01656051e2 feature(package) edward v1.3.0 2015-02-24 07:25:53 -05:00
coderaiser
3483196b3b fix(edit) show: set mode before data set 2015-02-24 04:00:31 -05:00
coderaiser
ae1d393dd8 feature(package) console-io v2.2 2015-02-24 02:46:05 -05:00
coderaiser
4b12c5c2e3 feature(package) express v4.12 2015-02-24 02:44:06 -05:00
coderaiser
57ee959182 fix(view) .fancybox-overlay: set z-index: 0 2015-02-23 09:33:41 -05:00
coderaiser
731c4fefad chore(view) rm " " 2015-02-23 09:33:16 -05:00
coderaiser
3e53743f1b feature(bower) menu v0.7.8 2015-02-21 07:01:25 -05:00
coderaiser
1283a3cd39 feature(package) edward v1.2.0 2015-02-20 10:09:12 -05:00
coderaiser
4ff6373b2c feature(jshintrc) rm indent, not supported anymore by jshint 2015-02-19 06:41:52 -05:00
coderaiser
f5c67b6773 feature(jshintrc) add indent: 4 2015-02-19 06:28:34 -05:00
coderaiser
b413796475 feature(jscsrc) add excludeFiles 2015-02-19 03:33:57 -05:00
coderaiser
6f13f2b654 feature(gulp) add jscs 2015-02-18 10:09:19 -05:00
coderaiser
bdf50943a4 chore(dropbox) add "\n" 2015-02-18 10:09:00 -05:00
coderaiser
4ed9654f11 refactor(cloudfunc) test 2015-02-18 10:08:06 -05:00
coderaiser
02953e520d chore(storage) add " " 2015-02-18 10:07:51 -05:00
coderaiser
e6455767ca chore(storage) add " " 2015-02-18 10:00:18 -05:00
coderaiser
afb898ac87 chore(cloudfunc) rm " " 2015-02-18 09:56:39 -05:00
coderaiser
0f8eeba740 chore(key) rm unused obj 2015-02-18 09:53:26 -05:00
coderaiser
0cbca5294d chore(cloudcmd) rm WIN 2015-02-18 09:52:35 -05:00
coderaiser
14a1ef6f11 feature(package) add format-io v0.9.6 2015-02-18 09:28:43 -05:00
coderaiser
f62f2f07e2 chore(util) rm " " 2015-02-18 09:24:41 -05:00
coderaiser
e6eaadf4fc chore(join) rm " " 2015-02-18 09:19:50 -05:00
coderaiser
0231b83505 feature(bower) add format-io 2015-02-18 09:18:52 -05:00
coderaiser
e0233c27ae chore(cloudfunc) rm " " 2015-02-18 08:40:22 -05:00
coderaiser
71bbcbfd96 feature(modules) add promise-polyfill 2015-02-18 08:37:20 -05:00
coderaiser
46a76d5412 feature(jscsrc) requireCapitalizedConstructors 2015-02-18 08:28:50 -05:00
coderaiser
f9c80c709c feature(terminal) rm 2015-02-18 08:26:09 -05:00
coderaiser
744a9d03a5 chore(config) rm " " 2015-02-18 06:38:22 -05:00
coderaiser
96b822ef82 chore(key) rm " " 2015-02-18 06:26:39 -05:00
coderaiser
b1c6233e13 chore(listeners) rm " " 2015-02-18 06:25:52 -05:00
coderaiser
3321e948de chore(events) rm " " 2015-02-18 06:24:08 -05:00
coderaiser
d11724c616 chore(load) rm " " 2015-02-18 06:14:11 -05:00
coderaiser
6f709ccd58 chore(dom) rm " " 2015-02-18 06:10:46 -05:00
coderaiser
43a4f582d2 chore(files) rm " " 2015-02-18 06:04:35 -05:00
coderaiser
5328c372bb chore(markdown) add " " 2015-02-18 04:58:37 -05:00
coderaiser
346136d1a4 chore(menu) rm " " 2015-02-18 04:57:57 -05:00
coderaiser
f1d3681cd8 feature(jscsrc) add disallowTrailingComma 2015-02-18 04:51:22 -05:00
coderaiser
ba74104b78 chore(terminal) jscs 2015-02-18 04:49:16 -05:00
coderaiser
b79011f1b0 chore(notify) rm " " 2015-02-18 04:49:06 -05:00
coderaiser
834f565a7d chore(polyfill) rm " " 2015-02-18 04:48:46 -05:00
coderaiser
c0853c4560 chore(menu) jscs 2015-02-18 04:48:18 -05:00
coderaiser
a2a308f5ef chore(upload) add " " 2015-02-18 04:44:39 -05:00
coderaiser
13ab7ef911 chore(repl) rm "," 2015-02-18 04:43:30 -05:00
coderaiser
a8f8ad14ca refactor(repl) add rendy 2015-02-18 04:42:45 -05:00
coderaiser
c4a50f97d6 chore(rest) rm "," 2015-02-18 04:39:03 -05:00
coderaiser
4b70db56cf chore(rest) rm " " 2015-02-18 04:38:40 -05:00
coderaiser
ebd4bdd5f3 chore(rest) rm " " 2015-02-18 04:37:52 -05:00
coderaiser
1a5ab92c05 chore(route) rm "," 2015-02-18 04:37:30 -05:00
coderaiser
ea97da2931 refactor(route) indexProcessing 2015-02-18 04:37:01 -05:00
coderaiser
55fe83265f chore(route) rm "," 2015-02-18 04:32:15 -05:00
coderaiser
e64c1fced2 chore(terminal) rm " " 2015-02-18 04:31:34 -05:00
coderaiser
9d1a799c23 chore(cloudcmd) add " " 2015-02-18 04:30:05 -05:00
coderaiser
24578ce569 chore(cloudcmd) rm " " 2015-02-18 04:29:41 -05:00
coderaiser
a2bb1a48a2 chore(client) rm trailing whitespaces 2015-02-18 04:29:04 -05:00
coderaiser
cf8f662060 feature(jscsrc) add 2015-02-18 04:25:48 -05:00
coderaiser
fc1b9ebaa6 chore(server) rm " " 2015-02-18 04:25:32 -05:00
coderaiser
03d0c8c05c feature(rest) copy: add progress 2015-02-17 10:49:42 -05:00
coderaiser
60971d7cce fix(edit) Edit.goToLine -> edward.goToLine 2015-02-17 10:35:41 -05:00
coderaiser
5e0bbf3ecb refactor(util) getNamesFromObjArray: forEach -> map 2015-02-17 08:50:42 -05:00
coderaiser
cc8309d046 refactor(util) getNamesFromObjArray 2015-02-17 08:49:27 -05:00
coderaiser
54be194305 feature(util) findObjByNameInArr: add arguments check 2015-02-17 07:10:22 -05:00
coderaiser
ec42e12457 feature(package) rm charm 2015-02-16 11:08:19 -05:00
coderaiser
1392f73ce5 feature(rest) copy: add progress 2015-02-16 11:05:52 -05:00
coderaiser
a62faf3a3f feature(package) should v5.0.0 2015-02-16 02:43:13 -05:00
coderaiser
cf1b8d99d5 feature(package) copymitter v1.5.0 2015-02-14 14:18:29 -05:00
coderaiser
2454d2d781 feature(cloudcmd) get back droid sans mono v5: beter better cyrillic support 2015-02-13 07:44:54 -05:00
coderaiser
cf42ba4ea4 feature(client) refresh: add noCurrent 2015-02-13 04:11:49 -05:00
coderaiser
83c8ea7e06 feature(rest) flop.cp -> copymitter 2015-02-13 04:05:55 -05:00
coderaiser
1103ea7e4d fix(dom) processFiles: change panel in wrong way 2015-02-13 03:57:23 -05:00
coderaiser
e59745c22c fix(util) getRegExp 2015-02-11 10:06:25 -05:00
coderaiser
cc1f856bc2 fix(cloudcmd) twopack: add ".." check 2015-02-09 10:49:57 -05:00
coderaiser
1a62909eb2 feature(travis) add 0.12, iojs 2015-02-09 05:06:55 -05:00
coderaiser
859aee9a27 feature(package) socket.io v1.3.3 2015-02-09 04:25:36 -05:00
coderaiser
480a80f052 feature(bower) menu v0.7.7 2015-02-06 10:23:14 -05:00
coderaiser
aed8c978d2 refactor(buffer) Util.json -> json 2015-02-05 10:03:58 -05:00
coderaiser
01339fd31a feature(bower) menu v0.7.6 2015-02-05 05:50:50 -05:00
coderaiser
154ce27239 feature(font) Droid Sans Mono v7 2015-02-04 07:37:08 -05:00
coderaiser
499fca99b6 fix(util) some: add return 2015-02-03 11:38:06 -05:00
coderaiser
d20291a17f feature(package) rm checkup 2015-02-02 08:47:20 -05:00
coderaiser
6bf04403ae docs(help) Console 2015-02-02 15:40:34 +02:00
coderaiser
dea4abb7a1 feature(package) v2.1.0 2015-02-02 07:21:41 -05:00
coderaiser
4aac30c32c docs(help) edit: rm features 2015-02-02 06:43:59 -05:00
coderaiser
d1edb8a9c9 docs(help) edit hot keys: ace -> edward 2015-02-02 06:40:25 -05:00
coderaiser
887c126b02 feature(edit) setMsgChanged: add " " 2015-02-02 06:36:22 -05:00
coderaiser
d3ebd0550d feature(package) edward v1.1.0 2015-02-02 03:03:53 -05:00
coderaiser
7975babde3 feature(emmet) rm 2015-02-01 04:13:49 -05:00
coderaiser
44abe48661 feature(package) mellow v1.0.0 2015-01-31 10:20:29 -05:00
coderaiser
919e87315e chore(cloudcmd) rm " " 2015-01-31 14:17:41 +02:00
coderaiser
54e6c5a59c docs(help) nodei.co: add downloadRank 2015-01-30 08:39:31 -05:00
coderaiser
fd48eb6c96 fix(listeners) dragndrop: upload files from downloads bar 2015-01-30 07:40:39 -05:00
coderaiser
a9223e5336 feature(pako) rm 2015-01-30 05:54:23 -05:00
coderaiser
8898ca54a8 feature(util) type: regexp speed up 2015-01-30 04:52:11 -05:00
coderaiser
1150aa7133 feature(edward) v1.0.0 2015-01-29 11:11:38 -05:00
coderaiser
798e0688d4 feature(edward) rm 2015-01-29 08:55:48 -05:00
coderaiser
b718897ff8 feature(package) edward v0.6.0 2015-01-29 08:00:17 -05:00
coderaiser
7d2e04db2f feature(cloudcmd) edward: size, socket -> socket, {size} 2015-01-29 07:55:52 -05:00
coderaiser
8c4577ea93 feature(package) edward v0.5.0 2015-01-29 07:24:06 -05:00
coderaiser
eefeace2eb feature(iocmd) +x 2015-01-29 07:20:04 -05:00
coderaiser
2c7c5e0b3a feature(package) edit -> edward 2015-01-28 11:03:50 -05:00
coderaiser
ffba14d2c1 feature(darwin) DOM.getDataFromStorage -> story 2015-01-26 10:57:48 -05:00
coderaiser
043a2b9613 refactor(storage) for-in -> Object.keys-forEach 2015-01-26 09:46:43 -05:00
coderaiser
fbef38149f chore(storage) rm "\n" 2015-01-26 09:44:47 -05:00
coderaiser
7b479f7803 feature(events) rm preventDefault 2015-01-26 09:37:26 -05:00
coderaiser
13526b0916 chore(poyfill) rm "\n" 2015-01-26 09:31:53 -05:00
coderaiser
26def8359d fix(poyfill) removeListener -> Events.remove 2015-01-26 09:31:31 -05:00
coderaiser
d9a54469ff refactor(cloudfunc) render -> rendy 2015-01-26 09:21:13 -05:00
coderaiser
cd4a7460b0 feature(util) rendy: improve speed 2015-01-26 09:14:49 -05:00
coderaiser
42ab825f46 feature(util) render: speed up in 10 times 2015-01-26 07:39:37 -05:00
coderaiser
2792d57c28 feature(edward) isChanged: rm confirm, save 2015-01-23 10:49:23 -05:00
coderaiser
3179b6feea refactor(edward) DOM.load.js -> load.js 2015-01-23 08:29:15 -05:00
coderaiser
c532a818b7 feature(edward) add on 2015-01-23 08:22:15 -05:00
coderaiser
302b7fa13e refactor(edward) Diff -> daffy 2015-01-23 08:05:58 -05:00
coderaiser
71b6ba02a1 feature(zip) zip -> zipio 2015-01-23 04:07:12 -05:00
coderaiser
8a3271af4e feature(bower) rm google-diff-match-patch 2015-01-23 03:27:31 -05:00
coderaiser
04bc27438d fix(modules) pako version: 1.2.1 -> 0.2.5 2015-01-23 02:52:28 -05:00
coderaiser
19d0baa26f refactor(edward) rm setPatchMaxSize 2015-01-23 02:34:25 -05:00
coderaiser
964f7899e9 refactor(edward) DOM.loadSocket -> loadRemote 2015-01-22 11:03:28 -05:00
coderaiser
ee6837b953 refactor(edward) add DIR 2015-01-22 10:52:34 -05:00
coderaiser
ffa4572ee4 feature(edit) rm showMessage 2015-01-22 10:44:02 -05:00
coderaiser
22e3e6c50c feature(edit) rm setValueFirst, goToLine 2015-01-22 10:34:41 -05:00
coderaiser
26a3769220 feature(edward) rm CloudFunc 2015-01-22 06:44:19 -05:00
coderaiser
c75e8ad6e1 feature(edward) add save, patch from edit 2015-01-22 06:38:35 -05:00
coderaiser
47909b13e1 featuru(package) console-io v2.1.0 2015-01-20 08:00:57 -05:00
coderaiser
7ea7f09e16 feature(package) socket.io v1.3.2 2015-01-19 11:03:17 -05:00
coderaiser
0e0df8ad95 docs(help) hot keys: change link to console 2015-01-19 04:14:14 -05:00
coderaiser
14a84c8956 feature(package) console-io v2.0.0 2015-01-19 04:14:01 -05:00
coderaiser
dcdaa89ac1 docs(help) install: add io.js 2015-01-19 02:48:56 -05:00
coderaiser
a9947a2e74 fix(edward) Options -> Config 2015-01-16 03:19:46 -05:00
coderaiser
d9c20ab381 feature(package) should v4.6 2015-01-16 02:34:29 -05:00
coderaiser
c83c7096e7 feature(package) express v4.11 2015-01-15 11:13:15 -05:00
coderaiser
1f04ecc6dc feature(package) execon v1.1.0 2015-01-15 10:41:34 -05:00
coderaiser
4a50e8bff0 feature(bower) load v1.1.3 2015-01-15 09:58:03 -05:00
coderaiser
59c71cf5c0 feature(load) add 2015-01-15 06:11:12 -05:00
coderaiser
74ae6958d1 chore(edit) rm "\n" 2015-01-15 02:55:28 -05:00
coderaiser
3392698c79 feature(edward) add jshint, emmet from edit 2015-01-15 02:54:51 -05:00
coderaiser
bf6dffe74b feature(iocmd) add 2015-01-14 10:29:27 -05:00
coderaiser
1fb2824cf3 feature(package) bin: add iocmd 2015-01-14 10:28:00 -05:00
coderaiser
6376a6e97d feature(edward) mv sha from edit 2015-01-14 08:21:47 -05:00
coderaiser
7d19747fa4 feature(edit) RESTful -> restafary 2015-01-14 08:16:46 -05:00
coderaiser
cb2d09ab07 feature(package) restafary v1.1.0 2015-01-14 08:16:18 -05:00
coderaiser
032a8d574c feature(style) body - rm overflow: hidden 2015-01-14 05:52:34 -05:00
coderaiser
82a5ff966e feature(edward) rm hideMenu 2015-01-14 03:35:04 -05:00
coderaiser
b8d4404aac feature(edit) mv menu back from edward 2015-01-14 03:31:44 -05:00
coderaiser
897173b721 feature(edward) add hideMenu 2015-01-13 11:00:56 -05:00
coderaiser
9b6e06fa61 chore(edit) rm Menuio, Events 2015-01-13 10:57:48 -05:00
coderaiser
592925ffa3 refactor(edward) loadRemote 2015-01-13 10:56:06 -05:00
coderaiser
dd1df950cc chore(edward) MenuIO 2015-01-13 10:44:52 -05:00
coderaiser
b65dfc663e feature(edward) add setMenu 2015-01-13 10:44:19 -05:00
coderaiser
f739563699 feature(edward) add onDrop 2015-01-13 10:37:49 -05:00
coderaiser
7e1b537b0e feature(edward) setUseOfWorker 2015-01-13 09:20:39 -05:00
coderaiser
ece8637275 feature(edward) ed -> edward 2015-01-13 09:18:10 -05:00
coderaiser
57624cbe73 feature(edit) rm Ace, Session 2015-01-13 09:15:48 -05:00
coderaiser
08c5f0471d refactor(edward) showMessage 2015-01-13 07:25:49 -05:00
coderaiser
bc1bca7922 feature(edward) DOM.load -> documentFragment 2015-01-13 07:25:01 -05:00
coderaiser
3a62894312 feature(edward) add showMessage 2015-01-13 04:43:14 -05:00
coderaiser
7de1fcf1f4 feature(edward) add .edward-msg 2015-01-13 04:33:25 -05:00
coderaiser
3388c3dfcc feature(edward) add 2015-01-13 04:32:58 -05:00
coderaiser
d66b159793 feature(edward) add 2015-01-13 03:56:31 -05:00
coderaiser
c33435b692 feature(util) rm replaceStr 2015-01-12 10:40:00 -05:00
coderaiser
a1daf8e884 feature(util) rm rmStr 2015-01-12 10:36:54 -05:00
coderaiser
b8d146c62e feature(util) rm getDate, getShortDate 2015-01-12 10:17:46 -05:00
coderaiser
6194b1e96d feature(util) rm log 2015-01-12 10:11:20 -05:00
coderaiser
f803a76bfa feature(client) rm Util.log 2015-01-12 09:44:54 -05:00
coderaiser
5922b91824 feature(server) rm util 2015-01-12 04:50:27 -05:00
coderaiser
d6a4d61c9f refactor(cloudcmd) webconsole 2015-01-12 04:49:42 -05:00
coderaiser
e219c99dd5 feature(package) rm daffy, diff-match-patch 2015-01-08 16:49:44 -05:00
coderaiser
e5f4e48471 feature(patch) add from npm 2015-01-08 16:46:00 -05:00
coderaiser
d03196aa96 feature(patch) util -> checkup, execon 2015-01-08 16:34:24 -05:00
coderaiser
f157c67756 feature(bower) add jsSHA from bower 2015-01-08 16:30:01 -05:00
coderaiser
c4832161d4 feature(package) add daffy from npm 2015-01-08 16:24:59 -05:00
coderaiser
4a5ad589eb feature(patch) rm tryRequire 2015-01-08 15:44:32 -05:00
coderaiser
f3e30608fa feature(util) rm strCmp 2015-01-08 14:43:41 -05:00
coderaiser
1f01e77072 feature(route) Util.strCmp -> RegExp.test 2015-01-08 14:40:36 -05:00
coderaiser
7d846cfe2e feature(cloudcmd) Util.render -> rendy 2015-01-08 14:36:34 -05:00
coderaiser
5462e24c83 feature(package) add diff-match-patch from npm 2015-01-08 14:24:38 -05:00
coderaiser
0f0f4a15a7 fix(dom) getNotCurrentDirPath: getPanel -> getPanel({active:false}) 2015-01-08 14:09:16 -05:00
coderaiser
18594919e2 refactor(dom) getPanel 2015-01-08 12:54:25 -05:00
coderaiser
e3e79062fd chore(config) send: rm true 2015-01-08 12:49:56 -05:00
coderaiser
e460b57518 feature(polyfill) rm DOM.cssSet 2015-01-08 12:42:05 -05:00
coderaiser
0089286b66 feature(edit) Info.path -> FileName 2015-01-08 12:26:01 -05:00
coderaiser
3f41d0e1f5 feature(edit) Util.log -> console.error 2015-01-08 12:19:21 -05:00
coderaiser
8913daa21b refactor(edit) create 2015-01-08 12:14:06 -05:00
coderaiser
d65a39f722 chore(Edit) rm FileName 2015-01-08 11:43:32 -05:00
coderaiser
e3dc4b65bf refactor(edit) show, initAce, create 2015-01-08 11:42:35 -05:00
coderaiser
be1a18bfe4 chore(edit) rm " " 2015-01-08 10:27:10 -05:00
coderaiser
e1b6bd0467 feature(jquery) rm duplicate 2015-01-08 10:22:20 -05:00
coderaiser
bb6800ec90 feature(modules) add pako 2015-01-08 07:22:21 -05:00
coderaiser
7857c14c1d feature(modules) menu v0.7.5 2015-01-05 15:21:34 -05:00
coderaiser
478cc28731 feature(bower) add modules 2015-01-05 15:17:28 -05:00
coderaiser
a645f0a3a4 docs(license) 2015 2015-01-02 07:03:18 -05:00
coderaiser
7fe855edfe feature(tryrequire) add from npm 2015-01-01 13:47:21 -05:00
coderaiser
102ec0731a feature(link) add title 2014-12-31 03:59:09 -05:00
coderaiser
32b47b9966 refactor(cloudfunc) add Entity 2014-12-30 07:41:45 -05:00
coderaiser
55d382b0c1 feature(jshint) add validthis 2014-12-30 07:40:55 -05:00
coderaiser
fcf758be3c feature(cloudfunc) entities: add ampersand 2014-12-30 07:31:54 -05:00
coderaiser
ef34412277 chore(key) rm "\n" 2014-12-30 06:54:41 -05:00
coderaiser
ca22d8f9ba fix(dom) getCurrentName: title || textContent -> innerHTML, decodeEntities 2014-12-30 04:26:47 -05:00
coderaiser
e7822af805 feature(cloudfunc) add decodeEntities 2014-12-30 04:26:01 -05:00
coderaiser
ea949f0b81 chore(cloudfunc) rm "\n" 2014-12-30 03:14:16 -05:00
coderaiser
a586640e8d fix(cloudfunc) encodeEntities: add "<", ">" 2014-12-29 06:49:54 -05:00
coderaiser
28f0283cab feature(modules) jquery v2.1.3 2014-12-29 03:48:37 -05:00
coderaiser
a832a84f66 feature(changelog) add "changelog: done" 2014-12-26 11:21:49 -05:00
coderaiser
4bd43154c7 feature(changelog) add prepend 2014-12-26 11:20:35 -05:00
coderaiser
24be2e5803 feature(package) changelog-io v1.3.4 2014-12-26 11:14:05 -05:00
coderaiser
52f41017d1 fix(cloudfunc) encode space before render: " " -> "&nbsp;" 2014-12-26 10:50:23 -05:00
coderaiser
0cf714bf59 feature(util) type: add null, mv back object 2014-12-23 04:14:26 -05:00
coderaiser
8b7f93cc69 fix(load) add arraybuffer check 2014-12-22 06:45:29 -05:00
coderaiser
68a34f6224 refactor(util) type 2014-12-22 04:16:47 -05:00
coderaiser
9601355097 feature(util) rm rmStrOnce 2014-12-19 09:54:12 -05:00
coderaiser
0f8b224f15 refactor(dom) rm Util.rmStrOnce 2014-12-19 09:48:04 -05:00
coderaiser
051b7d2ab5 chore(dom) add " " 2014-12-19 09:45:26 -05:00
coderaiser
78cbf94668 refactor(dom) getCurrentLink: rm -1 2014-12-19 09:44:15 -05:00
coderaiser
78a1c10421 chore(dom) rm "\n" 2014-12-19 09:42:38 -05:00
coderaiser
aa2abf7c31 chore(dom) rm " " 2014-12-19 09:41:11 -05:00
coderaiser
56893eacb1 refactor(join) rm Scope 2014-12-18 07:40:16 -05:00
coderaiser
58e973c0dd refactor(client) getStrBigFirst 2014-12-18 07:38:59 -05:00
coderaiser
2021c85989 feature(util) rm slice 2014-12-16 10:10:37 -05:00
coderaiser
c26032f088 feature(events) Util.slice -> [].slice, Util.check -> check, Util.type -> type 2014-12-16 10:02:07 -05:00
coderaiser
7eca5063d2 test(util) rm forEach 2014-12-16 03:46:47 -05:00
coderaiser
3474059d00 refactor(listeners) dragndrop 2014-12-15 04:34:45 -05:00
coderaiser
7dfcd38a05 feature(util) rm forEach 2014-12-15 04:31:48 -05:00
coderaiser
083817692a fix(events) addOnce: do not remove listener when to arguments 2014-12-15 03:22:08 -05:00
coderaiser
190062635b feature(package) should v4.4.1 2014-12-15 02:34:58 -05:00
coderaiser
bf400be243 fix(util) render: do not remove empty blocks "{{", "}}" 2014-12-12 04:37:09 -05:00
coderaiser
90997adad2 fix(util) indexOf -> ~indexOf 2014-12-12 04:34:15 -05:00
coderaiser
a81d2e3c42 feature(util) rm ownRender 2014-12-12 03:44:16 -05:00
coderaiser
f0eb586e38 feature(index) speed up event: load -> DOMContentLoaded 2014-12-09 09:58:30 -05:00
coderaiser
764dcf8464 feature(package) v2.0.0 2014-12-09 07:38:22 -05:00
coderaiser
fb73fb1af3 feature(cloudcmd) speed up: RegExp.test -> indexOf 2014-12-09 06:29:31 -05:00
coderaiser
40ded6b424 feature(hash) hash -> ashify 2014-12-09 03:50:29 -05:00
coderaiser
35ad8de19d feature(edit) rm tryRequire 2014-12-09 03:45:39 -05:00
coderaiser
faba464a18 chore(repl) add " " 2014-12-09 02:16:52 -05:00
coderaiser
d99b04009b feature(route) rm tryRequire 2014-12-09 02:16:03 -05:00
coderaiser
a135c38280 feature(package) rm js-beautify 2014-12-08 09:44:56 -05:00
coderaiser
01e887ec65 feature(fs) fs -> restafary 2014-12-08 09:35:30 -05:00
coderaiser
bcffb91cd0 feature(rest) ponse: rm notLog 2014-12-08 04:32:45 -05:00
coderaiser
7feadb6207 fix(github) athorize 2014-12-08 04:20:33 -05:00
coderaiser
9ee13cfbbf chore(github) rm popup 2014-12-08 04:05:45 -05:00
coderaiser
0a7fedba00 refactor(github) callback 2014-12-08 04:03:33 -05:00
coderaiser
8ac1cc5837 refactor(github) auth 2014-12-08 03:53:46 -05:00
coderaiser
6d84f734d2 feature(rest) rm tryRequire 2014-12-08 02:50:29 -05:00
coderaiser
98a880c621 chore(rest) faust 2014-12-08 02:49:24 -05:00
coderaiser
8053b81db7 feature(github) github -> faust 2014-12-08 02:48:35 -05:00
coderaiser
ef90c67ac2 featrue(package) rm fstream, tar 2014-12-05 09:53:58 -05:00
coderaiser
21ababdb09 refactor(cloudfunc) Util: check, render 2014-12-05 08:55:23 -05:00
coderaiser
acb3e45414 refactor(cloudfunc) rmLastSlash: add check 2014-12-05 08:51:49 -05:00
coderaiser
2562fc37f1 refactor(client) rmLastSlash 2014-12-05 07:37:16 -05:00
coderaiser
bc4945f804 fix(cloudfunc) rmLastSlash: remove even when str consist of one slash 2014-12-05 06:55:26 -05:00
coderaiser
86db4b273e feature(packer) packer -> jag 2014-12-05 06:39:20 -05:00
coderaiser
18f10740d8 feature(github) rm tryRequire 2014-12-05 05:38:25 -05:00
coderaiser
1c92735129 feature(ssl) change mode 2014-12-04 10:51:11 -05:00
coderaiser
f38d65c93f feature(config) rm tryRequire 2014-12-04 10:51:00 -05:00
coderaiser
846f91997b refactor(packer) unpack: checkExt -> regexp 2014-12-03 09:51:03 -05:00
coderaiser
220da11388 feature(packer) rm tryRequire 2014-12-03 09:46:45 -05:00
coderaiser
a9eba43418 feature(package) join-io v1.3 2014-12-03 09:39:27 -05:00
coderaiser
c1888a0a1d feature(package) console-io v1.11 2014-12-03 09:39:04 -05:00
coderaiser
f1539bc692 feature(package) minify v1.4.0 2014-12-03 04:18:31 -05:00
coderaiser
6cc887d590 feature(package) add mollify 2014-12-03 04:06:57 -05:00
coderaiser
10e6ae8678 feature(dom) Images load: top true -> "top" 2014-12-02 04:02:27 -05:00
coderaiser
c5279d4896 feature(dom) images show.load: top true -> "top" 2014-12-02 04:00:13 -05:00
coderaiser
b7e979dae4 feature(dom) showLoad, showError -> show.load, show.error 2014-12-02 03:47:13 -05:00
coderaiser
3896abe972 feature(config) add traverse 2014-12-01 11:48:00 -05:00
coderaiser
6f1d49fcca fix(config) do not crypt password when save with sockets 2014-12-01 11:45:42 -05:00
coderaiser
3bdcf2f628 feature(package) http-auth v2.2.3 2014-12-01 04:20:36 -05:00
coderaiser
4e2631c555 refactor(cloudcmd) HOME_PAGE 2014-11-28 04:11:56 -05:00
coderaiser
9167facd1a feature(package) gulp-recess v1.1.1 2014-11-27 07:36:33 -05:00
coderaiser
63b05020b3 feature(package) should v4.3.0 2014-11-27 07:33:47 -05:00
coderaiser
2dec75e7d9 feature(package) gulp-mocha v2.0.0 2014-11-27 07:32:19 -05:00
coderaiser
d9647017ae feature(package) gulp-jshint v1.9.0 2014-11-27 07:30:40 -05:00
coderaiser
eea2b783f7 feature(package) rm dropbox 2014-11-27 02:59:54 -05:00
coderaiser
edd2070967 fix(put) check -> checkup 2014-11-27 02:25:06 -05:00
coderaiser
82725c0fcc feature(put) Util -> exec, check 2014-11-27 02:18:03 -05:00
coderaiser
308a307408 feature(put) rm file 2014-11-27 02:11:46 -05:00
coderaiser
2773466f0f feature(cloudcmd) bin: add minimist 2014-11-26 11:13:27 -05:00
coderaiser
709ffd7631 feature(cloudcmd) bin: rm description 2014-11-26 10:51:51 -05:00
coderaiser
8eda081d64 feature(package) tryRequire -> require 2014-11-26 03:46:00 -05:00
coderaiser
6b8c8d9c33 feature(tryRequire) rm module.parent.filename 2014-11-26 03:44:40 -05:00
coderaiser
bc5df75b30 feature(cloudcmd) rm tryRequire 2014-11-26 03:44:24 -05:00
coderaiser
400689bab3 fix(edit) err: error -> error.message 2014-11-24 10:20:49 -05:00
coderaiser
b6bec9e9c1 refactor(config) Util.check -> check 2014-11-24 10:19:12 -05:00
coderaiser
9f119eff89 refactor(config) {} -> Error 2014-11-24 10:15:24 -05:00
coderaiser
75b9ff94ac feature(config) err: Error -> str 2014-11-24 10:14:23 -05:00
coderaiser
edaa2d1396 feature(config) log -> alert 2014-11-24 10:14:10 -05:00
coderaiser
d4d8e9560b fix(config) onLocalStorageChange map: el, number -> getById id, el 2014-11-24 10:02:20 -05:00
coderaiser
d449e86d0e feature(beautify) / -> path.sep 2014-11-24 08:51:29 -05:00
coderaiser
27e956175e feature(package) rm nicki 2014-11-24 07:41:57 -05:00
coderaiser
d28d401c6c feature(modules) socket.io v1.2.1 2014-11-24 07:38:23 -05:00
coderaiser
4b2a22dc3b refactor(edit) rm Util.exec 2014-11-21 10:10:40 -05:00
coderaiser
138806375a chore(package) engines 2014-11-21 08:53:50 -05:00
coderaiser
ea5b8052fd chore(package) gulp 2014-11-21 08:53:35 -05:00
coderaiser
4fb129b7dd chore(package) http-auth 2014-11-21 08:53:21 -05:00
coderaiser
7e21a44db4 chore(package) dropbox 2014-11-21 08:53:08 -05:00
coderaiser
4bb4b19cae feature(files) add from npm 2014-11-21 08:17:46 -05:00
coderaiser
8e94b38103 feature(ponse) add from npm 2014-11-21 08:12:36 -05:00
coderaiser
bf825d6bf9 feature(tryRequire) add module name 2014-11-21 07:56:37 -05:00
coderaiser
38fd38f582 feature(pipe) add pipe-io from npm 2014-11-21 07:44:19 -05:00
coderaiser
275e96ffd2 chore(auth) rm log: true 2014-11-21 07:39:57 -05:00
coderaiser
3ad288adf1 feature(package) rm mkdirp 2014-11-21 07:30:45 -05:00
coderaiser
1c6f2dfd82 docs(help) rm additional modules, contributing 2014-11-21 07:29:35 -05:00
coderaiser
1a8eba304d feature(package) rm rimraf 2014-11-21 07:26:21 -05:00
coderaiser
7292a20e3b fix(config) socket emit: error -> err 2014-11-21 05:09:40 -05:00
coderaiser
e5b82e0358 Merge branch 'v1.5.1' into dev
Conflicts:
	lib/server/edit.js
2014-11-21 04:45:47 -05:00
coderaiser
adad842d7e fix(edit) wrong file name on win 2014-11-20 11:45:17 -05:00
coderaiser
b98b2e9037 fix(cloudcmd) join: add dir 2014-11-20 09:03:18 -05:00
coderaiser
1d9d6eef8b chore(delete) DIR + flop -> flop 2014-11-20 07:44:30 -05:00
coderaiser
776f8a5158 feature(join) add from npm 2014-11-20 07:39:46 -05:00
coderaiser
822d444964 feature(flop) add from npm 2014-11-20 07:33:06 -05:00
coderaiser
fdce2eb201 feature(edit) socket err: log -> alert 2014-11-20 07:22:57 -05:00
coderaiser
cb707129f5 fix(edit) could not save when diff disabled in options 2014-11-20 07:16:50 -05:00
coderaiser
2c443a0145 feature(ischanged) rm 2014-11-20 07:01:31 -05:00
coderaiser
b6216c4c0f feature(mellow) add from npm 2014-11-20 06:54:50 -05:00
coderaiser
a3e067481e fix(tryRequire) tryCatch: return error 2014-11-20 06:53:18 -05:00
coderaiser
6be2025a66 feature(tryRequire) options: add exit 2014-11-20 06:34:27 -05:00
coderaiser
3572866bd3 fix(storage) if to much data -> exeption 2014-11-20 04:39:58 -05:00
coderaiser
50cca39a04 feature(time) time.get -> time 2014-11-19 08:22:39 -05:00
coderaiser
52142ed141 feature(size) size.get -> size 2014-11-19 08:21:16 -05:00
coderaiser
bbf8443b9c chore(size) rm isDir 2014-11-19 08:15:06 -05:00
coderaiser
88d28816fd chore(size) rm "|| 0" 2014-11-19 08:11:59 -05:00
coderaiser
bbdf35a17f refactor(size) onReaddir 2014-11-19 08:09:48 -05:00
coderaiser
f9ef655429 chore(put) rm unused patch 2014-11-19 08:02:48 -05:00
coderaiser
40d3c596e1 refactor(size) onReaddir: rm error 2014-11-19 07:22:24 -05:00
coderaiser
4debada2db refactor(size) emit: size -> file 2014-11-19 07:16:34 -05:00
coderaiser
c96a57c310 refactor(size) processDir 2014-11-19 07:13:06 -05:00
coderaiser
0d2c2cb99f refactor(size) processDir: callback -> emitter 2014-11-19 05:56:00 -05:00
coderaiser
9e5a44231d refactor(ncp) isWritable: simplified 2014-11-19 03:44:16 -05:00
coderaiser
517b5a7f6f chore(auth) rm Util 2014-11-19 03:28:37 -05:00
coderaiser
a3c10ebe6f chore(docs) rm fs 2014-11-19 03:28:10 -05:00
734 changed files with 27514 additions and 306911 deletions

9
.babelrc.json Normal file
View file

@ -0,0 +1,9 @@
{
"presets": [
"@babel/preset-env"
],
"plugins": [
"module:babel-plugin-macros",
"@babel/plugin-transform-optional-chaining"
]
}

4
.browserslistrc Normal file
View file

@ -0,0 +1,4 @@
last 2 Chrome versions
last 2 Safari versions
Firefox ESR
not dead

45
.cloudcmd.menu.js Normal file
View file

@ -0,0 +1,45 @@
'use strict';
module.exports = {
'F2 - Rename file': async ({DOM}) => {
await DOM.renameCurrent();
},
'L - Lint': async ({CloudCmd}) => {
const {TerminalRun} = CloudCmd;
await run(TerminalRun, 'npm run lint');
},
'F - Fix Lint': async ({CloudCmd}) => {
const {TerminalRun} = CloudCmd;
await run(TerminalRun, 'npm run fix:lint');
},
'T - Test': async ({CloudCmd}) => {
const {TerminalRun} = CloudCmd;
await run(TerminalRun, 'npm run test');
},
'C - Coverage': async ({CloudCmd}) => {
const {TerminalRun} = CloudCmd;
await run(TerminalRun, 'npm run coverage');
},
'D - Build Dev': async ({CloudCmd}) => {
const {TerminalRun} = CloudCmd;
await run(TerminalRun, 'npm run build:client:dev');
CloudCmd.refresh();
},
'P - Build Prod': async ({CloudCmd}) => {
const {TerminalRun} = CloudCmd;
await run(TerminalRun, 'npm run build:client');
CloudCmd.refresh();
},
};
async function run(TerminalRun, command) {
await TerminalRun.show({
command,
closeMessage: 'Press any key to close Terminal',
autoClose: false,
});
}

23
.dockerignore Normal file
View file

@ -0,0 +1,23 @@
.*
*.spec.js
node_modules
npm-debug.log*
coverage
test
manifest.yml
app.json
bower.json
yarn-error.log
yarn.lock
now.json
docker
webpack.config.js
cssnano.config.js
bin/release.js
client
server_

View file

@ -9,6 +9,9 @@ root = true
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
trim_trailing_whitespace = false
indent_style = space
indent_size = 4
[*.hbs]
insert_final_newline = false

3
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,3 @@
github: coderaiser
open_collective: cloudcmd
ko_fi: coderaiser

45
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,45 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: needs clarification
assignees: coderaiser
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- **Version** (`cloudcmd -v`):
- **Node Version** `node -v`:
- **OS** (`uname -a` on Linux):
- **Browser name/version**:
- **Used Command Line Parameters**:
- **Changed Config**:
```json
{}
```
- [ ] 🎁 **I'm ready to donate on https://opencollective.com/cloudcmd**
- [ ] 🎁 **I'm ready to donate on https://ko-fi.com/coderaiser**
- [ ] 💪 **I'm willing to work on this issue**
**Additional context**
Add any other context about the problem here.

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Stack Overflow
url: https://stackoverflow.com/search?q=cloudcmd
about: Please ask and answer questions here.

View file

@ -0,0 +1,21 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View file

@ -0,0 +1,24 @@
***
name: Tracking issue
about: Create an issue with bug report or feature request.
title: ""
labels: needs triage
assignees: coderaiser
***
- **Version** (`cloudcmd -v`):
- **Node Version** `node -v`:
- **OS** (`uname -a` on Linux):
- **Browser name/version**:
- **Used Command Line Parameters**:
- **Changed Config**:
```json
{}
```
- [ ] 🎁 **I'm ready to donate on https://opencollective.com/cloudcmd**
- [ ] 🎁 **I'm ready to donate on https://ko-fi.com/coderaiser**
- [ ] 💪 **I'm willing to work on this issue**

8
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,8 @@
<!--
Thank you for making pull request. Please fill in the template below. If unsure
about something, just do as best as you're able.
-->
- [ ] commit message named according to [Contributing Guide](https://github.com/coderaiser/cloudcmd/blob/master/CONTRIBUTING.md "Contributting Guide")
- [ ] `npm run fix:lint` is OK
- [ ] `npm test` is OK

71
.github/workflows/docker.yml vendored Normal file
View file

@ -0,0 +1,71 @@
name: Docker CI
on:
push:
tags:
- "*"
jobs:
buildx:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v5
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Use Node.js 22.x
uses: actions/setup-node@v6
with:
node-version: 22.x
- name: Install Redrun
run: bun i redrun -g --no-save
- name: NPM Install
run: bun i --no-save
- name: Lint
run: redrun lint
- name: Build
id: build
run: |
redrun build
echo "::set-output name=version::$(grep '"version":' package.json -m1 | cut -d\" -f4)"
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push base-image
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
coderaiser/cloudcmd:latest
coderaiser/cloudcmd:${{ steps.build.outputs.version }}
ghcr.io/${{ github.repository }}:latest
ghcr.io/${{ github.repository }}:${{ steps.build.outputs.version }}
- name: Build and push alpine-image
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.alpine
platforms: linux/amd64,linux/arm64
push: true
tags: |
coderaiser/cloudcmd:latest-alpine
coderaiser/cloudcmd:${{ steps.build.outputs.version }}-alpine
ghcr.io/${{ github.repository }}:latest-alpine
ghcr.io/${{ github.repository }}:${{ steps.build.outputs.version }}-alpine

58
.github/workflows/nodejs.yml vendored Normal file
View file

@ -0,0 +1,58 @@
name: Node CI
on:
- push
jobs:
build:
runs-on: ubuntu-latest
env:
NAME: cloudcmd
strategy:
matrix:
node-version:
- 22.x
- 24.x
- 25.x
steps:
- uses: actions/checkout@v5
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
- name: Install Redrun
run: bun i redrun -g --no-save
- name: Install
run: bun i --no-save
- name: Lint
run: redrun fix:lint
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Typos Install
run: cargo install typos-cli || echo 'already installed'
- name: Typos
run: typos --write-changes
- name: Commit fixes
uses: EndBug/add-and-commit@v9
continue-on-error: true
with:
message: "chore: ${{ env.NAME }}: actions: lint ☘️"
- name: Build
run: redrun build
- name: Test
run: redrun test
- name: Coverage
run: redrun coverage coverage:report
- name: Coveralls
uses: coverallsapp/github-action@v2
continue-on-error: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

20
.gitignore vendored
View file

@ -1,3 +1,19 @@
json/changes.json
package-lock.json
yarn.lock
yarn-error.log
node_modules
npm-debug.log
npm-debug.log*
coverage
modules/execon
modules/emitify
.nyc_output
*.swp
.DS_Store
dist
dist-dev
.idea

View file

@ -1,18 +0,0 @@
{
"unused" : true,
"bitwise" : false,
"browser" : true,
"devel" : true,
"eqeqeq" : true,
"jquery" : false,
"newcap" : false,
"noarg" : true,
"node" : true,
"noempty" : true,
"nonew" : true,
"strict" : true,
"undef" : true,
"evil" : true,
"expr" : true,
"quotmark": "single"
}

63
.madrun.mjs Normal file
View file

@ -0,0 +1,63 @@
import process from 'node:process';
import {run, cutEnv} from 'madrun';
const testEnv = {
SUPERTAPE_TIMEOUT: 7000,
};
const is17 = /^v1[789]/.test(process.version);
const is20 = process.version.startsWith('v2');
// fix for ERR_OSSL_EVP_UNSUPPORTED on node v17
// flag '--openssl-legacy-provider' not supported
// on earlier version of node.js
//
// https://stackoverflow.com/a/69746937/4536327
const buildEnv = (is17 || is20) && {
NODE_OPTIONS: '--openssl-legacy-provider',
NODE_ENV: 'production',
};
export default {
'start': () => 'node bin/cloudcmd.mjs',
'start:dev': async () => await run('start', null, {
NODE_ENV: 'development',
}),
'build:start': () => run(['build:client', 'start']),
'build:start:dev': () => run(['build:client:dev', 'start:dev']),
'lint:all': () => run('lint:progress'),
'lint': () => 'putout .',
'lint:progress': () => run('lint', '-f progress'),
'watch:lint': () => 'nodemon -w client -w server -w test -w common -w .webpack -x "putout -s"',
'fresh:lint': () => run('lint', '--fresh'),
'lint:fresh': () => run('lint', '--fresh'),
'fix:lint': () => run('lint', '--fix'),
'lint:stream': () => run('lint', '-f stream'),
'test': () => [testEnv, `tape 'test/**/*.{js,mjs}' '{client,static,common,server}/**/*.spec.{js,mjs}' -f fail`],
'test:client': () => `tape 'test/client/**/*.js'`,
'test:server': () => `tape 'test/**/*.js' 'server/**/*.spec.js' 'common/**/*.spec.js'`,
'wisdom': () => run(['lint:all', 'build', 'test']),
'wisdom:type': () => 'bin/release.mjs',
'coverage': async () => [testEnv, `c8 ${await cutEnv('test')}`],
'coverage:report': () => 'c8 report --reporter=lcov',
'report': () => 'c8 report --reporter=lcov',
'6to5': () => [buildEnv, 'webpack --progress'],
'6to5:client': () => run('6to5', '--mode production'),
'6to5:client:dev': async () => await run('6to5', '--mode development', {
NODE_ENV: 'development',
}),
'pre6to5:client': () => 'rimraf dist',
'pre6to5:client:dev': () => 'rimraf dist-dev',
'watch:client': () => run('6to5:client', '--watch'),
'watch:client:dev': () => run('6to5:client:dev', '--watch'),
'watch:server': () => 'nodemon bin/cloudcmd.js',
'watch:test': async () => [testEnv, `nodemon -w client -w server -w test -w common -x ${await cutEnv('test')}`],
'watch:test:client': async () => `nodemon -w client -w test/client -x ${await run('test:client')}`,
'watch:test:server': async () => `nodemon -w client -w test/client -x ${await run('test:server')}`,
'watch:coverage': async () => [testEnv, `nodemon -w server -w test -w common -x ${await cutEnv('coverage')}`],
'build': async () => run('6to5:*'),
'build:dev': async () => run('build:client:dev'),
'build:client': () => run('6to5:client'),
'build:client:dev': () => run('6to5:client:dev'),
'heroku-postbuild': () => run('6to5:client'),
};

34
.npmignore Normal file
View file

@ -0,0 +1,34 @@
.*
*.spec.*
*.config.*
*.fixture.js*
manifest.yml
docker
docker-compose.yml
test
fixture
fixture-*
coverage
css
html
yarn-error.log
yarn.lock
now.json
app.json
bower.json
manifest.yml
deno.json
bin/release.mjs
client
img/logo/cloudcmd-hq.png
webpack.config.js
*.ai
*.cdr
*.eps
*.config.*

1
.nvmrc Normal file
View file

@ -0,0 +1 @@
v20.15.1

15
.nycrc.json Normal file
View file

@ -0,0 +1,15 @@
{
"check-coverage": false,
"all": false,
"exclude": [
"**/*.spec.js",
"**/fixture",
"**/*.*.js",
"**/*.config.*",
"**/test/**"
],
"branches": 100,
"lines": 100,
"functions": 100,
"statements": 100
}

57
.putout.json Normal file
View file

@ -0,0 +1,57 @@
{
"plugins": ["cloudcmd"],
"ignore": [
"html",
"fixture*",
"app.json",
"fontello.json",
"*.md"
],
"rules": {
"package-json/add-type": "off"
},
"match": {
"base64": {
"types/convert-typeof-to-is-type": "off"
},
"*.md": {
"nodejs/convert-commonjs-to-esm": "on"
},
".webpack": {
"webpack": "on"
},
"server": {
"nodejs/remove-process-exit": "on"
},
"server/{server,exit}.js": {
"nodejs/remove-process-exit": "off"
},
"server/{server,exit,terminal,distribute/log}.{js,mjs}": {
"remove-console": "off"
},
"client/{client,cloudcmd,load-module}.{js,mjs}": {
"remove-console": "off"
},
"client": {
"nodejs": "off"
},
"client/sw": {
"remove-console": "off"
},
"test/common/cloudfunc.js": {
"remove-console": "off"
},
"storage.js": {
"promises/remove-useless-async": "off"
},
"docker.yml": {
"github/set-node-versions": "off"
},
"vim.js": {
"merge-duplicate-functions": "off"
},
"common": {
"nodejs/declare": "off"
}
}
}

View file

@ -1,20 +0,0 @@
language: node_js
node_js:
- 0.10
- 0.11
matrix:
allow_failures:
- node_js: '0.11'
before_install:
- npm install gulp -g
script:
- gulp default
- node bin/cloudcmd --test
notifications:
email:
on_success: never
on_failure: change

2
.typos.toml Normal file
View file

@ -0,0 +1,2 @@
[files]
extend-exclude= ["ChangeLog", "*.js"]

34
.webpack/css.mjs Normal file
View file

@ -0,0 +1,34 @@
import {env} from 'node:process';
import OptimizeCssAssetsPlugin from 'optimize-css-assets-webpack-plugin';
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
const isDev = env.NODE_ENV === 'development';
const clean = (a) => a.filter(Boolean);
const plugins = clean([
new MiniCssExtractPlugin({
filename: '[name].css',
}),
!isDev && new OptimizeCssAssetsPlugin(),
]);
const rules = [{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, {
loader: 'css-loader',
options: {
url: true,
},
}],
}, {
test: /\.(png|gif|svg|woff|woff2|eot|ttf)$/,
type: 'asset/inline',
}];
export default {
plugins,
module: {
rules,
},
};

36
.webpack/html.mjs Normal file
View file

@ -0,0 +1,36 @@
import {env} from 'node:process';
import HtmlWebpackPlugin from 'html-webpack-plugin';
const isDev = env.NODE_ENV === 'development';
export const plugins = [
new HtmlWebpackPlugin({
inject: false,
template: 'html/index.html',
minify: !isDev && getMinifyHtmlOptions(),
}),
];
function getMinifyHtmlOptions() {
return {
removeComments: true,
removeCommentsFromCDATA: true,
removeCDATASectionsFromCDATA: true,
collapseWhitespace: true,
collapseBooleanAttributes: true,
removeAttributeQuotes: true,
removeRedundantAttributes: true,
useShortDoctype: true,
removeEmptyAttributes: true,
/* оставляем, поскольку у нас
* в элемент fm генерируеться
* таблица файлов
*/
removeEmptyElements: false,
removeOptionalTags: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
minifyJS: true,
};
}

160
.webpack/js.mjs Normal file
View file

@ -0,0 +1,160 @@
import {resolve, sep} from 'node:path';
import {env} from 'node:process';
import webpack from 'webpack';
import WebpackBar from 'webpackbar';
const {
EnvironmentPlugin,
NormalModuleReplacementPlugin,
} = webpack;
const modules = './modules';
const dirModules = './client/modules';
const dirCss = './css';
const dirThemes = `${dirCss}/themes`;
const dirColumns = `${dirCss}/columns`;
const dir = './client';
const {NODE_ENV} = env;
const isDev = NODE_ENV === 'development';
const rootDir = new URL('..', import.meta.url).pathname;
const dist = resolve(rootDir, 'dist');
const distDev = resolve(rootDir, 'dist-dev');
const devtool = isDev ? 'eval' : 'source-map';
const notEmpty = (a) => a;
const clean = (array) => array.filter(notEmpty);
const noParse = (a) => a.endsWith('.spec.js');
const options = {
babelrc: true,
};
const rules = clean([
!isDev && {
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
isDev && {
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
options,
},
]);
const plugins = [
new NormalModuleReplacementPlugin(/^node:/, (resource) => {
resource.request = resource.request.replace(/^node:/, '');
}),
new NormalModuleReplacementPlugin(/^putout$/, '@putout/bundle'),
new EnvironmentPlugin({
NODE_ENV,
}),
new WebpackBar(),
];
const splitChunks = {
chunks: 'all',
cacheGroups: {
abcCommon: {
name: 'cloudcmd.common',
chunks: (chunk) => {
const lazyChunks = [
'sw',
'nojs',
'view',
'edit',
'terminal',
'config',
'user-menu',
'help',
'themes/dark',
'themes/light',
'columns/name-size',
'columns/name-size-date',
];
return !lazyChunks.includes(chunk.name);
},
minChunks: 1,
enforce: true,
priority: -1,
reuseExistingChunk: true,
},
},
};
export default {
resolve: {
symlinks: false,
alias: {
'node:process': 'process',
'node:path': 'path',
},
fallback: {
path: import.meta.resolve('path-browserify'),
process: import.meta.resolve('process/browser'),
},
},
devtool,
optimization: {
splitChunks,
},
entry: {
'themes/dark': `${dirThemes}/dark.css`,
'themes/light': `${dirThemes}/light.css`,
'columns/name-size': `${dirColumns}/name-size.css`,
'columns/name-size-date': `${dirColumns}/name-size-date.css`,
'nojs': `${dirCss}/nojs.css`,
'help': `${dirCss}/help.css`,
'view': `${dirCss}/view.css`,
'config': `${dirCss}/config.css`,
'terminal': `${dirCss}/terminal.css`,
'user-menu': `${dirCss}/user-menu.css`,
'sw': `${dir}/sw/sw.js`,
'cloudcmd': `${dir}/cloudcmd.mjs`,
[`${modules}/edit`]: `${dirModules}/edit.js`,
[`${modules}/edit-file`]: `${dirModules}/edit-file.js`,
[`${modules}/edit-file-vim`]: `${dirModules}/edit-file-vim.js`,
[`${modules}/edit-names`]: `${dirModules}/edit-names.js`,
[`${modules}/edit-names-vim`]: `${dirModules}/edit-names-vim.js`,
[`${modules}/menu`]: `${dirModules}/menu/index.js`,
[`${modules}/view`]: `${dirModules}/view/index.js`,
[`${modules}/help`]: `${dirModules}/help.js`,
[`${modules}/markdown`]: `${dirModules}/markdown.js`,
[`${modules}/config`]: `${dirModules}/config/index.js`,
[`${modules}/contact`]: `${dirModules}/contact.js`,
[`${modules}/upload`]: `${dirModules}/upload.js`,
[`${modules}/operation`]: `${dirModules}/operation/index.mjs`,
[`${modules}/konsole`]: `${dirModules}/konsole.js`,
[`${modules}/terminal`]: `${dirModules}/terminal.js`,
[`${modules}/terminal-run`]: `${dirModules}/terminal-run.js`,
[`${modules}/cloud`]: `${dirModules}/cloud.js`,
[`${modules}/user-menu`]: `${dirModules}/user-menu/index.js`,
[`${modules}/polyfill`]: `${dirModules}/polyfill.js`,
[`${modules}/command-line`]: `${dirModules}/command-line.js`,
},
output: {
filename: '[name].js',
path: isDev ? distDev : dist,
pathinfo: isDev,
devtoolModuleFilenameTemplate,
publicPath: '/dist/',
},
module: {
rules,
noParse,
},
plugins,
performance: {
maxEntrypointSize: 600_000,
maxAssetSize: 600_000,
},
};
function devtoolModuleFilenameTemplate(info) {
const resource = info.absoluteResourcePath.replace(rootDir + sep, '');
return `file://cloudcmd/${resource}`;
}

72
.yaspellerrc Normal file
View file

@ -0,0 +1,72 @@
{
"ignoreDigits": true,
"excludeFiles": [
".git",
"modules",
"lib",
"node_modules"
],
"fileExtensions": [
".md"
],
"dictionary":[
"CloudCmd",
"Dev",
"Dropbox",
"Deepword",
"Dword",
"FilePicker",
"GDrive",
"Github",
"Heroku",
"Iptables",
"JitSu",
"Node",
"IO",
"Olena",
"TarZak",
"Termux",
"Zalitok",
"WebSocket",
"auth",
"autostart",
"binded",
"cd",
"cloudcmd",
"coderaiser",
"com",
"deepword",
"dev",
"destructuring",
"dropbox",
"dword",
"edward",
"favicon",
"github",
"gz",
"io",
"js",
"linux",
"maintainers",
"markdown",
"microservice",
"minification",
"mouseup",
"named",
"nginx",
"npm",
"or io",
"patreon",
"rc",
"refactor",
"sexualized",
"sslPort",
"unselect",
"util",
"v0",
"v1",
"v2",
"yml",
"systemd"
]
}

46
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View file

@ -1,37 +1,30 @@
Branch
---------------
If you would like to contribute - send pull request to dev branch.
Getting dev version of **Cloud Commander**:
## Commit
git clone git://github.com/coderaiser/cloudcmd.git
cd cloudcmd && git checkout dev
or by [link](https://github.com/coderaiser/cloudcmd/tree/dev "Dev version").
Commit
---------------
Format of the commit message: **type(scope) subject**
**Type**:
- feature(scope) subject
- fix(scope) subject
- docs(scope) subject
- refactor(scope) subject
- test(scope) subject
- chore(scope) subject
- feature: scope: subject
- fix: scope: subject
- docs: scope: subject
- refactor: scope: subject
- test: scope: subject
- chore: scope: subject
**Scope**:
Scope could be anything specifying place of the commit change.
For example util, console, view, edit, style etc...
**Subject text**:
- use imperative, present tense: “change” not “changed” nor “changes”
- don't capitalize first letter
- no dot (.) at the end
**Message body**:
**Message body**:
- just as in <subject> use imperative, present tense: “change” not “changed” nor “changes”
- includes motivation for the change and contrasts with previous behavior
**Examples**:
- [fix(style) .name{width}: 37% -> 35%](https://github.com/coderaiser/cloudcmd/commit/94b0642e3990c17b3a0ee3efeb75f343e1e7c050)
- [fix(console) dispatch: focus -> mouseup](https://github.com/coderaiser/cloudcmd/commit/f41ec5058d1411e86a881f8e8077e0572e0409ec)
- [fix: style: .name{width}: 37% -> 35%](https://github.com/coderaiser/cloudcmd/commit/94b0642e3990c17b3a0ee3efeb75f343e1e7c050)
- [fix: console: dispatch: focus -> mouseup](https://github.com/coderaiser/cloudcmd/commit/f41ec5058d1411e86a881f8e8077e0572e0409ec)

4966
ChangeLog

File diff suppressed because it is too large Load diff

1689
HELP.md

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
(The MIT License)
Copyright (c) 2014 Coderaiser <mnemonic.enemy@gmail.com>
Copyright (c) 2012-2025 Coderaiser <mnemonic.enemy@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

181
README.md
View file

@ -1,25 +1,24 @@
Cloud Commander v1.5.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Dependency Status][DependencyStatusIMGURL]][DependencyStatusURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL]
===============
###[Main][MainURL] [Blog][BlogURL] Live(![JitSu][JitSu_LIVE_IMG] [JitSu][JitSuURL], ![Heroku][Heroku_LIVE_IMG] [Heroku][HerokuURL])
[NPMIMGURL]: https://img.shields.io/npm/v/cloudcmd.svg?style=flat
[BuildStatusIMGURL]: https://img.shields.io/travis/coderaiser/cloudcmd/dev.svg?style=flat
[DependencyStatusIMGURL]: https://img.shields.io/gemnasium/coderaiser/cloudcmd.svg?style=flat
[LicenseIMGURL]: https://img.shields.io/badge/license-MIT-317BF9.svg?style=flat
[NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png
[NPMURL]: https://npmjs.org/package/cloudcmd "npm"
[BuildStatusURL]: https://travis-ci.org/coderaiser/cloudcmd "Build Status"
[DependencyStatusURL]: https://gemnasium.com/coderaiser/cloudcmd "Dependency Status"
[LicenseURL]: https://tldrlegal.com/license/mit-license "MIT License"
[MainURL]: http://cloudcmd.io "Main"
[BlogURL]: http://blog.cloudcmd.io "Blog"
[JitSuURL]: http://cloudcmd.jit.su "JitSu"
[HerokuURL]: http://cloudcmd.herokuapp.com/ "Heroku"
[JitSu_LIVE_IMG]: http://status-io.cloudcmd.io/host/cloudcmd.jit.su/img/txt.png "JitSu"
[HEROKU_LIVE_IMG]: http://status-io.cloudcmd.io/host/cloudcmd.herokuapp.com/img/txt.png "Heroku"
# Cloud Commander v19.1.9 [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Codacy][CodacyIMG]][CodacyURL] [![Gitter][GitterIMGURL]][GitterURL]
**Cloud Commander** orthodox web file manager with console and editor.
### [Main][MainURL] [Blog][BlogURL] [Support][SupportURL] [Demo][DemoURL]
![Cloud Commander](http://cloudcmd.io/img/logo/cloudcmd.png "Cloud Commander")
[MainURL]: https://cloudcmd.io "Main"
[BlogURL]: https://blog.cloudcmd.io "Blog"
[SupportURL]: https://patreon.com/coderaiser "Patreon"
[DemoURL]: https://cloudcmd-zdp6.onrender.com
[NPM_INFO_IMG]: https://nodei.co/npm/cloudcmd.png
[BuildStatusURL]: https://github.com/coderaiser/cloudcmd/actions/workflows/nodejs.yml "Build Status"
[BuildStatusIMGURL]: https://github.com/coderaiser/cloudcmd/actions/workflows/nodejs.yml/badge.svg
[CodacyURL]: https://www.codacy.com/app/coderaiser/cloudcmd
[CodacyIMG]: https://api.codacy.com/project/badge/Grade/ddda78be780549ce8754f8d47a8c0e36
[GitterURL]: https://gitter.im/cloudcmd/hello
[GitterIMGURL]: https://img.shields.io/gitter/room/coderaiser/cloudcmd.js.svg
[DeployURL]: https://heroku.com/deploy?template=https://github.com/coderaiser/cloudcmd "Deploy"
[DeployIMG]: https://www.herokucdn.com/deploy/button.png
**Cloud Commander** a file manager for the web with console and editor.
![Cloud Commander](https://cloudcmd.io/img/logo/cloudcmd.png "Cloud Commander")
## Install
@ -27,10 +26,152 @@ Cloud Commander v1.5.1 [![License][LicenseIMGURL]][LicenseURL] [![NPM version][N
npm i cloudcmd -g
```
## Start
For starting just type in console:
```sh
cloudcmd
```
## How to use?
Open url `http://localhost:8000` in browser.
### View
You will see something similar to this.
![View](https://cloudcmd.io/img/screen/view.png "View")
## Deploy
`Cloud Commander` could be easily deployed to [Heroku][DeployURL].
[![Deploy][DeployIMG]][DeployURL]
## Using as Middleware
Cloud Commander could be used as middleware for `node.js` applications based on [socket.io](http://socket.io "Socket.IO") and [express](http://expressjs.com "Express"):
Init `package.json`:
```
npm init -y
```
Install dependencies:
```
npm i cloudcmd express socket.io -S
```
And create `index.js`:
```js
import http from 'node:http';
import cloudcmd from 'cloudcmd';
import {Server} from 'socket.io';
import express from 'express';
const app = express();
const port = 1337;
const prefix = '/';
const server = http.createServer(app);
const socket = new Server(server, {
path: `${prefix}socket.io`,
});
const config = {
name: 'cloudcmd :)',
};
const filePicker = {
data: {
FilePicker: {
key: 'key',
},
},
};
// override option from json/modules.json
const modules = {
filePicker,
};
const {
createConfigManager,
configPath,
} = cloudcmd;
const configManager = createConfigManager({
configPath,
});
app.use(prefix, cloudcmd({
socket, // used by Config, Edit (optional) and Console (required)
config, // config data (optional)
modules, // optional
configManager, // optional
}));
server.listen(port);
```
## Docker
The docker images are provided for multiple architectures and types. The following list shows all existing images:
| Architecture | Type |
|----------------|--------------|
| amd64 | linux |
| arm64 (arm/v8) | linux |
| amd64 | linux-alpine |
| arm64 (arm/v8) | linux-alpine |
`Cloud Commander` could be used as a [docker container](https://hub.docker.com/r/coderaiser/cloudcmd/ "Docker container") this way:
```sh
docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd
```
Config would be read from home directory, hosts root file system would be mount to `/mnt/fs`,
`8000` port would be exposed to hosts port.
Also you could use [docker compose](https://docs.docker.com/compose/ "Docker Compose") with `docker-compose.yml`:
```yml
version: '2'
services:
web:
ports:
- 8000:8000
volumes:
- ~:/root
- /:/mnt/fs
image: coderaiser/cloudcmd
```
When you create this file run:
```sh
docker-compose up
```
## Documentation
More documentation you can find on https://cloudcmd.io/.
## Get involved
There is a lot ways to be involved in `Cloud Commander` development:
- support project on patreon: https://patreon.com/coderaiser;
- if you find a bug or got idea to share [create an issue](https://github.com/coderaiser/cloudcmd/issues/new "Create issue");
- if you fixed a bug, typo or implemented new feature [create pull request](https://github.com/coderaiser/cloudcmd/compare "Create pull request");
- if you know languages you can help with [site translations](https://github.com/coderaiser/cloudcmd/wiki "Cloud Commander community wiki");
## License
MIT

162
app.json Normal file
View file

@ -0,0 +1,162 @@
{
"name": "cloudcmd",
"description": "Cloud Commander orthodox web file manager with console and editor",
"repository": "https://github.com/coderaiser/cloudcmd",
"logo": "http://cloudcmd.io/img/logo/cloudcmd.png",
"keywords": [
"console",
"editor",
"file",
"file manager",
"folder",
"orthodox"
],
"stack": "heroku-18",
"env": {
"NPM_CONFIG_PRODUCTION": {
"description": "Keep false to install devDependencies and build frontend",
"value": "false",
"required": false
},
"CLOUDCMD_EDITOR": {
"description": "set editor",
"value": "edward",
"required": false
},
"CLOUDCMD_CONTACT": {
"description": "enable contact",
"value": "true",
"required": false
},
"CLOUDCMD_CONFIG_DIALOG": {
"description": "show config dialog",
"value": "false",
"required": false
},
"CLOUDCMD_CONFIG_AUTH": {
"description": "disable auth change in config dialog",
"value": "false",
"required": false
},
"CLOUDCMD_CONSOLE": {
"description": "enable console",
"value": "true",
"required": false
},
"CLOUDCMD_SYNC_CONSOLE_PATH": {
"description": "sync console path",
"value": "false",
"required": false
},
"CLOUDCMD_TERMINAL": {
"description": "enable terminal",
"value": "true",
"required": false
},
"CLOUDCMD_TERMINAL_PATH": {
"description": "set terminal path",
"value": "gritty",
"required": false
},
"CLOUDCMD_TERMINAL_COMMAND": {
"description": "set command to run in terminal (shell by default)",
"value": "",
"required": false
},
"CLOUDCMD_ONE_FILE_PANEL": {
"description": "show one file panel",
"value": "false",
"required": false
},
"CLOUDCMD_KEYS_PANEL": {
"description": "show keys panel",
"value": "true",
"required": false
},
"CLOUDCMD_NAME": {
"description": "set tab name in web browser",
"value": "",
"required": false
},
"CLOUDCMD_AUTH": {
"description": "enable authorization",
"value": "false",
"required": false
},
"CLOUDCMD_USERNAME": {
"description": "set username",
"value": "root",
"required": false
},
"CLOUDCMD_PASSWORD": {
"description": "set password",
"value": "toor",
"required": false
},
"CLOUDCMD_ROOT": {
"description": "set root dir",
"value": "",
"required": false
},
"CLOUDCMD_VIM": {
"description": "enable vim hot keys",
"value": "false",
"required": false
},
"CLOUDCMD_COLUMNS": {
"description": "set visible columns",
"value": "name-size-date-owner-mode",
"required": false
},
"CLOUDCMD_OPEN": {
"description": "open web browser when server started",
"value": "false",
"required": false
},
"CLOUDCMD_CONFIRM_COPY": {
"description": "confirm copy",
"value": "true",
"required": false
},
"CLOUDCMD_CONFIRM_MOVE": {
"description": "confirm move",
"value": "true",
"required": false
},
"CLOUDCMD_SHOW_FILE_NAME": {
"description": "show file name in view and edit",
"value": "false",
"required": false
},
"CLOUDCMD_EXPORT": {
"description": "enable export of config through a server",
"value": "false",
"required": false
},
"CLOUDCMD_EXPORT_TOKEN": {
"description": "authorization token used by export server",
"value": "root",
"required": false
},
"CLOUDCMD_IMPORT": {
"description": "enable import of config",
"value": "false",
"required": false
},
"CLOUDCMD_IMPORT_TOKEN": {
"description": "authorization token used to connect to export server",
"value": "root",
"required": false
},
"CLOUDCMD_IMPORT_URL": {
"description": "url of an import server",
"value": "http://localhost:8000",
"required": false
},
"CLOUDCMD_IMPORT_LISTEN": {
"description": "enable listen on config updates from import server",
"value": "false",
"required": false
}
}
}

View file

@ -1,112 +0,0 @@
#!/usr/bin/env node
(function(){
'use strict';
var Info = require('../package'),
DIR = __dirname + '/../',
DIR_LIB = DIR + 'lib/',
Util = require(DIR_LIB + 'util'),
port,
argv = process.argv,
argvLength = argv.length,
argvLast = argv.slice().pop();
switch (argvLast) {
default:
port = argvLast - 0;
if (argvLength === 2)
start();
else
if (!isPort(argv))
help();
else
if (isNaN(port))
console.error('Error: port should be a number.');
else
start({
port: port
});
break;
case '--test':
Util.log('Cloud Commander testing mode');
Util.log('argv: ', argv);
require('..');
break;
case '-v':
version();
break;
case '--version':
version();
break;
case '-h':
help();
break;
case '--help':
help();
break;
case '--repl':
repl();
break;
}
function version() {
console.log('v' + Info.version);
}
function start(config) {
var SERVER = '../lib/server';
require(SERVER)(config);
}
function isPort(argv) {
var length = argv.length,
str = argv
.slice(length - 2, length - 1)
.pop(),
PORT = ['-p', '--port'],
is = Util.strCmp(str, PORT);
return is;
}
function help() {
var bin = require('../json/bin'),
usage = 'Usage: cloudcmd [OPTION]...',
description = Info.description + '.',
site = Util.render('General help using Cloud Commander: <{{ url }}>', {
url: Info.homepage
});
console.log(usage);
console.log(description + '\n');
Object.keys(bin).forEach(function(name) {
var line = ' ' + name + ' ' + bin[name];
console.log(line);
});
console.log('\n' + site);
}
function repl() {
console.log('REPL mode enabled (telnet localhost 1337)');
require(DIR_LIB + '/server/repl');
start();
}
})();

365
bin/cloudcmd.mjs Executable file
View file

@ -0,0 +1,365 @@
#!/usr/bin/env node
import process from 'node:process';
import {createRequire} from 'node:module';
import {promisify} from 'node:util';
import {tryToCatch} from 'try-to-catch';
import {createSimport} from 'simport';
import parse from 'yargs-parser';
import exit from '../server/exit.js';
import {createConfig, configPath} from '../server/config.mjs';
import * as env from '../server/env.mjs';
import prefixer from '../server/prefixer.js';
import * as validate from '../server/validate.mjs';
process.on('unhandledRejection', exit);
const require = createRequire(import.meta.url);
const Info = require('../package.json');
const isUndefined = (a) => typeof a === 'undefined';
const simport = createSimport(import.meta.url);
const choose = (a, b) => {
if (isUndefined(a))
return b;
return a;
};
const config = createConfig({
configPath,
});
const DIR_SERVER = '../server/';
const maybeRoot = (a) => {
if (a === '.')
return process.cwd();
return a;
};
const yargsOptions = {
configuration: {
'strip-aliased': true,
'strip-dashed': true,
},
coerce: {
root: maybeRoot,
},
string: [
'name',
'port',
'password',
'username',
'config',
'editor',
'packer',
'root',
'prefix',
'prefix-socket',
'terminal-path',
'terminal-command',
'columns',
'menu',
'theme',
'import-url',
'import-token',
'export-token',
'dropbox-token',
],
boolean: [
'auth',
'repl',
'save',
'server',
'online',
'open',
'config-dialog',
'config-auth',
'console',
'sync-console-path',
'contact',
'terminal',
'terminal-auto-restart',
'one-file-panel',
'confirm-copy',
'confirm-move',
'show-config',
'show-dot-files',
'show-file-name',
'vim',
'keys-panel',
'color',
'export',
'import',
'import-listen',
'log',
'zip',
'dropbox',
],
default: {
'server': true,
'name': choose(env.parse('name'), config('name')),
'auth': choose(env.bool('auth'), config('auth')),
'port': config('port'),
'online': config('online'),
'open': choose(env.bool('open'), config('open')),
'editor': env.parse('editor') || config('editor'),
'menu': env.parse('menu') || config('menu'),
'packer': config('packer') || 'tar',
'zip': config('zip'),
'username': env.parse('username') || config('username'),
'root': choose(env.parse('root'), config('root')),
'prefix': choose(env.parse('prefix'), config('prefix')),
'console': choose(env.bool('console'), config('console')),
'contact': choose(env.bool('contact'), config('contact')),
'terminal': choose(env.bool('terminal'), config('terminal')),
'columns': env.parse('columns') || config('columns') || '',
'theme': env.parse('theme') || config('theme') || '',
'vim': choose(env.bool('vim'), config('vim')),
'log': config('log'),
'import-url': env.parse('import_url') || config('importUrl'),
'import-listen': choose(env.bool('import_listen'), config('importListen')),
'import': choose(env.bool('import'), config('import')),
'export': choose(env.bool('export'), config('export')),
'prefix-socket': config('prefixSocket'),
'show-dot-files': choose(env.bool('show_dot_files'), config('showDotFiles')),
'show-file-name': choose(env.bool('show_file_name'), config('showFileName')),
'sync-console-path': choose(env.bool('sync_console_path'), config('syncConsolePath')),
'config-dialog': choose(env.bool('config_dialog'), config('configDialog')),
'config-auth': choose(env.bool('config_auth'), config('configAuth')),
'terminal-path': env.parse('terminal_path') || config('terminalPath'),
'terminal-command': env.parse('terminal_command') || config('terminalCommand'),
'terminal-auto-restart': choose(env.bool('terminal_auto_restart'), config('terminalAutoRestart')),
'one-file-panel': choose(env.bool('one_file_panel'), config('oneFilePanel')),
'confirm-copy': choose(env.bool('confirm_copy'), config('confirmCopy')),
'confirm-move': choose(env.bool('confirm_move'), config('confirmMove')),
'keys-panel': env.bool('keys_panel') || config('keysPanel'),
'import-token': env.parse('import_token') || config('importToken'),
'export-token': env.parse('export_token') || config('exportToken'),
'dropbox': config('dropbox'),
'dropbox-token': config('dropboxToken') || '',
},
alias: {
version: 'v',
help: 'h',
password: 'p',
online: 'o',
username: 'u',
save: 's',
auth: 'a',
config: 'c',
},
};
const {argv} = process;
const args = parse(argv.slice(2), yargsOptions);
if (args.version)
version();
else if (args.help)
help();
else
main();
async function main() {
const {validateArgs} = await simport('@putout/cli-validate-args');
const error = await validateArgs(args, [
...yargsOptions.boolean,
...yargsOptions.string,
]);
if (error)
return exit(error);
if (args.repl)
repl();
validate.columns(args.columns);
validate.theme(args.theme);
port(args.port);
config('name', args.name);
config('auth', args.auth);
config('online', args.online);
config('open', args.open);
config('username', args.username);
config('console', args.console);
config('syncConsolePath', args.syncConsolePath);
config('showDotFiles', args.showDotFiles);
config('showFileName', args.showFileName);
config('contact', args.contact);
config('terminal', args.terminal);
config('terminalPath', args.terminalPath);
config('terminalCommand', args.terminalCommand);
config('terminalAutoRestart', args.terminalAutoRestart);
config('editor', args.editor);
config('menu', args.menu);
config('prefix', prefixer(args.prefix));
config('prefixSocket', prefixer(args.prefixSocket));
config('root', args.root || '/');
config('vim', args.vim);
config('theme', args.theme);
config('columns', args.columns);
config('log', args.log);
config('confirmCopy', args.confirmCopy);
config('confirmMove', args.confirmMove);
config('oneFilePanel', args.oneFilePanel);
config('configDialog', args.configDialog);
config('configAuth', args.configAuth);
config('keysPanel', args.keysPanel);
config('export', args.export);
config('exportToken', args.exportToken);
config('import', args.import);
config('importToken', args.importToken);
config('importListen', args.importListen);
config('importUrl', args.importUrl);
config('dropbox', args.dropbox);
config('dropboxToken', args.dropboxToken);
await readConfig(args.config);
const options = {
root: config('root'),
editor: config('editor'),
packer: config('packer'),
prefix: config('prefix'),
prefixSocket: config('prefixSocket'),
columns: config('columns'),
theme: config('theme'),
menu: config('menu'),
};
const password = env.parse('password') || args.password;
if (password)
config('password', await getPassword(password));
validateRoot(options.root, config);
if (args.showConfig)
await showConfig();
const {distributeImport} = await simport('../server/distribute/import.mjs');
const importConfig = promisify(distributeImport);
await start(options, config);
if (args.save)
config.write();
await tryToCatch(checkUpdate);
await importConfig(config);
}
function validateRoot(root, config) {
validate.root(root, config);
if (root === '/')
return;
console.log(`root: ${root}`);
}
async function getPassword(password) {
const criton = await simport('criton');
return criton(password, config('algo'));
}
function version() {
console.log('v' + Info.version);
}
async function start(options, config) {
const SERVER = `${DIR_SERVER}server.mjs`;
if (!args.server)
return;
const server = await simport(SERVER);
server(options, config);
}
function port(arg) {
const number = parseInt(arg, 10);
if (!isNaN(number))
return config('port', number);
exit('cloudcmd --port: should be a number');
}
async function showConfig() {
const show = await simport('../server/show-config');
const data = show(config('*'));
console.log(data);
}
async function readConfig(name) {
if (!name)
return;
const tryToCatch = await simport('try-to-catch');
const forEachKey = await simport('for-each-key');
const [error, data] = await tryToCatch(simport, name);
if (error)
return exit(error.message);
forEachKey(config, data);
}
async function help() {
const {default: bin} = await import('../json/help.json', {
with: {
type: 'json',
},
});
const forEachKey = await simport('for-each-key');
const currify = await simport('currify');
const usage = 'Usage: cloudcmd [options]';
const url = Info.homepage;
const log = currify((a, b, c) => console.log(a, b, c));
console.log(usage);
console.log('Options:');
forEachKey(log(' %s %s'), bin);
console.log('\nGeneral help using Cloud Commander: <%s>', url);
}
function repl() {
console.log('REPL mode enabled (telnet localhost 1337)');
require(`${DIR_SERVER}repl`);
}
async function checkUpdate() {
const load = await simport('package-json');
const {version} = await load(Info.name, 'latest');
await showUpdateInfo(version);
}
async function showUpdateInfo(version) {
if (version === Info.version)
return;
const chalk = await simport('chalk');
const latestVersion = chalk.green.bold(`v${version}`);
const latest = `update available: ${latestVersion}`;
const current = chalk.dim(`(current: v${Info.version})`);
console.log('%s %s', latest, current);
}

75
bin/release.mjs Executable file
View file

@ -0,0 +1,75 @@
#!/usr/bin/env node
import {promisify} from 'node:util';
import process from 'node:process';
import {tryToCatch} from 'try-to-catch';
import {createSimport} from 'simport';
import minor from 'minor';
import _place from 'place';
import rendy from 'rendy';
import shortdate from 'shortdate';
const simport = createSimport(import.meta.url);
const place = promisify(_place);
const Info = await simport('../package.json');
await main();
async function main() {
const history = '## Version history\n\n';
const link = '//github.com/coderaiser/cloudcmd/releases/tag/';
const template = '- ' +
'*{{ date }}*, ' +
'**[v{{ version }}]' +
'(' + link +
'v{{ version }})**\n';
const {version} = Info;
const [error, versionNew] = await tryToCatch(cl);
if (error)
return console.error(error);
await replaceVersion('README.md', version, versionNew);
await replaceVersion('HELP.md', version, versionNew);
const historyNew = history + rendy(template, {
date: shortdate(),
version: versionNew,
});
await replaceVersion('HELP.md', history, historyNew);
}
async function replaceVersion(name, version, versionNew) {
const [error] = await tryToCatch(place, name, version, versionNew);
if (error)
return console.error(error);
console.log(`done: ${name}`);
}
async function cl() {
const {argv} = process;
const length = argv.length - 1;
const last = process.argv[length];
const regExp = /^--(major|minor|patch)$/;
const [, match] = last.match(regExp) || [];
console.log(last);
if (!regExp.test(last))
throw Error('ERROR: version is missing. release --patch|--minor|--major');
return getVersionNew(last, match);
}
function getVersionNew(last, match) {
if (match)
return minor(match, Info.version);
return last.substr(3);
}

425
client/client.mjs Normal file
View file

@ -0,0 +1,425 @@
import process from 'node:process';
/* global DOM */
import Emitify from 'emitify';
import inherits from 'inherits';
import rendy from 'rendy';
import load from 'load.js';
import {tryToCatch} from 'try-to-catch';
import {addSlashToEnd} from 'format-io';
import pascalCase from 'just-pascal-case';
import currify from 'currify';
import * as Images from './dom/images.mjs';
import {unregisterSW} from './sw/register.js';
import {getJsonFromFileTable} from './get-json-from-file-table.mjs';
import {Key} from './key/index.mjs';
import {
apiURL,
formatMsg,
buildFromJSON,
} from '../common/cloudfunc.mjs';
import {loadModule} from './load-module.mjs';
const noJS = (a) => a.replace(/.js$/, '');
const isDev = process.env.NODE_ENV === 'development';
inherits(CloudCmdProto, Emitify);
export const createCloudCmd = ({DOM, Listeners}) => {
return new CloudCmdProto({
DOM,
Listeners,
});
};
load.addErrorListener((e, src) => {
const msg = `file ${src} could not be loaded`;
Images.show.error(msg);
});
function CloudCmdProto({DOM, Listeners}) {
Emitify.call(this);
const CloudCmd = this;
const Info = DOM.CurrentInfo;
const {Storage, Files} = DOM;
this.log = () => {
if (!isDev)
return;
};
this.prefix = '';
this.prefixSocket = '';
this.prefixURL = '';
this.MIN_ONE_PANEL_WIDTH = DOM.getCSSVar('min-one-panel-width');
this.HOST = location.origin || location.protocol + '//' + location.host;
this.sort = {
left: 'name',
right: 'name',
};
this.order = {
left: 'asc',
right: 'asc',
};
this.changeDir = async (path, overrides = {}) => {
const {
isRefresh,
panel,
history = true,
noCurrent,
currentName,
} = overrides;
const refresh = isRefresh;
let panelChanged;
if (!noCurrent && panel && panel !== Info.panel) {
DOM.changePanel();
panelChanged = true;
}
let imgPosition;
if (panelChanged || refresh || !history)
imgPosition = 'top';
Images.show.load(imgPosition, panel);
/* загружаем содержимое каталога */
await ajaxLoad(addSlashToEnd(path), {
refresh,
history,
noCurrent,
currentName,
showDotFiles: CloudCmd.config('showDotFiles'),
}, panel);
};
/**
* Конструктор CloudClient, который
* выполняет весь функционал по
* инициализации
*/
this.init = async (prefix, config) => {
CloudCmd.prefix = prefix;
CloudCmd.prefixURL = `${prefix}${apiURL}`;
CloudCmd.prefixSocket = config.prefixSocket;
CloudCmd.DIR_DIST = `${prefix}/dist`;
CloudCmd.DIR_MODULES = `${this.DIR_DIST}/modules`;
CloudCmd.config = (key) => config[key];
CloudCmd.config.if = currify((key, fn, a) => config[key] && fn(a));
CloudCmd._config = (key, value) => {
/*
* should be called from config.js only
* after successful update on server
*/
if (key === 'password')
return;
config[key] = value;
};
if (config.oneFilePanel)
CloudCmd.MIN_ONE_PANEL_WIDTH = Infinity;
if (!document.body.scrollIntoViewIfNeeded)
await load.js(`${CloudCmd.DIR_MODULES}/polyfill.js`);
await initModules();
await baseInit();
CloudCmd.route(location.hash);
};
this.route = (path) => {
const query = path.split('/');
if (!path)
return;
const [kebabModule] = query;
const module = noJS(pascalCase(kebabModule.slice(1)));
const [, file] = query;
const current = DOM.getCurrentByName(file);
if (file && !current) {
const msg = formatMsg('set current file', file, 'error');
CloudCmd.log(msg);
return;
}
DOM.setCurrentFile(current);
CloudCmd.execFromModule(module, 'show');
};
this.logOut = async () => {
const url = CloudCmd.prefix + '/logout';
const error = () => document.location.reload();
const {prefix} = CloudCmd;
await DOM.Storage.clear();
unregisterSW(prefix);
DOM.load.ajax({
url,
error,
});
};
const initModules = async () => {
CloudCmd.Key = Key;
CloudCmd.Key.bind();
const [, modules] = await tryToCatch(Files.get, 'modules');
const showLoad = Images.show.load;
const doBefore = {
edit: showLoad,
menu: showLoad,
};
const load = (name, path, dobefore) => {
loadModule({
name,
path,
dobefore,
});
};
if (!modules)
return;
for (const module of modules.local) {
load(null, module, doBefore[module]);
}
};
async function saveCurrentName(currentName) {
await Storage.set('current-name', currentName);
}
async function baseInit() {
const files = DOM.getFiles();
CloudCmd.on('current-file', DOM.updateCurrentInfo);
CloudCmd.on('current-name', saveCurrentName);
const name = await Storage.get('current-name');
const currentFile = name && DOM.getCurrentByName(name) || files[0];
/* выделяем строку с первым файлом */
if (files)
DOM.setCurrentFile(currentFile, {
// when hash is present
// it should be handled with this.route
// overwre otherwise
history: !location.hash,
});
const dirPath = DOM.getCurrentDirPath();
Listeners.init();
const panels = getPanels();
panels.forEach(Listeners.setOnPanel);
Listeners.initKeysPanel();
if (!CloudCmd.config('dirStorage'))
return;
const data = await Storage.get(dirPath);
if (!data)
await Storage.setJson(dirPath, getJsonFromFileTable());
}
function getPanels() {
const panels = ['left'];
if (CloudCmd.config('oneFilePanel'))
return panels;
return [
...panels,
'right',
];
}
this.execFromModule = async (moduleName, funcName, ...args) => {
await CloudCmd[moduleName]();
const func = CloudCmd[moduleName][funcName];
func(...args);
};
this.refresh = async (options = {}) => {
const {panel = Info.panel, currentName} = options;
const path = DOM.getCurrentDirPath(panel);
const isRefresh = true;
const history = false;
const noCurrent = options?.noCurrent;
await CloudCmd.changeDir(path, {
isRefresh,
history,
panel,
noCurrent,
currentName,
});
};
/**
* Функция загружает json-данные о Файловой Системе
* через ajax-запрос.
* @param path - каталог для чтения
* @param options
* { refresh, history } - необходимость обновить данные о каталоге
* @param panel
*
*/
async function ajaxLoad(path, options = {}, panel) {
const {RESTful} = DOM;
CloudCmd.log(`reading dir: "${path}";`);
const dirStorage = CloudCmd.config('dirStorage');
const json = dirStorage && await Storage.getJson(path);
const name = options.currentName || Info.name;
const {noCurrent, refresh} = options;
if (!refresh && json)
return await createFileTable(json, panel, options);
const position = DOM.getPanelPosition(panel);
const sort = CloudCmd.sort[position];
const order = CloudCmd.order[position];
const query = rendy('?sort={{ sort }}&order={{ order }}', {
sort,
order,
});
const [, newObj] = await RESTful.read(path + query, 'json');
if (!newObj)
// that's OK, error handled by RESTful
return;
options.sort = sort;
options.order = order;
await createFileTable(newObj, panel, options);
if (refresh && !noCurrent)
DOM.setCurrentByName(name);
if (!CloudCmd.config('dirStorage'))
return;
Storage.setJson(path, newObj);
}
/**
* Функция строит файловую таблицу
* @param data - данные о файлах
* @param panelParam
* @param options - history, noCurrent, showDotFiles
*/
async function createFileTable(data, panelParam, options) {
const {
history,
noCurrent,
showDotFiles,
} = options;
const names = [
'file',
'path',
'link',
'pathLink',
];
const [error, [file, path, link, pathLink]] = await tryToCatch(Files.get, names);
if (error)
return DOM.Dialog.alert(error.responseText);
const panel = panelParam || DOM.getPanel();
const {prefix} = CloudCmd;
const {dir, name} = Info;
const {childNodes} = panel;
let i = childNodes.length;
while (i--)
panel.removeChild(panel.lastChild);
panel.innerHTML = buildFromJSON({
sort: options.sort,
order: options.order,
data,
id: panel.id,
prefix,
showDotFiles,
template: {
file,
path,
pathLink,
link,
},
});
Listeners.setOnPanel(panel);
if (!noCurrent) {
let current;
if (name === '..' && dir !== '/')
current = DOM.getCurrentByName(dir);
if (!current)
[current] = DOM.getFiles(panel);
DOM.setCurrentFile(current, {
history,
});
CloudCmd.emit('active-dir', Info.dirPath);
}
}
this.goToParentDir = async () => {
const {
dir,
dirPath,
parentDirPath,
panel,
} = Info;
if (dirPath === parentDirPath)
return;
const path = parentDirPath;
await CloudCmd.changeDir(path);
const current = DOM.getCurrentByName(dir);
const [first] = DOM.getFiles(panel);
DOM.setCurrentFile(current || first, {
history,
});
};
}

74
client/cloudcmd.mjs Normal file
View file

@ -0,0 +1,74 @@
import process from 'node:process';
import wraptile from 'wraptile';
import load from 'load.js';
import '../css/main.css';
import {registerSW, listenSW} from './sw/register.js';
import {initSortPanel, sortPanel} from './sort.mjs';
import Util from '../common/util.js';
import * as CloudFunc from '../common/cloudfunc.mjs';
import DOM from './dom/index.js';
import {createCloudCmd} from './client.mjs';
import * as Listeners from './listeners/index.js';
const isDev = process.env.NODE_ENV === 'development';
export default init;
globalThis.CloudCmd = init;
async function init(config) {
globalThis.CloudCmd = createCloudCmd({
DOM,
Listeners,
});
globalThis.DOM = DOM;
globalThis.Util = Util;
globalThis.CloudFunc = CloudFunc;
await register(config);
initSortPanel();
globalThis.CloudCmd.sortPanel = sortPanel;
const prefix = getPrefix(config.prefix);
globalThis.CloudCmd.init(prefix, config);
if (globalThis.CloudCmd.config('menu') === 'aleman')
setTimeout(() => {
import('https://esm.sh/@putout/processor-html');
import('https://esm.sh/@putout/bundle');
}, 100);
}
function getPrefix(prefix) {
if (!prefix)
return '';
if (!prefix.indexOf('/'))
return prefix;
return `/${prefix}`;
}
const onUpdateFound = wraptile(async (config) => {
if (isDev)
return;
const {DOM} = globalThis;
const prefix = getPrefix(config.prefix);
await load.js(`${prefix}/dist/cloudcmd.common.js`);
await load.js(`${prefix}/dist/cloudcmd.js`);
console.log('cloudcmd: sw: updated');
DOM.Events.removeAll();
globalThis.CloudCmd(config);
});
async function register(config) {
const {prefix} = config;
const sw = await registerSW(prefix);
listenSW(sw, 'updatefound', onUpdateFound(config));
}

124
client/dom/buffer.mjs Normal file
View file

@ -0,0 +1,124 @@
/* global CloudCmd*/
import tryToPromiseAll from '../../common/try-to-promise-all.js';
import Storage from './storage.js';
const CLASS = 'cut-file';
const COPY = 'copy';
const CUT = 'cut';
function showMessage(msg) {
globalThis.DOM.Dialog.alert(msg);
}
function getNames() {
const {DOM} = globalThis;
const files = DOM.getActiveFiles();
return DOM.getFilenames(files);
}
function addCutClass() {
const {DOM} = globalThis;
const files = DOM.getActiveFiles();
for (const element of files) {
element.classList.add(CLASS);
}
}
function rmCutClass() {
const {DOM} = globalThis;
const files = DOM.getByClassAll(CLASS);
for (const element of files) {
element.classList.remove(CLASS);
}
}
const checkEnabled = (fn) => () => {
const is = CloudCmd.config('buffer');
if (is)
return fn();
showMessage('Buffer disabled in config!');
};
async function readBuffer() {
const [e, cp, ct] = await tryToPromiseAll([
Storage.getJson(COPY),
Storage.getJson(CUT),
]);
return [
e,
cp,
ct,
];
}
export const copy = checkEnabled(async () => {
const Info = globalThis.DOM.CurrentInfo;
const names = getNames();
const from = Info.dirPath;
await clear();
if (!names.length)
return;
await Storage.remove(CUT);
await Storage.setJson(COPY, {
from,
names,
});
});
export const cut = checkEnabled(async () => {
const Info = globalThis.DOM.CurrentInfo;
const names = getNames();
const from = Info.dirPath;
await clear();
if (!names.length)
return;
addCutClass();
await Storage.setJson(CUT, {
from,
names,
});
});
export const clear = checkEnabled(async () => {
await Storage.remove(COPY);
await Storage.remove(CUT);
rmCutClass();
});
export const paste = checkEnabled(async () => {
const Info = globalThis.DOM.CurrentInfo;
const [error, cp, ct] = await readBuffer();
if (error || !cp && !ct)
return showMessage(error || 'Buffer is empty!');
const opStr = cp ? 'copy' : 'move';
const data = cp || ct;
const {Operation} = CloudCmd;
const msg = 'Path is same!';
const to = Info.dirPath;
if (data.from === to)
return showMessage(msg);
Operation.show(opStr, {
...data,
to,
});
await clear();
});

310
client/dom/current-file.mjs Normal file
View file

@ -0,0 +1,310 @@
/* global DOM */
/* global CloudCmd */
import createElement from '@cloudcmd/create-element';
import {encode, decode} from '../../common/entity.js';
import {getTitle, FS} from '../../common/cloudfunc.mjs';
let Title;
const CURRENT_FILE = 'current-file';
const encodeNBSP = (a) => a?.replace('\xa0', '&nbsp;');
const decodeNBSP = (a) => a?.replace('&nbsp;', '\xa0');
export const _CURRENT_FILE = CURRENT_FILE;
/**
* set name from current (or param) file
*
* @param name
* @param current
*/
export const setCurrentName = (name, current) => {
const Info = DOM.CurrentInfo;
const {link} = Info;
const {prefix} = CloudCmd;
const dir = prefix + FS + Info.dirPath;
const encoded = encode(name);
link.title = encoded;
link.href = dir + encoded;
link.innerHTML = encoded;
current.setAttribute('data-name', createNameAttribute(name));
CloudCmd.emit('current-file', current);
return link;
};
/**
* get name from current (or param) file
*
* @param currentFile
*/
export const getCurrentName = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
if (!current)
return '';
return parseNameAttribute(current.getAttribute('data-name'));
};
/**
* Generate a `data-name` attribute for the given filename
* @param name The string name to encode
*/
const createNameAttribute = (name) => {
const encoded = btoa(encodeURI(name));
return `js-file-${encoded}`;
};
/**
* Parse a `data-name` attribute string back into the original filename
* @param attribute The string we wish to decode
*/
const parseNameAttribute = (attribute) => {
attribute = attribute.replace('js-file-', '');
return decodeNBSP(decodeURI(atob(attribute)));
};
export const _parseNameAttribute = parseNameAttribute;
const parseHrefAttribute = (prefix, attribute) => {
attribute = attribute.replace(RegExp('^' + prefix + FS), '');
return decode(decodeNBSP(attribute));
};
export const _parseHrefAttribute = parseHrefAttribute;
/**
* get current direcotory path
*/
export const getCurrentDirPath = (panel = DOM.getPanel()) => {
const path = DOM.getByDataName('js-path', panel);
return path.textContent;
};
/**
* get link from current (or param) file
*
* @param currentFile - current file by default
*/
export const getCurrentPath = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const [element] = DOM.getByTag('a', current);
const {prefix} = CloudCmd;
return parseHrefAttribute(prefix, element.getAttribute('href'));
};
/**
* get current direcotory name
*/
export const getCurrentDirName = () => {
const href = DOM
.getCurrentDirPath()
.replace(/\/$/, '');
const substr = href.substr(href, href.lastIndexOf('/'));
return href.replace(`${substr}/`, '') || '/';
};
/**
* get current direcotory path
*/
export const getParentDirPath = (panel) => {
const path = DOM.getCurrentDirPath(panel);
const dirName = DOM.getCurrentDirName() + '/';
const index = path.lastIndexOf(dirName);
if (path === '/')
return path;
return path.slice(0, index);
};
/**
* get not current direcotory path
*/
export const getNotCurrentDirPath = () => {
const panel = DOM.getPanel({
active: false,
});
return DOM.getCurrentDirPath(panel);
};
/**
* unified way to get current file
*
* @currentFile
*/
export const getCurrentFile = () => {
return DOM.getByClass(CURRENT_FILE);
};
/**
* get current file by name
*/
export const getCurrentByName = (name, panel = DOM.CurrentInfo.panel) => {
const dataName = 'js-file-' + btoa(encodeURI(encodeNBSP(name)));
return DOM.getByDataName(dataName, panel);
};
/**
* private function thet unset currentfile
*
* @currentFile
*/
function unsetCurrentFile(currentFile) {
const is = DOM.isCurrentFile(currentFile);
if (!is)
return;
currentFile.classList.remove(CURRENT_FILE);
}
/**
* unified way to set current file
*/
export const setCurrentFile = (currentFile, options) => {
const o = options;
const currentFileWas = DOM.getCurrentFile();
if (!currentFile)
return DOM;
let pathWas = '';
if (currentFileWas) {
pathWas = DOM.getCurrentDirPath();
unsetCurrentFile(currentFileWas);
}
currentFile.classList.add(CURRENT_FILE);
const path = DOM.getCurrentDirPath();
const name = CloudCmd.config('name');
if (path !== pathWas) {
DOM.setTitle(getTitle({
name,
path,
}));
/* history could be present
* but it should be false
* to prevent default behavior
*/
if (!o || o.history) {
const historyPath = path === '/' ? path : FS + path;
DOM.setHistory(historyPath, null, historyPath);
}
}
/* scrolling to current file */
const CENTER = true;
DOM.scrollIntoViewIfNeeded(currentFile, CENTER);
CloudCmd.emit('current-file', currentFile);
CloudCmd.emit('current-path', path);
CloudCmd.emit('current-name', DOM.getCurrentName(currentFile));
return DOM;
};
export const setCurrentByName = (name) => {
const current = DOM.getCurrentByName(name);
return DOM.setCurrentFile(current);
};
/*
* set current file by position
*
* @param layer - element
* @param - position {x, y}
*/
export const getCurrentByPosition = ({x, y}) => {
const element = document.elementFromPoint(x, y);
const getEl = (el) => {
const {tagName} = el;
const isChild = /A|SPAN|LI/.test(tagName);
if (!isChild)
return null;
if (tagName === 'A')
return el.parentElement.parentElement;
if (tagName === 'SPAN')
return el.parentElement;
return el;
};
const el = getEl(element);
if (el && el.tagName !== 'LI')
return null;
return el;
};
/**
* current file check
*
* @param currentFile
*/
export const isCurrentFile = (currentFile) => {
if (!currentFile)
return false;
return DOM.isContainClass(currentFile, CURRENT_FILE);
};
/**
* set title or create title element
*
* @param name
*/
export const setTitle = (name) => {
if (!Title)
Title = DOM.getByTag('title')[0] || createElement('title', {
innerHTML: name,
parent: document.head,
});
Title.textContent = name;
return DOM;
};
/**
* check is current file is a directory
*
* @param currentFile
*/
export const isCurrentIsDir = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const path = DOM.getCurrentPath(current);
const fileType = DOM.getCurrentType(current);
const isZip = path.endsWith('.zip');
const isDir = /^directory(-link)?/.test(fileType);
return isDir || isZip;
};
export const getCurrentType = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const el = DOM.getByDataName('js-type', current);
const type = el.className
.split(' ')
.pop();
return type;
};

View file

@ -0,0 +1,307 @@
import {test, stub} from 'supertape';
import {create} from 'auto-globals';
import wraptile from 'wraptile';
import * as currentFile from './current-file.mjs';
const id = (a) => a;
const returns = wraptile(id);
const {_CURRENT_FILE} = currentFile;
test('current-file: setCurrentName: setAttribute', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const current = create();
const {setAttribute} = current;
currentFile.setCurrentName('hello', current);
t.calledWith(setAttribute, ['data-name', 'js-file-aGVsbG8='], 'should call setAttribute');
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.end();
});
test('current-file: setCurrentName: setAttribute: cyrillic', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const current = create();
const {setAttribute} = current;
currentFile.setCurrentName('ай', current);
t.calledWith(setAttribute, ['data-name', 'js-file-JUQwJUIwJUQwJUI5'], 'should call setAttribute');
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.end();
});
test('current-file: getCurrentName', (t) => {
const current = create();
current.getAttribute.returns('js-file-Ymlu');
const result = currentFile.getCurrentName(current);
t.equal(result, 'bin');
t.end();
});
test('current-file: emit', (t) => {
const {DOM, CloudCmd} = globalThis;
const emit = stub();
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd({
emit,
});
const current = create();
currentFile.setCurrentName('hello', current);
t.calledWith(emit, ['current-file', current], 'should call emit');
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.end();
});
test('current-file: setCurrentName: return', (t) => {
const {DOM, CloudCmd} = globalThis;
const link = {};
globalThis.DOM = getDOM({
link,
});
globalThis.CloudCmd = getCloudCmd();
const current = create();
const result = currentFile.setCurrentName('hello', current);
t.equal(result, link, 'should return link');
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.end();
});
test('current-file: getParentDirPath: result', (t) => {
const {DOM} = globalThis;
const getCurrentDirPath = returns('/D/Films/+++favorite films/');
const getCurrentDirName = returns('+++favorite films');
globalThis.DOM = getDOM({
getCurrentDirPath,
getCurrentDirName,
});
const result = currentFile.getParentDirPath();
const expected = '/D/Films/';
globalThis.DOM = DOM;
t.equal(result, expected, 'should return parent dir path');
t.end();
});
test('current-file: isCurrentFile: no', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const result = currentFile.isCurrentFile();
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.notOk(result);
t.end();
});
test('current-file: isCurrentFile', (t) => {
const {DOM, CloudCmd} = globalThis;
const isContainClass = stub();
globalThis.DOM = getDOM({
isContainClass,
});
globalThis.CloudCmd = getCloudCmd();
const current = {};
currentFile.isCurrentFile(current);
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.calledWith(isContainClass, [current, _CURRENT_FILE], 'should call isContainClass');
t.end();
});
test('current-file: getCurrentType', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const {getByDataName} = globalThis.DOM;
getByDataName.returns({
className: 'mini-icon directory',
});
const current = create();
currentFile.getCurrentType(current);
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.calledWith(getByDataName, ['js-type', current]);
t.end();
});
test('current-file: isCurrentIsDir: getCurrentType', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const {getCurrentType} = globalThis.DOM;
const current = create();
currentFile.isCurrentIsDir(current);
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.calledWith(getCurrentType, [current]);
t.end();
});
test('current-file: isCurrentIsDir: directory', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM({
getCurrentType: stub().returns('directory'),
});
globalThis.CloudCmd = getCloudCmd();
const current = create();
const result = currentFile.isCurrentIsDir(current);
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.ok(result);
t.end();
});
test('current-file: isCurrentIsDir: directory-link', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM({
getCurrentType: stub().returns('directory-link'),
});
globalThis.CloudCmd = getCloudCmd();
const current = create();
const result = currentFile.isCurrentIsDir(current);
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.ok(result);
t.end();
});
test('current-file: isCurrentIsDir: file', (t) => {
const {DOM, CloudCmd} = globalThis;
globalThis.DOM = getDOM({
getCurrentType: stub().returns('file'),
});
globalThis.CloudCmd = getCloudCmd();
const current = create();
const result = currentFile.isCurrentIsDir(current);
globalThis.DOM = DOM;
globalThis.CloudCmd = CloudCmd;
t.notOk(result);
t.end();
});
const getCloudCmd = ({emit} = {}) => ({
prefix: '',
emit: emit || stub(),
});
test('current-file: parseNameAttribute', (t) => {
const result = currentFile._parseNameAttribute('js-file-aGVsbG8mbmJzcDt3b3JsZA==');
const expected = 'hello\xa0world';
t.equal(result, expected);
t.end();
});
test('current-file: parseHrefAttribute', (t) => {
const prefix = '/api/v1';
const result = currentFile._parseHrefAttribute(prefix, '/api/v1/fs/hello&nbsp;world');
const expected = '/hello\xa0world';
t.equal(result, expected);
t.end();
});
function getDOM(overrides = {}) {
const {
link = {},
getCurrentDirPath = stub(),
getCurrentDirName = stub(),
getByDataName = stub(),
isContainClass = stub(),
getCurrentType = stub(),
getCurrentPath = stub().returns(''),
} = overrides;
return {
getCurrentDirPath,
getCurrentDirName,
getCurrentPath,
getByDataName,
isContainClass,
getCurrentType,
CurrentInfo: {
link,
dirPath: '/',
},
};
}

26
client/dom/dialog.js Normal file
View file

@ -0,0 +1,26 @@
'use strict';
const {tryToCatch} = require('try-to-catch');
const {
alert,
prompt,
confirm,
progress,
} = require('smalltalk');
const title = 'Cloud Commander';
module.exports.alert = (...a) => alert(title, ...a, {
cancel: false,
});
module.exports.prompt = (...a) => tryToCatch(prompt, title, ...a);
module.exports.confirm = (...a) => tryToCatch(confirm, title, ...a);
module.exports.progress = (...a) => progress(title, ...a);
module.exports.alert.noFiles = () => {
return alert(title, 'No files selected!', {
cancel: false,
});
};

70
client/dom/directory.js Normal file
View file

@ -0,0 +1,70 @@
'use strict';
/* global CloudCmd */
const philip = require('philip');
const Images = require('./images.mjs');
const {FS} = require('../../common/cloudfunc.mjs');
const DOM = require('.');
const Dialog = require('./dialog');
const {getCurrentDirPath: getPathWhenRootEmpty} = DOM;
module.exports = (items) => {
if (items.length)
Images.show('top');
const entries = Array
.from(items)
.map((item) => item.webkitGetAsEntry());
const dirPath = getPathWhenRootEmpty();
const path = dirPath.replace(/\/$/, '');
const progress = Dialog.progress('Uploading...');
progress.catch(() => {
Dialog.alert('Upload aborted');
uploader.abort();
});
const uploader = philip(entries, (type, name, data, i, n, callback) => {
const {prefixURL} = CloudCmd;
const full = prefixURL + FS + path + name;
let upload;
switch(type) {
case 'file':
upload = uploadFile(full, data);
break;
case 'directory':
upload = uploadDir(full);
break;
}
upload.on('end', callback);
upload.on('progress', (count) => {
const current = percent(i, n);
const next = percent(i + 1, n);
const max = next - current;
const value = current + percent(count, 100, max);
progress.setProgress(value);
});
});
uploader.on('error', (error) => {
Dialog.alert(error);
uploader.abort();
});
uploader.on('end', CloudCmd.refresh);
};
const percent = (i, n, per = 100) => Math.round(i * per / n);
const uploadFile = (url, data) => DOM.load.put(url, data);
const uploadDir = (url) => DOM.load.put(`${url}?dir`);

83
client/dom/dom-tree.js Normal file
View file

@ -0,0 +1,83 @@
'use strict';
const currify = require('currify');
const DOM = module.exports;
/**
* check class of element
*
* @param element
* @param className
*/
const isContainClass = (element, className) => {
if (!element)
throw Error('element could not be empty!');
if (!className)
throw Error('className could not be empty!');
if (Array.isArray(className))
return className.some(currify(
isContainClass,
element,
));
const {classList} = element;
return classList.contains(className);
};
module.exports.isContainClass = isContainClass;
/**
* Function search element by tag
* @param tag - className
* @param element - element
*/
module.exports.getByTag = (tag, element = document) => {
return element.getElementsByTagName(tag);
};
/**
* Function search element by id
* @param Id - id
*/
module.exports.getById = (id, element = document) => {
return element.querySelector(`#${id}`);
};
/**
* Function search first element by class name
* @param className - className
* @param element - element
*/
module.exports.getByClass = (className, element = document) => DOM.getByClassAll(className, element)[0];
module.exports.getByDataName = (attribute, element = document) => {
const selector = '[' + 'data-name="' + attribute + '"]';
return element.querySelector(selector);
};
/**
* Function search element by class name
* @param pClass - className
* @param element - element
*/
module.exports.getByClassAll = (className, element) => {
return (element || document).getElementsByClassName(className);
};
/**
* add class=hidden to element
*
* @param element
*/
module.exports.hide = (element) => {
element.classList.add('hidden');
return DOM;
};
module.exports.show = (element) => {
element.classList.remove('hidden');
return DOM;
};

View file

@ -0,0 +1,43 @@
'use strict';
const test = require('supertape');
const {create} = require('auto-globals');
const {tryCatch} = require('try-catch');
const {isContainClass} = require('./dom-tree');
test('dom: isContainClass: no element', (t) => {
const [e] = tryCatch(isContainClass);
t.equal(e.message, 'element could not be empty!', 'should throw when no element');
t.end();
});
test('dom: isContainClass: no className', (t) => {
const [e] = tryCatch(isContainClass, {});
t.equal(e.message, 'className could not be empty!', 'should throw when no element');
t.end();
});
test('dom: isContainClass: contains', (t) => {
const el = create();
const {contains} = el.classList;
const className = 'hello';
isContainClass(el, className);
t.calledWith(contains, [className], 'should call contains');
t.end();
});
test('dom: isContainClass: contains: array', (t) => {
const el = create();
const {contains} = el.classList;
const className = 'hello';
isContainClass(el, ['world', className, 'hello']);
t.calledWith(contains, [className], 'should call contains');
t.end();
});

View file

@ -0,0 +1,17 @@
'use strict';
let list = [];
module.exports.add = (el, name, fn) => {
list.push([
el,
name,
fn,
]);
};
module.exports.clear = () => {
list = [];
};
module.exports.get = () => list;

View file

@ -0,0 +1,39 @@
'use strict';
const test = require('supertape');
const eventStore = require('./event-store');
test('event-store: get', (t) => {
const el = {};
const name = 'click';
const fn = () => {};
eventStore.add(el, name, fn);
const result = eventStore.get();
const expected = [
[
el,
name,
fn,
],
];
t.deepEqual(result, expected);
t.end();
});
test('event-store: clear', (t) => {
const el = {};
const name = 'click';
const fn = () => {};
eventStore.add(el, name, fn);
eventStore.clear();
const result = eventStore.get();
const expected = [];
t.deepEqual(result, expected);
t.end();
});

203
client/dom/events/index.mjs Normal file
View file

@ -0,0 +1,203 @@
import itype from 'itype';
import EventStore from './event-store.js';
/**
* safe add event listener
*
* @param type
* @param element - document by default
* @param listener
*/
export const add = (type, element, listener) => {
checkType(type);
parseArgs(type, element, listener, (element, args) => {
const [name, fn, options] = args;
element.addEventListener(name, fn, options);
EventStore.add(element, name, fn);
});
return Events;
};
/**
* safe add event listener
*
* @param type
* @param listener
* @param element - document by default
*/
export const addOnce = (type, element, listener) => {
const once = (event) => {
Events.remove(type, element, once);
listener(event);
};
if (!listener) {
listener = element;
element = null;
}
add(type, element, once);
return Events;
};
/**
* safe remove event listener
*
* @param type
* @param listener
* @param element - document by default
*/
export const remove = (type, element, listener) => {
checkType(type);
parseArgs(type, element, listener, (element, args) => {
element.removeEventListener(...args);
});
return Events;
};
/**
* remove all added event listeners
*/
export const removeAll = () => {
const events = EventStore.get();
for (const [el, name, fn] of events)
el.removeEventListener(name, fn);
EventStore.clear();
};
/**
* safe add event keydown listener
*
* @param args
*/
export const addKey = function(...args) {
return add('keydown', ...args);
};
/**
* safe remove event click listener
*
* @param args
*/
export const rmKey = function(...args) {
return Events.remove('keydown', ...args);
};
/**
* safe add event click listener
*/
export const addClick = function(...args) {
return Events.add('click', ...args);
};
/**
* safe remove event click listener
*/
export const rmClick = function(...args) {
return remove('click', ...args);
};
export const addContextMenu = function(...args) {
return add('contextmenu', ...args);
};
/**
* safe add load listener
*/
export const addLoad = function(...args) {
return add('load', ...args);
};
function checkType(type) {
if (!type)
throw Error('type could not be empty!');
}
const getEventOptions = (eventName) => {
if (eventName !== 'touchstart')
return false;
return {
passive: true,
};
};
function parseArgs(eventName, element, listener, callback) {
let isFunc;
const args = [
eventName,
element,
listener,
callback,
];
const EVENT_NAME = 1;
const ELEMENT = 0;
const type = itype(eventName);
switch(type) {
default:
if (!type.endsWith('element'))
throw Error(`unknown eventName: ${type}`);
parseArgs(args[EVENT_NAME], args[ELEMENT], listener, callback);
break;
case 'string':
isFunc = itype.function(element);
if (isFunc) {
listener = element;
element = null;
}
if (!element)
element = window;
callback(element, [
eventName,
listener,
getEventOptions(eventName),
]);
break;
case 'array':
for (const name of eventName) {
parseArgs(name, element, listener, callback);
}
break;
case 'object':
for (const name of Object.keys(eventName)) {
const eventListener = eventName[name];
parseArgs(name, element, eventListener, callback);
}
break;
}
}
const Events = {
add,
addClick,
addContextMenu,
addKey,
addLoad,
addOnce,
remove,
removeAll,
rmClick,
rmKey,
};

139
client/dom/files.js Normal file
View file

@ -0,0 +1,139 @@
'use strict';
/* global CloudCmd */
const itype = require('itype');
const {promisify} = require('es6-promisify');
const load = require('./load');
const RESTful = require('./rest');
const Promises = {};
const FILES_JSON = 'config|modules';
const FILES_HTML = 'file|path|link|pathLink|media';
const FILES_HTML_ROOT = 'view/media-tmpl|config-tmpl|upload';
const DIR_HTML = '/tmpl/';
const DIR_HTML_FS = `${DIR_HTML}fs/`;
const DIR_JSON = '/json/';
const timeout = getTimeoutOnce(2000);
module.exports.get = getFile;
function getFile(name) {
const type = itype(name);
check(name);
if (type === 'string')
return getModule(name);
if (type === 'array')
return Promise.all(name.map(getFile));
}
function check(name) {
if (!name)
throw Error('name could not be empty!');
}
function getModule(name) {
const regExpHTML = RegExp(FILES_HTML + '|' + FILES_HTML_ROOT);
const regExpJSON = RegExp(FILES_JSON);
const isHTML = regExpHTML.test(name);
const isJSON = regExpJSON.test(name);
if (!isHTML && !isJSON)
return showError(name);
if (name === 'config')
return getConfig();
const path = getPath(name, isHTML, isJSON);
return getSystemFile(path);
}
function getPath(name, isHTML, isJSON) {
let path;
const regExp = RegExp(FILES_HTML_ROOT);
const isRoot = regExp.test(name);
if (isHTML) {
if (isRoot)
path = DIR_HTML + name.replace('-tmpl', '');
else
path = DIR_HTML_FS + name;
path += '.hbs';
} else if (isJSON) {
path = DIR_JSON + name + '.json';
}
return path;
}
function showError(name) {
const str = `Wrong file name: ${name}`;
const error = Error(str);
throw error;
}
const getSystemFile = promisify((file, callback) => {
const {prefix} = CloudCmd;
if (!Promises[file])
Promises[file] = new Promise((success, error) => {
const url = prefix + file;
load.ajax({
url,
success,
error,
});
});
Promises[file].then((data) => {
callback(null, data);
}, (error) => {
Promises[file] = null;
callback(error);
});
});
const getConfig = async () => {
let is;
if (!Promises.config)
Promises.config = () => {
is = true;
return RESTful.Config.read();
};
const [, data] = await Promises.config();
if (data)
is = false;
timeout(() => {
if (!is)
Promises.config = null;
});
return data;
};
function getTimeoutOnce(time) {
let is;
return (callback) => {
if (is)
return;
is = true;
setTimeout(() => {
is = false;
callback();
}, time);
};
}

149
client/dom/images.mjs Normal file
View file

@ -0,0 +1,149 @@
/* global DOM */
import createElement from '@cloudcmd/create-element';
const LOADING = 'loading';
const HIDDEN = 'hidden';
const ERROR = 'error';
const getLoadingType = () => isSVG() ? '-svg' : '-gif';
export const get = getElement;
/**
* check SVG SMIL animation support
*/
function isSVG() {
const createNS = document.createElementNS;
const SVG_URL = 'http://www.w3.org/2000/svg';
if (!createNS)
return false;
const create = createNS.bind(document);
const svgNode = create(SVG_URL, 'animate');
const name = svgNode.toString();
return /SVGAnimate/.test(name);
}
function getElement() {
return createElement('span', {
id: 'js-status-image',
className: 'icon',
dataName: 'progress',
notAppend: true,
});
}
/* Функция создаёт картинку загрузки */
export const loading = () => {
const element = getElement();
const {classList} = element;
const loadingImage = LOADING + getLoadingType();
classList.add(LOADING, loadingImage);
classList.remove(ERROR, HIDDEN);
return element;
};
/* Функция создаёт картинку ошибки загрузки */
export const error = () => {
const element = getElement();
const {classList} = element;
const loadingImage = LOADING + getLoadingType();
classList.add(ERROR);
classList.remove(HIDDEN, LOADING, loadingImage);
return element;
};
show.load = show;
show.error = (text) => {
const image = Images.error();
DOM.show(image);
image.title = text;
return image;
};
/**
* Function shows loading spinner
* position = {top: true};
*/
export function show(position, panel) {
const image = Images.loading();
const parent = image.parentElement;
const refreshButton = DOM.getRefreshButton(panel);
let current;
if (position === 'top') {
current = refreshButton.parentElement;
} else {
current = DOM.getCurrentFile();
if (current)
current = DOM.getByDataName('js-name', current);
else
current = refreshButton.parentElement;
}
if (!parent || parent && parent !== current)
current.appendChild(image);
DOM.show(image);
return image;
}
/**
* hide load image
*/
export const hide = () => {
const element = Images.get();
DOM.hide(element);
return Images;
};
export const setProgress = (value, title) => {
const DATA = 'data-progress';
const element = Images.get();
if (!element)
return Images;
element.setAttribute(DATA, `${value}%`);
if (title)
element.title = title;
return Images;
};
export const clearProgress = () => {
const DATA = 'data-progress';
const element = Images.get();
if (!element)
return Images;
element.setAttribute(DATA, '');
element.title = '';
return Images;
};
const Images = {
clearProgress,
setProgress,
show,
hide,
get,
error,
loading,
};

840
client/dom/index.js Normal file
View file

@ -0,0 +1,840 @@
'use strict';
/* global CloudCmd */
const Util = require('../../common/util');
const Images = require('./images.mjs');
const RESTful = require('./rest');
const Storage = require('./storage');
const renameCurrent = require('./operations/rename-current');
const CurrentFile = require('./current-file.mjs');
const DOMTree = require('./dom-tree');
const Cmd = module.exports;
const DOM = {
...DOMTree,
...CurrentFile,
...Cmd,
};
const CurrentInfo = {};
DOM.Images = Images;
DOM.load = require('./load');
DOM.Files = require('./files');
DOM.RESTful = RESTful;
DOM.IO = require('./io');
DOM.Storage = Storage;
DOM.Dialog = require('./dialog');
DOM.CurrentInfo = CurrentInfo;
module.exports = DOM;
DOM.uploadDirectory = require('./directory');
DOM.Buffer = require('./buffer.mjs');
DOM.Events = require('#dom/events');
const loadRemote = require('./load-remote');
const selectByPattern = require('./select-by-pattern');
const isString = (a) => typeof a === 'string';
const SELECTED_FILE = 'selected-file';
const TabPanel = {
'js-left': null,
'js-right': null,
};
module.exports.loadRemote = (name, options, callback) => {
loadRemote(name, options, callback);
return DOM;
};
module.exports.loadSocket = (callback) => {
DOM.loadRemote('socket', {
name: 'io',
}, callback);
return DOM;
};
/**
* create new folder
*
*/
module.exports.promptNewDir = async function() {
await promptNew('directory');
};
/**
* create new file
*
* @typeName
* @type
*/
module.exports.promptNewFile = async () => {
await promptNew('file');
};
async function promptNew(typeName) {
const {Dialog} = DOM;
const dir = DOM.getCurrentDirPath();
const msg = `New ${typeName}` || 'File';
const getName = () => {
const name = DOM.getCurrentName();
if (name === '..')
return '';
return name;
};
const name = getName();
const [cancel, currentName] = await Dialog.prompt(msg, name);
if (cancel)
return;
const path = `${dir}${currentName}`;
if (typeName === 'directory')
await RESTful.createDirectory(path);
else
await RESTful.write(path);
await CloudCmd.refresh({
currentName,
});
}
/**
* get current direcotory name
*/
module.exports.getCurrentDirName = () => {
const href = DOM
.getCurrentDirPath()
.replace(/\/$/, '');
const substr = href.substr(href, href.lastIndexOf('/'));
return href.replace(`${substr}/`, '') || '/';
};
/**
* get current direcotory path
*/
module.exports.getParentDirPath = (panel) => {
const path = DOM.getCurrentDirPath(panel);
const dirName = DOM.getCurrentDirName() + '/';
const index = path.lastIndexOf(dirName);
if (path !== '/')
return path.slice(0, index);
return path;
};
/**
* get not current direcotory path
*/
module.exports.getNotCurrentDirPath = () => {
const panel = DOM.getPanel({
active: false,
});
return DOM.getCurrentDirPath(panel);
};
/**
* unified way to get selected files
*
* @currentFile
*/
module.exports.getSelectedFiles = () => {
const panel = DOM.getPanel();
const selected = DOM.getByClassAll(SELECTED_FILE, panel);
return Array.from(selected);
};
/*
* unselect all files
*/
module.exports.unselectFiles = (files) => {
files = files || DOM.getSelectedFiles();
Array
.from(files)
.forEach(DOM.toggleSelectedFile);
};
/**
* get all selected files or current when none selected
*
* @currentFile
*/
module.exports.getActiveFiles = () => {
const current = DOM.getCurrentFile();
const files = DOM.getSelectedFiles();
const name = DOM.getCurrentName(current);
if (!files.length && name !== '..')
return [current];
return files;
};
module.exports.getCurrentDate = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
return DOM.getByDataName('js-date', current).textContent;
};
/**
* get size
* @currentFile
*/
module.exports.getCurrentSize = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
/* если это папка - возвращаем слово dir вместо размера*/
const size = DOM
.getByDataName('js-size', current)
.textContent
.replace(/^<|>$/g, '');
return size;
};
/**
* get size
* @currentFile
*/
module.exports.loadCurrentSize = async (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const query = '?size';
const link = DOM.getCurrentPath(current);
Images.show.load();
if (name === '..')
return;
const [, size] = await RESTful.read(link + query);
DOM.setCurrentSize(size, current);
Images.hide();
return current;
};
/**
* load hash
* @callback
* @currentFile
*/
module.exports.loadCurrentHash = async (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const query = '?hash';
const link = DOM.getCurrentPath(current);
const [, data] = await RESTful.read(link + query);
return data;
};
/**
* set size
* @currentFile
*/
module.exports.setCurrentSize = (size, currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const sizeElement = DOM.getByDataName('js-size', current);
sizeElement.textContent = size;
};
/**
* @currentFile
*/
module.exports.getCurrentMode = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const mode = DOM.getByDataName('js-mode', current);
return mode.textContent;
};
/**
* @currentFile
*/
module.exports.getCurrentOwner = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const owner = DOM.getByDataName('js-owner', current);
return owner.textContent;
};
/**
* unified way to get current file content
*
* @param currentFile
*/
module.exports.getCurrentData = async (currentFile) => {
const {Dialog} = DOM;
const Info = DOM.CurrentInfo;
const current = currentFile || DOM.getCurrentFile();
const path = DOM.getCurrentPath(current);
const isDir = DOM.isCurrentIsDir(current);
if (Info.name === '..') {
Dialog.alert.noFiles();
return [
Error('No Files'),
];
}
if (isDir)
return await RESTful.read(path);
const [hashNew, hash] = await DOM.checkStorageHash(path);
if (!hashNew)
return [
Error(`Can't get hash of a file`),
];
if (hash === hashNew)
return [null, await Storage.get(`${path}-data`)];
const [e, data] = await RESTful.read(path);
if (e)
return [
e,
null,
];
const ONE_MEGABYTE = 1024 ** 2 * 1024;
const {length} = data;
if (hash && length < ONE_MEGABYTE)
await DOM.saveDataToStorage(path, data, hashNew);
return [null, data];
};
/**
* unified way to get RefreshButton
*/
module.exports.getRefreshButton = (panel = DOM.getPanel()) => {
return DOM.getByDataName('js-refresh', panel);
};
/**
* select current file
* @param currentFile
*/
module.exports.selectFile = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
current.classList.add(SELECTED_FILE);
return Cmd;
};
module.exports.unselectFile = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
current.classList.remove(SELECTED_FILE);
return Cmd;
};
module.exports.toggleSelectedFile = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const name = DOM.getCurrentName(current);
if (name === '..')
return Cmd;
current.classList.toggle(SELECTED_FILE);
return Cmd;
};
module.exports.toggleAllSelectedFiles = () => {
DOM
.getAllFiles()
.map(DOM.toggleSelectedFile);
return Cmd;
};
module.exports.selectAllFiles = () => {
DOM
.getAllFiles()
.map(DOM.selectFile);
return Cmd;
};
module.exports.getAllFiles = () => {
const panel = DOM.getPanel();
const files = DOM.getFiles(panel);
const name = DOM.getCurrentName(files[0]);
const from = (a) => a === '..' ? 1 : 0;
const i = from(name);
return Array
.from(files)
.slice(i);
};
/**
* open dialog with expand selection
*/
module.exports.expandSelection = () => {
const msg = 'expand';
const {files} = CurrentInfo;
selectByPattern(msg, files);
};
/**
* open dialog with shrink selection
*/
module.exports.shrinkSelection = () => {
const msg = 'shrink';
const {files} = CurrentInfo;
selectByPattern(msg, files);
};
/**
* setting history wrapper
*/
module.exports.setHistory = (data, title, url) => {
const ret = globalThis.history;
const {prefix} = CloudCmd;
url = prefix + url;
if (ret)
history.pushState(data, title, url);
return ret;
};
/**
* selected file check
*
* @param currentFile
*/
module.exports.isSelected = (selected) => {
if (!selected)
return false;
return DOM.isContainClass(selected, SELECTED_FILE);
};
/**
* get link from current (or param) file
*
* @param currentFile - current file by default
*/
module.exports.getCurrentLink = (currentFile) => {
const current = currentFile || DOM.getCurrentFile();
const link = DOM.getByTag('a', current);
return link[0];
};
module.exports.getFilenames = (files) => {
if (!files)
throw Error('AllFiles could not be empty');
const first = files[0] || DOM.getCurrentFile();
const name = DOM.getCurrentName(first);
const allFiles = Array.from(files);
if (name === '..')
allFiles.shift();
const names = allFiles.map((current) => {
return DOM.getCurrentName(current);
});
return names;
};
/**
* check storage hash
*/
module.exports.checkStorageHash = async (name) => {
const nameHash = `${name}-hash`;
if (!isString(name))
throw Error('name should be a string!');
const [loadHash, storeHash] = await Promise.all([
DOM.loadCurrentHash(),
Storage.get(nameHash),
]);
return [loadHash, storeHash];
};
/**
* save data to storage
*
* @param name
* @param data
* @param hash
* @param callback
*/
module.exports.saveDataToStorage = async (name, data, hash) => {
const isDir = DOM.isCurrentIsDir();
if (isDir)
return;
hash = hash || await DOM.loadCurrentHash();
const nameHash = `${name}-hash`;
const nameData = `${name}-data`;
await Storage.set(nameHash, hash);
await Storage.set(nameData, data);
return hash;
};
module.exports.getFM = () => DOM.getPanel().parentElement;
module.exports.getPanelPosition = (panel) => {
panel = panel || DOM.getPanel();
return panel.dataset.name.replace('js-', '');
};
module.exports.getCSSVar = (name, {body = document.body} = {}) => {
const bodyStyle = getComputedStyle(body);
return bodyStyle.getPropertyValue(`--${name}`);
};
/** function getting panel active, or passive
* @param options = {active: true}
*/
module.exports.getPanel = (options) => {
let files;
let panel;
let isLeft;
let dataName = 'js-';
const current = DOM.getCurrentFile();
if (!current) {
panel = DOM.getByDataName('js-left');
} else {
files = current.parentElement;
panel = files.parentElement;
isLeft = panel.getAttribute('data-name') === 'js-left';
}
/* if {active : false} getting passive panel */
if (options && !options.active) {
dataName += isLeft ? 'right' : 'left';
panel = DOM.getByDataName(dataName);
}
/* if two panels showed
* then always work with passive
* panel
*/
if (globalThis.innerWidth < CloudCmd.MIN_ONE_PANEL_WIDTH)
panel = DOM.getByDataName('js-left');
if (!panel)
throw Error('can not find Active Panel!');
return panel;
};
module.exports.getFiles = (element) => {
const files = DOM.getByDataName('js-files', element);
return files.children || [];
};
/**
* shows panel right or left (or active)
*/
module.exports.showPanel = (active) => {
const panel = DOM.getPanel({
active,
});
if (!panel)
return false;
DOM.show(panel);
return true;
};
/**
* hides panel right or left (or active)
*/
module.exports.hidePanel = (active) => {
const panel = DOM.getPanel({
active,
});
if (!panel)
return false;
return DOM.hide(panel);
};
/**
* remove child of element
* @param pChild
* @param element
*/
module.exports.remove = (child, element) => {
const parent = element || document.body;
parent.removeChild(child);
return DOM;
};
/**
* remove current file from file table
* @param current
*
*/
module.exports.deleteCurrent = (current) => {
if (!current)
DOM.getCurrentFile();
const parent = current?.parentElement;
const name = DOM.getCurrentName(current);
if (current && name !== '..') {
const next = current.nextSibling;
const prev = current.previousSibling;
DOM.setCurrentFile(next || prev);
parent.removeChild(current);
}
};
/**
* remove selected files from file table
* @Selected
*/
module.exports.deleteSelected = (selected) => {
selected = selected || DOM.getSelectedFiles();
if (!selected)
return;
selected.map(DOM.deleteCurrent);
};
/**
* rename current file
*
* @currentFile
*/
module.exports.renameCurrent = renameCurrent;
/**
* unified way to scrollIntoViewIfNeeded
* (native suporte by webkit only)
* @param element
* @param center - to scroll as small as possible param should be false
*/
module.exports.scrollIntoViewIfNeeded = (element, center = false) => {
if (!element || !element.scrollIntoViewIfNeeded)
return;
element.scrollIntoViewIfNeeded(center);
};
/* scroll on one page */
module.exports.scrollByPages = (element, pPages) => {
const ret = element?.scrollByPages && pPages;
if (ret)
element.scrollByPages(pPages);
return ret;
};
module.exports.changePanel = () => {
const Info = CurrentInfo;
let panel = DOM.getPanel();
CloudCmd.emit('passive-dir', Info.dirPath);
const panelPassive = DOM.getPanel({
active: false,
});
let name = DOM.getCurrentName();
const filesPassive = DOM.getFiles(panelPassive);
let dataName = panel.getAttribute('data-name');
TabPanel[dataName] = name;
panel = panelPassive;
dataName = panel.getAttribute('data-name');
name = TabPanel[dataName];
let files;
let current;
if (name) {
current = DOM.getCurrentByName(name, panel);
if (current)
files = current.parentElement;
}
if (!files || !files.parentElement) {
current = DOM.getCurrentByName(name, panel);
if (!current)
[current] = filesPassive;
}
DOM.setCurrentFile(current, {
history: true,
});
CloudCmd.emit('active-dir', Info.dirPath);
return DOM;
};
module.exports.getPackerExt = (type) => {
if (type === 'zip')
return '.zip';
return '.tar.gz';
};
module.exports.goToDirectory = async (overrides = {}) => {
const {Dialog} = DOM;
const {prompt = Dialog.prompt, changeDir = CloudCmd.changeDir} = overrides;
const msg = 'Go to directory:';
const {dirPath} = CurrentInfo;
const [cancel, path = dirPath] = await prompt(msg, dirPath);
if (cancel)
return;
await changeDir(path);
};
module.exports.duplicatePanel = async () => {
const Info = CurrentInfo;
const {isDir} = Info;
const panel = Info.panelPassive;
const noCurrent = !Info.isOnePanel;
const getPath = (isDir) => {
if (isDir)
return Info.path;
return Info.dirPath;
};
const path = getPath(isDir);
await CloudCmd.changeDir(path, {
panel,
noCurrent,
});
};
module.exports.swapPanels = async () => {
const Info = CurrentInfo;
const {
panel,
files,
element,
panelPassive,
} = Info;
const path = DOM.getCurrentDirPath();
const dirPathPassive = DOM.getNotCurrentDirPath();
let currentIndex = files.indexOf(element);
await CloudCmd.changeDir(path, {
panel: panelPassive,
noCurrent: true,
});
await CloudCmd.changeDir(dirPathPassive, {
panel,
});
const length = Info.files.length - 1;
if (currentIndex > length)
currentIndex = length;
const el = Info.files[currentIndex];
DOM.setCurrentFile(el);
};
module.exports.CurrentInfo = CurrentInfo;
module.exports.updateCurrentInfo = (currentFile) => {
const info = DOM.CurrentInfo;
const current = currentFile || DOM.getCurrentFile();
const files = current.parentElement;
const panelPassive = DOM.getPanel({
active: false,
});
const filesPassive = DOM.getFiles(panelPassive);
const name = DOM.getCurrentName(current);
info.dir = DOM.getCurrentDirName();
info.dirPath = DOM.getCurrentDirPath();
info.parentDirPath = DOM.getParentDirPath();
info.element = current;
info.ext = Util.getExt(name);
info.files = Array.from(files.children);
info.filesPassive = Array.from(filesPassive);
info.first = files.firstChild;
info.getData = DOM.getCurrentData;
info.last = files.lastChild;
info.link = DOM.getCurrentLink(current);
info.mode = DOM.getCurrentMode(current);
info.name = name;
info.path = DOM.getCurrentPath(current);
info.panel = files.parentElement || DOM.getPanel();
info.panelPassive = panelPassive;
info.size = DOM.getCurrentSize(current);
info.isDir = DOM.isCurrentIsDir();
info.isSelected = DOM.isSelected(current);
info.panelPosition = DOM
.getPanel()
.dataset
.name
.replace('js-', '');
info.isOnePanel = info.panel.getAttribute('data-name') === info.panelPassive.getAttribute('data-name');
};

56
client/dom/index.spec.js Normal file
View file

@ -0,0 +1,56 @@
'use strict';
require('css-modules-require-hook/preset');
const {test, stub} = require('supertape');
const {getCSSVar, goToDirectory} = require('./index');
globalThis.CloudCmd = {};
test('cloudcmd: client: dom: goToDirectory', async (t) => {
const path = '';
const changeDir = stub();
const prompt = stub().returns([null, path]);
await goToDirectory({
prompt,
changeDir,
});
t.calledWith(changeDir, [path]);
t.end();
});
test('cloudcmd: client: dom: getCSSVar', (t) => {
const body = {};
const getPropertyValue = stub().returns(0);
globalThis.getComputedStyle = stub().returns({
getPropertyValue,
});
const result = getCSSVar('hello', {
body,
});
delete globalThis.getComputedStyle;
t.notOk(result);
t.end();
});
test('cloudcmd: client: dom: getCSSVar: 1', (t) => {
const body = {};
const getPropertyValue = stub().returns(1);
globalThis.getComputedStyle = stub().returns({
getPropertyValue,
});
const result = getCSSVar('hello', {
body,
});
delete globalThis.getComputedStyle;
t.ok(result);
t.end();
});

155
client/dom/io/index.js Normal file
View file

@ -0,0 +1,155 @@
'use strict';
const {FS} = require('../../../common/cloudfunc.mjs');
const _sendRequest = require('./send-request');
const imgPosition = {
top: true,
};
module.exports.delete = async (url, data) => {
return await _sendRequest({
method: 'DELETE',
url: FS + url,
data,
imgPosition: {
top: Boolean(data),
},
});
};
module.exports.patch = async (url, data) => {
return await _sendRequest({
method: 'PATCH',
url: FS + url,
data,
imgPosition,
});
};
module.exports.write = async (url, data) => {
return await _sendRequest({
method: 'PUT',
url: FS + url,
data,
imgPosition,
});
};
module.exports.createDirectory = async (url, overrides = {}) => {
const {
sendRequest = _sendRequest,
} = overrides;
return await sendRequest({
method: 'PUT',
url: `${FS}${url}?dir`,
imgPosition,
});
};
module.exports.read = async (url, dataType = 'text') => {
const notLog = !url.includes('?');
return await _sendRequest({
method: 'GET',
url: FS + url,
notLog,
dataType,
});
};
module.exports.copy = async (from, to, names) => {
return await _sendRequest({
method: 'PUT',
url: '/copy',
data: {
from,
to,
names,
},
imgPosition,
});
};
module.exports.pack = async (data) => {
return await _sendRequest({
method: 'PUT',
url: '/pack',
data,
});
};
module.exports.extract = async (data) => {
return await _sendRequest({
method: 'PUT',
url: '/extract',
data,
});
};
module.exports.move = async (from, to, names) => {
return await _sendRequest({
method: 'PUT',
url: '/move',
data: {
from,
to,
names,
},
imgPosition,
});
};
module.exports.rename = async (from, to) => {
return await _sendRequest({
method: 'PUT',
url: '/rename',
data: {
from,
to,
},
imgPosition,
});
};
module.exports.Config = {
read: async () => {
return await _sendRequest({
method: 'GET',
url: '/config',
imgPosition,
notLog: true,
});
},
write: async (data) => {
return await _sendRequest({
method: 'PATCH',
url: '/config',
data,
imgPosition,
});
},
};
module.exports.Markdown = {
read: async (url) => {
return await _sendRequest({
method: 'GET',
url: `/markdown${url}`,
imgPosition,
notLog: true,
});
},
render: async (data) => {
return await _sendRequest({
method: 'PUT',
url: '/markdown',
data,
imgPosition,
notLog: true,
});
},
};

View file

@ -0,0 +1,23 @@
'use strict';
const {test, stub} = require('supertape');
const io = require('.');
test('client: dom: io', (t) => {
const sendRequest = stub();
io.createDirectory('/hello', {
sendRequest,
});
const expected = {
imgPosition: {
top: true,
},
method: 'PUT',
url: '/fs/hello?dir',
};
t.calledWith(sendRequest, [expected]);
t.end();
});

View file

@ -0,0 +1,50 @@
'use strict';
/* global CloudCmd */
const {promisify} = require('es6-promisify');
const Images = require('../images.mjs');
const load = require('../load');
module.exports = promisify((params, callback) => {
const p = params;
const {prefixURL} = CloudCmd;
p.url = prefixURL + p.url;
p.url = encodeURI(p.url);
p.url = replaceHash(p.url);
load.ajax({
method: p.method,
url: p.url,
data: p.data,
dataType: p.dataType,
error: (jqXHR) => {
const response = jqXHR.responseText;
const {statusText, status} = jqXHR;
const text = status === 404 ? response : statusText;
callback(Error(text));
},
success: (data) => {
Images.hide();
if (!p.notLog)
CloudCmd.log(data);
callback(null, data);
},
});
});
module.exports._replaceHash = replaceHash;
function replaceHash(url) {
/*
* if we send ajax request -
* no need in hash so we escape #
*/
return url.replace(/#/g, '%23');
}

View file

@ -0,0 +1,13 @@
'use strict';
const test = require('supertape');
const {_replaceHash} = require('./send-request');
test('cloudcmd: client: io: replaceHash', (t) => {
const url = '/hello/####world';
const result = _replaceHash(url);
const expected = '/hello/%23%23%23%23world';
t.equal(result, expected);
t.end();
});

56
client/dom/load-remote.js Normal file
View file

@ -0,0 +1,56 @@
'use strict';
/* global CloudCmd */
const rendy = require('rendy');
const itype = require('itype');
const load = require('load.js');
const {tryToCatch} = require('try-to-catch');
const {findObjByNameInArr} = require('../../common/util');
const Files = require('./files');
module.exports = (name, options, callback = options) => {
const {prefix, config} = CloudCmd;
const o = options;
if (o.name && window[o.name])
return callback();
Files.get('modules').then(async (modules) => {
const online = config('online') && navigator.onLine;
const module = findObjByNameInArr(modules.remote, name);
const isArray = itype.array(module.local);
const {version} = module;
let remoteTmpls;
let local;
if (isArray) {
remoteTmpls = module.remote;
({local} = module);
} else {
remoteTmpls = [module.remote];
local = [module.local];
}
const localURL = local.map((url) => prefix + url);
const remoteURL = remoteTmpls.map((tmpl) => {
return rendy(tmpl, {
version,
});
});
if (online) {
const [e] = await tryToCatch(load.parallel, remoteURL);
if (!e)
return callback();
}
const [e] = await tryToCatch(load.parallel, localURL);
callback(e);
});
};

134
client/dom/load.js Normal file
View file

@ -0,0 +1,134 @@
'use strict';
const itype = require('itype');
const jonny = require('jonny');
const Emitify = require('emitify');
const exec = require('execon');
const Images = require('./images.mjs');
module.exports.getIdBySrc = getIdBySrc;
/**
* Function gets id by src
* @param src
*
* Example: http://domain.com/1.js -> 1_js
*/
function getIdBySrc(src) {
const isStr = itype.string(src);
if (!isStr)
return;
if (src.includes(':'))
src += '-join';
const num = src.lastIndexOf('/') + 1;
const sub = src.substr(src, num);
const id = src
.replace(sub, '')
.replace(/\./g, '-');
return id;
}
/**
* load file countent via ajax
*
* @param params
*/
module.exports.ajax = (params) => {
const p = params;
const isObject = itype.object(p.data);
const isArray = itype.array(p.data);
const isArrayBuf = itype(p.data) === 'arraybuffer';
const type = p.type || p.method || 'GET';
const {headers = {}} = p;
const xhr = new XMLHttpRequest();
xhr.open(type, p.url, true);
for (const name of Object.keys(headers)) {
const value = headers[name];
xhr.setRequestHeader(name, value);
}
if (p.responseType)
xhr.responseType = p.responseType;
let data;
if (!isArrayBuf && isObject || isArray)
data = jonny.stringify(p.data);
else
({data} = p);
xhr.onreadystatechange = (event) => {
const xhr = event.target;
const OK = 200;
if (xhr.readyState !== xhr.DONE)
return;
Images.clearProgress();
const TYPE_JSON = 'application/json';
const type = xhr.getResponseHeader('content-type');
if (xhr.status !== OK)
return exec(p.error, xhr);
const notText = p.dataType !== 'text';
const isContain = type.includes(TYPE_JSON);
let data = xhr.response;
if (type && isContain && notText)
data = jonny.parse(xhr.response) || xhr.response;
exec(p.success, data, xhr.statusText, xhr);
};
xhr.send(data);
};
module.exports.put = (url, body) => {
const emitter = Emitify();
const xhr = new XMLHttpRequest();
url = encodeURI(url).replace(/#/g, '%23');
xhr.open('put', url, true);
xhr.upload.onprogress = (event) => {
if (!event.lengthComputable)
return;
const percent = event.loaded / event.total * 100;
const count = Math.round(percent);
emitter.emit('progress', count);
};
xhr.onreadystatechange = () => {
const over = xhr.readyState === xhr.DONE;
const OK = 200;
if (!over)
return;
if (xhr.status === OK) {
emitter.emit('progress', 100);
return emitter.emit('end');
}
const error = Error(xhr.responseText);
emitter.emit('error', error);
};
xhr.send(body);
return emitter;
};

View file

@ -0,0 +1,70 @@
'use strict';
/* global CloudCmd */
const capitalize = require('just-capitalize');
const _Dialog = require('../dialog');
const Storage = require('../storage');
const RESTful = require('../rest');
const _currentFile = require('../current-file.mjs');
module.exports = async (current, overrides = {}) => {
const {
refresh = CloudCmd.refresh,
Dialog = _Dialog,
currentFile = _currentFile,
} = overrides;
const {
isCurrentFile,
getCurrentName,
getCurrentFile,
getCurrentByName,
getCurrentType,
getCurrentDirPath,
setCurrentName,
} = currentFile;
if (!isCurrentFile(current))
current = getCurrentFile();
const from = getCurrentName(current);
if (from === '..')
return Dialog.alert.noFiles();
const [cancel, to] = await Dialog.prompt('Rename', from);
if (cancel)
return;
const nextFile = getCurrentByName(to);
if (nextFile) {
const type = getCurrentType(nextFile);
const msg = `${capitalize(type)} "${to}" already exists. Proceed?`;
const [cancel] = await Dialog.confirm(msg);
if (cancel)
return;
}
if (from === to)
return;
const dirPath = getCurrentDirPath();
const fromFull = `${dirPath}${from}`;
const toFull = `${dirPath}${to}`;
const [e] = await RESTful.rename(fromFull, toFull);
if (e)
return;
setCurrentName(to, current);
Storage.remove(dirPath);
refresh();
};

View file

@ -0,0 +1,89 @@
'use strict';
const {test, stub} = require('supertape');
const renameCurrent = require('./rename-current');
test('cloudcmd: client: dom: renameCurrent: isCurrentFile', async (t) => {
const current = {};
const isCurrentFile = stub();
const currentFile = stubCurrentFile({
isCurrentFile,
});
await renameCurrent(current, {
Dialog: stubDialog(),
currentFile,
});
t.calledWith(isCurrentFile, [current], 'should call isCurrentFile');
t.end();
});
test('cloudcmd: client: dom: renameCurrent: file exist', async (t) => {
const current = {};
const name = 'hello';
const prompt = stub().returns([null, name]);
const confirm = stub().returns([true]);
const getCurrentByName = stub().returns(current);
const getCurrentType = stub().returns('directory');
const Dialog = stubDialog({
confirm,
prompt,
});
const currentFile = stubCurrentFile({
getCurrentByName,
getCurrentType,
});
await renameCurrent(null, {
Dialog,
currentFile,
});
const expected = 'Directory "hello" already exists. Proceed?';
t.calledWith(confirm, [expected], 'should call confirm');
t.end();
});
const stubDialog = (fns = {}) => {
const {
alert = stub().returns([]),
confirm = stub().returns([]),
prompt = stub().returns([]),
} = fns;
return {
alert,
confirm,
prompt,
};
};
const stubCurrentFile = (fns = {}) => {
const {
isCurrentFile = stub(),
getCurrentName = stub(),
getCurrentFile = stub(),
getCurrentByName = stub(),
getCurrentType = stub(),
getCurrentDirPath = stub(),
setCurrentName = stub(),
} = fns;
return {
isCurrentFile,
getCurrentName,
getCurrentFile,
getCurrentByName,
getCurrentType,
getCurrentDirPath,
setCurrentName,
};
};

44
client/dom/rest.js Normal file
View file

@ -0,0 +1,44 @@
'use strict';
const {tryToCatch} = require('try-to-catch');
const {encode} = require('../../common/entity');
const Images = require('./images.mjs');
const IO = require('./io');
const Dialog = require('./dialog');
const handleError = (promise) => async (...args) => {
const [e, data] = await tryToCatch(promise, ...args);
if (!e)
return [e, data];
const encoded = encode(e.message);
Images.show.error(encoded);
Dialog.alert(encoded);
return [e, data];
};
module.exports.delete = handleError(IO.delete);
module.exports.patch = handleError(IO.patch);
module.exports.write = handleError(IO.write);
module.exports.createDirectory = handleError(IO.createDirectory);
module.exports.read = handleError(IO.read);
module.exports.copy = handleError(IO.copy);
module.exports.pack = handleError(IO.pack);
module.exports.extract = handleError(IO.extract);
module.exports.move = handleError(IO.move);
module.exports.rename = handleError(IO.rename);
module.exports.Config = {
read: handleError(IO.Config.read),
write: handleError(IO.Config.write),
};
module.exports.Markdown = {
read: handleError(IO.Markdown.read),
render: handleError(IO.Markdown.render),
};

View file

@ -0,0 +1,45 @@
'use strict';
let SelectType = '*.*';
const {getRegExp} = require('../../common/util');
const {alert, prompt} = require('./dialog');
const DOM = require('.');
module.exports = async (msg, files) => {
if (!files)
return;
const allMsg = `Specify file type for ${msg} selection`;
const [cancel, type] = await prompt(allMsg, SelectType);
if (cancel)
return;
SelectType = type;
const regExp = getRegExp(type);
let matches = 0;
for (const current of files) {
const name = DOM.getCurrentName(current);
if (name === '..' || !regExp.test(name))
continue;
++matches;
let isSelected = DOM.isSelected(current);
const shouldSel = msg === 'expand';
if (shouldSel)
isSelected = !isSelected;
if (isSelected)
DOM.toggleSelectedFile(current);
}
if (!matches)
alert('No matches found!');
};

28
client/dom/storage.js Normal file
View file

@ -0,0 +1,28 @@
'use strict';
const {parse, stringify} = JSON;
module.exports.set = async (name, data) => {
localStorage.setItem(name, data);
};
module.exports.setJson = async (name, data) => {
localStorage.setItem(name, stringify(data));
};
module.exports.get = async (name) => {
return localStorage.getItem(name);
};
module.exports.getJson = async (name) => {
const data = localStorage.getItem(name);
return parse(data);
};
module.exports.clear = () => {
localStorage.clear();
};
module.exports.remove = (item) => {
localStorage.removeItem(item);
};

108
client/dom/storage.spec.js Normal file
View file

@ -0,0 +1,108 @@
'use strict';
const {test, stub} = require('supertape');
const storage = require('./storage');
const {stringify} = JSON;
test('cloudcmd: client: storage: set', async (t) => {
const {localStorage} = globalThis;
const setItem = stub();
globalThis.localStorage = {
setItem,
};
await storage.set('hello', 'world');
globalThis.localStorage = localStorage;
t.calledWith(setItem, ['hello', 'world'], 'should call setItem');
t.end();
});
test('cloudcmd: client: storage: get', async (t) => {
const {localStorage} = globalThis;
const getItem = stub().returns('world');
globalThis.localStorage = {
getItem,
};
const result = await storage.get('hello');
globalThis.localStorage = localStorage;
t.equal(result, 'world');
t.end();
});
test('cloudcmd: client: storage: getJson', async (t) => {
const {localStorage} = globalThis;
const expected = {
hello: 'world',
};
const getItem = stub().returns(stringify(expected));
globalThis.localStorage = {
getItem,
};
const result = await storage.getJson('hello');
globalThis.localStorage = localStorage;
t.deepEqual(result, expected);
t.end();
});
test('cloudcmd: client: storage: setJson', async (t) => {
const {localStorage} = globalThis;
const data = {
hello: 'world',
};
const expected = stringify(data);
const setItem = stub();
globalThis.localStorage = {
setItem,
};
await storage.setJson('hello', data);
globalThis.localStorage = localStorage;
t.calledWith(setItem, ['hello', expected]);
t.end();
});
test('cloudcmd: client: storage: remove', async (t) => {
const {localStorage} = globalThis;
const removeItem = stub();
globalThis.localStorage = {
removeItem,
};
await storage.remove('hello');
globalThis.localStorage = localStorage;
t.calledWith(removeItem, ['hello'], 'should call removeItem');
t.end();
});
test('cloudcmd: client: storage: clear', async (t) => {
const {localStorage} = globalThis;
const clear = stub();
globalThis.localStorage = {
clear,
};
await storage.clear();
globalThis.localStorage = localStorage;
t.calledWithNoArgs(clear, 'should call clear');
t.end();
});

View file

@ -0,0 +1,72 @@
'use strict';
/* global CloudCmd */
const {eachSeries} = require('execon');
const wraptile = require('wraptile');
const load = require('./load');
const Images = require('./images.mjs');
const {alert} = require('./dialog');
const {FS} = require('../../common/cloudfunc.mjs');
const {getCurrentDirPath: getPathWhenRootEmpty} = require('.');
const loadFile = wraptile(_loadFile);
const onEnd = wraptile(_onEnd);
module.exports = (dir, files) => {
if (!files) {
files = dir;
dir = getPathWhenRootEmpty();
}
const n = files.length;
if (!n)
return;
const array = Array.from(files);
const {name} = files[0];
eachSeries(array, loadFile(dir, n), onEnd(name));
};
function _onEnd(currentName) {
CloudCmd.refresh({
currentName,
});
}
function _loadFile(dir, n, file, callback) {
let i = 0;
const {name} = file;
const path = dir + name;
const {prefixURL} = CloudCmd;
const api = prefixURL + FS;
const percent = (i, n, per = 100) => {
return Math.round(i * per / n);
};
const step = (n) => 100 / n;
++i;
load
.put(api + path, file)
.on('error', showError)
.on('end', callback)
.on('progress', (count) => {
const max = step(n);
const value = (i - 1) * max + percent(count, 100, max);
Images.show.load('top');
Images.setProgress(Math.round(value));
});
}
function showError({message}) {
alert(message);
}

View file

@ -0,0 +1,44 @@
/* global DOM */
/**
* Функция генерирует JSON из html-таблицы файлов и
* используеться при первом заходе в корень
*/
export const getJsonFromFileTable = () => {
const Info = DOM.CurrentInfo;
const path = DOM.getCurrentDirPath();
const infoFiles = Info.files || [];
const files = infoFiles
.filter(notParent)
.map(parse);
const fileTable = {
path,
files,
};
return fileTable;
};
const notParent = (current) => {
const name = DOM.getCurrentName(current);
return name !== '..';
};
const parse = (current) => {
const name = DOM.getCurrentName(current);
const size = DOM.getCurrentSize(current);
const owner = DOM.getCurrentOwner(current);
const mode = DOM.getCurrentMode(current);
const date = DOM.getCurrentDate(current);
const type = DOM.getCurrentType(current);
return {
name,
size,
mode,
owner,
date,
type,
};
};

17
client/key/binder.js Normal file
View file

@ -0,0 +1,17 @@
'use strict';
module.exports.createBinder = () => {
let binded = false;
return {
isBind() {
return binded;
},
setBind() {
binded = true;
},
unsetBind() {
binded = false;
},
};
};

536
client/key/index.mjs Normal file
View file

@ -0,0 +1,536 @@
/* global CloudCmd, DOM */
import clipboard from '@cloudcmd/clipboard';
import {fullstore} from 'fullstore';
import * as Events from '#dom/events';
import * as Buffer from '../dom/buffer.mjs';
import KEY from './key.js';
import _vim from './vim/index.js';
import setCurrentByChar from './set-current-by-char.js';
import {createBinder} from './binder.js';
const Chars = fullstore();
const toggleVim = (keyCode, overrides = {}) => {
const {_config, config} = overrides;
if (keyCode === KEY.ESC)
_config('vim', !config('vim'));
};
const isUndefined = (a) => typeof a === 'undefined';
Chars([]);
const {assign} = Object;
const binder = createBinder();
const bind = () => {
Events.addKey(listener, true);
binder.setBind();
};
export const Key = assign(binder, KEY, {
bind,
});
export const _listener = listener;
function getChar(event) {
/*
* event.keyIdentifier deprecated in chrome v51
* but event.key is absent in chrome <= v51
*/
const {
key,
shift,
keyCode,
keyIdentifier,
} = event;
const char = key || fromCharCode(keyIdentifier);
const symbol = getSymbol(shift, keyCode);
return [symbol, char];
}
async function listener(event, overrides = {}) {
const {
config = CloudCmd.config,
_config = CloudCmd._config,
switchKey = _switchKey,
vim = _vim,
} = overrides;
const {keyCode} = event;
// strange chrome bug calles listener twice
// in second time event misses a lot fields
if (isUndefined(event.altKey))
return;
const alt = event.altKey;
const ctrl = event.ctrlKey;
const meta = event.metaKey;
const isBetween = keyCode >= KEY.ZERO && keyCode <= KEY.Z;
const isNumpad = /Numpad/.test(event.code);
const [symbol, char] = getChar(event);
if (!binder.isBind())
return;
toggleVim(keyCode, {
config,
_config,
});
const isVim = config('vim');
if (!isVim && !isNumpad && !alt && !ctrl && !meta && (isBetween || symbol))
return setCurrentByChar(char, Chars);
Chars([]);
await switchKey(event);
if (keyCode >= KEY.F1 && keyCode <= KEY.F10)
return;
if (isVim)
vim(char, event);
}
function getSymbol(shift, keyCode) {
switch(keyCode) {
case KEY.DOT:
return '.';
case KEY.HYPHEN:
return shift ? '_' : '-';
case KEY.EQUAL:
return shift ? '+' : '=';
}
return '';
}
function fromCharCode(keyIdentifier) {
const code = keyIdentifier.substring(2);
const hex = parseInt(code, 16);
return String.fromCharCode(hex);
}
async function _switchKey(event) {
const Info = DOM.CurrentInfo;
let i;
let isSelected;
let prev;
let next;
let current = Info.element;
let dataName;
const {
name,
panel,
path,
isDir,
} = Info;
const {
Operation,
changeDir,
config,
} = CloudCmd;
const {keyCode} = event;
const alt = event.altKey;
const shift = event.shiftKey;
const ctrl = event.ctrlKey;
const meta = event.metaKey;
const ctrlMeta = ctrl || meta;
if (current) {
prev = current.previousSibling;
next = current.nextSibling;
}
switch(keyCode) {
case KEY.TAB:
DOM.changePanel();
event.preventDefault();
break;
case KEY.INSERT:
DOM
.toggleSelectedFile(current)
.setCurrentFile(next);
break;
case KEY.INSERT_MAC:
DOM
.toggleSelectedFile(current)
.setCurrentFile(next);
break;
case KEY.DELETE:
if (shift)
Operation.show('delete:silent');
else
Operation.show('delete');
break;
case KEY.ASTERISK:
DOM.toggleAllSelectedFiles(current);
break;
case KEY.PLUS:
DOM.expandSelection();
event.preventDefault();
break;
case KEY.MINUS:
DOM.shrinkSelection();
event.preventDefault();
break;
case KEY.F1:
CloudCmd.Help.show();
event.preventDefault();
break;
case KEY.F2:
CloudCmd.UserMenu.show();
break;
case KEY.F3:
event.preventDefault();
if (Info.isDir)
await changeDir(path);
else if (shift)
CloudCmd.View.show(null, {
raw: true,
});
else if (ctrlMeta)
CloudCmd.sortPanel('name');
else
CloudCmd.View.show();
break;
case KEY.F4:
if (config('vim'))
CloudCmd.EditFileVim.show();
else
CloudCmd.EditFile.show();
event.preventDefault();
break;
case KEY.F5:
if (ctrlMeta)
CloudCmd.sortPanel('date');
else if (alt)
Operation.show('pack');
else
Operation.show('copy');
event.preventDefault();
break;
case KEY.F6:
if (ctrlMeta)
CloudCmd.sortPanel('size');
else if (shift)
DOM.renameCurrent(current);
else
Operation.show('move');
event.preventDefault();
break;
case KEY.F7:
if (shift)
DOM.promptNewFile();
else
DOM.promptNewDir();
event.preventDefault();
break;
case KEY.F8:
Operation.show('delete');
event.preventDefault();
break;
case KEY.F9:
if (alt)
Operation.show('extract');
else
CloudCmd.Menu.show();
event.preventDefault();
break;
case KEY.F10:
CloudCmd.Config.show();
event.preventDefault();
break;
case KEY.TRA:
event.preventDefault();
if (shift)
return CloudCmd.Terminal.show();
CloudCmd.Konsole.show();
break;
case KEY.BRACKET_CLOSE:
CloudCmd.Konsole.show();
event.preventDefault();
break;
case KEY.SPACE:
event.preventDefault();
if (!isDir || name === '..')
isSelected = true;
else
isSelected = DOM.isSelected(current);
if (!isSelected)
await DOM.loadCurrentSize(current);
DOM.toggleSelectedFile(current);
break;
case KEY.U:
if (ctrlMeta) {
DOM.swapPanels();
event.preventDefault();
}
break;
/* navigation on file table: *
* in case of pressing button 'up', *
* select previous row */
case KEY.UP:
if (shift)
DOM.toggleSelectedFile(current);
DOM.setCurrentFile(prev);
event.preventDefault();
break;
/* in case of pressing button 'down', *
* select next row */
case KEY.DOWN:
if (shift)
DOM.toggleSelectedFile(current);
DOM.setCurrentFile(next);
event.preventDefault();
break;
case KEY.LEFT:
if (!alt)
return;
event.preventDefault();
dataName = Info.panel.getAttribute('data-name');
if (dataName === 'js-right')
DOM.duplicatePanel();
break;
case KEY.RIGHT:
if (!alt)
return;
event.preventDefault();
dataName = Info.panel.getAttribute('data-name');
if (dataName === 'js-left')
DOM.duplicatePanel();
break;
/* in case of pressing button 'Home', *
* go to top element */
case KEY.HOME:
DOM.setCurrentFile(Info.first);
event.preventDefault();
break;
/* in case of pressing button 'End', select last element */
case KEY.END:
DOM.setCurrentFile(Info.last);
event.preventDefault();
break;
/* если нажали клавишу page down проматываем экран */
case KEY.PAGE_DOWN:
DOM.scrollByPages(panel, 1);
for (i = 0; i < 30; i++) {
if (!current.nextSibling)
break;
current = current.nextSibling;
}
DOM.setCurrentFile(current);
event.preventDefault();
break;
/* если нажали клавишу page up проматываем экран */
case KEY.PAGE_UP:
DOM.scrollByPages(panel, -1);
for (i = 0; i < 30; i++) {
if (!current.previousSibling)
break;
current = current.previousSibling;
}
DOM.setCurrentFile(current);
event.preventDefault();
break;
case KEY.ENTER:
if (Info.isDir)
await changeDir(path);
else
CloudCmd.View.show();
break;
case KEY.BACKSPACE:
CloudCmd.goToParentDir();
event.preventDefault();
break;
case KEY.BACKSLASH:
if (ctrlMeta)
await changeDir('/');
break;
case KEY.A:
if (ctrlMeta) {
DOM.selectAllFiles();
event.preventDefault();
}
break;
case KEY.G:
if (alt) {
DOM.goToDirectory();
event.preventDefault();
}
break;
case KEY.M:
if (ctrlMeta) {
if (config('vim'))
CloudCmd.EditNamesVim.show();
else
CloudCmd.EditNames.show();
event.preventDefault();
}
break;
case KEY.P:
if (!ctrlMeta)
return;
event.preventDefault();
clipboard
.writeText(Info.dirPath)
.catch(CloudCmd.log);
break;
/**
* обновляем страницу,
* загружаем содержимое каталога
* при этом данные берём всегда с
* сервера, а не из кэша
* (обновляем кэш)
*/
case KEY.R:
if (ctrlMeta) {
CloudCmd.log('reloading page...\n');
CloudCmd.refresh();
event.preventDefault();
}
break;
case KEY.C:
if (ctrlMeta)
Buffer.copy();
break;
case KEY.X:
if (ctrlMeta)
Buffer.cut();
break;
case KEY.V:
if (ctrlMeta)
Buffer.paste();
break;
case KEY.Z:
if (ctrlMeta)
Buffer.clear();
break;
case KEY.COLON:
CloudCmd.CommandLine.show();
event.preventDefault();
break;
/* чистим хранилище */
case KEY.D:
if (ctrlMeta) {
CloudCmd.log('clearing storage...');
await DOM.Storage.clear();
CloudCmd.log('storage cleared');
event.preventDefault();
}
break;
case KEY.DOT:
if (meta && shift) {
const showDotFiles = !CloudCmd.config('showDotFiles');
CloudCmd._config('showDotFiles', showDotFiles);
CloudCmd.refresh();
await DOM.RESTful.Config.write({
showDotFiles,
});
}
break;
}
}

61
client/key/index.spec.js Normal file
View file

@ -0,0 +1,61 @@
'use strict';
require('css-modules-require-hook/preset');
const autoGlobals = require('auto-globals');
const supertape = require('supertape');
const {ESC} = require('./key');
const {Key, _listener} = require('./index.mjs');
const {getDOM, getCloudCmd} = require('./vim/globals.fixture');
const test = autoGlobals(supertape);
const {stub} = supertape;
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
test('cloudcmd: client: key: enable vim', async (t) => {
const vim = stub();
const config = stub().returns(true);
const _config = stub();
const event = {
keyCode: ESC,
key: 'Escape',
altKey: false,
};
Key.setBind();
await _listener(event, {
vim,
config,
_config,
switchKey: stub(),
});
t.calledWith(vim, ['Escape', event]);
t.end();
});
test('cloudcmd: client: key: disable vim', async (t) => {
const _config = stub();
const config = stub();
const event = {
keyCode: ESC,
key: 'Escape',
altKey: false,
};
Key.setBind();
await _listener(event, {
config,
_config,
switchKey: stub(),
});
t.calledWith(_config, ['vim', true]);
t.end();
});

81
client/key/key.js Normal file
View file

@ -0,0 +1,81 @@
'use strict';
module.exports = {
BACKSPACE: 8,
TAB: 9,
ENTER: 13,
CAPSLOCK: 20,
ESC: 27,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
END: 35,
HOME: 36,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
INSERT: 45,
DELETE: 46,
ZERO: 48,
SEMICOLON: 52,
A: 65,
C: 67,
D: 68,
G: 71,
J: 74,
K: 75,
M: 77,
O: 79,
P: 80,
Q: 81,
R: 82,
S: 83,
T: 84,
U: 85,
V: 86,
X: 88,
Z: 90,
INSERT_MAC: 96,
ASTERISK: 106,
PLUS: 107,
MINUS: 109,
F1: 112,
F2: 113,
F3: 114,
F4: 115,
F5: 116,
F6: 117,
F7: 118,
F8: 119,
F9: 120,
F10: 121,
COLON: 186,
EQUAL: 187,
HYPHEN: 189,
DOT: 190,
SLASH: 191,
/* Typewritten Reverse Apostrophe (`) */
TRA: 192,
BACKSLASH: 220,
BRACKET_CLOSE: 221,
};

View file

@ -0,0 +1,60 @@
/* global DOM */
'use strict';
const {escapeRegExp} = require('../../common/util');
module.exports = function setCurrentByChar(char, charStore) {
const Info = DOM.CurrentInfo;
let firstByName;
let skipCount = 0;
let setted = false;
let i = 0;
const escapeChar = escapeRegExp(char);
const regExp = new RegExp(`^${escapeChar}.*$`, 'i');
const {files} = Info;
const chars = charStore();
const n = chars.length;
while (i < n && char === chars[i])
i++;
if (!i)
charStore([]);
const skipN = skipCount = i;
charStore(charStore().concat(char));
const names = DOM.getFilenames(files);
const isTest = (a) => regExp.test(a);
const isRoot = (a) => a === '..';
const not = (f) => (a) => !f(a);
const setCurrent = (name) => {
const byName = DOM.getCurrentByName(name);
if (!skipCount) {
setted = true;
DOM.setCurrentFile(byName);
return true;
}
if (skipN === skipCount)
firstByName = byName;
--skipCount;
};
names
.filter(isTest)
.filter(not(isRoot))
.some(setCurrent);
if (!setted) {
DOM.setCurrentFile(firstByName);
charStore([char]);
}
};

49
client/key/vim/find.js Normal file
View file

@ -0,0 +1,49 @@
'use strict';
const {fullstore} = require('fullstore');
const limier = require('limier');
const searchStore = fullstore([]);
const searchIndex = fullstore(0);
module.exports.find = (value, names) => {
const result = limier(value, names);
searchStore(result);
searchIndex(0);
return result;
};
module.exports.findNext = () => {
const names = searchStore();
const index = next(searchIndex(), names.length);
searchIndex(index);
return names[searchIndex()];
};
module.exports.findPrevious = () => {
const names = searchStore();
const index = previous(searchIndex(), names.length);
searchIndex(index);
return names[index];
};
module.exports._next = next;
module.exports._previous = previous;
function next(index, length) {
if (index === length - 1)
return 0;
return ++index;
}
function previous(index, length) {
if (!index)
return length - 1;
return --index;
}

View file

@ -0,0 +1,24 @@
'use strict';
const test = require('supertape');
const dir = './';
const {getDOM} = require('./globals.fixture');
globalThis.DOM = getDOM();
const {_next, _previous} = require(`${dir}find`);
test('cloudcmd: client: vim: _next', (t) => {
const result = _next(1, 2);
t.notOk(result, 'should return 0');
t.end();
});
test('cloudcmd: client: vim: _previous', (t) => {
const result = _previous(0, 2);
t.equal(result, 1, 'should return 1');
t.end();
});

View file

@ -0,0 +1,48 @@
'use strict';
const noop = () => {};
module.exports.getDOM = () => {
const prompt = Promise.resolve.bind(Promise);
const CurrentInfo = {
element: {},
files: [],
};
const Buffer = {
copy: noop,
paste: noop,
};
const Dialog = {
prompt,
};
return {
Buffer,
CurrentInfo,
Dialog,
selectFile: noop,
unselectFile: noop,
unselectFiles: noop,
setCurrentFile: noop,
getCurrentName: noop,
setCurrentByName: noop,
toggleSelectedFile: noop,
prompNewDirectory: noop,
promptNewFile: noop,
};
};
module.exports.getCloudCmd = () => {
const show = () => {};
return {
Operation: {
show,
},
config: noop,
_config: noop,
};
};

140
client/key/vim/index.js Normal file
View file

@ -0,0 +1,140 @@
'use strict';
/* global CloudCmd */
/* global DOM */
const vim = require('./vim');
const finder = require('./find');
const {
setCurrent,
selectFileNotParent,
} = require('./set-current');
module.exports = (key, event, overrides = {}) => {
const defaults = {
...globalThis.DOM,
...globalThis.CloudCmd,
};
const deps = {
...defaults,
...overrides,
};
const operations = getOperations(event, deps);
vim(key, operations, deps);
};
const getOperations = (event, deps) => {
const {
Info = globalThis.DOM.CurrentInfo,
CloudCmd = globalThis.CloudCmd,
Operation,
unselectFiles,
setCurrentFile,
setCurrentByName,
getCurrentName,
prompt = globalThis.DOM.Dialog.prompt,
preventDefault = event?.preventDefault?.bind(event),
toggleSelectedFile,
Buffer = {},
createFindNext = _createFindNext,
} = deps;
return {
findNext: createFindNext({
setCurrentByName,
}),
escape: unselectFiles,
remove: () => {
Operation.show('delete');
},
makeDirectory: () => {
event.stopImmediatePropagation();
event.preventDefault();
DOM.promptNewDir();
},
makeFile: () => {
event.stopImmediatePropagation();
event.preventDefault();
DOM.promptNewFile();
},
terminal: () => {
CloudCmd.Terminal.show();
},
edit: () => {
CloudCmd.EditFileVim.show();
},
copy: () => {
Buffer.copy();
unselectFiles();
},
select: () => {
const current = Info.element;
toggleSelectedFile(current);
},
paste: Buffer.paste,
moveNext: ({count, isVisual, isDelete}) => {
setCurrent('next', {
count,
isVisual,
isDelete,
}, {
Info,
setCurrentFile,
unselectFiles,
Operation,
});
},
movePrevious: ({count, isVisual, isDelete}) => {
setCurrent('previous', {
count,
isVisual,
isDelete,
}, {
Info,
setCurrentFile,
unselectFiles,
Operation,
});
},
find: async () => {
preventDefault();
const [, value] = await prompt('Find', '');
if (!value)
return;
const names = Info.files.map(getCurrentName);
const [result] = finder.find(value, names);
setCurrentByName(result);
},
findPrevious: () => {
const name = finder.findPrevious();
setCurrentByName(name);
},
};
};
module.exports.selectFile = selectFileNotParent;
const _createFindNext = (overrides = {}) => () => {
const {setCurrentByName} = overrides;
const name = finder.findNext();
setCurrentByName(name);
};

View file

@ -0,0 +1,681 @@
'use strict';
const {join} = require('node:path');
const {test, stub} = require('supertape');
const mockRequire = require('mock-require');
const dir = '../';
const pathVim = join(dir, 'vim');
const {getDOM, getCloudCmd} = require('./globals.fixture');
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const vim = require('./index.js');
const {assign} = Object;
const {DOM} = globalThis;
const {Buffer} = DOM;
const pathFind = join(dir, 'vim', 'find');
const {reRequire, stopAll} = mockRequire;
test('cloudcmd: client: key: set next file: no', (t) => {
const element = {};
const setCurrentFile = stub();
const unselectFiles = stub();
const Info = {
element,
};
vim('j', {}, {
Info,
setCurrentFile,
unselectFiles,
});
t.calledWith(setCurrentFile, [element], 'should set next file');
t.end();
});
test('cloudcmd: client: key: set next file current: j', async (t) => {
const nextSibling = 'hello';
const element = {
nextSibling,
};
const setCurrentFile = stub();
const Info = {
element,
};
await vim('j', {}, {
Info,
setCurrentFile,
unselectFiles: stub(),
});
t.calledWith(setCurrentFile, [nextSibling], 'should set next file');
t.end();
});
test('cloudcmd: client: key: set next file current: mjj', (t) => {
const nextSibling = 'hello';
const element = {
nextSibling,
};
const setCurrentFile = stub();
const Info = {
element,
};
const deps = {
Info,
setCurrentFile,
unselectFiles: stub(),
};
vim('m', {}, deps);
vim('j', {}, deps);
vim('j', {}, deps);
t.calledWith(setCurrentFile, [nextSibling], 'should set next file');
t.end();
});
test('cloudcmd: client: key: set next file current: g', (t) => {
const nextSibling = 'hello';
const element = {
nextSibling,
};
const setCurrentFile = stub();
const Info = {
element,
};
const deps = {
Info,
setCurrentFile,
unselectFiles: stub(),
};
vim('g', {}, deps);
vim('j', {}, deps);
t.calledWith(setCurrentFile, [nextSibling], 'should ignore g');
t.end();
});
test('cloudcmd: client: key: set +2 file current', (t) => {
const last = {};
const setCurrentFile = stub();
const element = {};
const Info = {
element,
};
const deps = {
setCurrentFile,
Info,
unselectFiles: stub(),
};
const event = {};
vim('2', event, deps);
vim('j', event, deps);
t.calledWith(setCurrentFile, [last], 'should set next file');
t.end();
});
test('cloudcmd: client: key: select +2 files from current before delete', (t) => {
const last = {};
const nextSibling = {
nextSibling: last,
};
const element = {
nextSibling,
};
const setCurrentFile = stub();
const Info = {
element,
};
const Operation = {
show: stub(),
};
const selectFile = stub();
const getCurrentName = stub().returns('x');
const event = {};
const deps = {
Info,
setCurrentFile,
selectFile,
getCurrentName,
Operation,
};
vim('d', event, deps);
vim('2', event, deps);
vim('j', event, deps);
t.calledWith(setCurrentFile, [last], 'should set next file');
t.end();
});
test('cloudcmd: client: key: delete +2 files from current', (t) => {
const last = {};
const nextSibling = {
nextSibling: last,
};
const element = {
nextSibling,
};
const setCurrentFile = stub();
const show = stub();
const deps = {
Info: {
element,
},
Operation: {
show,
},
setCurrentFile,
selectFile: stub(),
getCurrentName: stub().returns('x'),
unselectFiles: stub(),
};
const event = {};
vim('d', event, deps);
vim('2', event, deps);
vim('j', event, deps);
t.calledWith(show, ['delete'], 'should call delete');
t.end();
});
test('cloudcmd: client: key: set previous file current', (t) => {
const previousSibling = 'hello';
const element = {
previousSibling,
};
const setCurrentFile = stub();
const unselectFiles = stub();
const Info = {
element,
};
const deps = {
Info,
setCurrentFile,
unselectFiles,
};
vim('k', {}, deps);
t.calledWith(setCurrentFile, [previousSibling], 'should set previous file');
t.end();
});
test('cloudcmd: client: key: copy: no', (t) => {
const copy = stub();
vim('y', {}, {
unselectFiles: stub(),
Buffer: {
copy,
},
});
t.notCalled(copy, 'should not copy files');
t.end();
});
test('cloudcmd: client: key: copy', (t) => {
const copy = stub();
const Info = {
element: {},
};
const toggleSelectedFile = stub();
const unselectFiles = stub();
const deps = {
Info,
unselectFiles,
toggleSelectedFile,
Buffer: {
copy,
},
};
vim('v', {}, deps);
vim('y', {}, deps);
t.calledWithNoArgs(copy, 'should copy files');
t.end();
});
test('cloudcmd: client: key: copy: unselectFiles', (t) => {
const unselectFiles = stub();
const Info = {
element: {},
};
const toggleSelectedFile = stub();
const deps = {
Info,
unselectFiles,
toggleSelectedFile,
Buffer: {
copy: stub(),
},
};
vim('v', {}, deps);
vim('y', {}, deps);
t.calledWithNoArgs(unselectFiles, 'should unselect files');
t.end();
});
test('cloudcmd: client: key: paste', (t) => {
const paste = stub();
Buffer.paste = paste;
vim('p', {}, {
Buffer,
});
t.calledWithNoArgs(paste, 'should paste files');
t.end();
});
test('cloudcmd: client: key: selectFile: ..', (t) => {
const getCurrentName = stub().returns('..');
const selectFile = stub();
const current = {};
vim.selectFile(current, {
selectFile,
getCurrentName,
});
t.notCalled(selectFile, 'should not call selectFile');
t.end();
});
test('cloudcmd: client: key: selectFile', (t) => {
const selectFile = stub();
const getCurrentName = stub().returns('x');
const current = {};
vim.selectFile(current, {
selectFile,
getCurrentName,
});
t.calledWith(selectFile, [current], 'should call selectFile');
t.end();
});
test('cloudcmd: client: key: set last file current: shift + g', async (t) => {
const last = 'last';
const nextSibling = {
nextSibling: last,
};
const element = {
nextSibling,
};
const setCurrentFile = stub();
await vim('G', {}, {
Info: {
element,
},
setCurrentFile,
unselectFiles: stub(),
});
t.calledWith(setCurrentFile, [last], 'should set last file');
t.end();
});
test('cloudcmd: client: key: set last file current: $', (t) => {
const last = 'last';
const nextSibling = {
nextSibling: last,
};
const element = {
nextSibling,
};
const setCurrentFile = stub();
vim('$', {}, {
Info: {
element,
},
setCurrentFile,
unselectFiles: stub(),
});
t.calledWith(setCurrentFile, [last], 'should set last file');
t.end();
});
test('cloudcmd: client: key: set first file current: gg', (t) => {
const first = 'first';
const previousSibling = {
previousSibling: first,
};
const element = {
previousSibling,
};
const Operation = {
show: stub(),
};
const unselectFiles = stub();
const setCurrentFile = stub();
const deps = {
Operation,
unselectFiles,
setCurrentFile,
Info: {
element,
},
};
vim('g', {}, deps);
vim('g', {}, deps);
t.calledWith(setCurrentFile, [first], 'should set first file');
t.end();
});
test('cloudcmd: client: key: set first file current: ^', async (t) => {
const first = 'first';
const previousSibling = {
previousSibling: first,
};
const element = {
previousSibling,
};
const Operation = {
show: stub(),
};
const unselectFiles = stub();
const setCurrentFile = stub();
const deps = {
setCurrentFile,
Info: {
element,
},
unselectFiles,
Operation,
};
await vim('^', {}, deps);
t.calledWith(setCurrentFile, [first], 'should set first file');
t.end();
});
test('cloudcmd: client: key: visual', (t) => {
const element = {};
const toggleSelectedFile = stub();
const Info = {
element,
};
vim('v', {}, {
Info,
toggleSelectedFile,
});
t.calledWith(toggleSelectedFile, [element], 'should toggle selection');
t.end();
});
test('cloudcmd: client: key: ESC', (t) => {
const element = {};
const unselectFiles = stub();
const Info = {
element,
};
vim('Escape', null, {
Info,
unselectFiles,
});
t.calledWithNoArgs(unselectFiles, 'should toggle selection');
t.end();
});
test('cloudcmd: client: key: Enter', async (t) => {
const nextSibling = 'hello';
const element = {
nextSibling,
};
const unselectFiles = stub();
const setCurrentFile = stub();
const Info = {
element,
};
await vim('Enter', null, {
Info,
setCurrentFile,
unselectFiles,
});
await vim('j', null, {
Info,
setCurrentFile,
unselectFiles,
});
t.calledWith(setCurrentFile, [nextSibling], 'should set next file');
t.end();
});
test('cloudcmd: client: key: /', (t) => {
const preventDefault = stub();
const element = {};
const Info = {
element,
files: [],
};
const getCurrentName = stub().returns('');
const event = {
preventDefault,
};
const prompt = stub().returns([]);
vim('/', event, {
getCurrentName,
Info,
prompt,
});
t.calledWithNoArgs(preventDefault);
t.end();
});
test('cloudcmd: client: find', (t) => {
assign(DOM.Dialog, {
prompt: stub().returns([]),
});
const setCurrentByName = stub();
assign(DOM, {
setCurrentByName,
});
const vim = reRequire(pathVim);
const event = {
preventDefault: stub(),
};
vim('/', event);
stopAll();
t.notCalled(setCurrentByName);
t.end();
});
test('cloudcmd: client: key: n', (t) => {
const findNext = stub();
const createFindNext = stub().returns(findNext);
const event = {};
vim('n', event, {
createFindNext,
});
t.calledWithNoArgs(findNext, 'should call findNext');
t.end();
});
test('cloudcmd: client: key: N', (t) => {
const findPrevious = stub();
mockRequire(pathFind, {
findPrevious,
});
const vim = reRequire(`${dir}vim`);
const event = {};
vim('N', event);
stopAll();
t.calledWithNoArgs(findPrevious, 'should call findPrevious');
t.end();
});
test('cloudcmd: client: key: make directory', async (t) => {
const vim = reRequire(pathVim);
const {DOM} = globalThis;
assign(DOM, {
promptNewDir: stub(),
});
const event = {
stopImmediatePropagation: stub(),
preventDefault: stub(),
};
await vim('m', event);
await vim('d', event);
t.calledWithNoArgs(DOM.promptNewDir);
t.end();
});
test('cloudcmd: client: key: make file', (t) => {
const vim = reRequire(pathVim);
const {DOM} = globalThis;
assign(DOM, {
promptNewFile: stub(),
});
const event = {
stopImmediatePropagation: stub(),
preventDefault: stub(),
};
vim('m', event);
vim('f', event);
t.calledWithNoArgs(DOM.promptNewDir);
t.end();
});
test('cloudcmd: client: vim: terminal', (t) => {
const CloudCmd = {
Terminal: {
show: stub(),
},
};
const event = {};
vim('t', event, {
CloudCmd,
});
vim('t', event, {
CloudCmd,
});
t.calledWithNoArgs(CloudCmd.Terminal.show);
t.end();
});
test('cloudcmd: client: vim: edit', async (t) => {
globalThis.DOM = getDOM();
globalThis.CloudCmd = getCloudCmd();
const {CloudCmd} = globalThis;
assign(CloudCmd, {
EditFileVim: {
show: stub(),
},
});
const event = {};
await vim('e', event);
t.calledWithNoArgs(CloudCmd.EditFileVim.show);
t.end();
});

View file

@ -0,0 +1,36 @@
'use strict';
/* global DOM */
module.exports.selectFileNotParent = selectFileNotParent;
function selectFileNotParent(current, {getCurrentName, selectFile} = DOM) {
const name = getCurrentName(current);
if (name === '..')
return;
selectFile(current);
}
module.exports.setCurrent = (sibling, {count, isVisual, isDelete}, {Info, setCurrentFile, unselectFiles, Operation}) => {
let current = Info.element;
const select = isVisual ? selectFileNotParent : unselectFiles;
select(current);
const position = `${sibling}Sibling`;
for (let i = 0; i < count; i++) {
const next = current[position];
if (!next)
break;
current = next;
select(current);
}
setCurrentFile(current);
if (isDelete)
Operation.show('delete');
};

203
client/key/vim/vim.js Normal file
View file

@ -0,0 +1,203 @@
'use strict';
const {fullstore} = require('fullstore');
const store = fullstore('');
const visual = fullstore(false);
const stopVisual = () => {
visual(false);
};
const end = () => {
store('');
};
const rmFirst = (a) => {
return a
.split('')
.slice(1)
.join('');
};
const noop = () => {};
module.exports = (key, operations = {}) => {
const prevStore = store();
const isVisual = visual();
const value = store(prevStore.concat(key));
const {
escape = noop,
moveNext = noop,
movePrevious = noop,
remove = noop,
copy = noop,
paste = noop,
select = noop,
find = noop,
findNext = noop,
findPrevious = noop,
makeFile = noop,
makeDirectory = noop,
terminal = noop,
edit = noop,
} = operations;
if (key === 'Enter')
return end();
if (key === 'Escape') {
visual(false);
escape();
return end();
}
if (key === 'j' || key === 'w') {
const {
count,
isDelete,
isVisual,
} = handleDelete(prevStore);
!isNaN(count) && moveNext({
count,
isVisual,
isDelete,
});
return end();
}
if (key === 'k' || key === 'b') {
const {
count,
isDelete,
isVisual,
} = handleDelete(prevStore);
!isNaN(count) && movePrevious({
count,
isVisual,
isDelete,
});
return end();
}
if (value === 'gg' || key === '^') {
const {isDelete, isVisual} = handleDelete(prevStore);
movePrevious({
count: Infinity,
isVisual,
isDelete,
});
return end();
}
if (value === 'md') {
makeDirectory();
return end();
}
if (value === 'tt') {
terminal();
return end();
}
if (value === 'e') {
edit();
return end();
}
if (value === 'mf') {
makeFile();
return end();
}
if (key === 'd' && (visual() || prevStore === 'd')) {
stopVisual();
remove();
return end();
}
if (key === 'G' || key === '$') {
moveNext({
count: Infinity,
isVisual,
});
return end();
}
if (key === 'y') {
if (!visual())
return end();
stopVisual();
copy();
return end();
}
if (/^p$/i.test(key)) {
paste();
return end();
}
if (/^v$/i.test(key)) {
visual(!visual());
select();
return end();
}
if (key === '/') {
find();
return end();
}
if (key === 'n') {
findNext();
return end();
}
if (key === 'N') {
findPrevious();
return end();
}
if (key === ' ')
return end();
};
function handleDelete(prevStore) {
const isDelete = prevStore[0] === 'd';
if (isDelete) {
visual(true);
prevStore = rmFirst(prevStore);
}
const count = getNumber(prevStore);
const isVisual = visual();
return {
count,
isDelete,
isVisual,
};
}
function getNumber(value) {
if (!value)
return 1;
if (value === 'g')
return 1;
return parseInt(value);
}

View file

@ -0,0 +1,81 @@
'use strict';
const {test, stub} = require('supertape');
const vim = require('./vim');
test('vim: no operations', (t) => {
const result = vim('hello', {});
t.notOk(result);
t.end();
});
test('vim: space', (t) => {
const moveNext = stub();
vim(' ');
vim('j', {
moveNext,
});
const args = [{
count: 1,
isDelete: false,
isVisual: false,
}];
t.calledWith(moveNext, args);
t.end();
});
test('vim: ^', (t) => {
const movePrevious = stub();
vim('^', {
movePrevious,
});
const expected = {
count: Infinity,
isVisual: false,
isDelete: false,
};
t.calledWith(movePrevious, [expected], 'should call movePrevious');
t.end();
});
test('vim: w', (t) => {
const moveNext = stub();
vim('w', {
moveNext,
});
const expected = {
count: 1,
isVisual: false,
isDelete: false,
};
t.calledWith(moveNext, [expected], 'should call moveNext');
t.end();
});
test('vim: b', (t) => {
const movePrevious = stub();
vim('b', {
movePrevious,
});
const expected = {
count: 1,
isVisual: false,
isDelete: false,
};
t.calledWith(movePrevious, [expected], 'should call movePrevious');
t.end();
});

View file

@ -0,0 +1,10 @@
'use strict';
module.exports = (array, item) => {
const index = array.indexOf(item);
if (!~index)
return 0;
return index;
};

View file

@ -0,0 +1,11 @@
'use strict';
module.exports = (indexFrom, indexTo, files) => {
if (indexFrom < indexTo)
return files.slice(indexFrom, indexTo + 1);
if (indexFrom > indexTo)
return files.slice(indexTo, indexFrom + 1);
return [files[indexFrom]];
};

504
client/listeners/index.js Normal file
View file

@ -0,0 +1,504 @@
/* global DOM, CloudCmd */
'use strict';
const exec = require('execon');
const itype = require('itype');
const currify = require('currify');
const {tryToCatch} = require('try-to-catch');
const clipboard = require('@cloudcmd/clipboard');
const getRange = require('./get-range');
const uploadFiles = require('../dom/upload-files');
const {FS} = require('../../common/cloudfunc.mjs');
const Events = require('#dom/events');
const getIndex = currify(require('./get-index'));
const NBSP_REG = RegExp(String.fromCharCode(160), 'g');
const SPACE = ' ';
module.exports.init = async () => {
await Promise.all([
contextMenu(),
dragndrop(),
unload(),
pop(),
resize(),
header(),
config(),
]);
};
const unselect = (event) => {
const isMac = /Mac/.test(globalThis.navigator.platform);
const {
shiftKey,
metaKey,
ctrlKey,
} = event;
if (shiftKey || isMac && metaKey || ctrlKey)
return;
DOM.unselectFiles();
};
const execAll = currify((funcs, event) => {
for (const fn of funcs)
fn(event);
});
const EventsFiles = {
mousedown: exec.with(execIfNotUL, setCurrentFileByEvent),
click: execAll([onClick, exec.with(execIfNotMobile, unselect)]),
dragstart: exec.with(execIfNotUL, onDragStart),
dblclick: exec.with(execIfNotUL, onDblClick),
touchstart: exec.with(execIfNotUL, onTouch),
};
let EXT;
function header() {
const fm = DOM.getFM();
const isDataset = (el) => el.dataset;
const isPanel = (el) => {
return /^js-(left|right)$/.test(el.dataset.name);
};
Events.addClick(fm, (event) => {
const el = event.target;
const parent = el.parentElement;
if (parent.dataset.name !== 'js-fm-header')
return;
const name = (el.dataset.name || '').replace('js-', '');
if (!/^(name|size|date)$/.test(name))
return;
const panel = getPath(el)
.filter(isDataset)
.filter(isPanel)
.pop();
CloudCmd.sortPanel(name, panel);
});
}
function getPath(el, path = []) {
if (!el)
return path;
return getPath(el.parentElement, path.concat(el));
}
async function config() {
const [, config] = await tryToCatch(DOM.Files.get, 'config');
const type = config?.packer;
EXT = DOM.getPackerExt(type);
}
module.exports.initKeysPanel = () => {
const keysElement = DOM.getById('js-keyspanel');
if (!keysElement)
return;
Events.addClick(keysElement, (event) => {
const {target} = event;
const {id} = target;
const operation = (name) => {
const {Operation} = CloudCmd;
return Operation.show.bind(null, name);
};
const clickFuncs = {
'f1': CloudCmd.Help.show,
'f2': CloudCmd.UserMenu.show,
'f3': CloudCmd.View.show,
'f4': CloudCmd.EditFile.show,
'f5': operation('copy'),
'f6': operation('move'),
'f7': DOM.promptNewDir,
'f8': operation('delete'),
'f9': () => {
event.stopPropagation();
CloudCmd.Menu.show();
},
'f10': CloudCmd.Config.show,
'~': CloudCmd.Konsole.show,
'shift~': CloudCmd.Terminal.show,
'contact': CloudCmd.Contact.show,
};
exec(clickFuncs[id]);
});
};
const getPanel = (side) => {
if (!itype.string(side))
return side;
return DOM.getByDataName(`js-${side}`);
};
module.exports.setOnPanel = (side) => {
const panel = getPanel(side);
const filesElement = DOM.getByDataName('js-files', panel);
const pathElement = DOM.getByDataName('js-path', panel);
/* ставим загрузку гифа на клик*/
Events.addClick(pathElement, getPathListener(panel));
Events.add(filesElement, EventsFiles);
};
function getPathListener(panel) {
return onPathElementClick.bind(null, panel);
}
function isNoCurrent(panel) {
const Info = DOM.CurrentInfo;
const infoPanel = Info.panel;
if (!infoPanel)
return true;
const namePanel = panel.getAttribute('data-name');
const nameInfoPanel = infoPanel.getAttribute('data-name');
return namePanel !== nameInfoPanel;
}
function decodePath(path) {
const url = CloudCmd.HOST;
const {prefix} = CloudCmd;
const prefixReg = RegExp('^' + prefix + FS);
return decodeURI(path)
.replace(url, '')
.replace(prefixReg, '') // browser doesn't replace % -> %25% do it for him
.replace('%%', '%25%')
.replace(NBSP_REG, SPACE) || '/';
}
async function onPathElementClick(panel, event) {
const Info = DOM.CurrentInfo;
event.preventDefault();
const element = event.target;
const attr = element.getAttribute('data-name');
const noCurrent = isNoCurrent(panel);
if (attr === 'js-copy-path')
return copyPath(element);
if (attr === 'js-refresh')
return CloudCmd.refresh({
panel,
noCurrent,
});
if (attr !== 'js-path-link')
return;
const {href} = element;
const path = decodePath(href);
await CloudCmd.changeDir(path, {
isRefresh: false,
panel: noCurrent ? panel : Info.panel,
});
}
function copyPath(el) {
clipboard
.writeText(el.parentElement.title)
.then(CloudCmd.log)
.catch(CloudCmd.log);
}
function execIfNotMobile(callback, event) {
const isMobile = DOM.getCSSVar('is-mobile');
if (!isMobile)
callback(event);
}
function execIfNotUL(callback, event) {
const {target} = event;
const {tagName} = target;
if (tagName !== 'UL')
callback(event);
}
function onClick(event) {
event.preventDefault();
changePanel(event.target);
}
function toggleSelect(key, files) {
const isMac = /Mac/.test(globalThis.navigator.platform);
if (!key)
throw Error('key should not be undefined!');
const [file] = files;
if (isMac && key.meta)
return DOM.toggleSelectedFile(file);
if (key.shift)
return files.map(DOM.selectFile);
}
function changePanel(element) {
const Info = DOM.CurrentInfo;
const {panel} = Info;
const files = DOM.getByDataName('js-files', panel);
const ul = getULElement(element);
if (ul !== files)
DOM.changePanel();
}
async function onDblClick(event) {
event.preventDefault();
const current = getLIElement(event.target);
const isDir = DOM.isCurrentIsDir(current);
const path = DOM.getCurrentPath(current);
if (!isDir)
return CloudCmd.View.show();
await CloudCmd.changeDir(path);
}
async function onTouch(event) {
const current = getLIElement(event.target);
const isDir = DOM.isCurrentIsDir(current);
if (!isDir)
return;
const isCurrent = DOM.isCurrentFile(current);
if (!isCurrent)
return;
await CloudCmd.changeDir(DOM.getCurrentPath(current));
}
/*
* download file from browser to desktop
* in Chrome (HTML5)
*/
function onDragStart(event) {
const Info = DOM.CurrentInfo;
const {prefixURL} = CloudCmd;
const element = getLIElement(event.target);
const {isDir} = Info;
let link = DOM.getCurrentLink(element);
let name = DOM.getCurrentName(element);
/* if it's directory - adding json extension */
if (isDir) {
name += EXT;
link = document.createElement('a');
link.textContent = name;
link.href = prefixURL + '/pack' + Info.path + EXT;
}
event.dataTransfer.setData('DownloadURL', 'application/octet-stream' + ':' + name +
':' + link);
}
function getLIElement(element) {
if (!element)
return element;
while (element.tagName !== 'LI')
element = element.parentElement;
return element;
}
function getULElement(element) {
while (element.tagName !== 'UL')
element = element.parentElement;
return element;
}
function setCurrentFileByEvent(event) {
const Info = DOM.CurrentInfo;
const BUTTON_LEFT = 0;
const key = {
alt: event.altKey,
ctrl: event.ctrlKey,
meta: event.metaKey,
shift: event.shiftKey,
};
const element = getLIElement(event.target);
const fromName = Info.name;
DOM.setCurrentFile(element);
const toName = Info.name;
let files = [];
if (key.shift)
files = getFilesRange(fromName, toName);
else
files.push(Info.element);
if (event.button === BUTTON_LEFT)
toggleSelect(key, files);
}
function getFilesRange(from, to) {
const files = DOM.getAllFiles();
const names = DOM.getFilenames(files);
const getNameIndex = getIndex(names);
const indexFrom = getNameIndex(from);
const indexTo = getNameIndex(to);
return getRange(indexFrom, indexTo, files);
}
function contextMenu() {
const fm = DOM.getFM();
Events.addOnce('contextmenu', fm, (event) => {
CloudCmd.Menu.show({
x: event.clientX,
y: event.clientY,
});
});
Events.addContextMenu(fm, (event) => {
CloudCmd.Menu.ENABLED || event.preventDefault();
});
}
function dragndrop() {
const panels = DOM.getByClassAll('panel');
const select = ({target}) => {
target.classList.add('selected-panel');
};
const unselect = ({target}) => {
target.classList.remove('selected-panel');
};
const onDrop = (event) => {
const {files, items} = event.dataTransfer;
const {length: filesCount} = files;
event.preventDefault();
if (filesCount && (!items || !items.length || !items[0].webkitGetAsEntry))
return uploadFiles(files);
const isFile = (item) => item.kind === 'file';
const dirFiles = Array
.from(items)
.filter(isFile);
if (dirFiles.length)
return DOM.uploadDirectory(dirFiles);
const {Operation} = CloudCmd;
const operation = event.shiftKey ? 'move' : 'copy';
return Operation.show(operation);
};
/**
* In macOS Chrome dropEffect = 'none'
* so drop do not firing up when try
* to upload file from download bar
*/
const onDragOver = (event) => {
const {dataTransfer} = event;
const {effectAllowed} = dataTransfer;
if (/move|linkMove/.test(effectAllowed))
dataTransfer.dropEffect = 'move';
else
dataTransfer.dropEffect = 'copy';
event.preventDefault();
};
for (const panel of panels)
Events
.add('dragover', panel, onDragOver)
.add('drop', panel, onDrop)
.add('dragenter', select)
.add(['dragleave', 'drop'], unselect);
}
function unload() {
Events.add(['unload', 'beforeunload'], (event) => {
const {Key} = CloudCmd;
const isBind = Key?.isBind();
if (isBind)
return;
event.preventDefault();
return 'Please make sure that you saved all work.';
});
}
function pop() {
Events.add('popstate', async ({state}) => {
const path = (state || '').replace(FS, '');
if (!path)
return CloudCmd.route(location.hash);
const history = false;
await CloudCmd.changeDir(path, {
history,
});
});
}
function resize() {
Events.add('resize', () => {
const Info = DOM.CurrentInfo;
const is = globalThis.innerWidth < CloudCmd.MIN_ONE_PANEL_WIDTH;
if (!is)
return;
const {panel} = Info;
const isEmptyRoot = !panel;
if (isEmptyRoot)
return;
const name = panel.getAttribute('data-name');
const isLeft = name === 'js-left';
if (isLeft)
return;
DOM.changePanel();
});
}

56
client/load-module.mjs Normal file
View file

@ -0,0 +1,56 @@
/* global CloudCmd */
import exec from 'execon';
import {tryToCatch} from 'try-to-catch';
import {js as loadJS} from 'load.js';
import pascalCase from 'just-pascal-case';
const noJS = (a) => a.replace(/.js$/, '');
/**
* function load modules
* @params = {name, path, func, dobefore, arg}
*/
export const loadModule = (params) => {
if (!params)
return;
const {path} = params;
const name = path && noJS(pascalCase(path));
const doBefore = params.dobefore;
if (CloudCmd[name])
return;
CloudCmd[name] = async () => {
exec(doBefore);
const {DIR_MODULES} = CloudCmd;
const pathFull = `${DIR_MODULES}/${path}.js`;
await loadJS(pathFull);
const newModule = async (f) => f && f();
const module = CloudCmd[name];
Object.assign(newModule, module);
CloudCmd[name] = newModule;
CloudCmd.log('init', name);
await module.init();
return newModule;
};
CloudCmd[name].show = async (...args) => {
CloudCmd.log('show', name, args);
const m = CloudCmd[name];
const [e, a] = await tryToCatch(m);
if (e)
return;
return await a.show(...args);
};
};

64
client/modules/cloud.js Normal file
View file

@ -0,0 +1,64 @@
/* global CloudCmd, filepicker */
'use strict';
const exec = require('execon');
const currify = require('currify');
const load = require('load.js');
const {ajax} = require('../dom/load');
const Files = require('../dom/files');
const Images = require('../dom/images.mjs');
const {log} = CloudCmd;
const upload = currify(_upload);
const Name = 'Cloud';
CloudCmd[Name] = module.exports;
module.exports.init = async () => {
const [modules] = await loadFiles();
const {key} = modules.data.FilePicker;
filepicker.setKey(key);
Images.hide();
};
module.exports.uploadFile = (filename, data) => {
const mimetype = '';
filepicker.store(data, {
mimetype,
filename,
}, (fpFile) => {
filepicker.exportFile(fpFile, log, log);
});
};
module.exports.saveFile = (callback) => {
filepicker.pick(upload(callback));
};
function _upload(callback, file) {
const {url, filename} = file;
const responseType = 'arraybuffer';
const success = exec.with(callback, filename);
ajax({
url,
responseType,
success,
});
}
function loadFiles() {
const js = '//api.filepicker.io/v2/filepicker.js';
return Promise.all([
Files.get('modules'),
load.js(js),
]);
}

View file

@ -0,0 +1,35 @@
'use strict';
/* global CloudCmd */
CloudCmd.CommandLine = exports;
const Dialog = require('../dom/dialog');
const noop = () => {};
module.exports.init = noop;
module.exports.show = show;
module.exports.hide = hide;
async function show() {
const [, cmd] = await Dialog.prompt('Command Line', '');
const TERMINAL = '^(t|terminal)';
if (RegExp(`${TERMINAL}$`).test(cmd))
return await CloudCmd.Terminal.show();
if (RegExp(TERMINAL).test(cmd)) {
const command = cmd.replace(RegExp(`${TERMINAL} `), '');
const exitCode = await CloudCmd.TerminalRun.show({
command: `bash -c '${command}'`,
});
if (exitCode === -1)
await Dialog.alert(`☝️ Looks like Terminal is disabled, start Cloud Coammnder with '--terminal' flag.`);
return;
}
}
function hide() {}

View file

@ -0,0 +1,248 @@
'use strict';
/* global CloudCmd, DOM, io */
require('../../../css/config.css');
const rendy = require('rendy');
const currify = require('currify');
const wraptile = require('wraptile');
const squad = require('squad');
const {promisify} = require('es6-promisify');
const {tryToCatch} = require('try-to-catch');
const load = require('load.js');
const createElement = require('@cloudcmd/create-element');
const input = require('./input');
const Images = require('../../dom/images.mjs');
const Events = require('#dom/events');
const Files = require('../../dom/files');
const {getTitle} = require('../../../common/cloudfunc.mjs');
const {Dialog, setTitle} = DOM;
const Name = 'Config';
CloudCmd[Name] = module.exports;
const loadSocket = promisify(DOM.loadSocket);
const showLoad = () => {
Images.show.load('top');
};
const addKey = currify((fn, input) => {
Events.addKey(input, fn);
return input;
});
const addChange = currify((fn, input) => {
Events.add('change', input, fn);
return input;
});
const Config = {};
let Template;
const loadCSS = load.css;
module.exports.init = async () => {
if (!CloudCmd.config('configDialog'))
return;
showLoad();
const {DIR_DIST} = CloudCmd;
[Template] = await Promise.all([
Files.get('config-tmpl'),
loadSocket(),
loadCSS(`${DIR_DIST}/config.css`),
CloudCmd.View(),
]);
initSocket();
};
const {config, Key} = CloudCmd;
let Element;
function getHost() {
const {
host,
origin,
protocol,
} = location;
return origin || `${protocol}//${host}`;
}
function initSocket() {
const href = getHost();
const {prefixSocket, prefix} = CloudCmd;
const ONE_MINUTE = 60 * 1000;
const socket = io.connect(href + prefixSocket + '/config', {
reconnectionAttempts: Infinity,
reconnectionDelay: ONE_MINUTE,
path: `${prefix}/socket.io`,
});
const save = (data) => {
onSave(data);
socket.send(data);
};
authCheck(socket);
socket.on('connect', () => {
Config.save = save;
});
socket.on('message', onSave);
socket.on('log', CloudCmd.log);
socket.on('disconnect', () => {
Config.save = saveHttp;
});
socket.on('err', Dialog.alert);
}
function authCheck(socket) {
socket.emit('auth', config('username'), config('password'));
socket.on('reject', wraptile(Dialog.alert, 'Wrong credentials!'));
}
Config.save = saveHttp;
module.exports.show = show;
async function show() {
if (!CloudCmd.config('configDialog'))
return;
await fillTemplate();
}
async function fillTemplate() {
const [error, config] = await tryToCatch(Files.get, 'config');
if (error)
return Dialog.alert('Could not load config!');
const {
editor,
menu,
packer,
columns,
theme,
configAuth,
...obj
} = input.convert(config);
obj[`${menu}-selected`] = 'selected';
obj[`${editor}-selected`] = 'selected';
obj[`${packer}-selected`] = 'selected';
obj[`${columns}-selected`] = 'selected';
obj[`${theme}-selected`] = 'selected';
obj.configAuth = configAuth ? '' : 'hidden';
const innerHTML = rendy(Template, obj);
Element = createElement('form', {
className: 'config',
innerHTML,
});
const inputs = document.querySelectorAll('input, select', Element);
const [inputFirst] = inputs;
let afterShow;
if (inputFirst) {
onAuthChange(inputFirst.checked);
afterShow = inputFirst.focus.bind(inputFirst);
}
const getTarget = ({target}) => target;
const handleChange = squad(onChange, getTarget);
Array
.from(inputs)
.map(addKey(onKey))
.map(addChange(handleChange));
const autoSize = true;
CloudCmd.View.show(Element, {
autoSize,
afterShow,
});
}
module.exports.hide = hide;
function hide() {
CloudCmd.View.hide();
}
async function onChange(el) {
const obj = {};
const name = input.getName(el);
const data = input.getValue(name, Element);
if (name === 'name')
onNameChange(data);
else if (name === 'auth')
onAuthChange(data);
obj[name] = data;
await Config.save(obj);
}
function onSave(obj) {
for (const name of Object.keys(obj)) {
const data = obj[name];
CloudCmd._config(name, data);
input.setValue(name, data, Element);
}
}
async function saveHttp(obj) {
const {RESTful} = DOM;
const [e] = await RESTful.Config.write(obj);
if (e)
return;
onSave(obj);
}
function onAuthChange(checked) {
const elUsername = input.getElementByName('username', Element);
const elPassword = input.getElementByName('password', Element);
elUsername.disabled = !checked;
elPassword.disabled = !checked;
}
function onNameChange(name) {
setTitle(getTitle({
name,
}));
}
async function onKey({keyCode, target}) {
switch(keyCode) {
case Key.ESC:
return hide();
case Key.ENTER:
return await onChange(target);
}
}

View file

@ -0,0 +1,75 @@
'use strict';
const currify = require('currify');
const isType = currify((type, object, name) => type === typeof object[name]);
const isBool = isType('boolean');
module.exports.getElementByName = getElementByName;
function getElementByName(selector, element) {
const str = `[data-name="js-${selector}"]`;
return element.querySelector(str);
}
module.exports.getName = (element) => {
const name = element
.getAttribute('data-name')
.replace(/^js-/, '');
return name;
};
module.exports.convert = (config) => {
const result = config;
const array = Object.keys(config);
const filtered = array.filter(isBool(config));
for (const name of filtered) {
const item = config[name];
result[name] = setState(item);
}
return result;
};
function setState(state) {
if (state)
return ' checked';
return '';
}
module.exports.getValue = (name, element) => {
const el = getElementByName(name, element);
const {type} = el;
switch(type) {
case 'checkbox':
return el.checked;
case 'number':
return Number(el.value);
default:
return el.value;
}
};
module.exports.setValue = (name, value, element) => {
const el = getElementByName(name, element);
const {type} = el;
switch(type) {
case 'checkbox':
el.checked = value;
break;
default:
el.value = value;
break;
}
};

41
client/modules/contact.js Normal file
View file

@ -0,0 +1,41 @@
/* global CloudCmd */
/* global DOM */
'use strict';
CloudCmd.Contact = exports;
const olark = require('@cloudcmd/olark');
const Images = require('../dom/images.mjs');
const {Events} = DOM;
const {Key} = CloudCmd;
module.exports.show = show;
module.exports.hide = hide;
module.exports.init = () => {
Events.addKey(onKey);
olark.identify('6216-545-10-4223');
olark('api.box.onExpand', show);
olark('api.box.onShow', show);
olark('api.box.onShrink', hide);
};
function show() {
Key.unsetBind();
Images.hide();
olark('api.box.expand');
}
function hide() {
Key.setBind();
olark('api.box.hide');
}
function onKey({keyCode}) {
if (keyCode === Key.ESC)
hide();
}

View file

@ -0,0 +1,45 @@
'use strict';
/* global CloudCmd */
CloudCmd.EditFileVim = exports;
const Events = require('#dom/events');
const {Key} = CloudCmd;
const ConfigView = {
bindKeys: false,
beforeClose: () => {
Events.rmKey(listener);
CloudCmd.EditFile.isChanged();
},
};
module.exports.init = async () => {
await CloudCmd.EditFile();
};
module.exports.show = async () => {
Events.addKey(listener);
const editFile = await CloudCmd.EditFile.show(ConfigView);
editFile
.getEditor()
.setKeyMap('vim');
};
module.exports.hide = hide;
function hide() {
CloudCmd.Edit.hide();
}
function listener(event) {
const {keyCode, shiftKey} = event;
if (shiftKey && keyCode === Key.ESC) {
event.preventDefault();
hide();
}
}

194
client/modules/edit-file.js Normal file
View file

@ -0,0 +1,194 @@
'use strict';
/* global CloudCmd, DOM*/
CloudCmd.EditFile = exports;
const Format = require('format-io');
const {fullstore} = require('fullstore');
const exec = require('execon');
const supermenu = require('supermenu');
const Info = DOM.CurrentInfo;
const {Dialog, Images} = DOM;
const {config} = CloudCmd;
let Menu;
let MSG_CHANGED;
const isLoading = fullstore();
const ConfigView = {
beforeClose: async () => {
exec.ifExist(Menu, 'hide');
await isChanged();
},
};
module.exports.init = async () => {
isLoading(true);
await CloudCmd.Edit();
const editor = CloudCmd.Edit.getEditor();
authCheck(editor);
setListeners(editor);
isLoading(false);
};
function getName() {
const {name, isDir} = Info;
if (isDir)
return `${name}.json`;
return name;
}
module.exports.show = async (options) => {
if (isLoading())
return;
const optionsEdit = {
...ConfigView,
...options,
};
if (CloudCmd.config('showFileName'))
optionsEdit.title = Info.name;
Images.show.load();
CloudCmd.Edit
.getEditor()
.setOption('keyMap', 'default');
const [error, data] = await Info.getData();
if (error) {
Images.hide();
return CloudCmd.Edit;
}
const {path} = Info;
const name = getName();
setMsgChanged(name);
CloudCmd.Edit
.getEditor()
.setValueFirst(path, data)
.setModeForPath(name)
.enableKey();
CloudCmd.Edit.show(optionsEdit);
return CloudCmd.Edit;
};
module.exports.hide = hide;
function hide() {
CloudCmd.Edit.hide();
}
function setListeners(editor) {
const element = CloudCmd.Edit.getElement();
DOM.Events.addOnce('contextmenu', element, setMenu);
editor.on('save', (value) => {
DOM.setCurrentSize(Format.size(value));
});
}
function authCheck(spawn) {
spawn.emit('auth', config('username'), config('password'));
spawn.on('reject', () => {
Dialog.alert('Wrong credentials!');
});
}
function setMenu(event) {
const position = {
x: event.clientX,
y: event.clientY,
};
event.preventDefault();
if (Menu)
return;
const options = {
beforeShow: (params) => {
params.x -= 18;
params.y -= 27;
},
afterClick: () => {
CloudCmd.Edit
.getEditor()
.focus();
},
};
const element = CloudCmd.Edit.getElement();
Menu = supermenu(element, options, getMenuData());
Menu.addContextMenuListener();
Menu.show(position.x, position.y);
}
function getMenuData() {
const editor = CloudCmd.Edit.getEditor();
return {
'Save Ctrl+S': () => {
editor.save();
},
'Go To Line Ctrl+G': () => {
editor.goToLine();
},
'Cut Ctrl+X': () => {
editor.cutToClipboard();
},
'Copy Ctrl+C': () => {
editor.copyToClipboard();
},
'Paste Ctrl+V': () => {
editor.pasteFromClipboard();
},
'Delete Del': () => {
editor.remove('right');
},
'Select All Ctrl+A': () => {
editor.selectAll();
},
'Close Esc': hide,
};
}
function setMsgChanged(name) {
MSG_CHANGED = `Do you want to save changes to ${name}?`;
}
module.exports.isChanged = isChanged;
async function isChanged() {
const editor = CloudCmd.Edit.getEditor();
const is = editor.isChanged();
if (!is)
return;
const [cancel] = await Dialog.confirm(MSG_CHANGED);
if (cancel)
return;
editor.save();
}

View file

@ -0,0 +1,43 @@
'use strict';
/* global CloudCmd */
CloudCmd.EditNamesVim = exports;
const Events = require('#dom/events');
const {Key} = CloudCmd;
const ConfigView = {
bindKeys: false,
beforeClose: () => {
Events.rmKey(listener);
CloudCmd.EditNames.isChanged();
},
};
module.exports.init = async () => {
await CloudCmd.EditNames();
};
module.exports.show = () => {
Events.addKey(listener);
CloudCmd.EditNames
.show(ConfigView)
.getEditor()
.setKeyMap('vim');
};
module.exports.hide = hide;
function hide() {
CloudCmd.Edit.hide();
}
function listener(event) {
const {keyCode, shiftKey} = event;
if (shiftKey && keyCode === Key.ESC) {
event.preventDefault();
hide();
}
}

View file

@ -0,0 +1,216 @@
'use strict';
const {tryToCatch} = require('try-to-catch');
/* global CloudCmd, DOM */
CloudCmd.EditNames = exports;
const exec = require('execon');
const supermenu = require('supermenu');
const {multiRename} = require('multi-rename');
const Info = DOM.CurrentInfo;
const {Dialog} = DOM;
let Menu;
const ConfigView = {
beforeClose: async () => {
exec.ifExist(Menu, 'hide');
DOM.Events.remove('keydown', keyListener);
await isChanged();
},
};
module.exports.init = async () => {
await CloudCmd.Edit();
setListeners();
};
module.exports.show = (options) => {
const names = getActiveNames().join('\n');
const config = {
...ConfigView,
...options,
};
if (Info.name === '..' && names.length === 1)
return Dialog.alert.noFiles();
DOM.Events.addKey(keyListener);
CloudCmd.Edit
.getEditor()
.setValueFirst('edit-names', names)
.setMode()
.setOption('keyMap', 'default')
.disableKey();
CloudCmd.Edit.show(config);
return CloudCmd.Edit;
};
async function keyListener(event) {
const ctrl = event.ctrlKey;
const meta = event.metaKey;
const ctrlMeta = ctrl || meta;
const {Key} = CloudCmd;
if (ctrlMeta && event.keyCode === Key.S) {
hide();
} else if (ctrlMeta && event.keyCode === Key.P) {
const [, pattern] = await Dialog.prompt('Apply pattern:', '[n][e]');
pattern && applyPattern(pattern);
}
}
function applyPattern(pattern) {
const newNames = multiRename(pattern, getActiveNames());
const editor = CloudCmd.Edit.getEditor();
editor.setValue(newNames.join('\n'));
}
function getActiveNames() {
return DOM.getFilenames(DOM.getActiveFiles());
}
module.exports.hide = hide;
function hide() {
CloudCmd.Edit.hide();
}
function setListeners() {
const element = CloudCmd.Edit.getElement();
DOM.Events.addOnce('contextmenu', element, setMenu);
}
async function applyNames() {
const dir = Info.dirPath;
const from = getActiveNames();
const nameIndex = from.indexOf(Info.name);
const editor = CloudCmd.Edit.getEditor();
const to = editor
.getValue()
.split('\n');
const root = CloudCmd.config('root');
const response = rename(dir, from, to, root);
const [error] = await tryToCatch(refresh, to, nameIndex, response);
if (error)
alert(error);
}
function refresh(to, nameIndex, res) {
if (res.status === 404) {
const error = res.text();
throw error;
}
const currentName = to[nameIndex];
CloudCmd.refresh({
currentName,
});
}
function getDir(root, dir) {
if (root === '/')
return dir;
return root + dir;
}
function rename(path, from, to, root) {
const dir = getDir(root, path);
const {prefix} = CloudCmd;
return fetch(`${prefix}/rename`, {
method: 'put',
credentials: 'include',
body: JSON.stringify({
from,
to,
dir,
}),
});
}
function setMenu(event) {
const position = {
x: event.clientX,
y: event.clientY,
};
event.preventDefault();
if (Menu)
return;
const editor = CloudCmd.Edit.getEditor();
const options = {
beforeShow: (params) => {
params.x -= 18;
params.y -= 27;
},
afterClick: () => {
editor.focus();
},
};
const menuData = {
'Save Ctrl+S': async () => {
await applyNames();
hide();
},
'Go To Line Ctrl+G': () => {
editor.goToLine();
},
'Cut Ctrl+X': () => {
editor.cutToClipboard();
},
'Copy Ctrl+C': () => {
editor.copyToClipboard();
},
'Paste Ctrl+V': () => {
editor.pasteFromClipboard();
},
'Delete Del': () => {
editor.remove('right');
},
'Select All Ctrl+A': () => {
editor.selectAll();
},
'Close Esc': hide,
};
const element = CloudCmd.Edit.getElement();
Menu = supermenu(element, options, menuData);
Menu.addContextMenuListener();
Menu.show(position.x, position.y);
}
module.exports.isChanged = isChanged;
async function isChanged() {
const editor = CloudCmd.Edit.getEditor();
const msg = 'Apply new names?';
if (!editor.isChanged())
return;
const [cancel] = await Dialog.confirm(msg);
!cancel && await applyNames();
}

122
client/modules/edit.js Normal file
View file

@ -0,0 +1,122 @@
/* global CloudCmd */
'use strict';
const montag = require('montag');
const {promisify} = require('es6-promisify');
const {tryToCatch} = require('try-to-catch');
const createElement = require('@cloudcmd/create-element');
const load = require('load.js');
const {MAX_FILE_SIZE: maxSize} = require('../../common/cloudfunc.mjs');
const {time, timeEnd} = require('../../common/util');
const getEditor = () => editor;
const isFn = (a) => typeof a === 'function';
const loadJS = load.js;
const Name = 'Edit';
CloudCmd[Name] = exports;
const EditorName = CloudCmd.config('editor');
let Loading = true;
let Element;
let editor;
const ConfigView = {
afterShow: () => {
editor
.moveCursorTo(0, 0)
.focus();
},
};
module.exports.init = async () => {
const element = create();
await CloudCmd.View();
await loadFiles(element);
};
function create() {
const element = createElement('div', {
style: montag`
width: 100%;
height: 100%;
font-family: "Droid Sans Mono";
`,
notAppend: true,
});
Element = element;
return element;
}
function checkFn(name, fn) {
if (!isFn(fn))
throw Error(`${name} should be a function!`);
}
function initConfig(options = {}) {
const config = {
...options,
...ConfigView,
};
if (!options.afterShow)
return config;
checkFn('options.afterShow', options.afterShow);
config.afterShow = () => {
ConfigView.afterShow();
options.afterShow();
};
return config;
}
module.exports.show = (options) => {
if (Loading)
return;
CloudCmd.View.show(Element, initConfig(options));
getEditor().setOptions({
fontSize: 16,
});
};
module.exports.getEditor = getEditor;
module.exports.getElement = () => Element;
module.exports.hide = () => {
CloudCmd.View.hide();
};
const loadFiles = async (element) => {
const prefix = `${CloudCmd.prefix}/${EditorName}`;
const socketPath = CloudCmd.prefix;
const prefixSocket = `${CloudCmd.prefixSocket}/${EditorName}`;
const url = `${prefix}/${EditorName}.js`;
time(`${Name} load`);
await loadJS(url);
const word = promisify(window[EditorName]);
const [ed] = await tryToCatch(word, element, {
maxSize,
prefix,
prefixSocket,
socketPath,
});
timeEnd(`${Name} load`);
editor = ed;
Loading = false;
};

27
client/modules/help.js Normal file
View file

@ -0,0 +1,27 @@
'use strict';
/* global CloudCmd */
CloudCmd.Help = exports;
const Images = require('../dom/images.mjs');
module.exports.init = () => {
Images.show.load('top');
};
module.exports.show = show;
module.exports.hide = hide;
function show() {
const positionLoad = 'top';
const relative = true;
CloudCmd.Markdown.show('/HELP.md', {
positionLoad,
relative,
});
}
function hide() {
CloudCmd.View.hide();
}

141
client/modules/konsole.js Normal file
View file

@ -0,0 +1,141 @@
'use strict';
/* global CloudCmd */
/* global Util */
/* global DOM */
/* global Console */
CloudCmd.Konsole = exports;
const exec = require('execon');
const currify = require('currify');
const {tryToCatch} = require('try-to-catch');
const loadJS = require('load.js').js;
const createElement = require('@cloudcmd/create-element');
const Images = require('../dom/images.mjs');
const {Dialog, CurrentInfo: Info} = DOM;
const rmLastSlash = (a) => a.replace(/\/$/, '') || '/';
let konsole;
const {config} = CloudCmd;
const cd = currify((fn, dir) => fn(`cd ${rmLastSlash(dir)}`));
const Name = 'Konsole';
let Element;
let Loaded;
module.exports.init = async () => {
if (!config('console'))
return;
Images.show.load('top');
await CloudCmd.View();
await load();
await create();
};
module.exports.hide = () => {
CloudCmd.View.hide();
};
module.exports.clear = () => {
konsole.clear();
};
const getPrefix = () => CloudCmd.prefix + '/console';
function getPrefixSocket() {
return CloudCmd.prefixSocket + '/console';
}
const getEnv = () => ({
ACTIVE_DIR: DOM.getCurrentDirPath.bind(DOM),
PASSIVE_DIR: DOM.getNotCurrentDirPath.bind(DOM),
CURRENT_NAME: DOM.getCurrentName.bind(DOM),
CURRENT_PATH: () => Info.path,
});
async function onPath(path) {
if (Info.dirPath === path)
return;
await CloudCmd.changeDir(path);
}
const getDirPath = () => {
if (config('syncConsolePath'))
return Info.dirPath;
};
const create = async () => {
const options = {
cwd: getDirPath(),
env: getEnv(),
prefix: getPrefix(),
prefixSocket: getPrefixSocket(),
socketPath: CloudCmd.prefix,
};
Element = createElement('div', {
className: 'console',
});
konsole = await Console(Element, options);
konsole.on('connect', exec.with(authCheck, konsole));
konsole.on('path', config.if('syncConsolePath', onPath));
CloudCmd.on('active-dir', config.if('syncConsolePath', cd(konsole.handler)));
konsole.addShortCuts({
P: () => {
const command = konsole.getPromptText();
const path = DOM.getCurrentDirPath();
konsole.setPromptText(command + path);
},
});
};
function authCheck(konsole) {
konsole.emit('auth', config('username'), config('password'));
konsole.on('reject', () => {
Dialog.alert('Wrong credentials!');
});
}
module.exports.show = (callback) => {
if (!Loaded)
return;
if (!config('console'))
return;
CloudCmd.View.show(Element, {
afterShow: () => {
konsole.focus();
exec(callback);
},
});
};
const load = async () => {
Util.time(`${Name} load`);
const prefix = getPrefix();
const url = `${prefix}/console.js`;
const [error] = await tryToCatch(loadJS, url);
Loaded = true;
Util.timeEnd(`${Name} load`);
if (error)
return Dialog.alert(error.message, {
cancel: false,
});
};

View file

@ -0,0 +1,47 @@
'use strict';
/* global CloudCmd */
CloudCmd.Markdown = exports;
const createElement = require('@cloudcmd/create-element');
const Images = require('../dom/images.mjs');
const {Markdown} = require('../dom/rest');
const {alert} = require('../dom/dialog');
module.exports.init = async () => {
Images.show.load('top');
await CloudCmd.View();
};
module.exports.show = show;
module.exports.hide = () => {
CloudCmd.View.hide();
};
async function show(name, options = {}) {
const {positionLoad, relative} = options;
Images.show.load(positionLoad);
if (relative)
name += '?relative';
const [error, innerHTML] = await Markdown.read(name);
Images.hide();
if (error)
return alert(error.message, {
cancel: false,
});
const className = 'help';
const div = createElement('div', {
className,
innerHTML,
});
CloudCmd.View.show(div);
}

View file

@ -0,0 +1,30 @@
import supermenu from 'supermenu';
const noop = () => {};
const {CloudCmd} = globalThis;
export const createCloudMenu = async (fm, options, menuData) => {
const createMenu = await loadMenu();
const menu = await createMenu(fm, options, menuData);
menu.addContextMenuListener = menu.addContextMenuListener || noop;
return menu;
};
async function loadMenu() {
if (CloudCmd.config('menu') === 'aleman') {
const {host, protocol} = globalThis.location;
const url = `${protocol}//${host}/node_modules/aleman/menu/menu.js`;
const {createMenu} = await import(/* webpackIgnore: true */url);
return createMenu;
}
return createSupermenu;
}
function createSupermenu(name, options, menuData) {
const element = document.querySelector('[data-name="js-fm"]');
return supermenu(element, options, menuData);
}

View file

@ -0,0 +1,357 @@
/* global CloudCmd, DOM */
'use strict';
const exec = require('execon');
const wrap = require('wraptile');
const createElement = require('@cloudcmd/create-element');
const {FS} = require('../../../common/cloudfunc.mjs');
const {getIdBySrc} = require('../../dom/load');
const RESTful = require('../../dom/rest');
const {config, Key} = CloudCmd;
const {
Buffer,
Events,
Dialog,
Images,
} = DOM;
const Info = DOM.CurrentInfo;
const alertNoFiles = Dialog.alert.noFiles;
const uploadTo = wrap(_uploadTo);
let MenuShowedName;
let MenuContext;
let MenuContextFile;
module.exports.ENABLED = false;
CloudCmd.Menu = exports;
module.exports.init = async () => {
const {isAuth, menuDataFile} = getFileMenuData();
const fm = DOM.getFM();
const menuData = getMenuData(isAuth);
const options = getOptions({
type: 'context',
});
const optionsFile = getOptions({
type: 'file',
});
const {createCloudMenu} = await import('./cloudmenu.mjs');
const {name} = fm.dataset;
MenuContext = await createCloudMenu(name, options, menuData);
MenuContextFile = await createCloudMenu(name, optionsFile, menuDataFile);
MenuContext.addContextMenuListener();
MenuContextFile.addContextMenuListener();
Events.addKey(listener);
};
module.exports.hide = hide;
function hide() {
MenuContext.hide();
MenuContextFile.hide();
}
module.exports.show = (position) => {
const {x, y} = getPosition(position);
MenuContext.show(x, y);
MenuContextFile.show(x, y);
Images.hide();
};
function getPosition(position) {
if (position)
return {
x: position.x,
y: position.y,
};
return getCurrentPosition();
}
function getMenuNameByEl(el) {
if (!el)
return 'context';
const name = DOM.getCurrentName(el);
if (name === '..')
return 'context';
return 'contextFile';
}
function getOptions({type}) {
let name;
let func;
if (type === 'context') {
name = 'context';
func = Key.unsetBind;
} else if (type === 'file') {
name = 'contextFile';
}
const options = {
icon: true,
infiniteScroll: false,
beforeClose: Key.setBind,
beforeHide: Key.setBind,
beforeShow: exec.with(beforeShow, func),
beforeClick,
name,
};
return options;
}
function getMenuData(isAuth) {
const menu = {
'Paste': Buffer.paste,
'New': {
File: DOM.promptNewFile,
Directory: DOM.promptNewDir,
},
'Upload': () => {
CloudCmd.Upload.show();
},
'Upload From Cloud': uploadFromCloud,
'Toggle File Selection': DOM.toggleSelectedFile,
'(Un)Select All': DOM.toggleAllSelectedFiles,
};
if (isAuth)
menu['Log Out'] = CloudCmd.logOut;
return menu;
}
function getFileMenuData() {
const isAuth = CloudCmd.config('auth');
const menuBottom = getMenuData(isAuth);
const menuTop = {
'View': () => {
CloudCmd.View.show();
},
'Edit': () => {
const name = config('vim') ? 'EditFileVim' : 'EditFile';
CloudCmd[name].show();
},
'Rename': () => {
setTimeout(DOM.renameCurrent, 100);
},
'Delete': () => {
CloudCmd.Operation.show('delete');
},
'Pack': () => {
CloudCmd.Operation.show('pack');
},
'Extract': () => {
CloudCmd.Operation.show('extract');
},
'Download': preDownload,
'Upload To Cloud': uploadTo('Cloud'),
'Cut': () => {
isCurrent(Buffer.cut, alertNoFiles);
},
'Copy': () => {
isCurrent(Buffer.copy, alertNoFiles);
},
};
const menuDataFile = {
...menuTop,
...menuBottom,
};
return {
isAuth,
menuDataFile,
};
}
function isCurrent(yesFn, noFn) {
if (Info.name !== '..')
return yesFn();
noFn();
}
function isPath(x, y) {
const {panel} = Info;
const isEmptyRoot = !panel;
if (isEmptyRoot)
return false;
const el = document.elementFromPoint(x, y);
const elements = panel.querySelectorAll('[data-name="js-path"] *');
return !~[].indexOf.call(elements, el);
}
function beforeShow(callback, params) {
Key.unsetBind();
const {
name,
position = {
x: params.x,
y: params.y,
},
} = params;
const {x, y} = position;
const el = DOM.getCurrentByPosition({
x,
y,
});
const menuName = getMenuNameByEl(el);
let isShow = menuName !== 'contextFile';
if (params.name === 'contextFile')
isShow = !isShow;
if (isShow)
MenuShowedName = name;
exec(callback);
if (isShow)
isShow = isPath(x, y);
return isShow;
}
const beforeClick = (name) => MenuShowedName !== name;
async function _uploadTo(nameModule) {
const [error, data] = await Info.getData();
if (error)
return;
const {name} = Info;
CloudCmd.execFromModule(nameModule, 'uploadFile', name, data);
CloudCmd.log(`Uploading to ${name}...`);
}
function uploadFromCloud() {
Images.show.load('top');
CloudCmd.execFromModule('Cloud', 'saveFile', async (currentName, data) => {
const path = DOM.getCurrentDirPath() + currentName;
const [e] = await RESTful.write(path, data);
if (e)
return;
await CloudCmd.refresh({
currentName,
});
});
}
function preDownload() {
download(config('packer'));
}
function download(type) {
const TIME = 30 * 1000;
const {prefixURL} = CloudCmd;
const PACK = '/pack';
const date = Date.now();
const files = DOM.getActiveFiles();
if (!files.length)
return alertNoFiles();
for (const file of files) {
const selected = DOM.isSelected(file);
const isDir = DOM.isCurrentIsDir(file);
const path = DOM.getCurrentPath(file);
CloudCmd.log(`downloading file ${path}...`);
/*
* if we send ajax request -
* no need in hash so we escape #
* and all other characters, like "%"
*/
const encodedPath = encodeURI(path).replace(/#/g, '%23');
const id = getIdBySrc(path);
let src;
if (isDir)
src = prefixURL + PACK + encodedPath + DOM.getPackerExt(type);
else
src = prefixURL + FS + encodedPath + '?download';
const element = createElement('iframe', {
id: id + '-' + date,
async: false,
className: 'hidden',
src,
});
const {body} = document;
const removeChild = body.removeChild.bind(body, element);
setTimeout(removeChild, TIME);
if (selected)
DOM.toggleSelectedFile(file);
}
}
function getCurrentPosition() {
const current = Info.element;
const rect = current.getBoundingClientRect();
const position = {
x: Math.round(rect.left + rect.width / 3),
y: Math.round(rect.top),
};
return position;
}
function listener(event) {
const {F9, ESC} = Key;
const key = event.keyCode;
const isBind = Key.isBind();
if (key === ESC) {
Key.setBind();
return hide();
}
if (isBind && key === F9) {
const position = getCurrentPosition();
MenuContext.show(position.x, position.y);
event.preventDefault();
}
}

View file

@ -0,0 +1,8 @@
'use strict';
module.exports = (operation, from, to) => {
if (!to)
return `${operation} ${from}`;
return `${operation} ${from} -> ${to}`;
};

View file

@ -0,0 +1,18 @@
'use strict';
const currify = require('currify');
const not = currify((array, value) => !array.includes(value));
const notOneOf = currify((a, b) => a.filter(not(b)));
module.exports = (currentName, names, removedNames) => {
const i = names.indexOf(currentName);
const nextNames = notOneOf(names, removedNames);
const {length} = nextNames;
if (nextNames[i])
return nextNames[i];
return nextNames[length - 1];
};

Some files were not shown because too many files have changed in this diff Show more