qcobjects-cli 2.5.157 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  2. package/.github/ISSUE_TEMPLATE/custom.md +0 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  4. package/.github/ISSUE_TEMPLATE/issue-template.md +0 -0
  5. package/.github/workflows/ci.yml +2 -2
  6. package/.github/workflows/npmpublish.yml +6 -4
  7. package/CHANGELOG.md +9 -0
  8. package/LICENSE.txt +21 -0
  9. package/README.md +6 -1
  10. package/VERSION +1 -1
  11. package/package.json +12 -12
  12. package/public/browser/templates/pwa/sw.js +2 -11
  13. package/public/cjs/api-client_services.js +3 -12
  14. package/public/cjs/api-client_services.js.map +1 -1
  15. package/public/cjs/backend/backend-microservice-static.js +3 -12
  16. package/public/cjs/backend/backend-microservice-static.js.map +1 -1
  17. package/public/cjs/backend/backend-php.js +3 -12
  18. package/public/cjs/backend/backend-php.js.map +1 -1
  19. package/public/cjs/cli-commands-build-esbuild.js +3 -12
  20. package/public/cjs/cli-commands-build-esbuild.js.map +1 -1
  21. package/public/cjs/cli-commands-build-typescript.js +3 -12
  22. package/public/cjs/cli-commands-build-typescript.js.map +1 -1
  23. package/public/cjs/cli-commands-jira.js +3 -12
  24. package/public/cjs/cli-commands-jira.js.map +1 -1
  25. package/public/cjs/cli-commands-publish-static.js +3 -12
  26. package/public/cjs/cli-commands-publish-static.js.map +1 -1
  27. package/public/cjs/cli-commands-version.js +3 -12
  28. package/public/cjs/cli-commands-version.js.map +1 -1
  29. package/public/cjs/cli-commands.js +3 -12
  30. package/public/cjs/cli-commands.js.map +1 -1
  31. package/public/cjs/cli-main.js +45 -46
  32. package/public/cjs/cli-main.js.map +1 -1
  33. package/public/cjs/client_services.js +3 -12
  34. package/public/cjs/client_services.js.map +1 -1
  35. package/public/cjs/collab-server.js +3 -12
  36. package/public/cjs/collab-server.js.map +1 -1
  37. package/public/cjs/common-pipelog.js +3 -12
  38. package/public/cjs/common-pipelog.js.map +1 -1
  39. package/public/cjs/defaultsettings.js +3 -12
  40. package/public/cjs/defaultsettings.js.map +1 -1
  41. package/public/cjs/enterprise-commands.js +3 -12
  42. package/public/cjs/enterprise-commands.js.map +1 -1
  43. package/public/cjs/main-file.js +3 -12
  44. package/public/cjs/main-file.js.map +1 -1
  45. package/public/cjs/main-http-gae-server.js +3 -12
  46. package/public/cjs/main-http-gae-server.js.map +1 -1
  47. package/public/cjs/main-http-server.js +3 -12
  48. package/public/cjs/main-http-server.js.map +1 -1
  49. package/public/cjs/main-http2-server.js +3 -12
  50. package/public/cjs/main-http2-server.js.map +1 -1
  51. package/public/cjs/qcobjects-cli.js +3 -12
  52. package/public/cjs/qcobjects-cli.js.map +1 -1
  53. package/public/cjs/qcobjects-collab.js +3 -12
  54. package/public/cjs/qcobjects-collab.js.map +1 -1
  55. package/public/cjs/qcobjects-createcert.js +3 -12
  56. package/public/cjs/qcobjects-createcert.js.map +1 -1
  57. package/public/cjs/qcobjects-gae-http-server.js +3 -12
  58. package/public/cjs/qcobjects-gae-http-server.js.map +1 -1
  59. package/public/cjs/qcobjects-http-server.js +3 -12
  60. package/public/cjs/qcobjects-http-server.js.map +1 -1
  61. package/public/cjs/qcobjects-http2-server.js +3 -12
  62. package/public/cjs/qcobjects-http2-server.js.map +1 -1
  63. package/public/cjs/qcobjects-shell.js +3 -12
  64. package/public/cjs/qcobjects-shell.js.map +1 -1
  65. package/public/cjs/templates/pwa/sw.js +2 -11
  66. package/public/esm/api-client_services.mjs.map +2 -2
  67. package/public/esm/backend/backend-microservice-static.mjs.map +2 -2
  68. package/public/esm/backend/backend-php.mjs +5 -1
  69. package/public/esm/backend/backend-php.mjs.map +2 -2
  70. package/public/esm/cli-commands-build-esbuild.mjs.map +2 -2
  71. package/public/esm/cli-commands-build-typescript.mjs.map +2 -2
  72. package/public/esm/cli-commands-jira.mjs.map +2 -2
  73. package/public/esm/cli-commands-publish-static.mjs.map +2 -2
  74. package/public/esm/cli-commands-version.mjs +3 -3
  75. package/public/esm/cli-commands-version.mjs.map +2 -2
  76. package/public/esm/cli-commands.mjs.map +2 -2
  77. package/public/esm/cli-main.mjs +39 -32
  78. package/public/esm/cli-main.mjs.map +2 -2
  79. package/public/esm/client_services.mjs.map +2 -2
  80. package/public/esm/collab-server.mjs.map +2 -2
  81. package/public/esm/common-pipelog.mjs.map +2 -2
  82. package/public/esm/defaultsettings.mjs +25 -11
  83. package/public/esm/defaultsettings.mjs.map +2 -2
  84. package/public/esm/enterprise-commands.mjs.map +2 -2
  85. package/public/esm/main-file.mjs +2 -2
  86. package/public/esm/main-file.mjs.map +2 -2
  87. package/public/esm/main-http-gae-server.mjs.map +2 -2
  88. package/public/esm/main-http-server.mjs.map +2 -2
  89. package/public/esm/main-http2-server.mjs.map +2 -2
  90. package/public/esm/qcobjects-cli.mjs.map +2 -2
  91. package/public/esm/qcobjects-collab.mjs.map +2 -2
  92. package/public/esm/qcobjects-createcert.mjs.map +2 -2
  93. package/public/esm/qcobjects-gae-http-server.mjs.map +2 -2
  94. package/public/esm/qcobjects-http-server.mjs.map +2 -2
  95. package/public/esm/qcobjects-http2-server.mjs.map +2 -2
  96. package/public/esm/qcobjects-shell.mjs +5 -1
  97. package/public/esm/qcobjects-shell.mjs.map +2 -2
  98. package/public/esm/templates/pwa/sw.js +2 -11
  99. package/public/types/index.d.ts +9 -25
  100. package/src/api-client_services.ts +3 -12
  101. package/src/backend/backend-microservice-static.ts +3 -12
  102. package/src/backend/backend-php.ts +3 -12
  103. package/src/cli-commands-build-esbuild.ts +3 -12
  104. package/src/cli-commands-build-typescript.ts +3 -12
  105. package/src/cli-commands-jira.ts +3 -12
  106. package/src/cli-commands-publish-static.ts +3 -12
  107. package/src/cli-commands-version.ts +3 -12
  108. package/src/cli-commands.ts +3 -12
  109. package/src/cli-main.ts +21 -21
  110. package/src/client_services.ts +3 -12
  111. package/src/collab-server.ts +3 -12
  112. package/src/common-pipelog.ts +3 -12
  113. package/src/defaultsettings.ts +3 -12
  114. package/src/enterprise-commands.ts +3 -12
  115. package/src/main-file.ts +3 -12
  116. package/src/main-http-gae-server.ts +3 -12
  117. package/src/main-http-server.ts +3 -12
  118. package/src/main-http2-server.ts +3 -12
  119. package/src/qcobjects-cli.ts +3 -12
  120. package/src/qcobjects-collab.ts +3 -12
  121. package/src/qcobjects-createcert.ts +3 -12
  122. package/src/qcobjects-gae-http-server.ts +3 -12
  123. package/src/qcobjects-http-server.ts +3 -12
  124. package/src/qcobjects-http2-server.ts +3 -12
  125. package/src/qcobjects-shell.ts +3 -12
  126. package/src/templates/pwa/sw.js +2 -11
  127. package/bin/qcobjects-cli.js +0 -39
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/main-http-server.ts"],
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
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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
+ "mappings": ";;AAsBA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,qBAAqB,QAAQ,SAAS,cAAc,QAAQ,QAAQ,KAAK,QAAQ,cAAc,cAAc;AACtH,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,SAAS;AAChB,SAAS,sBAAsB;AAC/B,SAAS,eAAe;AAGxB,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAEjD,MAAM,qBAAqB,gCAAU,qBAA6B;AAChE,MAAI;AACJ,MAAI,eAAe,oBAAoB,mBAAmB,KAAK,oBAAoB,sBAAsB,KAAK;AAC9G,MAAI,iBAAiB,MAAM;AACzB,YAAQ,OAAO,mBAAmB;AAAA,EACpC,OAAO;AACL,QAAI,kBAAkB,oBAAoB,eAAe,cAAc,mBAAmB,KAAK,oBAAoB,eAAe,cAAc,sBAAsB,KAAK;AAC3K,QAAI,oBAAoB,MAAM;AAC5B,cAAQ,OAAO,eAAe,cAAc,mBAAmB;AAAA,IACjE,OAAO;AACL,cAAQ,QAAQ,QAAQ,aAAa,MAAM,OAAO,sBAAsB,CAAC;AAAA,IAC3E;AAAA,EACF;AACA,SAAO;AACT,GAd2B;AAiB3B,MAAM,4BAA4B,aAAa;AAAA,EApD/C,OAoD+C;AAAA;AAAA;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,IACV,SAAS,OAAO,IAAI,QAAQ;AAAA,IAC5B,WAAW,OAAO,IAAI,UAAU;AAAA,IAChC,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,EACZ,GAA+E;AAC7E,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO,MAAM,4CAA4C;AACzD,UAAM,eAAe;AACrB,QAAI,OAAO,KAAK,SAAS,aAAa;AACpC,WAAK,OAAO;AAAA,IACd;AACA,QAAI,OAAO,SAAS,aAAa;AAC/B,WAAK,OAAO;AAAA,IACd;AACA,SAAK,KAAK;AACV,iBAAa,SAAS;AACtB,iBAAa,IAAI,GAAG,QAAQ,CAAC,SAAc;AAEzC,UAAIA,iBAAgB,SAAS,OAAO,YAAY;AAChD,UAAIC,oBAAwB;AAAA,QAC1B,QAAQ,aAAa,KAAK,KAAK,IAAI;AAAA,MACrC;AACA,UAAI,OAAO,eAAe,KAAKA,mBAAkBD,cAAa,GAAG;AAC/D,QAAAC,kBAAiBD,cAAa,EAAE,KAAK,cAAc,IAAI;AAAA,MACzD;AAAA,IACF,CAAC;AAGD,QAAI,gBAAgB,QAAQ,OAAO,YAAY;AAC/C,QAAI,mBAAwB;AAAA,MAC1B,OAAO,aAAa,IAAI,KAAK,IAAI;AAAA,MACjC,QAAQ,aAAa,KAAK,KAAK,IAAI;AAAA,MACnC,OAAO,aAAa,IAAI,KAAK,IAAI;AAAA,MACjC,UAAU,aAAa,OAAO,KAAK,IAAI;AAAA,MACvC,WAAW,aAAa,QAAQ,KAAK,IAAI;AAAA,MACzC,WAAW,aAAa,QAAQ,KAAK,IAAI;AAAA,MACzC,SAAS,aAAa,MAAM,KAAK,IAAI;AAAA,MACrC,SAAS,aAAa,MAAM,KAAK,IAAI;AAAA,IACvC;AACA,QAAI,OAAO,eAAe,KAAK,kBAAkB,aAAa,GAAG;AAC/D,uBAAiB,aAAa,EAAE,KAAK,YAAY;AAAA,IACnD;AAAA,EAGF;AAAA,EAEA,OAAO;AACL,QAAI,KAAK,MAAM,MAAM;AACnB,aAAO,MAAM,oBAAoB;AACjC,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,KAAK,MAAM;AACf,UAAI,eAAe;AACnB,UAAI,OAAO,aAAa,YAAY,UAAU;AAC5C,qBAAa,UAAU,CAAC;AAAA,MAC1B;AACA,UAAI,OAAO,aAAa,MAAM,oBAAoB,UAAU;AAC1D,qBAAa,MAAM,kBAAkB,CAAC;AAAA,MACxC;AACA,UAAI,OAAO,kBAAkB,aAAa;AACxC,eAAO,MAAM,sDAAsD;AAEnE,YAAI,kBAAkB,OAAQ,OAAO,aAAa,QAAQ,QAAQ,WAAW,eAAgB,CAAC,GAAG,aAAa,EAAE,QAAQ,aAAa,QAAQ,QAAQ,MAAM,MAAM,IAAI;AAEnK,iBAAO,MAAM,mDAAmD;AAChE,uBAAa,MAAM,gBAAgB,6BAA6B,IAAI;AAAA,QACtE,OAAO;AACL,iBAAO,MAAM,kCAAkC,aAAa,QAAQ,QAAQ,MAAM;AAClF,iBAAO,MAAM,yCAAyC;AACtD,eAAK,OAAO,CAAC;AACb,cAAI;AACF,iBAAK,KAAK;AAAA,UACZ,SAAS,GAAQ;AACf,mBAAO,MAAM,+DAA+D,CAAC,EAAE;AAAA,UACjF;AAAA,QACF;AAAA,MACF,OAAO;AACL,eAAO,MAAM,2DAA2D;AACxE,eAAO,MAAM,mDAAmD;AAChE,qBAAa,MAAM,gBAAgB,6BAA6B,IAAI;AAAA,MACtE;AACA,UAAI,OAAO,sBAAsB,aAAa;AAC5C,eAAO,MAAM,6CAA6C,iBAAiB,KAAK;AAChF,qBAAa,MAAM,gBAAgB,kCAAkC,IAAI,kBAAkB,SAAS;AAAA,MACtG,OAAO;AACL,eAAO,MAAM,+DAA+D;AAC5E,qBAAa,MAAM,gBAAgB,kCAAkC,IAAI;AAAA,MAC3E;AACA,UAAI,OAAO,kBAAkB,aAAa;AACxC,eAAO,MAAM,yCAAyC,aAAa,KAAK;AACxE,qBAAa,MAAM,gBAAgB,8BAA8B,IAAI,CAAC,GAAG,aAAa,EAAE,KAAK,GAAG;AAAA,MAClG,OAAO;AACL,eAAO,MAAM,qEAAqE;AAClF,qBAAa,MAAM,gBAAgB,8BAA8B,IAAI;AAAA,MACvE;AACA,UAAI,OAAO,kBAAkB,aAAa;AACxC,eAAO,MAAM,yCAAyC,aAAa,KAAK;AACxE,qBAAa,MAAM,gBAAgB,8BAA8B,IAAI,CAAC,GAAG,aAAa,EAAE,KAAK,GAAG;AAAA,MAClG,OAAO;AACL,eAAO,MAAM,yDAAyD;AACtE,qBAAa,MAAM,gBAAgB,8BAA8B,IAAI;AAAA,MACvE;AAAA,IACF,OAAO;AACL,aAAO,MAAM,oFAAoF;AAAA,IACnG;AAAA,EACF;AAAA,EACA,KAAK,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACnC,KAAK,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACnC,IAAI,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EAClC,OAAO,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACrC,QAAQ,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACtC,QAAQ,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACtC,MAAM,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACpC,MAAM,UAAe;AAAE,SAAK,KAAK;AAAA,EAAG;AAAA,EACpC,eAAe,QAA6D;AAC1E,QAAI;AACF,aAAO,MAAM,KAAK,UAAU,KAAK,IAAI,CAAC;AACtC,aAAO,IAAI;AAAA,IACb,SAAS,GAAQ;AACf,aAAO,MAAM,0DAA0D,CAAC,EAAE;AAC1E,YAAM,MAAM,CAAC;AAAA,IACf;AAAA,EACF;AAAA,EACA,OAAO;AACL,QAAI,eAAe;AACnB,QAAI,SAAS,aAAa;AAC1B,QAAI;AACF,aAAO,UAAU,KAAK,aAAa,OAAO;AAAA,IAC5C,SAAS,GAAQ;AACf,aAAO,MAAM,yDAAyD,CAAC,EAAE;AACzE,YAAM,MAAM,CAAC;AAAA,IACf;AACA,QAAI,aAAa,QAAQ,MAAM;AAC7B,mBAAa,eAAe,KAAK,cAAc,MAAM;AAAA,IACvD;AAAA,EACF;AAIF;AAEA,OAAO,mBAAmB;AAG1B,MAAM,2BAA2B,aAAa;AAAA,EAxN9C,OAwN8C;AAAA;AAAA;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,IACV,UAAU;AAAA,MACR,UAAU;AAAA,MACV,gBAAgB;AAAA,IAClB;AAAA,IACA,OAAO;AAAA,IACP,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,SAAS;AAAA,EACX,GAAG;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,OAAO;AACX,SAAK,UAAU,WAAW,CAAC;AAC3B,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,iBAAiB;AAGtB,QAAI,CAAC,KAAK,QAAQ,cAAc,CAAC,KAAK,QAAQ,UAAU;AACtD,YAAM,cAAc;AACpB,WAAK,QAAQ,WAAW,KAAK,QAAQ,YAAY;AACjD,WAAK,QAAQ,aAAa,KAAK,QAAQ,cAAc,OAAO,IAAI,yBAAyB,YAAY;AAAA,IACvG;AAGA,QAAI,CAAC,OAAO,IAAI,cAAc,GAAG;AAC/B,aAAO,IAAI,gBAAgB,KAAK,KAAK,QAAQ,IAAI,GAAG,QAAQ,CAAC;AAAA,IAC/D;AAEA,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEA,SAAS,QAAa,UAAkB;AAGtC,QAAI;AACF,cAAQ,IAAI,oBAAoB,QAAQ;AACxC,YAAM,KAAK,GAAG,SAAS,UAAU,GAAG;AACpC,YAAM,OAAO,GAAG,UAAU,EAAE;AAC5B,YAAM,UAAU;AAAA,QACd,kBAAkB,KAAK;AAAA,QACvB,iBAAiB,KAAK,MAAM,YAAY;AAAA,QACxC,gBAAgB,KAAK,QAAQ,QAAQ;AAAA,QACrC,iBAAiB,OAAO,IAAI,gBAAgB,kBAAkB;AAAA,MAChE;AACA,aAAO,MAAM,kBAAkB,QAAQ;AACvC,SAAG,UAAU,EAAE;AACf,aAAO,UAAU,kBAAkB,QAAQ,gBAAgB,CAAC;AAC5D,aAAO,UAAU,iBAAiB,QAAQ,eAAe,CAAC;AAC1D,aAAO,UAAU,gBAAgB,QAAQ,cAAc,CAAC;AACxD,aAAO,UAAU,iBAAiB,QAAQ,eAAe,CAAC;AAG1D,UAAI,aAAa,GAAG,iBAAiB,QAAQ;AAG7C,iBAAW,GAAG,QAAQ,WAAY;AAEhC,mBAAW,KAAK,MAAM;AAAA,MACxB,CAAC;AAED,iBAAW,GAAG,OAAO,WAAY;AAC/B,eAAO,IAAI;AAAA,MACb,CAAC;AAGD,iBAAW,GAAG,SAAS,SAAU,KAAU;AACzC,cAAME,WAAU;AAAA,UACd,UAAU;AAAA,UACV,gBAAgB,KAAK,QAAQ,QAAQ;AAAA,QACvC;AACA,eAAO,UAAU,gBAAgBA,SAAQ,cAAc,CAAC;AACxD,eAAO,UAAU,UAAUA,SAAQ,QAAQ,CAAC;AAC5C,eAAO,MAAM;AAAA,eACN,GAAG;AAAA,SACT;AAED,eAAO,IAAI,GAAG;AAAA,MAChB,CAAC;AAAA,IAEH,SAAS,GAAQ;AACf,UAAI,EAAE,SAAS,IAAI;AACjB,cAAM,UAAU;AAAA,UACd,UAAU;AAAA,UACV,gBAAgB,KAAK,QAAQ,QAAQ;AAAA,QACvC;AACA,eAAO,UAAU,gBAAgB,QAAQ,cAAc,CAAC;AACxD,eAAO,UAAU,UAAU,QAAQ,QAAQ,CAAC;AAC5C,eAAO,MAAM,+BAA+B;AAC5C,eAAO,GAAG,SAAS,MAAM;AACvB,iBAAO,MAAM,kBAAkB,QAAQ;AAAA,QACzC,CAAC;AACD,eAAO,IAAI;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EACA,oBAAoB;AAClB,QAAI,WAAW;AACf,aAAS,iBAAiB,IAAI,gBAAgB;AAAA,MAC5C,YAAY,SAAS,QAAQ;AAAA,MAC7B,UAAU,SAAS,QAAQ;AAAA,MAC3B,KAAK,SAAgC,MAAW,aAAkB,YAAiB;AACjF,iBAAS,UAAU;AACnB,YAAI,SAAS,SAAS;AACtB,YAAI,YAAY;AACd,mBAAS,OAAO;AAChB,iBAAO,KAAK,OAAO,EAAE,IAAI,CAAC,WAAY,OAAe,UAAU,QAAQ,QAAQ,MAAM,CAAC,CAAC;AACvF,UAAC,OAAe,MAAM,SAAS,IAAI;AACnC,UAAC,OAAe,IAAI;AAAA,QACtB,WAAW,QAAQ,QAAQ,KAAK,OAAO,QAAQ,SAAS,KAAK,KAAK;AAChE,mBAAS,SAAS,QAAQ,WAAW;AAAA,QACvC,OAAO;AACL,iBAAO,KAAK,OAAO,EAAE,IAAI,CAAC,WAAY,OAAe,UAAU,QAAQ,QAAQ,MAAM,CAAC,CAAC;AACvF,UAAC,OAAe,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EAEH;AAEF;AAEA,MAAM,0BAA0B,aAAa;AAAA,EA/V7C,OA+V6C;AAAA;AAAA;AAAA,EAC3C,YAAY;AAAA,IACV,aAAa;AAAA,IACb,MAAAC,QAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,EACT,GAAG;AACD,UAAM;AAAA,MACJ;AAAA,MACA,MAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,MAAM,mBAAmB,aAAa;AAAA,EAzY7C,OAyY6C;AAAA;AAAA;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,IACX,SAAS;AAAA,IACT,aAAa;AAAA,IACb,uBAAuB,CAAC;AAAA,EAC1B,GAAG;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,UAAM,YAAY;AAClB,UAAM,eAAe;AACrB,UAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACb,YAAQ,IAAI,SAAS;AACrB,YAAQ,IAAI,IAAI;AAChB,YAAQ,IAAI,YAAY;AACxB,WAAO,MAAM,KAAK,cAAc,CAAC;AACjC,WAAO,KAAK,6BAA6B,OAAO,IAAI,gBAAgB,EAAE,SAAS,CAAC;AAChF,WAAO,KAAK,cAAc,KAAK,gBAAgB,CAAC;AAChD,SAAK,uBAAuB;AAE5B,SAAK,SAAS,KAAK,aAAa,CAAC,KAAU,QAAa;AACtD,aAAO,MAAM,6BAA6B;AAAA,IAC5C,CAAC;AAED,SAAK,OAAO,GAAG,SAAS,CAAC,QAAa,QAAQ,MAAM,GAAG,CAAC;AAExD,QAAI,OAAO,IAAI,kBAAkB,GAAG;AAClC,aAAO,KAAK,iCAAiC;AAC7C,YAAM,eAAe,OAAO,IAAI,WAAW,CAAC,CAAC,EAAE;AAC/C,UAAI,OAAO,iBAAiB,aAAa;AACvC,eAAO,KAAK,gCAAgC;AAC5C,qBAAa,IAAI,CAAC,gBAA2C;AAC3D,6BAAmB,YAAY,YAAY;AAC3C,cAAI,0BAA0B,aAAa,YAAY,eAAe,cAAc;AACpF,cAAI,sBAAsB,IAAI,yBAAyB;AAAA,YACrD,QAAQ,OAAO,IAAI,QAAQ;AAAA,YAC3B,UAAU,OAAO,IAAI,UAAU;AAAA,YAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,YACrC;AAAA,YACA,QAAQ,KAAK;AAAA,UACf,CAAC;AACD,eAAK,qBAAqB,KAAK,mBAA4B;AAAA,QAC7D,CAAC;AAAA,MACH;AAAA,IACF;AAEA,SAAK,OAAO,GAAG,WAAW,CAAC,KAA+C,QAAmM;AAE3Q,YAAMC,WAAU,OAAO,OAAO,IAAI,iBAAiB,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;AACxE,MAAAA,SAAQ,UAAU,IAAI;AACtB,WAAK,UAAUA;AACf,WAAK,QAAQ,SAAS,IAAI;AAC1B,WAAK,QAAQ,OAAO,IAAI;AACxB,WAAK,OAAO,gBAAgB,UAAU;AACtC,aAAO,IAAI,kBAAkB,OAAO,IAAI,gBAAgB,KAAK,GAAK;AAClE,UAAI,iBAAiB,6BAAM;AAEzB,YAAI;AACF,cAAI,CAAC,IAAI,WAAW;AAClB,mBAAO,KAAK,0BAA0B,OAAO,IAAI,gBAAgB,EAAE,SAAS,CAAC;AAC7E,mBAAO,KAAK,oBAAoB;AAEhC,gBAAI,YAAY,KAAK;AAAA,cACnB,gBAAgB;AAAA,YAClB,CAAC;AACD,gBAAI,GAAG,SAAS,MAAM;AAAA,YAAE,CAAC;AACzB,gBAAI,MAAM,gDAAgD;AAC1D,gBAAI,IAAI;AAAA,UACV,OAAO;AACL,mBAAO,MAAM,mCAAmC;AAAA,UAClD;AAAA,QACF,SAAS,GAAQ;AACf,iBAAO,MAAM,wDAAwD,CAAC,EAAE;AAAA,QAC1E;AACA,aAAK,OAAO,eAAe,WAAW,cAAc;AAAA,MAEtD,GArBqB;AAsBrB,UAAI,CAAC,IAAI,WAAW;AAClB,aAAK,OAAO,WAAW,OAAO,IAAI,gBAAgB,GAAG,cAAc;AAAA,MACrE;AAEA,UAAI,KAAK,QAAQ,SAAS,QAAQ,GAAG,IAAI,GAAG;AAC1C,aAAK,QAAQ,aAAa,OAAO,IAAI,uBAAuB;AAAA,MAC9D,OAAO;AACL,aAAK,QAAQ,aAAa,KAAK,QAAQ,SAAS,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC;AAAA,MACxE;AACA,WAAK,QAAQ,WAAW,KAAK,QAAQ,SAAS,OAAO,GAAG,KAAK,QAAQ,SAAS,YAAY,GAAG,CAAC;AAE9F,aAAO,MAAM,QAAQ,KAAK,KAAK,OAAO,CAAC;AAEvC,UAAI,OAAO,IAAI,kBAAkB,GAAG;AAClC,eAAO,KAAK,2CAA2C;AAEvD,eAAO,KAAK,2BAA2B;AACvC,cAAM,SAAS,OAAO,IAAI,WAAW,CAAC,CAAC,EAAE;AACzC,cAAM,gBAAgB,OAAO,OAAO,CAAC,UAA6B;AAChE,gBAAM,oBAAoB,MAAM,KAAK,QAAQ,YAAY,WAAW;AACpE,iBAAQ,IAAI,OAAO,mBAAmB,GAAG,EAAG,KAAKA,SAAQ,IAAI;AAAA,QAC/D,CAAC;AACD,YAAI,cAAc,SAAS,GAAG;AAC5B,wBAAc,IAAI,CAAC,UAAmD;AACpE,kBAAM,oBAAoB,MAAM,KAAK,QAAQ,YAAY,WAAW;AACpE,oBAAQ,IAAI,iBAAiB;AAC7B,kBAAM,sBAAsB;AAAA,cAC1B,GAAG,CAAC,GAAGA,SAAQ,KAAK,SAAU,IAAI,OAAO,mBAAmB,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,QAAQ;AAAA,YACjF;AACA,+BAAmB,MAAM,YAAY,EAAE,KAAK,MAAM;AAChD,qBAAO,MAAM,qBAAqB,MAAM,eAAe,eAAe,KAAK;AAC3E,kBAAI,2BAA2B,aAAa,MAAM,eAAe,eAAe;AAChF,kBAAI,OAAO,6BAA6B,aAAa;AACnD,sBAAMC,UAAS,KAAK;AACpB,qBAAK,WAAW,IAAI,0BAA0B;AAAA,kBAC5C,QAAQ,OAAO,IAAI,QAAQ;AAAA,kBAC3B,UAAU,OAAO,IAAI,UAAU;AAAA,kBAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,kBACrC;AAAA,kBACA,aAAa;AAAA,kBACb,QAAQA;AAAA,kBACR,QAAQ;AAAA,kBACR;AAAA,kBACA,SAASD;AAAA,gBACX,CAAC;AAAA,cAEH,OAAO;AACL,sBAAM,MAAM,GAAG,MAAM,eAAe,eAAe,eAAe;AAAA,cACpE;AAAA,YACF,CAAC,EAAE,MAAM,CAAC,MAA0B;AAClC,oBAAM,MAAM,CAAC;AAAA,YACf,CAAC;AAAA,UACH,CAAC;AAAA,QACH,OAAO;AACL,eAAK,WAAW,IAAI,oBAAoB;AAAA,YACtC,QAAQ,OAAO,IAAI,QAAQ;AAAA,YAC3B,UAAU,OAAO,IAAI,UAAU;AAAA,YAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,YACrC,QAAQ,KAAK;AAAA,YACb,QAAQ;AAAA,YACR;AAAA,YACA,SAAS,KAAK;AAAA,UAChB,CAAC;AAAA,QACH;AAAA,MAEF,OAAO;AAGL,aAAK,WAAW,IAAI,oBAAoB;AAAA,UACtC,QAAQ,KAAK;AAAA,UACb,QAAQ;AAAA,UACR;AAAA,UACA,SAAS,KAAK;AAAA,QAChB,CAAC;AAAA,MAEH;AAAA,IAEF,CAAC;AAAA,EAEH;AAAA,EAGA,gBAAgB;AACd,QAAI,QAAQ;AACZ,QAAI,SAAS,GAAG,kBAAkB;AAClC,WAAO,KAAK,MAAM,EAAE,QAAQ,SAAU,OAAO;AAC3C,aAAO,KAAK,GAAG,QAAQ,SAAU,SAAc;AAC7C,iBAAS,QAAQ,OAAO,QAAQ,KAAK,OAAO,IAAI;AAAA,MAClD,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EACA,kBAAkB;AAChB,QAAI,QAAQ;AACZ,QAAI,SAAS,GAAG,kBAAkB;AAClC,WAAO,KAAK,MAAM,EAAE,QAAQ,SAAU,OAAO;AAC3C,aAAO,KAAK,GAAG,QAAQ,SAAU,SAAc;AAC7C,YAAI,QAAQ,QAAQ,EAAE,YAAY,KAAK,QAAQ;AAC7C,mBAAS,YAAY,QAAQ,SAAS,IAAI,MAAM,OAAO,IAAI,gBAAgB,EAAE,SAAS,IAAI;AAAA,QAC5F;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EACA,QAAQ;AACN,QAAI,SAAS,KAAK;AAClB,WAAO,OAAO,QAAQ,IAAI,QAAQ,OAAO,IAAI,gBAAgB,CAAC;AAAA,EAChE;AAEF;AAGA,QAAQ,4CAA4C;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;",
6
6
  "names": ["requestMethod", "supportedMethods", "headers", "path", "request", "server"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/main-http2-server.ts"],
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 { findPackageNodePath, Import, Package, InheritClass, CONFIG, logger, New, global, ClassFactory } from \"qcobjects\";\n\nimport mime from \"mime\";\nimport path from \"node:path\";\n\nimport http2 from \"node:http2\";\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport URL from \"node:url\";\nimport http from \"node:http\";\nimport { FileDispatcher } from \"./main-file\";\nimport { PipeLog } from \"./common-pipelog\";\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 HTTP2ServerResponse extends InheritClass {\n fileDispatcher: any;\n request: any;\n headers!: { [x: string]: string | number };\n stream: any;\n body: any;\n constructor({\n headers = {\n \":status\": 200,\n \"content-type\": \"text/html\",\n \"cache-control\": CONFIG.get(\"cacheControl\", \"max-age=31536000\")\n },\n body = \"\",\n request = null,\n fileDispatcher = null,\n stream = null\n }) {\n super();\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: { respondWithFD: (arg0: any, arg1: { \"content-length\": any; \"last-modified\": any; \"content-type\": any; \"cache-control\": any; }) => void; on: (arg0: string, arg1: { (): void; (): void; }) => void; end: () => void; respond: (arg0: { \":status\": number; \"content-type\": any; }) => void; write: (arg0: string) => void; }, fileName: string) {\n // read and send file content in the stream\n\n try {\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 stream.respondWithFD(fd, headers);\n stream.on(\"close\", () => {\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n });\n stream.end();\n\n } catch (e: any) {\n logger.debug(\"[HTTP2ServerResponse][sendFile][ERROR] Something went wrong when trying to send the response as file \" + fileName);\n if (e.errno == -2) {\n const headers = {\n \":status\": 404,\n \"content-type\": mime.getType(fileName)\n };\n stream.respond(headers);\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]: number; }, body: any, templateURI: any, isTemplate: any) {\n response.headers = headers;\n var stream = response.stream;\n if (isTemplate) {\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 stream.respond(response.headers);\n stream.end();\n }\n }\n });\n\n }\n\n}\n\nclass HTTP2ServerRequest 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\n\n\nexport class HTTP2Server extends InheritClass {\n server!: http2.Http2SecureServer<typeof import(\"http\").IncomingMessage, typeof import(\"http\").ServerResponse, typeof http2.Http2ServerRequest, typeof http2.Http2ServerResponse>;\n interceptorInstances: any;\n request: any;\n response: any;\n constructor({\n request = null,\n response = \"\",\n server = null,\n scriptname = \"\",\n interceptorInstances = []\n }: { request: any, response: any, server?: any, scriptname: string, interceptorInstances: any[] }) {\n super({\n request,\n response,\n server,\n scriptname,\n interceptorInstances\n });\n\n const welcometo = \"Welcome to \\n\";\n const instructions = \"HTTP2Server \\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(\"Listening on HTTPS PORT: \" + CONFIG.get(\"serverPortHTTPS\").toString());\n logger.info(\"Go to: \\n\" + this.showPossibleURL());\n\n const http2ServerInstance = this;\n http2ServerInstance.server = http2.createSecureServer({\n key: fs.readFileSync(CONFIG.get(\"private-key-pem\")),\n cert: fs.readFileSync(CONFIG.get(\"private-cert-pem\")),\n allowHTTP1: CONFIG.get(\"allowHTTP1\"),\n origins: [\"https://\" + CONFIG.get(\"domain\"), \"http://\" + CONFIG.get(\"domain\")]\n });\n server = http2ServerInstance.server;\n\n server.on(\"error\", (err: any) => console.error(err));\n\n server.on(\"session\", (session: { altsvc: (arg0: string, arg1: string) => void; origin: (arg0: string, arg1: string) => void; }) => {\n // Set altsvc for origin https://example.org:80\n session.altsvc(\"h2=\\\":8000\\\"\", \"https://\" + CONFIG.get(\"domain\"));\n session.altsvc(\"https=\\\":\" + CONFIG.get(\"serverPortHTTPS\") + \"\\\"\", \"https://\" + CONFIG.get(\"domain\"));\n session.altsvc(\"http=\\\":\" + CONFIG.get(\"serverPortHTTP\") + \"\\\"\", \"http://\" + CONFIG.get(\"domain\"));\n session.origin(\"https://\" + CONFIG.get(\"domain\"), \"http://\" + CONFIG.get(\"domain\"));\n\n });\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 http2ServerInstance.interceptorInstances.push(interceptorInstance);\n });\n }\n }\n\n server.on(\"stream\", (stream: { session: { setTimeout: (arg0: any) => void; setMaxListeners: (arg0: number) => void; removeListener: (arg0: string, arg1: () => void) => void; on: (arg0: string, arg1: () => void) => void; altsvc: (arg0: string, arg1: any) => void; }; destroyed: any; respond: (arg0: { \":status\": number; \"content-type\": string; }) => void; on: (arg0: string, arg1: () => void) => void; write: (arg0: string) => void; end: () => void; id: any; }, headers: { [x: string]: any; }, flags: any) => {\n CONFIG.set(\"backendTimeout\", CONFIG.get(\"backendTimeout\") || 20000);\n stream.session.setTimeout(CONFIG.get(\"backendTimeout\"));\n stream.session.setMaxListeners(9999999999);\n var timeoutHandler = () => {\n // end the stream on timeout\n try {\n if (!stream.destroyed) {\n logger.info(\"A timeout occurred... \" + CONFIG.get(\"backendTimeout\").toString());\n logger.info(\"Killing session...\");\n stream.respond({\n \":status\": 500,\n \"content-type\": \"text/html\"\n });\n stream.on(\"error\", () => { });\n stream.write(\"<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>\");\n stream.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\n if (!stream.destroyed) {\n stream.session.removeListener(\"timeout\", timeoutHandler);\n } else {\n server.removeListener(\"timeout\", timeoutHandler);\n }\n\n };\n if (!stream.destroyed) {\n stream.session.on(\"timeout\", timeoutHandler);\n }\n\n stream.session.altsvc(\"h2=\\\":8000\\\"\", stream.id);\n stream.session.altsvc(\"https=\\\":\" + CONFIG.get(\"serverPortHTTPS\") + \"\\\"\", stream.id);\n stream.session.altsvc(\"http=\\\":\" + CONFIG.get(\"serverPortHTTP\") + \"\\\"\", stream.id);\n const request = Object.assign(New(HTTP2ServerRequest), URL.parse(headers[\":path\"]));\n request.headers = headers;\n request.flags = flags;\n http2ServerInstance.request = request;\n http2ServerInstance.request.method = headers[\":method\"];\n http2ServerInstance.request.path = headers[\":path\"];\n\n // Fix pathname and scriptname initialization\n const pathParts = http2ServerInstance.request.pathname.split(\"/\");\n if (pathParts.length > 0) {\n if (http2ServerInstance.request.pathname.indexOf(\".\") < 0) {\n http2ServerInstance.request.scriptname = CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n // Keep the original pathname as is, no need to reassign\n } else {\n http2ServerInstance.request.scriptname = pathParts[pathParts.length - 1];\n http2ServerInstance.request.pathname = http2ServerInstance.request.pathname.substr(0, http2ServerInstance.request.pathname.lastIndexOf(\"/\"));\n }\n } else {\n http2ServerInstance.request.scriptname = CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n http2ServerInstance.request.pathname = \"/\";\n }\n\n logger.debug(PipeLog.pipe(this.request));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Backend 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(function () {\n logger.debug(`Trying to execute ${route.microservice + \".Microservice\"}...`);\n var microServiceClassFactory = ClassFactory(route.microservice + \".Microservice\");\n if (typeof microServiceClassFactory !== \"undefined\") {\n http2ServerInstance.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: stream,\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(HTTP2ServerResponse, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n server: server,\n stream: stream,\n request: request\n });\n }\n\n } else {\n // ...\n\n this.response = New(HTTP2ServerResponse, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n server: server,\n stream: stream,\n request: 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]?.map(function (ipGroup: any) {\n _ret_ += iface + \": \" + PipeLog.pipe(ipGroup) + \"\\n\";\n });\n });\n return _ret_;\n }\n showPossibleURL(): string {\n let _ret_ = \"\";\n const ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach((iface) => {\n ifaces[iface]?.forEach((ipGroup: any) => {\n if (ipGroup.family.toLowerCase() === \"ipv4\") {\n _ret_ += `http://${ipGroup.address}:${CONFIG.get(\"serverPortHTTP\")}/\\n`;\n _ret_ += `https://${ipGroup.address}:${CONFIG.get(\"serverPortHTTPS\")}/\\n`;\n }\n });\n });\n return _ret_;\n }\n\n start() {\n var server = this.server;\n\n // http2 port is 8443 but normally is used 443 by replacing current https\n\n\n const httpServer = http.createServer((req , res) => {\n res.writeHead(301, {\n Location: `https://${req.headers.host}${req.url}`\n });\n res.end();\n });\n\n httpServer.listen(CONFIG.get(\"serverPortHTTP\"));\n server.listen(CONFIG.get(\"serverPortHTTPS\"));\n }\n\n}\n\nPackage(\"org.quickcorp.qcobjects.main.http2.server\", [\n HTTP2ServerResponse, HTTP2ServerRequest, HTTP2Server\n\n]);\n\n\n\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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 { findPackageNodePath, Import, Package, InheritClass, CONFIG, logger, New, global, ClassFactory } from \"qcobjects\";\n\nimport mime from \"mime\";\nimport path from \"node:path\";\n\nimport http2 from \"node:http2\";\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport URL from \"node:url\";\nimport http from \"node:http\";\nimport { FileDispatcher } from \"./main-file\";\nimport { PipeLog } from \"./common-pipelog\";\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 HTTP2ServerResponse extends InheritClass {\n fileDispatcher: any;\n request: any;\n headers!: { [x: string]: string | number };\n stream: any;\n body: any;\n constructor({\n headers = {\n \":status\": 200,\n \"content-type\": \"text/html\",\n \"cache-control\": CONFIG.get(\"cacheControl\", \"max-age=31536000\")\n },\n body = \"\",\n request = null,\n fileDispatcher = null,\n stream = null\n }) {\n super();\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: { respondWithFD: (arg0: any, arg1: { \"content-length\": any; \"last-modified\": any; \"content-type\": any; \"cache-control\": any; }) => void; on: (arg0: string, arg1: { (): void; (): void; }) => void; end: () => void; respond: (arg0: { \":status\": number; \"content-type\": any; }) => void; write: (arg0: string) => void; }, fileName: string) {\n // read and send file content in the stream\n\n try {\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 stream.respondWithFD(fd, headers);\n stream.on(\"close\", () => {\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n });\n stream.end();\n\n } catch (e: any) {\n logger.debug(\"[HTTP2ServerResponse][sendFile][ERROR] Something went wrong when trying to send the response as file \" + fileName);\n if (e.errno == -2) {\n const headers = {\n \":status\": 404,\n \"content-type\": mime.getType(fileName)\n };\n stream.respond(headers);\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]: number; }, body: any, templateURI: any, isTemplate: any) {\n response.headers = headers;\n var stream = response.stream;\n if (isTemplate) {\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 stream.respond(response.headers);\n stream.end();\n }\n }\n });\n\n }\n\n}\n\nclass HTTP2ServerRequest 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\n\n\nexport class HTTP2Server extends InheritClass {\n server!: http2.Http2SecureServer<typeof import(\"http\").IncomingMessage, typeof import(\"http\").ServerResponse, typeof http2.Http2ServerRequest, typeof http2.Http2ServerResponse>;\n interceptorInstances: any;\n request: any;\n response: any;\n constructor({\n request = null,\n response = \"\",\n server = null,\n scriptname = \"\",\n interceptorInstances = []\n }: { request: any, response: any, server?: any, scriptname: string, interceptorInstances: any[] }) {\n super({\n request,\n response,\n server,\n scriptname,\n interceptorInstances\n });\n\n const welcometo = \"Welcome to \\n\";\n const instructions = \"HTTP2Server \\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(\"Listening on HTTPS PORT: \" + CONFIG.get(\"serverPortHTTPS\").toString());\n logger.info(\"Go to: \\n\" + this.showPossibleURL());\n\n const http2ServerInstance = this;\n http2ServerInstance.server = http2.createSecureServer({\n key: fs.readFileSync(CONFIG.get(\"private-key-pem\")),\n cert: fs.readFileSync(CONFIG.get(\"private-cert-pem\")),\n allowHTTP1: CONFIG.get(\"allowHTTP1\"),\n origins: [\"https://\" + CONFIG.get(\"domain\"), \"http://\" + CONFIG.get(\"domain\")]\n });\n server = http2ServerInstance.server;\n\n server.on(\"error\", (err: any) => console.error(err));\n\n server.on(\"session\", (session: { altsvc: (arg0: string, arg1: string) => void; origin: (arg0: string, arg1: string) => void; }) => {\n // Set altsvc for origin https://example.org:80\n session.altsvc(\"h2=\\\":8000\\\"\", \"https://\" + CONFIG.get(\"domain\"));\n session.altsvc(\"https=\\\":\" + CONFIG.get(\"serverPortHTTPS\") + \"\\\"\", \"https://\" + CONFIG.get(\"domain\"));\n session.altsvc(\"http=\\\":\" + CONFIG.get(\"serverPortHTTP\") + \"\\\"\", \"http://\" + CONFIG.get(\"domain\"));\n session.origin(\"https://\" + CONFIG.get(\"domain\"), \"http://\" + CONFIG.get(\"domain\"));\n\n });\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 http2ServerInstance.interceptorInstances.push(interceptorInstance);\n });\n }\n }\n\n server.on(\"stream\", (stream: { session: { setTimeout: (arg0: any) => void; setMaxListeners: (arg0: number) => void; removeListener: (arg0: string, arg1: () => void) => void; on: (arg0: string, arg1: () => void) => void; altsvc: (arg0: string, arg1: any) => void; }; destroyed: any; respond: (arg0: { \":status\": number; \"content-type\": string; }) => void; on: (arg0: string, arg1: () => void) => void; write: (arg0: string) => void; end: () => void; id: any; }, headers: { [x: string]: any; }, flags: any) => {\n CONFIG.set(\"backendTimeout\", CONFIG.get(\"backendTimeout\") || 20000);\n stream.session.setTimeout(CONFIG.get(\"backendTimeout\"));\n stream.session.setMaxListeners(9999999999);\n var timeoutHandler = () => {\n // end the stream on timeout\n try {\n if (!stream.destroyed) {\n logger.info(\"A timeout occurred... \" + CONFIG.get(\"backendTimeout\").toString());\n logger.info(\"Killing session...\");\n stream.respond({\n \":status\": 500,\n \"content-type\": \"text/html\"\n });\n stream.on(\"error\", () => { });\n stream.write(\"<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>\");\n stream.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\n if (!stream.destroyed) {\n stream.session.removeListener(\"timeout\", timeoutHandler);\n } else {\n server.removeListener(\"timeout\", timeoutHandler);\n }\n\n };\n if (!stream.destroyed) {\n stream.session.on(\"timeout\", timeoutHandler);\n }\n\n stream.session.altsvc(\"h2=\\\":8000\\\"\", stream.id);\n stream.session.altsvc(\"https=\\\":\" + CONFIG.get(\"serverPortHTTPS\") + \"\\\"\", stream.id);\n stream.session.altsvc(\"http=\\\":\" + CONFIG.get(\"serverPortHTTP\") + \"\\\"\", stream.id);\n const request = Object.assign(New(HTTP2ServerRequest), URL.parse(headers[\":path\"]));\n request.headers = headers;\n request.flags = flags;\n http2ServerInstance.request = request;\n http2ServerInstance.request.method = headers[\":method\"];\n http2ServerInstance.request.path = headers[\":path\"];\n\n // Fix pathname and scriptname initialization\n const pathParts = http2ServerInstance.request.pathname.split(\"/\");\n if (pathParts.length > 0) {\n if (http2ServerInstance.request.pathname.indexOf(\".\") < 0) {\n http2ServerInstance.request.scriptname = CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n // Keep the original pathname as is, no need to reassign\n } else {\n http2ServerInstance.request.scriptname = pathParts[pathParts.length - 1];\n http2ServerInstance.request.pathname = http2ServerInstance.request.pathname.substr(0, http2ServerInstance.request.pathname.lastIndexOf(\"/\"));\n }\n } else {\n http2ServerInstance.request.scriptname = CONFIG.get(\"documentRootFileIndex\", \"index.html\");\n http2ServerInstance.request.pathname = \"/\";\n }\n\n logger.debug(PipeLog.pipe(this.request));\n\n if (global.get(\"backendAvailable\")) {\n logger.info(\"Backend 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(function () {\n logger.debug(`Trying to execute ${route.microservice + \".Microservice\"}...`);\n var microServiceClassFactory = ClassFactory(route.microservice + \".Microservice\");\n if (typeof microServiceClassFactory !== \"undefined\") {\n http2ServerInstance.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: stream,\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(HTTP2ServerResponse, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n server: server,\n stream: stream,\n request: request\n });\n }\n\n } else {\n // ...\n\n this.response = New(HTTP2ServerResponse, {\n domain: CONFIG.get(\"domain\"),\n basePath: CONFIG.get(\"basePath\"),\n projectPath: CONFIG.get(\"projectPath\"),\n server: server,\n stream: stream,\n request: 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]?.map(function (ipGroup: any) {\n _ret_ += iface + \": \" + PipeLog.pipe(ipGroup) + \"\\n\";\n });\n });\n return _ret_;\n }\n showPossibleURL(): string {\n let _ret_ = \"\";\n const ifaces = os.networkInterfaces();\n Object.keys(ifaces).forEach((iface) => {\n ifaces[iface]?.forEach((ipGroup: any) => {\n if (ipGroup.family.toLowerCase() === \"ipv4\") {\n _ret_ += `http://${ipGroup.address}:${CONFIG.get(\"serverPortHTTP\")}/\\n`;\n _ret_ += `https://${ipGroup.address}:${CONFIG.get(\"serverPortHTTPS\")}/\\n`;\n }\n });\n });\n return _ret_;\n }\n\n start() {\n var server = this.server;\n\n // http2 port is 8443 but normally is used 443 by replacing current https\n\n\n const httpServer = http.createServer((req , res) => {\n res.writeHead(301, {\n Location: `https://${req.headers.host}${req.url}`\n });\n res.end();\n });\n\n httpServer.listen(CONFIG.get(\"serverPortHTTP\"));\n server.listen(CONFIG.get(\"serverPortHTTPS\"));\n }\n\n}\n\nPackage(\"org.quickcorp.qcobjects.main.http2.server\", [\n HTTP2ServerResponse, HTTP2ServerRequest, HTTP2Server\n\n]);\n\n\n\n\n"],
5
+ "mappings": "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",
6
6
  "names": ["path", "request"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-cli.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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 {logger, InheritClass } from \"qcobjects\";\n\nlogger.debugEnabled = false;\nconst welcometo = \"Welcome to \\n\";\nconst instructions = `\nCommunity Edition\n=================\n\nThis edition has the most of features that you can use for free but if you want to\n\nUpgrade to \\u{1F3E2} Enterprise Edition,\ntype the command:\n\n> qcobjects upgrade-to-enterprise\n`;\nconst 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\\\" \";\nif (process.argv.length<3 || process.argv[2] === \"create\"){\n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n}\nlogger.debugEnabled = false;\nlogger.warnEnabled = false;\nlogger.infoEnabled = false;\n\nexport * as defaultSettings from \"./defaultsettings\";\nimport {SwitchCommander} from \"./cli-main\";\n\nexport class Main extends InheritClass {\n constructor (){\n super();\n const main = this;\n\n const switchCommander = new SwitchCommander();\n switchCommander.initCommand();\n\n logger.debug(\"initialized\");\n\n\n }\n\n}\n\nconst __main__ = new Main ();\nexport default __main__;"],
