qcobjects-sdk 2.4.64 → 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.
Files changed (144) hide show
  1. package/.github/workflows/npmpublish-beta.yml +4 -2
  2. package/.github/workflows/npmpublish-lts.yml +4 -2
  3. package/.github/workflows/npmpublish-main.yml +5 -3
  4. package/VERSION +1 -1
  5. package/build/QCObjects-SDK.js +83 -41
  6. package/build/index.js +17 -7
  7. package/build/js/org.qcobjects.base.components.js +75 -0
  8. package/build/js/org.qcobjects.cloud.auth.session.data.js +98 -101
  9. package/build/js/org.qcobjects.cloud.auth.session.usertoken.js +68 -80
  10. package/build/js/org.qcobjects.components.grid.js +35 -53
  11. package/build/js/org.qcobjects.components.js +145 -237
  12. package/build/js/org.qcobjects.components.list.js +36 -45
  13. package/build/js/org.qcobjects.components.notifications.js +107 -106
  14. package/build/js/org.qcobjects.components.slider.js +183 -169
  15. package/build/js/org.qcobjects.components.splashscreen.js +123 -130
  16. package/build/js/org.qcobjects.controllers.form.js +149 -147
  17. package/build/js/org.qcobjects.controllers.grid.js +226 -215
  18. package/build/js/org.qcobjects.controllers.js +11 -11
  19. package/build/js/org.qcobjects.controllers.list.js +195 -188
  20. package/build/js/org.qcobjects.controllers.slider.js +101 -106
  21. package/build/js/org.qcobjects.controllers.swagger.js +71 -46
  22. package/build/js/org.qcobjects.effects.base.js +86 -0
  23. package/build/js/org.qcobjects.effects.extended.js +318 -0
  24. package/build/js/org.qcobjects.effects.js +26 -394
  25. package/build/js/org.qcobjects.i18n_messages.js +33 -46
  26. package/build/js/org.qcobjects.modal.controllers.js +16 -15
  27. package/build/js/org.qcobjects.modal.effects.js +23 -28
  28. package/build/js/org.qcobjects.models.js +11 -11
  29. package/build/js/org.qcobjects.tools.canvas.js +28 -27
  30. package/build/js/org.qcobjects.tools.js +10 -3
  31. package/build/js/org.qcobjects.tools.layouts.js +46 -45
  32. package/build/js/org.qcobjects.views.js +11 -11
  33. package/build-esbuild.js +72 -0
  34. package/eslint.config.mjs +88 -0
  35. package/package.json +66 -59
  36. package/postbuild.js +10 -0
  37. package/public/browser/index.js +9902 -0
  38. package/public/browser/index.js.map +7 -0
  39. package/public/cjs/index.cjs +9894 -0
  40. package/public/cjs/index.cjs.map +7 -0
  41. package/public/esm/index.mjs +9894 -0
  42. package/public/esm/index.mjs.map +7 -0
  43. package/public/types/index.d.ts +698 -0
  44. package/spec/helpers/mock-sdk.helper.ts +2 -0
  45. package/spec/mocks/qcobjects-sdk.mock.ts +1 -0
  46. package/spec/support/jasmine.json +7 -4
  47. package/src/QCObjects-SDK.ts +72 -53
  48. package/src/js/org.qcobjects.base.components.ts +83 -0
  49. package/src/js/org.qcobjects.cloud.auth.session.data.ts +98 -99
  50. package/src/js/org.qcobjects.cloud.auth.session.usertoken.ts +72 -92
  51. package/src/js/org.qcobjects.components.grid.ts +31 -58
  52. package/src/js/org.qcobjects.components.list.ts +15 -31
  53. package/src/js/org.qcobjects.components.notifications.ts +12 -12
  54. package/src/js/org.qcobjects.components.slider.ts +182 -171
  55. package/src/js/org.qcobjects.components.splashscreen.ts +31 -39
  56. package/src/js/org.qcobjects.components.ts +151 -261
  57. package/src/js/org.qcobjects.controllers.form.ts +151 -148
  58. package/src/js/org.qcobjects.controllers.grid.ts +226 -222
  59. package/src/js/org.qcobjects.controllers.list.ts +207 -205
  60. package/src/js/org.qcobjects.controllers.slider.ts +120 -125
  61. package/src/js/org.qcobjects.controllers.swagger.ts +51 -51
  62. package/src/js/org.qcobjects.controllers.ts +7 -9
  63. package/src/js/org.qcobjects.effects.base.ts +97 -0
  64. package/src/js/org.qcobjects.effects.extended.ts +350 -0
  65. package/src/js/org.qcobjects.effects.ts +6 -394
  66. package/src/js/org.qcobjects.i18n_messages.ts +37 -51
  67. package/src/js/org.qcobjects.modal.controllers.ts +12 -14
  68. package/src/js/org.qcobjects.modal.effects.ts +22 -18
  69. package/src/js/org.qcobjects.models.ts +8 -11
  70. package/src/js/org.qcobjects.tools.canvas.ts +26 -28
  71. package/src/js/org.qcobjects.tools.layouts.ts +44 -47
  72. package/src/js/org.qcobjects.tools.ts +7 -1
  73. package/src/js/org.qcobjects.views.ts +9 -8
  74. package/src/types/global/index.d.ts +181 -0
  75. package/transpile.js +65 -0
  76. package/tsconfig.d.json +65 -3
  77. package/tsconfig.jasmine.json +64 -0
  78. package/tsconfig.json +71 -7
  79. package/.eslintignore +0 -4
  80. package/.eslintrc.cjs +0 -6
  81. package/build/css/base-modal.css +0 -43
  82. package/build/css/basic-layout-embedded-nav.css +0 -14
  83. package/build/css/basic-layout.css +0 -76
  84. package/build/css/components/horizontal-list.css +0 -64
  85. package/build/css/components/list.css +0 -57
  86. package/build/css/components/splashscreen.css +0 -111
  87. package/build/css/modal.css +0 -46
  88. package/build/index.cjs +0 -4
  89. package/build/index.mjs +0 -2
  90. package/build/templates/components/modalyoulose.tpl.html +0 -3
  91. package/build/templates/components/modalyouwin.tpl.html +0 -4
  92. package/build/templates/components/splashscreen.tpl.html +0 -128
  93. package/build/templates/components/swagger-ui.tpl.html +0 -22
  94. package/public/QCObjects-SDK.js +0 -696
  95. package/public/QCObjects-SDK.js.map +0 -7
  96. package/public/css/base-modal.css +0 -2
  97. package/public/css/base-modal.css.map +0 -7
  98. package/public/css/basic-layout-embedded-nav.css +0 -2
  99. package/public/css/basic-layout-embedded-nav.css.map +0 -7
  100. package/public/css/basic-layout.css +0 -2
  101. package/public/css/basic-layout.css.map +0 -7
  102. package/public/css/components/horizontal-list.css +0 -2
  103. package/public/css/components/horizontal-list.css.map +0 -7
  104. package/public/css/components/list.css +0 -2
  105. package/public/css/components/list.css.map +0 -7
  106. package/public/css/components/splashscreen.css +0 -2
  107. package/public/css/components/splashscreen.css.map +0 -7
  108. package/public/css/modal.css +0 -2
  109. package/public/css/modal.css.map +0 -7
  110. package/public/index.cjs +0 -4
  111. package/public/index.js +0 -27
  112. package/public/index.mjs +0 -2
  113. package/public/templates/components/modalyoulose.tpl.html +0 -3
  114. package/public/templates/components/modalyouwin.tpl.html +0 -4
  115. package/public/templates/components/splashscreen.tpl.html +0 -128
  116. package/public/templates/components/swagger-ui.tpl.html +0 -22
  117. package/src/QCObjects-SDK.d.ts +0 -26
  118. package/src/index.cts +0 -2
  119. package/src/index.d.ts +0 -2
  120. package/src/index.mts +0 -2
  121. package/src/js/org.qcobjects.cloud.auth.session.data.d.ts +0 -1
  122. package/src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts +0 -2
  123. package/src/js/org.qcobjects.components.d.ts +0 -10
  124. package/src/js/org.qcobjects.components.grid.d.ts +0 -3
  125. package/src/js/org.qcobjects.components.list.d.ts +0 -3
  126. package/src/js/org.qcobjects.components.notifications.d.ts +0 -1
  127. package/src/js/org.qcobjects.components.slider.d.ts +0 -1
  128. package/src/js/org.qcobjects.components.splashscreen.d.ts +0 -28
  129. package/src/js/org.qcobjects.controllers.d.ts +0 -1
  130. package/src/js/org.qcobjects.controllers.form.d.ts +0 -1
  131. package/src/js/org.qcobjects.controllers.grid.d.ts +0 -1
  132. package/src/js/org.qcobjects.controllers.list.d.ts +0 -1
  133. package/src/js/org.qcobjects.controllers.slider.d.ts +0 -1
  134. package/src/js/org.qcobjects.controllers.swagger.d.ts +0 -1
  135. package/src/js/org.qcobjects.effects.d.ts +0 -20
  136. package/src/js/org.qcobjects.i18n_messages.d.ts +0 -1
  137. package/src/js/org.qcobjects.modal.controllers.d.ts +0 -1
  138. package/src/js/org.qcobjects.modal.effects.d.ts +0 -1
  139. package/src/js/org.qcobjects.models.d.ts +0 -1
  140. package/src/js/org.qcobjects.tools.canvas.d.ts +0 -1
  141. package/src/js/org.qcobjects.tools.d.ts +0 -1
  142. package/src/js/org.qcobjects.tools.layouts.d.ts +0 -1
  143. package/src/js/org.qcobjects.views.d.ts +0 -1
  144. /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.js",
