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
package/tsconfig.d.json CHANGED
@@ -1,5 +1,47 @@
1
1
  {
2
- "extends": "qcobjects-tsconfig/tsconfig.d.json",
3
- "include": ["src/**/*.ts"],
4
- "exclude": ["src/**/*.spec.js", "src/*.js"]
2
+ "extends": [
3
+ "./tsconfig.json"
4
+ ],
5
+ "compilerOptions": {
6
+ "strict": true,
7
+ "noImplicitAny": true,
8
+ "strictNullChecks": true,
9
+ "strictFunctionTypes": true,
10
+ "strictPropertyInitialization": true,
11
+ "noImplicitThis": true,
12
+ "alwaysStrict": true,
13
+ "rootDir": "./src",
14
+ "outFile": "public/index.d.ts",
15
+ "allowSyntheticDefaultImports": true,
16
+ "esModuleInterop": true,
17
+ "declaration": true,
18
+ "emitDeclarationOnly": true,
19
+ "baseUrl": ".",
20
+ "typeRoots": ["./node_modules/@types"],
21
+ "paths": {
22
+ "types": ["src/types/global"]
23
+ }
24
+ },
25
+ "include": [
26
+ "src/**/*",
27
+ "src/types/**/*"
28
+ ],
29
+ "exclude": ["src/**/*.mts", "src/**/*.cts", "node_modules/**/*", "**/node_modules/*", "src/**/*.js"],
30
+ "ts-node": {
31
+ // It is faster to skip typechecking.
32
+ // Remove if you want ts-node to do typechecking.
33
+ "transpileOnly": true,
34
+ "files": true,
35
+ "compilerOptions": {
36
+ "rootDir": "./src",
37
+ "baseUrl": ".",
38
+ "paths": {
39
+ "types": ["types/global"]
40
+
41
+ }
42
+
43
+ },
44
+ "exclude": ["node_modules/**/*", "**/node_modules/*"]
45
+
46
+ }
5
47
  }
