qcobjects-cli 2.5.143-beta → 2.5.145-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/collaboration-features.mdc +25 -0
- package/.cursor/rules/development-guidelines.mdc +37 -0
- package/.cursor/rules/project-structure.mdc +36 -0
- package/.dockerignore +0 -0
- package/.github/FUNDING.yml +0 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- package/.github/ISSUE_TEMPLATE/custom.md +0 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- package/.github/ISSUE_TEMPLATE/issue-template.md +0 -0
- package/.github/workflows/ci.yml +26 -0
- package/.github/workflows/codeql-analysis.yml +0 -0
- package/.github/workflows/main-pr-source.yml +26 -0
- package/.github/workflows/npmpublish-beta.yml +18 -14
- package/.github/workflows/npmpublish-lts.yml +18 -14
- package/.github/workflows/npmpublish-main.yml +17 -13
- package/.github/workflows/open-pr-to-development.yml +70 -0
- package/.opencode/instructions/git-workflow.md +46 -0
- package/.pre-commit-config.yaml +9 -0
- package/AGENTS.md +59 -0
- package/CHANGELOG.md +0 -0
- package/README.md +75 -0
- package/VERSION +1 -1
- package/build-esbuild-esm.js +180 -0
- package/build-esbuild.js +182 -208
- package/deno.json +0 -0
- package/dev-requirements.txt +5 -0
- package/eslint.config.mjs +0 -0
- package/mod.ts +0 -0
- package/package.json +45 -44
- package/public/browser/api-client_services.js.map +1 -1
- package/public/browser/backend/backend-microservice-static.js +211 -219
- package/public/browser/backend/backend-microservice-static.js.map +2 -2
- package/public/browser/backend/backend-php.js +227 -231
- package/public/browser/backend/backend-php.js.map +3 -3
- package/public/browser/cli-commands-build-esbuild.js +326 -0
- package/public/browser/cli-commands-build-esbuild.js.map +7 -0
- package/public/browser/cli-commands-build-typescript.js +114 -0
- package/public/browser/cli-commands-build-typescript.js.map +7 -0
- package/public/browser/cli-commands-jira.js.map +1 -1
- package/public/browser/cli-commands-version.js.map +1 -1
- package/public/browser/cli-commands.js +4 -0
- package/public/browser/cli-commands.js.map +2 -2
- package/public/browser/cli-main.js.map +1 -1
- package/public/browser/client_services.js.map +1 -1
- package/public/browser/collab-server.js.map +1 -1
- package/public/browser/common-pipelog.js.map +1 -1
- package/public/browser/defaultsettings.js +68 -27
- package/public/browser/defaultsettings.js.map +3 -3
- package/public/browser/enterprise-commands.js.map +1 -1
- package/public/browser/main-file.js.map +1 -1
- package/public/browser/main-http-gae-server.js.map +1 -1
- package/public/browser/main-http-server.js.map +1 -1
- package/public/browser/main-http2-server.js.map +1 -1
- package/public/browser/qcobjects-cli.js.map +1 -1
- package/public/browser/qcobjects-collab.js +16 -24
- package/public/browser/qcobjects-collab.js.map +2 -2
- package/public/browser/qcobjects-createcert.js +46 -54
- package/public/browser/qcobjects-createcert.js.map +2 -2
- package/public/browser/qcobjects-gae-http-server.js +16 -24
- package/public/browser/qcobjects-gae-http-server.js.map +2 -2
- package/public/browser/qcobjects-http-server.js +16 -24
- package/public/browser/qcobjects-http-server.js.map +2 -2
- package/public/browser/qcobjects-http2-server.js +21 -30
- package/public/browser/qcobjects-http2-server.js.map +2 -2
- package/public/browser/qcobjects-shell.js.map +1 -1
- package/public/browser/templates/apps/spa-local.html +0 -0
- package/public/browser/templates/apps/spa-local.js +0 -0
- package/public/browser/templates/pwa/sw.js +0 -0
- package/public/browser/types/global/index.d.js +0 -9
- package/public/browser/types/global/index.d.js.map +3 -3
- package/public/cjs/api-client_services.js +74 -0
- package/public/cjs/api-client_services.js.map +1 -0
- package/public/cjs/backend/backend-microservice-static.js +255 -0
- package/public/cjs/backend/backend-microservice-static.js.map +1 -0
- package/public/cjs/backend/backend-php.js +317 -0
- package/public/cjs/backend/backend-php.js.map +1 -0
- package/public/cjs/cli-commands-build-esbuild.js +341 -0
- package/public/cjs/cli-commands-build-esbuild.js.map +1 -0
- package/public/cjs/cli-commands-build-typescript.js +127 -0
- package/public/cjs/cli-commands-build-typescript.js.map +1 -0
- package/public/cjs/cli-commands-jira.js +115 -0
- package/public/cjs/cli-commands-jira.js.map +1 -0
- package/public/cjs/cli-commands-publish-static.js +108 -0
- package/public/cjs/cli-commands-publish-static.js.map +1 -0
- package/public/cjs/cli-commands-version.js +250 -0
- package/public/cjs/cli-commands-version.js.map +1 -0
- package/public/cjs/cli-commands.js +73 -0
- package/public/cjs/cli-commands.js.map +1 -0
- package/public/cjs/cli-main.js +487 -0
- package/public/cjs/cli-main.js.map +1 -0
- package/public/cjs/client_services.js +80 -0
- package/public/cjs/client_services.js.map +1 -0
- package/public/cjs/collab-server.js +404 -0
- package/public/cjs/collab-server.js.map +1 -0
- package/public/cjs/common-pipelog.js +57 -0
- package/public/cjs/common-pipelog.js.map +1 -0
- package/public/cjs/defaultsettings.js +496 -0
- package/public/cjs/defaultsettings.js.map +1 -0
- package/public/cjs/enterprise-commands.js +173 -0
- package/public/cjs/enterprise-commands.js.map +1 -0
- package/public/cjs/index.js +38 -0
- package/public/cjs/index.js.map +1 -0
- package/public/cjs/main-file.js +161 -0
- package/public/cjs/main-file.js.map +1 -0
- package/public/cjs/main-http-gae-server.js +498 -0
- package/public/cjs/main-http-gae-server.js.map +1 -0
- package/public/cjs/main-http-server.js +540 -0
- package/public/cjs/main-http-server.js.map +1 -0
- package/public/cjs/main-http2-server.js +398 -0
- package/public/cjs/main-http2-server.js.map +1 -0
- package/public/cjs/qcobjects-cli.js +105 -0
- package/public/cjs/qcobjects-cli.js.map +1 -0
- package/public/cjs/qcobjects-collab.js +51 -0
- package/public/cjs/qcobjects-collab.js.map +1 -0
- package/public/cjs/qcobjects-createcert.js +89 -0
- package/public/cjs/qcobjects-createcert.js.map +1 -0
- package/public/cjs/qcobjects-gae-http-server.js +51 -0
- package/public/cjs/qcobjects-gae-http-server.js.map +1 -0
- package/public/cjs/qcobjects-http-server.js +51 -0
- package/public/cjs/qcobjects-http-server.js.map +1 -0
- package/public/cjs/qcobjects-http2-server.js +54 -0
- package/public/cjs/qcobjects-http2-server.js.map +1 -0
- package/public/cjs/qcobjects-shell.js +145 -0
- package/public/cjs/qcobjects-shell.js.map +1 -0
- package/public/cjs/templates/apps/spa-local.html +0 -0
- package/public/cjs/templates/apps/spa-local.js +0 -0
- package/public/cjs/templates/pwa/sw.js +0 -0
- package/public/esm/api-client_services.mjs.map +1 -1
- package/public/esm/backend/backend-microservice-static.mjs +207 -216
- package/public/esm/backend/backend-microservice-static.mjs.map +2 -2
- package/public/esm/backend/backend-php.mjs +228 -232
- package/public/esm/backend/backend-php.mjs.map +2 -2
- package/public/esm/cli-commands-build-esbuild.mjs +295 -0
- package/public/esm/cli-commands-build-esbuild.mjs.map +7 -0
- package/public/esm/cli-commands-build-typescript.mjs +83 -0
- package/public/esm/cli-commands-build-typescript.mjs.map +7 -0
- package/public/esm/cli-commands-jira.mjs +1 -1
- package/public/esm/cli-commands-jira.mjs.map +1 -1
- package/public/esm/cli-commands-version.mjs.map +1 -1
- package/public/esm/cli-commands.mjs +7 -3
- package/public/esm/cli-commands.mjs.map +2 -2
- package/public/esm/cli-main.mjs +6 -6
- package/public/esm/cli-main.mjs.map +1 -1
- package/public/esm/client_services.mjs.map +1 -1
- package/public/esm/collab-server.mjs.map +1 -1
- package/public/esm/common-pipelog.mjs.map +1 -1
- package/public/esm/defaultsettings.mjs +68 -27
- package/public/esm/defaultsettings.mjs.map +3 -3
- package/public/esm/enterprise-commands.mjs.map +1 -1
- package/public/esm/index.mjs +1 -1
- package/public/esm/main-file.mjs.map +1 -1
- package/public/esm/main-http-gae-server.mjs +2 -2
- package/public/esm/main-http-gae-server.mjs.map +1 -1
- package/public/esm/main-http-server.mjs +2 -2
- package/public/esm/main-http-server.mjs.map +1 -1
- package/public/esm/main-http2-server.mjs +2 -2
- package/public/esm/main-http2-server.mjs.map +1 -1
- package/public/esm/qcobjects-cli.mjs +2 -2
- package/public/esm/qcobjects-cli.mjs.map +1 -1
- package/public/esm/qcobjects-collab.mjs +14 -23
- package/public/esm/qcobjects-collab.mjs.map +2 -2
- package/public/esm/qcobjects-createcert.mjs +43 -52
- package/public/esm/qcobjects-createcert.mjs.map +2 -2
- package/public/esm/qcobjects-gae-http-server.mjs +14 -23
- package/public/esm/qcobjects-gae-http-server.mjs.map +2 -2
- package/public/esm/qcobjects-http-server.mjs +14 -23
- package/public/esm/qcobjects-http-server.mjs.map +2 -2
- package/public/esm/qcobjects-http2-server.mjs +21 -31
- package/public/esm/qcobjects-http2-server.mjs.map +2 -2
- package/public/esm/qcobjects-shell.mjs +1 -1
- package/public/esm/qcobjects-shell.mjs.map +1 -1
- package/public/esm/templates/apps/spa-local.html +0 -0
- package/public/esm/templates/apps/spa-local.js +0 -0
- package/public/esm/templates/pwa/sw.js +0 -0
- package/public/esm/types/global/index.d.mjs +0 -9
- package/public/esm/types/global/index.d.mjs.map +3 -3
- package/public/types/index.d.ts +29 -3
- package/spec/support/jasmine.json +0 -0
- package/spec/testsSpec.ts +0 -0
- package/src/api-client_services.ts +1 -1
- package/src/backend/backend-microservice-static.ts +196 -196
- package/src/backend/backend-php.ts +240 -245
- package/src/cli-commands-build-esbuild.ts +375 -0
- package/src/cli-commands-build-typescript.ts +139 -0
- package/src/cli-commands-jira.ts +1 -1
- package/src/cli-commands-publish-static.ts +0 -0
- package/src/cli-commands-version.ts +1 -1
- package/src/cli-commands.ts +3 -1
- package/src/cli-main.ts +1 -1
- package/src/client_services.ts +1 -1
- package/src/collab-server.ts +1 -1
- package/src/common-pipelog.ts +1 -1
- package/src/defaultsettings.ts +65 -19
- package/src/enterprise-commands.ts +1 -1
- package/src/index.ts +0 -0
- package/src/main-file.ts +1 -1
- package/src/main-http-gae-server.ts +1 -1
- package/src/main-http-server.ts +1 -1
- package/src/main-http2-server.ts +1 -1
- package/src/qcobjects-cli.ts +1 -1
- package/src/qcobjects-collab.ts +1 -1
- package/src/qcobjects-createcert.ts +1 -1
- package/src/qcobjects-gae-http-server.ts +1 -1
- package/src/qcobjects-http-server.ts +1 -1
- package/src/qcobjects-http2-server.ts +4 -5
- package/src/qcobjects-shell.ts +1 -1
- package/src/templates/apps/spa-local.html +0 -0
- package/src/templates/apps/spa-local.js +0 -0
- package/src/templates/pwa/sw.js +0 -0
- package/src/types/global/index.d.ts +0 -0
- package/transpile.js +0 -0
- package/tsconfig.d.json +0 -0
- package/tsconfig.jasmine.json +0 -0
- package/tsconfig.json +3 -3
- package/.gitlab-ci.yml +0 -16
- package/public/cjs/api-client_services.cjs +0 -79
- package/public/cjs/api-client_services.cjs.map +0 -7
- package/public/cjs/backend/backend-microservice-static.cjs +0 -245
- package/public/cjs/backend/backend-microservice-static.cjs.map +0 -7
- package/public/cjs/backend/backend-php.cjs +0 -301
- package/public/cjs/backend/backend-php.cjs.map +0 -7
- package/public/cjs/cli-commands-jira.cjs +0 -112
- package/public/cjs/cli-commands-jira.cjs.map +0 -7
- package/public/cjs/cli-commands-publish-static.cjs +0 -109
- package/public/cjs/cli-commands-publish-static.cjs.map +0 -7
- package/public/cjs/cli-commands-version.cjs +0 -252
- package/public/cjs/cli-commands-version.cjs.map +0 -7
- package/public/cjs/cli-commands.cjs +0 -45
- package/public/cjs/cli-commands.cjs.map +0 -7
- package/public/cjs/cli-main.cjs +0 -417
- package/public/cjs/cli-main.cjs.map +0 -7
- package/public/cjs/client_services.cjs +0 -86
- package/public/cjs/client_services.cjs.map +0 -7
- package/public/cjs/collab-server.cjs +0 -444
- package/public/cjs/collab-server.cjs.map +0 -7
- package/public/cjs/common-pipelog.cjs +0 -50
- package/public/cjs/common-pipelog.cjs.map +0 -7
- package/public/cjs/defaultsettings.cjs +0 -432
- package/public/cjs/defaultsettings.cjs.map +0 -7
- package/public/cjs/enterprise-commands.cjs +0 -175
- package/public/cjs/enterprise-commands.cjs.map +0 -7
- package/public/cjs/index.cjs +0 -36
- package/public/cjs/index.cjs.map +0 -7
- package/public/cjs/main-file.cjs +0 -194
- package/public/cjs/main-file.cjs.map +0 -7
- package/public/cjs/main-http-gae-server.cjs +0 -522
- package/public/cjs/main-http-gae-server.cjs.map +0 -7
- package/public/cjs/main-http-server.cjs +0 -588
- package/public/cjs/main-http-server.cjs.map +0 -7
- package/public/cjs/main-http2-server.cjs +0 -431
- package/public/cjs/main-http2-server.cjs.map +0 -7
- package/public/cjs/qcobjects-cli.cjs +0 -92
- package/public/cjs/qcobjects-cli.cjs.map +0 -7
- package/public/cjs/qcobjects-collab.cjs +0 -43
- package/public/cjs/qcobjects-collab.cjs.map +0 -7
- package/public/cjs/qcobjects-createcert.cjs +0 -75
- package/public/cjs/qcobjects-createcert.cjs.map +0 -7
- package/public/cjs/qcobjects-gae-http-server.cjs +0 -43
- package/public/cjs/qcobjects-gae-http-server.cjs.map +0 -7
- package/public/cjs/qcobjects-http-server.cjs +0 -43
- package/public/cjs/qcobjects-http-server.cjs.map +0 -7
- package/public/cjs/qcobjects-http2-server.cjs +0 -49
- package/public/cjs/qcobjects-http2-server.cjs.map +0 -7
- package/public/cjs/qcobjects-shell.cjs +0 -185
- package/public/cjs/qcobjects-shell.cjs.map +0 -7
- package/public/cjs/types/global/index.d.cjs +0 -2
- package/public/cjs/types/global/index.d.cjs.map +0 -7
- package/public/types/index.d.ts.map +0 -1
- package/src/index.cts +0 -2
- package/src/index.mts +0 -2
|
@@ -7,9 +7,6 @@ var global = (() => {
|
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
11
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
-
};
|
|
13
10
|
var __copyProps = (to, from, except, desc) => {
|
|
14
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -26,230 +23,225 @@ var global = (() => {
|
|
|
26
23
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
24
|
mod
|
|
28
25
|
));
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
stream2.write("<h1>404 - FILE NOT FOUND</h1>");
|
|
80
|
-
stream2.on("close", () => {
|
|
81
|
-
import_qcobjects.logger.debug("closing file " + fileName2);
|
|
82
|
-
});
|
|
83
|
-
stream2.end();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}, "sendFileHTTP2");
|
|
87
|
-
const sendFileLegacyHTTP = /* @__PURE__ */ __name(function(stream2, fileName2) {
|
|
88
|
-
let headers;
|
|
89
|
-
try {
|
|
90
|
-
import_qcobjects.logger.info("trying to read " + fileName2);
|
|
91
|
-
const fd = import_node_fs.default.openSync(fileName2, "r");
|
|
92
|
-
const stat = import_node_fs.default.fstatSync(fd);
|
|
93
|
-
headers = {
|
|
94
|
-
"Content-Length": stat.size,
|
|
95
|
-
"Last-Modified": stat.mtime.toUTCString(),
|
|
96
|
-
"Content-Type": import_mime.default.getType(fileName2),
|
|
97
|
-
"Cache-Control": import_qcobjects.CONFIG.get("cacheControl", "max-age=31536000")
|
|
98
|
-
};
|
|
99
|
-
if (typeof microservice.route.responseHeaders !== "undefined") {
|
|
100
|
-
headers = Object.assign(headers, microservice.route.responseHeaders);
|
|
101
|
-
}
|
|
26
|
+
var import_mime = __toESM(require("mime"));
|
|
27
|
+
var import_node_fs = __toESM(require("node:fs"));
|
|
28
|
+
var import_node_path = __toESM(require("node:path"));
|
|
29
|
+
var import_qcobjects = require("qcobjects");
|
|
30
|
+
const absolutePath = import_node_path.default.resolve(__dirname, "./");
|
|
31
|
+
(0, import_qcobjects.Package)("com.qcobjects.backend.microservice.static", [
|
|
32
|
+
class Microservice extends import_qcobjects.BackendMicroservice {
|
|
33
|
+
static {
|
|
34
|
+
__name(this, "Microservice");
|
|
35
|
+
}
|
|
36
|
+
stream;
|
|
37
|
+
fileName;
|
|
38
|
+
route;
|
|
39
|
+
request;
|
|
40
|
+
body;
|
|
41
|
+
finishWithBody() {
|
|
42
|
+
}
|
|
43
|
+
done() {
|
|
44
|
+
const microservice = this;
|
|
45
|
+
const stream = microservice.stream;
|
|
46
|
+
const fileName = !microservice.fileName.startsWith("/") ? `${process.cwd()}/${microservice.fileName}` : microservice.fileName;
|
|
47
|
+
const sendFileHTTP2 = /* @__PURE__ */ __name(function(stream2, fileName2) {
|
|
48
|
+
try {
|
|
49
|
+
const fd = import_node_fs.default.openSync(fileName2, "r");
|
|
50
|
+
const stat = import_node_fs.default.fstatSync(fd);
|
|
51
|
+
let headers = {
|
|
52
|
+
"content-length": stat.size,
|
|
53
|
+
"last-modified": stat.mtime.toUTCString(),
|
|
54
|
+
"content-type": import_mime.default.getType(fileName2),
|
|
55
|
+
"cache-control": import_qcobjects.CONFIG.get("cacheControl", "max-age=31536000")
|
|
56
|
+
};
|
|
57
|
+
if (typeof microservice.route.responseHeaders !== "undefined") {
|
|
58
|
+
headers = Object.assign(headers, microservice.route.responseHeaders);
|
|
59
|
+
}
|
|
60
|
+
stream2.respondWithFD(fd, headers);
|
|
61
|
+
stream2.on("close", () => {
|
|
62
|
+
import_qcobjects.logger.debug("closing file " + fileName2);
|
|
63
|
+
import_node_fs.default.closeSync(fd);
|
|
64
|
+
});
|
|
65
|
+
stream2.end();
|
|
66
|
+
} catch (e) {
|
|
67
|
+
import_qcobjects.logger.warn("[ERROR] Something went wrong when trying to send the response as file " + fileName2);
|
|
68
|
+
if (e.errno == -2) {
|
|
69
|
+
const headers = {
|
|
70
|
+
":status": 404,
|
|
71
|
+
"content-type": import_mime.default.getType(fileName2)
|
|
72
|
+
};
|
|
73
|
+
stream2.respond(headers);
|
|
74
|
+
stream2.write("<h1>404 - FILE NOT FOUND</h1>");
|
|
75
|
+
stream2.on("close", () => {
|
|
102
76
|
import_qcobjects.logger.debug("closing file " + fileName2);
|
|
103
|
-
|
|
104
|
-
stream2.writeHead(200, headers);
|
|
105
|
-
stream2.write(import_node_fs.default.readFileSync(fileName2).toString());
|
|
106
|
-
stream2.on("close", () => {
|
|
107
|
-
import_qcobjects.logger.info("closing static file", fileName2);
|
|
108
|
-
});
|
|
109
|
-
} catch (e) {
|
|
110
|
-
if (e.errno == -2) {
|
|
111
|
-
headers = {
|
|
112
|
-
"status": 404,
|
|
113
|
-
"Content-Type": "text/html"
|
|
114
|
-
};
|
|
115
|
-
stream2.writeHead(404, headers);
|
|
116
|
-
stream2.write("<h1>404 - FILE NOT FOUND</h1>");
|
|
117
|
-
stream2.on("close", () => {
|
|
118
|
-
import_qcobjects.logger.info("closing static file with error: ", fileName2);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
import_qcobjects.logger.warn(e);
|
|
122
|
-
stream2.end();
|
|
123
|
-
}
|
|
77
|
+
});
|
|
124
78
|
stream2.end();
|
|
125
|
-
}, "sendFileLegacyHTTP");
|
|
126
|
-
if (typeof stream.respondWithFD !== "undefined") {
|
|
127
|
-
sendFileHTTP2(stream, fileName);
|
|
128
|
-
} else {
|
|
129
|
-
sendFileLegacyHTTP(stream, fileName);
|
|
130
79
|
}
|
|
131
80
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
} catch (e) {
|
|
155
|
-
import_qcobjects.logger.warn("\u{1F926} Something went wrong \u{1F926} when trying to deliver a static path: " + microservice.fileName);
|
|
156
|
-
reject(e);
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
import_qcobjects.logger.info("There is no redirect_to setting declared in route properties. \n Skipping static delivery...");
|
|
160
|
-
reject(new Error("There is no redirect_to setting declared in route properties. \n Skipping static delivery..."));
|
|
161
|
-
}
|
|
162
|
-
} else {
|
|
163
|
-
import_qcobjects.logger.debug("Method: " + method + " will be skipped");
|
|
164
|
-
resolve();
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
head(formData) {
|
|
169
|
-
const microservice = this;
|
|
170
|
-
microservice.static("head", formData).then((response) => {
|
|
171
|
-
microservice.body = response;
|
|
172
|
-
microservice.done();
|
|
173
|
-
}).catch((e) => {
|
|
174
|
-
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
get(formData) {
|
|
178
|
-
const microservice = this;
|
|
179
|
-
microservice.static("get", formData).then((response) => {
|
|
180
|
-
microservice.body = response;
|
|
181
|
-
microservice.done();
|
|
182
|
-
}).catch((error) => {
|
|
183
|
-
console.error(error);
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
post(formData) {
|
|
187
|
-
const microservice = this;
|
|
188
|
-
microservice.static("post", formData).then((response) => {
|
|
189
|
-
microservice.body = response;
|
|
190
|
-
microservice.done();
|
|
191
|
-
}).catch((e) => {
|
|
192
|
-
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
put(formData) {
|
|
196
|
-
const microservice = this;
|
|
197
|
-
microservice.static("put", formData).then((response) => {
|
|
198
|
-
microservice.body = response;
|
|
199
|
-
microservice.done();
|
|
200
|
-
}).catch((e) => {
|
|
201
|
-
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
delete(formData) {
|
|
205
|
-
const microservice = this;
|
|
206
|
-
microservice.static("delete", formData).then((response) => {
|
|
207
|
-
microservice.body = response;
|
|
208
|
-
microservice.done();
|
|
209
|
-
}).catch((e) => {
|
|
210
|
-
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
connect(formData) {
|
|
214
|
-
const microservice = this;
|
|
215
|
-
microservice.static("connect", formData).then((response) => {
|
|
216
|
-
microservice.body = response;
|
|
217
|
-
microservice.done();
|
|
218
|
-
}).catch((e) => {
|
|
219
|
-
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
options(formData) {
|
|
223
|
-
const microservice = this;
|
|
224
|
-
microservice.static("options", formData).then((response) => {
|
|
225
|
-
microservice.body = response;
|
|
226
|
-
microservice.done();
|
|
227
|
-
}).catch((e) => {
|
|
228
|
-
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
81
|
+
}, "sendFileHTTP2");
|
|
82
|
+
const sendFileLegacyHTTP = /* @__PURE__ */ __name(function(stream2, fileName2) {
|
|
83
|
+
let headers;
|
|
84
|
+
try {
|
|
85
|
+
import_qcobjects.logger.info("trying to read " + fileName2);
|
|
86
|
+
const fd = import_node_fs.default.openSync(fileName2, "r");
|
|
87
|
+
const stat = import_node_fs.default.fstatSync(fd);
|
|
88
|
+
headers = {
|
|
89
|
+
"Content-Length": stat.size,
|
|
90
|
+
"Last-Modified": stat.mtime.toUTCString(),
|
|
91
|
+
"Content-Type": import_mime.default.getType(fileName2),
|
|
92
|
+
"Cache-Control": import_qcobjects.CONFIG.get("cacheControl", "max-age=31536000")
|
|
93
|
+
};
|
|
94
|
+
if (typeof microservice.route.responseHeaders !== "undefined") {
|
|
95
|
+
headers = Object.assign(headers, microservice.route.responseHeaders);
|
|
96
|
+
}
|
|
97
|
+
import_qcobjects.logger.debug("closing file " + fileName2);
|
|
98
|
+
import_node_fs.default.closeSync(fd);
|
|
99
|
+
stream2.writeHead(200, headers);
|
|
100
|
+
stream2.write(import_node_fs.default.readFileSync(fileName2).toString());
|
|
101
|
+
stream2.on("close", () => {
|
|
102
|
+
import_qcobjects.logger.info("closing static file", fileName2);
|
|
229
103
|
});
|
|
104
|
+
} catch (e) {
|
|
105
|
+
if (e.errno == -2) {
|
|
106
|
+
headers = {
|
|
107
|
+
"status": 404,
|
|
108
|
+
"Content-Type": "text/html"
|
|
109
|
+
};
|
|
110
|
+
stream2.writeHead(404, headers);
|
|
111
|
+
stream2.write("<h1>404 - FILE NOT FOUND</h1>");
|
|
112
|
+
stream2.on("close", () => {
|
|
113
|
+
import_qcobjects.logger.info("closing static file with error: ", fileName2);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
import_qcobjects.logger.warn(e);
|
|
117
|
+
stream2.end();
|
|
230
118
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
119
|
+
stream2.end();
|
|
120
|
+
}, "sendFileLegacyHTTP");
|
|
121
|
+
if (typeof stream.respondWithFD !== "undefined") {
|
|
122
|
+
sendFileHTTP2(stream, fileName);
|
|
123
|
+
} else {
|
|
124
|
+
sendFileLegacyHTTP(stream, fileName);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
static(method, data) {
|
|
128
|
+
const microservice = this;
|
|
129
|
+
const redirect_to = microservice.route.redirect_to;
|
|
130
|
+
return new Promise(function(resolve, reject) {
|
|
131
|
+
const supported_methods = microservice.route.supported_methods;
|
|
132
|
+
let _method_allowed_ = false;
|
|
133
|
+
if (typeof supported_methods !== "undefined") {
|
|
134
|
+
if (supported_methods == "*" || typeof method === "undefined" || [...supported_methods].map((m) => m.toLowerCase()).indexOf(method.toLowerCase()) !== -1) {
|
|
135
|
+
_method_allowed_ = true;
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
_method_allowed_ = true;
|
|
239
139
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
microservice.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
140
|
+
import_qcobjects.logger.debug("Starting static delivery microservice call for method: " + method);
|
|
141
|
+
if (_method_allowed_) {
|
|
142
|
+
import_qcobjects.logger.info("I'm going to deliver a static path...");
|
|
143
|
+
if (redirect_to) {
|
|
144
|
+
const request_path = microservice.request.path;
|
|
145
|
+
const re = new RegExp(microservice.route.path.replace(/{(.*?)}/g, "(?<$1>.*)"), "g");
|
|
146
|
+
microservice.fileName = request_path.replace(re, microservice.route.redirect_to);
|
|
147
|
+
try {
|
|
148
|
+
resolve();
|
|
149
|
+
} catch (e) {
|
|
150
|
+
import_qcobjects.logger.warn("\u{1F926} Something went wrong \u{1F926} when trying to deliver a static path: " + microservice.fileName);
|
|
151
|
+
reject(e);
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
import_qcobjects.logger.info("There is no redirect_to setting declared in route properties. \n Skipping static delivery...");
|
|
155
|
+
reject(new Error("There is no redirect_to setting declared in route properties. \n Skipping static delivery..."));
|
|
156
|
+
}
|
|
157
|
+
} else {
|
|
158
|
+
import_qcobjects.logger.debug("Method: " + method + " will be skipped");
|
|
159
|
+
resolve();
|
|
248
160
|
}
|
|
249
|
-
}
|
|
250
|
-
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
head(formData) {
|
|
164
|
+
const microservice = this;
|
|
165
|
+
microservice.static("head", formData).then((response) => {
|
|
166
|
+
microservice.body = response;
|
|
167
|
+
microservice.done();
|
|
168
|
+
}).catch((e) => {
|
|
169
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
get(formData) {
|
|
173
|
+
const microservice = this;
|
|
174
|
+
microservice.static("get", formData).then((response) => {
|
|
175
|
+
microservice.body = response;
|
|
176
|
+
microservice.done();
|
|
177
|
+
}).catch((error) => {
|
|
178
|
+
console.error(error);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
post(formData) {
|
|
182
|
+
const microservice = this;
|
|
183
|
+
microservice.static("post", formData).then((response) => {
|
|
184
|
+
microservice.body = response;
|
|
185
|
+
microservice.done();
|
|
186
|
+
}).catch((e) => {
|
|
187
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
put(formData) {
|
|
191
|
+
const microservice = this;
|
|
192
|
+
microservice.static("put", formData).then((response) => {
|
|
193
|
+
microservice.body = response;
|
|
194
|
+
microservice.done();
|
|
195
|
+
}).catch((e) => {
|
|
196
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
delete(formData) {
|
|
200
|
+
const microservice = this;
|
|
201
|
+
microservice.static("delete", formData).then((response) => {
|
|
202
|
+
microservice.body = response;
|
|
203
|
+
microservice.done();
|
|
204
|
+
}).catch((e) => {
|
|
205
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
connect(formData) {
|
|
209
|
+
const microservice = this;
|
|
210
|
+
microservice.static("connect", formData).then((response) => {
|
|
211
|
+
microservice.body = response;
|
|
212
|
+
microservice.done();
|
|
213
|
+
}).catch((e) => {
|
|
214
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
options(formData) {
|
|
218
|
+
const microservice = this;
|
|
219
|
+
microservice.static("options", formData).then((response) => {
|
|
220
|
+
microservice.body = response;
|
|
221
|
+
microservice.done();
|
|
222
|
+
}).catch((e) => {
|
|
223
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
trace(formData) {
|
|
227
|
+
const microservice = this;
|
|
228
|
+
microservice.static("trace", formData).then((response) => {
|
|
229
|
+
microservice.body = response;
|
|
230
|
+
microservice.done();
|
|
231
|
+
}).catch((e) => {
|
|
232
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
patch(formData) {
|
|
236
|
+
const microservice = this;
|
|
237
|
+
microservice.static("patch", formData).then((response) => {
|
|
238
|
+
microservice.body = response;
|
|
239
|
+
microservice.done();
|
|
240
|
+
}).catch((e) => {
|
|
241
|
+
import_qcobjects.logger.warn(`An error ocurred: ${e}`);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
251
244
|
}
|
|
252
|
-
|
|
253
|
-
return require_backend_microservice_static();
|
|
245
|
+
]);
|
|
254
246
|
})();
|
|
255
247
|
//# sourceMappingURL=backend-microservice-static.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/backend/backend-microservice-static.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * QCObjects CLI 2.3.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n/* eslint no-unused-vars: \"off\" */\n/* eslint no-redeclare: \"off\" */\n/* eslint no-empty: \"off\" */\n/* eslint strict: \"off\" */\n/* eslint no-mixed-operators: \"off\" */\n/* eslint no-undef: \"off\" */\n/* eslint no-useless-escape: \"off\" */\n\"use strict\";\nimport mime from \"mime\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { Package, BackendMicroservice, CONFIG, logger } from \"qcobjects\";\n\n const absolutePath = path.resolve(__dirname, \"./\");\n\n\n Package(\"com.qcobjects.backend.microservice.static\", [\n class Microservice extends BackendMicroservice {\n stream: any;\n fileName: any;\n route: any;\n request: any;\n body!: void;\n\n finishWithBody() { }\n done() {\n // read and send file content in the stream\n\n const microservice = this;\n const stream = microservice.stream;\n const fileName = (!microservice.fileName.startsWith(\"/\")) ? (`${process.cwd()}/${microservice.fileName}`) : (microservice.fileName);\n\n const sendFileHTTP2 = function (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 let 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 if (typeof microservice.route.responseHeaders !== \"undefined\") {\n headers = Object.assign(headers, microservice.route.responseHeaders);\n }\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.warn(\"[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 };\n\n const sendFileLegacyHTTP = function (stream: { writeHead: (arg0: number, arg1: { status: number; \"Content-Type\": string; }) => void; write: (arg0: string) => void; on: (arg0: string, arg1: { (): void; (): void; }) => void; end: () => void; }, fileName: string) {\n // read and send file content in the stream\n let headers;\n try {\n logger.info(\"trying to read \" + fileName);\n const fd = fs.openSync(fileName, \"r\");\n const stat = fs.fstatSync(fd);\n 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 if (typeof microservice.route.responseHeaders !== \"undefined\") {\n headers = Object.assign(headers, microservice.route.responseHeaders);\n }\n\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n\n stream.writeHead(200, headers);\n\n stream.write(fs.readFileSync(fileName).toString());\n stream.on(\"close\", () => {\n logger.info(\"closing static file\", fileName);\n });\n\n } catch (e: any) {\n if (e.errno == -2) {\n headers = {\n \"status\": 404,\n \"Content-Type\": \"text/html\"\n };\n stream.writeHead(404, headers);\n stream.write(\"<h1>404 - FILE NOT FOUND</h1>\");\n stream.on(\"close\", () => {\n logger.info(\"closing static file with error: \", fileName);\n });\n }\n logger.warn(e);\n stream.end();\n }\n stream.end();\n\n };\n\n if (typeof stream.respondWithFD !== \"undefined\") {\n sendFileHTTP2(stream, fileName);\n } else {\n sendFileLegacyHTTP(stream, fileName);\n }\n\n }\n\n static(method: string, data: any) {\n const microservice = this;\n const redirect_to = microservice.route.redirect_to;\n return new Promise<void>(function (resolve, reject) {\n const supported_methods = microservice.route.supported_methods;\n let _method_allowed_ = false;\n if (typeof supported_methods !== \"undefined\") {\n if (supported_methods == \"*\" || (typeof method === \"undefined\") || [...supported_methods].map(m => m.toLowerCase()).indexOf(method.toLowerCase()) !== -1) {\n _method_allowed_ = true;\n }\n } else {\n _method_allowed_ = true;\n }\n\n logger.debug(\"Starting static delivery microservice call for method: \" + method);\n if (_method_allowed_) {\n logger.info(\"I'm going to deliver a static path...\");\n if (redirect_to) {\n const request_path = microservice.request.path;\n const re = (new RegExp(microservice.route.path.replace(/{(.*?)}/g, \"\\(\\?\\<$1\\>\\.\\*\\)\"), \"g\"));\n microservice.fileName = request_path.replace(re, microservice.route.redirect_to);\n try {\n resolve();\n } catch (e) {\n logger.warn(\"\\u{1F926} Something went wrong \\u{1F926} when trying to deliver a static path: \" + microservice.fileName);\n reject(e as Error);\n }\n } else {\n logger.info(\"There is no redirect_to setting declared in route properties. \\n Skipping static delivery...\");\n reject(new Error(\"There is no redirect_to setting declared in route properties. \\n Skipping static delivery...\"));\n }\n } else {\n logger.debug(\"Method: \" + method + \" will be skipped\");\n resolve();\n }\n\n });\n }\n\n head(formData: any) {\n const microservice = this;\n microservice.static(\"head\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n }\n\n get(formData: any) {\n const microservice = this;\n microservice.static(\"get\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n }).catch(error => {\n console.error(error);\n });\n }\n\n post(formData: any) {\n const microservice = this;\n microservice.static(\"post\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n put(formData: any) {\n const microservice = this;\n microservice.static(\"put\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n delete(formData: any) {\n const microservice = this;\n microservice.static(\"delete\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n connect(formData: any) {\n const microservice = this;\n microservice.static(\"connect\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n options(formData: any) {\n const microservice = this;\n microservice.static(\"options\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n trace(formData: any) {\n const microservice = this;\n microservice.static(\"trace\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n patch(formData: any) {\n const microservice = this;\n microservice.static(\"patch\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n }\n\n ]);\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/**\n * QCObjects CLI 2.3.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n/* eslint no-unused-vars: \"off\" */\n/* eslint no-redeclare: \"off\" */\n/* eslint no-empty: \"off\" */\n/* eslint strict: \"off\" */\n/* eslint no-mixed-operators: \"off\" */\n/* eslint no-undef: \"off\" */\n/* eslint no-useless-escape: \"off\" */\n\"use strict\";\nimport mime from \"mime\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { Package, BackendMicroservice, CONFIG, logger } from \"qcobjects\";\n\nconst absolutePath = path.resolve(__dirname, \"./\");\n\n\nPackage(\"com.qcobjects.backend.microservice.static\", [\n class Microservice extends BackendMicroservice {\n stream: any;\n fileName: any;\n route: any;\n request: any;\n body!: void;\n\n finishWithBody() { }\n done() {\n // read and send file content in the stream\n\n const microservice = this;\n const stream = microservice.stream;\n const fileName = (!microservice.fileName.startsWith(\"/\")) ? (`${process.cwd()}/${microservice.fileName}`) : (microservice.fileName);\n\n const sendFileHTTP2 = function (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 let 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 if (typeof microservice.route.responseHeaders !== \"undefined\") {\n headers = Object.assign(headers, microservice.route.responseHeaders);\n }\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.warn(\"[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 };\n\n const sendFileLegacyHTTP = function (stream: { writeHead: (arg0: number, arg1: { status: number; \"Content-Type\": string; }) => void; write: (arg0: string) => void; on: (arg0: string, arg1: { (): void; (): void; }) => void; end: () => void; }, fileName: string) {\n // read and send file content in the stream\n let headers;\n try {\n logger.info(\"trying to read \" + fileName);\n const fd = fs.openSync(fileName, \"r\");\n const stat = fs.fstatSync(fd);\n 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 if (typeof microservice.route.responseHeaders !== \"undefined\") {\n headers = Object.assign(headers, microservice.route.responseHeaders);\n }\n\n logger.debug(\"closing file \" + fileName);\n fs.closeSync(fd);\n\n stream.writeHead(200, headers);\n\n stream.write(fs.readFileSync(fileName).toString());\n stream.on(\"close\", () => {\n logger.info(\"closing static file\", fileName);\n });\n\n } catch (e: any) {\n if (e.errno == -2) {\n headers = {\n \"status\": 404,\n \"Content-Type\": \"text/html\"\n };\n stream.writeHead(404, headers);\n stream.write(\"<h1>404 - FILE NOT FOUND</h1>\");\n stream.on(\"close\", () => {\n logger.info(\"closing static file with error: \", fileName);\n });\n }\n logger.warn(e);\n stream.end();\n }\n stream.end();\n\n };\n\n if (typeof stream.respondWithFD !== \"undefined\") {\n sendFileHTTP2(stream, fileName);\n } else {\n sendFileLegacyHTTP(stream, fileName);\n }\n\n }\n\n static(method: string, data: any) {\n const microservice = this;\n const redirect_to = microservice.route.redirect_to;\n return new Promise<void>(function (resolve, reject) {\n const supported_methods = microservice.route.supported_methods;\n let _method_allowed_ = false;\n if (typeof supported_methods !== \"undefined\") {\n if (supported_methods == \"*\" || (typeof method === \"undefined\") || [...supported_methods].map(m => m.toLowerCase()).indexOf(method.toLowerCase()) !== -1) {\n _method_allowed_ = true;\n }\n } else {\n _method_allowed_ = true;\n }\n\n logger.debug(\"Starting static delivery microservice call for method: \" + method);\n if (_method_allowed_) {\n logger.info(\"I'm going to deliver a static path...\");\n if (redirect_to) {\n const request_path = microservice.request.path;\n const re = (new RegExp(microservice.route.path.replace(/{(.*?)}/g, \"\\(\\?\\<$1\\>\\.\\*\\)\"), \"g\"));\n microservice.fileName = request_path.replace(re, microservice.route.redirect_to);\n try {\n resolve();\n } catch (e) {\n logger.warn(\"\\u{1F926} Something went wrong \\u{1F926} when trying to deliver a static path: \" + microservice.fileName);\n reject(e as Error);\n }\n } else {\n logger.info(\"There is no redirect_to setting declared in route properties. \\n Skipping static delivery...\");\n reject(new Error(\"There is no redirect_to setting declared in route properties. \\n Skipping static delivery...\"));\n }\n } else {\n logger.debug(\"Method: \" + method + \" will be skipped\");\n resolve();\n }\n\n });\n }\n\n head(formData: any) {\n const microservice = this;\n microservice.static(\"head\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n }\n\n get(formData: any) {\n const microservice = this;\n microservice.static(\"get\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n }).catch(error => {\n console.error(error);\n });\n }\n\n post(formData: any) {\n const microservice = this;\n microservice.static(\"post\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n put(formData: any) {\n const microservice = this;\n microservice.static(\"put\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n delete(formData: any) {\n const microservice = this;\n microservice.static(\"delete\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n connect(formData: any) {\n const microservice = this;\n microservice.static(\"connect\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n options(formData: any) {\n const microservice = this;\n microservice.static(\"options\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n trace(formData: any) {\n const microservice = this;\n microservice.static(\"trace\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n patch(formData: any) {\n const microservice = this;\n microservice.static(\"patch\", formData).then(response => {\n microservice.body = response;\n microservice.done();\n })\n .catch((e: any) => { logger.warn(`An error ocurred: ${e}`); });\n\n }\n\n }\n\n]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["path", "stream", "fileName", "fs", "mime"]
|
|
7
7
|
}
|