6
- "!**/*nospec.js"
5
+ "**/*[sS]pec.ts",
6
+ "!**/*nospec.ts"
7
7
  ],
8
8
 
9
9
  "helpers": [
10
- "helpers/**/*.js"
10
+ "helpers/**/*.helper.ts"
11
11
  ],
12
12
 
13
- "stopSpecOnExpectationFailure": false,
13
+ "stopSpecOnExpectationFailure": true,
14
+ "failSpecWithNoExpectations": true,
15
+
16
+ "stopOnSpecFailure": false,
14
17
 
15
18
  "random": false
16
19
  }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function */
2
2
  /**
3
- * QCObjects SDK 2.4
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
- const _top = (typeof module === "object" && typeof module.exports === "object") ? (
30
- module.exports = (typeof globalThis !== "undefined"
31
- ? globalThis
32
- : typeof self !== "undefined"
33
- ? self
34
- : typeof window !== "undefined"
35
- ? window
36
- : typeof global !== "undefined"
37
- ? global
38
- : {})
39
- ) : ((typeof global === "object") ? (global) : (
40
- (typeof window === "object") ? (window) : ({})
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__ (_top:any) {
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
- // non-browsers environment // esbuild compatible
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.4
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
- (function () {
29
- "use strict";
30
- Package("org.qcobjects.cloud.auth.session.data", [
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
- class SessionData extends InheritClass{
31
+ __session_container__: any = null;
32
+ sessionData: any;
33
33
 
34
- __session_container__:any = null;
35
- sessionData:any;
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
- * Sets the session container
39
- *
40
- * @param {*} sessionContainer1, sessionContainer2, ...
41
- *
42
- */
43
- setSessionContainer() {
44
- // eslint-disable-next-line prefer-rest-params
45
- this.__session_container__ = [...arguments];
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
- * Gets the session container
50
- *
51
- * @return {*} sessionContainer
52
- */
53
- getSessionContainer() {
54
- if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) {
55
- throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)");
56
- }
57
- return this.__session_container__;
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
- * Gets the session data
62
- *
63
- * @return {*} sessionData
64
- */
65
- getSessionData(...args: any[]) {
66
- // eslint-disable-next-line prefer-rest-params
67
- const s = sessionStorage.getItem(`${this.index(args)}`);
68
- let sessionData;
69
- if (s!== null) {
70
- sessionData = JSON.parse(s);
71
- }
72
- if (typeof sessionData === "undefined" || sessionData === null) {
73
- sessionData = {};
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
- * Returns an index of the session
80
- *
81
- * @param {string} valueForIndex
82
- * @return {string} index
83
- * @example sessionInstance.index("me@email.com", "myusername")
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
- * Gets the session value
106
- *
107
- * @param {*} name
108
- * @param {*} defaultValue
109
- * @return {*}
110
- */
111
- get(name:string, defaultValue:any) {
112
- const sessionData = this.getSessionData(this.getSessionContainer());
113
- return (typeof sessionData[name] !== "undefined") ? (sessionData[name]) : (defaultValue);
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.4
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
- const _top = (typeof module === "object" && typeof module.exports === "object") ? (
29
- module.exports = (typeof globalThis !== "undefined"
30
- ? globalThis
31
- : typeof self !== "undefined"
32
- ? self
33
- : typeof window !== "undefined"
34
- ? window
35
- : typeof global !== "undefined"
36
- ? global
37
- : {})
38
- ) : ((typeof global === "object") ? (global) : (
39
- (typeof window === "object") ? (window) : ({})
40
- ));
41
-
42
- (function (global) {
43
- "use strict";
44
-
45
- class SessionUserToken extends InheritClass{
46
- static user = {};
47
- __cache__:ComplexStorageCache;
48
-
49
- constructor(o:any){
50
- super(o);
51
- // eslint-disable-next-line @typescript-eslint/no-this-alias
52
- const __instance__ = this;
53
- this.__cache__ = new ComplexStorageCache({
54
- index: __instance__.__instanceID.toString(),
55
- load() {
56
- let __token__;
57
- if (typeof navigator !== "undefined" && typeof origin !== "undefined") {
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
- 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
- SessionUserToken.user = (global as any).get(__index__).user;
88
- return (global as any).get(__index__).user;
89
- }
90
-
91
- getGlobalUserToken(...args:any[]) {
92
- return this.getGlobalUser(args).token;
93
- }
58
+ });
94
59
 
95
- getGlobalUserId(...args:any[]) {
96
- return this.getGlobalUser(args).id;
97
- }
60
+ }
98
61
 
99
- getGlobalUserPriority(...args:any[]) {
100
- return this.getGlobalUser(args).priority;
101
- }
62
+ static generateIndex(s: any) {
63
+ return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s));
64
+ }
102
65
 
103
- getLoginCredentialsToken(username:string, password:string) {
104
- return _Crypt.encrypt(`${username}${password}`, this.getGlobalUserToken(username));
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
- closeGlobalSession(...args:any[]) {
108
- this.getGlobalUser(args);
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
- Package("org.qcobjects.cloud.auth.session.usertoken", [
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
- })(_top);
90
+ static getLoginCredentialsToken(username: string, password: string): string {
91
+ return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)) as string;
92
+ }
125
93
 
126
- const SessionUserToken = (_top as any).SessionUserToken;
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
- export {SessionUserToken};
106
+ Package("org.qcobjects.cloud.auth.session.usertoken", [
107
+ SessionUserToken
108
+ ]);