qcobjects-cli 2.5.143-beta → 2.5.144-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 (270) hide show
  1. package/.cursor/rules/collaboration-features.mdc +25 -0
  2. package/.cursor/rules/development-guidelines.mdc +37 -0
  3. package/.cursor/rules/project-structure.mdc +36 -0
  4. package/.dockerignore +0 -0
  5. package/.github/FUNDING.yml +0 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  7. package/.github/ISSUE_TEMPLATE/custom.md +0 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  9. package/.github/ISSUE_TEMPLATE/issue-template.md +0 -0
  10. package/.github/workflows/ci.yml +26 -0
  11. package/.github/workflows/codeql-analysis.yml +0 -0
  12. package/.github/workflows/main-pr-source.yml +26 -0
  13. package/.github/workflows/npmpublish-beta.yml +20 -13
  14. package/.github/workflows/npmpublish-lts.yml +20 -13
  15. package/.github/workflows/npmpublish-main.yml +19 -12
  16. package/.github/workflows/open-pr-to-development.yml +70 -0
  17. package/.gitlab-ci.yml +0 -0
  18. package/.opencode/instructions/git-workflow.md +46 -0
  19. package/.pre-commit-config.yaml +9 -0
  20. package/AGENTS.md +59 -0
  21. package/CHANGELOG.md +0 -0
  22. package/README.md +75 -0
  23. package/VERSION +1 -1
  24. package/build-esbuild-esm.js +180 -0
  25. package/build-esbuild.js +182 -208
  26. package/deno.json +0 -0
  27. package/dev-requirements.txt +5 -0
  28. package/eslint.config.mjs +0 -0
  29. package/mod.ts +0 -0
  30. package/package.json +45 -44
  31. package/public/browser/api-client_services.js.map +1 -1
  32. package/public/browser/backend/backend-microservice-static.js +211 -219
  33. package/public/browser/backend/backend-microservice-static.js.map +2 -2
  34. package/public/browser/backend/backend-php.js +227 -231
  35. package/public/browser/backend/backend-php.js.map +3 -3
  36. package/public/browser/cli-commands-build-esbuild.js +326 -0
  37. package/public/browser/cli-commands-build-esbuild.js.map +7 -0
  38. package/public/browser/cli-commands-build-typescript.js +114 -0
  39. package/public/browser/cli-commands-build-typescript.js.map +7 -0
  40. package/public/browser/cli-commands-jira.js.map +1 -1
  41. package/public/browser/cli-commands-version.js.map +1 -1
  42. package/public/browser/cli-commands.js +4 -0
  43. package/public/browser/cli-commands.js.map +2 -2
  44. package/public/browser/cli-main.js.map +1 -1
  45. package/public/browser/client_services.js.map +1 -1
  46. package/public/browser/collab-server.js.map +1 -1
  47. package/public/browser/common-pipelog.js.map +1 -1
  48. package/public/browser/defaultsettings.js +68 -27
  49. package/public/browser/defaultsettings.js.map +3 -3
  50. package/public/browser/enterprise-commands.js.map +1 -1
  51. package/public/browser/main-file.js.map +1 -1
  52. package/public/browser/main-http-gae-server.js.map +1 -1
  53. package/public/browser/main-http-server.js.map +1 -1
  54. package/public/browser/main-http2-server.js.map +1 -1
  55. package/public/browser/qcobjects-cli.js.map +1 -1
  56. package/public/browser/qcobjects-collab.js +16 -24
  57. package/public/browser/qcobjects-collab.js.map +2 -2
  58. package/public/browser/qcobjects-createcert.js +46 -54
  59. package/public/browser/qcobjects-createcert.js.map +2 -2
  60. package/public/browser/qcobjects-gae-http-server.js +16 -24
  61. package/public/browser/qcobjects-gae-http-server.js.map +2 -2
  62. package/public/browser/qcobjects-http-server.js +16 -24
  63. package/public/browser/qcobjects-http-server.js.map +2 -2
  64. package/public/browser/qcobjects-http2-server.js +21 -30
  65. package/public/browser/qcobjects-http2-server.js.map +2 -2
  66. package/public/browser/qcobjects-shell.js.map +1 -1
  67. package/public/browser/templates/apps/spa-local.html +0 -0
  68. package/public/browser/templates/apps/spa-local.js +0 -0
  69. package/public/browser/templates/pwa/sw.js +0 -0
  70. package/public/browser/types/global/index.d.js +0 -9
  71. package/public/browser/types/global/index.d.js.map +3 -3
  72. package/public/cjs/api-client_services.js +74 -0
  73. package/public/cjs/api-client_services.js.map +1 -0
  74. package/public/cjs/backend/backend-microservice-static.js +255 -0
  75. package/public/cjs/backend/backend-microservice-static.js.map +1 -0
  76. package/public/cjs/backend/backend-php.js +317 -0
  77. package/public/cjs/backend/backend-php.js.map +1 -0
  78. package/public/cjs/cli-commands-build-esbuild.js +341 -0
  79. package/public/cjs/cli-commands-build-esbuild.js.map +1 -0
  80. package/public/cjs/cli-commands-build-typescript.js +127 -0
  81. package/public/cjs/cli-commands-build-typescript.js.map +1 -0
  82. package/public/cjs/cli-commands-jira.js +115 -0
  83. package/public/cjs/cli-commands-jira.js.map +1 -0
  84. package/public/cjs/cli-commands-publish-static.js +108 -0
  85. package/public/cjs/cli-commands-publish-static.js.map +1 -0
  86. package/public/cjs/cli-commands-version.js +250 -0
  87. package/public/cjs/cli-commands-version.js.map +1 -0
  88. package/public/cjs/cli-commands.js +73 -0
  89. package/public/cjs/cli-commands.js.map +1 -0
  90. package/public/cjs/cli-main.js +487 -0
  91. package/public/cjs/cli-main.js.map +1 -0
  92. package/public/cjs/client_services.js +80 -0
  93. package/public/cjs/client_services.js.map +1 -0
  94. package/public/cjs/collab-server.js +404 -0
  95. package/public/cjs/collab-server.js.map +1 -0
  96. package/public/cjs/common-pipelog.js +57 -0
  97. package/public/cjs/common-pipelog.js.map +1 -0
  98. package/public/cjs/defaultsettings.js +496 -0
  99. package/public/cjs/defaultsettings.js.map +1 -0
  100. package/public/cjs/enterprise-commands.js +173 -0
  101. package/public/cjs/enterprise-commands.js.map +1 -0
  102. package/public/cjs/index.js +38 -0
  103. package/public/cjs/index.js.map +1 -0
  104. package/public/cjs/main-file.js +161 -0
  105. package/public/cjs/main-file.js.map +1 -0
  106. package/public/cjs/main-http-gae-server.js +498 -0
  107. package/public/cjs/main-http-gae-server.js.map +1 -0
  108. package/public/cjs/main-http-server.js +540 -0
  109. package/public/cjs/main-http-server.js.map +1 -0
  110. package/public/cjs/main-http2-server.js +398 -0
  111. package/public/cjs/main-http2-server.js.map +1 -0
  112. package/public/cjs/qcobjects-cli.js +105 -0
  113. package/public/cjs/qcobjects-cli.js.map +1 -0
  114. package/public/cjs/qcobjects-collab.js +51 -0
  115. package/public/cjs/qcobjects-collab.js.map +1 -0
  116. package/public/cjs/qcobjects-createcert.js +89 -0
  117. package/public/cjs/qcobjects-createcert.js.map +1 -0
  118. package/public/cjs/qcobjects-gae-http-server.js +51 -0
  119. package/public/cjs/qcobjects-gae-http-server.js.map +1 -0
  120. package/public/cjs/qcobjects-http-server.js +51 -0
  121. package/public/cjs/qcobjects-http-server.js.map +1 -0
  122. package/public/cjs/qcobjects-http2-server.js +54 -0
  123. package/public/cjs/qcobjects-http2-server.js.map +1 -0
  124. package/public/cjs/qcobjects-shell.js +145 -0
  125. package/public/cjs/qcobjects-shell.js.map +1 -0
  126. package/public/cjs/templates/apps/spa-local.html +0 -0
  127. package/public/cjs/templates/apps/spa-local.js +0 -0
  128. package/public/cjs/templates/pwa/sw.js +0 -0
  129. package/public/esm/api-client_services.mjs.map +1 -1
  130. package/public/esm/backend/backend-microservice-static.mjs +207 -216
  131. package/public/esm/backend/backend-microservice-static.mjs.map +2 -2
  132. package/public/esm/backend/backend-php.mjs +228 -232
  133. package/public/esm/backend/backend-php.mjs.map +2 -2
  134. package/public/esm/cli-commands-build-esbuild.mjs +295 -0
  135. package/public/esm/cli-commands-build-esbuild.mjs.map +7 -0
  136. package/public/esm/cli-commands-build-typescript.mjs +83 -0
  137. package/public/esm/cli-commands-build-typescript.mjs.map +7 -0
  138. package/public/esm/cli-commands-jira.mjs +1 -1
  139. package/public/esm/cli-commands-jira.mjs.map +1 -1
  140. package/public/esm/cli-commands-version.mjs.map +1 -1
  141. package/public/esm/cli-commands.mjs +7 -3
  142. package/public/esm/cli-commands.mjs.map +2 -2
  143. package/public/esm/cli-main.mjs +6 -6
  144. package/public/esm/cli-main.mjs.map +1 -1
  145. package/public/esm/client_services.mjs.map +1 -1
  146. package/public/esm/collab-server.mjs.map +1 -1
  147. package/public/esm/common-pipelog.mjs.map +1 -1
  148. package/public/esm/defaultsettings.mjs +68 -27
  149. package/public/esm/defaultsettings.mjs.map +3 -3
  150. package/public/esm/enterprise-commands.mjs.map +1 -1
  151. package/public/esm/index.mjs +1 -1
  152. package/public/esm/main-file.mjs.map +1 -1
  153. package/public/esm/main-http-gae-server.mjs +2 -2
  154. package/public/esm/main-http-gae-server.mjs.map +1 -1
  155. package/public/esm/main-http-server.mjs +2 -2
  156. package/public/esm/main-http-server.mjs.map +1 -1
  157. package/public/esm/main-http2-server.mjs +2 -2
  158. package/public/esm/main-http2-server.mjs.map +1 -1
  159. package/public/esm/qcobjects-cli.mjs +2 -2
  160. package/public/esm/qcobjects-cli.mjs.map +1 -1
  161. package/public/esm/qcobjects-collab.mjs +14 -23
  162. package/public/esm/qcobjects-collab.mjs.map +2 -2
  163. package/public/esm/qcobjects-createcert.mjs +43 -52
  164. package/public/esm/qcobjects-createcert.mjs.map +2 -2
  165. package/public/esm/qcobjects-gae-http-server.mjs +14 -23
  166. package/public/esm/qcobjects-gae-http-server.mjs.map +2 -2
  167. package/public/esm/qcobjects-http-server.mjs +14 -23
  168. package/public/esm/qcobjects-http-server.mjs.map +2 -2
  169. package/public/esm/qcobjects-http2-server.mjs +21 -31
  170. package/public/esm/qcobjects-http2-server.mjs.map +2 -2
  171. package/public/esm/qcobjects-shell.mjs +1 -1
  172. package/public/esm/qcobjects-shell.mjs.map +1 -1
  173. package/public/esm/templates/apps/spa-local.html +0 -0
  174. package/public/esm/templates/apps/spa-local.js +0 -0
  175. package/public/esm/templates/pwa/sw.js +0 -0
  176. package/public/esm/types/global/index.d.mjs +0 -9
  177. package/public/esm/types/global/index.d.mjs.map +3 -3
  178. package/public/types/index.d.ts +29 -3
  179. package/spec/support/jasmine.json +0 -0
  180. package/spec/testsSpec.ts +0 -0
  181. package/src/api-client_services.ts +1 -1
  182. package/src/backend/backend-microservice-static.ts +196 -196
  183. package/src/backend/backend-php.ts +240 -245
  184. package/src/cli-commands-build-esbuild.ts +375 -0
  185. package/src/cli-commands-build-typescript.ts +139 -0
  186. package/src/cli-commands-jira.ts +1 -1
  187. package/src/cli-commands-publish-static.ts +0 -0
  188. package/src/cli-commands-version.ts +1 -1
  189. package/src/cli-commands.ts +3 -1
  190. package/src/cli-main.ts +1 -1
  191. package/src/client_services.ts +1 -1
  192. package/src/collab-server.ts +1 -1
  193. package/src/common-pipelog.ts +1 -1
  194. package/src/defaultsettings.ts +65 -19
  195. package/src/enterprise-commands.ts +1 -1
  196. package/src/index.ts +0 -0
  197. package/src/main-file.ts +1 -1
  198. package/src/main-http-gae-server.ts +1 -1
  199. package/src/main-http-server.ts +1 -1
  200. package/src/main-http2-server.ts +1 -1
  201. package/src/qcobjects-cli.ts +1 -1
  202. package/src/qcobjects-collab.ts +1 -1
  203. package/src/qcobjects-createcert.ts +1 -1
  204. package/src/qcobjects-gae-http-server.ts +1 -1
  205. package/src/qcobjects-http-server.ts +1 -1
  206. package/src/qcobjects-http2-server.ts +4 -5
  207. package/src/qcobjects-shell.ts +1 -1
  208. package/src/templates/apps/spa-local.html +0 -0
  209. package/src/templates/apps/spa-local.js +0 -0
  210. package/src/templates/pwa/sw.js +0 -0
  211. package/src/types/global/index.d.ts +0 -0
  212. package/transpile.js +0 -0
  213. package/tsconfig.d.json +0 -0
  214. package/tsconfig.jasmine.json +0 -0
  215. package/tsconfig.json +3 -3
  216. package/public/cjs/api-client_services.cjs +0 -79
  217. package/public/cjs/api-client_services.cjs.map +0 -7
  218. package/public/cjs/backend/backend-microservice-static.cjs +0 -245
  219. package/public/cjs/backend/backend-microservice-static.cjs.map +0 -7
  220. package/public/cjs/backend/backend-php.cjs +0 -301
  221. package/public/cjs/backend/backend-php.cjs.map +0 -7
  222. package/public/cjs/cli-commands-jira.cjs +0 -112
  223. package/public/cjs/cli-commands-jira.cjs.map +0 -7
  224. package/public/cjs/cli-commands-publish-static.cjs +0 -109
  225. package/public/cjs/cli-commands-publish-static.cjs.map +0 -7
  226. package/public/cjs/cli-commands-version.cjs +0 -252
  227. package/public/cjs/cli-commands-version.cjs.map +0 -7
  228. package/public/cjs/cli-commands.cjs +0 -45
  229. package/public/cjs/cli-commands.cjs.map +0 -7
  230. package/public/cjs/cli-main.cjs +0 -417
  231. package/public/cjs/cli-main.cjs.map +0 -7
  232. package/public/cjs/client_services.cjs +0 -86
  233. package/public/cjs/client_services.cjs.map +0 -7
  234. package/public/cjs/collab-server.cjs +0 -444
  235. package/public/cjs/collab-server.cjs.map +0 -7
  236. package/public/cjs/common-pipelog.cjs +0 -50
  237. package/public/cjs/common-pipelog.cjs.map +0 -7
  238. package/public/cjs/defaultsettings.cjs +0 -432
  239. package/public/cjs/defaultsettings.cjs.map +0 -7
  240. package/public/cjs/enterprise-commands.cjs +0 -175
  241. package/public/cjs/enterprise-commands.cjs.map +0 -7
  242. package/public/cjs/index.cjs +0 -36
  243. package/public/cjs/index.cjs.map +0 -7
  244. package/public/cjs/main-file.cjs +0 -194
  245. package/public/cjs/main-file.cjs.map +0 -7
  246. package/public/cjs/main-http-gae-server.cjs +0 -522
  247. package/public/cjs/main-http-gae-server.cjs.map +0 -7
  248. package/public/cjs/main-http-server.cjs +0 -588
  249. package/public/cjs/main-http-server.cjs.map +0 -7
  250. package/public/cjs/main-http2-server.cjs +0 -431
  251. package/public/cjs/main-http2-server.cjs.map +0 -7
  252. package/public/cjs/qcobjects-cli.cjs +0 -92
  253. package/public/cjs/qcobjects-cli.cjs.map +0 -7
  254. package/public/cjs/qcobjects-collab.cjs +0 -43
  255. package/public/cjs/qcobjects-collab.cjs.map +0 -7
  256. package/public/cjs/qcobjects-createcert.cjs +0 -75
  257. package/public/cjs/qcobjects-createcert.cjs.map +0 -7
  258. package/public/cjs/qcobjects-gae-http-server.cjs +0 -43
  259. package/public/cjs/qcobjects-gae-http-server.cjs.map +0 -7
  260. package/public/cjs/qcobjects-http-server.cjs +0 -43
  261. package/public/cjs/qcobjects-http-server.cjs.map +0 -7
  262. package/public/cjs/qcobjects-http2-server.cjs +0 -49
  263. package/public/cjs/qcobjects-http2-server.cjs.map +0 -7
  264. package/public/cjs/qcobjects-shell.cjs +0 -185
  265. package/public/cjs/qcobjects-shell.cjs.map +0 -7
  266. package/public/cjs/types/global/index.d.cjs +0 -2
  267. package/public/cjs/types/global/index.d.cjs.map +0 -7
  268. package/public/types/index.d.ts.map +0 -1
  269. package/src/index.cts +0 -2
  270. package/src/index.mts +0 -2
