qcobjects 2.4.107-ts → 2.5.101-ts
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/.hintrc +5 -0
- package/VERSION +1 -1
- package/build/ArrayCollection.js +136 -0
- package/build/BackendMicroservice.js +211 -0
- package/build/Base64.js +100 -0
- package/build/CONFIG.js +85 -0
- package/build/Cast.js +53 -0
- package/build/Class.js +284 -0
- package/build/ClassFactory.js +38 -0
- package/build/ComplexStorageCache.js +91 -0
- package/build/Component.js +1133 -0
- package/build/ComponentFactory.js +113 -0
- package/build/ConfigSettings.js +39 -0
- package/build/Controller.js +81 -0
- package/build/Crypt.js +87 -0
- package/build/DDO.js +81 -0
- package/build/DOMCreateElement.js +15 -0
- package/build/DataStringify.js +22 -0
- package/build/DefaultTemplateHandler.js +57 -0
- package/build/DocumentLayout.js +20 -0
- package/build/Effect.js +46 -0
- package/build/Export.js +11 -0
- package/build/Import.js +140 -0
- package/build/IncrementInstanceID.js +11 -0
- package/build/InheritClass.js +194 -0
- package/build/LegacyCopy.js +31 -0
- package/build/Logger.js +33 -0
- package/build/MainProcess.js +549 -0
- package/build/NamespaceRef.js +29 -0
- package/build/New.js +17 -0
- package/build/ObjectName.js +22 -0
- package/build/Package.js +67 -0
- package/build/PrimaryCollections.js +7 -0
- package/build/Processor.js +81 -0
- package/build/QCObjects.js +182 -4843
- package/build/Ready.js +49 -0
- package/build/RegisterClass.js +28 -0
- package/build/Service.js +112 -0
- package/build/SourceCSS.js +56 -0
- package/build/SourceJS.js +73 -0
- package/build/Tag.js +77 -0
- package/build/Timer.js +30 -0
- package/build/Toggle.js +59 -0
- package/build/TransitionEffect.js +65 -0
- package/build/VO.js +11 -0
- package/build/View.js +18 -0
- package/build/WidgetsFactory.js +537 -0
- package/build/assign.js +32 -0
- package/build/asyncLoad.js +43 -0
- package/build/basePath.js +32 -0
- package/build/captureFalseTouch.js +32 -0
- package/build/componentLoader.js +258 -0
- package/build/defaultProcessors.js +130 -0
- package/build/domain.js +4 -0
- package/build/findPackageNodePath.js +47 -0
- package/build/getType.js +38 -0
- package/build/globalSettings.js +115 -0
- package/build/index.d.ts +1045 -0
- package/build/index.js +24 -4
- package/build/index.mjs +1 -1
- package/build/introspection.js +86 -0
- package/build/isQCObjects.js +20 -0
- package/build/is_a.js +19 -0
- package/build/is_forbidden_name.js +15 -0
- package/build/is_raw_class.js +7 -0
- package/build/loadSDK.js +63 -0
- package/build/localStorage.js +19 -0
- package/build/make_global.js +24 -0
- package/build/mathFunctions.js +7 -0
- package/build/platform.js +28 -0
- package/build/range.js +17 -0
- package/build/routings.js +21 -0
- package/build/secretKey.js +5 -0
- package/build/serviceLoader.js +300 -0
- package/build/shortCode.js +14 -0
- package/build/subelements.js +8 -0
- package/build/super.js +20 -0
- package/build/tag_filter.js +4 -0
- package/build/top.js +23 -0
- package/build/uniqueID.js +5 -0
- package/build/waitUntil.js +31 -0
- package/build-esbuild.js +62 -0
- package/eslint.config.mjs +87 -0
- package/package.json +26 -23
- package/public/browser/index.js +6502 -0
- package/public/browser/index.js.map +7 -0
- package/public/cjs/index.cjs +6586 -0
- package/public/cjs/index.cjs.map +7 -0
- package/public/esm/index.mjs +6494 -0
- package/public/esm/index.mjs.map +7 -0
- package/spec/helpers/mock-sdk.helper.ts +5 -0
- package/spec/mocks/qcobjects-sdk.mock.ts +1 -0
- package/spec/support/jasmine.json +3 -3
- package/spec/testsClassFactorySpec.ts +40 -0
- package/spec/{testsConfigSpec.js → testsConfigSpec.ts} +2 -2
- package/spec/{testsGlobalFeaturesSpec.js → testsGlobalFeaturesSpec.ts} +10 -8
- package/spec/{testsSpec.js → testsSpec.ts} +11 -10
- package/spec/{testsTypeSpec.js → testsTypeSpec.ts} +5 -3
- package/src/ArrayCollection.ts +143 -0
- package/src/BackendMicroservice.ts +229 -0
- package/src/Base64.ts +92 -0
- package/src/CONFIG.ts +96 -0
- package/src/Cast.ts +46 -0
- package/src/Class.ts +303 -0
- package/src/ClassFactory.ts +34 -0
- package/src/ComplexStorageCache.ts +97 -0
- package/src/Component.ts +1222 -0
- package/src/ComponentFactory.ts +122 -0
- package/src/ConfigSettings.ts +62 -0
- package/src/Controller.ts +90 -0
- package/src/Crypt.ts +87 -0
- package/src/DDO.ts +93 -0
- package/src/DOMCreateElement.ts +12 -0
- package/src/DataStringify.ts +19 -0
- package/src/DefaultTemplateHandler.ts +55 -0
- package/src/DocumentLayout.ts +16 -0
- package/src/Effect.ts +56 -0
- package/src/Export.ts +8 -0
- package/src/Import.ts +135 -0
- package/src/IncrementInstanceID.ts +8 -0
- package/src/InheritClass.ts +210 -0
- package/src/LegacyCopy.ts +27 -0
- package/src/Logger.ts +32 -0
- package/src/MainProcess.ts +629 -0
- package/src/NamespaceRef.ts +26 -0
- package/src/New.ts +15 -0
- package/src/ObjectName.ts +16 -0
- package/src/Package.ts +67 -0
- package/src/PrimaryCollections.ts +7 -0
- package/src/Processor.ts +93 -0
- package/src/QCObjects.ts +100 -0
- package/src/Ready.ts +44 -0
- package/src/RegisterClass.ts +26 -0
- package/src/Service.ts +127 -0
- package/src/SourceCSS.ts +59 -0
- package/src/SourceJS.ts +76 -0
- package/src/Tag.ts +76 -0
- package/src/Timer.ts +42 -0
- package/src/Toggle.ts +65 -0
- package/src/TransitionEffect.ts +80 -0
- package/src/VO.ts +8 -0
- package/src/View.ts +17 -0
- package/src/WidgetsFactory.ts +543 -0
- package/src/assign.ts +33 -0
- package/src/asyncLoad.ts +42 -0
- package/src/basePath.ts +29 -0
- package/src/captureFalseTouch.ts +29 -0
- package/src/componentLoader.ts +252 -0
- package/src/defaultProcessors.ts +145 -0
- package/src/domain.ts +1 -0
- package/src/findPackageNodePath.ts +43 -0
- package/src/getType.ts +36 -0
- package/src/globalSettings.ts +118 -0
- package/src/index.mts +1 -1
- package/src/index.ts +1 -1
- package/src/introspection.ts +80 -0
- package/src/isQCObjects.ts +19 -0
- package/src/is_a.ts +16 -0
- package/src/is_forbidden_name.ts +12 -0
- package/src/is_raw_class.ts +3 -0
- package/src/loadSDK.ts +59 -0
- package/src/localStorage.ts +17 -0
- package/src/make_global.ts +19 -0
- package/src/mathFunctions.ts +3 -0
- package/src/platform.ts +30 -0
- package/src/range.ts +15 -0
- package/src/routings.ts +18 -0
- package/src/secretKey.ts +3 -0
- package/src/serviceLoader.ts +306 -0
- package/src/shortCode.ts +11 -0
- package/src/subelements.ts +4 -0
- package/src/super.ts +17 -0
- package/src/tag_filter.ts +1 -0
- package/src/top.ts +111 -0
- package/src/types/global/index.d.ts +597 -0
- package/src/uniqueID.ts +3 -0
- package/src/waitUntil.ts +26 -0
- package/tsconfig.d.json +35 -8
- package/tsconfig.jasmine.json +39 -0
- package/tsconfig.json +46 -12
- package/.eslintignore +0 -5
- package/.eslintrc.cjs +0 -21
- package/.eslintrc.json +0 -24
- package/browser/QCObjects.js +0 -2
- package/browser/QCObjects.js.map +0 -7
- package/browser/chunks/chunk-O2PFFZVJ.js +0 -713
- package/browser/chunks/chunk-O2PFFZVJ.js.map +0 -7
- package/browser/chunks/chunk-TBLBK5VV.js +0 -713
- package/browser/chunks/chunk-TBLBK5VV.js.map +0 -7
- package/browser/chunks/chunk-ZYLXOA35.js +0 -713
- package/browser/chunks/chunk-ZYLXOA35.js.map +0 -7
- package/browser/index.js +0 -2
- package/browser/index.js.map +0 -7
- package/spec/testsClassFactorySpec.js +0 -41
- package/src/QCObjects.js +0 -5247
- package/src/index.d.ts +0 -8
- package/types/index.d.ts +0 -472
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.5.101-ts
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArrayCollection = exports.ArrayList = void 0;
|
|
4
|
+
const ClassFactory_1 = require("./ClassFactory");
|
|
5
|
+
const Logger_1 = require("./Logger");
|
|
6
|
+
const New_1 = require("./New");
|
|
7
|
+
const mathFunctions_1 = require("./mathFunctions");
|
|
8
|
+
class ArrayList extends Array {
|
|
9
|
+
prototype;
|
|
10
|
+
unique() {
|
|
11
|
+
return this.filter(function (value, index, self) {
|
|
12
|
+
return self.indexOf(value) === index;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
;
|
|
16
|
+
table() {
|
|
17
|
+
console.table(this);
|
|
18
|
+
}
|
|
19
|
+
;
|
|
20
|
+
sum() {
|
|
21
|
+
return this.reduce((prev, current) => {
|
|
22
|
+
return ((0, mathFunctions_1.__to_number)(prev)) + ((0, mathFunctions_1.__to_number)(current));
|
|
23
|
+
}, 0);
|
|
24
|
+
}
|
|
25
|
+
avg() {
|
|
26
|
+
return (this.length < 1) ? (0) : (this.reduce((prev, current) => {
|
|
27
|
+
return ((((0, mathFunctions_1.__to_number)(prev)) + ((0, mathFunctions_1.__to_number)(current))) / 2);
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
min() {
|
|
31
|
+
return this.reduce((prev, current) => {
|
|
32
|
+
return ((0, mathFunctions_1.__to_number)(prev) <= (0, mathFunctions_1.__to_number)(current)) ? (prev) : (current);
|
|
33
|
+
}, Infinity);
|
|
34
|
+
}
|
|
35
|
+
max() {
|
|
36
|
+
return this.reduce((prev, current) => {
|
|
37
|
+
return ((0, mathFunctions_1.__to_number)(prev) >= (0, mathFunctions_1.__to_number)(current)) ? (prev) : (current);
|
|
38
|
+
}, 0);
|
|
39
|
+
}
|
|
40
|
+
sortBy(propName, sortAsc) {
|
|
41
|
+
const sort_function = (sortAsc) ? (function (prev, current) {
|
|
42
|
+
return current[propName] < prev[propName] ? 1 : -1;
|
|
43
|
+
}) : (function (prev, current) {
|
|
44
|
+
return current[propName] > prev[propName] ? 1 : -1;
|
|
45
|
+
});
|
|
46
|
+
return this.sort(sort_function);
|
|
47
|
+
}
|
|
48
|
+
matrix(length, fillValue) {
|
|
49
|
+
const x_func = () => {
|
|
50
|
+
return fillValue;
|
|
51
|
+
};
|
|
52
|
+
return Array.from({
|
|
53
|
+
length: length
|
|
54
|
+
}, x_func);
|
|
55
|
+
}
|
|
56
|
+
matrix2d(length, fillValue) {
|
|
57
|
+
const y_func = function () {
|
|
58
|
+
return fillValue;
|
|
59
|
+
};
|
|
60
|
+
const x_func = function () {
|
|
61
|
+
return Array.from({
|
|
62
|
+
length
|
|
63
|
+
}, y_func);
|
|
64
|
+
};
|
|
65
|
+
return Array.from({
|
|
66
|
+
length
|
|
67
|
+
}, x_func);
|
|
68
|
+
}
|
|
69
|
+
matrix3d(length, fillValue) {
|
|
70
|
+
const y_func = function () {
|
|
71
|
+
return Array.from({
|
|
72
|
+
length
|
|
73
|
+
}, function () {
|
|
74
|
+
return fillValue;
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const x_func = function () {
|
|
78
|
+
return Array.from({
|
|
79
|
+
length
|
|
80
|
+
}, y_func);
|
|
81
|
+
};
|
|
82
|
+
return Array.from({
|
|
83
|
+
length
|
|
84
|
+
}, x_func);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.ArrayList = ArrayList;
|
|
88
|
+
class ArrayCollection {
|
|
89
|
+
source = (0, New_1.New)(ArrayList, []);
|
|
90
|
+
changed(prop, value) {
|
|
91
|
+
Logger_1.logger.debug("VALUE CHANGED");
|
|
92
|
+
Logger_1.logger.debug(prop);
|
|
93
|
+
Logger_1.logger.debug(value);
|
|
94
|
+
}
|
|
95
|
+
push(value) {
|
|
96
|
+
const self = this;
|
|
97
|
+
Logger_1.logger.debug("VALUE ADDED");
|
|
98
|
+
Logger_1.logger.debug(value);
|
|
99
|
+
self.source.push(value);
|
|
100
|
+
}
|
|
101
|
+
pop() {
|
|
102
|
+
const self = this;
|
|
103
|
+
Logger_1.logger.debug("VALUE POPPED");
|
|
104
|
+
self.source.pop();
|
|
105
|
+
}
|
|
106
|
+
_new_(source) {
|
|
107
|
+
const self = this;
|
|
108
|
+
let _index = 0;
|
|
109
|
+
self.source = (0, New_1.New)((0, ClassFactory_1.ClassFactory)("ArrayList"), source);
|
|
110
|
+
for (const _k in self.source) {
|
|
111
|
+
if (!isNaN(_k)) {
|
|
112
|
+
Logger_1.logger.debug("binding " + _k.toString());
|
|
113
|
+
(function (_pname) {
|
|
114
|
+
Object.defineProperty(self, _pname, {
|
|
115
|
+
set(value) {
|
|
116
|
+
Logger_1.logger.debug("setting " + _pname + "=" + value);
|
|
117
|
+
self.source[_pname] = value;
|
|
118
|
+
self.changed(_pname, value);
|
|
119
|
+
},
|
|
120
|
+
get() {
|
|
121
|
+
return self.source[_pname];
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
})(_k);
|
|
125
|
+
_index++;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
self.source.length = _index;
|
|
129
|
+
Object.defineProperty(self, "length", {
|
|
130
|
+
get() {
|
|
131
|
+
return self.source.length;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.ArrayCollection = ArrayCollection;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BackendMicroservice = void 0;
|
|
4
|
+
const basePath_1 = require("./basePath");
|
|
5
|
+
const DataStringify_1 = require("./DataStringify");
|
|
6
|
+
const domain_1 = require("./domain");
|
|
7
|
+
const InheritClass_1 = require("./InheritClass");
|
|
8
|
+
const Logger_1 = require("./Logger");
|
|
9
|
+
const Package_1 = require("./Package");
|
|
10
|
+
class BackendMicroservice extends InheritClass_1.InheritClass {
|
|
11
|
+
stream;
|
|
12
|
+
route;
|
|
13
|
+
headers;
|
|
14
|
+
request;
|
|
15
|
+
constructor({ domain = domain_1._domain_, basePath = basePath_1._basePath_, body = null, stream = null, request = null }) {
|
|
16
|
+
super({
|
|
17
|
+
domain,
|
|
18
|
+
basePath,
|
|
19
|
+
body,
|
|
20
|
+
stream,
|
|
21
|
+
request
|
|
22
|
+
});
|
|
23
|
+
Logger_1.logger.debug("Initializing BackendMicroservice...");
|
|
24
|
+
const microservice = this;
|
|
25
|
+
if (typeof this.body === "undefined") {
|
|
26
|
+
this.body = null;
|
|
27
|
+
}
|
|
28
|
+
if (typeof body !== "undefined") {
|
|
29
|
+
this.body = body;
|
|
30
|
+
}
|
|
31
|
+
this.cors();
|
|
32
|
+
microservice.stream = stream;
|
|
33
|
+
stream?.on("data", (data) => {
|
|
34
|
+
// data from POST, GET
|
|
35
|
+
const requestMethod = request?.method.toLowerCase();
|
|
36
|
+
const supportedMethods = {
|
|
37
|
+
"post": microservice.post.bind(microservice),
|
|
38
|
+
};
|
|
39
|
+
if (Object.hasOwn(supportedMethods, requestMethod)) {
|
|
40
|
+
supportedMethods[requestMethod].call(microservice, data);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
// data from POST, GET
|
|
44
|
+
const requestMethod = request?.method.toLowerCase();
|
|
45
|
+
const supportedMethods = {
|
|
46
|
+
"get": microservice.get.bind(microservice),
|
|
47
|
+
"head": microservice.head.bind(microservice),
|
|
48
|
+
"put": microservice.put.bind(microservice),
|
|
49
|
+
"delete": microservice.delete.bind(microservice),
|
|
50
|
+
"connect": microservice.connect.bind(microservice),
|
|
51
|
+
"options": microservice.options.bind(microservice),
|
|
52
|
+
"trace": microservice.trace.bind(microservice),
|
|
53
|
+
"patch": microservice.patch.bind(microservice)
|
|
54
|
+
};
|
|
55
|
+
if (Object.hasOwn(supportedMethods, requestMethod)) {
|
|
56
|
+
supportedMethods[requestMethod].call(microservice);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
cors() {
|
|
60
|
+
if (this.route.cors) {
|
|
61
|
+
Logger_1.logger.debug("Validating CORS...");
|
|
62
|
+
const { allow_origins, allow_credentials, allow_methods, allow_headers } = this.route.cors;
|
|
63
|
+
const microservice = this;
|
|
64
|
+
if (typeof microservice.headers !== "object") {
|
|
65
|
+
microservice.headers = {};
|
|
66
|
+
}
|
|
67
|
+
if (typeof microservice.route.responseHeaders !== "object") {
|
|
68
|
+
microservice.route.responseHeaders = {};
|
|
69
|
+
}
|
|
70
|
+
if (typeof allow_origins !== "undefined") {
|
|
71
|
+
Logger_1.logger.debug("CORS: allow_origins available. Validating origins...");
|
|
72
|
+
// an example of allow_origins is ['https://example.com','http://www.example.com']
|
|
73
|
+
if (allow_origins === "*" || (typeof microservice.request.headers.origin === "undefined") || [...allow_origins].indexOf(microservice.request.headers.origin) !== -1) {
|
|
74
|
+
// for compatibility with all browsers allways return a wildcard when the origin is allowed
|
|
75
|
+
Logger_1.logger.debug("CORS: Adding header Access-Control-Allow-Origin=*");
|
|
76
|
+
microservice.route.responseHeaders["Access-Control-Allow-Origin"] = "*";
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
Logger_1.logger.debug("CORS: Origin is not allowed: " + microservice.request.headers.origin);
|
|
80
|
+
Logger_1.logger.debug("CORS: Forcing to finish the response...");
|
|
81
|
+
this.body = {};
|
|
82
|
+
try {
|
|
83
|
+
this.done();
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
Logger_1.logger.debug(`It was not possible to finish the call to the microservice: ${e}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
Logger_1.logger.debug("CORS: no allow_origins available. Allowing all origins...");
|
|
92
|
+
Logger_1.logger.debug("CORS: Adding header Access-Control-Allow-Origin=*");
|
|
93
|
+
microservice.route.responseHeaders["Access-Control-Allow-Origin"] = "*";
|
|
94
|
+
}
|
|
95
|
+
if (typeof allow_credentials !== "undefined") {
|
|
96
|
+
Logger_1.logger.debug(`CORS: allow_credentials present. Allowing ${allow_credentials}...`);
|
|
97
|
+
microservice.route.responseHeaders["Access-Control-Allow-Credentials"] = allow_credentials.toString();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
Logger_1.logger.debug("CORS: No allow_credentials present. Allowing all credentials.");
|
|
101
|
+
microservice.route.responseHeaders["Access-Control-Allow-Credentials"] = "true";
|
|
102
|
+
}
|
|
103
|
+
if (typeof allow_methods !== "undefined") {
|
|
104
|
+
Logger_1.logger.debug(`CORS: allow_methods present. Allowing ${allow_methods}...`);
|
|
105
|
+
microservice.route.responseHeaders["Access-Control-Allow-Methods"] = [...allow_methods].join(",");
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
Logger_1.logger.debug("CORS: No allow_methods present. Allowing only GET, OPTIONS and POST");
|
|
109
|
+
microservice.route.responseHeaders["Access-Control-Allow-Methods"] = "GET, OPTIONS, POST";
|
|
110
|
+
}
|
|
111
|
+
if (typeof allow_headers !== "undefined") {
|
|
112
|
+
Logger_1.logger.debug(`CORS: allow_headers present. Allowing ${allow_headers}...`);
|
|
113
|
+
microservice.route.responseHeaders["Access-Control-Allow-Headers"] = [...allow_headers].join(",");
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
Logger_1.logger.debug("CORS: No allow_headers present. Allowing all headers...");
|
|
117
|
+
microservice.route.responseHeaders["Access-Control-Allow-Headers"] = "*";
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
Logger_1.logger.debug("No CORS validation available. You can specify cors in CONFIG.backend.routes[].cors");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
head(formData) {
|
|
125
|
+
Logger_1.logger.debug(`[BackendMicroservice.head] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
126
|
+
this.done();
|
|
127
|
+
}
|
|
128
|
+
get(formData) {
|
|
129
|
+
Logger_1.logger.debug(`[BackendMicroservice.get] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
130
|
+
this.done();
|
|
131
|
+
}
|
|
132
|
+
post(formData) {
|
|
133
|
+
Logger_1.logger.debug(`[BackendMicroservice.post] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
134
|
+
this.done();
|
|
135
|
+
}
|
|
136
|
+
put(formData) {
|
|
137
|
+
Logger_1.logger.debug(`[BackendMicroservice.put] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
138
|
+
this.done();
|
|
139
|
+
}
|
|
140
|
+
delete(formData) {
|
|
141
|
+
Logger_1.logger.debug(`[BackendMicroservice.delete] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
142
|
+
this.done();
|
|
143
|
+
}
|
|
144
|
+
connect(formData) {
|
|
145
|
+
Logger_1.logger.debug(`[BackendMicroservice.connect] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
146
|
+
this.done();
|
|
147
|
+
}
|
|
148
|
+
options(formData) {
|
|
149
|
+
Logger_1.logger.debug(`[BackendMicroservice.options] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
150
|
+
this.done();
|
|
151
|
+
}
|
|
152
|
+
trace(formData) {
|
|
153
|
+
Logger_1.logger.debug(`[BackendMicroservice.trace] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
154
|
+
this.done();
|
|
155
|
+
}
|
|
156
|
+
patch(formData) {
|
|
157
|
+
Logger_1.logger.debug(`[BackendMicroservice.patch] Data received: ${(0, DataStringify_1._DataStringify)(formData)}`);
|
|
158
|
+
this.done();
|
|
159
|
+
}
|
|
160
|
+
finishWithBody(stream) {
|
|
161
|
+
try {
|
|
162
|
+
Logger_1.logger.debug("[BackendMicroservice.finishWithBody] Ending the stream...");
|
|
163
|
+
Logger_1.logger.debug(`[BackendMicroservice.finishWithBody] type of body is: ${typeof this.body}`);
|
|
164
|
+
if (typeof this.body !== "string") {
|
|
165
|
+
this.body = (0, DataStringify_1._DataStringify)(this.body);
|
|
166
|
+
}
|
|
167
|
+
Logger_1.logger.debug(`[BackendMicroservice.finishWithBody] \n body: ${this.body} `);
|
|
168
|
+
stream?.write(this.body);
|
|
169
|
+
stream?.end();
|
|
170
|
+
Logger_1.logger.debug("[BackendMicroservice.finishWithBody] Stream ended.");
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
Logger_1.logger.debug(`[BackendMicroservice.finishWithBody] Something went wrong ending the stream: ${e}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
done() {
|
|
177
|
+
Logger_1.logger.debug("[BackendMicroservice.done] Finalizing the response...");
|
|
178
|
+
const microservice = this;
|
|
179
|
+
const stream = microservice.stream;
|
|
180
|
+
try {
|
|
181
|
+
Logger_1.logger.debug("[BackendMicroservice.done] Sending response headers...");
|
|
182
|
+
if (microservice.route.responseHeaders) {
|
|
183
|
+
Logger_1.logger.debug(`[BackendMicroservice.done] Response headers present: ${Object.keys(microservice.route.responseHeaders).join(",")}`);
|
|
184
|
+
stream.respond(microservice.route.responseHeaders);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
throw Error("[BackendMicroservice.done] No headers present.");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (e) {
|
|
191
|
+
Logger_1.logger.debug(`[BackendMicroservice.done] Something went wrong sending response headers: ${e}`);
|
|
192
|
+
}
|
|
193
|
+
if (microservice.body !== null) {
|
|
194
|
+
try {
|
|
195
|
+
Logger_1.logger.debug("[BackendMicroservice.done] A body of message is present. Finalizing the response...");
|
|
196
|
+
microservice.finishWithBody.call(microservice, stream);
|
|
197
|
+
}
|
|
198
|
+
catch (e) {
|
|
199
|
+
Logger_1.logger.debug(`[BackendMicroservice.done] Something went wrong finalizing the response: ${e}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
Logger_1.logger.debug("[BackendMicroservice.done] No body present. Ending stream...");
|
|
204
|
+
stream.end();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
exports.BackendMicroservice = BackendMicroservice;
|
|
209
|
+
(0, Package_1.Package)("com.qcobjects.api", [
|
|
210
|
+
BackendMicroservice
|
|
211
|
+
]);
|
package/build/Base64.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Base64 = void 0;
|
|
4
|
+
exports.Base64 = {
|
|
5
|
+
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
|
|
6
|
+
encode(e) {
|
|
7
|
+
let t = "";
|
|
8
|
+
let n, r, i, s, o, u, a;
|
|
9
|
+
let f = 0;
|
|
10
|
+
e = exports.Base64._utf8_encode(e);
|
|
11
|
+
while (f < e.length) {
|
|
12
|
+
n = e.charCodeAt(f++);
|
|
13
|
+
r = e.charCodeAt(f++);
|
|
14
|
+
i = e.charCodeAt(f++);
|
|
15
|
+
s = n >> 2;
|
|
16
|
+
o = (n & 3) << 4 | r >> 4;
|
|
17
|
+
u = (r & 15) << 2 | i >> 6;
|
|
18
|
+
a = i & 63;
|
|
19
|
+
if (isNaN(r)) {
|
|
20
|
+
u = a = 64;
|
|
21
|
+
}
|
|
22
|
+
else if (isNaN(i)) {
|
|
23
|
+
a = 64;
|
|
24
|
+
}
|
|
25
|
+
t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);
|
|
26
|
+
}
|
|
27
|
+
return t;
|
|
28
|
+
},
|
|
29
|
+
decode(e) {
|
|
30
|
+
let t = "";
|
|
31
|
+
let n, r, i;
|
|
32
|
+
let s, o, u, a;
|
|
33
|
+
let f = 0;
|
|
34
|
+
e = e.replace(/[^A-Za-z0-9+/=]/g, "");
|
|
35
|
+
while (f < e.length) {
|
|
36
|
+
s = this._keyStr.indexOf(e.charAt(f++));
|
|
37
|
+
o = this._keyStr.indexOf(e.charAt(f++));
|
|
38
|
+
u = this._keyStr.indexOf(e.charAt(f++));
|
|
39
|
+
a = this._keyStr.indexOf(e.charAt(f++));
|
|
40
|
+
n = s << 2 | o >> 4;
|
|
41
|
+
r = (o & 15) << 4 | u >> 2;
|
|
42
|
+
i = (u & 3) << 6 | a;
|
|
43
|
+
t = t + String.fromCharCode(n);
|
|
44
|
+
if (u !== 64) {
|
|
45
|
+
t = t + String.fromCharCode(r);
|
|
46
|
+
}
|
|
47
|
+
if (a !== 64) {
|
|
48
|
+
t = t + String.fromCharCode(i);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
t = exports.Base64._utf8_decode(t);
|
|
52
|
+
return t;
|
|
53
|
+
},
|
|
54
|
+
_utf8_encode(e) {
|
|
55
|
+
e = e.replace(/rn/g, "n");
|
|
56
|
+
let t = "";
|
|
57
|
+
for (let n = 0; n < e.length; n++) {
|
|
58
|
+
const r = e.charCodeAt(n);
|
|
59
|
+
if (r < 128) {
|
|
60
|
+
t += String.fromCharCode(r);
|
|
61
|
+
}
|
|
62
|
+
else if (r > 127 && r < 2048) {
|
|
63
|
+
t += String.fromCharCode(r >> 6 | 192);
|
|
64
|
+
t += String.fromCharCode(r & 63 | 128);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
t += String.fromCharCode(r >> 12 | 224);
|
|
68
|
+
t += String.fromCharCode(r >> 6 & 63 | 128);
|
|
69
|
+
t += String.fromCharCode(r & 63 | 128);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return t;
|
|
73
|
+
},
|
|
74
|
+
_utf8_decode(e) {
|
|
75
|
+
let t = "";
|
|
76
|
+
let n = 0;
|
|
77
|
+
let r = 0;
|
|
78
|
+
let c2 = 0;
|
|
79
|
+
let c3;
|
|
80
|
+
while (n < e.length) {
|
|
81
|
+
r = e.charCodeAt(n);
|
|
82
|
+
if (r < 128) {
|
|
83
|
+
t += String.fromCharCode(r);
|
|
84
|
+
n++;
|
|
85
|
+
}
|
|
86
|
+
else if (r > 191 && r < 224) {
|
|
87
|
+
c2 = e.charCodeAt(n + 1);
|
|
88
|
+
t += String.fromCharCode((r & 31) << 6 | c2 & 63);
|
|
89
|
+
n += 2;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
c2 = e.charCodeAt(n + 1);
|
|
93
|
+
c3 = e.charCodeAt(n + 2);
|
|
94
|
+
t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
|
|
95
|
+
n += 3;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return t;
|
|
99
|
+
}
|
|
100
|
+
};
|
package/build/CONFIG.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONFIG = void 0;
|
|
4
|
+
const basePath_1 = require("./basePath");
|
|
5
|
+
const Cast_1 = require("./Cast");
|
|
6
|
+
const Crypt_1 = require("./Crypt");
|
|
7
|
+
const DataStringify_1 = require("./DataStringify");
|
|
8
|
+
const Logger_1 = require("./Logger");
|
|
9
|
+
const Processor_1 = require("./Processor");
|
|
10
|
+
const secretKey_1 = require("./secretKey");
|
|
11
|
+
const Package_1 = require("./Package");
|
|
12
|
+
const InheritClass_1 = require("./InheritClass");
|
|
13
|
+
const ConfigSettings_1 = require("./ConfigSettings");
|
|
14
|
+
class CONFIG extends InheritClass_1.InheritClass {
|
|
15
|
+
get _CONFIG_ENC() {
|
|
16
|
+
return ConfigSettings_1.ConfigSettings.instance._CONFIG_ENC;
|
|
17
|
+
}
|
|
18
|
+
get _CONFIG() {
|
|
19
|
+
return ConfigSettings_1.ConfigSettings.instance._CONFIG;
|
|
20
|
+
}
|
|
21
|
+
set(name, value) {
|
|
22
|
+
Logger_1.logger.debug(`CONFIG.set ${name}: ${value}`);
|
|
23
|
+
// hack to force update basePath from CONFIG
|
|
24
|
+
if (name === "basePath") {
|
|
25
|
+
(0, basePath_1.setBasePath)(value);
|
|
26
|
+
}
|
|
27
|
+
let _conf;
|
|
28
|
+
try {
|
|
29
|
+
_conf = (function (config) {
|
|
30
|
+
if (config._CONFIG_ENC === null) {
|
|
31
|
+
config._CONFIG_ENC = Crypt_1._Crypt.encrypt((0, DataStringify_1._DataStringify)({}), secretKey_1._secretKey);
|
|
32
|
+
}
|
|
33
|
+
const _protectedEnc = config._CONFIG_ENC.valueOf();
|
|
34
|
+
const _protectedConf = config._CONFIG?.valueOf();
|
|
35
|
+
return (0, Cast_1._CastProps)(_protectedConf, (0, Crypt_1._DecryptObject)(_protectedEnc));
|
|
36
|
+
})(ConfigSettings_1.ConfigSettings.instance);
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
_conf = {};
|
|
40
|
+
console.error(e);
|
|
41
|
+
Logger_1.logger.debug("failed to encrypt config");
|
|
42
|
+
}
|
|
43
|
+
_conf[name] = value;
|
|
44
|
+
ConfigSettings_1.ConfigSettings.instance._CONFIG_ENC = (0, Crypt_1._CryptObject)(_conf);
|
|
45
|
+
ConfigSettings_1.ConfigSettings.instance.set(name, value);
|
|
46
|
+
}
|
|
47
|
+
get(name, _default) {
|
|
48
|
+
let _value;
|
|
49
|
+
try {
|
|
50
|
+
const _conf = (function (config) {
|
|
51
|
+
if (config._CONFIG_ENC === null) {
|
|
52
|
+
config._CONFIG_ENC = Crypt_1._Crypt.encrypt((0, DataStringify_1._DataStringify)({}), secretKey_1._secretKey);
|
|
53
|
+
}
|
|
54
|
+
const _protectedEnc = config._CONFIG_ENC.valueOf();
|
|
55
|
+
const _protectedConf = config._CONFIG.valueOf();
|
|
56
|
+
return (0, Cast_1._CastProps)(_protectedConf, (0, Crypt_1._DecryptObject)(_protectedEnc));
|
|
57
|
+
})(ConfigSettings_1.ConfigSettings.instance);
|
|
58
|
+
if (typeof _conf[name] !== "undefined") {
|
|
59
|
+
_value = _conf[name];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
console.error(e);
|
|
64
|
+
Logger_1.logger.debug("Something wrong when trying to get CONFIG values");
|
|
65
|
+
Logger_1.logger.debug("No config value for: " + name);
|
|
66
|
+
_value = _default;
|
|
67
|
+
}
|
|
68
|
+
return Processor_1.GlobalProcessor.processObject(_value) || _default;
|
|
69
|
+
}
|
|
70
|
+
static _instance;
|
|
71
|
+
static get instance() {
|
|
72
|
+
if (typeof CONFIG._instance === "undefined") {
|
|
73
|
+
CONFIG._instance = new CONFIG();
|
|
74
|
+
}
|
|
75
|
+
return CONFIG._instance;
|
|
76
|
+
}
|
|
77
|
+
static set(name, value) {
|
|
78
|
+
(CONFIG.instance.set(name, value));
|
|
79
|
+
}
|
|
80
|
+
static get(name, value) {
|
|
81
|
+
return (CONFIG.instance.get(name, value));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.CONFIG = CONFIG;
|
|
85
|
+
(0, Package_1.Package)("com.qcobjects", [CONFIG]);
|
package/build/Cast.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._CastProps = exports._Cast = void 0;
|
|
4
|
+
const Logger_1 = require("./Logger");
|
|
5
|
+
/**
|
|
6
|
+
* Casts an object to another object class type
|
|
7
|
+
*
|
|
8
|
+
* @param {Object} obj_source
|
|
9
|
+
* @param {Object} obj_dest
|
|
10
|
+
*/
|
|
11
|
+
const _Cast = function (obj_source, obj_dest) {
|
|
12
|
+
for (const v in obj_source) {
|
|
13
|
+
if (typeof obj_source[v] !== "undefined") {
|
|
14
|
+
try {
|
|
15
|
+
obj_dest[v] = obj_source[v];
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
Logger_1.logger.debug(`An error ocurred: ${e}.`);
|
|
19
|
+
Logger_1.logger.warn(`Unable to cast ${(typeof obj_source).toString()}.${typeof v.toString()} to ${(typeof obj_dest).toString()}.${typeof v.toString()}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return obj_dest;
|
|
24
|
+
};
|
|
25
|
+
exports._Cast = _Cast;
|
|
26
|
+
/**
|
|
27
|
+
* Casts an object to another object class type. Only properties
|
|
28
|
+
*
|
|
29
|
+
* @param {Object} obj_source
|
|
30
|
+
* @param {Object} obj_dest
|
|
31
|
+
*/
|
|
32
|
+
const _CastProps = function (obj_source, obj_dest) {
|
|
33
|
+
for (const v in obj_source) {
|
|
34
|
+
if (typeof obj_source[v] !== "undefined" && typeof obj_source[v] !== "function") {
|
|
35
|
+
try {
|
|
36
|
+
obj_dest[v] = obj_source[v];
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
Logger_1.logger.debug(`An error ocurred: ${e}.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (typeof obj_source[v] === "function") {
|
|
43
|
+
try {
|
|
44
|
+
obj_dest[v] = obj_source[v].bind(obj_dest);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
Logger_1.logger.warn(e);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return obj_dest;
|
|
52
|
+
};
|
|
53
|
+
exports._CastProps = _CastProps;
|