qcobjects-sdk 2.4.66 → 2.5.105-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/.github/workflows/npmpublish-beta.yml +4 -2
- package/.github/workflows/npmpublish-lts.yml +4 -2
- package/.github/workflows/npmpublish-main.yml +2 -2
- package/README.md +0 -1
- package/VERSION +1 -1
- package/build/QCObjects-SDK.js +83 -41
- package/build/index.js +17 -7
- package/build/js/org.qcobjects.base.components.js +75 -0
- package/build/js/org.qcobjects.cloud.auth.session.data.js +98 -101
- package/build/js/org.qcobjects.cloud.auth.session.usertoken.js +68 -80
- package/build/js/org.qcobjects.components.grid.js +35 -53
- package/build/js/org.qcobjects.components.js +145 -237
- package/build/js/org.qcobjects.components.list.js +36 -45
- package/build/js/org.qcobjects.components.notifications.js +107 -106
- package/build/js/org.qcobjects.components.slider.js +183 -169
- package/build/js/org.qcobjects.components.splashscreen.js +123 -130
- package/build/js/org.qcobjects.controllers.form.js +149 -147
- package/build/js/org.qcobjects.controllers.grid.js +226 -215
- package/build/js/org.qcobjects.controllers.js +11 -11
- package/build/js/org.qcobjects.controllers.list.js +195 -188
- package/build/js/org.qcobjects.controllers.slider.js +101 -106
- package/build/js/org.qcobjects.controllers.swagger.js +71 -46
- package/build/js/org.qcobjects.effects.base.js +86 -0
- package/build/js/org.qcobjects.effects.extended.js +318 -0
- package/build/js/org.qcobjects.effects.js +26 -394
- package/build/js/org.qcobjects.i18n_messages.js +33 -46
- package/build/js/org.qcobjects.modal.controllers.js +16 -15
- package/build/js/org.qcobjects.modal.effects.js +23 -28
- package/build/js/org.qcobjects.models.js +11 -11
- package/build/js/org.qcobjects.tools.canvas.js +28 -27
- package/build/js/org.qcobjects.tools.js +10 -3
- package/build/js/org.qcobjects.tools.layouts.js +46 -45
- package/build/js/org.qcobjects.views.js +11 -11
- package/build-esbuild.js +72 -0
- package/eslint.config.mjs +88 -0
- package/package.json +67 -63
- package/postbuild.js +10 -0
- package/public/browser/index.js +9902 -0
- package/public/browser/index.js.map +7 -0
- package/public/cjs/index.cjs +9894 -0
- package/public/cjs/index.cjs.map +7 -0
- package/public/esm/index.mjs +9894 -0
- package/public/esm/index.mjs.map +7 -0
- package/public/types/index.d.ts +698 -0
- package/spec/helpers/mock-sdk.helper.ts +2 -0
- package/spec/mocks/qcobjects-sdk.mock.ts +1 -0
- package/spec/support/jasmine.json +7 -4
- package/src/QCObjects-SDK.ts +72 -53
- package/src/js/org.qcobjects.base.components.ts +83 -0
- package/src/js/org.qcobjects.cloud.auth.session.data.ts +98 -99
- package/src/js/org.qcobjects.cloud.auth.session.usertoken.ts +72 -92
- package/src/js/org.qcobjects.components.grid.ts +31 -58
- package/src/js/org.qcobjects.components.list.ts +15 -31
- package/src/js/org.qcobjects.components.notifications.ts +12 -12
- package/src/js/org.qcobjects.components.slider.ts +182 -171
- package/src/js/org.qcobjects.components.splashscreen.ts +31 -39
- package/src/js/org.qcobjects.components.ts +151 -261
- package/src/js/org.qcobjects.controllers.form.ts +151 -148
- package/src/js/org.qcobjects.controllers.grid.ts +226 -222
- package/src/js/org.qcobjects.controllers.list.ts +207 -205
- package/src/js/org.qcobjects.controllers.slider.ts +120 -125
- package/src/js/org.qcobjects.controllers.swagger.ts +51 -51
- package/src/js/org.qcobjects.controllers.ts +7 -9
- package/src/js/org.qcobjects.effects.base.ts +97 -0
- package/src/js/org.qcobjects.effects.extended.ts +350 -0
- package/src/js/org.qcobjects.effects.ts +6 -394
- package/src/js/org.qcobjects.i18n_messages.ts +37 -51
- package/src/js/org.qcobjects.modal.controllers.ts +12 -14
- package/src/js/org.qcobjects.modal.effects.ts +22 -18
- package/src/js/org.qcobjects.models.ts +8 -11
- package/src/js/org.qcobjects.tools.canvas.ts +26 -28
- package/src/js/org.qcobjects.tools.layouts.ts +44 -47
- package/src/js/org.qcobjects.tools.ts +7 -1
- package/src/js/org.qcobjects.views.ts +9 -8
- package/src/types/global/index.d.ts +181 -0
- package/transpile.js +65 -0
- package/tsconfig.d.json +65 -3
- package/tsconfig.jasmine.json +64 -0
- package/tsconfig.json +71 -7
- package/.eslintignore +0 -4
- package/.eslintrc.cjs +0 -6
- package/.gitmodules +0 -4
- package/build/css/base-modal.css +0 -43
- package/build/css/basic-layout-embedded-nav.css +0 -14
- package/build/css/basic-layout.css +0 -76
- package/build/css/components/horizontal-list.css +0 -64
- package/build/css/components/list.css +0 -57
- package/build/css/components/splashscreen.css +0 -111
- package/build/css/modal.css +0 -46
- package/build/index.cjs +0 -4
- package/build/index.mjs +0 -2
- package/build/templates/components/modalyoulose.tpl.html +0 -3
- package/build/templates/components/modalyouwin.tpl.html +0 -4
- package/build/templates/components/splashscreen.tpl.html +0 -128
- package/build/templates/components/swagger-ui.tpl.html +0 -22
- package/docs/CNAME +0 -1
- package/public/QCObjects-SDK.js +0 -696
- package/public/QCObjects-SDK.js.map +0 -7
- package/public/css/base-modal.css +0 -2
- package/public/css/base-modal.css.map +0 -7
- package/public/css/basic-layout-embedded-nav.css +0 -2
- package/public/css/basic-layout-embedded-nav.css.map +0 -7
- package/public/css/basic-layout.css +0 -2
- package/public/css/basic-layout.css.map +0 -7
- package/public/css/components/horizontal-list.css +0 -2
- package/public/css/components/horizontal-list.css.map +0 -7
- package/public/css/components/list.css +0 -2
- package/public/css/components/list.css.map +0 -7
- package/public/css/components/splashscreen.css +0 -2
- package/public/css/components/splashscreen.css.map +0 -7
- package/public/css/modal.css +0 -2
- package/public/css/modal.css.map +0 -7
- package/public/index.cjs +0 -4
- package/public/index.js +0 -27
- package/public/index.mjs +0 -2
- package/public/templates/components/modalyoulose.tpl.html +0 -3
- package/public/templates/components/modalyouwin.tpl.html +0 -4
- package/public/templates/components/splashscreen.tpl.html +0 -128
- package/public/templates/components/swagger-ui.tpl.html +0 -22
- package/src/QCObjects-SDK.d.ts +0 -26
- package/src/index.cts +0 -2
- package/src/index.d.ts +0 -2
- package/src/index.mts +0 -2
- package/src/js/org.qcobjects.cloud.auth.session.data.d.ts +0 -1
- package/src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts +0 -2
- package/src/js/org.qcobjects.components.d.ts +0 -10
- package/src/js/org.qcobjects.components.grid.d.ts +0 -3
- package/src/js/org.qcobjects.components.list.d.ts +0 -3
- package/src/js/org.qcobjects.components.notifications.d.ts +0 -1
- package/src/js/org.qcobjects.components.slider.d.ts +0 -1
- package/src/js/org.qcobjects.components.splashscreen.d.ts +0 -28
- package/src/js/org.qcobjects.controllers.d.ts +0 -1
- package/src/js/org.qcobjects.controllers.form.d.ts +0 -1
- package/src/js/org.qcobjects.controllers.grid.d.ts +0 -1
- package/src/js/org.qcobjects.controllers.list.d.ts +0 -1
- package/src/js/org.qcobjects.controllers.slider.d.ts +0 -1
- package/src/js/org.qcobjects.controllers.swagger.d.ts +0 -1
- package/src/js/org.qcobjects.effects.d.ts +0 -20
- package/src/js/org.qcobjects.i18n_messages.d.ts +0 -1
- package/src/js/org.qcobjects.modal.controllers.d.ts +0 -1
- package/src/js/org.qcobjects.modal.effects.d.ts +0 -1
- package/src/js/org.qcobjects.models.d.ts +0 -1
- package/src/js/org.qcobjects.tools.canvas.d.ts +0 -1
- package/src/js/org.qcobjects.tools.d.ts +0 -1
- package/src/js/org.qcobjects.tools.layouts.d.ts +0 -1
- package/src/js/org.qcobjects.views.d.ts +0 -1
- /package/spec/{testsSpec.js → testsSpec.ts} +0 -0
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
"spec_dir": "spec",
|
|
3
3
|
|
|
4
4
|
"spec_files": [
|
|
5
|
-
"**/*[sS]pec.
|
|
6
|
-
"!**/*nospec.
|
|
5
|
+
"**/*[sS]pec.ts",
|
|
6
|
+
"!**/*nospec.ts"
|
|
7
7
|
],
|
|
8
8
|
|
|
9
9
|
"helpers": [
|
|
10
|
-
"helpers/**/*.
|
|
10
|
+
"helpers/**/*.helper.ts"
|
|
11
11
|
],
|
|
12
12
|
|
|
13
|
-
"stopSpecOnExpectationFailure":
|
|
13
|
+
"stopSpecOnExpectationFailure": true,
|
|
14
|
+
"failSpecWithNoExpectations": true,
|
|
15
|
+
|
|
16
|
+
"stopOnSpecFailure": false,
|
|
14
17
|
|
|
15
18
|
"random": false
|
|
16
19
|
}
|
package/src/QCObjects-SDK.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
2
|
/**
|
|
3
|
-
* QCObjects SDK 2.
|
|
3
|
+
* QCObjects SDK 2.5
|
|
4
4
|
* ________________
|
|
5
5
|
*
|
|
6
6
|
* Author: Jean Machuca <correojean@gmail.com>
|
|
@@ -24,83 +24,102 @@
|
|
|
24
24
|
* license document, but changing it is not allowed.
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
import { CONFIG, GlobalSettings } from "qcobjects";
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
import { CONFIG, GlobalSettings, _top } from "qcobjects";
|
|
28
|
+
export {i18n_messages} from "./js/org.qcobjects.i18n_messages";
|
|
29
|
+
export {Contact} from "./js/org.qcobjects.models";
|
|
30
|
+
export {
|
|
31
|
+
ShadowedComponent,
|
|
32
|
+
ButtonField,
|
|
33
|
+
InputField,
|
|
34
|
+
TextField,
|
|
35
|
+
EmailField,
|
|
36
|
+
ModalEnclosureComponent,
|
|
37
|
+
ModalComponent,
|
|
38
|
+
SwaggerUIComponent
|
|
39
|
+
} from "./js/org.qcobjects.components";
|
|
40
|
+
export {FormField, FieldComponentParams} from "./js/org.qcobjects.base.components";
|
|
41
|
+
export {
|
|
42
|
+
GridComponent,
|
|
43
|
+
GridItemComponent
|
|
44
|
+
} from "./js/org.qcobjects.components.grid";
|
|
45
|
+
export {
|
|
46
|
+
ListItemComponent,
|
|
47
|
+
ListComponent
|
|
48
|
+
} from "./js/org.qcobjects.components.list";
|
|
49
|
+
export {
|
|
50
|
+
SlideListComponent,
|
|
51
|
+
SlideItemComponent,
|
|
52
|
+
SliderComponent
|
|
53
|
+
} from "./js/org.qcobjects.components.slider";
|
|
54
|
+
export { NotificationComponent } from "./js/org.qcobjects.components.notifications";
|
|
55
|
+
export {
|
|
56
|
+
SplashScreenComponent,
|
|
57
|
+
VideoSplashScreenComponent,
|
|
58
|
+
CubeSplashScreenComponent
|
|
59
|
+
} from "./js/org.qcobjects.components.splashscreen";
|
|
60
|
+
export { GenericController } from "./js/org.qcobjects.controllers";
|
|
61
|
+
export { ListController, ListControllerParams } from "./js/org.qcobjects.controllers.list";
|
|
62
|
+
export { GridController, DataGridController } from "./js/org.qcobjects.controllers.grid";
|
|
63
|
+
export { SliderController } from "./js/org.qcobjects.controllers.slider";
|
|
64
|
+
export { FormController, FormValidations } from "./js/org.qcobjects.controllers.form";
|
|
65
|
+
export { SwaggerUIController } from "./js/org.qcobjects.controllers.swagger";
|
|
66
|
+
export {
|
|
67
|
+
Fade, Move, MoveXInFromRight,
|
|
68
|
+
MoveXInFromLeft,
|
|
69
|
+
MoveYInFromBottom,
|
|
70
|
+
MoveYInFromTop,
|
|
71
|
+
RotateX,
|
|
72
|
+
RotateY,
|
|
73
|
+
RotateZ,
|
|
74
|
+
Rotate,
|
|
75
|
+
Radius,
|
|
76
|
+
Resize,
|
|
77
|
+
WipeLeft,
|
|
78
|
+
WipeRight,
|
|
79
|
+
WipeUp,
|
|
80
|
+
WipeDown,
|
|
81
|
+
ModalFade, ModalMoveUp, ModalMoveDown
|
|
82
|
+
} from "./js/org.qcobjects.effects";
|
|
83
|
+
export { ModalController } from "./js/org.qcobjects.modal.controllers";
|
|
84
|
+
export { GridView } from "./js/org.qcobjects.views";
|
|
85
|
+
export { CanvasTool } from "./js/org.qcobjects.tools.canvas";
|
|
86
|
+
export { BasicLayout } from "./js/org.qcobjects.tools.layouts";
|
|
87
|
+
export { SessionUserToken } from "./js/org.qcobjects.cloud.auth.session.usertoken";
|
|
88
|
+
export { SessionData } from "./js/org.qcobjects.cloud.auth.session.data";
|
|
42
89
|
|
|
43
90
|
// eslint-disable-next-line camelcase
|
|
44
|
-
(function __qcobjects_sdk__
|
|
91
|
+
(function __qcobjects_sdk__(_top: any) {
|
|
45
92
|
"use strict";
|
|
46
|
-
if (typeof Object.defineProperty !== "undefined" && typeof _top !== "undefined"){
|
|
93
|
+
if (typeof Object.defineProperty !== "undefined" && typeof _top !== "undefined") {
|
|
47
94
|
try {
|
|
48
|
-
Object.defineProperty(_top,"__qcobjects_sdk__", {
|
|
95
|
+
Object.defineProperty(_top, "__qcobjects_sdk__", {
|
|
49
96
|
enumerable: true,
|
|
50
97
|
configurable: false,
|
|
51
98
|
writable: false,
|
|
52
99
|
// eslint-disable-next-line camelcase
|
|
53
100
|
value: __qcobjects_sdk__,
|
|
54
101
|
});
|
|
55
|
-
} catch (e){
|
|
56
|
-
if (typeof _top.__qcobjects_sdk__ !== "undefined"){
|
|
102
|
+
} catch (e) {
|
|
103
|
+
if (typeof _top.__qcobjects_sdk__ !== "undefined") {
|
|
57
104
|
_top.__qcobjects_sdk__.__loaded__ = true;
|
|
58
105
|
}
|
|
59
106
|
}
|
|
60
107
|
}
|
|
61
108
|
|
|
62
|
-
if (typeof _top.__qcobjects_sdk__.__loaded__ === "undefined"){
|
|
109
|
+
if (typeof _top.__qcobjects_sdk__.__loaded__ === "undefined") {
|
|
63
110
|
_top.__qcobjects_sdk__.__loaded__ = true;
|
|
64
|
-
if (typeof _top === "undefined"){
|
|
111
|
+
if (typeof _top === "undefined") {
|
|
65
112
|
throw Error("Top context empty: It should either global, module or window");
|
|
66
113
|
}
|
|
67
114
|
|
|
68
115
|
const __start__ = GlobalSettings.__start__.bind(_top);
|
|
69
116
|
|
|
70
|
-
let _imports_: any[] = [];
|
|
71
117
|
|
|
72
|
-
|
|
73
|
-
_imports_ = [
|
|
74
|
-
new Promise<void> ((resolve)=> {
|
|
75
|
-
require("./js/org.qcobjects.i18n_messages");
|
|
76
|
-
require("./js/org.qcobjects.models");
|
|
77
|
-
require("./js/org.qcobjects.components");
|
|
78
|
-
require("./js/org.qcobjects.components.grid");
|
|
79
|
-
require("./js/org.qcobjects.components.list");
|
|
80
|
-
require("./js/org.qcobjects.components.slider");
|
|
81
|
-
require("./js/org.qcobjects.components.notifications");
|
|
82
|
-
require("./js/org.qcobjects.components.splashscreen");
|
|
83
|
-
require("./js/org.qcobjects.controllers");
|
|
84
|
-
require("./js/org.qcobjects.controllers.grid");
|
|
85
|
-
require("./js/org.qcobjects.controllers.list");
|
|
86
|
-
require("./js/org.qcobjects.controllers.slider");
|
|
87
|
-
require("./js/org.qcobjects.controllers.form");
|
|
88
|
-
require("./js/org.qcobjects.controllers.swagger");
|
|
89
|
-
require("./js/org.qcobjects.effects");
|
|
90
|
-
require("./js/org.qcobjects.modal.controllers");
|
|
91
|
-
require("./js/org.qcobjects.views");
|
|
92
|
-
require("./js/org.qcobjects.tools.canvas");
|
|
93
|
-
require("./js/org.qcobjects.tools.layouts");
|
|
94
|
-
require("./js/org.qcobjects.cloud.auth.session.usertoken");
|
|
95
|
-
require("./js/org.qcobjects.cloud.auth.session.data");
|
|
96
|
-
resolve();
|
|
97
|
-
})
|
|
98
|
-
];
|
|
99
|
-
_top._sdk_ = Promise.all(_imports_).then(()=>{
|
|
118
|
+
_top._sdk_ = Promise.resolve().then(() => {
|
|
100
119
|
CONFIG.set("useSDK", true);
|
|
101
120
|
__start__();
|
|
102
121
|
});
|
|
103
|
-
|
|
122
|
+
|
|
104
123
|
}
|
|
105
124
|
|
|
106
125
|
})(_top);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {Package, Component, logger} from "qcobjects";
|
|
2
|
+
export type FieldComponentParams = {
|
|
3
|
+
name: string;
|
|
4
|
+
body: any;
|
|
5
|
+
data: any;
|
|
6
|
+
basePath?: string;
|
|
7
|
+
fieldType: string;
|
|
8
|
+
}
|
|
9
|
+
export class FormField extends Component {
|
|
10
|
+
fieldType!: string;
|
|
11
|
+
cached = false;
|
|
12
|
+
reload = true;
|
|
13
|
+
body: any;
|
|
14
|
+
name!: string;
|
|
15
|
+
data: any;
|
|
16
|
+
constructor(o: FieldComponentParams) {
|
|
17
|
+
o.name = (typeof o.name !== "undefined") ? (o.name) : ("form-field");
|
|
18
|
+
super(o);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
createBindingEvents() {
|
|
22
|
+
let _objList;
|
|
23
|
+
if (typeof this.fieldType === "undefined" || this.fieldType == null) {
|
|
24
|
+
_objList = this.body.subelements("*[data-field]"); // every child with data-field set
|
|
25
|
+
} else {
|
|
26
|
+
_objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property
|
|
27
|
+
}
|
|
28
|
+
for (let _datak = 0; _datak < _objList.length; _datak++) {
|
|
29
|
+
const _obj = _objList[_datak];
|
|
30
|
+
_obj.addEventListener("change", () => {
|
|
31
|
+
logger.debug("Executing change event binding");
|
|
32
|
+
this.executeBindings();
|
|
33
|
+
});
|
|
34
|
+
_obj.addEventListener("blur", () => {
|
|
35
|
+
logger.debug("Executing change event binding");
|
|
36
|
+
this.executeBindings();
|
|
37
|
+
});
|
|
38
|
+
_obj.addEventListener("focus", () => {
|
|
39
|
+
logger.debug("Executing change event binding");
|
|
40
|
+
this.executeBindings();
|
|
41
|
+
});
|
|
42
|
+
_obj.addEventListener("keydown", () => {
|
|
43
|
+
logger.debug("Executing keydown event binding");
|
|
44
|
+
this.executeBindings();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
executeBinding(_obj: HTMLElement & { value: any }) {
|
|
50
|
+
const _datamodel = _obj.getAttribute("data-field");
|
|
51
|
+
logger.debug("Binding " + _datamodel + " for " + this.name);
|
|
52
|
+
this.data[_datamodel as keyof typeof this.data] = _obj.value;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
executeBindings() {
|
|
56
|
+
let _objList;
|
|
57
|
+
if (typeof this.fieldType === "undefined" || this.fieldType == null) {
|
|
58
|
+
_objList = this.body.subelements("*[data-field]"); // every child with data-field set
|
|
59
|
+
} else {
|
|
60
|
+
_objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property
|
|
61
|
+
}
|
|
62
|
+
for (let _datak = 0; _datak < _objList.length; _datak++) {
|
|
63
|
+
const _obj = _objList[_datak] as HTMLElement & { value: any };
|
|
64
|
+
const _datamodel = _obj.getAttribute("data-field");
|
|
65
|
+
logger.debug("Binding " + _datamodel + " for " + this.name);
|
|
66
|
+
this.data[_datamodel as keyof typeof this.data] = _obj.value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
done(standardResponse: any): Promise<any> {
|
|
71
|
+
const _ret_ = super.done(standardResponse);
|
|
72
|
+
this.executeBindings();
|
|
73
|
+
this.createBindingEvents();
|
|
74
|
+
logger.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]");
|
|
75
|
+
return _ret_ as Promise<any>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
Package("org.qcobjects.base.components", [
|
|
82
|
+
FormField
|
|
83
|
+
]);
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { Package, InheritClass, _DataStringify } from "qcobjects";
|
|
2
|
-
import { SessionUserToken } from "./org.qcobjects.cloud.auth.session.usertoken";
|
|
3
|
-
|
|
4
1
|
/**
|
|
5
|
-
* QCObjects SDK 2.
|
|
2
|
+
* QCObjects SDK 2.5
|
|
6
3
|
* ________________
|
|
7
4
|
*
|
|
8
5
|
* Author: Jean Machuca <correojean@gmail.com>
|
|
@@ -25,111 +22,113 @@ import { SessionUserToken } from "./org.qcobjects.cloud.auth.session.usertoken";
|
|
|
25
22
|
* Everyone is permitted to copy and distribute verbatim copies of this
|
|
26
23
|
* license document, but changing it is not allowed.
|
|
27
24
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
"use strict";
|
|
26
|
+
import { Package, InheritClass, _DataStringify } from "qcobjects";
|
|
27
|
+
import { SessionUserToken } from "./org.qcobjects.cloud.auth.session.usertoken";
|
|
28
|
+
|
|
29
|
+
export class SessionData extends InheritClass {
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
__session_container__: any = null;
|
|
32
|
+
sessionData: any;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Sets the session container
|
|
36
|
+
*
|
|
37
|
+
* @param {*} sessionContainer1, sessionContainer2, ...
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
setSessionContainer() {
|
|
41
|
+
// eslint-disable-next-line prefer-rest-params
|
|
42
|
+
this.__session_container__ = [...arguments];
|
|
43
|
+
}
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Gets the session container
|
|
47
|
+
*
|
|
48
|
+
* @return {*} sessionContainer
|
|
49
|
+
*/
|
|
50
|
+
getSessionContainer() {
|
|
51
|
+
if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) {
|
|
52
|
+
throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)");
|
|
53
|
+
}
|
|
54
|
+
return this.__session_container__;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Gets the session data
|
|
59
|
+
*
|
|
60
|
+
* @return {*} sessionData
|
|
61
|
+
*/
|
|
62
|
+
getSessionData(...args: any[]) {
|
|
47
63
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
64
|
+
const s = sessionStorage.getItem(`${this.index(args)}`);
|
|
65
|
+
let sessionData;
|
|
66
|
+
if (s !== null) {
|
|
67
|
+
sessionData = JSON.parse(s);
|
|
68
|
+
}
|
|
69
|
+
if (typeof sessionData === "undefined" || sessionData === null) {
|
|
70
|
+
sessionData = {};
|
|
71
|
+
}
|
|
72
|
+
return sessionData;
|
|
73
|
+
}
|
|
59
74
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
return sessionData;
|
|
76
|
-
}
|
|
75
|
+
/**
|
|
76
|
+
* Returns an index of the session
|
|
77
|
+
*
|
|
78
|
+
* @param {string} valueForIndex
|
|
79
|
+
* @return {string} index
|
|
80
|
+
* @example sessionInstance.index("me@email.com", "myusername")
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
index(...args: any[]) {
|
|
84
|
+
if (typeof SessionUserToken === "undefined") {
|
|
85
|
+
throw new Error("You need to import SessionUserToken first: Import (\"org.qcobjects.cloud.auth.session.usertoken\")");
|
|
86
|
+
}
|
|
87
|
+
return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`;
|
|
88
|
+
}
|
|
77
89
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
index(...args: any[]) {
|
|
87
|
-
if (typeof SessionUserToken === "undefined") {
|
|
88
|
-
throw new Error("You need to import SessionUserToken first: Import (\"org.qcobjects.cloud.auth.session.usertoken\")");
|
|
89
|
-
}
|
|
90
|
-
return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`;
|
|
91
|
-
}
|
|
90
|
+
/**
|
|
91
|
+
* Saves the session instance
|
|
92
|
+
*
|
|
93
|
+
*/
|
|
94
|
+
save(...args: any[]) {
|
|
95
|
+
const s = _DataStringify(this.sessionData);
|
|
96
|
+
sessionStorage.setItem(`${this.index(args)}`, s);
|
|
97
|
+
}
|
|
92
98
|
|
|
93
|
-
/**
|
|
94
|
-
* Saves the session instance
|
|
95
|
-
*
|
|
96
|
-
*/
|
|
97
|
-
save(...args:any[]) {
|
|
98
|
-
const s = _DataStringify(this.sessionData);
|
|
99
|
-
sessionStorage.setItem(`${this.index(args)}`, s);
|
|
100
|
-
}
|
|
101
99
|
|
|
100
|
+
/**
|
|
101
|
+
*
|
|
102
|
+
* Gets the session value
|
|
103
|
+
*
|
|
104
|
+
* @param {*} name
|
|
105
|
+
* @param {*} defaultValue
|
|
106
|
+
* @return {*}
|
|
107
|
+
*/
|
|
108
|
+
get(name: string, defaultValue: any) {
|
|
109
|
+
const sessionData = this.getSessionData(this.getSessionContainer());
|
|
110
|
+
return (typeof sessionData[name] !== "undefined") ? (sessionData[name]) : (defaultValue);
|
|
111
|
+
}
|
|
102
112
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
/**
|
|
114
|
+
*
|
|
115
|
+
* Sets the session value
|
|
116
|
+
*
|
|
117
|
+
* @param {*} name
|
|
118
|
+
* @param {*} value
|
|
119
|
+
*/
|
|
120
|
+
set(name: string, value: any) {
|
|
121
|
+
const sessionContainer = this.getSessionContainer();
|
|
122
|
+
const sessionData = this.getSessionData(sessionContainer);
|
|
123
|
+
this.sessionData = sessionData;
|
|
124
|
+
this.sessionData[name] = value;
|
|
125
|
+
this.save(sessionContainer);
|
|
126
|
+
}
|
|
115
127
|
|
|
116
|
-
|
|
117
|
-
*
|
|
118
|
-
* Sets the session value
|
|
119
|
-
*
|
|
120
|
-
* @param {*} name
|
|
121
|
-
* @param {*} value
|
|
122
|
-
*/
|
|
123
|
-
set(name:string, value:any) {
|
|
124
|
-
const sessionContainer = this.getSessionContainer();
|
|
125
|
-
const sessionData = this.getSessionData(sessionContainer);
|
|
126
|
-
this.sessionData = sessionData;
|
|
127
|
-
this.sessionData[name] = value;
|
|
128
|
-
this.save(sessionContainer);
|
|
129
|
-
}
|
|
128
|
+
}
|
|
130
129
|
|
|
131
|
-
|
|
130
|
+
Package("org.qcobjects.cloud.auth.session.data", [
|
|
131
|
+
SessionData
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
]);
|
|
134
134
|
|
|
135
|
-
})();
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt } from "qcobjects";
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
* QCObjects SDK 2.
|
|
2
|
+
* QCObjects SDK 2.5
|
|
5
3
|
* ________________
|
|
6
4
|
*
|
|
7
5
|
* Author: Jean Machuca <correojean@gmail.com>
|
|
@@ -24,105 +22,87 @@ import { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt } from
|
|
|
24
22
|
* Everyone is permitted to copy and distribute verbatim copies of this
|
|
25
23
|
* license document, but changing it is not allowed.
|
|
26
24
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
__token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin);
|
|
59
|
-
} else {
|
|
60
|
-
__token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get("domain", "localhost"));
|
|
61
|
-
}
|
|
62
|
-
SessionUserToken.user = {
|
|
63
|
-
priority: __instance__.__instanceID.toString(),
|
|
64
|
-
token: __token__
|
|
65
|
-
};
|
|
66
|
-
return SessionUserToken.user;
|
|
67
|
-
},
|
|
68
|
-
alternate(cacheController) {
|
|
25
|
+
"use strict";
|
|
26
|
+
import { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt, global } from "qcobjects";
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
type TGlobalUser = { username: string, token: string, id: string, priority: number };
|
|
30
|
+
|
|
31
|
+
export class SessionUserToken extends InheritClass {
|
|
32
|
+
static user = {};
|
|
33
|
+
__cache__: ComplexStorageCache;
|
|
34
|
+
__instanceID: any;
|
|
35
|
+
|
|
36
|
+
constructor(o: any) {
|
|
37
|
+
super(o);
|
|
38
|
+
|
|
39
|
+
const __instance__ = this;
|
|
40
|
+
this.__cache__ = new ComplexStorageCache({
|
|
41
|
+
index: __instance__.__instanceID.toString(),
|
|
42
|
+
load() {
|
|
43
|
+
let __token__;
|
|
44
|
+
if (typeof navigator !== "undefined" && typeof origin !== "undefined") {
|
|
45
|
+
__token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin);
|
|
46
|
+
} else {
|
|
47
|
+
__token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get("domain", "localhost"));
|
|
48
|
+
}
|
|
49
|
+
SessionUserToken.user = {
|
|
50
|
+
priority: __instance__.__instanceID.toString(),
|
|
51
|
+
token: __token__
|
|
52
|
+
};
|
|
53
|
+
return SessionUserToken.user;
|
|
54
|
+
},
|
|
55
|
+
alternate(cacheController: any) {
|
|
69
56
|
SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
static generateIndex(s:any) {
|
|
76
|
-
return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
static getGlobalUser(...args:any[]) {
|
|
80
|
-
const username = [args].join("|");
|
|
81
|
-
const __index__ = "userToken_" + SessionUserToken.generateIndex(username);
|
|
82
|
-
if (typeof (global as any).get(__index__) === "undefined" || (global as any).get(__index__) === null) {
|
|
83
|
-
(global as any).set(__index__, New(SessionUserToken, {
|
|
84
|
-
username
|
|
85
|
-
}));
|
|
86
57
|
}
|
|
87
|
-
|
|
88
|
-
return (global as any).get(__index__).user;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
static getGlobalUserToken(...args:any[]) {
|
|
92
|
-
return SessionUserToken.getGlobalUser(args).token;
|
|
93
|
-
}
|
|
58
|
+
});
|
|
94
59
|
|
|
95
|
-
|
|
96
|
-
return SessionUserToken.getGlobalUser(args).id;
|
|
97
|
-
}
|
|
60
|
+
}
|
|
98
61
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
62
|
+
static generateIndex(s: any) {
|
|
63
|
+
return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s));
|
|
64
|
+
}
|
|
102
65
|
|
|
103
|
-
|
|
104
|
-
|
|
66
|
+
static getGlobalUser(...args: any[]): TGlobalUser {
|
|
67
|
+
const username = [args].join("|");
|
|
68
|
+
const __index__ = "userToken_" + SessionUserToken.generateIndex(username);
|
|
69
|
+
if (typeof (global as any).get(__index__) === "undefined" || (global as any).get(__index__) === null) {
|
|
70
|
+
(global as any).set(__index__, New(SessionUserToken, {
|
|
71
|
+
username
|
|
72
|
+
}));
|
|
105
73
|
}
|
|
74
|
+
SessionUserToken.user = (global as any).get(__index__).user;
|
|
75
|
+
return global.get(__index__).user as TGlobalUser;
|
|
76
|
+
}
|
|
106
77
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const username = [args].join("|");
|
|
110
|
-
const __index__ = "userToken_" + SessionUserToken.generateIndex(username);
|
|
111
|
-
if (typeof (global as any).get(__index__) !== "undefined") {
|
|
112
|
-
(global as any).get(__index__).__cache__.clear();
|
|
113
|
-
(global as any).set(__index__, null);
|
|
114
|
-
SessionUserToken.user = {};
|
|
115
|
-
}
|
|
116
|
-
}
|
|
78
|
+
static getGlobalUserToken(...args: any[]): string {
|
|
79
|
+
return SessionUserToken.getGlobalUser(args).token;
|
|
117
80
|
}
|
|
118
81
|
|
|
119
|
-
|
|
120
|
-
SessionUserToken
|
|
121
|
-
|
|
82
|
+
static getGlobalUserId(...args: any[]) {
|
|
83
|
+
return SessionUserToken.getGlobalUser(args).id;
|
|
84
|
+
}
|
|
122
85
|
|
|
86
|
+
static getGlobalUserPriority(...args: any[]) {
|
|
87
|
+
return SessionUserToken.getGlobalUser(args).priority;
|
|
88
|
+
}
|
|
123
89
|
|
|
124
|
-
|
|
90
|
+
static getLoginCredentialsToken(username: string, password: string): string {
|
|
91
|
+
return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)) as string;
|
|
92
|
+
}
|
|
125
93
|
|
|
126
|
-
|
|
94
|
+
static closeGlobalSession(...args: any[]) {
|
|
95
|
+
SessionUserToken.getGlobalUser(args);
|
|
96
|
+
const username = [args].join("|");
|
|
97
|
+
const __index__ = "userToken_" + SessionUserToken.generateIndex(username);
|
|
98
|
+
if (typeof (global as any).get(__index__) !== "undefined") {
|
|
99
|
+
(global as any).get(__index__).__cache__.clear();
|
|
100
|
+
(global as any).set(__index__, null);
|
|
101
|
+
SessionUserToken.user = {};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
127
105
|
|
|
128
|
-
|
|
106
|
+
Package("org.qcobjects.cloud.auth.session.usertoken", [
|
|
107
|
+
SessionUserToken
|
|
108
|
+
]);
|