@@ -0,0 +1,39 @@
1
+ {
2
+ "compilerOptions": {
3
+ "noEmit": true,
4
+ "forceConsistentCasingInFileNames": true,
5
+ "strict": true,
6
+ "noImplicitAny": true,
7
+ "strictNullChecks": true,
8
+ "strictFunctionTypes": true,
9
+ "strictPropertyInitialization": true,
10
+ "noImplicitThis": true,
11
+ "alwaysStrict": true,
12
+ "target": "ESNext",
13
+ "lib": [
14
+ "ESNext",
15
+ "DOM"
16
+ ],
17
+ "module": "NodeNext",
18
+ "rootDir": "./",
19
+ "allowJs": true,
20
+ "outDir": "build/spec",
21
+ "allowSyntheticDefaultImports": true,
22
+ "esModuleInterop": true,
23
+ "baseUrl": ".",
24
+ "typeRoots": [
25
+ "./node_modules/@types"
26
+ ],
27
+ "paths": {
28
+ "types": [
29
+ "src/types/global"
30
+ ],
31
+ "qcobjects-sdk": ["spec/mocks/qcobjects-sdk.mock.ts"]
32
+ }
33
+ },
34
+ "include": [
35
+ "spec/**/*"
36
+ ],
37
+ "exclude": ["src/**/*", "node_modules/**/*", "**/node_modules/*"]
38
+
39
+ }
package/tsconfig.json CHANGED
@@ -1,10 +1,53 @@
1
1
  {
2
- "extends": "qcobjects-tsconfig/tsconfig.json",
3
2
  "compilerOptions": {
4
- "rootDir": "src", /* Specify the root folder within your source files. */
5
- "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
6
- "outDir": "build", /* Specify an output folder for all emitted files. */
3
+ "forceConsistentCasingInFileNames": true,
4
+ "strict": true,
5
+ "noImplicitAny": true,
6
+ "strictNullChecks": true,
7
+ "strictFunctionTypes": true,
8
+ "strictPropertyInitialization": true,
9
+ "noImplicitThis": true,
10
+ "alwaysStrict": true,
11
+ "target": "ESNext",
12
+ "lib": [
13
+ "ESNext",
14
+ "DOM"
15
+ ],
16
+ "module": "NodeNext",
17
+ "rootDir": "./src",
18
+ "allowJs": true,
19
+ "outDir": "build",
20
+ "allowSyntheticDefaultImports": true,
21
+ "esModuleInterop": true,
22
+ "baseUrl": ".",
23
+ "typeRoots": [
24
+ "./node_modules/@types"
25
+ ],
26
+ "paths": {
27
+ "types": [
28
+ "src/types/global"
29
+ ]
30
+ }
7
31
  },
8
- "include": ["src/**/*.ts"],
9
- "exclude": ["src/**/*.spec.js", "src/*.js"]
10
- }
32
+ "include": [
33
+ "src/**/*",
34
+ "src/types/**/*"
35
+ ],
36
+ "exclude": ["src/**/*.js", "node_modules/**/*", "**/node_modules/*"],
37
+ "ts-node": {
38
+ // It is faster to skip typechecking.
39
+ // Remove if you want ts-node to do typechecking.
40
+ "transpileOnly": true,
41
+ "files": true,
42
+ "compilerOptions": {
43
+ "rootDir": "./src",
44
+ "baseUrl": ".",
45
+ "paths": {
46
+ "types": [
47
+ "types/global"
48
+ ]
49
+ }
50
+ },
51
+ "exclude": ["node_modules/**/*", "**/node_modules/*"]
52
+ }
53
+ }
package/.eslintignore DELETED
@@ -1,5 +0,0 @@
1
- build
2
- dist
3
- public
4
- src/**/*.d.ts
5
- src/**/*.js
package/.eslintrc.cjs DELETED
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- extends: [
3
- "qcobjects",
4
- "qcobjects-typescript"
5
- ]
6
- };
@@ -1,334 +0,0 @@
1
- /**
2
- * QCObjects CLI 2.3.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 fs = require("fs");
33
- const os = require("os");
34
- const {
35
- exec,
36
- execSync
37
- } = require("child_process");
38
- // MY_ENV_VAR="HELLO WORLD" php -f index.php
39
-
40
- const fixWinCmd = function (commandline) {
41
- if (!process.platform.toLowerCase().startsWith("win")) {
42
- commandline = commandline.replace(/(")/g, String.fromCharCode(92) + "\"");
43
- }
44
- return commandline;
45
- };
46
-
47
- Package("org.quickcorp.backend.php", [
48
-
49
- class PHPMicroservice extends BackendMicroservice {
50
- constructor() {
51
- super(...arguments);
52
- const o = this;
53
-
54
- logger.debug("PHP Microservice executing");
55
- const microservice = this;
56
- const request = microservice.request;
57
- const stream = o.stream;
58
- microservice.stream = stream;
59
- stream.on("data", (data) => {
60
- // data from POST, GET
61
- const requestMethod = request.method.toLowerCase();
62
- const supportedMethods = {
63
- "post": microservice.post,
64
- };
65
- if (supportedMethods.hasOwnProperty.call(supportedmethods, requestMethod)) {
66
- supportedMethods[requestMethod].call(microservice, data);
67
- }
68
- });
69
-
70
- // data from POST, GET
71
- const requestMethod = request.method.toLowerCase();
72
- const supportedMethods = {
73
- "get": microservice.get,
74
- "head": microservice.head,
75
- "put": microservice.put,
76
- "delete": microservice.delete,
77
- "connect": microservice.connect,
78
- "options": microservice.options,
79
- "trace": microservice.trace,
80
- "patch": microservice.patch
81
- };
82
- if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {
83
- supportedMethods[requestMethod].call(microservice);
84
- }
85
-
86
- }
87
-
88
- get_php_headers_list() {
89
- const phpheaders = {
90
- "QUERY_STRING": `${this.request.query}`,
91
- "REDIRECT_STATUS": "200",
92
- "REQUEST_METHOD": `${this.request.method}`,
93
- "SCRIPT_FILENAME": `${this.scriptFilePath}`,
94
- "SCRIPT_NAME": `${this.scriptFilePath.toString()}`,
95
- "PATH_INFO": `${this.request.path}`,
96
- "SERVER_NAME": `${this.domain}`,
97
- "SERVER_PROTOCOL": "HTTP/2",
98
- "REQUEST_URI": `${this.request.href}`,
99
- "HTTP_HOST": `${this.domain}`
100
- };
101
-
102
- function fixedEncodeURIComponent(str) {
103
- return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
104
- }
105
- for (const headername in this.request.headers) {
106
- if (!headername.startsWith(":")) {
107
- const phpheadername = headername.toUpperCase().replace(new RegExp("-", "g"), "_");
108
- let headervalue = this.request.headers[headername];
109
- if (typeof headervalue !== "string") {
110
- headervalue = JSON.stringify(headervalue);
111
- }
112
- phpheaders["HTTP_" + phpheadername] = fixedEncodeURIComponent(headervalue);
113
- }
114
- }
115
-
116
- return PipeLog.pipe(phpheaders);
117
- }
118
-
119
- saveTempData(data, done) {
120
- const filename = os.tmpdir() + this.tempFileName;
121
- fs.writeFile(filename, data, (err) => {
122
- if (err) throw err;
123
- logger.debug("A temp data file has been saved!");
124
- done.call(this);
125
- });
126
- }
127
-
128
- generateTempFileName() {
129
- this.tempFileName = "temp" + Date.now().toString();
130
- return this.tempFileName;
131
- }
132
-
133
- trimSlash(pathname) {
134
- if (pathname.startsWith("/")) {
135
- pathname = pathname.slice(1);
136
- }
137
- if (pathname.endsWith("/")) {
138
- pathname = pathname.slice(0, -1);
139
- }
140
- return pathname.replace("//", "/");
141
- }
142
-
143
- get() {
144
- const microservice = this;
145
- microservice.generateTempFileName();
146
-
147
- microservice.saveTempData(this.request.query, function () {
148
- try {
149
- process.chdir(CONFIG.get("documentRoot") + microservice.request.pathname.slice(1));
150
- } catch (e) {}
151
-
152
- const scriptFileName = (microservice.route.hasOwnProperty.call(microservice.route, "redirect_to") &&
153
- microservice.route.redirect_to !== "") ? (microservice.route.redirect_to) : (microservice.request.scriptname);
154
- const pathname = this.trimSlash(microservice.request.pathname);
155
- let documentRoot = CONFIG.get("documentRoot", "");
156
- if (documentRoot == "./") {
157
- documentRoot = "";
158
- }
159
-
160
- let scriptFilePath;
161
- if (documentRoot !== "") {
162
- scriptFilePath = `${documentRoot}/${pathname}/${scriptFileName}`;
163
- } else {
164
- scriptFilePath = `${pathname}/${scriptFileName}`;
165
- }
166
-
167
- scriptFilePath = scriptFilePath.replace("//", "/");
168
- if (scriptFilePath.startsWith("/") && !documentRoot.startsWith("/")) {
169
- scriptFilePath = scriptFilePath.slice(1);
170
- }
171
-
172
- logger.debug(`Loading PHP file: ${scriptFilePath}`);
173
- const PHPIncludePath = `.:${CONFIG.get("documentRoot")}:${CONFIG.get("projectPath")}`;
174
-
175
- microservice.scriptFilePath = scriptFilePath;
176
-
177
- let commandline = `echo $(cat ${os.tmpdir()}${microservice.tempFileName}) |` + microservice.get_php_headers_list() + ` php -d include_path="${PHPIncludePath}" -q <<- 'EOF'
178
- <?php
179
- $_payload = file_get_contents(sys_get_temp_dir().'${microservice.tempFileName}');
180
- foreach ($_SERVER as $_k => $_v) {
181
- if (array_key_exists($_k,$_ENV)){
182
- $_SERVER[$_k] = $_ENV[$_k];
183
- }
184
- if ( substr($_k, 0, strlen('HTTP_')) == 'HTTP_' ){
185
- $_SERVER[$_k]=urldecode($_v);
186
- }
187
- }
188
- @parse_str(parse_url('?'.$_payload, PHP_URL_QUERY), $_REQUEST);
189
- @parse_str(parse_url('?'.$_payload, PHP_URL_QUERY), $_GET);
190
- unlink(sys_get_temp_dir().'${microservice.tempFileName}');
191
- include('${scriptFilePath}');
192
- ?>
193
- EOF`;
194
- commandline = fixWinCmd(commandline);
195
- logger.debug(commandline);
196
- try {
197
- const php = exec(commandline, (err, stdout, stderr) => {
198
- microservice.body = stdout;
199
- console.log(stderr);
200
- microservice.done();
201
- });
202
- } catch (ex) {
203
- microservice.body = "500 - INTERNAL ERROR";
204
- logger.debug(ex.toString());
205
- console.log(ex);
206
- microservice.done();
207
- }
208
-
209
- });
210
-
211
- }
212
-
213
- head(formData) {
214
- this.done();
215
- }
216
-
217
- post(formData) {
218
- logger.debug("POST DATA");
219
- const microservice = this;
220
- microservice.generateTempFileName();
221
-
222
- microservice.saveTempData(formData, function () {
223
- try {
224
- process.chdir(CONFIG.get("documentRoot") + microservice.request.pathname.slice(1));
225
- } catch (e) {}
226
-
227
- const scriptFileName = (microservice.route.hasOwnProperty.call(microservice.route, "redirect_to") &&
228
- microservice.route.redirect_to !== "") ? (microservice.route.redirect_to) : (microservice.request.scriptname);
229
- const pathname = this.trimSlash(microservice.request.pathname);
230
- let documentRoot = CONFIG.get("documentRoot", "");
231
- if (documentRoot == "./") {
232
- documentRoot = "";
233
- }
234
-
235
- let scriptFilePath;
236
- if (documentRoot !== "") {
237
- scriptFilePath = `${documentRoot}/${pathname}/${scriptFileName}`;
238
- } else {
239
- scriptFilePath = `${pathname}/${scriptFileName}`;
240
- }
241
-
242
- scriptFilePath = scriptFilePath.replace("//", "/");
243
- if (scriptFilePath.startsWith("/") && !documentRoot.startsWith("/")) {
244
- scriptFilePath = scriptFilePath.slice(1);
245
- }
246
-
247
- logger.debug(`Loading PHP file: ${scriptFilePath}`);
248
- const PHPIncludePath = `.:${CONFIG.get("documentRoot")}:${CONFIG.get("projectPath")}`;
249
-
250
- microservice.scriptFilePath = scriptFilePath;
251
-
252
- let commandline = `echo $(cat ${os.tmpdir()}${microservice.tempFileName}) |` + microservice.get_php_headers_list() + ` php -d include_path="${PHPIncludePath}" -q <<- 'EOF'
253
- <?php
254
- $_payload = file_get_contents(sys_get_temp_dir().'${microservice.tempFileName}');
255
- foreach ($_SERVER as $_k => $_v) {
256
- if (array_key_exists($_k,$_ENV)){
257
- $_SERVER[$_k] = $_ENV[$_k];
258
- }
259
- if ( substr($_k, 0, strlen('HTTP_')) == 'HTTP_' ){
260
- $_SERVER[$_k]=urldecode($_v);
261
- }
262
- }
263
- @parse_str(parse_url('?'.$_payload, PHP_URL_QUERY), $_REQUEST);
264
- @parse_str(parse_url('?'.$_payload, PHP_URL_QUERY), $_POST);
265
- unlink(sys_get_temp_dir().'${microservice.tempFileName}');
266
- @include('${scriptFilePath}');
267
- ?>
268
- EOF`;
269
- commandline = fixWinCmd(commandline);
270
- // logger.debug(commandline);
271
-
272
- try {
273
- microservice.body = execSync(commandline).toString();
274
- } catch (ex) {
275
- microservice.body = "500 - INTERNAL ERROR";
276
- logger.debug(ex.toString());
277
- }
278
- microservice.done();
279
-
280
- });
281
-
282
- }
283
-
284
- put(formData) {
285
- this.done();
286
- }
287
-
288
- delete(formData) {
289
- this.done();
290
- }
291
-
292
- connect(formData) {
293
- this.done();
294
- }
295
-
296
- options(formData) {
297
- this.done();
298
- }
299
-
300
- trace(formData) {
301
- this.done();
302
- }
303
-
304
- patch(formData) {
305
- this.done();
306
- }
307
-
308
- done() {
309
- const microservice = this;
310
- const stream = microservice.stream;
311
- try {
312
- stream.respond(microservice.headers);
313
- } catch (e) {
314
- //
315
- }
316
- if (microservice.body != null) {
317
- microservice.finishWithBody.call(microservice, stream);
318
- }
319
- }
320
-
321
- finishWithBody(stream) {
322
- try {
323
- stream.write(this.body);
324
- stream.end();
325
- } catch (e) {
326
- logger.debug("Something wrong writing the response for microservice" + e.toString());
327
- }
328
- }
329
-
330
-
331
- },
332
-
333
- Class("Microservice", PHPMicroservice)
334
- ]);
@@ -1,144 +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 fs = require("fs");
33
- const path = require("path");
34
- const absolutePath = path.resolve(__dirname, "./");
35
- const templatePath = path.resolve(__dirname, "./templates/apps/") + "/";
36
- const templatePwaPath = path.resolve(__dirname, "./templates/pwa/") + "/";
37
- const package_config = require(absolutePath + "/../package.json");
38
- const {
39
- exec,
40
- execSync
41
- } = require("child_process");
42
-
43
- require(absolutePath + "/com.qcobjects.cli.commands.jira.client_services");
44
-
45
- Package("com.qcobjects.cli.commands.jira", [
46
-
47
- class CommandHandler extends InheritClass {
48
- constructor({
49
- switchCommander
50
- }) {
51
- super(...arguments);
52
- this.choiceOption = {
53
- issues: function (options) {
54
-
55
- this.getIssueList().then(function (response) {
56
- console.log(_DataStringify(response));
57
- }).catch(e => {
58
- console.log(e);
59
- process.exit(1);
60
- });
61
-
62
- }
63
- };
64
-
65
- let commandHandler = this;
66
-
67
- switchCommander.program.command("jira <subcommand>")
68
- .option("-u, --from-user [username]", "User name")
69
- .option("-fp,--from-project <projectName>", "Project name")
70
- .option("-p, --pwd <password>", "Password")
71
- .option("-f, --format <format>", "Format (json, table)")
72
- .description(`Jira Integration:
73
- Sub-Commands can be:
74
- issues: To get the issues list from JIRA
75
- `)
76
- .action(function (subcommand, options) {
77
- if (commandHandler.choiceOption.hasOwnProperty.call(commandHandler.choiceOption, subcommand)) {
78
- commandHandler.choiceOption[subcommand].call(commandHandler, subcommand, options);
79
- } else {
80
- console.error(`Sub-Command (jira ${subcommand}... ) is not available`);
81
- process.exit(1);
82
- }
83
- });
84
-
85
-
86
-
87
-
88
-
89
- }
90
-
91
- getIssueList(username, password, project) {
92
- return new Promise(function (resolve, reject) {
93
- logger.info("I'm going to get the issue list from the jira cloud...");
94
- let jira_config = CONFIG.get("jira", null);
95
- if (jira_config !== null) {
96
- let jira_username = jira_config.username;
97
- let jira_password = jira_config.auth_token;
98
- let jira_project = jira_config.project;
99
- let jira_domain = jira_config.domain;
100
- let jira_issue_fields = ["id", "key", "summary", "timetracking"];
101
- let cloudClient = New(JiraCloud, {
102
- domain: `${jira_domain}`,
103
- username: `${jira_username}`,
104
- password: `${jira_password}`,
105
- apiMethod: "rest/api/latest/search",
106
- data: {
107
- "jql": `project = ${jira_project}`,
108
- "startAt": 0,
109
- "maxResults": 5000,
110
- "fields": jira_issue_fields
111
- }
112
- });
113
- try {
114
- let service = serviceLoader(cloudClient).then(successResponse => {
115
- let template = successResponse.service.template;
116
- let responseHeaders = successResponse.responseHeaders;
117
- if (responseHeaders[":status"] === 200 || !cloudClient.useHTTP2) {
118
- let response = JSON.parse(template);
119
- resolve(response);
120
- } else {
121
- console.error("\u{1F926} Something went wrong \u{1F926} when trying to get jira issues from the cloud. The status was: " + responseHeaders[":status"]);
122
- reject(template);
123
- }
124
- }).catch((e) => {
125
- console.error("\u{1F926} Something went wrong \u{1F926} when trying to get jira issues from the cloud");
126
- reject(e);
127
- });
128
- } catch (e) {
129
- console.error("\u{1F926} Something went wrong \u{1F926} when trying to get jira issues from the cloud");
130
- reject(e);
131
- }
132
-
133
- } else {
134
- console.error("\u{1F926} Something went wrong \u{1F926} You need to set the jira config settings");
135
- reject();
136
- }
137
-
138
- });
139
- }
140
-
141
-
142
- }
143
-
144
- ]);