qcobjects-cli 2.3.49 → 2.4.21

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 (36) hide show
  1. package/.github/FUNDING.yml +12 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  3. package/.github/ISSUE_TEMPLATE/custom.md +10 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. package/.github/ISSUE_TEMPLATE/issue-template.md +33 -0
  6. package/.github/workflows/codeql-analysis.yml +71 -0
  7. package/.github/workflows/npmpublish-beta.yml +38 -0
  8. package/.github/workflows/npmpublish-lts.yml +38 -0
  9. package/.github/workflows/npmpublish-main.yml +38 -0
  10. package/.gitlab-ci.yml +3 -2
  11. package/VERSION +1 -1
  12. package/backend/com.qcobjects.backend.microservice.static.js +40 -24
  13. package/backend/org.qcobjects.backend.php.js +149 -116
  14. package/{org.quickcorp.qcobjects.cli.commands.jira.client_services.js → com.qcobjects.cli.commands.jira.client_services.js} +29 -22
  15. package/{org.quickcorp.qcobjects.cli.commands.jira.js → com.qcobjects.cli.commands.jira.js} +77 -60
  16. package/{org.quickcorp.qcobjects.cli.commands.js → com.qcobjects.cli.commands.js} +3 -3
  17. package/com.qcobjects.cli.commands.version.js +285 -0
  18. package/org.qcobjects.common.pipelog.js +55 -0
  19. package/org.qcobjects.enterprise.commands.js +149 -139
  20. package/org.quickcorp.qcobjects.api.client_services.js +31 -20
  21. package/org.quickcorp.qcobjects.cli.js +288 -275
  22. package/org.quickcorp.qcobjects.collab.server.js +317 -308
  23. package/org.quickcorp.qcobjects.defaultsettings.js +1 -1
  24. package/org.quickcorp.qcobjects.main.file.js +100 -79
  25. package/org.quickcorp.qcobjects.main.http.gae.server.js +265 -234
  26. package/org.quickcorp.qcobjects.main.http.server.js +156 -147
  27. package/org.quickcorp.qcobjects.main.http2.server.js +198 -191
  28. package/package.json +18 -10
  29. package/qcobjects-cli.js +8 -11
  30. package/qcobjects-collab.js +8 -6
  31. package/qcobjects-createcert.js +28 -16
  32. package/qcobjects-gae-http-server.js +8 -5
  33. package/qcobjects-http-server.js +7 -5
  34. package/qcobjects-http2-server.js +8 -5
  35. package/qcobjects-shell.js +113 -107
  36. package/org.quickcorp.qcobjects.cli.commands.version.js +0 -267
