qcobjects-cli 2.4.65 → 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} +48 -37
  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
@@ -30,6 +30,8 @@
30
30
  /*eslint no-undef: "off"*/
31
31
  "use strict";
32
32
 
33
+ const {CONFIG, global, logger, _Crypt, findPackageNodePath} = require ("qcobjects");
34
+
33
35
  (function (){
34
36
 
35
37
  const __load_default_settings__ = () => {
@@ -65,7 +67,7 @@
65
67
  };
66
68
 
67
69
 
68
- let setDevMode = function (devmode) {
70
+ const setDevMode = function (devmode:string) {
69
71
  if (typeof devmode !== "undefined") {
70
72
  switch (true) {
71
73
  case devmode == "debug":
@@ -102,7 +104,7 @@
102
104
  var _config = require(CONFIG.get("projectPath") + "config.json");
103
105
  logger.debug("Loading settings from your config.json");
104
106
 
105
- let _secretKey = (_config.hasOwnProperty.call(_config, "domain")) ? (_config["domain"]) : ("_secret_");
107
+ const _secretKey = (_config.hasOwnProperty.call(_config, "domain")) ? (_config["domain"]) : ("_secret_");
106
108
 
107
109
  if (_config.hasOwnProperty.call(_config, "__encoded__")) {
108
110
  _config = JSON.parse(_Crypt.decrypt(_config.__encoded__, _secretKey));
@@ -121,7 +123,7 @@
121
123
  try {
122
124
  process.chdir(CONFIG.get("basePath"));
123
125
  logger.debug(`New directory: ${process.cwd()}`);
124
- } catch (err) {
126
+ } catch (err:any) {
125
127
  logger.warn(`It was impossible to change the current chdir: ${err}`);
126
128
  }
127
129
  }
@@ -135,55 +137,59 @@
135
137
  const path = require("path");
136
138
  const projectPath = CONFIG.get("projectPath", `${process.cwd()}/`);
137
139
  const loadDefaultRoutes = async () => {
138
- const sdkPath = path.resolve(findPackageNodePath("qcobjects-sdk"), "qcobjects-sdk");
139
- const qcobjectsPath = path.resolve(findPackageNodePath("qcobjects"), "qcobjects");
140
- let backend = CONFIG.get("backend");
141
- if (typeof backend === "undefined") {
142
- backend = {};
143
- }
144
- if (typeof backend.routes === "undefined") {
145
- backend.routes = [];
146
- }
147
- backend.routes = backend.routes.concat([{
148
- "name": "QCObjects.js",
149
- "description": "Redirection of QCObjects.js",
150
- "path": "^/QCObjects.js$",
151
- "microservice": "com.qcobjects.backend.microservice.static",
152
- "redirect_to": path.resolve(qcobjectsPath,"src","QCObjects.js"),
153
- "responseHeaders": {},
154
- "cors": {
155
- "allow_origins": "*"
156
- }
157
- },
158
- {
159
- "name": "QCObjects-SDK.js",
160
- "description": "Redirection of QCObjects SDK",
161
- "path": "^/js/packages/QCObjects-SDK.js$",
162
- "microservice": "com.qcobjects.backend.microservice.static",
163
- "redirect_to": path.resolve(sdkPath, "src/QCObjects-SDK.js"),
164
- "responseHeaders": {},
165
- "cors": {
166
- "allow_origins": "*"
167
- }
168
- },
169
- {
170
- "name": "QCObjects-SDK Components",
171
- "description": "Redirection of QCObjects SDK",
172
- "path": "^/qcobjects-sdk/(.*)$",
173
- "microservice": "com.qcobjects.backend.microservice.static",
174
- "redirect_to": path.resolve(sdkPath, "$1"),
175
- "responseHeaders": {},
176
- "cors": {
177
- "allow_origins": "*"
178
- }
140
+ return await new Promise<void> ((resolve, reject) => {
141
+ const sdkPath = path.resolve(findPackageNodePath("qcobjects-sdk"), "qcobjects-sdk");
142
+ const qcobjectsPath = path.resolve(findPackageNodePath("qcobjects"), "qcobjects");
143
+ let backend = CONFIG.get("backend");
144
+ if (typeof backend === "undefined") {
145
+ backend = {};
179
146
  }
180
-
181
- ]);
182
- CONFIG.set("backend", backend);
183
-
147
+ if (typeof backend.routes === "undefined") {
148
+ backend.routes = [];
149
+ }
150
+ backend.routes = backend.routes.concat([{
151
+ "name": "QCObjects.js",
152
+ "description": "Redirection of QCObjects.js",
153
+ "path": "^/QCObjects.js$",
154
+ "microservice": "com.qcobjects.backend.microservice.static",
155
+ "redirect_to": path.resolve(qcobjectsPath,"src","QCObjects.js"),
156
+ "responseHeaders": {},
157
+ "cors": {
158
+ "allow_origins": "*"
159
+ }
160
+ },
161
+ {
162
+ "name": "QCObjects-SDK.js",
163
+ "description": "Redirection of QCObjects SDK",
164
+ "path": "^/js/packages/QCObjects-SDK.js$",
165
+ "microservice": "com.qcobjects.backend.microservice.static",
166
+ "redirect_to": path.resolve(sdkPath, "src/QCObjects-SDK.js"),
167
+ "responseHeaders": {},
168
+ "cors": {
169
+ "allow_origins": "*"
170
+ }
171
+ },
172
+ {
173
+ "name": "QCObjects-SDK Components",
174
+ "description": "Redirection of QCObjects SDK",
175
+ "path": "^/qcobjects-sdk/(.*)$",
176
+ "microservice": "com.qcobjects.backend.microservice.static",
177
+ "redirect_to": path.resolve(sdkPath, "$1"),
178
+ "responseHeaders": {},
179
+ "cors": {
180
+ "allow_origins": "*"
181
+ }
182
+ }
183
+
184
+ ]);
185
+ CONFIG.set("backend", backend);
186
+ resolve();
187
+ });
184
188
  };
185
189
  await loadDefaultRoutes();
186
- })().then(() => logger.info("Default routes loaded"));
190
+ })()
191
+ .then(() => logger.info("Default routes loaded"))
192
+ .catch((e:any) => {logger.warn(`An error ocurred loading default settings: ${e}`);});
187
193
 
188
194
  (function () {
189
195
  /* Auto Discover dependencies (lib, handlers, commands) */
@@ -191,15 +197,15 @@
191
197
  const fs = require ("fs");
192
198
  const projectPath = CONFIG.get("projectPath", `${process.cwd()}/`);
193
199
  logger.debug(`CONFIG.projectPath is set to ${projectPath}`);
194
- const findPath = (p) => {
200
+ const findPath = (p:string) => {
195
201
  const packagePath = path.resolve(findPackageNodePath(p), p);
196
202
  return packagePath;
197
203
  };
198
204
 
199
- const getPackageJSON = (p) => {
205
+ const getPackageJSON = (p:string) => {
200
206
  let _json;
201
207
  try {
202
- let packagePath = findPath(p);
208
+ const packagePath = findPath(p);
203
209
  if (typeof packagePath !== "undefined"){
204
210
  _json = JSON.parse(fs.readFileSync(path.resolve(`${packagePath}`,"./package.json")).toString());
205
211
  } else {
@@ -207,26 +213,29 @@
207
213
  }
208
214
  } catch (e){
209
215
  logger.debug(`It was impossible to get the package.json from ${p}: ${e}`);
210
- _json = {}
216
+ _json = {};
211
217
  }
212
218
  return _json;
213
219
  };
214
220
 
215
- const hasKeyword = (p, keyword) => {
216
- if (typeof hasKeyword.keywords === "undefined"){
217
- hasKeyword.keywords = {};
218
- }
219
- try {
220
- if (typeof hasKeyword.keywords[p] === "undefined"){
221
- hasKeyword.keywords[p] = getPackageJSON(p).keywords;
222
- }
223
- } catch (e){
224
- throw Error (`Something went wrong when trying to get the keywords of ${p}`);
225
- }
226
- return typeof hasKeyword.keywords[p] !== "undefined" && hasKeyword.keywords[p].includes(keyword);
227
- };
221
+ const hasKeyword = (() => {
222
+ let keywords: { [key: string]: string[] } = {};
223
+ return (p:string, keyword:string) => {
224
+ if (typeof keywords === "undefined"){
225
+ keywords = {};
226
+ }
227
+ try {
228
+ if (typeof keywords[p] === "undefined"){
229
+ keywords[p] = getPackageJSON(p).keywords;
230
+ }
231
+ } catch (e){
232
+ throw Error (`Something went wrong when trying to get the keywords of ${p}`);
233
+ }
234
+ return typeof keywords[p] !== "undefined" && keywords[p].includes(keyword);
235
+ };
236
+ })();
228
237
 
229
- const setBackendValue = (name, value) => {
238
+ const setBackendValue = (name:string, value:any) => {
230
239
  const backend = CONFIG.get("backend", {});
231
240
  if (typeof value !== "undefined"){
232
241
  backend[name] = value;
@@ -234,21 +243,27 @@
234
243
  CONFIG.set("backend",backend);
235
244
  };
236
245
 
237
- const dependencies = () => {
238
- if (typeof dependencies.deps === "undefined"){
239
- dependencies.deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`,"./package.json")).toString()).dependencies);
240
- setBackendValue("dependencies", dependencies.deps);
241
- }
242
- return dependencies.deps;
243
- };
246
+ const dependencies = (() => {
247
+ let deps: string[] = [];
248
+ return () => {
249
+ if (typeof deps === "undefined"){
250
+ deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`,"./package.json")).toString()).dependencies);
251
+ setBackendValue("dependencies", deps);
252
+ }
253
+ return deps;
254
+ };
255
+ })();
244
256
 
245
- const devDependencies = () => {
246
- if (typeof devDependencies.deps === "undefined"){
247
- devDependencies.deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`,"./package.json")).toString()).devDependencies);
248
- setBackendValue("devDependencies", devDependencies.deps);
249
- }
250
- return devDependencies.deps;
251
- };
257
+ const devDependencies = (()=> {
258
+ let deps: string[] = [];
259
+ return () => {
260
+ if (typeof deps === "undefined"){
261
+ deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`,"./package.json")).toString()).devDependencies);
262
+ setBackendValue("devDependencies", deps);
263
+ }
264
+ return deps;
265
+ };
266
+ })();
252
267
 
