qcobjects-cli 2.5.143-beta → 2.5.145-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 +18 -14
  14. package/.github/workflows/npmpublish-lts.yml +18 -14
  15. package/.github/workflows/npmpublish-main.yml +17 -13
  16. package/.github/workflows/open-pr-to-development.yml +70 -0
  17. package/.opencode/instructions/git-workflow.md +46 -0
  18. package/.pre-commit-config.yaml +9 -0
  19. package/AGENTS.md +59 -0
  20. package/CHANGELOG.md +0 -0
  21. package/README.md +75 -0
  22. package/VERSION +1 -1
  23. package/build-esbuild-esm.js +180 -0
  24. package/build-esbuild.js +182 -208
  25. package/deno.json +0 -0
  26. package/dev-requirements.txt +5 -0
  27. package/eslint.config.mjs +0 -0
  28. package/mod.ts +0 -0
  29. package/package.json +45 -44
  30. package/public/browser/api-client_services.js.map +1 -1
  31. package/public/browser/backend/backend-microservice-static.js +211 -219
  32. package/public/browser/backend/backend-microservice-static.js.map +2 -2
  33. package/public/browser/backend/backend-php.js +227 -231
  34. package/public/browser/backend/backend-php.js.map +3 -3
  35. package/public/browser/cli-commands-build-esbuild.js +326 -0
  36. package/public/browser/cli-commands-build-esbuild.js.map +7 -0
  37. package/public/browser/cli-commands-build-typescript.js +114 -0
  38. package/public/browser/cli-commands-build-typescript.js.map +7 -0
  39. package/public/browser/cli-commands-jira.js.map +1 -1
  40. package/public/browser/cli-commands-version.js.map +1 -1
  41. package/public/browser/cli-commands.js +4 -0
  42. package/public/browser/cli-commands.js.map +2 -2
  43. package/public/browser/cli-main.js.map +1 -1
  44. package/public/browser/client_services.js.map +1 -1
  45. package/public/browser/collab-server.js.map +1 -1
  46. package/public/browser/common-pipelog.js.map +1 -1
  47. package/public/browser/defaultsettings.js +68 -27
  48. package/public/browser/defaultsettings.js.map +3 -3
  49. package/public/browser/enterprise-commands.js.map +1 -1
  50. package/public/browser/main-file.js.map +1 -1
  51. package/public/browser/main-http-gae-server.js.map +1 -1
  52. package/public/browser/main-http-server.js.map +1 -1
  53. package/public/browser/main-http2-server.js.map +1 -1
  54. package/public/browser/qcobjects-cli.js.map +1 -1
  55. package/public/browser/qcobjects-collab.js +16 -24
  56. package/public/browser/qcobjects-collab.js.map +2 -2
  57. package/public/browser/qcobjects-createcert.js +46 -54
  58. package/public/browser/qcobjects-createcert.js.map +2 -2
  59. package/public/browser/qcobjects-gae-http-server.js +16 -24
  60. package/public/browser/qcobjects-gae-http-server.js.map +2 -2
  61. package/public/browser/qcobjects-http-server.js +16 -24
  62. package/public/browser/qcobjects-http-server.js.map +2 -2
  63. package/public/browser/qcobjects-http2-server.js +21 -30
  64. package/public/browser/qcobjects-http2-server.js.map +2 -2
  65. package/public/browser/qcobjects-shell.js.map +1 -1
  66. package/public/browser/templates/apps/spa-local.html +0 -0
  67. package/public/browser/templates/apps/spa-local.js +0 -0
  68. package/public/browser/templates/pwa/sw.js +0 -0
  69. package/public/browser/types/global/index.d.js +0 -9
  70. package/public/browser/types/global/index.d.js.map +3 -3
  71. package/public/cjs/api-client_services.js +74 -0
  72. package/public/cjs/api-client_services.js.map +1 -0
  73. package/public/cjs/backend/backend-microservice-static.js +255 -0
  74. package/public/cjs/backend/backend-microservice-static.js.map +1 -0
  75. package/public/cjs/backend/backend-php.js +317 -0
  76. package/public/cjs/backend/backend-php.js.map +1 -0
  77. package/public/cjs/cli-commands-build-esbuild.js +341 -0
  78. package/public/cjs/cli-commands-build-esbuild.js.map +1 -0
  79. package/public/cjs/cli-commands-build-typescript.js +127 -0
  80. package/public/cjs/cli-commands-build-typescript.js.map +1 -0
  81. package/public/cjs/cli-commands-jira.js +115 -0
  82. package/public/cjs/cli-commands-jira.js.map +1 -0
  83. package/public/cjs/cli-commands-publish-static.js +108 -0
  84. package/public/cjs/cli-commands-publish-static.js.map +1 -0
  85. package/public/cjs/cli-commands-version.js +250 -0
  86. package/public/cjs/cli-commands-version.js.map +1 -0
  87. package/public/cjs/cli-commands.js +73 -0
  88. package/public/cjs/cli-commands.js.map +1 -0
  89. package/public/cjs/cli-main.js +487 -0
  90. package/public/cjs/cli-main.js.map +1 -0
  91. package/public/cjs/client_services.js +80 -0
  92. package/public/cjs/client_services.js.map +1 -0
  93. package/public/cjs/collab-server.js +404 -0
  94. package/public/cjs/collab-server.js.map +1 -0
  95. package/public/cjs/common-pipelog.js +57 -0
  96. package/public/cjs/common-pipelog.js.map +1 -0
  97. package/public/cjs/defaultsettings.js +496 -0
  98. package/public/cjs/defaultsettings.js.map +1 -0
  99. package/public/cjs/enterprise-commands.js +173 -0
  100. package/public/cjs/enterprise-commands.js.map +1 -0
  101. package/public/cjs/index.js +38 -0
  102. package/public/cjs/index.js.map +1 -0
  103. package/public/cjs/main-file.js +161 -0
  104. package/public/cjs/main-file.js.map +1 -0
  105. package/public/cjs/main-http-gae-server.js +498 -0
  106. package/public/cjs/main-http-gae-server.js.map +1 -0
  107. package/public/cjs/main-http-server.js +540 -0
  108. package/public/cjs/main-http-server.js.map +1 -0
  109. package/public/cjs/main-http2-server.js +398 -0
  110. package/public/cjs/main-http2-server.js.map +1 -0
  111. package/public/cjs/qcobjects-cli.js +105 -0
  112. package/public/cjs/qcobjects-cli.js.map +1 -0
  113. package/public/cjs/qcobjects-collab.js +51 -0
  114. package/public/cjs/qcobjects-collab.js.map +1 -0
  115. package/public/cjs/qcobjects-createcert.js +89 -0
  116. package/public/cjs/qcobjects-createcert.js.map +1 -0
  117. package/public/cjs/qcobjects-gae-http-server.js +51 -0
  118. package/public/cjs/qcobjects-gae-http-server.js.map +1 -0
  119. package/public/cjs/qcobjects-http-server.js +51 -0
  120. package/public/cjs/qcobjects-http-server.js.map +1 -0
  121. package/public/cjs/qcobjects-http2-server.js +54 -0
  122. package/public/cjs/qcobjects-http2-server.js.map +1 -0
  123. package/public/cjs/qcobjects-shell.js +145 -0
  124. package/public/cjs/qcobjects-shell.js.map +1 -0
  125. package/public/cjs/templates/apps/spa-local.html +0 -0
  126. package/public/cjs/templates/apps/spa-local.js +0 -0
  127. package/public/cjs/templates/pwa/sw.js +0 -0
  128. package/public/esm/api-client_services.mjs.map +1 -1
  129. package/public/esm/backend/backend-microservice-static.mjs +207 -216
  130. package/public/esm/backend/backend-microservice-static.mjs.map +2 -2
  131. package/public/esm/backend/backend-php.mjs +228 -232
  132. package/public/esm/backend/backend-php.mjs.map +2 -2
  133. package/public/esm/cli-commands-build-esbuild.mjs +295 -0
  134. package/public/esm/cli-commands-build-esbuild.mjs.map +7 -0
  135. package/public/esm/cli-commands-build-typescript.mjs +83 -0
  136. package/public/esm/cli-commands-build-typescript.mjs.map +7 -0
  137. package/public/esm/cli-commands-jira.mjs +1 -1
  138. package/public/esm/cli-commands-jira.mjs.map +1 -1
  139. package/public/esm/cli-commands-version.mjs.map +1 -1
  140. package/public/esm/cli-commands.mjs +7 -3
  141. package/public/esm/cli-commands.mjs.map +2 -2
  142. package/public/esm/cli-main.mjs +6 -6
  143. package/public/esm/cli-main.mjs.map +1 -1
  144. package/public/esm/client_services.mjs.map +1 -1
  145. package/public/esm/collab-server.mjs.map +1 -1
  146. package/public/esm/common-pipelog.mjs.map +1 -1
  147. package/public/esm/defaultsettings.mjs +68 -27
  148. package/public/esm/defaultsettings.mjs.map +3 -3
  149. package/public/esm/enterprise-commands.mjs.map +1 -1
  150. package/public/esm/index.mjs +1 -1
  151. package/public/esm/main-file.mjs.map +1 -1
  152. package/public/esm/main-http-gae-server.mjs +2 -2
  153. package/public/esm/main-http-gae-server.mjs.map +1 -1
  154. package/public/esm/main-http-server.mjs +2 -2
  155. package/public/esm/main-http-server.mjs.map +1 -1
  156. package/public/esm/main-http2-server.mjs +2 -2
  157. package/public/esm/main-http2-server.mjs.map +1 -1
  158. package/public/esm/qcobjects-cli.mjs +2 -2
  159. package/public/esm/qcobjects-cli.mjs.map +1 -1
  160. package/public/esm/qcobjects-collab.mjs +14 -23
  161. package/public/esm/qcobjects-collab.mjs.map +2 -2
  162. package/public/esm/qcobjects-createcert.mjs +43 -52
  163. package/public/esm/qcobjects-createcert.mjs.map +2 -2
  164. package/public/esm/qcobjects-gae-http-server.mjs +14 -23
  165. package/public/esm/qcobjects-gae-http-server.mjs.map +2 -2
  166. package/public/esm/qcobjects-http-server.mjs +14 -23
  167. package/public/esm/qcobjects-http-server.mjs.map +2 -2
  168. package/public/esm/qcobjects-http2-server.mjs +21 -31
  169. package/public/esm/qcobjects-http2-server.mjs.map +2 -2
  170. package/public/esm/qcobjects-shell.mjs +1 -1
  171. package/public/esm/qcobjects-shell.mjs.map +1 -1
  172. package/public/esm/templates/apps/spa-local.html +0 -0
  173. package/public/esm/templates/apps/spa-local.js +0 -0
  174. package/public/esm/templates/pwa/sw.js +0 -0
  175. package/public/esm/types/global/index.d.mjs +0 -9
  176. package/public/esm/types/global/index.d.mjs.map +3 -3
  177. package/public/types/index.d.ts +29 -3
  178. package/spec/support/jasmine.json +0 -0
  179. package/spec/testsSpec.ts +0 -0
  180. package/src/api-client_services.ts +1 -1
  181. package/src/backend/backend-microservice-static.ts +196 -196
  182. package/src/backend/backend-php.ts +240 -245
  183. package/src/cli-commands-build-esbuild.ts +375 -0
  184. package/src/cli-commands-build-typescript.ts +139 -0
  185. package/src/cli-commands-jira.ts +1 -1
  186. package/src/cli-commands-publish-static.ts +0 -0
  187. package/src/cli-commands-version.ts +1 -1
  188. package/src/cli-commands.ts +3 -1
  189. package/src/cli-main.ts +1 -1
  190. package/src/client_services.ts +1 -1
  191. package/src/collab-server.ts +1 -1
  192. package/src/common-pipelog.ts +1 -1
  193. package/src/defaultsettings.ts +65 -19
  194. package/src/enterprise-commands.ts +1 -1
  195. package/src/index.ts +0 -0
  196. package/src/main-file.ts +1 -1
  197. package/src/main-http-gae-server.ts +1 -1
  198. package/src/main-http-server.ts +1 -1
  199. package/src/main-http2-server.ts +1 -1
  200. package/src/qcobjects-cli.ts +1 -1
  201. package/src/qcobjects-collab.ts +1 -1
  202. package/src/qcobjects-createcert.ts +1 -1
  203. package/src/qcobjects-gae-http-server.ts +1 -1
  204. package/src/qcobjects-http-server.ts +1 -1
  205. package/src/qcobjects-http2-server.ts +4 -5
  206. package/src/qcobjects-shell.ts +1 -1
  207. package/src/templates/apps/spa-local.html +0 -0
  208. package/src/templates/apps/spa-local.js +0 -0
  209. package/src/templates/pwa/sw.js +0 -0
  210. package/src/types/global/index.d.ts +0 -0
  211. package/transpile.js +0 -0
  212. package/tsconfig.d.json +0 -0
  213. package/tsconfig.jasmine.json +0 -0
  214. package/tsconfig.json +3 -3
  215. package/.gitlab-ci.yml +0 -16
  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
