qcobjects-cli 2.5.143-beta → 2.5.144-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/collaboration-features.mdc +25 -0
- package/.cursor/rules/development-guidelines.mdc +37 -0
- package/.cursor/rules/project-structure.mdc +36 -0
- package/.dockerignore +0 -0
- package/.github/FUNDING.yml +0 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- package/.github/ISSUE_TEMPLATE/custom.md +0 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- package/.github/ISSUE_TEMPLATE/issue-template.md +0 -0
- package/.github/workflows/ci.yml +26 -0
- package/.github/workflows/codeql-analysis.yml +0 -0
- package/.github/workflows/main-pr-source.yml +26 -0
- package/.github/workflows/npmpublish-beta.yml +20 -13
- package/.github/workflows/npmpublish-lts.yml +20 -13
- package/.github/workflows/npmpublish-main.yml +19 -12
- package/.github/workflows/open-pr-to-development.yml +70 -0
- package/.gitlab-ci.yml +0 -0
- package/.opencode/instructions/git-workflow.md +46 -0
- package/.pre-commit-config.yaml +9 -0
- package/AGENTS.md +59 -0
- package/CHANGELOG.md +0 -0
- package/README.md +75 -0
- package/VERSION +1 -1
- package/build-esbuild-esm.js +180 -0
- package/build-esbuild.js +182 -208
- package/deno.json +0 -0
- package/dev-requirements.txt +5 -0
- package/eslint.config.mjs +0 -0
- package/mod.ts +0 -0
- package/package.json +45 -44
- package/public/browser/api-client_services.js.map +1 -1
- package/public/browser/backend/backend-microservice-static.js +211 -219
- package/public/browser/backend/backend-microservice-static.js.map +2 -2
- package/public/browser/backend/backend-php.js +227 -231
- package/public/browser/backend/backend-php.js.map +3 -3
- package/public/browser/cli-commands-build-esbuild.js +326 -0
- package/public/browser/cli-commands-build-esbuild.js.map +7 -0
- package/public/browser/cli-commands-build-typescript.js +114 -0
- package/public/browser/cli-commands-build-typescript.js.map +7 -0
- package/public/browser/cli-commands-jira.js.map +1 -1
- package/public/browser/cli-commands-version.js.map +1 -1
- package/public/browser/cli-commands.js +4 -0
- package/public/browser/cli-commands.js.map +2 -2
- package/public/browser/cli-main.js.map +1 -1
- package/public/browser/client_services.js.map +1 -1
- package/public/browser/collab-server.js.map +1 -1
- package/public/browser/common-pipelog.js.map +1 -1
- package/public/browser/defaultsettings.js +68 -27
- package/public/browser/defaultsettings.js.map +3 -3
- package/public/browser/enterprise-commands.js.map +1 -1
- package/public/browser/main-file.js.map +1 -1
- package/public/browser/main-http-gae-server.js.map +1 -1
- package/public/browser/main-http-server.js.map +1 -1
- package/public/browser/main-http2-server.js.map +1 -1
- package/public/browser/qcobjects-cli.js.map +1 -1
- package/public/browser/qcobjects-collab.js +16 -24
- package/public/browser/qcobjects-collab.js.map +2 -2
- package/public/browser/qcobjects-createcert.js +46 -54
- package/public/browser/qcobjects-createcert.js.map +2 -2
- package/public/browser/qcobjects-gae-http-server.js +16 -24
- package/public/browser/qcobjects-gae-http-server.js.map +2 -2
- package/public/browser/qcobjects-http-server.js +16 -24
- package/public/browser/qcobjects-http-server.js.map +2 -2
- package/public/browser/qcobjects-http2-server.js +21 -30
- package/public/browser/qcobjects-http2-server.js.map +2 -2
- package/public/browser/qcobjects-shell.js.map +1 -1
- package/public/browser/templates/apps/spa-local.html +0 -0
- package/public/browser/templates/apps/spa-local.js +0 -0
- package/public/browser/templates/pwa/sw.js +0 -0
- package/public/browser/types/global/index.d.js +0 -9
- package/public/browser/types/global/index.d.js.map +3 -3
- package/public/cjs/api-client_services.js +74 -0
- package/public/cjs/api-client_services.js.map +1 -0
- package/public/cjs/backend/backend-microservice-static.js +255 -0
- package/public/cjs/backend/backend-microservice-static.js.map +1 -0
- package/public/cjs/backend/backend-php.js +317 -0
- package/public/cjs/backend/backend-php.js.map +1 -0
- package/public/cjs/cli-commands-build-esbuild.js +341 -0
- package/public/cjs/cli-commands-build-esbuild.js.map +1 -0
- package/public/cjs/cli-commands-build-typescript.js +127 -0
- package/public/cjs/cli-commands-build-typescript.js.map +1 -0
- package/public/cjs/cli-commands-jira.js +115 -0
- package/public/cjs/cli-commands-jira.js.map +1 -0
- package/public/cjs/cli-commands-publish-static.js +108 -0
- package/public/cjs/cli-commands-publish-static.js.map +1 -0
- package/public/cjs/cli-commands-version.js +250 -0
- package/public/cjs/cli-commands-version.js.map +1 -0
- package/public/cjs/cli-commands.js +73 -0
- package/public/cjs/cli-commands.js.map +1 -0
- package/public/cjs/cli-main.js +487 -0
- package/public/cjs/cli-main.js.map +1 -0
- package/public/cjs/client_services.js +80 -0
- package/public/cjs/client_services.js.map +1 -0
- package/public/cjs/collab-server.js +404 -0
- package/public/cjs/collab-server.js.map +1 -0
- package/public/cjs/common-pipelog.js +57 -0
- package/public/cjs/common-pipelog.js.map +1 -0
- package/public/cjs/defaultsettings.js +496 -0
- package/public/cjs/defaultsettings.js.map +1 -0
- package/public/cjs/enterprise-commands.js +173 -0
- package/public/cjs/enterprise-commands.js.map +1 -0
- package/public/cjs/index.js +38 -0
- package/public/cjs/index.js.map +1 -0
- package/public/cjs/main-file.js +161 -0
- package/public/cjs/main-file.js.map +1 -0
- package/public/cjs/main-http-gae-server.js +498 -0
- package/public/cjs/main-http-gae-server.js.map +1 -0
- package/public/cjs/main-http-server.js +540 -0
- package/public/cjs/main-http-server.js.map +1 -0
- package/public/cjs/main-http2-server.js +398 -0
- package/public/cjs/main-http2-server.js.map +1 -0
- package/public/cjs/qcobjects-cli.js +105 -0
- package/public/cjs/qcobjects-cli.js.map +1 -0
- package/public/cjs/qcobjects-collab.js +51 -0
- package/public/cjs/qcobjects-collab.js.map +1 -0
- package/public/cjs/qcobjects-createcert.js +89 -0
- package/public/cjs/qcobjects-createcert.js.map +1 -0
- package/public/cjs/qcobjects-gae-http-server.js +51 -0
- package/public/cjs/qcobjects-gae-http-server.js.map +1 -0
- package/public/cjs/qcobjects-http-server.js +51 -0
- package/public/cjs/qcobjects-http-server.js.map +1 -0
- package/public/cjs/qcobjects-http2-server.js +54 -0
- package/public/cjs/qcobjects-http2-server.js.map +1 -0
- package/public/cjs/qcobjects-shell.js +145 -0
- package/public/cjs/qcobjects-shell.js.map +1 -0
- package/public/cjs/templates/apps/spa-local.html +0 -0
- package/public/cjs/templates/apps/spa-local.js +0 -0
- package/public/cjs/templates/pwa/sw.js +0 -0
- package/public/esm/api-client_services.mjs.map +1 -1
- package/public/esm/backend/backend-microservice-static.mjs +207 -216
- package/public/esm/backend/backend-microservice-static.mjs.map +2 -2
- package/public/esm/backend/backend-php.mjs +228 -232
- package/public/esm/backend/backend-php.mjs.map +2 -2
- package/public/esm/cli-commands-build-esbuild.mjs +295 -0
- package/public/esm/cli-commands-build-esbuild.mjs.map +7 -0
- package/public/esm/cli-commands-build-typescript.mjs +83 -0
- package/public/esm/cli-commands-build-typescript.mjs.map +7 -0
- package/public/esm/cli-commands-jira.mjs +1 -1
- package/public/esm/cli-commands-jira.mjs.map +1 -1
- package/public/esm/cli-commands-version.mjs.map +1 -1
- package/public/esm/cli-commands.mjs +7 -3
- package/public/esm/cli-commands.mjs.map +2 -2
- package/public/esm/cli-main.mjs +6 -6
- package/public/esm/cli-main.mjs.map +1 -1
- package/public/esm/client_services.mjs.map +1 -1
- package/public/esm/collab-server.mjs.map +1 -1
- package/public/esm/common-pipelog.mjs.map +1 -1
- package/public/esm/defaultsettings.mjs +68 -27
- package/public/esm/defaultsettings.mjs.map +3 -3
- package/public/esm/enterprise-commands.mjs.map +1 -1
- package/public/esm/index.mjs +1 -1
- package/public/esm/main-file.mjs.map +1 -1
- package/public/esm/main-http-gae-server.mjs +2 -2
- package/public/esm/main-http-gae-server.mjs.map +1 -1
- package/public/esm/main-http-server.mjs +2 -2
- package/public/esm/main-http-server.mjs.map +1 -1
- package/public/esm/main-http2-server.mjs +2 -2
- package/public/esm/main-http2-server.mjs.map +1 -1
- package/public/esm/qcobjects-cli.mjs +2 -2
- package/public/esm/qcobjects-cli.mjs.map +1 -1
- package/public/esm/qcobjects-collab.mjs +14 -23
- package/public/esm/qcobjects-collab.mjs.map +2 -2
- package/public/esm/qcobjects-createcert.mjs +43 -52
- package/public/esm/qcobjects-createcert.mjs.map +2 -2
- package/public/esm/qcobjects-gae-http-server.mjs +14 -23
- package/public/esm/qcobjects-gae-http-server.mjs.map +2 -2
- package/public/esm/qcobjects-http-server.mjs +14 -23
- package/public/esm/qcobjects-http-server.mjs.map +2 -2
- package/public/esm/qcobjects-http2-server.mjs +21 -31
- package/public/esm/qcobjects-http2-server.mjs.map +2 -2
- package/public/esm/qcobjects-shell.mjs +1 -1
- package/public/esm/qcobjects-shell.mjs.map +1 -1
- package/public/esm/templates/apps/spa-local.html +0 -0
- package/public/esm/templates/apps/spa-local.js +0 -0
- package/public/esm/templates/pwa/sw.js +0 -0
- package/public/esm/types/global/index.d.mjs +0 -9
- package/public/esm/types/global/index.d.mjs.map +3 -3
- package/public/types/index.d.ts +29 -3
- package/spec/support/jasmine.json +0 -0
- package/spec/testsSpec.ts +0 -0
- package/src/api-client_services.ts +1 -1
- package/src/backend/backend-microservice-static.ts +196 -196
- package/src/backend/backend-php.ts +240 -245
- package/src/cli-commands-build-esbuild.ts +375 -0
- package/src/cli-commands-build-typescript.ts +139 -0
- package/src/cli-commands-jira.ts +1 -1
- package/src/cli-commands-publish-static.ts +0 -0
- package/src/cli-commands-version.ts +1 -1
- package/src/cli-commands.ts +3 -1
- package/src/cli-main.ts +1 -1
- package/src/client_services.ts +1 -1
- package/src/collab-server.ts +1 -1
- package/src/common-pipelog.ts +1 -1
- package/src/defaultsettings.ts +65 -19
- package/src/enterprise-commands.ts +1 -1
- package/src/index.ts +0 -0
- package/src/main-file.ts +1 -1
- package/src/main-http-gae-server.ts +1 -1
- package/src/main-http-server.ts +1 -1
- package/src/main-http2-server.ts +1 -1
- package/src/qcobjects-cli.ts +1 -1
- package/src/qcobjects-collab.ts +1 -1
- package/src/qcobjects-createcert.ts +1 -1
- package/src/qcobjects-gae-http-server.ts +1 -1
- package/src/qcobjects-http-server.ts +1 -1
- package/src/qcobjects-http2-server.ts +4 -5
- package/src/qcobjects-shell.ts +1 -1
- package/src/templates/apps/spa-local.html +0 -0
- package/src/templates/apps/spa-local.js +0 -0
- package/src/templates/pwa/sw.js +0 -0
- package/src/types/global/index.d.ts +0 -0
- package/transpile.js +0 -0
- package/tsconfig.d.json +0 -0
- package/tsconfig.jasmine.json +0 -0
- package/tsconfig.json +3 -3
- package/public/cjs/api-client_services.cjs +0 -79
- package/public/cjs/api-client_services.cjs.map +0 -7
- package/public/cjs/backend/backend-microservice-static.cjs +0 -245
- package/public/cjs/backend/backend-microservice-static.cjs.map +0 -7
- package/public/cjs/backend/backend-php.cjs +0 -301
- package/public/cjs/backend/backend-php.cjs.map +0 -7
- package/public/cjs/cli-commands-jira.cjs +0 -112
- package/public/cjs/cli-commands-jira.cjs.map +0 -7
- package/public/cjs/cli-commands-publish-static.cjs +0 -109
- package/public/cjs/cli-commands-publish-static.cjs.map +0 -7
- package/public/cjs/cli-commands-version.cjs +0 -252
- package/public/cjs/cli-commands-version.cjs.map +0 -7
- package/public/cjs/cli-commands.cjs +0 -45
- package/public/cjs/cli-commands.cjs.map +0 -7
- package/public/cjs/cli-main.cjs +0 -417
- package/public/cjs/cli-main.cjs.map +0 -7
- package/public/cjs/client_services.cjs +0 -86
- package/public/cjs/client_services.cjs.map +0 -7
- package/public/cjs/collab-server.cjs +0 -444
- package/public/cjs/collab-server.cjs.map +0 -7
- package/public/cjs/common-pipelog.cjs +0 -50
- package/public/cjs/common-pipelog.cjs.map +0 -7
- package/public/cjs/defaultsettings.cjs +0 -432
- package/public/cjs/defaultsettings.cjs.map +0 -7
- package/public/cjs/enterprise-commands.cjs +0 -175
- package/public/cjs/enterprise-commands.cjs.map +0 -7
- package/public/cjs/index.cjs +0 -36
- package/public/cjs/index.cjs.map +0 -7
- package/public/cjs/main-file.cjs +0 -194
- package/public/cjs/main-file.cjs.map +0 -7
- package/public/cjs/main-http-gae-server.cjs +0 -522
- package/public/cjs/main-http-gae-server.cjs.map +0 -7
- package/public/cjs/main-http-server.cjs +0 -588
- package/public/cjs/main-http-server.cjs.map +0 -7
- package/public/cjs/main-http2-server.cjs +0 -431
- package/public/cjs/main-http2-server.cjs.map +0 -7
- package/public/cjs/qcobjects-cli.cjs +0 -92
- package/public/cjs/qcobjects-cli.cjs.map +0 -7
- package/public/cjs/qcobjects-collab.cjs +0 -43
- package/public/cjs/qcobjects-collab.cjs.map +0 -7
- package/public/cjs/qcobjects-createcert.cjs +0 -75
- package/public/cjs/qcobjects-createcert.cjs.map +0 -7
- package/public/cjs/qcobjects-gae-http-server.cjs +0 -43
- package/public/cjs/qcobjects-gae-http-server.cjs.map +0 -7
- package/public/cjs/qcobjects-http-server.cjs +0 -43
- package/public/cjs/qcobjects-http-server.cjs.map +0 -7
- package/public/cjs/qcobjects-http2-server.cjs +0 -49
- package/public/cjs/qcobjects-http2-server.cjs.map +0 -7
- package/public/cjs/qcobjects-shell.cjs +0 -185
- package/public/cjs/qcobjects-shell.cjs.map +0 -7
- package/public/cjs/types/global/index.d.cjs +0 -2
- package/public/cjs/types/global/index.d.cjs.map +0 -7
- package/public/types/index.d.ts.map +0 -1
- package/src/index.cts +0 -2
- package/src/index.mts +0 -2
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QCObjects CLI 2.5
|
|
3
|
+
* ________________
|
|
4
|
+
*
|
|
5
|
+
* Author: Jean Machuca <correojean@gmail.com>
|
|
6
|
+
*
|
|
7
|
+
* Cross Browser Javascript Framework for MVC Patterns
|
|
8
|
+
* QuickCorp/QCObjects is licensed under the
|
|
9
|
+
* GNU Lesser General Public License v3.0
|
|
10
|
+
* [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)
|
|
11
|
+
*
|
|
12
|
+
* Permissions of this copyleft license are conditioned on making available
|
|
13
|
+
* complete source code of licensed works and modifications under the same
|
|
14
|
+
* license or the GNU GPLv3. Copyright and license notices must be preserved.
|
|
15
|
+
* Contributors provide an express grant of patent rights. However, a larger
|
|
16
|
+
* work using the licensed work through interfaces provided by the licensed
|
|
17
|
+
* work may be distributed under different terms and without source code for
|
|
18
|
+
* the larger work.
|
|
19
|
+
*
|
|
20
|
+
* Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>
|
|
21
|
+
*
|
|
22
|
+
* Everyone is permitted to copy and distribute verbatim copies of this
|
|
23
|
+
* license document, but changing it is not allowed.
|
|
24
|
+
*/
|
|
25
|
+
/*eslint no-unused-vars: "off"*/
|
|
26
|
+
/*eslint no-redeclare: "off"*/
|
|
27
|
+
/*eslint no-empty: "off"*/
|
|
28
|
+
/*eslint strict: "off"*/
|
|
29
|
+
/*eslint no-mixed-operators: "off"*/
|
|
30
|
+
/*eslint no-undef: "off"*/
|
|
31
|
+
"use strict";
|
|
32
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
+
};
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HTTP2Server = void 0;
|
|
37
|
+
const qcobjects_1 = require("qcobjects");
|
|
38
|
+
const mime_1 = __importDefault(require("mime"));
|
|
39
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
40
|
+
const node_http2_1 = __importDefault(require("node:http2"));
|
|
41
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
42
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
43
|
+
const node_url_1 = __importDefault(require("node:url"));
|
|
44
|
+
const node_http_1 = __importDefault(require("node:http"));
|
|
45
|
+
const main_file_1 = require("./main-file");
|
|
46
|
+
const common_pipelog_1 = require("./common-pipelog");
|
|
47
|
+
const absolutePath = node_path_1.default.resolve(__dirname, "./");
|
|
48
|
+
const ImportMicroservice = function (microservicePackage) {
|
|
49
|
+
var _ret_;
|
|
50
|
+
var standardPath = (0, qcobjects_1.findPackageNodePath)(microservicePackage) || (0, qcobjects_1.findPackageNodePath)(microservicePackage + ".js");
|
|
51
|
+
if (standardPath !== null) {
|
|
52
|
+
_ret_ = (0, qcobjects_1.Import)(microservicePackage);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
var nonStandardPath = (0, qcobjects_1.findPackageNodePath)(absolutePath + "/backend/" + microservicePackage) || (0, qcobjects_1.findPackageNodePath)(absolutePath + "/backend/" + microservicePackage + ".js");
|
|
56
|
+
if (nonStandardPath !== null) {
|
|
57
|
+
_ret_ = (0, qcobjects_1.Import)(absolutePath + "/backend/" + microservicePackage);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
_ret_ = Promise.resolve((async () => (await import(microservicePackage)))());
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return _ret_;
|
|
64
|
+
};
|
|
65
|
+
class HTTP2ServerResponse extends qcobjects_1.InheritClass {
|
|
66
|
+
fileDispatcher;
|
|
67
|
+
request;
|
|
68
|
+
headers;
|
|
69
|
+
stream;
|
|
70
|
+
body;
|
|
71
|
+
constructor({ headers = {
|
|
72
|
+
":status": 200,
|
|
73
|
+
"content-type": "text/html",
|
|
74
|
+
"cache-control": qcobjects_1.CONFIG.get("cacheControl", "max-age=31536000")
|
|
75
|
+
}, body = "", request = null, fileDispatcher = null, stream = null }) {
|
|
76
|
+
super();
|
|
77
|
+
var self = this;
|
|
78
|
+
self.request = request || {};
|
|
79
|
+
self.stream = stream;
|
|
80
|
+
self.headers = headers;
|
|
81
|
+
self.body = body;
|
|
82
|
+
self.fileDispatcher = fileDispatcher;
|
|
83
|
+
// Initialize request properties if not set
|
|
84
|
+
if (!self.request.scriptname || !self.request.pathname) {
|
|
85
|
+
const defaultPath = "/";
|
|
86
|
+
self.request.pathname = self.request.pathname || defaultPath;
|
|
87
|
+
self.request.scriptname = self.request.scriptname || qcobjects_1.CONFIG.get("documentRootFileIndex", "index.html");
|
|
88
|
+
}
|
|
89
|
+
// Ensure documentRoot is set
|
|
90
|
+
if (!qcobjects_1.CONFIG.get("documentRoot")) {
|
|
91
|
+
qcobjects_1.CONFIG.set("documentRoot", node_path_1.default.join(process.cwd(), "public"));
|
|
92
|
+
}
|
|
93
|
+
self._generateResponse();
|
|
94
|
+
}
|
|
95
|
+
sendFile(stream, fileName) {
|
|
96
|
+
// read and send file content in the stream
|
|
97
|
+
try {
|
|
98
|
+
const fd = node_fs_1.default.openSync(fileName, "r");
|
|
99
|
+
const stat = node_fs_1.default.fstatSync(fd);
|
|
100
|
+
const headers = {
|
|
101
|
+
"content-length": stat.size,
|
|
102
|
+
"last-modified": stat.mtime.toUTCString(),
|
|
103
|
+
"content-type": mime_1.default.getType(fileName),
|
|
104
|
+
"cache-control": qcobjects_1.CONFIG.get("cacheControl", "max-age=31536000")
|
|
105
|
+
};
|
|
106
|
+
stream.respondWithFD(fd, headers);
|
|
107
|
+
stream.on("close", () => {
|
|
108
|
+
qcobjects_1.logger.debug("closing file " + fileName);
|
|
109
|
+
node_fs_1.default.closeSync(fd);
|
|
110
|
+
});
|
|
111
|
+
stream.end();
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
qcobjects_1.logger.debug("[HTTP2ServerResponse][sendFile][ERROR] Something went wrong when trying to send the response as file " + fileName);
|
|
115
|
+
if (e.errno == -2) {
|
|
116
|
+
const headers = {
|
|
117
|
+
":status": 404,
|
|
118
|
+
"content-type": mime_1.default.getType(fileName)
|
|
119
|
+
};
|
|
120
|
+
stream.respond(headers);
|
|
121
|
+
stream.write("<h1>404 - FILE NOT FOUND</h1>");
|
|
122
|
+
stream.on("close", () => {
|
|
123
|
+
qcobjects_1.logger.debug("closing file " + fileName);
|
|
124
|
+
});
|
|
125
|
+
stream.end();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
_generateResponse() {
|
|
130
|
+
var response = this;
|
|
131
|
+
response.fileDispatcher = (0, qcobjects_1.New)(main_file_1.FileDispatcher, {
|
|
132
|
+
scriptname: response.request.scriptname,
|
|
133
|
+
pathname: response.request.pathname,
|
|
134
|
+
done(headers, body, templateURI, isTemplate) {
|
|
135
|
+
response.headers = headers;
|
|
136
|
+
var stream = response.stream;
|
|
137
|
+
if (isTemplate) {
|
|
138
|
+
response.body = body;
|
|
139
|
+
stream.respond(response.headers);
|
|
140
|
+
stream.write(response.body);
|
|
141
|
+
stream.end();
|
|
142
|
+
}
|
|
143
|
+
else if (headers[":status"] == 200) {
|
|
144
|
+
response.sendFile(stream, templateURI);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
stream.respond(response.headers);
|
|
148
|
+
stream.end();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
class HTTP2ServerRequest extends qcobjects_1.InheritClass {
|
|
155
|
+
constructor({ scriptname = "", path = "", method = "", url = "", headers = null, flags = null, protocol = null, slashes = null, auth = null, host = null, port = null, hostname = null, hash = null, search = "", query = "", pathname = "", href = "" }) {
|
|
156
|
+
super({
|
|
157
|
+
scriptname,
|
|
158
|
+
path,
|
|
159
|
+
method,
|
|
160
|
+
url,
|
|
161
|
+
headers,
|
|
162
|
+
flags,
|
|
163
|
+
protocol,
|
|
164
|
+
slashes,
|
|
165
|
+
auth,
|
|
166
|
+
host,
|
|
167
|
+
port,
|
|
168
|
+
hostname,
|
|
169
|
+
hash,
|
|
170
|
+
search,
|
|
171
|
+
query,
|
|
172
|
+
pathname,
|
|
173
|
+
href
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
class HTTP2Server extends qcobjects_1.InheritClass {
|
|
178
|
+
server;
|
|
179
|
+
interceptorInstances;
|
|
180
|
+
request;
|
|
181
|
+
response;
|
|
182
|
+
constructor({ request = null, response = "", server = null, scriptname = "", interceptorInstances = [] }) {
|
|
183
|
+
super({
|
|
184
|
+
request,
|
|
185
|
+
response,
|
|
186
|
+
server,
|
|
187
|
+
scriptname,
|
|
188
|
+
interceptorInstances
|
|
189
|
+
});
|
|
190
|
+
const welcometo = "Welcome to \n";
|
|
191
|
+
const instructions = "HTTP2Server \n";
|
|
192
|
+
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\" ";
|
|
193
|
+
console.log(welcometo);
|
|
194
|
+
console.log(logo);
|
|
195
|
+
console.log(instructions);
|
|
196
|
+
qcobjects_1.logger.debug(this.showIPAddress());
|
|
197
|
+
qcobjects_1.logger.info("Listening on HTTP PORT: " + qcobjects_1.CONFIG.get("serverPortHTTP").toString());
|
|
198
|
+
qcobjects_1.logger.info("Listening on HTTPS PORT: " + qcobjects_1.CONFIG.get("serverPortHTTPS").toString());
|
|
199
|
+
qcobjects_1.logger.info("Go to: \n" + this.showPossibleURL());
|
|
200
|
+
const http2ServerInstance = this;
|
|
201
|
+
http2ServerInstance.server = node_http2_1.default.createSecureServer({
|
|
202
|
+
key: node_fs_1.default.readFileSync(qcobjects_1.CONFIG.get("private-key-pem")),
|
|
203
|
+
cert: node_fs_1.default.readFileSync(qcobjects_1.CONFIG.get("private-cert-pem")),
|
|
204
|
+
allowHTTP1: qcobjects_1.CONFIG.get("allowHTTP1"),
|
|
205
|
+
origins: ["https://" + qcobjects_1.CONFIG.get("domain"), "http://" + qcobjects_1.CONFIG.get("domain")]
|
|
206
|
+
});
|
|
207
|
+
server = http2ServerInstance.server;
|
|
208
|
+
server.on("error", (err) => console.error(err));
|
|
209
|
+
server.on("session", (session) => {
|
|
210
|
+
// Set altsvc for origin https://example.org:80
|
|
211
|
+
session.altsvc("h2=\":8000\"", "https://" + qcobjects_1.CONFIG.get("domain"));
|
|
212
|
+
session.altsvc("https=\":" + qcobjects_1.CONFIG.get("serverPortHTTPS") + "\"", "https://" + qcobjects_1.CONFIG.get("domain"));
|
|
213
|
+
session.altsvc("http=\":" + qcobjects_1.CONFIG.get("serverPortHTTP") + "\"", "http://" + qcobjects_1.CONFIG.get("domain"));
|
|
214
|
+
session.origin("https://" + qcobjects_1.CONFIG.get("domain"), "http://" + qcobjects_1.CONFIG.get("domain"));
|
|
215
|
+
});
|
|
216
|
+
if (qcobjects_1.global.get("backendAvailable")) {
|
|
217
|
+
qcobjects_1.logger.info("Loading backend interceptors...");
|
|
218
|
+
const interceptors = qcobjects_1.CONFIG.get("backend", {}).interceptors;
|
|
219
|
+
if (typeof interceptors !== "undefined") {
|
|
220
|
+
qcobjects_1.logger.info("Backend Interceptors Available");
|
|
221
|
+
interceptors.map((interceptor) => {
|
|
222
|
+
ImportMicroservice(interceptor.microservice);
|
|
223
|
+
var interceptorClassFactory = (0, qcobjects_1.ClassFactory)(interceptor.microservice + ".Interceptor");
|
|
224
|
+
var interceptorInstance = (0, qcobjects_1.New)(interceptorClassFactory, {
|
|
225
|
+
domain: qcobjects_1.CONFIG.get("domain"),
|
|
226
|
+
basePath: qcobjects_1.CONFIG.get("basePath"),
|
|
227
|
+
projectPath: qcobjects_1.CONFIG.get("projectPath"),
|
|
228
|
+
interceptor: interceptor,
|
|
229
|
+
server: server
|
|
230
|
+
});
|
|
231
|
+
http2ServerInstance.interceptorInstances.push(interceptorInstance);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
server.on("stream", (stream, headers, flags) => {
|
|
236
|
+
qcobjects_1.CONFIG.set("backendTimeout", qcobjects_1.CONFIG.get("backendTimeout") || 20000);
|
|
237
|
+
stream.session.setTimeout(qcobjects_1.CONFIG.get("backendTimeout"));
|
|
238
|
+
stream.session.setMaxListeners(9999999999);
|
|
239
|
+
var timeoutHandler = () => {
|
|
240
|
+
// end the stream on timeout
|
|
241
|
+
try {
|
|
242
|
+
if (!stream.destroyed) {
|
|
243
|
+
qcobjects_1.logger.info("A timeout occurred... " + qcobjects_1.CONFIG.get("backendTimeout").toString());
|
|
244
|
+
qcobjects_1.logger.info("Killing session...");
|
|
245
|
+
stream.respond({
|
|
246
|
+
":status": 500,
|
|
247
|
+
"content-type": "text/html"
|
|
248
|
+
});
|
|
249
|
+
stream.on("error", () => { });
|
|
250
|
+
stream.write("<h1>500 - INTERNAL SERVER ERROR (TIMEOUT)</h1>");
|
|
251
|
+
stream.end();
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
qcobjects_1.logger.debug("Session was normally finishing...");
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch (e) {
|
|
258
|
+
qcobjects_1.logger.debug(`An unhandled error occurred during timeout catching: ${e}`);
|
|
259
|
+
}
|
|
260
|
+
if (!stream.destroyed) {
|
|
261
|
+
stream.session.removeListener("timeout", timeoutHandler);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
server.removeListener("timeout", timeoutHandler);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
if (!stream.destroyed) {
|
|
268
|
+
stream.session.on("timeout", timeoutHandler);
|
|
269
|
+
}
|
|
270
|
+
stream.session.altsvc("h2=\":8000\"", stream.id);
|
|
271
|
+
stream.session.altsvc("https=\":" + qcobjects_1.CONFIG.get("serverPortHTTPS") + "\"", stream.id);
|
|
272
|
+
stream.session.altsvc("http=\":" + qcobjects_1.CONFIG.get("serverPortHTTP") + "\"", stream.id);
|
|
273
|
+
const request = Object.assign((0, qcobjects_1.New)(HTTP2ServerRequest), node_url_1.default.parse(headers[":path"]));
|
|
274
|
+
request.headers = headers;
|
|
275
|
+
request.flags = flags;
|
|
276
|
+
http2ServerInstance.request = request;
|
|
277
|
+
http2ServerInstance.request.method = headers[":method"];
|
|
278
|
+
http2ServerInstance.request.path = headers[":path"];
|
|
279
|
+
// Fix pathname and scriptname initialization
|
|
280
|
+
const pathParts = http2ServerInstance.request.pathname.split("/");
|
|
281
|
+
if (pathParts.length > 0) {
|
|
282
|
+
if (http2ServerInstance.request.pathname.indexOf(".") < 0) {
|
|
283
|
+
http2ServerInstance.request.scriptname = qcobjects_1.CONFIG.get("documentRootFileIndex", "index.html");
|
|
284
|
+
// Keep the original pathname as is, no need to reassign
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
http2ServerInstance.request.scriptname = pathParts[pathParts.length - 1];
|
|
288
|
+
http2ServerInstance.request.pathname = http2ServerInstance.request.pathname.substr(0, http2ServerInstance.request.pathname.lastIndexOf("/"));
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
http2ServerInstance.request.scriptname = qcobjects_1.CONFIG.get("documentRootFileIndex", "index.html");
|
|
293
|
+
http2ServerInstance.request.pathname = "/";
|
|
294
|
+
}
|
|
295
|
+
qcobjects_1.logger.debug(common_pipelog_1.PipeLog.pipe(this.request));
|
|
296
|
+
if (qcobjects_1.global.get("backendAvailable")) {
|
|
297
|
+
qcobjects_1.logger.info("Backend Microservices Available...");
|
|
298
|
+
qcobjects_1.logger.info("Loading backend routes...");
|
|
299
|
+
const routes = qcobjects_1.CONFIG.get("backend", {}).routes;
|
|
300
|
+
const selectedRoute = routes.filter((route) => {
|
|
301
|
+
const standardRoutePath = route.path.replace(/{(.*?)}/g, "(?<$1>.*)");
|
|
302
|
+
return (new RegExp(standardRoutePath, "g")).test(request.path);
|
|
303
|
+
});
|
|
304
|
+
if (selectedRoute.length > 0) {
|
|
305
|
+
selectedRoute.map((route) => {
|
|
306
|
+
const standardRoutePath = route.path.replace(/{(.*?)}/g, "(?<$1>.*)"); //allowing {param}
|
|
307
|
+
console.log(standardRoutePath);
|
|
308
|
+
const selectedRouteParams = {
|
|
309
|
+
...[...request.path.matchAll((new RegExp(standardRoutePath, "g")))][0]["groups"]
|
|
310
|
+
};
|
|
311
|
+
ImportMicroservice(route.microservice).then(function () {
|
|
312
|
+
qcobjects_1.logger.debug(`Trying to execute ${route.microservice + ".Microservice"}...`);
|
|
313
|
+
var microServiceClassFactory = (0, qcobjects_1.ClassFactory)(route.microservice + ".Microservice");
|
|
314
|
+
if (typeof microServiceClassFactory !== "undefined") {
|
|
315
|
+
http2ServerInstance.response = (0, qcobjects_1.New)(microServiceClassFactory, {
|
|
316
|
+
domain: qcobjects_1.CONFIG.get("domain"),
|
|
317
|
+
basePath: qcobjects_1.CONFIG.get("basePath"),
|
|
318
|
+
projectPath: qcobjects_1.CONFIG.get("projectPath"),
|
|
319
|
+
route: route,
|
|
320
|
+
routeParams: selectedRouteParams,
|
|
321
|
+
server: server,
|
|
322
|
+
stream: stream,
|
|
323
|
+
request: request
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
throw Error(`${route.microservice + ".Microservice"} not defined.`);
|
|
328
|
+
}
|
|
329
|
+
}).catch((e) => {
|
|
330
|
+
throw Error(e);
|
|
331
|
+
});
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
this.response = (0, qcobjects_1.New)(HTTP2ServerResponse, {
|
|
336
|
+
domain: qcobjects_1.CONFIG.get("domain"),
|
|
337
|
+
basePath: qcobjects_1.CONFIG.get("basePath"),
|
|
338
|
+
projectPath: qcobjects_1.CONFIG.get("projectPath"),
|
|
339
|
+
server: server,
|
|
340
|
+
stream: stream,
|
|
341
|
+
request: request
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
// ...
|
|
347
|
+
this.response = (0, qcobjects_1.New)(HTTP2ServerResponse, {
|
|
348
|
+
domain: qcobjects_1.CONFIG.get("domain"),
|
|
349
|
+
basePath: qcobjects_1.CONFIG.get("basePath"),
|
|
350
|
+
projectPath: qcobjects_1.CONFIG.get("projectPath"),
|
|
351
|
+
server: server,
|
|
352
|
+
stream: stream,
|
|
353
|
+
request: request
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
showIPAddress() {
|
|
359
|
+
var _ret_ = "";
|
|
360
|
+
var ifaces = node_os_1.default.networkInterfaces();
|
|
361
|
+
Object.keys(ifaces).forEach(function (iface) {
|
|
362
|
+
ifaces[iface]?.map(function (ipGroup) {
|
|
363
|
+
_ret_ += iface + ": " + common_pipelog_1.PipeLog.pipe(ipGroup) + "\n";
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
return _ret_;
|
|
367
|
+
}
|
|
368
|
+
showPossibleURL() {
|
|
369
|
+
let _ret_ = "";
|
|
370
|
+
const ifaces = node_os_1.default.networkInterfaces();
|
|
371
|
+
Object.keys(ifaces).forEach((iface) => {
|
|
372
|
+
ifaces[iface]?.forEach((ipGroup) => {
|
|
373
|
+
if (ipGroup.family.toLowerCase() === "ipv4") {
|
|
374
|
+
_ret_ += `http://${ipGroup.address}:${qcobjects_1.CONFIG.get("serverPortHTTP")}/\n`;
|
|
375
|
+
_ret_ += `https://${ipGroup.address}:${qcobjects_1.CONFIG.get("serverPortHTTPS")}/\n`;
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
});
|
|
379
|
+
return _ret_;
|
|
380
|
+
}
|
|
381
|
+
start() {
|
|
382
|
+
var server = this.server;
|
|
383
|
+
// http2 port is 8443 but normally is used 443 by replacing current https
|
|
384
|
+
const httpServer = node_http_1.default.createServer((req, res) => {
|
|
385
|
+
res.writeHead(301, {
|
|
386
|
+
Location: `https://${req.headers.host}${req.url}`
|
|
387
|
+
});
|
|
388
|
+
res.end();
|
|
389
|
+
});
|
|
390
|
+
httpServer.listen(qcobjects_1.CONFIG.get("serverPortHTTP"));
|
|
391
|
+
server.listen(qcobjects_1.CONFIG.get("serverPortHTTPS"));
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
exports.HTTP2Server = HTTP2Server;
|
|
395
|
+
(0, qcobjects_1.Package)("org.quickcorp.qcobjects.main.http2.server", [
|
|
396
|
+
HTTP2ServerResponse, HTTP2ServerRequest, HTTP2Server
|
|
397
|
+
]);
|
|
398
|
+
//# sourceMappingURL=main-http2-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-http2-server.js","sourceRoot":"","sources":["../../src/main-http2-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* QCObjects CLI 2.5
|
|
4
|
+
* ________________
|
|
5
|
+
*
|
|
6
|
+
* Author: Jean Machuca <correojean@gmail.com>
|
|
7
|
+
*
|
|
8
|
+
* Cross Browser Javascript Framework for MVC Patterns
|
|
9
|
+
* QuickCorp/QCObjects is licensed under the
|
|
10
|
+
* GNU Lesser General Public License v3.0
|
|
11
|
+
* [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)
|
|
12
|
+
*
|
|
13
|
+
* Permissions of this copyleft license are conditioned on making available
|
|
14
|
+
* complete source code of licensed works and modifications under the same
|
|
15
|
+
* license or the GNU GPLv3. Copyright and license notices must be preserved.
|
|
16
|
+
* Contributors provide an express grant of patent rights. However, a larger
|
|
17
|
+
* work using the licensed work through interfaces provided by the licensed
|
|
18
|
+
* work may be distributed under different terms and without source code for
|
|
19
|
+
* the larger work.
|
|
20
|
+
*
|
|
21
|
+
* Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>
|
|
22
|
+
*
|
|
23
|
+
* Everyone is permitted to copy and distribute verbatim copies of this
|
|
24
|
+
* license document, but changing it is not allowed.
|
|
25
|
+
*/
|
|
26
|
+
/*eslint no-unused-vars: "off"*/
|
|
27
|
+
/*eslint no-redeclare: "off"*/
|
|
28
|
+
/*eslint no-empty: "off"*/
|
|
29
|
+
/*eslint strict: "off"*/
|
|
30
|
+
/*eslint no-mixed-operators: "off"*/
|
|
31
|
+
/*eslint no-undef: "off"*/
|
|
32
|
+
"use strict";
|
|
33
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
34
|
+
if (k2 === undefined) k2 = k;
|
|
35
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
36
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
37
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
38
|
+
}
|
|
39
|
+
Object.defineProperty(o, k2, desc);
|
|
40
|
+
}) : (function(o, m, k, k2) {
|
|
41
|
+
if (k2 === undefined) k2 = k;
|
|
42
|
+
o[k2] = m[k];
|
|
43
|
+
}));
|
|
44
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
45
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
46
|
+
}) : function(o, v) {
|
|
47
|
+
o["default"] = v;
|
|
48
|
+
});
|
|
49
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
50
|
+
var ownKeys = function(o) {
|
|
51
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
52
|
+
var ar = [];
|
|
53
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
54
|
+
return ar;
|
|
55
|
+
};
|
|
56
|
+
return ownKeys(o);
|
|
57
|
+
};
|
|
58
|
+
return function (mod) {
|
|
59
|
+
if (mod && mod.__esModule) return mod;
|
|
60
|
+
var result = {};
|
|
61
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
62
|
+
__setModuleDefault(result, mod);
|
|
63
|
+
return result;
|
|
64
|
+
};
|
|
65
|
+
})();
|
|
66
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
+
exports.Main = exports.defaultSettings = void 0;
|
|
68
|
+
const qcobjects_1 = require("qcobjects");
|
|
69
|
+
qcobjects_1.logger.debugEnabled = false;
|
|
70
|
+
const welcometo = "Welcome to \n";
|
|
71
|
+
const instructions = `
|
|
72
|
+
Community Edition
|
|
73
|
+
=================
|
|
74
|
+
|
|
75
|
+
This edition has the most of features that you can use for free but if you want to
|
|
76
|
+
|
|
77
|
+
Upgrade to \u{1F3E2} Enterprise Edition,
|
|
78
|
+
type the command:
|
|
79
|
+
|
|
80
|
+
> qcobjects upgrade-to-enterprise
|
|
81
|
+
`;
|
|
82
|
+
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\" ";
|
|
83
|
+
if (process.argv.length < 3 || process.argv[2] === "create") {
|
|
84
|
+
console.log(welcometo);
|
|
85
|
+
console.log(logo);
|
|
86
|
+
console.log(instructions);
|
|
87
|
+
}
|
|
88
|
+
qcobjects_1.logger.debugEnabled = false;
|
|
89
|
+
qcobjects_1.logger.warnEnabled = false;
|
|
90
|
+
qcobjects_1.logger.infoEnabled = false;
|
|
91
|
+
exports.defaultSettings = __importStar(require("./defaultsettings"));
|
|
92
|
+
const cli_main_1 = require("./cli-main");
|
|
93
|
+
class Main extends qcobjects_1.InheritClass {
|
|
94
|
+
constructor() {
|
|
95
|
+
super();
|
|
96
|
+
const main = this;
|
|
97
|
+
const switchCommander = new cli_main_1.SwitchCommander();
|
|
98
|
+
switchCommander.initCommand();
|
|
99
|
+
qcobjects_1.logger.debug("initialized");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.Main = Main;
|
|
103
|
+
const __main__ = new Main();
|
|
104
|
+
exports.default = __main__;
|
|
105
|
+
//# sourceMappingURL=qcobjects-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qcobjects-cli.js","sourceRoot":"","sources":["../../src/qcobjects-cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;EAuBE;AACF,gCAAgC;AAChC,8BAA8B;AAC9B,0BAA0B;AAC1B,wBAAwB;AACxB,oCAAoC;AACpC,0BAA0B;AAC1B,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,yCAAgD;AAEhD,kBAAM,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B,MAAM,SAAS,GAAG,eAAe,CAAC;AAClC,MAAM,YAAY,GAAG;;;;;;;;;;CAUpB,CAAC;AACF,MAAM,IAAI,GAAG,o2BAAo2B,CAAC;AACl3B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AACD,kBAAM,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B,kBAAM,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B,kBAAM,CAAC,WAAW,GAAG,KAAK,CAAC;AAE3B,qEAAqD;AACrD,yCAA2C;AAE3C,MAAa,IAAK,SAAQ,wBAAY;IACpC;QACE,KAAK,EAAE,CAAC;QACR,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,eAAe,GAAG,IAAI,0BAAe,EAAE,CAAC;QAC9C,eAAe,CAAC,WAAW,EAAE,CAAC;QAE9B,kBAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAG9B,CAAC;CAEF;AAbD,oBAaC;AAED,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAG,CAAC;AAC7B,kBAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* QCObjects CLI 2.5
|
|
4
|
+
* ________________
|
|
5
|
+
*
|
|
6
|
+
* Author: Jean Machuca <correojean@gmail.com>
|
|
7
|
+
*
|
|
8
|
+
* Cross Browser Javascript Framework for MVC Patterns
|
|
9
|
+
* QuickCorp/QCObjects is licensed under the
|
|
10
|
+
* GNU Lesser General Public License v3.0
|
|
11
|
+
* [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)
|
|
12
|
+
*
|
|
13
|
+
* Permissions of this copyleft license are conditioned on making available
|
|
14
|
+
* complete source code of licensed works and modifications under the same
|
|
15
|
+
* license or the GNU GPLv3. Copyright and license notices must be preserved.
|
|
16
|
+
* Contributors provide an express grant of patent rights. However, a larger
|
|
17
|
+
* work using the licensed work through interfaces provided by the licensed
|
|
18
|
+
* work may be distributed under different terms and without source code for
|
|
19
|
+
* the larger work.
|
|
20
|
+
*
|
|
21
|
+
* Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>
|
|
22
|
+
*
|
|
23
|
+
* Everyone is permitted to copy and distribute verbatim copies of this
|
|
24
|
+
* license document, but changing it is not allowed.
|
|
25
|
+
*/
|
|
26
|
+
/*eslint no-unused-vars: "off"*/
|
|
27
|
+
/*eslint no-redeclare: "off"*/
|
|
28
|
+
/*eslint no-empty: "off"*/
|
|
29
|
+
/*eslint strict: "off"*/
|
|
30
|
+
/*eslint no-mixed-operators: "off"*/
|
|
31
|
+
/*eslint no-undef: "off"*/
|
|
32
|
+
"use strict";
|
|
33
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
34
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const path_1 = __importDefault(require("path"));
|
|
38
|
+
require("./defaultsettings");
|
|
39
|
+
const collab_server_1 = require("./collab-server");
|
|
40
|
+
const qcobjects_1 = require("qcobjects");
|
|
41
|
+
const absolutePath = path_1.default.resolve(__dirname, "./");
|
|
42
|
+
class Main extends qcobjects_1.InheritClass {
|
|
43
|
+
constructor() {
|
|
44
|
+
super();
|
|
45
|
+
const app = new collab_server_1.CollabServer();
|
|
46
|
+
app.start();
|
|
47
|
+
qcobjects_1.logger.debug("initialized");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const __main__ = new Main();
|
|
51
|
+
//# sourceMappingURL=qcobjects-collab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qcobjects-collab.js","sourceRoot":"","sources":["../../src/qcobjects-collab.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;EAuBE;AACF,gCAAgC;AAChC,8BAA8B;AAC9B,0BAA0B;AAC1B,wBAAwB;AACxB,oCAAoC;AACpC,0BAA0B;AAC1B,YAAY,CAAC;;;;;AACb,gDAAwB;AACxB,6BAA2B;AAC3B,mDAA6C;AAE7C,yCAAiD;AAC/C,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEnD,MAAM,IAAK,SAAQ,wBAAY;IAC7B;QACE,KAAK,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,IAAI,4BAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,kBAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE9B,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC"}
|