253
268
  const loadLibs = () => {
254
269
  let _ret_;
@@ -256,7 +271,7 @@
256
271
  const libs = dependencies().filter((p) => hasKeyword(p, "qcobjects-lib"));
257
272
  setBackendValue("libs", libs);
258
273
  if (libs.length>0){
259
- logger.debug(`Plugin Libs found: ${libs}`);
274
+ logger.debug(`Plugin Libs found: ${libs.join(",")}`);
260
275
  _ret_ = Promise.all(libs.map((p) => {return require(findPath(p));})).then(() => logger.info("Libs loaded"));
261
276
  } else {
262
277
  logger.debug("No Plugin Libs found.");
@@ -274,7 +289,7 @@
274
289
  const handlers = dependencies().filter((p) => hasKeyword(p, "qcobjects-handler"));
275
290
  setBackendValue("handlers", handlers);
276
291
  if (handlers.length>0){
277
- logger.debug(`Plugin Handlers found: ${handlers}`);
292
+ logger.debug(`Plugin Handlers found: ${handlers.join(",")}`);
278
293
  _ret_ = Promise.all(handlers.map((p) => {return require(findPath(p));})).then(() => logger.info("Handlers loaded"));
279
294
  } else {
280
295
  logger.debug("No Plugin Handlers found.");
@@ -293,7 +308,7 @@
293
308
  const commands = dependencies().filter((p) => hasKeyword(p, "qcobjects-command"));
294
309
  setBackendValue("commands", commands);
295
310
  if (commands.length>0){
296
- logger.debug(`Plugin Commands found: ${commands}`);
311
+ logger.debug(`Plugin Commands found: ${commands.join(",")}`);
297
312
  _ret_ = Promise.all(commands.map((p) => {return require(findPath(p));})).then(() => logger.info("Commands loaded"));
298
313
  } else {
299
314
  logger.debug("No Plugin Commands found.");
@@ -312,7 +327,7 @@
312
327
  const commands = devDependencies().filter((p) => hasKeyword(p, "qcobjects-command"));
313
328
  setBackendValue("devCommands", commands);
314
329
  if (commands.length>0){
315
- logger.debug(`Dev Plugin Commands found: ${commands}`);
330
+ logger.debug(`Dev Plugin Commands found: ${commands.join(",")}`);
316
331
  _ret_ = Promise.all(commands.map((p) => {return require(findPath(p));})).then(() => logger.info("Commands loaded"));
317
332
  } else {
318
333
  logger.debug("No Plugin Commands found in dev dependencies.");
@@ -340,26 +355,34 @@
340
355
 
341
356
  try {
342
357
  logger.debug("Loading Libs...");
343
- loadLibs();
344
- } catch (e) {
358
+ loadLibs().catch ((e:any) => {
359
+ logger.warn(`An error ocurred loading libs: ${e}`);
360
+ });
361
+ } catch (e:any) {
345
362
  throw Error(`Something went wrong trying to load libs: ${e.message}`);
346
363
  }
347
364
  try {
348
365
  logger.debug("Loading Handlers...");
349
- loadHandlers();
350
- } catch (e) {
366
+ loadHandlers().catch ((e:any) => {
367
+ logger.warn(`An error ocurred loading handlers: ${e}`);
368
+ });
369
+ } catch (e:any) {
351
370
  throw Error(`Something went wrong trying to load handler: ${e.message}`);
352
371
  }
353
372
  try {
354
373
  logger.debug("Loading Commands...");
355
- loadCommands();
356
- } catch (e) {
374
+ loadCommands().catch((e:any)=>{
375
+ logger.warn(`An error ocurred loading commands: ${e}`);
376
+ });
377
+ } catch (e:any) {
357
378
  throw Error(`Something went wrong trying to load commands: ${e.message}`);
358
379
  }
359
380
  try {
360
381
  logger.debug("Loading Dev Commands...");
361
- loadDevCommands();
362
- } catch (e) {
382
+ loadDevCommands().catch((e:any)=>{
383
+ logger.warn(`An error ocurred loading dev commands: ${e}`);
384
+ });
385
+ } catch (e:any) {
363
386
  throw Error(`Something went wrong trying to load Dev commands: ${e.message}`);
364
387
  }
365
388
 
@@ -367,7 +390,7 @@
367
390
  const commands = CONFIG.get("backend", {commands:[]}).commands || [];
368
391
  const devCommands = CONFIG.get("backend", {devCommands:[]}).devCommands || [];
369
392
  setBackendValue("plugins", commands.concat(devCommands));
370
- } catch (e) {
393
+ } catch (e:any) {
371
394
  throw Error(`Something went wrong trying to load plugins list: ${e.message}`);
372
395
  }
373
396
 
@@ -385,7 +408,7 @@
385
408
 
386
409
  const cleanCache = () => {
387
410
  Object.keys(require.cache).forEach( (key) => { delete require.cache[key]; });
388
- }
411
+ };
389
412
 
390
413
  const __reset_settings__ = () => {
391
414
  cleanCache();
@@ -0,0 +1,180 @@
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 {InheritClass, CONFIG, logger, New, Component, Package} = require("qcobjects");
37
+
38
+ const absolutePath = path.resolve(__dirname, "./");
39
+
40
+ class FileDispatcher extends InheritClass {
41
+ constructor({
42
+ name = CONFIG.get("documentRootFileIndex"),
43
+ template = "",
44
+ templateURI = CONFIG.get("documentRootFileIndex"),
45
+ headers = {},
46
+ body = "",
47
+ filename = "",
48
+ done
49
+ }:{
50
+ name:string, template:string, templateURI:string, headers:any, body:string, filename:string,
51
+ done:(headers:any, body:any, templateURI?:string,isTemplate?:boolean) => any
52
+ }) {
53
+ super({
54
+ name,
55
+ template,
56
+ templateURI,
57
+ headers,
58
+ body,
59
+ filename,
60
+ done
61
+ });
62
+
63
+ var o = this;
64
+
65
+ var scriptname = o.scriptname;
66
+ this.filename = scriptname;
67
+ var pathname = (o.pathname !== "") ? (o.pathname + "/") : ("");
68
+ var appTemplateInstance = this;
69
+ if (typeof appTemplateInstance.headers === "undefined"){
70
+ appTemplateInstance.headers = {
71
+ ":status": 500,
72
+ "content-type": "text/html"
73
+ };
74
+ }
75
+
76
+ appTemplateInstance.done = o.done.bind(appTemplateInstance);
77
+ appTemplateInstance.templateURI = CONFIG.get("documentRoot") + pathname + scriptname;
78
+ appTemplateInstance.templateURI = appTemplateInstance.templateURI.replace("//", "/");
79
+
80
+ if (appTemplateInstance.isTemplate()) {
81
+ fs.readFile(appTemplateInstance.templateURI, function (err:any, data:any) {
82
+ logger.debug("reading data from " + appTemplateInstance.templateURI);
83
+ if (typeof data !== "undefined") {
84
+ appTemplateInstance.template = data.toString();
85
+ appTemplateInstance._done();
86
+ } else {
87
+ appTemplateInstance.headers = {
88
+ ":status": 404,
89
+ "content-type": "text/html"
90
+ };
91
+ appTemplateInstance.done(
92
+ appTemplateInstance.headers,
93
+ "FILE NOT FOUND", "notfound.html", false);
94
+ logger.debug("file not found");
95
+ }
96
+ });
97
+ } else {
98
+ appTemplateInstance.headers[":status"] = 200;
99
+ appTemplateInstance.headers["content-type"] = mime.getType(appTemplateInstance.templateURI);
100
+ appTemplateInstance.done(
101
+ appTemplateInstance.headers,
102
+ "", appTemplateInstance.templateURI, false);
103
+ }
104
+
105
+ logger.info("FileDispatcher initialized");
106
+
107
+ }
108
+
109
+ file_extension() {
110
+ return this.filename.substr(this.filename.indexOf("."));
111
+ }
112
+ isTemplate() {
113
+ return CONFIG.get("useTemplate") && (this.file_extension() == ".html" || this.file_extension() == ".tpl.html");
114
+ }
115
+ _done() {
116
+ var appTemplateInstance = this;
117
+ const source = appTemplateInstance.template;
118
+ if (appTemplateInstance.isTemplate()) {
119
+
120
+ (New(Component, {
121
+ name: "static_source",
122
+ template: source,
123
+ cached: false,
124
+ tplsource: "inline",
125
+ data: {
126
+ title: "QCObjects"
127
+ },
128
+ done({
129
+ request,
130
+ component
131
+ }:{request:any, component:any}) {
132
+ appTemplateInstance.body = component.parsedAssignmentText;
133
+ return Promise.resolve({
134
+ request,
135
+ component
136
+ });
137
+ }
138
+ }));
139
+
140
+ } else {
141
+ appTemplateInstance.body = source;
142
+ }
143
+
144
+ if ([".png",
145
+ ".jpg",
146
+ ".jpeg",
147
+ ".json",
148
+ ".html",
149
+ ".tpl.html",
150
+ ".css",
151
+ ".js",
152
+ ".svg"
153
+ ].includes(appTemplateInstance.file_extension())) {
154
+ appTemplateInstance.headers["content-type"] = mime.getType(appTemplateInstance.templateURI);
155
+ appTemplateInstance.headers["cache-control"] = CONFIG.get("cacheControl", "max-age=31536000");
156
+ appTemplateInstance.done(
157
+ appTemplateInstance.headers,
158
+ appTemplateInstance.body,
159
+ appTemplateInstance.templateURI,
160
+ appTemplateInstance.isTemplate());
161
+ } else {
162
+ appTemplateInstance.done({
163
+ ":status": 403,
164
+ "content-type": "text/plain"
165
+ },
166
+ "FORBIDDEN", "notfound.html", false);
167
+ }
168
+ }
169
+ done(headers:any, body:any, templateURI = "", isTemplate = false) {}
170
+
171
+ }
172
+
173
+
174
+ Package("org.quickcorp.qcobjects.main.file", [
175
+ FileDispatcher
176
+ ]);
177
+
178
+ exports = {
179
+ FileDispatcher
180
+ };