@@ -1,5 +1,5 @@
1
1
  /**
2
- * QCObjects CLI 2.3.x
2
+ * QCObjects CLI 2.4.x
3
3
  * ________________
4
4
  *
5
5
  * Author: Jean Machuca <correojean@gmail.com>
@@ -33,10 +33,11 @@
33
33
  const path = require("path");
34
34
  const absolutePath = path.resolve( __dirname, "./" );
35
35
 
36
- const http2 = require("http2");
37
36
  const fs = require("fs");
38
37
  const mime = require("mime");
39
38
  require(absolutePath+"/org.quickcorp.qcobjects.main.file.js");
39
+ require(absolutePath+ "/org.qcobjects.common.pipelog.js");
40
+
40
41
 
41
42
  let ImportMicroservice = function (microservicePackage){
42
43
  var standardPath = findPackageNodePath(microservicePackage) || findPackageNodePath(microservicePackage+".js");
@@ -48,14 +49,50 @@ let ImportMicroservice = function (microservicePackage){
48
49
  };
49
50
 
50
51
  Package("org.quickcorp.qcobjects.main.http.server",[
51
- Class("BackendMicroservice",Object,{
52
- domain:CONFIG.get("domain"),
53
- basePath:CONFIG.get("basePath"),
54
- body:null,
55
- stream:null,
56
- server:null,
57
- request:null,
58
- cors: function (){
52
+
53
+ class BackendMicroservice extends InheritClass {
54
+ constructor({
55
+ domain=CONFIG.get("domain"),
56
+ basePath=CONFIG.get("basePath"),
57
+ body=null,
58
+ stream=null,
59
+ server=null,
60
+ request=null
61
+ }){
62
+ super(...arguments);
63
+
64
+ logger.debug("Executing Legacy HTTP BackendMicroservice ");
65
+ let microservice = this;
66
+ this.cors();
67
+ microservice.req.on("data", (data) => {
68
+ // data from POST, GET
69
+ var requestMethod = request.method.toLowerCase();
70
+ var supportedMethods = {"post":microservice.post,
71
+ };
72
+ if (supportedMethods.hasOwnProperty.call(supportedMethods,requestMethod)) {
73
+ supportedMethods[requestMethod].call(microservice,data);
74
+ }
75
+ });
76
+
77
+ // data from POST, GET
78
+ var requestMethod = request.method.toLowerCase();
79
+ var supportedMethods = {"get":microservice.get,
80
+ "head":microservice.head,
81
+ "put":microservice.put,
82
+ "delete":microservice.delete,
83
+ "connect":microservice.connect,
84
+ "options":microservice.options,
85
+ "trace":microservice.trace,
86
+ "patch":microservice.patch
87
+ };
88
+ if (supportedMethods.hasOwnProperty.call(supportedMethods,requestMethod)) {
89
+ supportedMethods[requestMethod].call(microservice);
90
+ }
91
+
92
+
93
+ }
94
+
95
+ cors(){
59
96
  if (this.route.cors){
60
97
  let {allow_origins,allow_credentials,allow_methods,allow_headers} = this.route.cors;
61
98
  var microservice = this;
@@ -94,56 +131,24 @@ Package("org.quickcorp.qcobjects.main.http.server",[
94
131
  microservice.headers["Access-Control-Allow-Headers"] = "*";
95
132
  }
96
133
  }
97
- },
98
- _new_:function (o){
99
- logger.debug("Executing Legacy HTTP BackendMicroservice ");
100
- let microservice = this;
101
- let server = microservice.server;
102
- let request = microservice.request;
103
- this.cors();
104
- microservice.req.on("data", (data) => {
105
- // data from POST, GET
106
- var requestMethod = request.method.toLowerCase();
107
- var supportedMethods = {"post":microservice.post,
108
- };
109
- if (supportedMethods.hasOwnProperty.call(supportedMethods,requestMethod)) {
110
- supportedMethods[requestMethod].call(microservice,data);
111
- }
112
- });
113
-
114
- // data from POST, GET
115
- var requestMethod = request.method.toLowerCase();
116
- var supportedMethods = {"get":microservice.get,
117
- "head":microservice.head,
118
- "put":microservice.put,
119
- "delete":microservice.delete,
120
- "connect":microservice.connect,
121
- "options":microservice.options,
122
- "trace":microservice.trace,
123
- "patch":microservice.patch
124
- };
125
- if (supportedMethods.hasOwnProperty.call(supportedMethods,requestMethod)) {
126
- supportedMethods[requestMethod].call(microservice);
127
- }
128
-
129
- },
130
- head:function (formData){this.done();},
131
- post:function (formData){this.done();},
132
- put:function (formData){this.done();},
133
- delete:function (formData){this.done();},
134
- connect:function (formData){this.done();},
135
- options:function (formData){this.done();},
136
- trace:function (formData){this.done();},
137
- patch:function (formData){this.done();},
138
- finishWithBody:function (stream){
134
+ }
135
+ head(formData){this.done();}
136
+ post(formData){this.done();}
137
+ put(formData){this.done();}
138
+ delete(formData){this.done();}
139
+ connect(formData){this.done();}
140
+ options(formData){this.done();}
141
+ trace(formData){this.done();}
142
+ patch(formData){this.done();}
143
+ finishWithBody(stream){
139
144
  try {
140
145
  stream.write(JSON.stringify(this.body));
141
146
  stream.end();
142
147
  } catch (e){
143
148
  logger.debug("Something wrong writing the response for microservice"+e.toString());
144
149
  }
145
- },
146
- done: function(){
150
+ }
151
+ done(){
147
152
  var microservice = this;
148
153
  var stream = microservice.stream;
149
154
  try {
@@ -156,33 +161,30 @@ Package("org.quickcorp.qcobjects.main.http.server",[
156
161
  microservice.finishWithBody.call(microservice,stream);
157
162
  }
158
163
  }
159
- }),
160
- Class("PipeLog",{
161
- pipe:(o)=>{
162
- var _o = [];
163
- for (var k in o){
164
- if (typeof o[k] !== "undefined"
165
- && o[k] !== null
166
- && typeof o[k] !== "function"){
167
- try {
168
- _o.push(""+k+"="+o[k].toString());
169
- } catch (e){
170
- // error logging, do nothing
171
- }
172
- }
173
- }
174
- return _o.join(" ");
164
+
165
+
166
+
167
+ },
168
+
169
+ class HTTPServerResponse extends InheritClass {
170
+ constructor ({
171
+ headers={
172
+ ":status": 200,
173
+ "content-type": "text/html"
174
+ },
175
+ body="",
176
+ request=null,
177
+ fileDispatcher=null,
178
+ stream=null
179
+ }){
180
+ super(...arguments);
181
+ var self = this;
182
+ self.stream = self.stream;
183
+ self._generateResponse();
184
+
175
185
  }
176
- }),
177
- Class("HTTPServerResponse",{
178
- headers:{
179
- ":status": 200,
180
- "content-type": "text/html"
181
- },
182
- body:"",
183
- request:null,
184
- fileDispatcher:null,
185
- sendFile: function (stream, fileName) {
186
+
187
+ sendFile(stream, fileName) {
186
188
  // read and send file content in the stream
187
189
 
188
190
  try {
@@ -233,13 +235,13 @@ Package("org.quickcorp.qcobjects.main.http.server",[
233
235
  stream.end();
234
236
  }
235
237
  }
236
- },
237
- _generateResponse:function (){
238
+ }
239
+ _generateResponse(){
238
240
  var response = this;
239
241
  response.fileDispatcher = New(FileDispatcher,{
240
242
  scriptname:response.request.scriptname,
241
243
  pathname:response.request.pathname,
242
- done:function (headers,body,templateURI,isTemplate){
244
+ done(headers,body,templateURI,isTemplate){
243
245
  response.headers = headers;
244
246
  var stream = response.stream;
245
247
  if (isTemplate){
@@ -258,69 +260,44 @@ Package("org.quickcorp.qcobjects.main.http.server",[
258
260
  }
259
261
  });
260
262
 
261
- },
262
- _new_:function (o){
263
- var self = this;
264
- self.body = "";
265
- self.stream = o.stream;
266
- self._generateResponse();
263
+ }
267
264
 
265
+ },
266
+
267
+ class HTTPServerRequest extends InheritClass {
268
+ constructor ({
269
+ scriptname="",
270
+ path="",
271
+ method="",
272
+ url="",
273
+ headers=null,
274
+ flags=null,
275
+ protocol= null,
276
+ slashes= null,
277
+ auth= null,
278
+ host= null,
279
+ port= null,
280
+ hostname= null,
281
+ hash= null,
282
+ search= "",
283
+ query= "",
284
+ pathname= "",
285
+ href= ""
286
+ }){
287
+ super(...arguments);
268
288
  }
269
- }),
270
- Class("HTTPServerRequest",{
271
- scriptname:"",
272
- path:"",
273
- method:"",
274
- url:"",
275
- headers:null,
276
- flags:null,
277
- protocol: null,
278
- slashes: null,
279
- auth: null,
280
- host: null,
281
- port: null,
282
- hostname: null,
283
- hash: null,
284
- search: "",
285
- query: "",
286
- pathname: "",
287
- href: ""
288
- }),
289
- Class("HTTPServer",{
290
- request:null,
291
- response:"",
292
- server:null,
293
- scriptname:"",
294
- interceptorInstances:[],
295
- showIPAddress:function (){
296
- var _ret_ = "";
297
- var os = require("os");
298
- var ifaces = os.networkInterfaces();
299
- Object.keys(ifaces).forEach(function (iface){
300
- ifaces[iface].map(function (ipGroup){
301
- _ret_ += iface +": " + PipeLog.pipe(ipGroup)+"\n";
302
- });
303
- });
304
- return _ret_;
305
- },
306
- showPossibleURL: function (){
307
- var _ret_ = "";
308
- var os = require("os");
309
- var ifaces = os.networkInterfaces();
310
- Object.keys(ifaces).forEach(function (iface){
311
- ifaces[iface].map(function (ipGroup){
312
- if (ipGroup["family"].toLowerCase()=="ipv4"){
313
- _ret_ += "http://"+ipGroup["address"]+":"+CONFIG.get("serverPortHTTP").toString()+"/\n";
314
- }
315
- });
316
- });
317
- return _ret_;
318
- },
319
- start:function (){
320
- var server = this.server;
321
- server.listen(process.env.PORT || CONFIG.get("serverPortHTTP"));
322
- },
323
- _new_:function (){
289
+ },
290
+
291
+ class HTTPServer extends InheritClass {
292
+ constructor ({
293
+ request=null,
294
+ response="",
295
+ server=null,
296
+ scriptname="",
297
+ interceptorInstances=[]
298
+ }){
299
+ super(...arguments);
300
+
324
301
  let oHTTPServer = this;
325
302
  const welcometo = "Welcome to \n";
326
303
  const instructions = "QCObjects Legacy HTTPServer \n";
@@ -357,7 +334,7 @@ Package("org.quickcorp.qcobjects.main.http.server",[
357
334
  interceptor:interceptor,
358
335
  server:server
359
336
  });
360
- http2ServerInstance.interceptorInstances.push(interceptorInstance);
337
+ oHTTPServer.interceptorInstances.push(interceptorInstance);
361
338
  });
362
339
  }
363
340
  }
@@ -405,7 +382,7 @@ Package("org.quickcorp.qcobjects.main.http.server",[
405
382
  }
406
383
  this.request.pathname = this.request.pathname.substr(0,this.request.pathname.lastIndexOf("/"));
407
384
 
408
- logger.debug(PipeLog.pipe(this.request));
385
+ logger.debug((new PipeLog()).pipe(this.request));
409
386
 
410
387
  if (global.get("backendAvailable")){
411
388
  logger.info("Backend Legacy Microservices Available");
@@ -451,5 +428,37 @@ Package("org.quickcorp.qcobjects.main.http.server",[
451
428
  });
452
429
 
453
430
  }
454
- })
431
+
432
+
433
+ showIPAddress(){
434
+ var _ret_ = "";
435
+ var os = require("os");
436
+ var ifaces = os.networkInterfaces();
437
+ Object.keys(ifaces).forEach(function (iface){
438
+ ifaces[iface].map(function (ipGroup){
439
+ _ret_ += iface +": " + (new PipeLog()).pipe(ipGroup)+"\n";
440
+ });
441
+ });
442
+ return _ret_;
443
+ }
444
+ showPossibleURL(){
445
+ var _ret_ = "";
446
+ var os = require("os");
447
+ var ifaces = os.networkInterfaces();
448
+ Object.keys(ifaces).forEach(function (iface){
449
+ ifaces[iface].map(function (ipGroup){
450
+ if (ipGroup["family"].toLowerCase()=="ipv4"){
451
+ _ret_ += "http://"+ipGroup["address"]+":"+CONFIG.get("serverPortHTTP").toString()+"/\n";
452
+ }
453
+ });
454
+ });
455
+ return _ret_;
456
+ }
457
+ start(){
458
+ var server = this.server;
459
+ server.listen(process.env.PORT || CONFIG.get("serverPortHTTP"));
460
+ }
461
+
462
+ }
463
+
455
464
  ]);