5
- "mappings": ";;;AAiCA,SAAQ,QAAQ,oBAAoB;AAEpC,OAAO,eAAe;AACtB,MAAM,YAAY;AAClB,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWrB,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACb,IAAI,QAAQ,KAAK,SAAO,KAAK,QAAQ,KAAK,CAAC,MAAM,UAAS;AACxD,UAAQ,IAAI,SAAS;AACrB,UAAQ,IAAI,IAAI;AAChB,UAAQ,IAAI,YAAY;AAC1B;AACA,OAAO,eAAe;AACtB,OAAO,cAAc;AACrB,OAAO,cAAc;AAErB,YAAY,qBAAqB;AACjC,SAAQ,uBAAsB;AAEvB,MAAM,aAAa,aAAa;AAAA,EA7DvC,OA6DuC;AAAA;AAAA;AAAA,EACrC,cAAc;AACZ,UAAM;AACN,UAAM,OAAO;AAEb,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,oBAAgB,YAAY;AAE5B,WAAO,MAAM,aAAa;AAAA,EAG5B;AAEF;AAEA,MAAM,WAAW,IAAI,KAAM;AAC3B,IAAO,wBAAQ;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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 {logger, InheritClass } from \"qcobjects\";\n\nlogger.debugEnabled = false;\nconst welcometo = \"Welcome to \\n\";\nconst instructions = `\nCommunity Edition\n=================\n\nThis edition has the most of features that you can use for free but if you want to\n\nUpgrade to \\u{1F3E2} Enterprise Edition,\ntype the command:\n\n> qcobjects upgrade-to-enterprise\n`;\nconst 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\\\" \";\nif (process.argv.length<3 || process.argv[2] === \"create\"){\n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n}\nlogger.debugEnabled = false;\nlogger.warnEnabled = false;\nlogger.infoEnabled = false;\n\nexport * as defaultSettings from \"./defaultsettings\";\nimport {SwitchCommander} from \"./cli-main\";\n\nexport class Main extends InheritClass {\n constructor (){\n super();\n const main = this;\n\n const switchCommander = new SwitchCommander();\n switchCommander.initCommand();\n\n logger.debug(\"initialized\");\n\n\n }\n\n}\n\nconst __main__ = new Main ();\nexport default __main__;"],
5
+ "mappings": ";;;AAwBA,SAAQ,QAAQ,oBAAoB;AAEpC,OAAO,eAAe;AACtB,MAAM,YAAY;AAClB,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWrB,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACb,IAAI,QAAQ,KAAK,SAAO,KAAK,QAAQ,KAAK,CAAC,MAAM,UAAS;AACxD,UAAQ,IAAI,SAAS;AACrB,UAAQ,IAAI,IAAI;AAChB,UAAQ,IAAI,YAAY;AAC1B;AACA,OAAO,eAAe;AACtB,OAAO,cAAc;AACrB,OAAO,cAAc;AAErB,YAAY,qBAAqB;AACjC,SAAQ,uBAAsB;AAEvB,MAAM,aAAa,aAAa;AAAA,EApDvC,OAoDuC;AAAA;AAAA;AAAA,EACrC,cAAc;AACZ,UAAM;AACN,UAAM,OAAO;AAEb,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,oBAAgB,YAAY;AAE5B,WAAO,MAAM,aAAa;AAAA,EAG5B;AAEF;AAEA,MAAM,WAAW,IAAI,KAAM;AAC3B,IAAO,wBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-collab.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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 path from \"path\";\nimport \"./defaultsettings\";\nimport {CollabServer} from \"./collab-server\";\n\nimport { InheritClass, logger } from \"qcobjects\";\n const absolutePath = path.resolve(__dirname, \"./\");\n\n class Main extends InheritClass {\n constructor() {\n super();\n const app = new CollabServer();\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n }\n\n const __main__ = new Main();\n"],
5
- "mappings": ";;;AAgCA,OAAO,UAAU;AACjB,OAAO;AACP,SAAQ,oBAAmB;AAE3B,SAAS,cAAc,cAAc;AACnC,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAEjD,MAAM,aAAa,aAAa;AAAA,EAvClC,OAuCkC;AAAA;AAAA;AAAA,EAC9B,cAAc;AACZ,UAAM;AACN,UAAM,MAAM,IAAI,aAAa;AAC7B,QAAI,MAAM;AAEV,WAAO,MAAM,aAAa;AAAA,EAE5B;AACF;AAEA,MAAM,WAAW,IAAI,KAAK;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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 path from \"path\";\nimport \"./defaultsettings\";\nimport {CollabServer} from \"./collab-server\";\n\nimport { InheritClass, logger } from \"qcobjects\";\n const absolutePath = path.resolve(__dirname, \"./\");\n\n class Main extends InheritClass {\n constructor() {\n super();\n const app = new CollabServer();\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n }\n\n const __main__ = new Main();\n"],
5
+ "mappings": ";;;AAuBA,OAAO,UAAU;AACjB,OAAO;AACP,SAAQ,oBAAmB;AAE3B,SAAS,cAAc,cAAc;AACnC,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAEjD,MAAM,aAAa,aAAa;AAAA,EA9BlC,OA8BkC;AAAA;AAAA;AAAA,EAC9B,cAAc;AACZ,UAAM;AACN,UAAM,MAAM,IAAI,aAAa;AAC7B,QAAI,MAAM;AAEV,WAAO,MAAM,aAAa;AAAA,EAE5B;AACF;AAEA,MAAM,WAAW,IAAI,KAAK;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-createcert.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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 \"node:path\";\nimport os from \"node:os\";\nimport \"./defaultsettings\";\nimport { InheritClass, CONFIG } from \"qcobjects\";\n\n(async () => {\n \"use strict\";\n const absolutePath = path.resolve(__dirname, \"./\");\n const templatePath = path.resolve(__dirname, \"./templates/apps/\") + \"/\";\n const isWindows = () => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return os.platform().toLowerCase().startsWith(\"win\");\n };\n const isMac = () => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return os.platform().toLowerCase().startsWith(\"darwin\");\n };\n\n const { execSync } = await import(\"node:child_process\");\n\n class Main extends InheritClass {\n constructor() {\n super();\n this.start();\n }\n\n start() {\n const certificate_provider = CONFIG.get(\"certificate_provider\", \"self_signed\");\n let stdout;\n switch (certificate_provider) {\n case \"self_signed\":\n // stderr is sent to stderr of parent process\n // you can set options.stdio if you want it to go elsewhere\n if (isWindows()) {\n stdout = execSync(\"openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj \\\"/CN=\" + CONFIG.get(\"domain\") + \"\\\" -keyout \" + CONFIG.get(\"private-key-pem\") + \" -out \" + CONFIG.get(\"private-cert-pem\"));\n } else {\n stdout = execSync(\"openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj '/CN=\" + CONFIG.get(\"domain\") + \"' -keyout \" + CONFIG.get(\"private-key-pem\") + \" -out \" + CONFIG.get(\"private-cert-pem\"));\n }\n break;\n case \"letsencrypt\":\n if (isWindows()) {\n throw Error(\"Letsencrypt certificate is not supported in Windows\");\n } else {\n var prehook_posthook = \"--pre-hook \\\"service qcobjects stop\\\" --post-hook=\\\"service qcobjects start\\\"\";\n stdout = execSync(`certbot -n -d ${CONFIG.get(\"domain\")} certonly --standalone ${prehook_posthook}`);\n }\n break;\n default:\n break;\n }\n\n }\n }\n\n const __main__ = new Main();\n})().catch(e => console.error(e));"],
5
- "mappings": ";;;AA+BA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,OAAO;AACP,SAAS,cAAc,cAAc;AAAA,CAEpC,YAAY;AACX;AACA,QAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AACjD,QAAM,eAAe,KAAK,QAAQ,WAAW,mBAAmB,IAAI;AACpE,QAAM,YAAY,6BAAM;AAEtB,WAAO,GAAG,SAAS,EAAE,YAAY,EAAE,WAAW,KAAK;AAAA,EACrD,GAHkB;AAIlB,QAAM,QAAQ,6BAAM;AAElB,WAAO,GAAG,SAAS,EAAE,YAAY,EAAE,WAAW,QAAQ;AAAA,EACxD,GAHc;AAKd,QAAM,EAAE,SAAS,IAAI,MAAM,OAAO,oBAAoB;AAAA,EAEtD,MAAM,aAAa,aAAa;AAAA,IAnDlC,OAmDkC;AAAA;AAAA;AAAA,IAC9B,cAAc;AACZ,YAAM;AACN,WAAK,MAAM;AAAA,IACb;AAAA,IAEA,QAAQ;AACN,YAAM,uBAAuB,OAAO,IAAI,wBAAwB,aAAa;AAC7E,UAAI;AACJ,cAAQ,sBAAsB;AAAA,QAC5B,KAAK;AAGH,cAAI,UAAU,GAAG;AACf,qBAAS,SAAS,kEAAmE,OAAO,IAAI,QAAQ,IAAI,gBAAiB,OAAO,IAAI,iBAAiB,IAAI,WAAW,OAAO,IAAI,kBAAkB,CAAC;AAAA,UACxM,OAAO;AACL,qBAAS,SAAS,kEAAkE,OAAO,IAAI,QAAQ,IAAI,gBAAgB,OAAO,IAAI,iBAAiB,IAAI,WAAW,OAAO,IAAI,kBAAkB,CAAC;AAAA,UACtM;AACA;AAAA,QACF,KAAK;AACH,cAAI,UAAU,GAAG;AACf,kBAAM,MAAM,qDAAqD;AAAA,UACnE,OAAO;AACL,gBAAI,mBAAmB;AACvB,qBAAS,SAAS,iBAAiB,OAAO,IAAI,QAAQ,CAAC,0BAA0B,gBAAgB,EAAE;AAAA,UACrG;AACA;AAAA,QACF;AACE;AAAA,MACJ;AAAA,IAEF;AAAA,EACF;AAEA,QAAM,WAAW,IAAI,KAAK;AAC5B,GAAG,EAAE,MAAM,OAAK,QAAQ,MAAM,CAAC,CAAC;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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 \"node:path\";\nimport os from \"node:os\";\nimport \"./defaultsettings\";\nimport { InheritClass, CONFIG } from \"qcobjects\";\n\n(async () => {\n \"use strict\";\n const absolutePath = path.resolve(__dirname, \"./\");\n const templatePath = path.resolve(__dirname, \"./templates/apps/\") + \"/\";\n const isWindows = () => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return os.platform().toLowerCase().startsWith(\"win\");\n };\n const isMac = () => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return os.platform().toLowerCase().startsWith(\"darwin\");\n };\n\n const { execSync } = await import(\"node:child_process\");\n\n class Main extends InheritClass {\n constructor() {\n super();\n this.start();\n }\n\n start() {\n const certificate_provider = CONFIG.get(\"certificate_provider\", \"self_signed\");\n let stdout;\n switch (certificate_provider) {\n case \"self_signed\":\n // stderr is sent to stderr of parent process\n // you can set options.stdio if you want it to go elsewhere\n if (isWindows()) {\n stdout = execSync(\"openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj \\\"/CN=\" + CONFIG.get(\"domain\") + \"\\\" -keyout \" + CONFIG.get(\"private-key-pem\") + \" -out \" + CONFIG.get(\"private-cert-pem\"));\n } else {\n stdout = execSync(\"openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj '/CN=\" + CONFIG.get(\"domain\") + \"' -keyout \" + CONFIG.get(\"private-key-pem\") + \" -out \" + CONFIG.get(\"private-cert-pem\"));\n }\n break;\n case \"letsencrypt\":\n if (isWindows()) {\n throw Error(\"Letsencrypt certificate is not supported in Windows\");\n } else {\n var prehook_posthook = \"--pre-hook \\\"service qcobjects stop\\\" --post-hook=\\\"service qcobjects start\\\"\";\n stdout = execSync(`certbot -n -d ${CONFIG.get(\"domain\")} certonly --standalone ${prehook_posthook}`);\n }\n break;\n default:\n break;\n }\n\n }\n }\n\n const __main__ = new Main();\n})().catch(e => console.error(e));"],
5
+ "mappings": ";;;AAsBA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,OAAO;AACP,SAAS,cAAc,cAAc;AAAA,CAEpC,YAAY;AACX;AACA,QAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AACjD,QAAM,eAAe,KAAK,QAAQ,WAAW,mBAAmB,IAAI;AACpE,QAAM,YAAY,6BAAM;AAEtB,WAAO,GAAG,SAAS,EAAE,YAAY,EAAE,WAAW,KAAK;AAAA,EACrD,GAHkB;AAIlB,QAAM,QAAQ,6BAAM;AAElB,WAAO,GAAG,SAAS,EAAE,YAAY,EAAE,WAAW,QAAQ;AAAA,EACxD,GAHc;AAKd,QAAM,EAAE,SAAS,IAAI,MAAM,OAAO,oBAAoB;AAAA,EAEtD,MAAM,aAAa,aAAa;AAAA,IA1ClC,OA0CkC;AAAA;AAAA;AAAA,IAC9B,cAAc;AACZ,YAAM;AACN,WAAK,MAAM;AAAA,IACb;AAAA,IAEA,QAAQ;AACN,YAAM,uBAAuB,OAAO,IAAI,wBAAwB,aAAa;AAC7E,UAAI;AACJ,cAAQ,sBAAsB;AAAA,QAC5B,KAAK;AAGH,cAAI,UAAU,GAAG;AACf,qBAAS,SAAS,kEAAmE,OAAO,IAAI,QAAQ,IAAI,gBAAiB,OAAO,IAAI,iBAAiB,IAAI,WAAW,OAAO,IAAI,kBAAkB,CAAC;AAAA,UACxM,OAAO;AACL,qBAAS,SAAS,kEAAkE,OAAO,IAAI,QAAQ,IAAI,gBAAgB,OAAO,IAAI,iBAAiB,IAAI,WAAW,OAAO,IAAI,kBAAkB,CAAC;AAAA,UACtM;AACA;AAAA,QACF,KAAK;AACH,cAAI,UAAU,GAAG;AACf,kBAAM,MAAM,qDAAqD;AAAA,UACnE,OAAO;AACL,gBAAI,mBAAmB;AACvB,qBAAS,SAAS,iBAAiB,OAAO,IAAI,QAAQ,CAAC,0BAA0B,gBAAgB,EAAE;AAAA,UACrG;AACA;AAAA,QACF;AACE;AAAA,MACJ;AAAA,IAEF;AAAA,EACF;AAEA,QAAM,WAAW,IAAI,KAAK;AAC5B,GAAG,EAAE,MAAM,OAAK,QAAQ,MAAM,CAAC,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-gae-http-server.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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 path from \"path\";\nimport { InheritClass, New, logger } from \"qcobjects\";\nimport \"./defaultsettings\";\nimport { HTTPServer } from \"./main-http-gae-server\";\n\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\n\nclass Main extends InheritClass {\n\n constructor() {\n super();\n const app = New(HTTPServer);\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n}\n\nconst __main__ = new Main();\n"],
5
- "mappings": ";;;AAgCA,OAAO,UAAU;AACjB,SAAS,cAAc,KAAK,cAAc;AAC1C,OAAO;AACP,SAAS,kBAAkB;AAG3B,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAGjD,MAAM,aAAa,aAAa;AAAA,EAzChC,OAyCgC;AAAA;AAAA;AAAA,EAE9B,cAAc;AACZ,UAAM;AACN,UAAM,MAAM,IAAI,UAAU;AAC1B,QAAI,MAAM;AAEV,WAAO,MAAM,aAAa;AAAA,EAE5B;AACF;AAEA,MAAM,WAAW,IAAI,KAAK;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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 path from \"path\";\nimport { InheritClass, New, logger } from \"qcobjects\";\nimport \"./defaultsettings\";\nimport { HTTPServer } from \"./main-http-gae-server\";\n\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\n\nclass Main extends InheritClass {\n\n constructor() {\n super();\n const app = New(HTTPServer);\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n}\n\nconst __main__ = new Main();\n"],
5
+ "mappings": ";;;AAuBA,OAAO,UAAU;AACjB,SAAS,cAAc,KAAK,cAAc;AAC1C,OAAO;AACP,SAAS,kBAAkB;AAG3B,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAGjD,MAAM,aAAa,aAAa;AAAA,EAhChC,OAgCgC;AAAA;AAAA;AAAA,EAE9B,cAAc;AACZ,UAAM;AACN,UAAM,MAAM,IAAI,UAAU;AAC1B,QAAI,MAAM;AAEV,WAAO,MAAM,aAAa;AAAA,EAE5B;AACF;AAEA,MAAM,WAAW,IAAI,KAAK;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-http-server.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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 path from \"path\";\nimport { InheritClass, New, logger } from \"qcobjects\";\nimport \"./defaultsettings\";\nimport { HTTPServer } from \"./main-http-server\";\n\n const absolutePath = path.resolve(__dirname, \"./\");\n\n\n\n\n class Main extends InheritClass {\n constructor() {\n super();\n const app = New(HTTPServer);\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n }\n\n const __main__ = new Main();\n"],
5
- "mappings": ";;;AAgCA,OAAO,UAAU;AACjB,SAAS,cAAc,KAAK,cAAc;AAC1C,OAAO;AACP,SAAS,kBAAkB;AAEzB,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAKjD,MAAM,aAAa,aAAa;AAAA,EA1ClC,OA0CkC;AAAA;AAAA;AAAA,EAC9B,cAAc;AACZ,UAAM;AACN,UAAM,MAAM,IAAI,UAAU;AAC1B,QAAI,MAAM;AAEV,WAAO,MAAM,aAAa;AAAA,EAE5B;AACF;AAEA,MAAM,WAAW,IAAI,KAAK;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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 path from \"path\";\nimport { InheritClass, New, logger } from \"qcobjects\";\nimport \"./defaultsettings\";\nimport { HTTPServer } from \"./main-http-server\";\n\n const absolutePath = path.resolve(__dirname, \"./\");\n\n\n\n\n class Main extends InheritClass {\n constructor() {\n super();\n const app = New(HTTPServer);\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n }\n\n const __main__ = new Main();\n"],
5
+ "mappings": ";;;AAuBA,OAAO,UAAU;AACjB,SAAS,cAAc,KAAK,cAAc;AAC1C,OAAO;AACP,SAAS,kBAAkB;AAEzB,MAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAKjD,MAAM,aAAa,aAAa;AAAA,EAjClC,OAiCkC;AAAA;AAAA;AAAA,EAC9B,cAAc;AACZ,UAAM;AACN,UAAM,MAAM,IAAI,UAAU;AAC1B,QAAI,MAAM;AAEV,WAAO,MAAM,aAAa;AAAA,EAE5B;AACF;AAEA,MAAM,WAAW,IAAI,KAAK;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-http2-server.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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\nimport \"./defaultsettings\";\nimport {HTTPServer} from \"./main-http-server\";\nimport {HTTP2Server} from \"./main-http2-server\";\nimport {getProjectPath} from \"./defaultsettings\";\nimport { CONFIG, InheritClass, New, logger } from \"qcobjects\";\n\n\n(async () => {\n \"use strict\";\n const path = await import(\"path\");\n const absolutePath = path.resolve(__dirname, \"./\");\n\n class Main extends InheritClass {\n constructor() {\n super();\n\n const _ServerClass_ = (CONFIG.get(\"useLegacyHTTP\", false)) ? (HTTPServer) : (HTTP2Server);\n const app = New(_ServerClass_);\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n\n }\n\n const __main__ = new Main();\n})()\n.catch(e => console.error(e));"],
5
- "mappings": ";;;AAgCA,OAAO;AACP,SAAQ,kBAAiB;AACzB,SAAQ,mBAAkB;AAE1B,SAAS,QAAQ,cAAc,KAAK,cAAc;AAAA,CAGjD,YAAY;AACX;AACA,QAAM,OAAO,MAAM,OAAO,MAAM;AAChC,QAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAAA,EAEjD,MAAM,aAAa,aAAa;AAAA,IA5ClC,OA4CkC;AAAA;AAAA;AAAA,IAC9B,cAAc;AACZ,YAAM;AAEN,YAAM,gBAAiB,OAAO,IAAI,iBAAiB,KAAK,IAAM,aAAe;AAC7E,YAAM,MAAM,IAAI,aAAa;AAC7B,UAAI,MAAM;AAEV,aAAO,MAAM,aAAa;AAAA,IAE5B;AAAA,EAEF;AAEA,QAAM,WAAW,IAAI,KAAK;AAC5B,GAAG,EACF,MAAM,OAAK,QAAQ,MAAM,CAAC,CAAC;",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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\nimport \"./defaultsettings\";\nimport {HTTPServer} from \"./main-http-server\";\nimport {HTTP2Server} from \"./main-http2-server\";\nimport {getProjectPath} from \"./defaultsettings\";\nimport { CONFIG, InheritClass, New, logger } from \"qcobjects\";\n\n\n(async () => {\n \"use strict\";\n const path = await import(\"path\");\n const absolutePath = path.resolve(__dirname, \"./\");\n\n class Main extends InheritClass {\n constructor() {\n super();\n\n const _ServerClass_ = (CONFIG.get(\"useLegacyHTTP\", false)) ? (HTTPServer) : (HTTP2Server);\n const app = New(_ServerClass_);\n app.start();\n\n logger.debug(\"initialized\");\n\n }\n\n }\n\n const __main__ = new Main();\n})()\n.catch(e => console.error(e));"],
5
+ "mappings": ";;;AAuBA,OAAO;AACP,SAAQ,kBAAiB;AACzB,SAAQ,mBAAkB;AAE1B,SAAS,QAAQ,cAAc,KAAK,cAAc;AAAA,CAGjD,YAAY;AACX;AACA,QAAM,OAAO,MAAM,OAAO,MAAM;AAChC,QAAM,eAAe,KAAK,QAAQ,WAAW,IAAI;AAAA,EAEjD,MAAM,aAAa,aAAa;AAAA,IAnClC,OAmCkC;AAAA;AAAA;AAAA,IAC9B,cAAc;AACZ,YAAM;AAEN,YAAM,gBAAiB,OAAO,IAAI,iBAAiB,KAAK,IAAM,aAAe;AAC7E,YAAM,MAAM,IAAI,aAAa;AAC7B,UAAI,MAAM;AAEV,aAAO,MAAM,aAAa;AAAA,IAE5B;AAAA,EAEF;AAEA,QAAM,WAAW,IAAI,KAAK;AAC5B,GAAG,EACF,MAAM,OAAK,QAAQ,MAAM,CAAC,CAAC;",
6
6
  "names": []
