@iankibetsh/shframework 0.5.4 → 0.5.5

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/dist/library.js CHANGED
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Axios = require('axios');
6
- var pinia = require('pinia');
7
6
  var moment = require('moment');
8
- var NProgress = require('nprogress');
9
7
  var vue = require('vue');
8
+ var NProgress = require('nprogress');
10
9
  var Editor = require('@tinymce/tinymce-vue');
11
10
  var Swal = require('sweetalert2');
11
+ var pinia = require('pinia');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
14
 
@@ -32,96 +32,34 @@ function getItem (key) {
32
32
  function removeItem (key) {
33
33
  return localStorage.removeItem(key)
34
34
  }
35
- var shstorage = {
35
+ var ShStorage = {
36
36
  setItem,
37
37
  getItem,
38
38
  removeItem
39
39
  };
40
40
 
41
- const useUserStore = pinia.defineStore('user-store', {
42
- state: () => ({
43
- user: null,
44
- role: null,
45
- permissions: null,
46
- menus: [],
47
- loggedOut: false
48
- }),
49
- actions: {
50
- setUser (){
51
- const user = shstorage.getItem('user') ? JSON.parse(shstorage.getItem('user')) : null;
52
- if (user) {
53
- user.isAllowedTo = function (slug) {
54
- if (this.permissions) {
55
- let permissions = [];
56
- if (typeof this.permissions === 'string') {
57
- permissions = JSON.parse(this.permissions);
58
- } else {
59
- permissions = this.permissions;
60
- }
61
- return permissions.includes(slug)
62
- }
63
- return false
64
- };
65
- }
66
- this.user = user;
67
- apis.doGet('auth/user').then(res => {
68
- const user = res.data;
69
- shstorage.setItem('user',res.data);
70
- user.isAllowedTo = function (slug) {
71
- if (this.permissions) {
72
- let permissions = [];
73
- if (typeof this.permissions === 'string') {
74
- permissions = JSON.parse(this.permissions);
75
- } else {
76
- permissions = this.permissions;
77
- }
78
- return permissions.includes(slug)
79
- }
80
- return false
81
- };
82
- this.user = user;
83
- }).catch((reason) => {
84
- if (reason.response && reason.response.status) {
85
- this.loggedOut = true;
86
- }
87
- });
88
- if (this.user) {
89
- if (typeof this.user.permissions === 'string') {
90
- this.permissions = JSON.parse(this.user.permissions);
91
- } else {
92
- this.permissions = this.user.permissions;
93
- }
94
- }
95
- },
96
- signOut () {
97
- shstorage.setItem('user',null);
98
- shstorage.setItem('access_token',null);
99
- this.user = null;
100
- },
101
- logOut () {
102
- this.signOut();
103
- },
104
- getUser () {
105
- this.setUser();
106
- },
107
- setAccessToken (accessToken) {
108
- shstorage.setItem('access_token', accessToken);
109
- this.setUser();
110
- }
111
- },
112
- getters: {
113
- userId (state) {
114
- return state.user === null ? null:state.user.id
115
- }
41
+ const checkSession = function (isCheking) {
42
+ let timeout = vue.inject('sessionTimeout');
43
+ if(!timeout){
44
+ timeout = 30;
116
45
  }
117
- });
118
-
119
- const shSetSessionChecker = () => {
120
-
121
- };
122
-
123
- var shSession = {
124
- shSetSessionChecker
46
+ const sessionStart = ShStorage.getItem('session_start');
47
+ const started = moment__default["default"](sessionStart);
48
+ if(!sessionStart){
49
+ ShStorage.removeItem('access_token');
50
+ return false
51
+ }
52
+ const pastMinutes = moment__default["default"]().diff(started, 'minutes');
53
+ if(pastMinutes >= timeout) {
54
+ ShStorage.removeItem('access_token');
55
+ return false
56
+ }
57
+ if (isCheking) {
58
+ return true
59
+ }
60
+ const timeNow = moment__default["default"]().toISOString();
61
+ ShStorage.setItem('session_start', timeNow);
62
+ return true
125
63
  };
126
64
 
127
65
  let apiUrl = undefined.VITE_APP_API_URL;
@@ -133,23 +71,27 @@ const axios = Axios__default["default"].create({
133
71
  baseURL: apiUrl
134
72
  });
135
73
  function doGet (endPoint, data) {
136
- shSession.shSetSessionChecker();
74
+ if(!checkSession()){
75
+ window.location.reload();
76
+ }
137
77
  return axios.get(endPoint, {
138
78
  params: data,
139
79
  crossOrigin: true,
140
80
  headers: {
141
- Authorization: 'Bearer ' + shstorage.getItem('access_token')
81
+ Authorization: 'Bearer ' + ShStorage.getItem('access_token')
142
82
  // 'X-CSRF-TOKEN': 'INVALID'
143
83
  }
144
84
  })
145
85
  }
146
86
  function doPost (endPoint, data) {
147
- shSession.shSetSessionChecker();
87
+ if(!checkSession()){
88
+ window.location.reload();
89
+ }
148
90
  return axios.post(endPoint,
149
91
  data,
150
92
  {
151
93
  headers: {
152
- Authorization: 'Bearer ' + shstorage.getItem('access_token')
94
+ Authorization: 'Bearer ' + ShStorage.getItem('access_token')
153
95
  }
154
96
  }
155
97
  )
@@ -3963,14 +3905,104 @@ return (_ctx, _cache) => {
3963
3905
 
3964
3906
  script.__file = "src/lib/components/ShDynamicTabs.vue";
3965
3907
 
3908
+ const useUserStore = pinia.defineStore('user-store', {
3909
+ state: () => ({
3910
+ user: null,
3911
+ role: null,
3912
+ permissions: null,
3913
+ menus: [],
3914
+ loggedOut: false
3915
+ }),
3916
+ actions: {
3917
+ setUser (){
3918
+ const user = ShStorage.getItem('user') ? JSON.parse(ShStorage.getItem('user')) : null;
3919
+ if (user) {
3920
+ user.isAllowedTo = function (slug) {
3921
+ if (this.permissions) {
3922
+ let permissions = [];
3923
+ if (typeof this.permissions === 'string') {
3924
+ permissions = JSON.parse(this.permissions);
3925
+ } else {
3926
+ permissions = this.permissions;
3927
+ }
3928
+ return permissions.includes(slug)
3929
+ }
3930
+ return false
3931
+ };
3932
+ }
3933
+ this.user = user;
3934
+ apis.doGet('auth/user').then(res => {
3935
+ const user = res.data;
3936
+ ShStorage.setItem('user',res.data);
3937
+ user.isAllowedTo = function (slug) {
3938
+ if (this.permissions) {
3939
+ let permissions = [];
3940
+ if (typeof this.permissions === 'string') {
3941
+ permissions = JSON.parse(this.permissions);
3942
+ } else {
3943
+ permissions = this.permissions;
3944
+ }
3945
+ return permissions.includes(slug)
3946
+ }
3947
+ return false
3948
+ };
3949
+ this.user = user;
3950
+ }).catch((reason) => {
3951
+ if (reason.response && reason.response.status) {
3952
+ this.loggedOut = true;
3953
+ }
3954
+ });
3955
+ if (this.user) {
3956
+ if (typeof this.user.permissions === 'string') {
3957
+ this.permissions = JSON.parse(this.user.permissions);
3958
+ } else {
3959
+ this.permissions = this.user.permissions;
3960
+ }
3961
+ }
3962
+ const timeNow = moment__default["default"]().toISOString();
3963
+ ShStorage.setItem('session_start',timeNow);
3964
+ },
3965
+ signOut () {
3966
+ ShStorage.setItem('user',null);
3967
+ ShStorage.setItem('access_token',null);
3968
+ this.user = null;
3969
+ },
3970
+ logOut () {
3971
+ this.signOut();
3972
+ },
3973
+ getUser () {
3974
+ this.setUser();
3975
+ },
3976
+ setAccessToken (accessToken) {
3977
+ ShStorage.setItem('access_token', accessToken);
3978
+ this.setUser();
3979
+ }
3980
+ },
3981
+ getters: {
3982
+ userId (state) {
3983
+ return state.user === null ? null:state.user.id
3984
+ }
3985
+ }
3986
+ });
3987
+
3988
+ var ShFrontend = {
3989
+ install: (app, options) => {
3990
+ if(options.sessionTimeout){
3991
+ app.provide('sessionTimeout',options.sessionTimeout);
3992
+ ShStorage.setItem('sessionTimeout',options.sessionTimeout);
3993
+ }
3994
+ }
3995
+ };
3996
+
3966
3997
  exports.ShCanvas = script$5;
3967
3998
  exports.ShDynamicTabs = script;
3968
3999
  exports.ShForm = script$6;
4000
+ exports.ShFrontend = ShFrontend;
3969
4001
  exports.ShModal = script$4;
3970
4002
  exports.ShPhone = script$9;
3971
4003
  exports.ShTable = script$2;
3972
4004
  exports.ShTabs = script$1;
3973
4005
  exports.shApis = apis;
3974
4006
  exports.shRepo = helpers;
3975
- exports.shStorage = shstorage;
4007
+ exports.shStorage = ShStorage;
3976
4008
  exports.useUserStore = useUserStore;
package/dist/library.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  import Axios from 'axios';
2
- import { defineStore } from 'pinia';
3
2
  import moment from 'moment';
3
+ import { inject, openBlock, createElementBlock, createElementVNode, createTextVNode, toDisplayString, createCommentVNode, withDirectives, Fragment, renderList, vModelSelect, vModelText, resolveComponent, withModifiers, createVNode, ref, onMounted, unref, normalizeClass, createBlock, renderSlot, createStaticVNode, withCtx, shallowRef, resolveDynamicComponent } from 'vue';
4
4
  import NProgress from 'nprogress';
5
- import { openBlock, createElementBlock, createElementVNode, createTextVNode, toDisplayString, createCommentVNode, withDirectives, Fragment, renderList, vModelSelect, vModelText, resolveComponent, withModifiers, createVNode, ref, onMounted, unref, normalizeClass, createBlock, renderSlot, createStaticVNode, withCtx, shallowRef, resolveDynamicComponent } from 'vue';
6
5
  import Editor from '@tinymce/tinymce-vue';
7
6
  import Swal from 'sweetalert2';
7
+ import { defineStore } from 'pinia';
8
8
 
9
9
  function setItem (key, value) {
10
10
  let toStore = value;
@@ -20,96 +20,34 @@ function getItem (key) {
20
20
  function removeItem (key) {
21
21
  return localStorage.removeItem(key)
22
22
  }
23
- var shstorage = {
23
+ var ShStorage = {
24
24
  setItem,
25
25
  getItem,
26
26
  removeItem
27
27
  };
28
28
 
29
- const useUserStore = defineStore('user-store', {
30
- state: () => ({
31
- user: null,
32
- role: null,
33
- permissions: null,
34
- menus: [],
35
- loggedOut: false
36
- }),
37
- actions: {
38
- setUser (){
39
- const user = shstorage.getItem('user') ? JSON.parse(shstorage.getItem('user')) : null;
40
- if (user) {
41
- user.isAllowedTo = function (slug) {
42
- if (this.permissions) {
43
- let permissions = [];
44
- if (typeof this.permissions === 'string') {
45
- permissions = JSON.parse(this.permissions);
46
- } else {
47
- permissions = this.permissions;
48
- }
49
- return permissions.includes(slug)
50
- }
51
- return false
52
- };
53
- }
54
- this.user = user;
55
- apis.doGet('auth/user').then(res => {
56
- const user = res.data;
57
- shstorage.setItem('user',res.data);
58
- user.isAllowedTo = function (slug) {
59
- if (this.permissions) {
60
- let permissions = [];
61
- if (typeof this.permissions === 'string') {
62
- permissions = JSON.parse(this.permissions);
63
- } else {
64
- permissions = this.permissions;
65
- }
66
- return permissions.includes(slug)
67
- }
68
- return false
69
- };
70
- this.user = user;
71
- }).catch((reason) => {
72
- if (reason.response && reason.response.status) {
73
- this.loggedOut = true;
74
- }
75
- });
76
- if (this.user) {
77
- if (typeof this.user.permissions === 'string') {
78
- this.permissions = JSON.parse(this.user.permissions);
79
- } else {
80
- this.permissions = this.user.permissions;
81
- }
82
- }
83
- },
84
- signOut () {
85
- shstorage.setItem('user',null);
86
- shstorage.setItem('access_token',null);
87
- this.user = null;
88
- },
89
- logOut () {
90
- this.signOut();
91
- },
92
- getUser () {
93
- this.setUser();
94
- },
95
- setAccessToken (accessToken) {
96
- shstorage.setItem('access_token', accessToken);
97
- this.setUser();
98
- }
99
- },
100
- getters: {
101
- userId (state) {
102
- return state.user === null ? null:state.user.id
103
- }
29
+ const checkSession = function (isCheking) {
30
+ let timeout = inject('sessionTimeout');
31
+ if(!timeout){
32
+ timeout = 30;
104
33
  }
105
- });
106
-
107
- const shSetSessionChecker = () => {
108
-
109
- };
110
-
111
- var shSession = {
112
- shSetSessionChecker
34
+ const sessionStart = ShStorage.getItem('session_start');
35
+ const started = moment(sessionStart);
36
+ if(!sessionStart){
37
+ ShStorage.removeItem('access_token');
38
+ return false
39
+ }
40
+ const pastMinutes = moment().diff(started, 'minutes');
41
+ if(pastMinutes >= timeout) {
42
+ ShStorage.removeItem('access_token');
43
+ return false
44
+ }
45
+ if (isCheking) {
46
+ return true
47
+ }
48
+ const timeNow = moment().toISOString();
49
+ ShStorage.setItem('session_start', timeNow);
50
+ return true
113
51
  };
114
52
 
115
53
  let apiUrl = import.meta.env.VITE_APP_API_URL;
@@ -121,23 +59,27 @@ const axios = Axios.create({
121
59
  baseURL: apiUrl
122
60
  });
123
61
  function doGet (endPoint, data) {
124
- shSession.shSetSessionChecker();
62
+ if(!checkSession()){
63
+ window.location.reload();
64
+ }
125
65
  return axios.get(endPoint, {
126
66
  params: data,
127
67
  crossOrigin: true,
128
68
  headers: {
129
- Authorization: 'Bearer ' + shstorage.getItem('access_token')
69
+ Authorization: 'Bearer ' + ShStorage.getItem('access_token')
130
70
  // 'X-CSRF-TOKEN': 'INVALID'
131
71
  }
132
72
  })
133
73
  }
134
74
  function doPost (endPoint, data) {
135
- shSession.shSetSessionChecker();
75
+ if(!checkSession()){
76
+ window.location.reload();
77
+ }
136
78
  return axios.post(endPoint,
137
79
  data,
138
80
  {
139
81
  headers: {
140
- Authorization: 'Bearer ' + shstorage.getItem('access_token')
82
+ Authorization: 'Bearer ' + ShStorage.getItem('access_token')
141
83
  }
142
84
  }
143
85
  )
@@ -3951,4 +3893,93 @@ return (_ctx, _cache) => {
3951
3893
 
3952
3894
  script.__file = "src/lib/components/ShDynamicTabs.vue";
3953
3895
 
3954
- export { script$5 as ShCanvas, script as ShDynamicTabs, script$6 as ShForm, script$4 as ShModal, script$9 as ShPhone, script$2 as ShTable, script$1 as ShTabs, apis as shApis, helpers as shRepo, shstorage as shStorage, useUserStore };
3896
+ const useUserStore = defineStore('user-store', {
3897
+ state: () => ({
3898
+ user: null,
3899
+ role: null,
3900
+ permissions: null,
3901
+ menus: [],
3902
+ loggedOut: false
3903
+ }),
3904
+ actions: {
3905
+ setUser (){
3906
+ const user = ShStorage.getItem('user') ? JSON.parse(ShStorage.getItem('user')) : null;
3907
+ if (user) {
3908
+ user.isAllowedTo = function (slug) {
3909
+ if (this.permissions) {
3910
+ let permissions = [];
3911
+ if (typeof this.permissions === 'string') {
3912
+ permissions = JSON.parse(this.permissions);
3913
+ } else {
3914
+ permissions = this.permissions;
3915
+ }
3916
+ return permissions.includes(slug)
3917
+ }
3918
+ return false
3919
+ };
3920
+ }
3921
+ this.user = user;
3922
+ apis.doGet('auth/user').then(res => {
3923
+ const user = res.data;
3924
+ ShStorage.setItem('user',res.data);
3925
+ user.isAllowedTo = function (slug) {
3926
+ if (this.permissions) {
3927
+ let permissions = [];
3928
+ if (typeof this.permissions === 'string') {
3929
+ permissions = JSON.parse(this.permissions);
3930
+ } else {
3931
+ permissions = this.permissions;
3932
+ }
3933
+ return permissions.includes(slug)
3934
+ }
3935
+ return false
3936
+ };
3937
+ this.user = user;
3938
+ }).catch((reason) => {
3939
+ if (reason.response && reason.response.status) {
3940
+ this.loggedOut = true;
3941
+ }
3942
+ });
3943
+ if (this.user) {
3944
+ if (typeof this.user.permissions === 'string') {
3945
+ this.permissions = JSON.parse(this.user.permissions);
3946
+ } else {
3947
+ this.permissions = this.user.permissions;
3948
+ }
3949
+ }
3950
+ const timeNow = moment().toISOString();
3951
+ ShStorage.setItem('session_start',timeNow);
3952
+ },
3953
+ signOut () {
3954
+ ShStorage.setItem('user',null);
3955
+ ShStorage.setItem('access_token',null);
3956
+ this.user = null;
3957
+ },
3958
+ logOut () {
3959
+ this.signOut();
3960
+ },
3961
+ getUser () {
3962
+ this.setUser();
3963
+ },
3964
+ setAccessToken (accessToken) {
3965
+ ShStorage.setItem('access_token', accessToken);
3966
+ this.setUser();
3967
+ }
3968
+ },
3969
+ getters: {
3970
+ userId (state) {
3971
+ return state.user === null ? null:state.user.id
3972
+ }
3973
+ }
3974
+ });
3975
+
3976
+ var ShFrontend = {
3977
+ install: (app, options) => {
3978
+ if(options.sessionTimeout){
3979
+ app.provide('sessionTimeout',options.sessionTimeout);
3980
+ ShStorage.setItem('sessionTimeout',options.sessionTimeout);
3981
+ }
3982
+ }
3983
+ };
3984
+
3985
+ export { script$5 as ShCanvas, script as ShDynamicTabs, script$6 as ShForm, ShFrontend, script$4 as ShModal, script$9 as ShPhone, script$2 as ShTable, script$1 as ShTabs, apis as shApis, helpers as shRepo, ShStorage as shStorage, useUserStore };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iankibetsh/shframework",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "description": "Vue library for handling laravel backend",
5
5
  "main": "dist/library.js",
6
6
  "module": "dist/library.mjs",