qcobjects-cli 2.4.66 → 2.5.103-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/.github/workflows/npmpublish-beta.yml +4 -4
  2. package/.github/workflows/npmpublish-lts.yml +4 -4
  3. package/.github/workflows/npmpublish-main.yml +4 -4
  4. package/VERSION +1 -1
  5. package/build-esbuild.js +69 -0
  6. package/eslint.config.mjs +88 -0
  7. package/package.json +74 -46
  8. package/public/browser/backend/com.qcobjects.backend.microservice.static.js +318 -0
  9. package/public/browser/backend/com.qcobjects.backend.microservice.static.js.map +7 -0
  10. package/public/browser/backend/org.qcobjects.backend.php.js +290 -0
  11. package/public/browser/backend/org.qcobjects.backend.php.js.map +7 -0
  12. package/public/browser/com.qcobjects.cli.commands.jira.client_services.js +72 -0
  13. package/public/browser/com.qcobjects.cli.commands.jira.client_services.js.map +7 -0
  14. package/public/browser/com.qcobjects.cli.commands.jira.js +117 -0
  15. package/public/browser/com.qcobjects.cli.commands.jira.js.map +7 -0
  16. package/public/browser/com.qcobjects.cli.commands.js +30 -0
  17. package/public/browser/com.qcobjects.cli.commands.js.map +7 -0
  18. package/public/browser/com.qcobjects.cli.commands.version.js +241 -0
  19. package/public/browser/com.qcobjects.cli.commands.version.js.map +7 -0
  20. package/public/browser/index.js +97 -0
  21. package/public/browser/index.js.map +7 -0
  22. package/public/browser/org.qcobjects.common.pipelog.js +43 -0
  23. package/public/browser/org.qcobjects.common.pipelog.js.map +7 -0
  24. package/public/browser/org.qcobjects.enterprise.commands.js +169 -0
  25. package/public/browser/org.qcobjects.enterprise.commands.js.map +7 -0
  26. package/public/browser/org.quickcorp.qcobjects.api.client_services.js +72 -0
  27. package/public/browser/org.quickcorp.qcobjects.api.client_services.js.map +7 -0
  28. package/public/browser/org.quickcorp.qcobjects.cli.js +3185 -0
  29. package/public/browser/org.quickcorp.qcobjects.cli.js.map +7 -0
  30. package/public/browser/org.quickcorp.qcobjects.collab.server.js +422 -0
  31. package/public/browser/org.quickcorp.qcobjects.collab.server.js.map +7 -0
  32. package/public/browser/org.quickcorp.qcobjects.defaultsettings.js +383 -0
  33. package/public/browser/org.quickcorp.qcobjects.defaultsettings.js.map +7 -0
  34. package/public/browser/org.quickcorp.qcobjects.main.file.js +248 -0
  35. package/public/browser/org.quickcorp.qcobjects.main.file.js.map +7 -0
  36. package/public/browser/org.quickcorp.qcobjects.main.http.gae.server.js +538 -0
  37. package/public/browser/org.quickcorp.qcobjects.main.http.gae.server.js.map +7 -0
  38. package/public/browser/org.quickcorp.qcobjects.main.http.server.js +600 -0
  39. package/public/browser/org.quickcorp.qcobjects.main.http.server.js.map +7 -0
  40. package/public/browser/org.quickcorp.qcobjects.main.http2.server.js +465 -0
  41. package/public/browser/org.quickcorp.qcobjects.main.http2.server.js.map +7 -0
  42. package/public/browser/qcobjects-cli.js +89 -0
  43. package/public/browser/qcobjects-cli.js.map +7 -0
  44. package/public/browser/qcobjects-collab.js +41 -0
  45. package/public/browser/qcobjects-collab.js.map +7 -0
  46. package/public/browser/qcobjects-createcert.js +67 -0
  47. package/public/browser/qcobjects-createcert.js.map +7 -0
  48. package/public/browser/qcobjects-gae-http-server.js +41 -0
  49. package/public/browser/qcobjects-gae-http-server.js.map +7 -0
  50. package/public/browser/qcobjects-http-server.js +41 -0
  51. package/public/browser/qcobjects-http-server.js.map +7 -0
  52. package/public/browser/qcobjects-http2-server.js +44 -0
  53. package/public/browser/qcobjects-http2-server.js.map +7 -0
  54. package/public/browser/qcobjects-shell.js +50 -0
  55. package/public/browser/qcobjects-shell.js.map +7 -0
  56. package/public/browser/types/global/index.d.js +15 -0
  57. package/public/browser/types/global/index.d.js.map +7 -0
  58. package/public/cjs/backend/com.qcobjects.backend.microservice.static.cjs +305 -0
  59. package/public/cjs/backend/com.qcobjects.backend.microservice.static.cjs.map +7 -0
  60. package/public/cjs/backend/org.qcobjects.backend.php.cjs +273 -0
  61. package/public/cjs/backend/org.qcobjects.backend.php.cjs.map +7 -0
  62. package/public/cjs/com.qcobjects.cli.commands.cjs +13 -0
  63. package/public/cjs/com.qcobjects.cli.commands.cjs.map +7 -0
  64. package/public/cjs/com.qcobjects.cli.commands.jira.cjs +100 -0
  65. package/public/cjs/com.qcobjects.cli.commands.jira.cjs.map +7 -0
  66. package/public/cjs/com.qcobjects.cli.commands.jira.client_services.cjs +55 -0
  67. package/public/cjs/com.qcobjects.cli.commands.jira.client_services.cjs.map +7 -0
  68. package/public/cjs/com.qcobjects.cli.commands.version.cjs +224 -0
  69. package/public/cjs/com.qcobjects.cli.commands.version.cjs.map +7 -0
  70. package/public/cjs/index.cjs +89 -0
  71. package/public/cjs/index.cjs.map +7 -0
  72. package/public/cjs/org.qcobjects.common.pipelog.cjs +26 -0
  73. package/public/cjs/org.qcobjects.common.pipelog.cjs.map +7 -0
  74. package/public/cjs/org.qcobjects.enterprise.commands.cjs +152 -0
  75. package/public/cjs/org.qcobjects.enterprise.commands.cjs.map +7 -0
  76. package/public/cjs/org.quickcorp.qcobjects.api.client_services.cjs +55 -0
  77. package/public/cjs/org.quickcorp.qcobjects.api.client_services.cjs.map +7 -0
  78. package/public/cjs/org.quickcorp.qcobjects.cli.cjs +3172 -0
  79. package/public/cjs/org.quickcorp.qcobjects.cli.cjs.map +7 -0
  80. package/public/cjs/org.quickcorp.qcobjects.collab.server.cjs +405 -0
  81. package/public/cjs/org.quickcorp.qcobjects.collab.server.cjs.map +7 -0
  82. package/public/cjs/org.quickcorp.qcobjects.defaultsettings.cjs +366 -0
  83. package/public/cjs/org.quickcorp.qcobjects.defaultsettings.cjs.map +7 -0
  84. package/public/cjs/org.quickcorp.qcobjects.main.file.cjs +235 -0
  85. package/public/cjs/org.quickcorp.qcobjects.main.file.cjs.map +7 -0
  86. package/public/cjs/org.quickcorp.qcobjects.main.http.gae.server.cjs +525 -0
  87. package/public/cjs/org.quickcorp.qcobjects.main.http.gae.server.cjs.map +7 -0
  88. package/public/cjs/org.quickcorp.qcobjects.main.http.server.cjs +587 -0
  89. package/public/cjs/org.quickcorp.qcobjects.main.http.server.cjs.map +7 -0
  90. package/public/cjs/org.quickcorp.qcobjects.main.http2.server.cjs +452 -0
  91. package/public/cjs/org.quickcorp.qcobjects.main.http2.server.cjs.map +7 -0
  92. package/public/cjs/qcobjects-cli.cjs +81 -0
  93. package/public/cjs/qcobjects-cli.cjs.map +7 -0
  94. package/public/cjs/qcobjects-collab.cjs +24 -0
  95. package/public/cjs/qcobjects-collab.cjs.map +7 -0
  96. package/public/cjs/qcobjects-createcert.cjs +50 -0
  97. package/public/cjs/qcobjects-createcert.cjs.map +7 -0
  98. package/public/cjs/qcobjects-gae-http-server.cjs +24 -0
  99. package/public/cjs/qcobjects-gae-http-server.cjs.map +7 -0
  100. package/public/cjs/qcobjects-http-server.cjs +24 -0
  101. package/public/cjs/qcobjects-http-server.cjs.map +7 -0
  102. package/public/cjs/qcobjects-http2-server.cjs +27 -0
  103. package/public/cjs/qcobjects-http2-server.cjs.map +7 -0
  104. package/public/cjs/qcobjects-shell.cjs +34 -0
  105. package/public/cjs/qcobjects-shell.cjs.map +7 -0
  106. package/public/cjs/types/global/index.d.cjs +2 -0
  107. package/public/cjs/types/global/index.d.cjs.map +7 -0
  108. package/public/esm/backend/com.qcobjects.backend.microservice.static.mjs +315 -0
  109. package/public/esm/backend/com.qcobjects.backend.microservice.static.mjs.map +7 -0
  110. package/public/esm/backend/org.qcobjects.backend.php.mjs +287 -0
  111. package/public/esm/backend/org.qcobjects.backend.php.mjs.map +7 -0
  112. package/public/esm/com.qcobjects.cli.commands.jira.client_services.mjs +69 -0
  113. package/public/esm/com.qcobjects.cli.commands.jira.client_services.mjs.map +7 -0
  114. package/public/esm/com.qcobjects.cli.commands.jira.mjs +114 -0
  115. package/public/esm/com.qcobjects.cli.commands.jira.mjs.map +7 -0
  116. package/public/esm/com.qcobjects.cli.commands.mjs +27 -0
  117. package/public/esm/com.qcobjects.cli.commands.mjs.map +7 -0
  118. package/public/esm/com.qcobjects.cli.commands.version.mjs +238 -0
  119. package/public/esm/com.qcobjects.cli.commands.version.mjs.map +7 -0
  120. package/public/esm/index.mjs +78 -0
  121. package/public/esm/index.mjs.map +7 -0
  122. package/public/esm/org.qcobjects.common.pipelog.mjs +40 -0
  123. package/public/esm/org.qcobjects.common.pipelog.mjs.map +7 -0
  124. package/public/esm/org.qcobjects.enterprise.commands.mjs +166 -0
  125. package/public/esm/org.qcobjects.enterprise.commands.mjs.map +7 -0
  126. package/public/esm/org.quickcorp.qcobjects.api.client_services.mjs +69 -0
  127. package/public/esm/org.quickcorp.qcobjects.api.client_services.mjs.map +7 -0
  128. package/public/esm/org.quickcorp.qcobjects.cli.mjs +3182 -0
  129. package/public/esm/org.quickcorp.qcobjects.cli.mjs.map +7 -0
  130. package/public/esm/org.quickcorp.qcobjects.collab.server.mjs +419 -0
  131. package/public/esm/org.quickcorp.qcobjects.collab.server.mjs.map +7 -0
  132. package/public/esm/org.quickcorp.qcobjects.defaultsettings.mjs +380 -0
  133. package/public/esm/org.quickcorp.qcobjects.defaultsettings.mjs.map +7 -0
  134. package/public/esm/org.quickcorp.qcobjects.main.file.mjs +245 -0
  135. package/public/esm/org.quickcorp.qcobjects.main.file.mjs.map +7 -0
  136. package/public/esm/org.quickcorp.qcobjects.main.http.gae.server.mjs +535 -0
  137. package/public/esm/org.quickcorp.qcobjects.main.http.gae.server.mjs.map +7 -0
  138. package/public/esm/org.quickcorp.qcobjects.main.http.server.mjs +597 -0
  139. package/public/esm/org.quickcorp.qcobjects.main.http.server.mjs.map +7 -0
  140. package/public/esm/org.quickcorp.qcobjects.main.http2.server.mjs +462 -0
  141. package/public/esm/org.quickcorp.qcobjects.main.http2.server.mjs.map +7 -0
  142. package/public/esm/qcobjects-cli.mjs +68 -0
  143. package/public/esm/qcobjects-cli.mjs.map +7 -0
  144. package/public/esm/qcobjects-collab.mjs +38 -0
  145. package/public/esm/qcobjects-collab.mjs.map +7 -0
  146. package/public/esm/qcobjects-createcert.mjs +64 -0
  147. package/public/esm/qcobjects-createcert.mjs.map +7 -0
  148. package/public/esm/qcobjects-gae-http-server.mjs +38 -0
  149. package/public/esm/qcobjects-gae-http-server.mjs.map +7 -0
  150. package/public/esm/qcobjects-http-server.mjs +38 -0
  151. package/public/esm/qcobjects-http-server.mjs.map +7 -0
  152. package/public/esm/qcobjects-http2-server.mjs +41 -0
  153. package/public/esm/qcobjects-http2-server.mjs.map +7 -0
  154. package/public/esm/qcobjects-shell.mjs +26 -0
  155. package/public/esm/qcobjects-shell.mjs.map +7 -0
  156. package/public/esm/types/global/index.d.mjs +12 -0
  157. package/public/esm/types/global/index.d.mjs.map +7 -0
  158. package/public/index.d.ts +35 -0
  159. package/spec/support/jasmine.json +7 -4
  160. package/src/backend/{com.qcobjects.backend.microservice.static.js → com.qcobjects.backend.microservice.static.ts} +42 -28
  161. package/src/backend/org.qcobjects.backend.php.ts +348 -0
  162. package/src/{com.qcobjects.cli.commands.jira.client_services.js → com.qcobjects.cli.commands.jira.client_services.ts} +49 -33
  163. package/src/com.qcobjects.cli.commands.jira.ts +147 -0
  164. package/src/com.qcobjects.cli.commands.version.ts +293 -0
  165. package/src/{index.mjs → index.cts} +1 -1
  166. package/src/index.mts +2 -0
  167. package/src/index.ts +1 -1
  168. package/src/{org.qcobjects.common.pipelog.js → org.qcobjects.common.pipelog.ts} +4 -4
  169. package/src/org.qcobjects.enterprise.commands.ts +195 -0
  170. package/src/{org.quickcorp.qcobjects.api.client_services.js → org.quickcorp.qcobjects.api.client_services.ts} +49 -32
  171. package/src/org.quickcorp.qcobjects.cli.ts +533 -0
  172. package/src/org.quickcorp.qcobjects.collab.server.ts +420 -0
  173. package/src/{org.quickcorp.qcobjects.defaultsettings.js → org.quickcorp.qcobjects.defaultsettings.ts} +118 -95
  174. package/src/org.quickcorp.qcobjects.main.file.ts +180 -0
  175. package/src/org.quickcorp.qcobjects.main.http.gae.server.ts +507 -0
  176. package/src/org.quickcorp.qcobjects.main.http.server.ts +551 -0
  177. package/src/org.quickcorp.qcobjects.main.http2.server.ts +419 -0
  178. package/src/{qcobjects-cli.js → qcobjects-cli.ts} +7 -8
  179. package/src/{qcobjects-collab.js → qcobjects-collab.ts} +4 -4
  180. package/src/{qcobjects-createcert.js → qcobjects-createcert.ts} +5 -3
  181. package/src/{qcobjects-gae-http-server.js → qcobjects-gae-http-server.ts} +4 -4
  182. package/src/{qcobjects-http-server.js → qcobjects-http-server.ts} +4 -4
  183. package/src/{qcobjects-http2-server.js → qcobjects-http2-server.ts} +6 -8
  184. package/src/{qcobjects-shell.js → qcobjects-shell.ts} +11 -14
  185. package/src/types/global/index.d.ts +2 -0
  186. package/tsconfig.d.json +45 -3
  187. package/tsconfig.jasmine.json +39 -0
  188. package/tsconfig.json +50 -7
  189. package/.eslintignore +0 -5
  190. package/.eslintrc.cjs +0 -6
  191. package/src/backend/org.qcobjects.backend.php.js +0 -334
  192. package/src/com.qcobjects.cli.commands.jira.js +0 -144
  193. package/src/com.qcobjects.cli.commands.version.js +0 -285
  194. package/src/index.cjs +0 -2
  195. package/src/index.d.ts +0 -2
  196. package/src/org.qcobjects.enterprise.commands.js +0 -194
  197. package/src/org.quickcorp.qcobjects.cli.js +0 -523
  198. package/src/org.quickcorp.qcobjects.collab.server.js +0 -415
  199. package/src/org.quickcorp.qcobjects.main.file.js +0 -159
  200. package/src/org.quickcorp.qcobjects.main.http.gae.server.js +0 -495
  201. package/src/org.quickcorp.qcobjects.main.http.server.js +0 -529
  202. package/src/org.quickcorp.qcobjects.main.http2.server.js +0 -392
  203. /package/spec/{testsSpec.js → testsSpec.ts} +0 -0
  204. /package/src/{com.qcobjects.cli.commands.js → com.qcobjects.cli.commands.ts} +0 -0