7
7
  }
@@ -3,7 +3,11 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
5
  var __commonJS = (cb, mod) => function __require() {
6
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
6
+ try {
7
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
8
+ } catch (e) {
9
+ throw mod = 0, e;
10
+ }
7
11
  };
8
12
  import path from "path";
9
13
  import vm from "vm";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/qcobjects-shell.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\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\nconst welcometo = \"Welcome to \\n\";\nconst instructions = \"Type:\\n .exit to quit\\n .help for see a quick guide\\n And any other command to execute like pure javascript \\n All the QCObjects stuff is already loaded for you\";\n//const logo = ' .88888. a88888b. .88888. dP oo dP \\r\\nd8\\' `8b d8\\' `88 d8\\' `8b 88 88 \\r\\n88 88 88 88 88 88d888b. dP .d8888b. .d8888b. d8888P .d8888b. \\r\\n88 db 88 88 88 88 88\\' `88 88 88ooood8 88\\' `\\\"\\\" 88 Y8ooooo. \\r\\nY8. Y88P Y8. .88 Y8. .8P 88. .88 88 88. ... 88. ... 88 88 \\r\\n `8888PY8b Y88888P\\' `8888P\\' 88Y8888\\' 88 `88888P\\' `88888P\\' dP `88888P\\' \\r\\noooooooooooooooooooooooooooooooooooooooo88~oooooooooooooooooooooooooooooooooo\\r\\n dP ';\nconst 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\\\" \";\nimport path from \"path\";\nconst absolutePath = path.resolve( __dirname, \"./\" );\n\nimport vm from \"vm\";\n\nimport {InheritClass, global} from \"qcobjects\";\nimport \"./defaultsettings\";\nimport readline from \"readline\";\n\n\nclass Main extends InheritClass {\n constructor(){\n super();\n this.start();\n }\n\n start (){\n const sandbox = {\n require:require,\n module:module,\n __dirname:\"./\",\n __filename:\"qcobjects-shell-file.js\"\n };\n global.context = vm.createContext(sandbox);\n \n const runScript = (code: string,logOutput=false)=>{\n const options = {filename:sandbox.__filename};\n \n const backgroundRunScript = (code: string):any=>{\n var output = vm.runInContext(code,global.context,options);\n return output;\n };\n \n var output = backgroundRunScript(code);\n \n if (logOutput && typeof output !== \"undefined\"){\n console.log(output);\n }\n };\n \n const syncGlobal = ()=>{\n var s = \"Object.assign(this,this.constructor.constructor('return this')())\";\n runScript(s);\n };\n \n readline.emitKeypressEvents(process.stdin);\n if (process.stdin.isTTY)\n process.stdin.setRawMode(true);\n \n const qcobjects_version = global.__get_version_string__();\n \n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n prompt: qcobjects_version + \" >\"\n });\n \n const protected_symbols = [ \"clearInterval\",\n \"clearTimeout\",\n \"setInterval\",\n \"setTimeout\", \"queueMicrotask\",\n \"clearImmediate\", \"setImmediate\", \"_asyncLoad\",\n \"_fireAsyncLoad\", \"asyncLoad\", \"logger\",\n \"_Crypt\", \"CONFIG\", \"waitUntil\",\n \"_super_\", \"ComplexStorageCache\", \"TagElements\",\n \"onload\", \"InheritClass\", \"Component\",\n \"Controller\", \"View\", \"Service\",\n \"JSONService\", \"ConfigService\", \"VO\",\n \"serviceLoader\", \"componentLoader\", \"ComponentURI\",\n \"SourceJS\", \"SourceCSS\", \"ArrayList\",\n \"ArrayCollection\", \"Effect\", \"Timer\",\n \"Export\", \"Import\", \"Package\",\n \"Class\", \"New\", \"Tag\",\n \"Ready\", \"Contact\", \"FormField\",\n \"ButtonField\", \"InputField\", \"TextField\",\n \"EmailField\", \"GridComponent\", \"GridController\",\n \"GridView\", \"Move\", \"RotateX\",\n \"RotateY\", \"RotateZ\", \"Rotate\",\n \"Fade\", \"Radius\", \"CanvasTool\",\n \"BasicLayout\"\n ];\n \n const preloaded_scripts = [\n \"require('qcobjects')\",\n \"Object.assign(this,this.constructor.constructor('return this')())\"\n ];\n \n preloaded_scripts.map(preloaded_script =>\n runScript(preloaded_script.trim())\n );\n \n \n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n rl.prompt(true);\n \n rl.on(\"line\", (line) => {\n var codeline = line.trim();\n switch (true) {\n case codeline==\"hello\":\n console.log(\"world!\");\n break;\n case codeline==\".exit\":\n rl.close();\n break;\n default:\n try{\n runScript(codeline,true);\n syncGlobal.bind(sandbox)();\n }catch (e){\n console.log(\"An exeption ocurred while trying to run your awesome code! \");\n console.log(e);\n }\n break;\n }\n rl.prompt();\n }).on(\"close\", () => {\n console.log(\"Thank you for using QCObjects.\");\n console.log(\"Have a nice day!\");\n process.exit(0);\n });\n \n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * QCObjects Framework CLI\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QCObjects is licensed under the MIT License\n * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)\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\nconst welcometo = \"Welcome to \\n\";\nconst instructions = \"Type:\\n .exit to quit\\n .help for see a quick guide\\n And any other command to execute like pure javascript \\n All the QCObjects stuff is already loaded for you\";\n//const logo = ' .88888. a88888b. .88888. dP oo dP \\r\\nd8\\' `8b d8\\' `88 d8\\' `8b 88 88 \\r\\n88 88 88 88 88 88d888b. dP .d8888b. .d8888b. d8888P .d8888b. \\r\\n88 db 88 88 88 88 88\\' `88 88 88ooood8 88\\' `\\\"\\\" 88 Y8ooooo. \\r\\nY8. Y88P Y8. .88 Y8. .8P 88. .88 88 88. ... 88. ... 88 88 \\r\\n `8888PY8b Y88888P\\' `8888P\\' 88Y8888\\' 88 `88888P\\' `88888P\\' dP `88888P\\' \\r\\noooooooooooooooooooooooooooooooooooooooo88~oooooooooooooooooooooooooooooooooo\\r\\n dP ';\nconst 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\\\" \";\nimport path from \"path\";\nconst absolutePath = path.resolve( __dirname, \"./\" );\n\nimport vm from \"vm\";\n\nimport {InheritClass, global} from \"qcobjects\";\nimport \"./defaultsettings\";\nimport readline from \"readline\";\n\n\nclass Main extends InheritClass {\n constructor(){\n super();\n this.start();\n }\n\n start (){\n const sandbox = {\n require:require,\n module:module,\n __dirname:\"./\",\n __filename:\"qcobjects-shell-file.js\"\n };\n global.context = vm.createContext(sandbox);\n \n const runScript = (code: string,logOutput=false)=>{\n const options = {filename:sandbox.__filename};\n \n const backgroundRunScript = (code: string):any=>{\n var output = vm.runInContext(code,global.context,options);\n return output;\n };\n \n var output = backgroundRunScript(code);\n \n if (logOutput && typeof output !== \"undefined\"){\n console.log(output);\n }\n };\n \n const syncGlobal = ()=>{\n var s = \"Object.assign(this,this.constructor.constructor('return this')())\";\n runScript(s);\n };\n \n readline.emitKeypressEvents(process.stdin);\n if (process.stdin.isTTY)\n process.stdin.setRawMode(true);\n \n const qcobjects_version = global.__get_version_string__();\n \n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n prompt: qcobjects_version + \" >\"\n });\n \n const protected_symbols = [ \"clearInterval\",\n \"clearTimeout\",\n \"setInterval\",\n \"setTimeout\", \"queueMicrotask\",\n \"clearImmediate\", \"setImmediate\", \"_asyncLoad\",\n \"_fireAsyncLoad\", \"asyncLoad\", \"logger\",\n \"_Crypt\", \"CONFIG\", \"waitUntil\",\n \"_super_\", \"ComplexStorageCache\", \"TagElements\",\n \"onload\", \"InheritClass\", \"Component\",\n \"Controller\", \"View\", \"Service\",\n \"JSONService\", \"ConfigService\", \"VO\",\n \"serviceLoader\", \"componentLoader\", \"ComponentURI\",\n \"SourceJS\", \"SourceCSS\", \"ArrayList\",\n \"ArrayCollection\", \"Effect\", \"Timer\",\n \"Export\", \"Import\", \"Package\",\n \"Class\", \"New\", \"Tag\",\n \"Ready\", \"Contact\", \"FormField\",\n \"ButtonField\", \"InputField\", \"TextField\",\n \"EmailField\", \"GridComponent\", \"GridController\",\n \"GridView\", \"Move\", \"RotateX\",\n \"RotateY\", \"RotateZ\", \"Rotate\",\n \"Fade\", \"Radius\", \"CanvasTool\",\n \"BasicLayout\"\n ];\n \n const preloaded_scripts = [\n \"require('qcobjects')\",\n \"Object.assign(this,this.constructor.constructor('return this')())\"\n ];\n \n preloaded_scripts.map(preloaded_script =>\n runScript(preloaded_script.trim())\n );\n \n \n console.log(welcometo);\n console.log(logo);\n console.log(instructions);\n rl.prompt(true);\n \n rl.on(\"line\", (line) => {\n var codeline = line.trim();\n switch (true) {\n case codeline==\"hello\":\n console.log(\"world!\");\n break;\n case codeline==\".exit\":\n rl.close();\n break;\n default:\n try{\n runScript(codeline,true);\n syncGlobal.bind(sandbox)();\n }catch (e){\n console.log(\"An exeption ocurred while trying to run your awesome code! \");\n console.log(e);\n }\n break;\n }\n rl.prompt();\n }).on(\"close\", () => {\n console.log(\"Thank you for using QCObjects.\");\n console.log(\"Have a nice day!\");\n process.exit(0);\n });\n \n }\n}"],
5
+ "mappings": "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",
6
6
  "names": ["code", "output"]
7
7
  }
@@ -5,17 +5,8 @@
5
5
  * Author: Jean Machuca <correojean@gmail.com>
6
6
  *
7
7
  * Cross Browser Javascript Framework for MVC Patterns
8
- * QuickCorp/QCObjects is licensed under the
9
- * GNU Lesser General Public License v3.0
10
- * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)
11
- *
12
- * Permissions of this copyleft license are conditioned on making available
13
- * complete source code of licensed works and modifications under the same
14
- * license or the GNU GPLv3. Copyright and license notices must be preserved.
15
- * Contributors provide an express grant of patent rights. However, a larger
16
- * work using the licensed work through interfaces provided by the licensed
17
- * work may be distributed under different terms and without source code for
18
- * the larger work.
8
+ * QCObjects is licensed under the MIT License
9
+ * [LICENSE] (https://github.com/QCObjects/qcobjects-cli/blob/main/LICENSE.txt)
19
10
  *
20
11
  * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>
21
12
  *