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.
- package/.cursor/rules/collaboration-features.mdc +25 -0
- package/.cursor/rules/development-guidelines.mdc +37 -0
- package/.cursor/rules/project-structure.mdc +36 -0
- package/.dockerignore +0 -0
- package/.github/FUNDING.yml +0 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- package/.github/ISSUE_TEMPLATE/custom.md +0 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- package/.github/ISSUE_TEMPLATE/issue-template.md +0 -0
- package/.github/workflows/ci.yml +26 -0
- package/.github/workflows/codeql-analysis.yml +0 -0
- package/.github/workflows/main-pr-source.yml +26 -0
- package/.github/workflows/npmpublish-beta.yml +18 -14
- package/.github/workflows/npmpublish-lts.yml +18 -14
- package/.github/workflows/npmpublish-main.yml +17 -13
- package/.github/workflows/open-pr-to-development.yml +70 -0
- package/.opencode/instructions/git-workflow.md +46 -0
- package/.pre-commit-config.yaml +9 -0
- package/AGENTS.md +59 -0
- package/CHANGELOG.md +0 -0
- package/README.md +75 -0
- package/VERSION +1 -1
- package/build-esbuild-esm.js +180 -0
- package/build-esbuild.js +182 -208
- package/deno.json +0 -0
- package/dev-requirements.txt +5 -0
- package/eslint.config.mjs +0 -0
- package/mod.ts +0 -0
- package/package.json +45 -44
- package/public/browser/api-client_services.js.map +1 -1
- package/public/browser/backend/backend-microservice-static.js +211 -219
- package/public/browser/backend/backend-microservice-static.js.map +2 -2
- package/public/browser/backend/backend-php.js +227 -231
- package/public/browser/backend/backend-php.js.map +3 -3
- package/public/browser/cli-commands-build-esbuild.js +326 -0
- package/public/browser/cli-commands-build-esbuild.js.map +7 -0
- package/public/browser/cli-commands-build-typescript.js +114 -0
- package/public/browser/cli-commands-build-typescript.js.map +7 -0
- package/public/browser/cli-commands-jira.js.map +1 -1
- package/public/browser/cli-commands-version.js.map +1 -1
- package/public/browser/cli-commands.js +4 -0
- package/public/browser/cli-commands.js.map +2 -2
- package/public/browser/cli-main.js.map +1 -1
- package/public/browser/client_services.js.map +1 -1
- package/public/browser/collab-server.js.map +1 -1
- package/public/browser/common-pipelog.js.map +1 -1
- package/public/browser/defaultsettings.js +68 -27
- package/public/browser/defaultsettings.js.map +3 -3
- package/public/browser/enterprise-commands.js.map +1 -1
- package/public/browser/main-file.js.map +1 -1
- package/public/browser/main-http-gae-server.js.map +1 -1
- package/public/browser/main-http-server.js.map +1 -1
- package/public/browser/main-http2-server.js.map +1 -1
- package/public/browser/qcobjects-cli.js.map +1 -1
- package/public/browser/qcobjects-collab.js +16 -24
- package/public/browser/qcobjects-collab.js.map +2 -2
- package/public/browser/qcobjects-createcert.js +46 -54
- package/public/browser/qcobjects-createcert.js.map +2 -2
- package/public/browser/qcobjects-gae-http-server.js +16 -24
- package/public/browser/qcobjects-gae-http-server.js.map +2 -2
- package/public/browser/qcobjects-http-server.js +16 -24
- package/public/browser/qcobjects-http-server.js.map +2 -2
- package/public/browser/qcobjects-http2-server.js +21 -30
- package/public/browser/qcobjects-http2-server.js.map +2 -2
- package/public/browser/qcobjects-shell.js.map +1 -1
- package/public/browser/templates/apps/spa-local.html +0 -0
- package/public/browser/templates/apps/spa-local.js +0 -0
- package/public/browser/templates/pwa/sw.js +0 -0
- package/public/browser/types/global/index.d.js +0 -9
- package/public/browser/types/global/index.d.js.map +3 -3
- package/public/cjs/api-client_services.js +74 -0
- package/public/cjs/api-client_services.js.map +1 -0
- package/public/cjs/backend/backend-microservice-static.js +255 -0
- package/public/cjs/backend/backend-microservice-static.js.map +1 -0
- package/public/cjs/backend/backend-php.js +317 -0
- package/public/cjs/backend/backend-php.js.map +1 -0
- package/public/cjs/cli-commands-build-esbuild.js +341 -0
- package/public/cjs/cli-commands-build-esbuild.js.map +1 -0
- package/public/cjs/cli-commands-build-typescript.js +127 -0
- package/public/cjs/cli-commands-build-typescript.js.map +1 -0
- package/public/cjs/cli-commands-jira.js +115 -0
- package/public/cjs/cli-commands-jira.js.map +1 -0
- package/public/cjs/cli-commands-publish-static.js +108 -0
- package/public/cjs/cli-commands-publish-static.js.map +1 -0
- package/public/cjs/cli-commands-version.js +250 -0
- package/public/cjs/cli-commands-version.js.map +1 -0
- package/public/cjs/cli-commands.js +73 -0
- package/public/cjs/cli-commands.js.map +1 -0
- package/public/cjs/cli-main.js +487 -0
- package/public/cjs/cli-main.js.map +1 -0
- package/public/cjs/client_services.js +80 -0
- package/public/cjs/client_services.js.map +1 -0
- package/public/cjs/collab-server.js +404 -0
- package/public/cjs/collab-server.js.map +1 -0
- package/public/cjs/common-pipelog.js +57 -0
- package/public/cjs/common-pipelog.js.map +1 -0
- package/public/cjs/defaultsettings.js +496 -0
- package/public/cjs/defaultsettings.js.map +1 -0
- package/public/cjs/enterprise-commands.js +173 -0
- package/public/cjs/enterprise-commands.js.map +1 -0
- package/public/cjs/index.js +38 -0
- package/public/cjs/index.js.map +1 -0
- package/public/cjs/main-file.js +161 -0
- package/public/cjs/main-file.js.map +1 -0
- package/public/cjs/main-http-gae-server.js +498 -0
- package/public/cjs/main-http-gae-server.js.map +1 -0
- package/public/cjs/main-http-server.js +540 -0
- package/public/cjs/main-http-server.js.map +1 -0
- package/public/cjs/main-http2-server.js +398 -0
- package/public/cjs/main-http2-server.js.map +1 -0
- package/public/cjs/qcobjects-cli.js +105 -0
- package/public/cjs/qcobjects-cli.js.map +1 -0
- package/public/cjs/qcobjects-collab.js +51 -0
- package/public/cjs/qcobjects-collab.js.map +1 -0
- package/public/cjs/qcobjects-createcert.js +89 -0
- package/public/cjs/qcobjects-createcert.js.map +1 -0
- package/public/cjs/qcobjects-gae-http-server.js +51 -0
- package/public/cjs/qcobjects-gae-http-server.js.map +1 -0
- package/public/cjs/qcobjects-http-server.js +51 -0
- package/public/cjs/qcobjects-http-server.js.map +1 -0
- package/public/cjs/qcobjects-http2-server.js +54 -0
- package/public/cjs/qcobjects-http2-server.js.map +1 -0
- package/public/cjs/qcobjects-shell.js +145 -0
- package/public/cjs/qcobjects-shell.js.map +1 -0
- package/public/cjs/templates/apps/spa-local.html +0 -0
- package/public/cjs/templates/apps/spa-local.js +0 -0
- package/public/cjs/templates/pwa/sw.js +0 -0
- package/public/esm/api-client_services.mjs.map +1 -1
- package/public/esm/backend/backend-microservice-static.mjs +207 -216
- package/public/esm/backend/backend-microservice-static.mjs.map +2 -2
- package/public/esm/backend/backend-php.mjs +228 -232
- package/public/esm/backend/backend-php.mjs.map +2 -2
- package/public/esm/cli-commands-build-esbuild.mjs +295 -0
- package/public/esm/cli-commands-build-esbuild.mjs.map +7 -0
- package/public/esm/cli-commands-build-typescript.mjs +83 -0
- package/public/esm/cli-commands-build-typescript.mjs.map +7 -0
- package/public/esm/cli-commands-jira.mjs +1 -1
- package/public/esm/cli-commands-jira.mjs.map +1 -1
- package/public/esm/cli-commands-version.mjs.map +1 -1
- package/public/esm/cli-commands.mjs +7 -3
- package/public/esm/cli-commands.mjs.map +2 -2
- package/public/esm/cli-main.mjs +6 -6
- package/public/esm/cli-main.mjs.map +1 -1
- package/public/esm/client_services.mjs.map +1 -1
- package/public/esm/collab-server.mjs.map +1 -1
- package/public/esm/common-pipelog.mjs.map +1 -1
- package/public/esm/defaultsettings.mjs +68 -27
- package/public/esm/defaultsettings.mjs.map +3 -3
- package/public/esm/enterprise-commands.mjs.map +1 -1
- package/public/esm/index.mjs +1 -1
- package/public/esm/main-file.mjs.map +1 -1
- package/public/esm/main-http-gae-server.mjs +2 -2
- package/public/esm/main-http-gae-server.mjs.map +1 -1
- package/public/esm/main-http-server.mjs +2 -2
- package/public/esm/main-http-server.mjs.map +1 -1
- package/public/esm/main-http2-server.mjs +2 -2
- package/public/esm/main-http2-server.mjs.map +1 -1
- package/public/esm/qcobjects-cli.mjs +2 -2
- package/public/esm/qcobjects-cli.mjs.map +1 -1
- package/public/esm/qcobjects-collab.mjs +14 -23
- package/public/esm/qcobjects-collab.mjs.map +2 -2
- package/public/esm/qcobjects-createcert.mjs +43 -52
- package/public/esm/qcobjects-createcert.mjs.map +2 -2
- package/public/esm/qcobjects-gae-http-server.mjs +14 -23
- package/public/esm/qcobjects-gae-http-server.mjs.map +2 -2
- package/public/esm/qcobjects-http-server.mjs +14 -23
- package/public/esm/qcobjects-http-server.mjs.map +2 -2
- package/public/esm/qcobjects-http2-server.mjs +21 -31
- package/public/esm/qcobjects-http2-server.mjs.map +2 -2
- package/public/esm/qcobjects-shell.mjs +1 -1
- package/public/esm/qcobjects-shell.mjs.map +1 -1
- package/public/esm/templates/apps/spa-local.html +0 -0
- package/public/esm/templates/apps/spa-local.js +0 -0
- package/public/esm/templates/pwa/sw.js +0 -0
- package/public/esm/types/global/index.d.mjs +0 -9
- package/public/esm/types/global/index.d.mjs.map +3 -3
- package/public/types/index.d.ts +29 -3
- package/spec/support/jasmine.json +0 -0
- package/spec/testsSpec.ts +0 -0
- package/src/api-client_services.ts +1 -1
- package/src/backend/backend-microservice-static.ts +196 -196
- package/src/backend/backend-php.ts +240 -245
- package/src/cli-commands-build-esbuild.ts +375 -0
- package/src/cli-commands-build-typescript.ts +139 -0
- package/src/cli-commands-jira.ts +1 -1
- package/src/cli-commands-publish-static.ts +0 -0
- package/src/cli-commands-version.ts +1 -1
- package/src/cli-commands.ts +3 -1
- package/src/cli-main.ts +1 -1
- package/src/client_services.ts +1 -1
- package/src/collab-server.ts +1 -1
- package/src/common-pipelog.ts +1 -1
- package/src/defaultsettings.ts +65 -19
- package/src/enterprise-commands.ts +1 -1
- package/src/index.ts +0 -0
- package/src/main-file.ts +1 -1
- package/src/main-http-gae-server.ts +1 -1
- package/src/main-http-server.ts +1 -1
- package/src/main-http2-server.ts +1 -1
- package/src/qcobjects-cli.ts +1 -1
- package/src/qcobjects-collab.ts +1 -1
- package/src/qcobjects-createcert.ts +1 -1
- package/src/qcobjects-gae-http-server.ts +1 -1
- package/src/qcobjects-http-server.ts +1 -1
- package/src/qcobjects-http2-server.ts +4 -5
- package/src/qcobjects-shell.ts +1 -1
- package/src/templates/apps/spa-local.html +0 -0
- package/src/templates/apps/spa-local.js +0 -0
- package/src/templates/pwa/sw.js +0 -0
- package/src/types/global/index.d.ts +0 -0
- package/transpile.js +0 -0
- package/tsconfig.d.json +0 -0
- package/tsconfig.jasmine.json +0 -0
- package/tsconfig.json +3 -3
- package/.gitlab-ci.yml +0 -16
- package/public/cjs/api-client_services.cjs +0 -79
- package/public/cjs/api-client_services.cjs.map +0 -7
- package/public/cjs/backend/backend-microservice-static.cjs +0 -245
- package/public/cjs/backend/backend-microservice-static.cjs.map +0 -7
- package/public/cjs/backend/backend-php.cjs +0 -301
- package/public/cjs/backend/backend-php.cjs.map +0 -7
- package/public/cjs/cli-commands-jira.cjs +0 -112
- package/public/cjs/cli-commands-jira.cjs.map +0 -7
- package/public/cjs/cli-commands-publish-static.cjs +0 -109
- package/public/cjs/cli-commands-publish-static.cjs.map +0 -7
- package/public/cjs/cli-commands-version.cjs +0 -252
- package/public/cjs/cli-commands-version.cjs.map +0 -7
- package/public/cjs/cli-commands.cjs +0 -45
- package/public/cjs/cli-commands.cjs.map +0 -7
- package/public/cjs/cli-main.cjs +0 -417
- package/public/cjs/cli-main.cjs.map +0 -7
- package/public/cjs/client_services.cjs +0 -86
- package/public/cjs/client_services.cjs.map +0 -7
- package/public/cjs/collab-server.cjs +0 -444
- package/public/cjs/collab-server.cjs.map +0 -7
- package/public/cjs/common-pipelog.cjs +0 -50
- package/public/cjs/common-pipelog.cjs.map +0 -7
- package/public/cjs/defaultsettings.cjs +0 -432
- package/public/cjs/defaultsettings.cjs.map +0 -7
- package/public/cjs/enterprise-commands.cjs +0 -175
- package/public/cjs/enterprise-commands.cjs.map +0 -7
- package/public/cjs/index.cjs +0 -36
- package/public/cjs/index.cjs.map +0 -7
- package/public/cjs/main-file.cjs +0 -194
- package/public/cjs/main-file.cjs.map +0 -7
- package/public/cjs/main-http-gae-server.cjs +0 -522
- package/public/cjs/main-http-gae-server.cjs.map +0 -7
- package/public/cjs/main-http-server.cjs +0 -588
- package/public/cjs/main-http-server.cjs.map +0 -7
- package/public/cjs/main-http2-server.cjs +0 -431
- package/public/cjs/main-http2-server.cjs.map +0 -7
- package/public/cjs/qcobjects-cli.cjs +0 -92
- package/public/cjs/qcobjects-cli.cjs.map +0 -7
- package/public/cjs/qcobjects-collab.cjs +0 -43
- package/public/cjs/qcobjects-collab.cjs.map +0 -7
- package/public/cjs/qcobjects-createcert.cjs +0 -75
- package/public/cjs/qcobjects-createcert.cjs.map +0 -7
- package/public/cjs/qcobjects-gae-http-server.cjs +0 -43
- package/public/cjs/qcobjects-gae-http-server.cjs.map +0 -7
- package/public/cjs/qcobjects-http-server.cjs +0 -43
- package/public/cjs/qcobjects-http-server.cjs.map +0 -7
- package/public/cjs/qcobjects-http2-server.cjs +0 -49
- package/public/cjs/qcobjects-http2-server.cjs.map +0 -7
- package/public/cjs/qcobjects-shell.cjs +0 -185
- package/public/cjs/qcobjects-shell.cjs.map +0 -7
- package/public/cjs/types/global/index.d.cjs +0 -2
- package/public/cjs/types/global/index.d.cjs.map +0 -7
- package/public/types/index.d.ts.map +0 -1
- package/src/index.cts +0 -2
- package/src/index.mts +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/defaultsettings.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * QCObjects CLI 2.4.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport \"qcobjects\";\nimport {readFileSync} from \"node:fs\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\nimport { CONFIG, global, logger, _Crypt, findPackageNodePath, Export, _DataStringify } from \"qcobjects\";\n\nexport const __get_version__ = () => {\n\n const absolutePath = path.resolve(__dirname, \"./\");\n const package_config_path = path.resolve(process.cwd(), \"package.json\");\n const qcobjects_pkg_config_path = `${findPackageNodePath(\"qcobjects/package.json\")}/qcobjects/package.json`;\n const qcobjects_sdk_pkg_config_path = `${findPackageNodePath(\"qcobjects-sdk/package.json\")}/qcobjects-sdk/package.json`;\n\n const readVersionFile = (filePath:string) => {\n try {\n return fs.readFileSync(filePath).toString();\n } catch (error:any) {\n logger.debug(`Error reading file at ${filePath}:`, error.message);\n return JSON.stringify({ version: \"0.0.0\" });\n }\n };\n\n\n const package_config_text = readVersionFile(package_config_path);\n const qcobjects_pkg_config_text = readVersionFile(qcobjects_pkg_config_path);\n const qcobjects_sdk_pkg_config_text = readVersionFile(qcobjects_sdk_pkg_config_path);\n const package_config = JSON.parse(package_config_text);\n const qcobjects_pkg_config = JSON.parse(qcobjects_pkg_config_text);\n const qcobjects_sdk_pkg_config = JSON.parse(qcobjects_sdk_pkg_config_text);\n\n return {\n \"qcobjects\": qcobjects_pkg_config.version,\n \"sdk\": qcobjects_sdk_pkg_config.version,\n \"cli\": package_config.version\n };\n};\n\nexport const __get_version_string__ = () => {\n const version = __get_version__();\n return \"QCObjects: v\" + version.qcobjects + \", SDK: v\" + version.sdk + \", CLI: v\" + version.cli;\n};\n\nExport(__get_version__);\nExport(__get_version_string__);\n\n\nconst __load_default_settings__ = () => {\n CONFIG.set(\"documentRootFileIndex\", \"index.html\");\n CONFIG.set(\"projectPath\", `${process.cwd()}/`);\n CONFIG.set(\"useConfigService\", false); // this is only true useful for client web side\n CONFIG.set(\"documentRoot\", \"./\");\n CONFIG.set(\"serverPortHTTP\", 80);\n CONFIG.set(\"serverPortHTTPS\", 443);\n CONFIG.set(\"private-key-pem\", \"localhost-privkey.pem\");\n CONFIG.set(\"private-cert-pem\", \"localhost-cert.pem\");\n CONFIG.set(\"allowHTTP1\", true);\n CONFIG.set(\"useTemplate\", false);\n CONFIG.set(\"domain\", \"localhost\");\n\n\n\n const setDevMode = (devmode: string) => {\n if (typeof devmode !== \"undefined\") {\n switch (true) {\n case devmode == \"debug\":\n logger.debugEnabled = true;\n logger.warnEnabled = true;\n logger.infoEnabled = true;\n break;\n case devmode == \"warn\":\n logger.debugEnabled = false;\n logger.warnEnabled = true;\n logger.infoEnabled = true;\n break;\n case devmode == \"info\":\n logger.debugEnabled = false;\n logger.warnEnabled = false;\n logger.infoEnabled = true;\n break;\n\n default:\n logger.debugEnabled = false;\n logger.warnEnabled = false;\n logger.infoEnabled = false;\n break;\n }\n } else {\n logger.debugEnabled = false;\n logger.warnEnabled = false;\n logger.infoEnabled = false;\n }\n\n };\n\n try {\n\n const loadConfig = () => {\n const configPath = path.resolve(CONFIG.get(\"projectPath\"),\"config.json\");\n const configText = readFileSync(configPath).toString();\n const configJson = JSON.parse(configText);\n return configJson;\n };\n\n var _config = loadConfig();\n logger.debug(\"Loading settings from your config.json\");\n\n const _secretKey = (Object.hasOwn(_config, \"domain\")) ? (_config[\"domain\"]) : (\"_secret_\");\n\n if (Object.hasOwn(_config, \"__encoded__\")) {\n _config = JSON.parse(_Crypt.decrypt(_config.__encoded__, _secretKey));\n }\n for (var k in _config) {\n CONFIG.set(k, _config[k]);\n }\n\n setDevMode(CONFIG.get(\"devmode\", \"\"));\n\n if (typeof CONFIG.get(\"backend\") !== \"undefined\") {\n global.set(\"backendAvailable\", true);\n\n if (typeof CONFIG.get(\"basePath\") !== \"undefined\") {\n logger.debug(`Changing the current directory: ${process.cwd()}`);\n try {\n process.chdir(CONFIG.get(\"basePath\"));\n logger.debug(`New directory: ${process.cwd()}`);\n } catch (err: any) {\n logger.warn(`It was impossible to change the current chdir: ${err}`);\n }\n }\n }\n } catch (e:any) {\n logger.debug(e);\n logger.debug(\"Something went wrong trying to load config.json file in your project\");\n }\n\n (async function () {\n const projectPath = CONFIG.get(\"projectPath\", `${process.cwd()}/`);\n const loadDefaultRoutes = async () => {\n return await new Promise<void>((resolve, reject) => {\n const sdkPath = path.resolve(findPackageNodePath(\"qcobjects-sdk\"), \"qcobjects-sdk\");\n const qcobjectsPath = path.resolve(findPackageNodePath(\"qcobjects\"), \"qcobjects\");\n let backend = CONFIG.get(\"backend\");\n if (typeof backend === \"undefined\") {\n backend = {};\n }\n if (typeof backend.routes === \"undefined\") {\n backend.routes = [];\n }\n backend.routes = backend.routes.concat([{\n \"name\": \"QCObjects.js\",\n \"description\": \"Redirection of QCObjects.js\",\n \"path\": \"^/QCObjects.js$\",\n \"microservice\": \"com.qcobjects.backend.microservice.static\",\n \"redirect_to\": path.resolve(qcobjectsPath, \"src\", \"QCObjects.js\"),\n \"responseHeaders\": {},\n \"cors\": {\n \"allow_origins\": \"*\"\n }\n },\n {\n \"name\": \"QCObjects-SDK.js\",\n \"description\": \"Redirection of QCObjects SDK\",\n \"path\": \"^/js/packages/QCObjects-SDK.js$\",\n \"microservice\": \"com.qcobjects.backend.microservice.static\",\n \"redirect_to\": path.resolve(sdkPath, \"src/QCObjects-SDK.js\"),\n \"responseHeaders\": {},\n \"cors\": {\n \"allow_origins\": \"*\"\n }\n },\n {\n \"name\": \"QCObjects-SDK Components\",\n \"description\": \"Redirection of QCObjects SDK\",\n \"path\": \"^/qcobjects-sdk/(.*)$\",\n \"microservice\": \"com.qcobjects.backend.microservice.static\",\n \"redirect_to\": path.resolve(sdkPath, \"$1\"),\n \"responseHeaders\": {},\n \"cors\": {\n \"allow_origins\": \"*\"\n }\n }\n\n ]);\n CONFIG.set(\"backend\", backend);\n resolve();\n });\n };\n await loadDefaultRoutes();\n })()\n .then(() => logger.info(\"Default routes loaded\"))\n .catch((e: any) => { logger.warn(`An error ocurred loading default settings: ${e}`); });\n\n (function () {\n /* Auto Discover dependencies (lib, handlers, commands) */\n const projectPath = CONFIG.get(\"projectPath\", `${process.cwd()}/`);\n logger.debug(`CONFIG.projectPath is set to ${projectPath}`);\n const findPath = (p: string) => {\n const packagePath = path.resolve(findPackageNodePath(p), p);\n return packagePath;\n };\n\n const getPackageJSON = (p: string) => {\n let _json;\n try {\n const packagePath = findPath(p);\n if (typeof packagePath !== \"undefined\") {\n _json = JSON.parse(fs.readFileSync(path.resolve(`${packagePath}`, \"./package.json\")).toString());\n } else {\n _json = {};\n }\n } catch (e: any) {\n logger.debug(`It was impossible to get the package.json from ${p}: ${e}`);\n _json = {};\n }\n return _json;\n };\n\n const hasKeyword = (() => {\n let keywords: { [key: string]: string[] } = {};\n return (p: string, keyword: string) => {\n if (typeof keywords === \"undefined\") {\n keywords = {};\n }\n try {\n console.log(\"getting keywords for: \", p);\n if (typeof keywords[p] === \"undefined\") {\n keywords[p] = getPackageJSON(p).keywords;\n }\n } catch (e) {\n throw Error(`Something went wrong when trying to get the keywords of ${p}`);\n }\n return typeof keywords[p] !== \"undefined\" && keywords[p].includes(keyword);\n };\n })();\n\n const setBackendValue = (name: string, value: any) => {\n const backend = CONFIG.get(\"backend\", {});\n if (typeof value !== \"undefined\") {\n backend[name] = value;\n }\n CONFIG.set(\"backend\", backend);\n };\n\n const dependencies = (() => {\n let deps: string[] = [];\n return () => {\n if (typeof deps === \"undefined\") {\n deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`, \"./package.json\")).toString()).dependencies);\n setBackendValue(\"dependencies\", deps);\n }\n return deps;\n };\n })();\n\n const devDependencies = (() => {\n let deps: string[] = [];\n return () => {\n if (typeof deps === \"undefined\") {\n deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`, \"./package.json\")).toString()).devDependencies);\n setBackendValue(\"devDependencies\", deps);\n }\n return deps;\n };\n })();\n\n const loadLibs = () => {\n let _ret_;\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_libs\", false)) {\n const libs = dependencies().filter((p) => hasKeyword(p, \"qcobjects-lib\"));\n setBackendValue(\"libs\", libs);\n if (libs.length > 0) {\n logger.debug(`Plugin Libs found: ${libs.join(\",\")}`);\n _ret_ = Promise.all(libs.map(async (p) => { \n return await import(findPath(p)); \n })).then(() => logger.info(\"Libs loaded\"));\n } else {\n logger.debug(\"No Plugin Libs found.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load libs, set autodiscover_libs to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n const loadHandlers = () => {\n let _ret_;\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_handlers\", false)) {\n const handlers = dependencies().filter((p) => hasKeyword(p, \"qcobjects-handler\"));\n setBackendValue(\"handlers\", handlers);\n if (handlers.length > 0) {\n logger.debug(`Plugin Handlers found: ${handlers.join(\",\")}`);\n _ret_ = Promise.all(handlers.map(async (p) => { \n return await import(findPath(p)); \n })).then(() => logger.info(\"Handlers loaded\"));\n } else {\n logger.debug(\"No Plugin Handlers found.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load handlers, set autodiscover_handlers to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n const loadCommands = () => {\n let _ret_;\n logger.debug(`Looking for custom commands as dependencies in: ${projectPath}/package.json`);\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_commands\", false)) {\n const commands = dependencies().filter((p) => hasKeyword(p, \"qcobjects-command\"));\n setBackendValue(\"commands\", commands);\n if (commands.length > 0) {\n logger.debug(`Plugin Commands found: ${commands.join(\",\")}`);\n _ret_ = Promise.all(\n commands.map(async (p) => { \n try {\n return await import(findPath(p));\n } catch (error: any) {\n logger.error(`Failed to load command ${p}: ${error}`);\n throw error;\n }\n })\n ).then(() => logger.info(\"Commands loaded\"))\n .catch(error => {\n logger.error(\"Failed to load commands:\", error);\n throw error;\n });\n } else {\n logger.debug(\"No Plugin Commands found.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load commands, set autodiscover_commands to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n const loadDevCommands = () => {\n let _ret_;\n logger.debug(`Looking for custom commands as dev dependencies in: ${projectPath}/package.json`);\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_commands\", false)) {\n const commands = devDependencies().filter((p) => hasKeyword(p, \"qcobjects-command\"));\n setBackendValue(\"devCommands\", commands);\n if (commands.length > 0) {\n logger.debug(`Dev Plugin Commands found: ${commands.join(\",\")}`);\n _ret_ = Promise.all(commands.map(async (p) => { \n return await import(findPath(p)); \n })).then(() => logger.info(\"Commands loaded\"));\n } else {\n logger.debug(\"No Plugin Commands found in dev dependencies.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load commands, set autodiscover_commands to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n\n if (CONFIG.get(\"autodiscover\", false) ||\n CONFIG.get(\"autodiscover_libs\", false) ||\n CONFIG.get(\"autodiscover_handlers\", false) ||\n CONFIG.get(\"autodiscover_commands\", false)\n ) {\n logger.info(\"Auto discover is enabled\");\n } else if (!CONFIG.get(\"autodiscover\", false)) {\n logger.info(\"Auto discover is disabled\");\n logger.debug(\"To load all dependencies, set autodiscover to true in your config.json\");\n } else {\n logger.info(\"Auto discover is disabled\");\n }\n\n try {\n logger.debug(\"Loading Libs...\");\n loadLibs().catch((e: any) => {\n logger.warn(`An error ocurred loading libs: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load libs: ${e.message}`);\n }\n try {\n logger.debug(\"Loading Handlers...\");\n loadHandlers().catch((e: any) => {\n logger.warn(`An error ocurred loading handlers: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load handler: ${e.message}`);\n }\n try {\n logger.debug(\"Loading Commands...\");\n loadCommands().catch((e: any) => {\n logger.warn(`An error ocurred loading commands: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load commands: ${e.message}`);\n }\n try {\n logger.debug(\"Loading Dev Commands...\");\n loadDevCommands().catch((e: any) => {\n logger.warn(`An error ocurred loading dev commands: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load Dev commands: ${e.message}`);\n }\n\n try {\n const commands = CONFIG.get(\"backend\", { commands: [] }).commands || [];\n const devCommands = CONFIG.get(\"backend\", { devCommands: [] }).devCommands || [];\n setBackendValue(\"plugins\", commands.concat(devCommands));\n } catch (e: any) {\n throw Error(`Something went wrong trying to load plugins list: ${e.message}`);\n }\n\n logger.info(\"Dependencies loaded\");\n\n process.once(\"SIGTERM\", () => {\n console.log(\"\\x1b[33m%s\\x1b[0m\", \"Bye bye!\");\n process.exit();\n });\n })();\n};\n\n(global as any).__load_default_settings__ = __load_default_settings__;\n(global as any).__load_default_settings__();\n\nconst cleanCache = () => {\n Object.keys(require.cache).forEach((key) => { delete require.cache[key]; });\n};\n\nconst __reset_settings__ = () => {\n cleanCache();\n (global as any).__load_default_settings__();\n};\n\n(global as any).__reset_settings__ = __reset_settings__;\n\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_node_fs", "import_qcobjects", "path", "fs"]
|
|
4
|
+
"sourcesContent": ["/**\n * QCObjects CLI 2.5\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport \"qcobjects\";\nimport {readFileSync} from \"node:fs\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\nimport { CONFIG, global, logger, _Crypt, findPackageNodePath, Export, _DataStringify } from \"qcobjects\";\n\nexport const __get_version__ = () => {\n\n const absolutePath = path.resolve(__dirname, \"./\");\n const package_config_path = path.resolve(process.cwd(), \"package.json\");\n const qcobjects_pkg_config_path = `${findPackageNodePath(\"qcobjects/package.json\")}/qcobjects/package.json`;\n const qcobjects_sdk_pkg_config_path = `${findPackageNodePath(\"qcobjects-sdk/package.json\")}/qcobjects-sdk/package.json`;\n\n const readVersionFile = (filePath:string) => {\n try {\n return fs.readFileSync(filePath).toString();\n } catch (error:any) {\n logger.debug(`Error reading file at ${filePath}:`, error.message);\n return JSON.stringify({ version: \"0.0.0\" });\n }\n };\n\n\n const package_config_text = readVersionFile(package_config_path);\n const qcobjects_pkg_config_text = readVersionFile(qcobjects_pkg_config_path);\n const qcobjects_sdk_pkg_config_text = readVersionFile(qcobjects_sdk_pkg_config_path);\n const package_config = JSON.parse(package_config_text);\n const qcobjects_pkg_config = JSON.parse(qcobjects_pkg_config_text);\n const qcobjects_sdk_pkg_config = JSON.parse(qcobjects_sdk_pkg_config_text);\n\n return {\n \"qcobjects\": qcobjects_pkg_config.version,\n \"sdk\": qcobjects_sdk_pkg_config.version,\n \"cli\": package_config.version\n };\n};\n\nexport const __get_version_string__ = () => {\n const version = __get_version__();\n return \"QCObjects: v\" + version.qcobjects + \", SDK: v\" + version.sdk + \", CLI: v\" + version.cli;\n};\n\nexport const getProjectPath = () => {\n return CONFIG.get(\"projectPath\", `${process.cwd()}/`);\n};\n\nExport(__get_version__);\nExport(__get_version_string__);\nExport(getProjectPath);\n\n\nconst __load_default_settings__ = () => {\n CONFIG.set(\"domain\", \"$ENV(DOMAIN)\");\n CONFIG.set(\"certificate_provider\", \"$ENV(CERTIFICATE_PROVIDER)\");\n CONFIG.set(\"devmode\", \"$ENV(DEVMODE)\");\n CONFIG.set(\"autodiscover\", true);\n CONFIG.set(\"autodiscover_commands\", true);\n CONFIG.set(\"autodiscover_handlers\", true);\n CONFIG.set(\"documentRoot\", \"$config(projectPath)public/\");\n CONFIG.set(\"documentRootFileIndex\", \"index.html\");\n CONFIG.set(\"cacheControl\", \"max-age=31536000\");\n CONFIG.set(\"relativeImportPath\", \"js/packages/\");\n CONFIG.set(\"serverPortHTTP\", \"8080\");\n CONFIG.set(\"serverPortHTTPS\", \"8443\");\n CONFIG.set(\"useLocalSDK\", true);\n CONFIG.set(\"useLegacyHTTP\", false);\n CONFIG.set(\"private-key-pem\", \"$config(domain)-privkey.pem\");\n CONFIG.set(\"private-cert-pem\", \"$config(domain)-cert.pem\");\n CONFIG.set(\"enableShellCommands\", true);\n CONFIG.set(\"OPENAI_API_KEY\", \"$ENV(OPENAI_API_KEY)\");\n\n // Set backend configuration\n const backend = {\n db_engine: {\n name: \"$ENV(ENGINE_NAME)\",\n databaseName: \"$ENV(DATABASE_NAME)\"\n },\n auth: {\n enabled: true,\n defaultUser: \"$ENV(DEFAULT_USER)\",\n defaultPasswd: \"$ENV(DEFAULT_PASSWORD)\",\n microsoftapikey: \"$ENV(MICROSOFT_API_KEY)\",\n googleapikey: \"$ENV(GOOGLE_API_KEY)\"\n },\n routes: [\n ]\n };\n CONFIG.set(\"backend\", backend);\n\n // Set package configuration\n const packageConfig = {\n source: {\n backend: \"backend\",\n frontend: \"src\"\n },\n build: \"build\",\n dist: \"dist\"\n };\n CONFIG.set(\"package\", packageConfig);\n\n CONFIG.set(\"useConfigService\", false); // this is only true useful for client web side\n CONFIG.set(\"projectPath\", `${process.cwd()}/`);\n CONFIG.set(\"allowHTTP1\", true);\n CONFIG.set(\"useTemplate\", false);\n CONFIG.set(\"useLegacyHTTP\", false);\n\n const setDevMode = (devmode: string) => {\n if (typeof devmode !== \"undefined\") {\n switch (true) {\n case devmode == \"debug\":\n logger.debugEnabled = true;\n logger.warnEnabled = true;\n logger.infoEnabled = true;\n break;\n case devmode == \"warn\":\n logger.debugEnabled = false;\n logger.warnEnabled = true;\n logger.infoEnabled = true;\n break;\n case devmode == \"info\":\n logger.debugEnabled = false;\n logger.warnEnabled = false;\n logger.infoEnabled = true;\n break;\n\n default:\n logger.debugEnabled = false;\n logger.warnEnabled = false;\n logger.infoEnabled = false;\n break;\n }\n } else {\n logger.debugEnabled = false;\n logger.warnEnabled = false;\n logger.infoEnabled = false;\n }\n\n };\n\n try {\n\n const loadConfig = () => {\n const configPath = path.resolve(CONFIG.get(\"projectPath\"),\"config.json\");\n const configText = readFileSync(configPath).toString();\n const configJson = JSON.parse(configText);\n return configJson;\n };\n\n var _config = loadConfig();\n logger.debug(\"Loading settings from your config.json\");\n\n const _secretKey = (Object.hasOwn(_config, \"domain\")) ? (_config[\"domain\"]) : (\"_secret_\");\n\n if (Object.hasOwn(_config, \"__encoded__\")) {\n _config = JSON.parse(_Crypt.decrypt(_config.__encoded__, _secretKey));\n }\n for (var k in _config) {\n CONFIG.set(k, _config[k]);\n }\n\n setDevMode(CONFIG.get(\"devmode\", \"\"));\n\n if (typeof CONFIG.get(\"backend\") !== \"undefined\") {\n global.set(\"backendAvailable\", true);\n }\n\n if (typeof CONFIG.get(\"basePath\") !== \"undefined\") {\n logger.debug(`Changing the current directory: ${process.cwd()}`);\n try {\n process.chdir(CONFIG.get(\"basePath\"));\n logger.debug(`New directory: ${process.cwd()}`);\n } catch (err: any) {\n logger.warn(`It was impossible to change the current chdir: ${err}`);\n }\n }\n\n } catch (e:any) {\n logger.debug(e);\n logger.debug(\"Something went wrong trying to load config.json file in your project\");\n }\n\n (async function () {\n const projectPath = getProjectPath();\n const loadDefaultRoutes = async () => {\n return await new Promise<void>((resolve, reject) => {\n const sdkPath = path.resolve(findPackageNodePath(\"qcobjects-sdk\"), \"qcobjects-sdk\");\n const qcobjectsPath = path.resolve(findPackageNodePath(\"qcobjects\"), \"qcobjects\");\n let backend = CONFIG.get(\"backend\");\n if (typeof backend === \"undefined\") {\n backend = {};\n }\n if (typeof backend.routes === \"undefined\") {\n backend.routes = [];\n }\n backend.routes = backend.routes.concat([{\n \"name\": \"QCObjects.js\",\n \"description\": \"Redirection of QCObjects.js\",\n \"path\": \"^/QCObjects.js$\",\n \"microservice\": \"com.qcobjects.backend.microservice.static\",\n \"redirect_to\": path.resolve(qcobjectsPath, \"src\", \"QCObjects.js\"),\n \"responseHeaders\": {},\n \"cors\": {\n \"allow_origins\": \"*\"\n }\n },\n {\n \"name\": \"QCObjects-SDK.js\",\n \"description\": \"Redirection of QCObjects SDK\",\n \"path\": \"^/js/packages/QCObjects-SDK.js$\",\n \"microservice\": \"com.qcobjects.backend.microservice.static\",\n \"redirect_to\": path.resolve(sdkPath, \"src/QCObjects-SDK.js\"),\n \"responseHeaders\": {},\n \"cors\": {\n \"allow_origins\": \"*\"\n }\n },\n {\n \"name\": \"QCObjects-SDK Components\",\n \"description\": \"Redirection of QCObjects SDK\",\n \"path\": \"^/qcobjects-sdk/(.*)$\",\n \"microservice\": \"com.qcobjects.backend.microservice.static\",\n \"redirect_to\": path.resolve(sdkPath, \"$1\"),\n \"responseHeaders\": {},\n \"cors\": {\n \"allow_origins\": \"*\"\n }\n }\n\n ]);\n CONFIG.set(\"backend\", backend);\n resolve();\n });\n };\n await loadDefaultRoutes();\n })()\n .then(() => logger.info(\"Default routes loaded\"))\n .catch((e: any) => { logger.warn(`An error ocurred loading default settings: ${e}`); });\n\n (function () {\n /* Auto Discover dependencies (lib, handlers, commands) */\n const projectPath = CONFIG.get(\"projectPath\", `${process.cwd()}/`);\n logger.debug(`CONFIG.projectPath is set to ${projectPath}`);\n const findPath = (p: string) => {\n const packagePath = path.resolve(findPackageNodePath(p), p);\n return packagePath;\n };\n\n const getPackageJSON = (p: string) => {\n let _json;\n try {\n const packagePath = findPath(p);\n if (typeof packagePath !== \"undefined\") {\n _json = JSON.parse(fs.readFileSync(path.resolve(`${packagePath}`, \"./package.json\")).toString());\n } else {\n _json = {};\n }\n } catch (e: any) {\n logger.debug(`It was impossible to get the package.json from ${p}: ${e}`);\n _json = {};\n }\n return _json;\n };\n\n const hasKeyword = (() => {\n let keywords: { [key: string]: string[] } = {};\n return (p: string, keyword: string) => {\n if (typeof keywords === \"undefined\") {\n keywords = {};\n }\n try {\n console.log(\"getting keywords for: \", p);\n if (typeof keywords[p] === \"undefined\") {\n keywords[p] = getPackageJSON(p).keywords;\n }\n } catch (e) {\n throw Error(`Something went wrong when trying to get the keywords of ${p}`);\n }\n return typeof keywords[p] !== \"undefined\" && keywords[p].includes(keyword);\n };\n })();\n\n const setBackendValue = (name: string, value: any) => {\n const backend = CONFIG.get(\"backend\", {});\n if (typeof value !== \"undefined\") {\n backend[name] = value;\n }\n CONFIG.set(\"backend\", backend);\n };\n\n const dependencies = (() => {\n let deps: string[] = [];\n return () => {\n if (typeof deps === \"undefined\") {\n deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`, \"./package.json\")).toString()).dependencies);\n setBackendValue(\"dependencies\", deps);\n }\n return deps;\n };\n })();\n\n const devDependencies = (() => {\n let deps: string[] = [];\n return () => {\n if (typeof deps === \"undefined\") {\n deps = Object.keys(JSON.parse(fs.readFileSync(path.resolve(`${projectPath}`, \"./package.json\")).toString()).devDependencies);\n setBackendValue(\"devDependencies\", deps);\n }\n return deps;\n };\n })();\n\n const loadLibs = () => {\n let _ret_;\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_libs\", false)) {\n const libs = dependencies().filter((p) => hasKeyword(p, \"qcobjects-lib\"));\n setBackendValue(\"libs\", libs);\n if (libs.length > 0) {\n logger.debug(`Plugin Libs found: ${libs.join(\",\")}`);\n _ret_ = Promise.all(libs.map(async (p) => { \n return await import(findPath(p)); \n })).then(() => logger.info(\"Libs loaded\"));\n } else {\n logger.debug(\"No Plugin Libs found.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load libs, set autodiscover_libs to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n const loadHandlers = () => {\n let _ret_;\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_handlers\", false)) {\n const handlers = dependencies().filter((p) => hasKeyword(p, \"qcobjects-handler\"));\n setBackendValue(\"handlers\", handlers);\n if (handlers.length > 0) {\n logger.debug(`Plugin Handlers found: ${handlers.join(\",\")}`);\n _ret_ = Promise.all(handlers.map(async (p) => { \n return await import(findPath(p)); \n })).then(() => logger.info(\"Handlers loaded\"));\n } else {\n logger.debug(\"No Plugin Handlers found.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load handlers, set autodiscover_handlers to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n const loadCommands = () => {\n let _ret_;\n logger.debug(`Looking for custom commands as dependencies in: ${projectPath}/package.json`);\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_commands\", false)) {\n const commands = dependencies().filter((p) => hasKeyword(p, \"qcobjects-command\"));\n setBackendValue(\"commands\", commands);\n if (commands.length > 0) {\n logger.debug(`Plugin Commands found: ${commands.join(\",\")}`);\n _ret_ = Promise.all(\n commands.map(async (p) => { \n try {\n return await import(findPath(p));\n } catch (error: any) {\n logger.error(`Failed to load command ${p}: ${error}`);\n throw error;\n }\n })\n ).then(() => logger.info(\"Commands loaded\"))\n .catch(error => {\n logger.error(\"Failed to load commands:\", error);\n throw error;\n });\n } else {\n logger.debug(\"No Plugin Commands found.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load commands, set autodiscover_commands to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n const loadDevCommands = () => {\n let _ret_;\n logger.debug(`Looking for custom commands as dev dependencies in: ${projectPath}/package.json`);\n if (CONFIG.get(\"autodiscover\", false) || CONFIG.get(\"autodiscover_commands\", false)) {\n const commands = devDependencies().filter((p) => hasKeyword(p, \"qcobjects-command\"));\n setBackendValue(\"devCommands\", commands);\n if (commands.length > 0) {\n logger.debug(`Dev Plugin Commands found: ${commands.join(\",\")}`);\n _ret_ = Promise.all(commands.map(async (p) => { \n return await import(findPath(p)); \n })).then(() => logger.info(\"Commands loaded\"));\n } else {\n logger.debug(\"No Plugin Commands found in dev dependencies.\");\n _ret_ = Promise.resolve();\n }\n } else {\n logger.debug(\"To load commands, set autodiscover_commands to true in your config.json\");\n _ret_ = Promise.resolve();\n }\n return _ret_;\n };\n\n if (CONFIG.get(\"autodiscover\", false) ||\n CONFIG.get(\"autodiscover_libs\", false) ||\n CONFIG.get(\"autodiscover_handlers\", false) ||\n CONFIG.get(\"autodiscover_commands\", false)\n ) {\n logger.info(\"Auto discover is enabled\");\n } else if (!CONFIG.get(\"autodiscover\", false)) {\n logger.info(\"Auto discover is disabled\");\n logger.debug(\"To load all dependencies, set autodiscover to true in your config.json\");\n } else {\n logger.info(\"Auto discover is disabled\");\n }\n\n try {\n logger.debug(\"Loading Libs...\");\n loadLibs().catch((e: any) => {\n logger.warn(`An error ocurred loading libs: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load libs: ${e.message}`);\n }\n try {\n logger.debug(\"Loading Handlers...\");\n loadHandlers().catch((e: any) => {\n logger.warn(`An error ocurred loading handlers: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load handler: ${e.message}`);\n }\n try {\n logger.debug(\"Loading Commands...\");\n loadCommands().catch((e: any) => {\n logger.warn(`An error ocurred loading commands: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load commands: ${e.message}`);\n }\n try {\n logger.debug(\"Loading Dev Commands...\");\n loadDevCommands().catch((e: any) => {\n logger.warn(`An error ocurred loading dev commands: ${e}`);\n });\n } catch (e: any) {\n throw Error(`Something went wrong trying to load Dev commands: ${e.message}`);\n }\n\n try {\n const commands = CONFIG.get(\"backend\", { commands: [] }).commands || [];\n const devCommands = CONFIG.get(\"backend\", { devCommands: [] }).devCommands || [];\n setBackendValue(\"plugins\", commands.concat(devCommands));\n } catch (e: any) {\n throw Error(`Something went wrong trying to load plugins list: ${e.message}`);\n }\n\n logger.info(\"Dependencies loaded\");\n\n process.once(\"SIGTERM\", () => {\n console.log(\"\\x1b[33m%s\\x1b[0m\", \"Bye bye!\");\n process.exit();\n });\n })();\n};\n\n(global as any).__load_default_settings__ = __load_default_settings__;\n(global as any).__load_default_settings__();\n\nconst cleanCache = () => {\n Object.keys(require.cache).forEach((key) => { delete require.cache[key]; });\n};\n\nconst __reset_settings__ = () => {\n cleanCache();\n (global as any).__load_default_settings__();\n};\n\n(global as any).__reset_settings__ = __reset_settings__;\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_node_fs", "import_qcobjects", "path", "fs", "backend"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/enterprise-commands.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * QCObjects CLI 2.
|
|
4
|
+
"sourcesContent": ["/**\n * QCObjects CLI 2.5\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\n\nimport { execSync } from \"node:child_process\";\nimport readline from \"readline\";\nimport { Package, InheritClass, CONFIG, logger } from \"qcobjects\";\n\nconst license: string = CONFIG.get(\"enterprise-license\", \"1234\");\nconst email: string = CONFIG.get(\"enterprise-email\", \"a@b.com\");\n\nconst MESSAGES = {\n NOTE: \"[NOTE: No information will be sent to a server until I got your consent]\",\n EMAIL_PROMPT: \"Please tell me your e-Mail (\uD83D\uDC8C):\",\n PHONE_PROMPT: \"Please tell me your phone number (\uD83E\uDD19): \\n\",\n OPTION_PROMPT: `\nPlease select one of the following options (type a number):\n\n1.- \uD83D\uDE40 This is your first interaction \uD83D\uDE0D with QCObjects Enterprise Edition \uD83C\uDFE2,\nyou want to send your email and phone number to one of our executives to process your\ninquiry, pay the license (when aplies) and receive a new fresh license number\nthat will free up to you the most advanced features for large companies\n\n2.- \u2714 Your assigned executive \uD83E\uDDD1 has given to you a new fresh QCObjects Enterprise Edition License Number\nand you want to enter it to follow up with the next steps.\n\n3.- \uD83C\uDFC3 You want to quit this form, as you got here accidentally\n(You should think about it. It's not a coincidence, It's destiny \uD83D\uDE00).\n\nPlease enter the number of the option and press [enter]: `,\n REGISTRATION_SUCCESS: `\uD83D\uDC4F Congrats! You have been successfully registered to the cloud! \uD83D\uDC4F\nOne of our executives will be in touch with you as soon as possible to give you the next steps\nto get a new License Number and start using QCObjects Entrprise Edition!\n\n(In the meantime, you can continue using all the features of the QCObjects Community Edition)\n`,\n LICENSE_PROMPT: \"Please tell me the number of license that your executive has given to you: \\n\",\n COMMUNITY_EDITION: \"\uD83E\uDD37 You can continue to use QCObjects Community Edition, see you! \uD83D\uDE4B \",\n PHONE_REQUIRED: `You need to enter a Phone Number if you want to be contacted.\nIf you want to quit, press Ctrl-C.\n`,\n EMAIL_REQUIRED: `You need to enter a real e-Mail address if you want to be contacted.\nIf you want to quit, press Ctrl-C.\n`,\n INSTALLING: \"Now, I'm installing QCObjects Enterprise Edition in your computer...\",\n INSTALL_SUCCESS: `\uD83D\uDC4F Congrats! Now you have installed QCObjects Enterprise Edition! \uD83D\uDC4F\nYou can test it using:\n> qcobjects --version\n\nTo find more help, type the command:\n\n> qcobjects --help\n\nEnjoy!\n`,\n INSTALL_FAILURE: \"\uD83E\uDD26 Something went wrong \uD83E\uDD26 when trying to update your license to QCObjects Enterprise Edition. Ask your executive to help.\"\n};\n\nconst OPTIONS = {\n FIRST_INTERACTION: \"1\",\n ENTER_LICENSE: \"2\",\n QUIT: \"3\"\n};\n\nexport class QCObjectsEnterprise extends InheritClass {\n\n install(): void {\n const instance = this;\n instance.installEnterprise(license, email);\n }\n\n static async upgrade(switchCommander: any): Promise<void> {\n const instance = new QCObjectsEnterprise();\n\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout\n });\n\n const question = (query: string): Promise<string> => {\n return new Promise(resolve => rl.question(query, resolve));\n };\n\n const emailQuestion = async (): Promise<void> => {\n const email = await question(`${MESSAGES.NOTE}\\n\\n${MESSAGES.EMAIL_PROMPT}`);\n if (email !== \"\") {\n const phoneNumberQuestion = async (): Promise<void> => {\n const phonenumber = await question(MESSAGES.PHONE_PROMPT);\n if (phonenumber !== \"\") {\n const interaction_option = await question(MESSAGES.OPTION_PROMPT);\n logger.infoEnabled = true;\n\n switch (interaction_option) {\n case OPTIONS.FIRST_INTERACTION: {\n try {\n await switchCommander.register(email, phonenumber);\n logger.info(MESSAGES.REGISTRATION_SUCCESS);\n } finally {\n rl.close();\n }\n break;\n }\n case OPTIONS.ENTER_LICENSE: {\n const license = await question(MESSAGES.LICENSE_PROMPT);\n instance.installEnterprise(license, email);\n rl.close();\n break;\n }\n case OPTIONS.QUIT:\n default: {\n logger.info(MESSAGES.COMMUNITY_EDITION);\n rl.close();\n break;\n }\n }\n } else {\n console.log(MESSAGES.PHONE_REQUIRED);\n await phoneNumberQuestion();\n }\n };\n await phoneNumberQuestion();\n } else {\n console.log(MESSAGES.EMAIL_REQUIRED);\n await emailQuestion();\n }\n };\n await emailQuestion();\n }\n\n installEnterprise(license: string, email: string): void {\n const asterisk = \"*\";\n logger.info(`Your entered license number is ${asterisk.repeat(license.length)} and the email that you have entered is ${email}`);\n logger.info(MESSAGES.INSTALLING);\n const cmdDownloadGit = `npm i --force -g git+https://license:${license}@software.qcobjects.io/qcobjects-enterprise/qcobjects-enterprise.git`;\n execSync(cmdDownloadGit);\n const stdout = execSync(\"qcobjects --version\");\n if (stdout.toString().includes(\"Enterprise Edition\")) {\n logger.info(MESSAGES.INSTALL_SUCCESS);\n } else {\n console.log(MESSAGES.INSTALL_FAILURE);\n }\n }\n}\n\nPackage(\"org.qcobjects.enterprise.commands\", [\n QCObjectsEnterprise\n]);\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["readline", "email", "license"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/main-file.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * QCObjects CLI 2.
|
|
4
|
+
"sourcesContent": ["/**\n * QCObjects CLI 2.5\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\nimport path from \"path\";\nimport fs from \"fs\";\nimport mime from \"mime\";\n\nimport { InheritClass, CONFIG, logger, New, Component, Package } from \"qcobjects\";\n\nexport class FileDispatcher extends InheritClass {\n scriptname: any;\n filename: any;\n pathname!: string;\n headers: any;\n templateURI!: string;\n template: any;\n body: any;\n constructor({\n name = CONFIG.get(\"documentRootFileIndex\"),\n template = \"\",\n templateURI = CONFIG.get(\"documentRootFileIndex\"),\n headers = {},\n body = \"\",\n filename = \"\",\n done\n }: {\n name: string, template: string, templateURI: string, headers: any, body: string, filename: string,\n done: (headers: any, body: any, templateURI?: string, isTemplate?: boolean) => any\n }) {\n super({\n name,\n template,\n templateURI,\n headers,\n body,\n filename,\n done\n });\n\n var o = this;\n\n var scriptname = o.scriptname;\n this.filename = scriptname;\n var pathname = (o.pathname !== \"\") ? (o.pathname + \"/\") : (\"\");\n var appTemplateInstance = this;\n if (typeof appTemplateInstance.headers === \"undefined\") {\n appTemplateInstance.headers = {\n \":status\": 500,\n \"content-type\": \"text/html\"\n };\n }\n\n appTemplateInstance.done = o.done.bind(appTemplateInstance);\n appTemplateInstance.templateURI = CONFIG.get(\"documentRoot\") + pathname + scriptname;\n appTemplateInstance.templateURI = appTemplateInstance.templateURI.replace(\"//\", \"/\");\n\n if (appTemplateInstance.isTemplate()) {\n fs.readFile(appTemplateInstance.templateURI, function (err: any, data: any) {\n logger.debug(\"reading data from \" + appTemplateInstance.templateURI);\n if (typeof data !== \"undefined\") {\n appTemplateInstance.template = data.toString();\n appTemplateInstance._done();\n } else {\n appTemplateInstance.headers = {\n \":status\": 404,\n \"content-type\": \"text/html\"\n };\n appTemplateInstance.done(\n appTemplateInstance.headers,\n \"FILE NOT FOUND\", \"notfound.html\", false);\n logger.debug(\"file not found\");\n }\n });\n } else {\n appTemplateInstance.headers[\":status\"] = 200;\n appTemplateInstance.headers[\"content-type\"] = mime.getType(appTemplateInstance.templateURI);\n appTemplateInstance.done(\n appTemplateInstance.headers,\n \"\", appTemplateInstance.templateURI, false);\n }\n\n logger.info(\"FileDispatcher initialized\");\n\n }\n\n file_extension() {\n return this.filename.substr(this.filename.indexOf(\".\"));\n }\n isTemplate() {\n return CONFIG.get(\"useTemplate\") && (this.file_extension() == \".html\" || this.file_extension() == \".tpl.html\");\n }\n _done() {\n var appTemplateInstance = this;\n const source = appTemplateInstance.template;\n if (appTemplateInstance.isTemplate()) {\n\n (New(Component, {\n name: \"static_source\",\n template: source,\n cached: false,\n tplsource: \"inline\",\n data: {\n title: \"QCObjects\"\n },\n done({\n request,\n component\n }: { request: any, component: any }) {\n appTemplateInstance.body = component.parsedAssignmentText;\n return Promise.resolve({\n request,\n component\n });\n }\n }));\n\n } else {\n appTemplateInstance.body = source;\n }\n\n if ([\".png\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".html\",\n \".tpl.html\",\n \".css\",\n \".js\",\n \".svg\"\n ].includes(appTemplateInstance.file_extension())) {\n appTemplateInstance.headers[\"content-type\"] = mime.getType(appTemplateInstance.templateURI);\n appTemplateInstance.headers[\"cache-control\"] = CONFIG.get(\"cacheControl\", \"max-age=31536000\");\n appTemplateInstance.done(\n appTemplateInstance.headers,\n appTemplateInstance.body,\n appTemplateInstance.templateURI,\n appTemplateInstance.isTemplate());\n } else {\n appTemplateInstance.done({\n \":status\": 403,\n \"content-type\": \"text/plain\"\n },\n \"FORBIDDEN\", \"notfound.html\", false);\n }\n }\n done(headers: any, body: any, templateURI = \"\", isTemplate = false) { }\n\n}\n\n\n( () => {\n \"use strict\";\n\n const absolutePath = path.resolve(__dirname, \"./\");\n\n\n\n Package(\"org.quickcorp.qcobjects.main.file\", [\n FileDispatcher\n ]);\n\n exports = {\n FileDispatcher\n };\n})();"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["fs", "mime", "path"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/main-http-gae-server.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * QCObjects CLI 2.4.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport { findPackageNodePath, Import, Package, InheritClass, CONFIG, logger, New, global, ClassFactory, Export } from \"qcobjects\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\nimport http from \"node:http\";\nimport mime from \"mime\";\nimport { URL } from \"url\";\n\nimport { FileDispatcher } from \"./main-file\";\nimport { PipeLog } from \"./common-pipelog\";\n\nexport class HTTPServer extends InheritClass {\n interceptorInstances: any[];\n server: any;\n request: any;\n response: any;\n constructor({\n request = null,\n response = \"\",\n server = null,\n scriptname = \"\",\n interceptorInstances = []\n }: {\n request: any, response: any, server?: any, scriptname: string, interceptorInstances: any[]\n }) {\n super({\n request,\n response,\n server,\n scriptname,\n interceptorInstances\n });\n\n const oHTTPServer = this;\n const welcometo = \"Welcome to \\n\";\n const instructions = \"QCObjects Legacy HTTPServer \\n\";\n const logo = \" .d88888b. .d8888b. .d88888b. 888 d8b 888 \\r\\nd88P\\\" \\\"Y88bd88P Y88bd88P\\\" \\\"Y88b888 Y8P 888 \\r\\n888 888888 888888 888888 888 \\r\\n888 888888 888 88888888b. 8888 .d88b. .d8888b888888.d8888b \\r\\n888 888888 888 888888 \\\"88b \\\"888d8P Y8bd88P\\\" 888 88K \\r\\n888 Y8b 888888 888888 888888 888 88888888888888 888 \\\"Y8888b. \\r\\nY88b.Y8b88PY88b d88PY88b. .d88P888 d88P 888Y8b. Y88b. Y88b. X88 \\r\\n \\\"Y888888\\\" \\\"Y8888P\\\" \\\"Y88888P\\\" 88888P\\\" 888 \\\"Y8888 \\\"Y8888P \\\"Y888 88888P' \\r\\n Y8b 888 \\r\\n d88P \\r\\n 888P\\\" \";\n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n logger.debug(this.showIPAddress());\n logger.info(\"Listening on HTTP PORT: \" + CONFIG.get(\"serverPortHTTP\").toString());\n logger.info(\"Go to: \\n\" + this.showPossibleURL());\n this.interceptorInstances = interceptorInstances;\n\n\n oHTTPServer.server = http.createServer((req: any, res: any) => {\n\n });\n\n server = oHTTPServer.server;\n\n server?.on(\"error\", (err: any) => console.error(err));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Loading backend interceptors...\");\n const interceptors = CONFIG.get(\"backend\", {}).interceptors;\n if (typeof interceptors !== \"undefined\") {\n logger.info(\"Backend Interceptors Available\");\n interceptors.map((interceptor: { microservice: string; }) => {\n ImportMicroservice(interceptor.microservice);\n var interceptorClassFactory = ClassFactory(interceptor.microservice + \".Interceptor\");\n var interceptorInstance = New(interceptorClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n interceptor: interceptor,\n server: server\n });\n oHTTPServer.interceptorInstances.push(interceptorInstance);\n });\n }\n }\n\n server.on(\"request\", (req: { url: any; headers: any; method: any; }, res: { destroyed: any; writeHeader: (arg0: number, arg1: { \"content-type\": string; }) => void; on: (arg0: string, arg1: () => void) => void; write: (arg0: string) => void; end: () => void; }) => {\n\n const request = Object.assign(New(HTTPServerRequest), URL.parse(req.url));\n request.headers = req.headers;\n this.request = request;\n this.request.method = req.method;\n this.request.path = req.url;\n server.setMaxListeners(9999999999);\n CONFIG.set(\"backendTimeout\", CONFIG.get(\"backendTimeout\") || 20000);\n var timeoutHandler = () => {\n // end the stream on timeout\n try {\n if (!res.destroyed) {\n logger.info(\"A timeout occurred...\" + CONFIG.get(\"backendTimeout\").toString());\n logger.info(\"Killing session...\");\n\n res.writeHeader(500, {\n \"content-type\": \"text/html\"\n });\n res.on(\"error\", () => { });\n res.write(\"<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>\");\n res.end();\n } else {\n logger.debug(\"Session was normally finishing...\");\n }\n } catch (e: any) {\n logger.debug(\"An unhandled error occurred during timeout catching...\");\n logger.debug(e.message);\n }\n server.removeListener(\"timeout\", timeoutHandler);\n\n };\n if (!res.destroyed) {\n server.setTimeout(CONFIG.get(\"backendTimeout\"), timeoutHandler);\n }\n\n if (this.request.pathname.indexOf(\".\") < 0) {\n this.request.scriptname = CONFIG.get(\"documentRootFileIndex\");\n } else {\n this.request.scriptname = this.request.pathname.split(\"/\").reverse()[0];\n }\n this.request.pathname = this.request.pathname.substr(0, this.request.pathname.lastIndexOf(\"/\"));\n\n logger.debug(PipeLog.pipe(this.request));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Backend GAE Microservices Available\");\n const routes = CONFIG.get(\"backend\").routes;\n const selectedRoute = routes.filter((route: { path: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\");\n return (new RegExp(standardRoutePath, \"g\")).test(request.path);\n });\n if (selectedRoute.length > 0) {\n selectedRoute.map((route: { path: string; microservice: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\"); //allowing {param}\n const selectedRouteParams = {\n ...[...request.path.matchAll((new RegExp(standardRoutePath, \"g\")))][0][\"groups\"]\n };\n ImportMicroservice(route.microservice);\n var microServiceClassFactory = ClassFactory(route.microservice + \".Microservice\");\n this.response = New(microServiceClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n route: route,\n routeParams: selectedRouteParams,\n server: server,\n stream: res,\n req: req,\n request: request\n });\n });\n } else {\n this.response = New(HTTPServerResponse, {\n server: server,\n stream: res,\n request: this.request\n });\n }\n\n } else {\n // ...\n\n this.response = New(HTTPServerResponse, {\n server: server,\n stream: res,\n request: this.request\n });\n\n }\n\n });\n\n }\n\n showIPAddress() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach(function (ipGroup: any) {\n _ret_ += iface + \": \" + PipeLog.pipe(ipGroup) + \"\\n\";\n });\n });\n return _ret_;\n }\n\n showPossibleURL() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach((ipGroup: any) => {\n if (ipGroup[\"family\"].toLowerCase() == \"ipv4\") {\n _ret_ += \"http://\" + ipGroup[\"address\"] + \":\" + CONFIG.get(\"serverPortHTTP\").toString() + \"/\\n\";\n }\n });\n });\n return _ret_;\n }\n\n start() {\n var server = this.server;\n server.listen(process.env.PORT || CONFIG.get(\"serverPortHTTP\"));\n }\n}\n\n\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\nconst ImportMicroservice = function (microservicePackage: string) {\n var _ret_;\n var standardPath = findPackageNodePath(microservicePackage) || findPackageNodePath(microservicePackage + \".js\");\n if (standardPath !== null) {\n _ret_ = Import(microservicePackage);\n } else {\n var nonStandardPath = findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage) || findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage + \".js\");\n if (nonStandardPath !== null) {\n _ret_ = Import(absolutePath + \"/backend/\" + microservicePackage);\n } else {\n _ret_ = Promise.resolve(async () => (await import(microservicePackage))());\n }\n }\n return _ret_;\n};\n\nclass BackendMicroservice extends InheritClass {\n domain: any;\n basePath: any;\n server: any;\n request: any;\n req: any;\n get: any;\n route: any;\n headers: any;\n body!: object;\n stream: any;\n\n constructor(o: any) {\n super(o);\n this.domain = CONFIG.get(\"domain\");\n this.basePath = CONFIG.get(\"basePath\");\n logger.debug(\"Executing GAE HTTP BackendMicroservice \");\n const microservice = this;\n const server = microservice.server;\n const request = microservice.request;\n this.cors();\n microservice.req.on(\"data\", (data: any) => {\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods: any = {\n \"post\": microservice.post.bind(this),\n };\n if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice, data);\n }\n });\n\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods: any = {\n \"get\": microservice.get.bind(this),\n \"head\": microservice.head.bind(this),\n \"put\": microservice.put.bind(this),\n \"delete\": microservice.delete.bind(this),\n \"connect\": microservice.connect.bind(this),\n \"options\": microservice.options.bind(this),\n \"trace\": microservice.trace.bind(this),\n \"patch\": microservice.patch.bind(this)\n };\n if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice);\n }\n\n\n }\n\n cors() {\n if (this.route.cors) {\n const {\n allow_origins,\n allow_credentials,\n allow_methods,\n allow_headers\n } = this.route.cors;\n var microservice = this;\n if (typeof microservice.headers !== \"object\") {\n microservice.headers = {};\n }\n if (typeof allow_origins !== \"undefined\") {\n // an example of allow_origins is ['https://example.com','http://www.example.com']\n if (allow_origins == \"*\" || (typeof microservice.request.headers.origin == \"undefined\") || [...allow_origins].indexOf(microservice.request.headers.origin) !== -1) {\n // for compatibility with all browsers allways return a wildcard when the origin is allowed\n microservice.headers[\"Access-Control-Allow-Origin\"] = \"*\";\n } else {\n logger.debug(\"Origin is not allowed: \" + microservice.request.headers.origin);\n logger.debug(\"Forcing to finish the response...\");\n this.body = {};\n try {\n this.done();\n } catch (e: any) { }\n }\n } else {\n microservice.headers[\"Access-Control-Allow-Origin\"] = \"*\";\n }\n if (typeof allow_credentials !== \"undefined\") {\n microservice.headers[\"Access-Control-Allow-Credentials\"] = allow_credentials.toString();\n } else {\n microservice.headers[\"Access-Control-Allow-Credentials\"] = \"true\";\n }\n if (typeof allow_methods !== \"undefined\") {\n microservice.headers[\"Access-Control-Allow-Methods\"] = [...allow_methods].join(\",\");\n } else {\n microservice.headers[\"Access-Control-Allow-Methods\"] = \"GET, OPTIONS, POST\";\n }\n if (typeof allow_headers !== \"undefined\") {\n microservice.headers[\"Access-Control-Allow-Headers\"] = [...allow_headers].join(\",\");\n } else {\n microservice.headers[\"Access-Control-Allow-Headers\"] = \"*\";\n }\n }\n }\n\n head(formData: any) {\n this.done();\n }\n post(formData: any) {\n this.done();\n }\n put(formData: any) {\n this.done();\n }\n delete(formData: any) {\n this.done();\n }\n connect(formData: any) {\n this.done();\n }\n options(formData: any) {\n this.done();\n }\n trace(formData: any) {\n this.done();\n }\n patch(formData: any) {\n this.done();\n }\n finishWithBody(stream: { write: (arg0: string) => void; end: () => void; }) {\n try {\n stream.write(JSON.stringify(this.body));\n stream.end();\n } catch (e: any) {\n logger.debug(\"Something wrong writing the response for microservice\" + e.toString());\n }\n }\n\n done() {\n var microservice = this;\n var stream = microservice.stream;\n try {\n stream.writeHead(200, microservice.headers);\n } catch (e: any) {\n logger.debug(\"Something went wront while sending headers in http...\");\n logger.debug(e.toString());\n }\n if (microservice.body != null) {\n microservice.finishWithBody.call(microservice, stream);\n }\n }\n\n}\n\nExport(BackendMicroservice);\n\nclass HTTPServerResponse extends InheritClass {\n body!: string;\n stream: any;\n headers: { \":status\": number; \"content-type\": string; };\n fileDispatcher: any;\n request: any;\n constructor(o: { stream: any; request: any; headers: any; fileDispatcher: any; }) {\n super(o);\n var self = this;\n self.body = \"\";\n self.request = o.request || {};\n self.stream = o.stream;\n self.headers = o.headers;\n self.fileDispatcher = o.fileDispatcher;\n\n // Initialize request properties if not set\n if (!self.request.scriptname || !self.request.pathname) {\n const defaultPath = \"/\";\n self.request.pathname = self.request.pathname || defaultPath;\n self.request.scriptname = self.request.scriptname || CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n }\n\n // Ensure documentRoot is set\n if (!CONFIG.get(\"documentRoot\")) {\n CONFIG.set(\"documentRoot\", path.join(process.cwd(), \"public\"));\n }\n\n self._generateResponse();\n this.headers = {\n \":status\": 200,\n \"content-type\": \"text/html\"\n };\n }\n\n sendFile(stream: any, fileName: string) {\n // read and send file content in the stream\n\n try {\n console.log(\"trying to read \" + fileName);\n const fd = fs.openSync(fileName, \"r\");\n const stat = fs.fstatSync(fd);\n const headers = {\n \"content-length\": stat.size,\n \"last-modified\": stat.mtime.toUTCString(),\n \"content-type\": mime.getType(fileName),\n \"cache-control\": CONFIG.get(\"cacheControl\", \"max-age=31536000\")\n };\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n stream.setHeader(\"content-length\", headers[\"content-length\"]);\n stream.setHeader(\"last-modified\", headers[\"last-modified\"]);\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"cache-control\", headers[\"cache-control\"]);\n\n // This line opens the file as a readable stream\n var readStream = fs.createReadStream(fileName);\n\n // This will wait until we know the readable stream is actually valid before piping\n readStream.on(\"open\", function () {\n // This just pipes the read stream to the response object (which goes to the client)\n readStream.pipe(stream);\n });\n\n readStream.on(\"end\", function () {\n stream.end();\n });\n\n // This catches any errors that happen while creating the readable stream (usually invalid names)\n readStream.on(\"error\", function (err: any) {\n stream.end(err);\n });\n\n } catch (e: any) {\n if (e.errno == -2) {\n const headers = {\n \":status\": 404,\n \"content-type\": \"text/html\"\n };\n stream.write(\"<h1>404 - FILE NOT FOUND</h1>\");\n stream.on(\"close\", () => {\n console.log(\"closing file\", fileName);\n });\n stream.end();\n }\n }\n }\n\n _generateResponse() {\n var response = this;\n response.fileDispatcher = New(FileDispatcher, {\n scriptname: response.request.scriptname,\n pathname: response.request.pathname,\n done(headers: any, body: any, templateURI: any, isTemplate: any) {\n response.headers = headers;\n var stream = response.stream;\n if (isTemplate) {\n logger.debug(\"TEMPLATE\");\n response.body = body;\n // stream.respond(response.headers);\n stream.write(response.body);\n stream.end();\n } else if (headers[\":status\"] == 200) {\n response.sendFile(stream, templateURI);\n } else {\n logger.debug(\"NONE \");\n // stream.respond(response.headers);\n stream.end();\n }\n }\n });\n\n }\n\n}\n\nclass HTTPServerRequest extends InheritClass {\n\n constructor({\n scriptname = \"\",\n path = \"\",\n method = \"\",\n url = \"\",\n headers = null,\n flags = null,\n protocol = null,\n slashes = null,\n auth = null,\n host = null,\n port = null,\n hostname = null,\n hash = null,\n search = \"\",\n query = \"\",\n pathname = \"\",\n href = \"\"\n }) {\n super({\n scriptname,\n path,\n method,\n url,\n headers,\n flags,\n protocol,\n slashes,\n auth,\n host,\n port,\n hostname,\n hash,\n search,\n query,\n pathname,\n href\n });\n\n }\n}\n\n\n\nPackage(\"org.quickcorp.qcobjects.main.http.gae.server\", [\n BackendMicroservice, HTTPServer, HTTPServerRequest, HTTPServerResponse\n\n]);\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * QCObjects CLI 2.5\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport { findPackageNodePath, Import, Package, InheritClass, CONFIG, logger, New, global, ClassFactory, Export } from \"qcobjects\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\nimport http from \"node:http\";\nimport mime from \"mime\";\nimport { URL } from \"url\";\n\nimport { FileDispatcher } from \"./main-file\";\nimport { PipeLog } from \"./common-pipelog\";\n\nexport class HTTPServer extends InheritClass {\n interceptorInstances: any[];\n server: any;\n request: any;\n response: any;\n constructor({\n request = null,\n response = \"\",\n server = null,\n scriptname = \"\",\n interceptorInstances = []\n }: {\n request: any, response: any, server?: any, scriptname: string, interceptorInstances: any[]\n }) {\n super({\n request,\n response,\n server,\n scriptname,\n interceptorInstances\n });\n\n const oHTTPServer = this;\n const welcometo = \"Welcome to \\n\";\n const instructions = \"QCObjects Legacy HTTPServer \\n\";\n const logo = \" .d88888b. .d8888b. .d88888b. 888 d8b 888 \\r\\nd88P\\\" \\\"Y88bd88P Y88bd88P\\\" \\\"Y88b888 Y8P 888 \\r\\n888 888888 888888 888888 888 \\r\\n888 888888 888 88888888b. 8888 .d88b. .d8888b888888.d8888b \\r\\n888 888888 888 888888 \\\"88b \\\"888d8P Y8bd88P\\\" 888 88K \\r\\n888 Y8b 888888 888888 888888 888 88888888888888 888 \\\"Y8888b. \\r\\nY88b.Y8b88PY88b d88PY88b. .d88P888 d88P 888Y8b. Y88b. Y88b. X88 \\r\\n \\\"Y888888\\\" \\\"Y8888P\\\" \\\"Y88888P\\\" 88888P\\\" 888 \\\"Y8888 \\\"Y8888P \\\"Y888 88888P' \\r\\n Y8b 888 \\r\\n d88P \\r\\n 888P\\\" \";\n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n logger.debug(this.showIPAddress());\n logger.info(\"Listening on HTTP PORT: \" + CONFIG.get(\"serverPortHTTP\").toString());\n logger.info(\"Go to: \\n\" + this.showPossibleURL());\n this.interceptorInstances = interceptorInstances;\n\n\n oHTTPServer.server = http.createServer((req: any, res: any) => {\n\n });\n\n server = oHTTPServer.server;\n\n server?.on(\"error\", (err: any) => console.error(err));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Loading backend interceptors...\");\n const interceptors = CONFIG.get(\"backend\", {}).interceptors;\n if (typeof interceptors !== \"undefined\") {\n logger.info(\"Backend Interceptors Available\");\n interceptors.map((interceptor: { microservice: string; }) => {\n ImportMicroservice(interceptor.microservice);\n var interceptorClassFactory = ClassFactory(interceptor.microservice + \".Interceptor\");\n var interceptorInstance = New(interceptorClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n interceptor: interceptor,\n server: server\n });\n oHTTPServer.interceptorInstances.push(interceptorInstance);\n });\n }\n }\n\n server.on(\"request\", (req: { url: any; headers: any; method: any; }, res: { destroyed: any; writeHeader: (arg0: number, arg1: { \"content-type\": string; }) => void; on: (arg0: string, arg1: () => void) => void; write: (arg0: string) => void; end: () => void; }) => {\n\n const request = Object.assign(New(HTTPServerRequest), URL.parse(req.url));\n request.headers = req.headers;\n this.request = request;\n this.request.method = req.method;\n this.request.path = req.url;\n server.setMaxListeners(9999999999);\n CONFIG.set(\"backendTimeout\", CONFIG.get(\"backendTimeout\") || 20000);\n var timeoutHandler = () => {\n // end the stream on timeout\n try {\n if (!res.destroyed) {\n logger.info(\"A timeout occurred...\" + CONFIG.get(\"backendTimeout\").toString());\n logger.info(\"Killing session...\");\n\n res.writeHeader(500, {\n \"content-type\": \"text/html\"\n });\n res.on(\"error\", () => { });\n res.write(\"<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>\");\n res.end();\n } else {\n logger.debug(\"Session was normally finishing...\");\n }\n } catch (e: any) {\n logger.debug(\"An unhandled error occurred during timeout catching...\");\n logger.debug(e.message);\n }\n server.removeListener(\"timeout\", timeoutHandler);\n\n };\n if (!res.destroyed) {\n server.setTimeout(CONFIG.get(\"backendTimeout\"), timeoutHandler);\n }\n\n if (this.request.pathname.indexOf(\".\") < 0) {\n this.request.scriptname = CONFIG.get(\"documentRootFileIndex\");\n } else {\n this.request.scriptname = this.request.pathname.split(\"/\").reverse()[0];\n }\n this.request.pathname = this.request.pathname.substr(0, this.request.pathname.lastIndexOf(\"/\"));\n\n logger.debug(PipeLog.pipe(this.request));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Backend GAE Microservices Available\");\n const routes = CONFIG.get(\"backend\").routes;\n const selectedRoute = routes.filter((route: { path: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\");\n return (new RegExp(standardRoutePath, \"g\")).test(request.path);\n });\n if (selectedRoute.length > 0) {\n selectedRoute.map((route: { path: string; microservice: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\"); //allowing {param}\n const selectedRouteParams = {\n ...[...request.path.matchAll((new RegExp(standardRoutePath, \"g\")))][0][\"groups\"]\n };\n ImportMicroservice(route.microservice);\n var microServiceClassFactory = ClassFactory(route.microservice + \".Microservice\");\n this.response = New(microServiceClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n route: route,\n routeParams: selectedRouteParams,\n server: server,\n stream: res,\n req: req,\n request: request\n });\n });\n } else {\n this.response = New(HTTPServerResponse, {\n server: server,\n stream: res,\n request: this.request\n });\n }\n\n } else {\n // ...\n\n this.response = New(HTTPServerResponse, {\n server: server,\n stream: res,\n request: this.request\n });\n\n }\n\n });\n\n }\n\n showIPAddress() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach(function (ipGroup: any) {\n _ret_ += iface + \": \" + PipeLog.pipe(ipGroup) + \"\\n\";\n });\n });\n return _ret_;\n }\n\n showPossibleURL() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach((ipGroup: any) => {\n if (ipGroup[\"family\"].toLowerCase() == \"ipv4\") {\n _ret_ += \"http://\" + ipGroup[\"address\"] + \":\" + CONFIG.get(\"serverPortHTTP\").toString() + \"/\\n\";\n }\n });\n });\n return _ret_;\n }\n\n start() {\n var server = this.server;\n server.listen(process.env.PORT || CONFIG.get(\"serverPortHTTP\"));\n }\n}\n\n\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\nconst ImportMicroservice = function (microservicePackage: string) {\n var _ret_;\n var standardPath = findPackageNodePath(microservicePackage) || findPackageNodePath(microservicePackage + \".js\");\n if (standardPath !== null) {\n _ret_ = Import(microservicePackage);\n } else {\n var nonStandardPath = findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage) || findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage + \".js\");\n if (nonStandardPath !== null) {\n _ret_ = Import(absolutePath + \"/backend/\" + microservicePackage);\n } else {\n _ret_ = Promise.resolve(async () => (await import(microservicePackage))());\n }\n }\n return _ret_;\n};\n\nclass BackendMicroservice extends InheritClass {\n domain: any;\n basePath: any;\n server: any;\n request: any;\n req: any;\n get: any;\n route: any;\n headers: any;\n body!: object;\n stream: any;\n\n constructor(o: any) {\n super(o);\n this.domain = CONFIG.get(\"domain\");\n this.basePath = CONFIG.get(\"basePath\");\n logger.debug(\"Executing GAE HTTP BackendMicroservice \");\n const microservice = this;\n const server = microservice.server;\n const request = microservice.request;\n this.cors();\n microservice.req.on(\"data\", (data: any) => {\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods: any = {\n \"post\": microservice.post.bind(this),\n };\n if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice, data);\n }\n });\n\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods: any = {\n \"get\": microservice.get.bind(this),\n \"head\": microservice.head.bind(this),\n \"put\": microservice.put.bind(this),\n \"delete\": microservice.delete.bind(this),\n \"connect\": microservice.connect.bind(this),\n \"options\": microservice.options.bind(this),\n \"trace\": microservice.trace.bind(this),\n \"patch\": microservice.patch.bind(this)\n };\n if (supportedMethods.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice);\n }\n\n\n }\n\n cors() {\n if (this.route.cors) {\n const {\n allow_origins,\n allow_credentials,\n allow_methods,\n allow_headers\n } = this.route.cors;\n var microservice = this;\n if (typeof microservice.headers !== \"object\") {\n microservice.headers = {};\n }\n if (typeof allow_origins !== \"undefined\") {\n // an example of allow_origins is ['https://example.com','http://www.example.com']\n if (allow_origins == \"*\" || (typeof microservice.request.headers.origin == \"undefined\") || [...allow_origins].indexOf(microservice.request.headers.origin) !== -1) {\n // for compatibility with all browsers allways return a wildcard when the origin is allowed\n microservice.headers[\"Access-Control-Allow-Origin\"] = \"*\";\n } else {\n logger.debug(\"Origin is not allowed: \" + microservice.request.headers.origin);\n logger.debug(\"Forcing to finish the response...\");\n this.body = {};\n try {\n this.done();\n } catch (e: any) { }\n }\n } else {\n microservice.headers[\"Access-Control-Allow-Origin\"] = \"*\";\n }\n if (typeof allow_credentials !== \"undefined\") {\n microservice.headers[\"Access-Control-Allow-Credentials\"] = allow_credentials.toString();\n } else {\n microservice.headers[\"Access-Control-Allow-Credentials\"] = \"true\";\n }\n if (typeof allow_methods !== \"undefined\") {\n microservice.headers[\"Access-Control-Allow-Methods\"] = [...allow_methods].join(\",\");\n } else {\n microservice.headers[\"Access-Control-Allow-Methods\"] = \"GET, OPTIONS, POST\";\n }\n if (typeof allow_headers !== \"undefined\") {\n microservice.headers[\"Access-Control-Allow-Headers\"] = [...allow_headers].join(\",\");\n } else {\n microservice.headers[\"Access-Control-Allow-Headers\"] = \"*\";\n }\n }\n }\n\n head(formData: any) {\n this.done();\n }\n post(formData: any) {\n this.done();\n }\n put(formData: any) {\n this.done();\n }\n delete(formData: any) {\n this.done();\n }\n connect(formData: any) {\n this.done();\n }\n options(formData: any) {\n this.done();\n }\n trace(formData: any) {\n this.done();\n }\n patch(formData: any) {\n this.done();\n }\n finishWithBody(stream: { write: (arg0: string) => void; end: () => void; }) {\n try {\n stream.write(JSON.stringify(this.body));\n stream.end();\n } catch (e: any) {\n logger.debug(\"Something wrong writing the response for microservice\" + e.toString());\n }\n }\n\n done() {\n var microservice = this;\n var stream = microservice.stream;\n try {\n stream.writeHead(200, microservice.headers);\n } catch (e: any) {\n logger.debug(\"Something went wront while sending headers in http...\");\n logger.debug(e.toString());\n }\n if (microservice.body != null) {\n microservice.finishWithBody.call(microservice, stream);\n }\n }\n\n}\n\nExport(BackendMicroservice);\n\nclass HTTPServerResponse extends InheritClass {\n body!: string;\n stream: any;\n headers: { \":status\": number; \"content-type\": string; };\n fileDispatcher: any;\n request: any;\n constructor(o: { stream: any; request: any; headers: any; fileDispatcher: any; }) {\n super(o);\n var self = this;\n self.body = \"\";\n self.request = o.request || {};\n self.stream = o.stream;\n self.headers = o.headers;\n self.fileDispatcher = o.fileDispatcher;\n\n // Initialize request properties if not set\n if (!self.request.scriptname || !self.request.pathname) {\n const defaultPath = \"/\";\n self.request.pathname = self.request.pathname || defaultPath;\n self.request.scriptname = self.request.scriptname || CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n }\n\n // Ensure documentRoot is set\n if (!CONFIG.get(\"documentRoot\")) {\n CONFIG.set(\"documentRoot\", path.join(process.cwd(), \"public\"));\n }\n\n self._generateResponse();\n this.headers = {\n \":status\": 200,\n \"content-type\": \"text/html\"\n };\n }\n\n sendFile(stream: any, fileName: string) {\n // read and send file content in the stream\n\n try {\n console.log(\"trying to read \" + fileName);\n const fd = fs.openSync(fileName, \"r\");\n const stat = fs.fstatSync(fd);\n const headers = {\n \"content-length\": stat.size,\n \"last-modified\": stat.mtime.toUTCString(),\n \"content-type\": mime.getType(fileName),\n \"cache-control\": CONFIG.get(\"cacheControl\", \"max-age=31536000\")\n };\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n stream.setHeader(\"content-length\", headers[\"content-length\"]);\n stream.setHeader(\"last-modified\", headers[\"last-modified\"]);\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"cache-control\", headers[\"cache-control\"]);\n\n // This line opens the file as a readable stream\n var readStream = fs.createReadStream(fileName);\n\n // This will wait until we know the readable stream is actually valid before piping\n readStream.on(\"open\", function () {\n // This just pipes the read stream to the response object (which goes to the client)\n readStream.pipe(stream);\n });\n\n readStream.on(\"end\", function () {\n stream.end();\n });\n\n // This catches any errors that happen while creating the readable stream (usually invalid names)\n readStream.on(\"error\", function (err: any) {\n stream.end(err);\n });\n\n } catch (e: any) {\n if (e.errno == -2) {\n const headers = {\n \":status\": 404,\n \"content-type\": \"text/html\"\n };\n stream.write(\"<h1>404 - FILE NOT FOUND</h1>\");\n stream.on(\"close\", () => {\n console.log(\"closing file\", fileName);\n });\n stream.end();\n }\n }\n }\n\n _generateResponse() {\n var response = this;\n response.fileDispatcher = New(FileDispatcher, {\n scriptname: response.request.scriptname,\n pathname: response.request.pathname,\n done(headers: any, body: any, templateURI: any, isTemplate: any) {\n response.headers = headers;\n var stream = response.stream;\n if (isTemplate) {\n logger.debug(\"TEMPLATE\");\n response.body = body;\n // stream.respond(response.headers);\n stream.write(response.body);\n stream.end();\n } else if (headers[\":status\"] == 200) {\n response.sendFile(stream, templateURI);\n } else {\n logger.debug(\"NONE \");\n // stream.respond(response.headers);\n stream.end();\n }\n }\n });\n\n }\n\n}\n\nclass HTTPServerRequest extends InheritClass {\n\n constructor({\n scriptname = \"\",\n path = \"\",\n method = \"\",\n url = \"\",\n headers = null,\n flags = null,\n protocol = null,\n slashes = null,\n auth = null,\n host = null,\n port = null,\n hostname = null,\n hash = null,\n search = \"\",\n query = \"\",\n pathname = \"\",\n href = \"\"\n }) {\n super({\n scriptname,\n path,\n method,\n url,\n headers,\n flags,\n protocol,\n slashes,\n auth,\n host,\n port,\n hostname,\n hash,\n search,\n query,\n pathname,\n href\n });\n\n }\n}\n\n\n\nPackage(\"org.quickcorp.qcobjects.main.http.gae.server\", [\n BackendMicroservice, HTTPServer, HTTPServerRequest, HTTPServerResponse\n\n]);\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["http", "request", "os", "path", "requestMethod", "supportedMethods", "fs", "mime"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/main-http-server.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * QCObjects CLI 2.4.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { findPackageNodePath, Import, Package, InheritClass, CONFIG, logger, New, global, ClassFactory, Export } from \"qcobjects\";\nimport fs from \"fs\";\nimport mime from \"mime\";\nimport http from \"http\";\nimport URL from \"url\";\nimport { FileDispatcher } from \"./main-file\";\nimport { PipeLog } from \"./common-pipelog\";\n\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\nconst ImportMicroservice = function (microservicePackage: string) {\n var _ret_;\n var standardPath = findPackageNodePath(microservicePackage) || findPackageNodePath(microservicePackage + \".js\");\n if (standardPath !== null) {\n _ret_ = Import(microservicePackage);\n } else {\n var nonStandardPath = findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage) || findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage + \".js\");\n if (nonStandardPath !== null) {\n _ret_ = Import(absolutePath + \"/backend/\" + microservicePackage);\n } else {\n _ret_ = Promise.resolve(async () => (await import(microservicePackage))());\n }\n }\n return _ret_;\n};\n\n\nclass BackendMicroservice extends InheritClass {\n body: any;\n stream: any;\n req: any;\n get: any;\n route: any;\n headers: any;\n request: any;\n constructor({\n domain = CONFIG.get(\"domain\"),\n basePath = CONFIG.get(\"basePath\"),\n body = null,\n stream = null,\n request = null\n }: { domain: string, basePath: string, body: any, stream: any, request: any }) {\n super({\n domain,\n basePath,\n body,\n stream,\n request\n });\n\n logger.debug(\"Initializing Legacy BackendMicroservice...\");\n const microservice = this;\n if (typeof this.body === \"undefined\") {\n this.body = null;\n }\n if (typeof body !== \"undefined\") {\n this.body = body;\n }\n this.cors();\n microservice.stream = stream;\n microservice.req.on(\"data\", (data: any) => {\n // data from POST, GET\n var requestMethod = request?.method.toLowerCase();\n var supportedMethods: any = {\n \"post\": microservice.post.bind(this),\n };\n if (Object.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice, data);\n }\n });\n\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods: any = {\n \"get\": microservice.get.bind(this),\n \"head\": microservice.head.bind(this),\n \"put\": microservice.put.bind(this),\n \"delete\": microservice.delete.bind(this),\n \"connect\": microservice.connect.bind(this),\n \"options\": microservice.options.bind(this),\n \"trace\": microservice.trace.bind(this),\n \"patch\": microservice.patch.bind(this)\n };\n if (Object.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice);\n }\n\n\n }\n\n cors() {\n if (this.route.cors) {\n logger.debug(\"Validating CORS...\");\n const {\n allow_origins,\n allow_credentials,\n allow_methods,\n allow_headers\n } = this.route.cors;\n var microservice = this;\n if (typeof microservice.headers !== \"object\") {\n microservice.headers = {};\n }\n if (typeof microservice.route.responseHeaders !== \"object\") {\n microservice.route.responseHeaders = {};\n }\n if (typeof allow_origins !== \"undefined\") {\n logger.debug(\"CORS: allow_origins available. Validating origins...\");\n // an example of allow_origins is ['https://example.com','http://www.example.com']\n if (allow_origins === \"*\" || (typeof microservice.request.headers.origin === \"undefined\") || [...allow_origins].indexOf(microservice.request.headers.origin) !== -1) {\n // for compatibility with all browsers allways return a wildcard when the origin is allowed\n logger.debug(\"CORS: Adding header Access-Control-Allow-Origin=*\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Origin\"] = \"*\";\n } else {\n logger.debug(\"CORS: Origin is not allowed: \" + microservice.request.headers.origin);\n logger.debug(\"CORS: Forcing to finish the response...\");\n this.body = {};\n try {\n this.done();\n } catch (e: any) {\n logger.debug(`It was not possible to finish the call to the microservice: ${e}`);\n }\n }\n } else {\n logger.debug(\"CORS: no allow_origins available. Allowing all origins...\");\n logger.debug(\"CORS: Adding header Access-Control-Allow-Origin=*\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Origin\"] = \"*\";\n }\n if (typeof allow_credentials !== \"undefined\") {\n logger.debug(`CORS: allow_credentials present. Allowing ${allow_credentials}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Credentials\"] = allow_credentials.toString();\n } else {\n logger.debug(\"CORS: No allow_credentials present. Allowing all credentials.\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Credentials\"] = \"true\";\n }\n if (typeof allow_methods !== \"undefined\") {\n logger.debug(`CORS: allow_methods present. Allowing ${allow_methods}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Methods\"] = [...allow_methods].join(\",\");\n } else {\n logger.debug(\"CORS: No allow_methods present. Allowing only GET, OPTIONS and POST\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Methods\"] = \"GET, OPTIONS, POST\";\n }\n if (typeof allow_headers !== \"undefined\") {\n logger.debug(`CORS: allow_headers present. Allowing ${allow_headers}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Headers\"] = [...allow_headers].join(\",\");\n } else {\n logger.debug(\"CORS: No allow_headers present. Allowing all headers...\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Headers\"] = \"*\";\n }\n } else {\n logger.debug(\"No CORS validation available. You can specify cors in CONFIG.backend.routes[].cors\");\n }\n }\n head(formData: any) { this.done(); }\n post(formData: any) { this.done(); }\n put(formData: any) { this.done(); }\n delete(formData: any) { this.done(); }\n connect(formData: any) { this.done(); }\n options(formData: any) { this.done(); }\n trace(formData: any) { this.done(); }\n patch(formData: any) { this.done(); }\n finishWithBody(stream: { write: (arg0: string) => void; end: () => void; }) {\n try {\n stream.write(JSON.stringify(this.body));\n stream.end();\n } catch (e: any) {\n logger.debug(`Something wrong writing the response for microservice: ${e}`);\n throw Error(e);\n }\n }\n done() {\n var microservice = this;\n var stream = microservice.stream;\n try {\n stream.writeHead(200, microservice.headers);\n } catch (e: any) {\n logger.debug(`Something went wront while sending headers in http... ${e}`);\n throw Error(e);\n }\n if (microservice.body != null) {\n microservice.finishWithBody.call(microservice, stream);\n }\n }\n\n\n\n}\n\nExport(BackendMicroservice);\n\n\nclass HTTPServerResponse extends InheritClass {\n stream!: null;\n fileDispatcher: any;\n request: any;\n headers!: { [x: string]: any; };\n body: any;\n constructor({\n headers = {\n \"status\": 200,\n \"content-type\": \"text/html\"\n },\n body = \"\",\n request = null,\n fileDispatcher = null,\n stream = null\n }) {\n super({\n headers,\n body,\n request,\n fileDispatcher,\n stream\n });\n var self = this;\n self.request = request || {};\n self.stream = stream;\n self.headers = headers;\n self.body = body;\n self.fileDispatcher = fileDispatcher;\n\n // Initialize request properties if not set\n if (!self.request.scriptname || !self.request.pathname) {\n const defaultPath = \"/\";\n self.request.pathname = self.request.pathname || defaultPath;\n self.request.scriptname = self.request.scriptname || CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n }\n\n // Ensure documentRoot is set\n if (!CONFIG.get(\"documentRoot\")) {\n CONFIG.set(\"documentRoot\", path.join(process.cwd(), \"public\"));\n }\n\n self._generateResponse();\n }\n\n sendFile(stream: any, fileName: string) {\n // read and send file content in the stream\n\n try {\n console.log(\"trying to read \" + fileName);\n const fd = fs.openSync(fileName, \"r\");\n const stat = fs.fstatSync(fd);\n const headers = {\n \"content-length\": stat.size,\n \"last-modified\": stat.mtime.toUTCString(),\n \"content-type\": mime.getType(fileName),\n \"cache-control\": CONFIG.get(\"cacheControl\", \"max-age=31536000\")\n };\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n stream.setHeader(\"content-length\", headers[\"content-length\"]);\n stream.setHeader(\"last-modified\", headers[\"last-modified\"]);\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"cache-control\", headers[\"cache-control\"]);\n\n // This line opens the file as a readable stream\n var readStream = fs.createReadStream(fileName);\n\n // This will wait until we know the readable stream is actually valid before piping\n readStream.on(\"open\", function () {\n // This just pipes the read stream to the response object (which goes to the client)\n readStream.pipe(stream);\n });\n\n readStream.on(\"end\", function () {\n stream.end();\n });\n\n // This catches any errors that happen while creating the readable stream (usually invalid names)\n readStream.on(\"error\", function (err: any) {\n const headers = {\n \"status\": 500,\n \"content-type\": mime.getType(fileName)\n };\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"status\", headers[\"status\"]);\n stream.write(`<h1>500 - INTERNAL SERVER ERROR</h1>\n <p>${err}</p>\n `);\n\n stream.end(err);\n });\n\n } catch (e: any) {\n if (e.errno == -2) {\n const headers = {\n \"status\": 404,\n \"content-type\": mime.getType(fileName)\n };\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"status\", headers[\"status\"]);\n stream.write(\"<h1>404 - FILE NOT FOUND</h1>\");\n stream.on(\"close\", () => {\n logger.debug(\"closing file \" + fileName);\n });\n stream.end();\n }\n }\n }\n _generateResponse() {\n var response = this;\n response.fileDispatcher = New(FileDispatcher, {\n scriptname: response.request.scriptname,\n pathname: response.request.pathname,\n done(headers: { [x: string]: any; }, body: any, templateURI: any, isTemplate: any) {\n response.headers = headers;\n var stream = response.stream;\n if (isTemplate) {\n response.body = body;\n Object.keys(headers).map((header) => (stream as any).setHeader(header, headers[header]));\n (stream as any).write(response.body);\n (stream as any).end();\n } else if (headers[\"status\"] == 200 || headers[\":status\"] == 200) {\n response.sendFile(stream, templateURI);\n } else {\n Object.keys(headers).map((header) => (stream as any).setHeader(header, headers[header]));\n (stream as any).end();\n }\n }\n });\n\n }\n\n}\n\nclass HTTPServerRequest extends InheritClass {\n constructor({\n scriptname = \"\",\n path = \"\",\n method = \"\",\n url = \"\",\n headers = null,\n flags = null,\n protocol = null,\n slashes = null,\n auth = null,\n host = null,\n port = null,\n hostname = null,\n hash = null,\n search = \"\",\n query = \"\",\n pathname = \"\",\n href = \"\"\n }) {\n super({\n scriptname,\n path,\n method,\n url,\n headers,\n flags,\n protocol,\n slashes,\n auth,\n host,\n port,\n hostname,\n hash,\n search,\n query,\n pathname,\n href\n });\n }\n}\n\nexport class HTTPServer extends InheritClass {\n interceptorInstances: never[];\n server: any;\n request: any;\n response: any;\n constructor({\n request = null,\n response = \"\",\n server = null,\n scriptname = \"\",\n interceptorInstances = []\n }) {\n super({\n request,\n response,\n server,\n scriptname,\n interceptorInstances\n });\n\n const welcometo = \"Welcome to \\n\";\n const instructions = \"QCObjects Legacy HTTPServer \\n\";\n const logo = \" .d88888b. .d8888b. .d88888b. 888 d8b 888 \\r\\nd88P\\\" \\\"Y88bd88P Y88bd88P\\\" \\\"Y88b888 Y8P 888 \\r\\n888 888888 888888 888888 888 \\r\\n888 888888 888 88888888b. 8888 .d88b. .d8888b888888.d8888b \\r\\n888 888888 888 888888 \\\"88b \\\"888d8P Y8bd88P\\\" 888 88K \\r\\n888 Y8b 888888 888888 888888 888 88888888888888 888 \\\"Y8888b. \\r\\nY88b.Y8b88PY88b d88PY88b. .d88P888 d88P 888Y8b. Y88b. Y88b. X88 \\r\\n \\\"Y888888\\\" \\\"Y8888P\\\" \\\"Y88888P\\\" 88888P\\\" 888 \\\"Y8888 \\\"Y8888P \\\"Y888 88888P' \\r\\n Y8b 888 \\r\\n d88P \\r\\n 888P\\\" \";\n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n logger.debug(this.showIPAddress());\n logger.info(\"Listening on HTTP PORT: \" + CONFIG.get(\"serverPortHTTP\").toString());\n logger.info(\"Go to: \\n\" + this.showPossibleURL());\n this.interceptorInstances = interceptorInstances;\n\n this.server = http.createServer((req: any, res: any) => {\n logger.debug(\"Legacy Server Instantiated.\");\n });\n\n this.server.on(\"error\", (err: any) => console.error(err));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Loading backend interceptors...\");\n const interceptors = CONFIG.get(\"backend\", {}).interceptors;\n if (typeof interceptors !== \"undefined\") {\n logger.info(\"Backend Interceptors Available\");\n interceptors.map((interceptor: { microservice: string; }) => {\n ImportMicroservice(interceptor.microservice);\n var interceptorClassFactory = ClassFactory(interceptor.microservice + \".Interceptor\");\n var interceptorInstance = New(interceptorClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n interceptor: interceptor,\n server: this.server\n });\n this.interceptorInstances.push(interceptorInstance as never);\n });\n }\n }\n\n this.server.on(\"request\", (req: { url: any; headers: any; method: any; }, res: { destroyed: any; writeHeader: (arg0: number, arg1: { \"content-type\": string; }) => void; on: (arg0: string, arg1: () => void) => void; write: (arg0: string) => void; end: () => void; }) => {\n\n const request = Object.assign(New(HTTPServerRequest), URL.parse(req.url));\n request.headers = req.headers;\n this.request = request;\n this.request.method = req.method;\n this.request.path = req.url;\n this.server.setMaxListeners(9999999999);\n CONFIG.set(\"backendTimeout\", CONFIG.get(\"backendTimeout\") || 20000);\n var timeoutHandler = () => {\n // end the stream on timeout\n try {\n if (!res.destroyed) {\n logger.info(\"A timeout occurred...\" + CONFIG.get(\"backendTimeout\").toString());\n logger.info(\"Killing session...\");\n\n res.writeHeader(500, {\n \"content-type\": \"text/html\"\n });\n res.on(\"error\", () => { });\n res.write(\"<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>\");\n res.end();\n } else {\n logger.debug(\"Session was normally finishing...\");\n }\n } catch (e: any) {\n logger.debug(`An unhandled error occurred during timeout catching: ${e}`);\n }\n this.server.removeListener(\"timeout\", timeoutHandler);\n\n };\n if (!res.destroyed) {\n this.server.setTimeout(CONFIG.get(\"backendTimeout\"), timeoutHandler);\n }\n\n if (this.request.pathname.indexOf(\".\") < 0) {\n this.request.scriptname = CONFIG.get(\"documentRootFileIndex\");\n } else {\n this.request.scriptname = this.request.pathname.split(\"/\").reverse()[0];\n }\n this.request.pathname = this.request.pathname.substr(0, this.request.pathname.lastIndexOf(\"/\"));\n\n logger.debug(PipeLog.pipe(this.request));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Backend Legacy Microservices Available...\");\n\n logger.info(\"Loading backend routes...\");\n const routes = CONFIG.get(\"backend\", {}).routes;\n const selectedRoute = routes.filter((route: { path: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\");\n return (new RegExp(standardRoutePath, \"g\")).test(request.path);\n });\n if (selectedRoute.length > 0) {\n selectedRoute.map((route: { path: string; microservice: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\"); //allowing {param}\n console.log(standardRoutePath);\n const selectedRouteParams = {\n ...[...request.path.matchAll((new RegExp(standardRoutePath, \"g\")))][0][\"groups\"]\n };\n ImportMicroservice(route.microservice).then(() => {\n logger.debug(`Trying to execute ${route.microservice + \".Microservice\"}...`);\n var microServiceClassFactory = ClassFactory(route.microservice + \".Microservice\");\n if (typeof microServiceClassFactory !== \"undefined\") {\n const server = this.server;\n this.response = New(microServiceClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n route: route,\n routeParams: selectedRouteParams,\n server: server,\n stream: res,\n req: req,\n request: request\n });\n\n } else {\n throw Error(`${route.microservice + \".Microservice\"} not defined.`);\n }\n }).catch((e: string | undefined) => {\n throw Error(e);\n });\n });\n } else {\n this.response = New(HTTPServerResponse, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n server: this.server,\n stream: res,\n req: req,\n request: this.request\n });\n }\n\n } else {\n // ...\n\n this.response = New(HTTPServerResponse, {\n server: this.server,\n stream: res,\n req: req,\n request: this.request\n });\n\n }\n\n });\n\n }\n\n\n showIPAddress() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach(function (ipGroup: any) {\n _ret_ += iface + \": \" + PipeLog.pipe(ipGroup) + \"\\n\";\n });\n });\n return _ret_;\n }\n showPossibleURL() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach(function (ipGroup: any) {\n if (ipGroup[\"family\"].toLowerCase() == \"ipv4\") {\n _ret_ += \"http://\" + ipGroup[\"address\"] + \":\" + CONFIG.get(\"serverPortHTTP\").toString() + \"/\\n\";\n }\n });\n });\n return _ret_;\n }\n start() {\n var server = this.server;\n server.listen(process.env.PORT || CONFIG.get(\"serverPortHTTP\"));\n }\n\n}\n\n\nPackage(\"org.quickcorp.qcobjects.main.http.server\", [\n BackendMicroservice,\n HTTPServer,\n HTTPServerRequest,\n HTTPServerResponse\n]);\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * QCObjects CLI 2.5\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { findPackageNodePath, Import, Package, InheritClass, CONFIG, logger, New, global, ClassFactory, Export } from \"qcobjects\";\nimport fs from \"fs\";\nimport mime from \"mime\";\nimport http from \"http\";\nimport URL from \"url\";\nimport { FileDispatcher } from \"./main-file\";\nimport { PipeLog } from \"./common-pipelog\";\n\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\nconst ImportMicroservice = function (microservicePackage: string) {\n var _ret_;\n var standardPath = findPackageNodePath(microservicePackage) || findPackageNodePath(microservicePackage + \".js\");\n if (standardPath !== null) {\n _ret_ = Import(microservicePackage);\n } else {\n var nonStandardPath = findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage) || findPackageNodePath(absolutePath + \"/backend/\" + microservicePackage + \".js\");\n if (nonStandardPath !== null) {\n _ret_ = Import(absolutePath + \"/backend/\" + microservicePackage);\n } else {\n _ret_ = Promise.resolve(async () => (await import(microservicePackage))());\n }\n }\n return _ret_;\n};\n\n\nclass BackendMicroservice extends InheritClass {\n body: any;\n stream: any;\n req: any;\n get: any;\n route: any;\n headers: any;\n request: any;\n constructor({\n domain = CONFIG.get(\"domain\"),\n basePath = CONFIG.get(\"basePath\"),\n body = null,\n stream = null,\n request = null\n }: { domain: string, basePath: string, body: any, stream: any, request: any }) {\n super({\n domain,\n basePath,\n body,\n stream,\n request\n });\n\n logger.debug(\"Initializing Legacy BackendMicroservice...\");\n const microservice = this;\n if (typeof this.body === \"undefined\") {\n this.body = null;\n }\n if (typeof body !== \"undefined\") {\n this.body = body;\n }\n this.cors();\n microservice.stream = stream;\n microservice.req.on(\"data\", (data: any) => {\n // data from POST, GET\n var requestMethod = request?.method.toLowerCase();\n var supportedMethods: any = {\n \"post\": microservice.post.bind(this),\n };\n if (Object.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice, data);\n }\n });\n\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods: any = {\n \"get\": microservice.get.bind(this),\n \"head\": microservice.head.bind(this),\n \"put\": microservice.put.bind(this),\n \"delete\": microservice.delete.bind(this),\n \"connect\": microservice.connect.bind(this),\n \"options\": microservice.options.bind(this),\n \"trace\": microservice.trace.bind(this),\n \"patch\": microservice.patch.bind(this)\n };\n if (Object.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice);\n }\n\n\n }\n\n cors() {\n if (this.route.cors) {\n logger.debug(\"Validating CORS...\");\n const {\n allow_origins,\n allow_credentials,\n allow_methods,\n allow_headers\n } = this.route.cors;\n var microservice = this;\n if (typeof microservice.headers !== \"object\") {\n microservice.headers = {};\n }\n if (typeof microservice.route.responseHeaders !== \"object\") {\n microservice.route.responseHeaders = {};\n }\n if (typeof allow_origins !== \"undefined\") {\n logger.debug(\"CORS: allow_origins available. Validating origins...\");\n // an example of allow_origins is ['https://example.com','http://www.example.com']\n if (allow_origins === \"*\" || (typeof microservice.request.headers.origin === \"undefined\") || [...allow_origins].indexOf(microservice.request.headers.origin) !== -1) {\n // for compatibility with all browsers allways return a wildcard when the origin is allowed\n logger.debug(\"CORS: Adding header Access-Control-Allow-Origin=*\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Origin\"] = \"*\";\n } else {\n logger.debug(\"CORS: Origin is not allowed: \" + microservice.request.headers.origin);\n logger.debug(\"CORS: Forcing to finish the response...\");\n this.body = {};\n try {\n this.done();\n } catch (e: any) {\n logger.debug(`It was not possible to finish the call to the microservice: ${e}`);\n }\n }\n } else {\n logger.debug(\"CORS: no allow_origins available. Allowing all origins...\");\n logger.debug(\"CORS: Adding header Access-Control-Allow-Origin=*\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Origin\"] = \"*\";\n }\n if (typeof allow_credentials !== \"undefined\") {\n logger.debug(`CORS: allow_credentials present. Allowing ${allow_credentials}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Credentials\"] = allow_credentials.toString();\n } else {\n logger.debug(\"CORS: No allow_credentials present. Allowing all credentials.\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Credentials\"] = \"true\";\n }\n if (typeof allow_methods !== \"undefined\") {\n logger.debug(`CORS: allow_methods present. Allowing ${allow_methods}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Methods\"] = [...allow_methods].join(\",\");\n } else {\n logger.debug(\"CORS: No allow_methods present. Allowing only GET, OPTIONS and POST\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Methods\"] = \"GET, OPTIONS, POST\";\n }\n if (typeof allow_headers !== \"undefined\") {\n logger.debug(`CORS: allow_headers present. Allowing ${allow_headers}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Headers\"] = [...allow_headers].join(\",\");\n } else {\n logger.debug(\"CORS: No allow_headers present. Allowing all headers...\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Headers\"] = \"*\";\n }\n } else {\n logger.debug(\"No CORS validation available. You can specify cors in CONFIG.backend.routes[].cors\");\n }\n }\n head(formData: any) { this.done(); }\n post(formData: any) { this.done(); }\n put(formData: any) { this.done(); }\n delete(formData: any) { this.done(); }\n connect(formData: any) { this.done(); }\n options(formData: any) { this.done(); }\n trace(formData: any) { this.done(); }\n patch(formData: any) { this.done(); }\n finishWithBody(stream: { write: (arg0: string) => void; end: () => void; }) {\n try {\n stream.write(JSON.stringify(this.body));\n stream.end();\n } catch (e: any) {\n logger.debug(`Something wrong writing the response for microservice: ${e}`);\n throw Error(e);\n }\n }\n done() {\n var microservice = this;\n var stream = microservice.stream;\n try {\n stream.writeHead(200, microservice.headers);\n } catch (e: any) {\n logger.debug(`Something went wront while sending headers in http... ${e}`);\n throw Error(e);\n }\n if (microservice.body != null) {\n microservice.finishWithBody.call(microservice, stream);\n }\n }\n\n\n\n}\n\nExport(BackendMicroservice);\n\n\nclass HTTPServerResponse extends InheritClass {\n stream!: null;\n fileDispatcher: any;\n request: any;\n headers!: { [x: string]: any; };\n body: any;\n constructor({\n headers = {\n \"status\": 200,\n \"content-type\": \"text/html\"\n },\n body = \"\",\n request = null,\n fileDispatcher = null,\n stream = null\n }) {\n super({\n headers,\n body,\n request,\n fileDispatcher,\n stream\n });\n var self = this;\n self.request = request || {};\n self.stream = stream;\n self.headers = headers;\n self.body = body;\n self.fileDispatcher = fileDispatcher;\n\n // Initialize request properties if not set\n if (!self.request.scriptname || !self.request.pathname) {\n const defaultPath = \"/\";\n self.request.pathname = self.request.pathname || defaultPath;\n self.request.scriptname = self.request.scriptname || CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n }\n\n // Ensure documentRoot is set\n if (!CONFIG.get(\"documentRoot\")) {\n CONFIG.set(\"documentRoot\", path.join(process.cwd(), \"public\"));\n }\n\n self._generateResponse();\n }\n\n sendFile(stream: any, fileName: string) {\n // read and send file content in the stream\n\n try {\n console.log(\"trying to read \" + fileName);\n const fd = fs.openSync(fileName, \"r\");\n const stat = fs.fstatSync(fd);\n const headers = {\n \"content-length\": stat.size,\n \"last-modified\": stat.mtime.toUTCString(),\n \"content-type\": mime.getType(fileName),\n \"cache-control\": CONFIG.get(\"cacheControl\", \"max-age=31536000\")\n };\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n stream.setHeader(\"content-length\", headers[\"content-length\"]);\n stream.setHeader(\"last-modified\", headers[\"last-modified\"]);\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"cache-control\", headers[\"cache-control\"]);\n\n // This line opens the file as a readable stream\n var readStream = fs.createReadStream(fileName);\n\n // This will wait until we know the readable stream is actually valid before piping\n readStream.on(\"open\", function () {\n // This just pipes the read stream to the response object (which goes to the client)\n readStream.pipe(stream);\n });\n\n readStream.on(\"end\", function () {\n stream.end();\n });\n\n // This catches any errors that happen while creating the readable stream (usually invalid names)\n readStream.on(\"error\", function (err: any) {\n const headers = {\n \"status\": 500,\n \"content-type\": mime.getType(fileName)\n };\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"status\", headers[\"status\"]);\n stream.write(`<h1>500 - INTERNAL SERVER ERROR</h1>\n <p>${err}</p>\n `);\n\n stream.end(err);\n });\n\n } catch (e: any) {\n if (e.errno == -2) {\n const headers = {\n \"status\": 404,\n \"content-type\": mime.getType(fileName)\n };\n stream.setHeader(\"content-type\", headers[\"content-type\"]);\n stream.setHeader(\"status\", headers[\"status\"]);\n stream.write(\"<h1>404 - FILE NOT FOUND</h1>\");\n stream.on(\"close\", () => {\n logger.debug(\"closing file \" + fileName);\n });\n stream.end();\n }\n }\n }\n _generateResponse() {\n var response = this;\n response.fileDispatcher = New(FileDispatcher, {\n scriptname: response.request.scriptname,\n pathname: response.request.pathname,\n done(headers: { [x: string]: any; }, body: any, templateURI: any, isTemplate: any) {\n response.headers = headers;\n var stream = response.stream;\n if (isTemplate) {\n response.body = body;\n Object.keys(headers).map((header) => (stream as any).setHeader(header, headers[header]));\n (stream as any).write(response.body);\n (stream as any).end();\n } else if (headers[\"status\"] == 200 || headers[\":status\"] == 200) {\n response.sendFile(stream, templateURI);\n } else {\n Object.keys(headers).map((header) => (stream as any).setHeader(header, headers[header]));\n (stream as any).end();\n }\n }\n });\n\n }\n\n}\n\nclass HTTPServerRequest extends InheritClass {\n constructor({\n scriptname = \"\",\n path = \"\",\n method = \"\",\n url = \"\",\n headers = null,\n flags = null,\n protocol = null,\n slashes = null,\n auth = null,\n host = null,\n port = null,\n hostname = null,\n hash = null,\n search = \"\",\n query = \"\",\n pathname = \"\",\n href = \"\"\n }) {\n super({\n scriptname,\n path,\n method,\n url,\n headers,\n flags,\n protocol,\n slashes,\n auth,\n host,\n port,\n hostname,\n hash,\n search,\n query,\n pathname,\n href\n });\n }\n}\n\nexport class HTTPServer extends InheritClass {\n interceptorInstances: never[];\n server: any;\n request: any;\n response: any;\n constructor({\n request = null,\n response = \"\",\n server = null,\n scriptname = \"\",\n interceptorInstances = []\n }) {\n super({\n request,\n response,\n server,\n scriptname,\n interceptorInstances\n });\n\n const welcometo = \"Welcome to \\n\";\n const instructions = \"QCObjects Legacy HTTPServer \\n\";\n const logo = \" .d88888b. .d8888b. .d88888b. 888 d8b 888 \\r\\nd88P\\\" \\\"Y88bd88P Y88bd88P\\\" \\\"Y88b888 Y8P 888 \\r\\n888 888888 888888 888888 888 \\r\\n888 888888 888 88888888b. 8888 .d88b. .d8888b888888.d8888b \\r\\n888 888888 888 888888 \\\"88b \\\"888d8P Y8bd88P\\\" 888 88K \\r\\n888 Y8b 888888 888888 888888 888 88888888888888 888 \\\"Y8888b. \\r\\nY88b.Y8b88PY88b d88PY88b. .d88P888 d88P 888Y8b. Y88b. Y88b. X88 \\r\\n \\\"Y888888\\\" \\\"Y8888P\\\" \\\"Y88888P\\\" 88888P\\\" 888 \\\"Y8888 \\\"Y8888P \\\"Y888 88888P' \\r\\n Y8b 888 \\r\\n d88P \\r\\n 888P\\\" \";\n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n logger.debug(this.showIPAddress());\n logger.info(\"Listening on HTTP PORT: \" + CONFIG.get(\"serverPortHTTP\").toString());\n logger.info(\"Go to: \\n\" + this.showPossibleURL());\n this.interceptorInstances = interceptorInstances;\n\n this.server = http.createServer((req: any, res: any) => {\n logger.debug(\"Legacy Server Instantiated.\");\n });\n\n this.server.on(\"error\", (err: any) => console.error(err));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Loading backend interceptors...\");\n const interceptors = CONFIG.get(\"backend\", {}).interceptors;\n if (typeof interceptors !== \"undefined\") {\n logger.info(\"Backend Interceptors Available\");\n interceptors.map((interceptor: { microservice: string; }) => {\n ImportMicroservice(interceptor.microservice);\n var interceptorClassFactory = ClassFactory(interceptor.microservice + \".Interceptor\");\n var interceptorInstance = New(interceptorClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n interceptor: interceptor,\n server: this.server\n });\n this.interceptorInstances.push(interceptorInstance as never);\n });\n }\n }\n\n this.server.on(\"request\", (req: { url: any; headers: any; method: any; }, res: { destroyed: any; writeHeader: (arg0: number, arg1: { \"content-type\": string; }) => void; on: (arg0: string, arg1: () => void) => void; write: (arg0: string) => void; end: () => void; }) => {\n\n const request = Object.assign(New(HTTPServerRequest), URL.parse(req.url));\n request.headers = req.headers;\n this.request = request;\n this.request.method = req.method;\n this.request.path = req.url;\n this.server.setMaxListeners(9999999999);\n CONFIG.set(\"backendTimeout\", CONFIG.get(\"backendTimeout\") || 20000);\n var timeoutHandler = () => {\n // end the stream on timeout\n try {\n if (!res.destroyed) {\n logger.info(\"A timeout occurred...\" + CONFIG.get(\"backendTimeout\").toString());\n logger.info(\"Killing session...\");\n\n res.writeHeader(500, {\n \"content-type\": \"text/html\"\n });\n res.on(\"error\", () => { });\n res.write(\"<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>\");\n res.end();\n } else {\n logger.debug(\"Session was normally finishing...\");\n }\n } catch (e: any) {\n logger.debug(`An unhandled error occurred during timeout catching: ${e}`);\n }\n this.server.removeListener(\"timeout\", timeoutHandler);\n\n };\n if (!res.destroyed) {\n this.server.setTimeout(CONFIG.get(\"backendTimeout\"), timeoutHandler);\n }\n\n if (this.request.pathname.indexOf(\".\") < 0) {\n this.request.scriptname = CONFIG.get(\"documentRootFileIndex\");\n } else {\n this.request.scriptname = this.request.pathname.split(\"/\").reverse()[0];\n }\n this.request.pathname = this.request.pathname.substr(0, this.request.pathname.lastIndexOf(\"/\"));\n\n logger.debug(PipeLog.pipe(this.request));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Backend Legacy Microservices Available...\");\n\n logger.info(\"Loading backend routes...\");\n const routes = CONFIG.get(\"backend\", {}).routes;\n const selectedRoute = routes.filter((route: { path: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\");\n return (new RegExp(standardRoutePath, \"g\")).test(request.path);\n });\n if (selectedRoute.length > 0) {\n selectedRoute.map((route: { path: string; microservice: string; }) => {\n const standardRoutePath = route.path.replace(/{(.*?)}/g, \"(?<$1>.*)\"); //allowing {param}\n console.log(standardRoutePath);\n const selectedRouteParams = {\n ...[...request.path.matchAll((new RegExp(standardRoutePath, \"g\")))][0][\"groups\"]\n };\n ImportMicroservice(route.microservice).then(() => {\n logger.debug(`Trying to execute ${route.microservice + \".Microservice\"}...`);\n var microServiceClassFactory = ClassFactory(route.microservice + \".Microservice\");\n if (typeof microServiceClassFactory !== \"undefined\") {\n const server = this.server;\n this.response = New(microServiceClassFactory, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n route: route,\n routeParams: selectedRouteParams,\n server: server,\n stream: res,\n req: req,\n request: request\n });\n\n } else {\n throw Error(`${route.microservice + \".Microservice\"} not defined.`);\n }\n }).catch((e: string | undefined) => {\n throw Error(e);\n });\n });\n } else {\n this.response = New(HTTPServerResponse, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n server: this.server,\n stream: res,\n req: req,\n request: this.request\n });\n }\n\n } else {\n // ...\n\n this.response = New(HTTPServerResponse, {\n server: this.server,\n stream: res,\n req: req,\n request: this.request\n });\n\n }\n\n });\n\n }\n\n\n showIPAddress() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach(function (ipGroup: any) {\n _ret_ += iface + \": \" + PipeLog.pipe(ipGroup) + \"\\n\";\n });\n });\n return _ret_;\n }\n showPossibleURL() {\n var _ret_ = \"\";\n var ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach(function (iface) {\n ifaces[iface]?.forEach(function (ipGroup: any) {\n if (ipGroup[\"family\"].toLowerCase() == \"ipv4\") {\n _ret_ += \"http://\" + ipGroup[\"address\"] + \":\" + CONFIG.get(\"serverPortHTTP\").toString() + \"/\\n\";\n }\n });\n });\n return _ret_;\n }\n start() {\n var server = this.server;\n server.listen(process.env.PORT || CONFIG.get(\"serverPortHTTP\"));\n }\n\n}\n\n\nPackage(\"org.quickcorp.qcobjects.main.http.server\", [\n BackendMicroservice,\n HTTPServer,\n HTTPServerRequest,\n HTTPServerResponse\n]);\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["path", "requestMethod", "supportedMethods", "fs", "mime", "headers", "http", "request", "URL", "server", "os"]
|
|
7
7
|
}
|