@@ -1,415 +0,0 @@
1
- /**
2
- * QCObjects CLI 2.4.x
3
- * ________________
4
- *
5
- * Author: Jean Machuca <correojean@gmail.com>
6
- *
7
- * Cross Browser Javascript Framework for MVC Patterns
8
- * QuickCorp/QCObjects is licensed under the
9
- * GNU Lesser General Public License v3.0
10
- * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)
11
- *
12
- * Permissions of this copyleft license are conditioned on making available
13
- * complete source code of licensed works and modifications under the same
14
- * license or the GNU GPLv3. Copyright and license notices must be preserved.
15
- * Contributors provide an express grant of patent rights. However, a larger
16
- * work using the licensed work through interfaces provided by the licensed
17
- * work may be distributed under different terms and without source code for
18
- * the larger work.
19
- *
20
- * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>
21
- *
22
- * Everyone is permitted to copy and distribute verbatim copies of this
23
- * license document, but changing it is not allowed.
24
- */
25
- /*eslint no-unused-vars: "off"*/
26
- /*eslint no-redeclare: "off"*/
27
- /*eslint no-empty: "off"*/
28
- /*eslint strict: "off"*/
29
- /*eslint no-mixed-operators: "off"*/
30
- /*eslint no-undef: "off"*/
31
- "use strict";
32
- const os = require("os");
33
- const fs = require("fs");
34
-
35
- const welcometo = "Welcome to \n";
36
- const instructions = "Type:\n .exit to quit\n .help for see a quick guide\n And any other command to execute like pure javascript \n All the QCObjects stuff is already loaded for you";
37
- //const logo = ' .88888. a88888b. .88888. dP oo dP \r\nd8\' `8b d8\' `88 d8\' `8b 88 88 \r\n88 88 88 88 88 88d888b. dP .d8888b. .d8888b. d8888P .d8888b. \r\n88 db 88 88 88 88 88\' `88 88 88ooood8 88\' `\"\" 88 Y8ooooo. \r\nY8. Y88P Y8. .88 Y8. .8P 88. .88 88 88. ... 88. ... 88 88 \r\n `8888PY8b Y88888P\' `8888P\' 88Y8888\' 88 `88888P\' `88888P\' dP `88888P\' \r\noooooooooooooooooooooooooooooooooooooooo88~oooooooooooooooooooooooooooooooooo\r\n dP ';
38
- const logo = " .d88888b. .d8888b. .d88888b. 888 d8b 888 \r\nd88P\" \"Y88bd88P Y88bd88P\" \"Y88b888 Y8P 888 \r\n888 888888 888888 888888 888 \r\n888 888888 888 88888888b. 8888 .d88b. .d8888b888888.d8888b \r\n888 888888 888 888888 \"88b \"888d8P Y8bd88P\" 888 88K \r\n888 Y8b 888888 888888 888888 888 88888888888888 888 \"Y8888b. \r\nY88b.Y8b88PY88b d88PY88b. .d88P888 d88P 888Y8b. Y88b. Y88b. X88 \r\n \"Y888888\" \"Y8888P\" \"Y88888P\" 88888P\" 888 \"Y8888 \"Y8888P \"Y888 88888P' \r\n Y8b 888 \r\n d88P \r\n 888P\" ";
39
- const path = require("path");
40
- const absolutePath = path.resolve( __dirname, "./" );
41
- const { exec,execSync } = require("child_process");
42
-
43
- console.log(welcometo);
44
- console.log(logo);
45
-
46
- let unixsocket_default = os.tmpdir()+"/qcobjects-collab-socket" + Date.now().toString();
47
- let collab_port_default = 10300;
48
- let collab_domain_default = "0.0.0.0";
49
-
50
- if (process.argv.length<3){
51
- console.log(instructions);
52
-
53
- const collabinstructions = `
54
- Collab for Data Science
55
- =======================
56
-
57
- QCObjects Collab is a tool that helps you to make data science math using JavaScript
58
-
59
- You can use a TCP socket to connect yourself to the engine:
60
-
61
- > ssh user@${CONFIG.get("domain",collab_domain_default)} nc ${CONFIG.get("collab-domain",collab_domain_default)} ${CONFIG.get("collab-port",collab_port_default)}
62
-
63
- You can also use a Unix Socket to connect yourself to the engine:
64
-
65
- > ssh user@${CONFIG.get("domain",collab_domain_default)} nc -U ${CONFIG.get("collab-unix-socket",unixsocket_default)}
66
-
67
- (change "user" for whathever your username is!)
68
-
69
- `;
70
- console.log(collabinstructions);
71
-
72
- }
73
-
74
- Package("org.quickcorp.qcobjects.collab.server",[
75
- class CollabServer extends InheritClass {
76
- constructor(){
77
- super(...arguments);
78
- this.protected_symbols= [ "clearInterval",
79
- "clearTimeout",
80
- "setInterval",
81
- "setTimeout", "queueMicrotask",
82
- "clearImmediate", "setImmediate", "_asyncLoad",
83
- "_fireAsyncLoad", "asyncLoad", "logger",
84
- "_Crypt", "CONFIG", "waitUntil",
85
- "_super_", "ComplexStorageCache", "TagElements",
86
- "onload", "InheritClass", "Component",
87
- "Controller", "View", "Service",
88
- "JSONService", "ConfigService", "VO",
89
- "serviceLoader", "componentLoader", "ComponentURI",
90
- "SourceJS", "SourceCSS", "ArrayList",
91
- "ArrayCollection", "Effect", "Timer",
92
- "Export", "Import", "Package",
93
- "Class", "New", "Tag",
94
- "Ready", "Contact", "FormField",
95
- "ButtonField", "InputField", "TextField",
96
- "EmailField", "GridComponent", "GridController",
97
- "GridView", "Move", "RotateX",
98
- "RotateY", "RotateZ", "Rotate",
99
- "Fade", "Radius", "CanvasTool",
100
- "BasicLayout"
101
- ];
102
- this.commands= {
103
- loadcmd_json:{
104
- help: `
105
- Executes a CMD Shell Command
106
- and loads the stdout to a variable after trying to convert the result
107
- to JSON format
108
- The first argument is the variable name followed by an equal sign "=".
109
- Example:
110
- > .loadcmd_json result = cat somefile.json
111
-
112
- The above command will save the content of somefile.json using cat into the variable global.result
113
- as JSON format
114
- `,
115
- action(args) {
116
- let _rplServer = this;
117
- var commandArgs = args.split(" ");
118
- if (commandArgs.length>2){
119
- var _variableName = commandArgs[0];
120
- var _equal_sign = commandArgs[1].toString();
121
- if (_equal_sign === "="){
122
- var cmdArguments = commandArgs.slice(2).join(" ");
123
- _rplServer.clearBufferedCommand();
124
- logger.debug(`Executing... ${cmdArguments}`);
125
- exec(cmdArguments, (err, stdout, stderr) => {
126
- try {
127
- _rplServer.context[_variableName] = JSON.parse(stdout);
128
- } catch (e){
129
- logger.debug("It was not possible to parse the data.");
130
- }
131
- _rplServer.displayPrompt();
132
- }).stdout.on("data", function(data) {
133
- console.log(data);
134
- });
135
- } else {
136
- console.log("That is no good my friend. You need to specify an equal sign.");
137
- _rplServer.displayPrompt();
138
- }
139
- } else {
140
- console.log("No enough data in the command line. Try .help");
141
- _rplServer.displayPrompt();
142
- }
143
- }
144
- },
145
- loadcmd_str:{
146
- help: `
147
- Executes a CMD Shell Command
148
- and loads the stdout to a variable.
149
- The first argument is the variable name followed by an equal sign "=".
150
- Example:
151
- > .loadcmd_str foo = ls *
152
-
153
- The above command will save the output of "ls *" into the variable global.foo as string
154
- `,
155
- action(args) {
156
- let _rplServer = this;
157
- var commandArgs = args.split(" ");
158
- if (commandArgs.length>2){
159
- var _variableName = commandArgs[0];
160
- var _equal_sign = commandArgs[1].toString();
161
- if (_equal_sign === "="){
162
- var cmdArguments = commandArgs.slice(2).join(" ");
163
- _rplServer.clearBufferedCommand();
164
- logger.debug(`Executing... ${cmdArguments}`);
165
- exec(cmdArguments, (err, stdout, stderr) => {
166
- _rplServer.context[_variableName] = stdout;
167
- _rplServer.displayPrompt();
168
- }).stdout.on("data", function(data) {
169
- console.log(data);
170
- });
171
- } else {
172
- console.log("That is no good my friend. You need to specify an equal sign.");
173
- _rplServer.displayPrompt();
174
- }
175
- } else {
176
- console.log("No enough data in the command line. Try .help");
177
- _rplServer.displayPrompt();
178
- }
179
- }
180
- },
181
- save_json:{
182
- help: `
183
- Serializes a variable using JSON.stringify
184
- and saves it in a file.
185
- The first argument is the variable name and the second argument is the name of the file.
186
- Example:
187
- > .save_json foo ./filename
188
-
189
- The above command will save the stringified content of foo into ./filename
190
- `,
191
- action(args) {
192
- let _rplServer = this;
193
- var commandArgs = args.split(" ");
194
- if (commandArgs.length>=2){
195
- var _variableName = commandArgs[0];
196
- var _filename = commandArgs[1].toString();
197
- logger.debug(`Saving variable ${_variableName} in ${_filename}...`);
198
- var data = JSON.stringify(_rplServer.context[_variableName]);
199
- fs.writeFile(_filename, data, (err) => {
200
- if (err) throw err;
201
- logger.debug(`The data of the file ${_filename} has been saved!`);
202
- _rplServer.displayPrompt();
203
- });
204
-
205
- } else {
206
- console.log("No enough data in the command line. Try .help");
207
- _rplServer.displayPrompt();
208
- }
209
- }
210
- },
211
- load_json:{
212
- help: `
213
- Loads a json from a file and saves it into a variable.
214
- The first argument is the variable name and the second argument is the name of the file.
215
- Example:
216
- > .load_json foo = ./filename
217
-
218
- The above command will load a json from ./filename and save it in global.foo as an object
219
- `,
220
- action(args) {
221
- let _rplServer = this;
222
- var commandArgs = args.split(" ");
223
- if (commandArgs.length>2){
224
- var _variableName = commandArgs[0];
225
- var _equal_sign = commandArgs[1].toString();
226
- if (_equal_sign === "="){
227
- var _filename = commandArgs[2].toString();
228
- logger.debug(`Trying to read ${_variableName} from ${_filename}...`);
229
- fs.readFile(_filename,(err, data) => {
230
- if (err) throw err;
231
- try {
232
- _rplServer.context[_variableName] = JSON.parse(data.toString());
233
- logger.debug(`The data of the file ${_filename} has been loaded!`);
234
- } catch (e){
235
- logger.debug("It was not possible to parse the data.");
236
- }
237
- _rplServer.displayPrompt();
238
- });
239
- } else {
240
- console.log("That is no good my friend. You need to specify an equal sign.");
241
- _rplServer.displayPrompt();
242
- }
243
-
244
- } else {
245
- console.log("No enough data in the command line. Try .help");
246
- _rplServer.displayPrompt();
247
- }
248
- }
249
- },
250
- cmd:{
251
- help: "Executes a CMD Shell Command",
252
- action() {
253
- let _rplServer = this;
254
- var cmdArguments = [...arguments].join(" ");
255
- _rplServer.clearBufferedCommand();
256
- logger.debug(`Executing... ${cmdArguments}`);
257
- exec(cmdArguments, (err, stdout, stderr) => {
258
- _rplServer.displayPrompt();
259
- }).stdout.on("data", function(data) {
260
- console.log(data);
261
- });
262
- }
263
- }
264
- };
265
-
266
- }
267
-
268
- runScript(context){
269
- const runScript = (code,logOutput=false)=>{
270
- const options = {filename:sandbox.__filename};
271
-
272
- const backgroundRunScript = (code)=>{
273
- var output = vm.runInContext(code,context,options);
274
- return output;
275
- };
276
-
277
- var output = backgroundRunScript(code);
278
-
279
-
280
- if (logOutput && typeof output !== "undefined"){
281
- console.log(output);
282
- }
283
- };
284
-
285
- }
286
-
287
- start (){
288
-
289
- var collabServer = this;
290
- const vm = require("vm");
291
- let sandbox = {
292
- require:require,
293
- module:module,
294
- __dirname:"./",
295
- __filename:"qcobjects-collab"
296
- };
297
- global = require("qcobjects");
298
- global.require = require.bind(global);
299
- global.module = module;
300
- global.__dirname = "./";
301
- global.__filename = "qcobjects-collab";
302
- global = vm.createContext(global);
303
-
304
- var net = require("net"),
305
- repl = require("repl");
306
-
307
- global.connections = 0;
308
-
309
- function unlink_socket (){
310
- try {
311
- logger.debug("Trying to delete the socket... ");
312
- fs.unlink(CONFIG.get("collab-unix-socket",unixsocket_default), (err) => {
313
- if (err) {
314
- logger.debug("Unix Socket does not exist");
315
- }
316
- logger.debug("Unix Socket was deleted before start");
317
- });
318
- } catch (e){
319
- // socket doesnt exists
320
- logger.debug("Unix Socket was not deleted");
321
- }
322
- }
323
-
324
- unlink_socket();
325
-
326
- var _defineReplCommands = function (_cmdReplServer,commands){
327
- for (var _command in commands){
328
- _cmdReplServer.defineCommand(_command, commands[_command]);
329
- }
330
- };
331
-
332
- let replServer = repl.start({
333
- useColors: true,
334
- prompt:"QCObjects Collab> ",
335
- terminal: true,
336
- useGlobal: false
337
- });
338
- replServer.context = global;
339
-
340
- replServer.on("exit", () => {
341
- unlink_socket();
342
-
343
- console.log("Thank you for using QCObjects Collab for Data Science!");
344
- console.log("Have a nice day!");
345
- process.exit();
346
- });
347
- _defineReplCommands(replServer,collabServer.commands);
348
-
349
-
350
-
351
- let unixsocket_server = net.createServer(function (unixsocket) {
352
- unixsocket.on("end", () => {
353
- logger.debug("A Unix socket connection was ended");
354
- });
355
- global.connections += 1;
356
- let unixReplServer = repl.start({
357
- prompt: "QCObjects Collab> "
358
- , input: unixsocket
359
- , output: unixsocket
360
- , terminal: true
361
- , useGlobal: false
362
- });
363
- unixReplServer.on("exit", function () {
364
- unixsocket.end();
365
- });
366
- unixReplServer.context=global;
367
- _defineReplCommands(unixReplServer,collabServer.commands);
368
- }).listen(CONFIG.get("collab-unix-socket",unixsocket_default));
369
-
370
-
371
- let http_server = net.createServer(function (httpsocket) {
372
- httpsocket.on("end", () => {
373
- logger.debug("A http connection was ended");
374
- });
375
- global.connections += 1;
376
- let httpReplServer = repl.start({
377
- prompt: "QCObjects Collab> "
378
- , input: httpsocket
379
- , output: httpsocket
380
- , terminal: true
381
- , useGlobal: false
382
- });
383
- httpReplServer.on("exit", function () {
384
- httpsocket.end();
385
- });
386
- httpReplServer.context=global;
387
- _defineReplCommands(httpReplServer,collabServer.commands);
388
- }).listen(CONFIG.get("collab-port",collab_port_default),CONFIG.get("collab-domain",collab_domain_default));
389
-
390
-
391
- http_server.on("error", function (e) {
392
- if (e.code == "EADDRINUSE") {
393
- console.log("Collab HTTP Address in use, retrying...");
394
- setTimeout(function () {
395
- http_server.close();
396
- http_server.listen(CONFIG.get("collab-port",collab_port_default),CONFIG.get("collab-domain",collab_domain_default));
397
- }, 1000);
398
- }
399
- });
400
-
401
- unixsocket_server.on("error", function (e) {
402
- if (e.code == "EADDRINUSE") {
403
- console.log("Collab Unix Socket Address in use, retrying...");
404
- setTimeout(function () {
405
- unixsocket_server.close();
406
- unixsocket_server.listen(CONFIG.get("collab-unix-socket",unixsocket_default));
407
- }, 1000);
408
- }
409
- });
410
- }
411
-
412
-
413
- }
414
-
415
- ]);
@@ -1,159 +0,0 @@
1
- /**
2
- * QCObjects CLI 2.4.x
3
- * ________________
4
- *
5
- * Author: Jean Machuca <correojean@gmail.com>
6
- *
7
- * Cross Browser Javascript Framework for MVC Patterns
8
- * QuickCorp/QCObjects is licensed under the
9
- * GNU Lesser General Public License v3.0
10
- * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)
11
- *
12
- * Permissions of this copyleft license are conditioned on making available
13
- * complete source code of licensed works and modifications under the same
14
- * license or the GNU GPLv3. Copyright and license notices must be preserved.
15
- * Contributors provide an express grant of patent rights. However, a larger
16
- * work using the licensed work through interfaces provided by the licensed
17
- * work may be distributed under different terms and without source code for
18
- * the larger work.
19
- *
20
- * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>
21
- *
22
- * Everyone is permitted to copy and distribute verbatim copies of this
23
- * license document, but changing it is not allowed.
24
- */
25
- /*eslint no-unused-vars: "off"*/
26
- /*eslint no-redeclare: "off"*/
27
- /*eslint no-empty: "off"*/
28
- /*eslint strict: "off"*/
29
- /*eslint no-mixed-operators: "off"*/
30
- /*eslint no-undef: "off"*/
31
- "use strict";
32
- const path = require("path");
33
- const fs = require("fs");
34
- const mime = require("mime");
35
-
36
- const absolutePath = path.resolve(__dirname, "./");
37
-
38
- Package("org.quickcorp.qcobjects.main.file", [
39
- class FileDispatcher extends InheritClass {
40
- constructor({
41
- name = CONFIG.get("documentRootFileIndex"),
42
- template = "",
43
- templateURI = CONFIG.get("documentRootFileIndex"),
44
- headers = {},
45
- body = "",
46
- filename = ""
47
- }) {
48
- super(...arguments);
49
-
50
- var o = this;
51
-
52
- var scriptname = o.scriptname;
53
- this.filename = scriptname;
54
- var pathname = (o.pathname !== "") ? (o.pathname + "/") : ("");
55
- var appTemplateInstance = this;
56
- if (typeof appTemplateInstance.headers === "undefined"){
57
- appTemplateInstance.headers = {
58
- ":status": 500,
59
- "content-type": "text/html"
60
- };
61
- }
62
-
63
- appTemplateInstance.done = o.done;
64
- appTemplateInstance.templateURI = CONFIG.get("documentRoot") + pathname + scriptname;
65
- appTemplateInstance.templateURI = appTemplateInstance.templateURI.replace("//", "/");
66
-
67
- if (appTemplateInstance.isTemplate()) {
68
- fs.readFile(appTemplateInstance.templateURI, function (err, data) {
69
- logger.debug("reading data from " + appTemplateInstance.templateURI);
70
- if (typeof data !== "undefined") {
71
- appTemplateInstance.template = data.toString();
72
- appTemplateInstance._done.call(appTemplateInstance);
73
- } else {
74
- appTemplateInstance.headers = {
75
- ":status": 404,
76
- "content-type": "text/html"
77
- };
78
- appTemplateInstance.done.call(appTemplateInstance,
79
- appTemplateInstance.headers,
80
- "FILE NOT FOUND", "notfound.html", false);
81
- logger.debug("file not found");
82
- }
83
- });
84
- } else {
85
- appTemplateInstance.headers[":status"] = 200;
86
- appTemplateInstance.headers["content-type"] = mime.getType(appTemplateInstance.templateURI);
87
- appTemplateInstance.done.call(appTemplateInstance,
88
- appTemplateInstance.headers,
89
- "", appTemplateInstance.templateURI, false);
90
- }
91
-
92
- logger.info("FileDispatcher initialized");
93
-
94
- }
95
-
96
- file_extension() {
97
- return this.filename.substr(this.filename.indexOf("."));
98
- }
99
- isTemplate() {
100
- return CONFIG.get("useTemplate") && (this.file_extension() == ".html" || this.file_extension() == ".tpl.html");
101
- }
102
- _done() {
103
- var appTemplateInstance = this;
104
- const source = appTemplateInstance.template;
105
- if (appTemplateInstance.isTemplate()) {
106
-
107
- (New(Component, {
108
- name: "static_source",
109
- template: source,
110
- cached: false,
111
- tplsource: "inline",
112
- data: {
113
- title: "QCObjects"
114
- },
115
- done({
116
- request,
117
- component
118
- }) {
119
- appTemplateInstance.body = component.parsedAssignmentText;
120
- return Promise.resolve({
121
- request,
122
- component
123
- });
124
- }
125
- }));
126
-
127
- } else {
128
- appTemplateInstance.body = source;
129
- }
130
-
131
- if ([".png",
132
- ".jpg",
133
- ".jpeg",
134
- ".json",
135
- ".html",
136
- ".tpl.html",
137
- ".css",
138
- ".js",
139
- ".svg"
140
- ].includes(appTemplateInstance.file_extension())) {
141
- appTemplateInstance.headers["content-type"] = mime.getType(appTemplateInstance.templateURI);
142
- appTemplateInstance.headers["cache-control"] = CONFIG.get("cacheControl", "max-age=31536000");
143
- appTemplateInstance.done.call(appTemplateInstance,
144
- appTemplateInstance.headers,
145
- appTemplateInstance.body,
146
- appTemplateInstance.templateURI,
147
- appTemplateInstance.isTemplate());
148
- } else {
149
- appTemplateInstance.done.call(appTemplateInstance, {
150
- ":status": 403,
151
- "content-type": "text/plain"
152
- },
153
- "FORBIDDEN", "notfound.html", false);
154
- }
155
- }
156
- done(headers, body) {}
157
-
158
- }
159
- ]);