@@ -30,170 +30,167 @@
30
30
  /* eslint no-undef: "off" */
31
31
  "use strict";
32
32
  import { PipeLog } from "../common-pipelog";
33
+ import fs from "fs";
34
+ import os from "os";
35
+ import { exec, execSync } from "child_process";
36
+ import path from "node:path";
37
+ const absolutePath = path.resolve(__dirname, "./");
33
38
 
34
- (async () => {
35
- const fs = await import("node:fs");
36
- const os = await import("node:os");
37
- const { exec, execSync } = await import("node:child_process");
38
- // MY_ENV_VAR="HELLO WORLD" php -f index.php
39
-
40
- const { Package, BackendMicroservice, logger, CONFIG, Class } = await import("qcobjects");
41
- const path = await import("node:path");
42
- const absolutePath = path.resolve(__dirname, "./");
43
-
44
- const fixWinCmd = function (commandline: string) {
45
- if (!process.platform.toLowerCase().startsWith("win")) {
46
- commandline = commandline.replace(/(")/g, String.fromCharCode(92) + "\"");
47
- }
48
- return commandline;
49
- };
50
-
51
-
52
- class PHPMicroservice extends BackendMicroservice {
53
- request: any;
54
- stream: any;
55
- scriptFilePath: any;
56
- domain: any;
57
- tempFileName!: string;
58
- route: any;
59
- body: any;
60
- headers:any;
61
- constructor() {
62
- super();
63
- const o = this;
64
-
65
- logger.debug("PHP Microservice executing");
66
- const microservice = this;
67
- const request = microservice.request;
68
- const stream = o.stream;
69
- microservice.stream = stream;
70
- stream.on("data", (data: any) => {
71
- // data from POST, GET
72
- const requestMethod = request.method.toLowerCase();
73
- const supportedMethods: any = {
74
- "post": microservice.post.bind(this),
75
- };
76
- if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {
77
- supportedMethods[requestMethod].call(microservice, data);
78
- }
79
- });
39
+ import { Package, BackendMicroservice, logger, CONFIG, Class } from "qcobjects";
80
40
 
41
+ const fixWinCmd = function (commandline: string) {
42
+ if (!process.platform.toLowerCase().startsWith("win")) {
43
+ commandline = commandline.replace(/(")/g, String.fromCharCode(92) + "\"");
44
+ }
45
+ return commandline;
46
+ };
47
+
48
+
49
+ class PHPMicroservice extends BackendMicroservice {
50
+ request: any;
51
+ stream: any;
52
+ scriptFilePath: any;
53
+ domain: any;
54
+ tempFileName!: string;
55
+ route: any;
56
+ body: any;
57
+ headers:any;
58
+ constructor() {
59
+ super();
60
+ const o = this;
61
+
62
+ logger.debug("PHP Microservice executing");
63
+ const microservice = this;
64
+ const request = microservice.request;
65
+ const stream = o.stream;
66
+ microservice.stream = stream;
67
+ stream.on("data", (data: any) => {
81
68
  // data from POST, GET
82
69
  const requestMethod = request.method.toLowerCase();
83
70
  const supportedMethods: any = {
84
- "get": microservice.get.bind(this),
85
- "head": microservice.head.bind(this),
86
- "put": microservice.put.bind(this),
87
- "delete": microservice.delete.bind(this),
88
- "connect": microservice.connect.bind(this),
89
- "options": microservice.options.bind(this),
90
- "trace": microservice.trace.bind(this),
91
- "patch": microservice.patch.bind(this)
71
+ "post": microservice.post.bind(this),
92
72
  };
93
73
  if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {
94
- supportedMethods[requestMethod].call(microservice);
74
+ supportedMethods[requestMethod].call(microservice, data);
95
75
  }
96
-
76
+ });
77
+
78
+ // data from POST, GET
79
+ const requestMethod = request.method.toLowerCase();
80
+ const supportedMethods: any = {
81
+ "get": microservice.get.bind(this),
82
+ "head": microservice.head.bind(this),
83
+ "put": microservice.put.bind(this),
84
+ "delete": microservice.delete.bind(this),
85
+ "connect": microservice.connect.bind(this),
86
+ "options": microservice.options.bind(this),
87
+ "trace": microservice.trace.bind(this),
88
+ "patch": microservice.patch.bind(this)
89
+ };
90
+ if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {
91
+ supportedMethods[requestMethod].call(microservice);
97
92
  }
98
93
 
99
- get_php_headers_list() {
100
- const phpheaders: any = {
101
- "QUERY_STRING": `${this.request.query}`,
102
- "REDIRECT_STATUS": "200",
103
- "REQUEST_METHOD": `${this.request.method}`,
104
- "SCRIPT_FILENAME": `${this.scriptFilePath}`,
105
- "SCRIPT_NAME": `${this.scriptFilePath.toString()}`,
106
- "PATH_INFO": `${this.request.path}`,
107
- "SERVER_NAME": `${this.domain}`,
108
- "SERVER_PROTOCOL": "HTTP/2",
109
- "REQUEST_URI": `${this.request.href}`,
110
- "HTTP_HOST": `${this.domain}`
111
- };
94
+ }
112
95
 
113
- function fixedEncodeURIComponent(str: string | number | boolean) {
114
- return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
115
- }
116
- for (const headername in this.request.headers) {
117
- if (!headername.startsWith(":")) {
118
- const phpheadername = headername.toUpperCase().replace(new RegExp("-", "g"), "_");
119
- let headervalue = this.request.headers[headername];
120
- if (typeof headervalue !== "string") {
121
- headervalue = JSON.stringify(headervalue);
122
- }
123
- phpheaders["HTTP_" + phpheadername] = fixedEncodeURIComponent(headervalue);
96
+ get_php_headers_list() {
97
+ const phpheaders: any = {
98
+ "QUERY_STRING": `${this.request.query}`,
99
+ "REDIRECT_STATUS": "200",
100
+ "REQUEST_METHOD": `${this.request.method}`,
101
+ "SCRIPT_FILENAME": `${this.scriptFilePath}`,
102
+ "SCRIPT_NAME": `${this.scriptFilePath.toString()}`,
103
+ "PATH_INFO": `${this.request.path}`,
104
+ "SERVER_NAME": `${this.domain}`,
105
+ "SERVER_PROTOCOL": "HTTP/2",
106
+ "REQUEST_URI": `${this.request.href}`,
107
+ "HTTP_HOST": `${this.domain}`
108
+ };
109
+
110
+ function fixedEncodeURIComponent(str: string | number | boolean) {
111
+ return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
112
+ }
113
+ for (const headername in this.request.headers) {
114
+ if (!headername.startsWith(":")) {
115
+ const phpheadername = headername.toUpperCase().replace(new RegExp("-", "g"), "_");
116
+ let headervalue = this.request.headers[headername];
117
+ if (typeof headervalue !== "string") {
118
+ headervalue = JSON.stringify(headervalue);
124
119
  }
120
+ phpheaders["HTTP_" + phpheadername] = fixedEncodeURIComponent(headervalue);
125
121
  }
126
-
127
- return PipeLog.pipe(phpheaders);
128
122
  }
129
123
 
130
- saveTempData(data: any, done: { (): void; (): void; call?: any; }) {
131
- const filename = os.tmpdir() + this.tempFileName;
132
- fs.writeFile(filename, data, (err: any) => {
133
- if (err) throw err;
134
- logger.debug("A temp data file has been saved!");
135
- done.call(this);
136
- });
137
- }
124
+ return PipeLog.pipe(phpheaders);
125
+ }
138
126
 
139
- generateTempFileName() {
140
- this.tempFileName = "temp" + Date.now().toString();
141
- return this.tempFileName;
142
- }
127
+ saveTempData(data: any, done: { (): void; (): void; call?: any; }) {
128
+ const filename = os.tmpdir() + this.tempFileName;
129
+ fs.writeFile(filename, data, (err: any) => {
130
+ if (err) throw err;
131
+ logger.debug("A temp data file has been saved!");
132
+ done.call(this);
133
+ });
134
+ }
143
135
 
144
- trimSlash(pathname: string) {
145
- if (pathname.startsWith("/")) {
146
- pathname = pathname.slice(1);
147
- }
148
- if (pathname.endsWith("/")) {
149
- pathname = pathname.slice(0, -1);
150
- }
151
- return pathname.replace("//", "/");
136
+ generateTempFileName() {
137
+ this.tempFileName = "temp" + Date.now().toString();
138
+ return this.tempFileName;
139
+ }
140
+
141
+ trimSlash(pathname: string) {
142
+ if (pathname.startsWith("/")) {
143
+ pathname = pathname.slice(1);
152
144
  }
145
+ if (pathname.endsWith("/")) {
146
+ pathname = pathname.slice(0, -1);
147
+ }
148
+ return pathname.replace("//", "/");
149
+ }
153
150
 
154
- get() {
155
- const microservice = this;
156
- microservice.generateTempFileName();
157
-
158
- microservice.saveTempData(this.request.query, function () {
159
- try {
160
- process.chdir(CONFIG.get("documentRoot") + microservice.request.pathname.slice(1));
161
- } catch (e) { }
162
-
163
- const scriptFileName = (microservice.route.hasOwnProperty.call(microservice.route, "redirect_to") &&
164
- microservice.route.redirect_to !== "") ? (microservice.route.redirect_to) : (microservice.request.scriptname);
165
- const pathname = microservice.trimSlash(microservice.request.pathname);
166
- let documentRoot = CONFIG.get("documentRoot", "");
167
- if (documentRoot == "./") {
168
- documentRoot = "";
169
- }
151
+ get() {
152
+ const microservice = this;
153
+ microservice.generateTempFileName();
170
154
 
171
- let scriptFilePath;
172
- if (documentRoot !== "") {
173
- scriptFilePath = `${documentRoot}/${pathname}/${scriptFileName}`;
174
- } else {
175
- scriptFilePath = `${pathname}/${scriptFileName}`;
176
- }
155
+ microservice.saveTempData(this.request.query, function () {
156
+ try {
157
+ process.chdir(CONFIG.get("documentRoot") + microservice.request.pathname.slice(1));
158
+ } catch (e) { }
159
+
160
+ const scriptFileName = (microservice.route.hasOwnProperty.call(microservice.route, "redirect_to") &&
161
+ microservice.route.redirect_to !== "") ? (microservice.route.redirect_to) : (microservice.request.scriptname);
162
+ const pathname = microservice.trimSlash(microservice.request.pathname);
163
+ let documentRoot = CONFIG.get("documentRoot", "");
164
+ if (documentRoot == "./") {
165
+ documentRoot = "";
166
+ }
177
167
 
178
- scriptFilePath = scriptFilePath.replace("//", "/");
179
- if (scriptFilePath.startsWith("/") && !documentRoot.startsWith("/")) {
180
- scriptFilePath = scriptFilePath.slice(1);
181
- }
168
+ let scriptFilePath;
169
+ if (documentRoot !== "") {
170
+ scriptFilePath = `${documentRoot}/${pathname}/${scriptFileName}`;
171
+ } else {
172
+ scriptFilePath = `${pathname}/${scriptFileName}`;
173
+ }
174
+
175
+ scriptFilePath = scriptFilePath.replace("//", "/");
176
+ if (scriptFilePath.startsWith("/") && !documentRoot.startsWith("/")) {
177
+ scriptFilePath = scriptFilePath.slice(1);
178
+ }
182
179
 
183
- logger.debug(`Loading PHP file: ${scriptFilePath}`);
184
- const PHPIncludePath = `.:${CONFIG.get("documentRoot")}:${CONFIG.get("projectPath")}`;
180
+ logger.debug(`Loading PHP file: ${scriptFilePath}`);
181
+ const PHPIncludePath = `.:${CONFIG.get("documentRoot")}:${CONFIG.get("projectPath")}`;
185
182
 
186
- microservice.scriptFilePath = scriptFilePath;
183
+ microservice.scriptFilePath = scriptFilePath;
187
184
 
188
- let commandline = `echo $(cat ${os.tmpdir()}${microservice.tempFileName}) |` + microservice.get_php_headers_list() + ` php -d include_path="${PHPIncludePath}" -q <<- 'EOF'
185
+ let commandline = `echo $(cat ${os.tmpdir()}${microservice.tempFileName}) |` + microservice.get_php_headers_list() + ` php -d include_path="${PHPIncludePath}" -q <<- 'EOF'
189
186
  <?php
190
187
  $_payload = file_get_contents(sys_get_temp_dir().'${microservice.tempFileName}');
191
188
  foreach ($_SERVER as $_k => $_v) {
192
189
  if (array_key_exists($_k,$_ENV)){
193
- $_SERVER[$_k] = $_ENV[$_k];
190
+ $_SERVER[$_k] = $_ENV[$_k];
194
191
  }
195
192
  if ( substr($_k, 0, strlen('HTTP_')) == 'HTTP_' ){
196
- $_SERVER[$_k]=urldecode($_v);
193
+ $_SERVER[$_k]=urldecode($_v);
197
194
  }
198
195
  }
199
196
  @parse_str(parse_url('?'.$_payload, PHP_URL_QUERY), $_REQUEST);
@@ -202,73 +199,73 @@ unlink(sys_get_temp_dir().'${microservice.tempFileName}');
202
199
  include('${scriptFilePath}');
203
200
  ?>
204
201
  EOF`;
205
- commandline = fixWinCmd(commandline);
206
- logger.debug(commandline);
207
- try {
208
- const php = exec(commandline, (err: any, stdout: any, stderr: any) => {
209
- microservice.body = stdout;
210
- console.log(stderr);
211
- microservice.done();
212
- });
213
- } catch (ex: any) {
214
- microservice.body = "500 - INTERNAL ERROR";
215
- logger.debug(ex.toString());
216
- console.log(ex);
202
+ commandline = fixWinCmd(commandline);
203
+ logger.debug(commandline);
204
+ try {
205
+ const php = exec(commandline, (err: any, stdout: any, stderr: any) => {
206
+ microservice.body = stdout;
207
+ console.log(stderr);
217
208
  microservice.done();
218
- }
209
+ });
210
+ } catch (ex: any) {
211
+ microservice.body = "500 - INTERNAL ERROR";
212
+ logger.debug(ex.toString());
213
+ console.log(ex);
214
+ microservice.done();
215
+ }
219
216
 
220
- });
217
+ });
221
218
 
222
- }
219
+ }
223
220
 
224
- head(formData: any) {
225
- this.done();
226
- }
221
+ head(formData: any) {
222
+ this.done();
223
+ }
227
224
 
228
- post(formData: any) {
229
- logger.debug("POST DATA");
230
- const microservice = this;
231
- microservice.generateTempFileName();
232
-
233
- microservice.saveTempData(formData, function () {
234
- try {
235
- process.chdir(CONFIG.get("documentRoot") + microservice.request.pathname.slice(1));
236
- } catch (e) { }
237
-
238
- const scriptFileName = (microservice.route.hasOwnProperty.call(microservice.route, "redirect_to") &&
239
- microservice.route.redirect_to !== "") ? (microservice.route.redirect_to) : (microservice.request.scriptname);
240
- const pathname = microservice.trimSlash(microservice.request.pathname);
241
- let documentRoot = CONFIG.get("documentRoot", "");
242
- if (documentRoot == "./") {
243
- documentRoot = "";
244
- }
225
+ post(formData: any) {
226
+ logger.debug("POST DATA");
227
+ const microservice = this;
228
+ microservice.generateTempFileName();
245
229
 
246
- let scriptFilePath;
247
- if (documentRoot !== "") {
248
- scriptFilePath = `${documentRoot}/${pathname}/${scriptFileName}`;
249
- } else {
250
- scriptFilePath = `${pathname}/${scriptFileName}`;
251
- }
230
+ microservice.saveTempData(formData, function () {
231
+ try {
232
+ process.chdir(CONFIG.get("documentRoot") + microservice.request.pathname.slice(1));
233
+ } catch (e) { }
234
+
235
+ const scriptFileName = (microservice.route.hasOwnProperty.call(microservice.route, "redirect_to") &&
236
+ microservice.route.redirect_to !== "") ? (microservice.route.redirect_to) : (microservice.request.scriptname);
237
+ const pathname = microservice.trimSlash(microservice.request.pathname);
238
+ let documentRoot = CONFIG.get("documentRoot", "");
239
+ if (documentRoot == "./") {
240
+ documentRoot = "";
241
+ }
252
242
 
253
- scriptFilePath = scriptFilePath.replace("//", "/");
254
- if (scriptFilePath.startsWith("/") && !documentRoot.startsWith("/")) {
255
- scriptFilePath = scriptFilePath.slice(1);
256
- }
243
+ let scriptFilePath;
244
+ if (documentRoot !== "") {
245
+ scriptFilePath = `${documentRoot}/${pathname}/${scriptFileName}`;
246
+ } else {
247
+ scriptFilePath = `${pathname}/${scriptFileName}`;
248
+ }
249
+
250
+ scriptFilePath = scriptFilePath.replace("//", "/");
251
+ if (scriptFilePath.startsWith("/") && !documentRoot.startsWith("/")) {
252
+ scriptFilePath = scriptFilePath.slice(1);
253
+ }
257
254
 
258
- logger.debug(`Loading PHP file: ${scriptFilePath}`);
259
- const PHPIncludePath = `.:${CONFIG.get("documentRoot")}:${CONFIG.get("projectPath")}`;
255
+ logger.debug(`Loading PHP file: ${scriptFilePath}`);
256
+ const PHPIncludePath = `.:${CONFIG.get("documentRoot")}:${CONFIG.get("projectPath")}`;
260
257
 
261
- microservice.scriptFilePath = scriptFilePath;
258
+ microservice.scriptFilePath = scriptFilePath;
262
259
 
263
- let commandline = `echo $(cat ${os.tmpdir()}${microservice.tempFileName}) |` + microservice.get_php_headers_list() + ` php -d include_path="${PHPIncludePath}" -q <<- 'EOF'
260
+ let commandline = `echo $(cat ${os.tmpdir()}${microservice.tempFileName}) |` + microservice.get_php_headers_list() + ` php -d include_path="${PHPIncludePath}" -q <<- 'EOF'
264
261
  <?php
265
262
  $_payload = file_get_contents(sys_get_temp_dir().'${microservice.tempFileName}');
266
263
  foreach ($_SERVER as $_k => $_v) {
267
264
  if (array_key_exists($_k,$_ENV)){
268
- $_SERVER[$_k] = $_ENV[$_k];
265
+ $_SERVER[$_k] = $_ENV[$_k];
269
266
  }
270
267
  if ( substr($_k, 0, strlen('HTTP_')) == 'HTTP_' ){
271
- $_SERVER[$_k]=urldecode($_v);
268
+ $_SERVER[$_k]=urldecode($_v);
272
269
  }
273
270
  }
274
271
  @parse_str(parse_url('?'.$_payload, PHP_URL_QUERY), $_REQUEST);
@@ -277,81 +274,79 @@ unlink(sys_get_temp_dir().'${microservice.tempFileName}');
277
274
  @include('${scriptFilePath}');
278
275
  ?>
279
276
  EOF`;
280
- commandline = fixWinCmd(commandline);
281
- // logger.debug(commandline);
282
-
283
- try {
284
- microservice.body = execSync(commandline).toString();
285
- } catch (ex: any) {
286
- microservice.body = "500 - INTERNAL ERROR";
287
- logger.debug(ex.toString());
288
- }
289
- microservice.done();
277
+ commandline = fixWinCmd(commandline);
278
+ // logger.debug(commandline);
290
279
 
291
- });
280
+ try {
281
+ microservice.body = execSync(commandline).toString();
282
+ } catch (ex: any) {
283
+ microservice.body = "500 - INTERNAL ERROR";
284
+ logger.debug(ex.toString());
285
+ }
286
+ microservice.done();
292
287
 
293
- }
288
+ });
294
289
 
295
- put(formData: any) {
296
- this.done();
297
- }
290
+ }
298
291
 
299
- delete(formData: any) {
300
- this.done();
301
- }
292
+ put(formData: any) {
293
+ this.done();
294
+ }
302
295
 
303
- connect(formData: any) {
304
- this.done();
305
- }
296
+ delete(formData: any) {
297
+ this.done();
298
+ }
306
299
 
307
- options(formData: any) {
308
- this.done();
309
- }
300
+ connect(formData: any) {
301
+ this.done();
302
+ }
310
303
 
311
- trace(formData: any) {
312
- this.done();
313
- }
304
+ options(formData: any) {
305
+ this.done();
306
+ }
314
307
 
315
- patch(formData: any) {
316
- this.done();
317
- }
308
+ trace(formData: any) {
309
+ this.done();
310
+ }
318
311
 
319
- done() {
320
- const microservice = this;
321
- const stream = microservice.stream;
322
- try {
323
- stream.respond(microservice.headers);
324
- } catch (e) {
325
- //
326
- }
327
- if (microservice.body != null) {
328
- microservice.finishWithBody.call(microservice, stream);
329
- }
312
+ patch(formData: any) {
313
+ this.done();
314
+ }
315
+
316
+ done() {
317
+ const microservice = this;
318
+ const stream = microservice.stream;
319
+ try {
320
+ stream.respond(microservice.headers);
321
+ } catch (e) {
322
+ //
323
+ }
324
+ if (microservice.body != null) {
325
+ microservice.finishWithBody.call(microservice, stream);
330
326
  }
327
+ }
331
328
 
332
- finishWithBody(stream: { write: (arg0: any) => void; end: () => void; }) {
333
- try {
334
- stream.write(this.body);
335
- stream.end();
336
- } catch (e: any) {
337
- logger.debug("Something wrong writing the response for microservice" + e.toString());
338
- }
329
+ finishWithBody(stream: { write: (arg0: any) => void; end: () => void; }) {
330
+ try {
331
+ stream.write(this.body);
332
+ stream.end();
333
+ } catch (e: any) {
334
+ logger.debug("Something wrong writing the response for microservice" + e.toString());
339
335
  }
336
+ }
340
337
 
341
338
 
342
- }
339
+ }
343
340
 
344
- const Microservice = Class("Microservice", PHPMicroservice);
341
+ const Microservice = Class("Microservice", PHPMicroservice);
345
342
 
346
- Package("org.quickcorp.backend.php", [
343
+ Package("org.quickcorp.backend.php", [
347
344
 
348
- PHPMicroservice,
349
- Microservice
350
- ]);
345
+ PHPMicroservice,
346
+ Microservice
347
+ ]);
351
348
 
352
- exports = {
353
- PHPMicroservice,
354
- Microservice
355
- };
356
- })()
357
- .catch(e => {console.error(e);});
349
+ exports = {
350
+ PHPMicroservice,
351
+ Microservice
352
+ };