@@ -0,0 +1,496 @@
1
+ /**
2
+ * QCObjects CLI 2.5
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getProjectPath = exports.__get_version_string__ = exports.__get_version__ = void 0;
37
+ require("qcobjects");
38
+ const node_fs_1 = require("node:fs");
39
+ const node_path_1 = __importDefault(require("node:path"));
40
+ const node_fs_2 = __importDefault(require("node:fs"));
41
+ const qcobjects_1 = require("qcobjects");
42
+ const __get_version__ = () => {
43
+ const absolutePath = node_path_1.default.resolve(__dirname, "./");
44
+ const package_config_path = node_path_1.default.resolve(process.cwd(), "package.json");
45
+ const qcobjects_pkg_config_path = `${(0, qcobjects_1.findPackageNodePath)("qcobjects/package.json")}/qcobjects/package.json`;
46
+ const qcobjects_sdk_pkg_config_path = `${(0, qcobjects_1.findPackageNodePath)("qcobjects-sdk/package.json")}/qcobjects-sdk/package.json`;
47
+ const readVersionFile = (filePath) => {
48
+ try {
49
+ return node_fs_2.default.readFileSync(filePath).toString();
50
+ }
51
+ catch (error) {
52
+ qcobjects_1.logger.debug(`Error reading file at ${filePath}:`, error.message);
53
+ return JSON.stringify({ version: "0.0.0" });
54
+ }
55
+ };
56
+ const package_config_text = readVersionFile(package_config_path);
57
+ const qcobjects_pkg_config_text = readVersionFile(qcobjects_pkg_config_path);
58
+ const qcobjects_sdk_pkg_config_text = readVersionFile(qcobjects_sdk_pkg_config_path);
59
+ const package_config = JSON.parse(package_config_text);
60
+ const qcobjects_pkg_config = JSON.parse(qcobjects_pkg_config_text);
61
+ const qcobjects_sdk_pkg_config = JSON.parse(qcobjects_sdk_pkg_config_text);
62
+ return {
63
+ "qcobjects": qcobjects_pkg_config.version,
64
+ "sdk": qcobjects_sdk_pkg_config.version,
65
+ "cli": package_config.version
66
+ };
67
+ };
68
+ exports.__get_version__ = __get_version__;
69
+ const __get_version_string__ = () => {
70
+ const version = (0, exports.__get_version__)();
71
+ return "QCObjects: v" + version.qcobjects + ", SDK: v" + version.sdk + ", CLI: v" + version.cli;
72
+ };
73
+ exports.__get_version_string__ = __get_version_string__;
74
+ const getProjectPath = () => {
75
+ return qcobjects_1.CONFIG.get("projectPath", `${process.cwd()}/`);
76
+ };
77
+ exports.getProjectPath = getProjectPath;
78
+ (0, qcobjects_1.Export)(exports.__get_version__);
79
+ (0, qcobjects_1.Export)(exports.__get_version_string__);
80
+ (0, qcobjects_1.Export)(exports.getProjectPath);
81
+ const __load_default_settings__ = () => {
82
+ qcobjects_1.CONFIG.set("domain", "$ENV(DOMAIN)");
83
+ qcobjects_1.CONFIG.set("certificate_provider", "$ENV(CERTIFICATE_PROVIDER)");
84
+ qcobjects_1.CONFIG.set("devmode", "$ENV(DEVMODE)");
85
+ qcobjects_1.CONFIG.set("autodiscover", true);
86
+ qcobjects_1.CONFIG.set("autodiscover_commands", true);
87
+ qcobjects_1.CONFIG.set("autodiscover_handlers", true);
88
+ qcobjects_1.CONFIG.set("documentRoot", "$config(projectPath)public/");
89
+ qcobjects_1.CONFIG.set("documentRootFileIndex", "index.html");
90
+ qcobjects_1.CONFIG.set("cacheControl", "max-age=31536000");
91
+ qcobjects_1.CONFIG.set("relativeImportPath", "js/packages/");
92
+ qcobjects_1.CONFIG.set("serverPortHTTP", "8080");
93
+ qcobjects_1.CONFIG.set("serverPortHTTPS", "8443");
94
+ qcobjects_1.CONFIG.set("useLocalSDK", true);
95
+ qcobjects_1.CONFIG.set("useLegacyHTTP", false);
96
+ qcobjects_1.CONFIG.set("private-key-pem", "$config(domain)-privkey.pem");
97
+ qcobjects_1.CONFIG.set("private-cert-pem", "$config(domain)-cert.pem");
98
+ qcobjects_1.CONFIG.set("enableShellCommands", true);
99
+ qcobjects_1.CONFIG.set("OPENAI_API_KEY", "$ENV(OPENAI_API_KEY)");
100
+ // Set backend configuration
101
+ const backend = {
102
+ db_engine: {
103
+ name: "$ENV(ENGINE_NAME)",
104
+ databaseName: "$ENV(DATABASE_NAME)"
105
+ },
106
+ auth: {
107
+ enabled: true,
108
+ defaultUser: "$ENV(DEFAULT_USER)",
109
+ defaultPasswd: "$ENV(DEFAULT_PASSWORD)",
110
+ microsoftapikey: "$ENV(MICROSOFT_API_KEY)",
111
+ googleapikey: "$ENV(GOOGLE_API_KEY)"
112
+ },
113
+ routes: []
114
+ };
115
+ qcobjects_1.CONFIG.set("backend", backend);
116
+ // Set package configuration
117
+ const packageConfig = {
118
+ source: {
119
+ backend: "backend",
120
+ frontend: "src"
121
+ },
122
+ build: "build",
123
+ dist: "dist"
124
+ };
125
+ qcobjects_1.CONFIG.set("package", packageConfig);
126
+ qcobjects_1.CONFIG.set("useConfigService", false); // this is only true useful for client web side
127
+ qcobjects_1.CONFIG.set("projectPath", `${process.cwd()}/`);
128
+ qcobjects_1.CONFIG.set("allowHTTP1", true);
129
+ qcobjects_1.CONFIG.set("useTemplate", false);
130
+ qcobjects_1.CONFIG.set("useLegacyHTTP", false);
131
+ const setDevMode = (devmode) => {
132
+ if (typeof devmode !== "undefined") {
133
+ switch (true) {
134
+ case devmode == "debug":
135
+ qcobjects_1.logger.debugEnabled = true;
136
+ qcobjects_1.logger.warnEnabled = true;
137
+ qcobjects_1.logger.infoEnabled = true;
138
+ break;
139
+ case devmode == "warn":
140
+ qcobjects_1.logger.debugEnabled = false;
141
+ qcobjects_1.logger.warnEnabled = true;
142
+ qcobjects_1.logger.infoEnabled = true;
143
+ break;
144
+ case devmode == "info":
145
+ qcobjects_1.logger.debugEnabled = false;
146
+ qcobjects_1.logger.warnEnabled = false;
147
+ qcobjects_1.logger.infoEnabled = true;
148
+ break;
149
+ default:
150
+ qcobjects_1.logger.debugEnabled = false;
151
+ qcobjects_1.logger.warnEnabled = false;
152
+ qcobjects_1.logger.infoEnabled = false;
153
+ break;
154
+ }
155
+ }
156
+ else {
157
+ qcobjects_1.logger.debugEnabled = false;
158
+ qcobjects_1.logger.warnEnabled = false;
159
+ qcobjects_1.logger.infoEnabled = false;
160
+ }
161
+ };
162
+ try {
163
+ const loadConfig = () => {
164
+ const configPath = node_path_1.default.resolve(qcobjects_1.CONFIG.get("projectPath"), "config.json");
165
+ const configText = (0, node_fs_1.readFileSync)(configPath).toString();
166
+ const configJson = JSON.parse(configText);
167
+ return configJson;
168
+ };
169
+ var _config = loadConfig();
170
+ qcobjects_1.logger.debug("Loading settings from your config.json");
171
+ const _secretKey = (Object.hasOwn(_config, "domain")) ? (_config["domain"]) : ("_secret_");
172
+ if (Object.hasOwn(_config, "__encoded__")) {
173
+ _config = JSON.parse(qcobjects_1._Crypt.decrypt(_config.__encoded__, _secretKey));
174
+ }
175
+ for (var k in _config) {
176
+ qcobjects_1.CONFIG.set(k, _config[k]);
177
+ }
178
+ setDevMode(qcobjects_1.CONFIG.get("devmode", ""));
179
+ if (typeof qcobjects_1.CONFIG.get("backend") !== "undefined") {
180
+ qcobjects_1.global.set("backendAvailable", true);
181
+ }
182
+ if (typeof qcobjects_1.CONFIG.get("basePath") !== "undefined") {
183
+ qcobjects_1.logger.debug(`Changing the current directory: ${process.cwd()}`);
184
+ try {
185
+ process.chdir(qcobjects_1.CONFIG.get("basePath"));
186
+ qcobjects_1.logger.debug(`New directory: ${process.cwd()}`);
187
+ }
188
+ catch (err) {
189
+ qcobjects_1.logger.warn(`It was impossible to change the current chdir: ${err}`);
190
+ }
191
+ }
192
+ }
193
+ catch (e) {
194
+ qcobjects_1.logger.debug(e);
195
+ qcobjects_1.logger.debug("Something went wrong trying to load config.json file in your project");
196
+ }
197
+ (async function () {
198
+ const projectPath = (0, exports.getProjectPath)();
199
+ const loadDefaultRoutes = async () => {
200
+ return await new Promise((resolve, reject) => {
201
+ const sdkPath = node_path_1.default.resolve((0, qcobjects_1.findPackageNodePath)("qcobjects-sdk"), "qcobjects-sdk");
202
+ const qcobjectsPath = node_path_1.default.resolve((0, qcobjects_1.findPackageNodePath)("qcobjects"), "qcobjects");
203
+ let backend = qcobjects_1.CONFIG.get("backend");
204
+ if (typeof backend === "undefined") {
205
+ backend = {};
206
+ }
207
+ if (typeof backend.routes === "undefined") {
208
+ backend.routes = [];
209
+ }
210
+ backend.routes = backend.routes.concat([{
211
+ "name": "QCObjects.js",
212
+ "description": "Redirection of QCObjects.js",
213
+ "path": "^/QCObjects.js$",
214
+ "microservice": "com.qcobjects.backend.microservice.static",
215
+ "redirect_to": node_path_1.default.resolve(qcobjectsPath, "src", "QCObjects.js"),
216
+ "responseHeaders": {},
217
+ "cors": {
218
+ "allow_origins": "*"
219
+ }
220
+ },
221
+ {
222
+ "name": "QCObjects-SDK.js",
223
+ "description": "Redirection of QCObjects SDK",
224
+ "path": "^/js/packages/QCObjects-SDK.js$",
225
+ "microservice": "com.qcobjects.backend.microservice.static",
226
+ "redirect_to": node_path_1.default.resolve(sdkPath, "src/QCObjects-SDK.js"),
227
+ "responseHeaders": {},
228
+ "cors": {
229
+ "allow_origins": "*"
230
+ }
231
+ },
232
+ {
233
+ "name": "QCObjects-SDK Components",
234
+ "description": "Redirection of QCObjects SDK",
235
+ "path": "^/qcobjects-sdk/(.*)$",
236
+ "microservice": "com.qcobjects.backend.microservice.static",
237
+ "redirect_to": node_path_1.default.resolve(sdkPath, "$1"),
238
+ "responseHeaders": {},
239
+ "cors": {
240
+ "allow_origins": "*"
241
+ }
242
+ }
243
+ ]);
244
+ qcobjects_1.CONFIG.set("backend", backend);
245
+ resolve();
246
+ });
247
+ };
248
+ await loadDefaultRoutes();
249
+ })()
250
+ .then(() => qcobjects_1.logger.info("Default routes loaded"))
251
+ .catch((e) => { qcobjects_1.logger.warn(`An error ocurred loading default settings: ${e}`); });
252
+ (function () {
253
+ /* Auto Discover dependencies (lib, handlers, commands) */
254
+ const projectPath = qcobjects_1.CONFIG.get("projectPath", `${process.cwd()}/`);
255
+ qcobjects_1.logger.debug(`CONFIG.projectPath is set to ${projectPath}`);
256
+ const findPath = (p) => {
257
+ const packagePath = node_path_1.default.resolve((0, qcobjects_1.findPackageNodePath)(p), p);
258
+ return packagePath;
259
+ };
260
+ const getPackageJSON = (p) => {
261
+ let _json;
262
+ try {
263
+ const packagePath = findPath(p);
264
+ if (typeof packagePath !== "undefined") {
265
+ _json = JSON.parse(node_fs_2.default.readFileSync(node_path_1.default.resolve(`${packagePath}`, "./package.json")).toString());
266
+ }
267
+ else {
268
+ _json = {};
269
+ }
270
+ }
271
+ catch (e) {
272
+ qcobjects_1.logger.debug(`It was impossible to get the package.json from ${p}: ${e}`);
273
+ _json = {};
274
+ }
275
+ return _json;
276
+ };
277
+ const hasKeyword = (() => {
278
+ let keywords = {};
279
+ return (p, keyword) => {
280
+ if (typeof keywords === "undefined") {
281
+ keywords = {};
282
+ }
283
+ try {
284
+ console.log("getting keywords for: ", p);
285
+ if (typeof keywords[p] === "undefined") {
286
+ keywords[p] = getPackageJSON(p).keywords;
287
+ }
288
+ }
289
+ catch (e) {
290
+ throw Error(`Something went wrong when trying to get the keywords of ${p}`);
291
+ }
292
+ return typeof keywords[p] !== "undefined" && keywords[p].includes(keyword);
293
+ };
294
+ })();
295
+ const setBackendValue = (name, value) => {
296
+ const backend = qcobjects_1.CONFIG.get("backend", {});
297
+ if (typeof value !== "undefined") {
298
+ backend[name] = value;
299
+ }
300
+ qcobjects_1.CONFIG.set("backend", backend);
301
+ };
302
+ const dependencies = (() => {
303
+ let deps = [];
304
+ return () => {
305
+ if (typeof deps === "undefined") {
306
+ deps = Object.keys(JSON.parse(node_fs_2.default.readFileSync(node_path_1.default.resolve(`${projectPath}`, "./package.json")).toString()).dependencies);
307
+ setBackendValue("dependencies", deps);
308
+ }
309
+ return deps;
310
+ };
311
+ })();
312
+ const devDependencies = (() => {
313
+ let deps = [];
314
+ return () => {
315
+ if (typeof deps === "undefined") {
316
+ deps = Object.keys(JSON.parse(node_fs_2.default.readFileSync(node_path_1.default.resolve(`${projectPath}`, "./package.json")).toString()).devDependencies);
317
+ setBackendValue("devDependencies", deps);
318
+ }
319
+ return deps;
320
+ };
321
+ })();
322
+ const loadLibs = () => {
323
+ let _ret_;
324
+ if (qcobjects_1.CONFIG.get("autodiscover", false) || qcobjects_1.CONFIG.get("autodiscover_libs", false)) {
325
+ const libs = dependencies().filter((p) => hasKeyword(p, "qcobjects-lib"));
326
+ setBackendValue("libs", libs);
327
+ if (libs.length > 0) {
328
+ qcobjects_1.logger.debug(`Plugin Libs found: ${libs.join(",")}`);
329
+ _ret_ = Promise.all(libs.map(async (p) => {
330
+ return await import(findPath(p));
331
+ })).then(() => qcobjects_1.logger.info("Libs loaded"));
332
+ }
333
+ else {
334
+ qcobjects_1.logger.debug("No Plugin Libs found.");
335
+ _ret_ = Promise.resolve();
336
+ }
337
+ }
338
+ else {
339
+ qcobjects_1.logger.debug("To load libs, set autodiscover_libs to true in your config.json");
340
+ _ret_ = Promise.resolve();
341
+ }
342
+ return _ret_;
343
+ };
344
+ const loadHandlers = () => {
345
+ let _ret_;
346
+ if (qcobjects_1.CONFIG.get("autodiscover", false) || qcobjects_1.CONFIG.get("autodiscover_handlers", false)) {
347
+ const handlers = dependencies().filter((p) => hasKeyword(p, "qcobjects-handler"));
348
+ setBackendValue("handlers", handlers);
349
+ if (handlers.length > 0) {
350
+ qcobjects_1.logger.debug(`Plugin Handlers found: ${handlers.join(",")}`);
351
+ _ret_ = Promise.all(handlers.map(async (p) => {
352
+ return await import(findPath(p));
353
+ })).then(() => qcobjects_1.logger.info("Handlers loaded"));
354
+ }
355
+ else {
356
+ qcobjects_1.logger.debug("No Plugin Handlers found.");
357
+ _ret_ = Promise.resolve();
358
+ }
359
+ }
360
+ else {
361
+ qcobjects_1.logger.debug("To load handlers, set autodiscover_handlers to true in your config.json");
362
+ _ret_ = Promise.resolve();
363
+ }
364
+ return _ret_;
365
+ };
366
+ const loadCommands = () => {
367
+ let _ret_;
368
+ qcobjects_1.logger.debug(`Looking for custom commands as dependencies in: ${projectPath}/package.json`);
369
+ if (qcobjects_1.CONFIG.get("autodiscover", false) || qcobjects_1.CONFIG.get("autodiscover_commands", false)) {
370
+ const commands = dependencies().filter((p) => hasKeyword(p, "qcobjects-command"));
371
+ setBackendValue("commands", commands);
372
+ if (commands.length > 0) {
373
+ qcobjects_1.logger.debug(`Plugin Commands found: ${commands.join(",")}`);
374
+ _ret_ = Promise.all(commands.map(async (p) => {
375
+ try {
376
+ return await import(findPath(p));
377
+ }
378
+ catch (error) {
379
+ qcobjects_1.logger.error(`Failed to load command ${p}: ${error}`);
380
+ throw error;
381
+ }
382
+ })).then(() => qcobjects_1.logger.info("Commands loaded"))
383
+ .catch(error => {
384
+ qcobjects_1.logger.error("Failed to load commands:", error);
385
+ throw error;
386
+ });
387
+ }
388
+ else {
389
+ qcobjects_1.logger.debug("No Plugin Commands found.");
390
+ _ret_ = Promise.resolve();
391
+ }
392
+ }
393
+ else {
394
+ qcobjects_1.logger.debug("To load commands, set autodiscover_commands to true in your config.json");
395
+ _ret_ = Promise.resolve();
396
+ }
397
+ return _ret_;
398
+ };
399
+ const loadDevCommands = () => {
400
+ let _ret_;
401
+ qcobjects_1.logger.debug(`Looking for custom commands as dev dependencies in: ${projectPath}/package.json`);
402
+ if (qcobjects_1.CONFIG.get("autodiscover", false) || qcobjects_1.CONFIG.get("autodiscover_commands", false)) {
403
+ const commands = devDependencies().filter((p) => hasKeyword(p, "qcobjects-command"));
404
+ setBackendValue("devCommands", commands);
405
+ if (commands.length > 0) {
406
+ qcobjects_1.logger.debug(`Dev Plugin Commands found: ${commands.join(",")}`);
407
+ _ret_ = Promise.all(commands.map(async (p) => {
408
+ return await import(findPath(p));
409
+ })).then(() => qcobjects_1.logger.info("Commands loaded"));
410
+ }
411
+ else {
412
+ qcobjects_1.logger.debug("No Plugin Commands found in dev dependencies.");
413
+ _ret_ = Promise.resolve();
414
+ }
415
+ }
416
+ else {
417
+ qcobjects_1.logger.debug("To load commands, set autodiscover_commands to true in your config.json");
418
+ _ret_ = Promise.resolve();
419
+ }
420
+ return _ret_;
421
+ };
422
+ if (qcobjects_1.CONFIG.get("autodiscover", false) ||
423
+ qcobjects_1.CONFIG.get("autodiscover_libs", false) ||
424
+ qcobjects_1.CONFIG.get("autodiscover_handlers", false) ||
425
+ qcobjects_1.CONFIG.get("autodiscover_commands", false)) {
426
+ qcobjects_1.logger.info("Auto discover is enabled");
427
+ }
428
+ else if (!qcobjects_1.CONFIG.get("autodiscover", false)) {
429
+ qcobjects_1.logger.info("Auto discover is disabled");
430
+ qcobjects_1.logger.debug("To load all dependencies, set autodiscover to true in your config.json");
431
+ }
432
+ else {
433
+ qcobjects_1.logger.info("Auto discover is disabled");
434
+ }
435
+ try {
436
+ qcobjects_1.logger.debug("Loading Libs...");
437
+ loadLibs().catch((e) => {
438
+ qcobjects_1.logger.warn(`An error ocurred loading libs: ${e}`);
439
+ });
440
+ }
441
+ catch (e) {
442
+ throw Error(`Something went wrong trying to load libs: ${e.message}`);
443
+ }
444
+ try {
445
+ qcobjects_1.logger.debug("Loading Handlers...");
446
+ loadHandlers().catch((e) => {
447
+ qcobjects_1.logger.warn(`An error ocurred loading handlers: ${e}`);
448
+ });
449
+ }
450
+ catch (e) {
451
+ throw Error(`Something went wrong trying to load handler: ${e.message}`);
452
+ }
453
+ try {
454
+ qcobjects_1.logger.debug("Loading Commands...");
455
+ loadCommands().catch((e) => {
456
+ qcobjects_1.logger.warn(`An error ocurred loading commands: ${e}`);
457
+ });
458
+ }
459
+ catch (e) {
460
+ throw Error(`Something went wrong trying to load commands: ${e.message}`);
461
+ }
462
+ try {
463
+ qcobjects_1.logger.debug("Loading Dev Commands...");
464
+ loadDevCommands().catch((e) => {
465
+ qcobjects_1.logger.warn(`An error ocurred loading dev commands: ${e}`);
466
+ });
467
+ }
468
+ catch (e) {
469
+ throw Error(`Something went wrong trying to load Dev commands: ${e.message}`);
470
+ }
471
+ try {
472
+ const commands = qcobjects_1.CONFIG.get("backend", { commands: [] }).commands || [];
473
+ const devCommands = qcobjects_1.CONFIG.get("backend", { devCommands: [] }).devCommands || [];
474
+ setBackendValue("plugins", commands.concat(devCommands));
475
+ }
476
+ catch (e) {
477
+ throw Error(`Something went wrong trying to load plugins list: ${e.message}`);
478
+ }
479
+ qcobjects_1.logger.info("Dependencies loaded");
480
+ process.once("SIGTERM", () => {
481
+ console.log("\x1b[33m%s\x1b[0m", "Bye bye!");
482
+ process.exit();
483
+ });
484
+ })();
485
+ };
486
+ qcobjects_1.global.__load_default_settings__ = __load_default_settings__;
487
+ qcobjects_1.global.__load_default_settings__();
488
+ const cleanCache = () => {
489
+ Object.keys(require.cache).forEach((key) => { delete require.cache[key]; });
490
+ };
491
+ const __reset_settings__ = () => {
492
+ cleanCache();
493
+ qcobjects_1.global.__load_default_settings__();
494
+ };
495
+ qcobjects_1.global.__reset_settings__ = __reset_settings__;
496
+ //# sourceMappingURL=defaultsettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultsettings.js","sourceRoot":"","sources":["../../src/defaultsettings.ts"],"names":[],"mappings":"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"}