@thzero/library_client_vue3_store_pinia 0.16.20 → 0.16.22

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/openSource.js ADDED
@@ -0,0 +1,53 @@
1
+ export default () => {
2
+ return [
3
+ {
4
+ category: 'client',
5
+ name: '@thzero/library_client',
6
+ url: 'https://github.com/thzero/library_client',
7
+ licenseName: 'MIT',
8
+ licenseUrl: 'https://github.com/thzero/library_client/blob/master/license.md'
9
+ },
10
+ {
11
+ category: 'client',
12
+ name: '@thzero/library_client_vue3',
13
+ url: 'https://github.com/thzero/library_client_vue3',
14
+ licenseName: 'MIT',
15
+ licenseUrl: 'https://github.com/thzero/library_client_vue3/blob/master/license.md'
16
+ },
17
+ {
18
+ category: 'client',
19
+ name: '@thzero/library_client_vue3_store_pinia',
20
+ url: 'https://github.com/thzero/library_client_vue3_store_pinia',
21
+ licenseName: 'MIT',
22
+ licenseUrl: 'https://github.com/thzero/library_client_vue3_store_pinia/blob/master/license.md'
23
+ },
24
+ {
25
+ category: 'client',
26
+ name: '@thzero/library_common',
27
+ url: 'https://github.com/thzero/library_common',
28
+ licenseName: 'MIT',
29
+ licenseUrl: 'https://github.com/thzero/library_common/blob/master/license.md'
30
+ },
31
+ {
32
+ category: 'client',
33
+ name: 'pinia',
34
+ url: 'https://github.com/vuejs/pinia',
35
+ licenseName: 'MIT',
36
+ licenseUrl: 'https://github.com/vuejs/pinia/blob/v2/LICENSE'
37
+ },
38
+ {
39
+ category: 'client',
40
+ name: 'pinia-plugin-persistedstate-2',
41
+ url: 'https://github.com/iendeavor/pinia-plugin-persistedstate-2',
42
+ licenseName: 'MIT',
43
+ licenseUrl: 'https://github.com/iendeavor/pinia-plugin-persistedstate-2/blob/main/LICENSE'
44
+ },
45
+ {
46
+ category: 'client',
47
+ name: 'vue',
48
+ url: 'https://github.com/vuejs/vue',
49
+ licenseName: 'MIT',
50
+ licenseUrl: 'https://github.com/vuejs/vue/blob/dev/LICENSE'
51
+ }
52
+ ];
53
+ }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@thzero/library_client_vue3_store_pinia",
3
- "version": "0.16.20",
3
+ "version": "0.16.22",
4
4
  "version_major": 0,
5
5
  "version_minor": 16,
6
- "version_patch": 20,
7
- "version_date": "12/19/2022",
6
+ "version_patch": 22,
7
+ "version_date": "12/20/2022",
8
8
  "description": "An opinionated library for vue3 with pinia store for the library_client_vue3 using the https://prazdevs.github.io/pinia-plugin-persistedstate library.",
9
9
  "author": "thZero",
10
10
  "license": "MIT",
@@ -8,7 +8,7 @@ class PiniaStoreService extends Service {
8
8
  }
9
9
 
10
10
  get getters() {
11
- return GlobalUtility.$store;
11
+ return GlobalUtility.$store.getters;
12
12
  }
13
13
 
14
14
  get state() {
package/store/index.js CHANGED
@@ -6,6 +6,8 @@ import LibraryConstants from '@thzero/library_client/constants';
6
6
 
7
7
  import GlobalUtility from '@thzero/library_client/utility/global';
8
8
 
9
+ import Response from '@thzero/library_common/response';
10
+
9
11
  import NotImplementedError from '@thzero/library_common/errors/notImplemented';
10
12
 
11
13
  // import adminNews from './admin/news/pinia';
@@ -25,11 +27,24 @@ class BaseStore {
25
27
 
26
28
  setup() {
27
29
  const logger = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_LOGGER);
30
+
31
+ const initialStoreConfig = this._initStoreConfigBase();
32
+ const appStoreConfig = this._initStoreConfig();
33
+ initialStoreConfig.actions = Object.assign(initialStoreConfig.actions, appStoreConfig.actions);
34
+ initialStoreConfig.dispatcher = Object.assign(initialStoreConfig.dispatcher, appStoreConfig.dispatcher);
35
+ initialStoreConfig.getters = Object.assign(initialStoreConfig.getters, appStoreConfig.getters);
36
+
37
+ const initialState = initialStoreConfig.state();
38
+ const appState = appStoreConfig.state();
39
+ const state = Object.assign(initialState, appState);
40
+ initialStoreConfig.state = () => state;
41
+
28
42
  return {
29
43
  func: {
30
44
  install(app, options) {
31
45
  const storeConfig = options.storeConfig;
32
46
 
47
+ options.actionGetters = storeConfig.getters;
33
48
  options.actionDispatcher = storeConfig.dispatcher;
34
49
  if (!options.actionDispatcher)
35
50
  options.actionDispatcher = {};
@@ -43,14 +58,16 @@ class BaseStore {
43
58
 
44
59
  // options.addModule('adminNews', adminNews, options.actionDispatcher, options.pluginPersistType(), options.pluginPersistConfig, options.pinia, logger);
45
60
  // options.addModule('adminUsers', adminUsers, options.actionDispatcher, options.pluginPersistType(), options.pluginPersistConfig, options.pinia, logger);
46
- options.addModule('news', news, options.actionDispatcher, options.pluginPersistType(), options.pluginPersistSetup, options.pluginPersistConfig, options.pluginPersistSetupOverride, options.pinia, logger);
47
- options.addModule('user', user, options.actionDispatcher, options.pluginPersistType(), options.pluginPersistSetup, options.pluginPersistConfig, options.pluginPersistSetupOverride, options.pinia, logger);
61
+ options.addModule('news', news, options.actionDispatcher, options.actionGetters, options.pluginPersistType(), options.pluginPersistSetup, options.pluginPersistConfig, options.pluginPersistSetupOverride, options.pinia, logger);
62
+ options.addModule('user', user, options.actionDispatcher, options.actionGetters, options.pluginPersistType(), options.pluginPersistSetup, options.pluginPersistConfig, options.pluginPersistSetupOverride, options.pinia, logger);
48
63
  options.initModules();
49
64
  GlobalUtility.$store.dispatcher = options.actionDispatcher;
65
+ GlobalUtility.$store.getters = options.actionGetters;
50
66
  }
51
67
  },
52
68
  options: {
53
69
  actionDispatcher: this.actionDispatcher,
70
+ actionGetters: this.actionGetters,
54
71
  addModule: this._addModule,
55
72
  initModules: this._initModules,
56
73
  logger: logger,
@@ -59,25 +76,23 @@ class BaseStore {
59
76
  pluginPersistSetupOverride: this._initPluginPersistConfigSetupOverride,
60
77
  pluginPersistSetup: this._initPluginPersistConfigSetup,
61
78
  pluginPersistType: this._initPluginPersistType,
62
- storeConfig: this._init()
79
+ storeConfig: initialStoreConfig
63
80
  }
64
81
  };
65
82
  }
66
83
 
67
- _addModule(key, storeConfig, actionDispatcher, pluginPersistType, pluginPersistSetup, pluginPersistConfig, pluginPersistSetupOverride, pinia, logger) {
84
+ _addModule(key, storeConfig, actionDispatcher, actionGetters, pluginPersistType, pluginPersistSetup, pluginPersistConfig, pluginPersistSetupOverride, pinia, logger) {
68
85
  if (pluginPersistType && pluginPersistSetup && pluginPersistConfig && pluginPersistConfig[key])
69
86
  pluginPersistSetup(pluginPersistType, storeConfig, pluginPersistConfig['root'], pluginPersistSetupOverride);
70
87
  actionDispatcher[key] = storeConfig.dispatcher;
71
88
  delete storeConfig.dispatcher;
89
+ actionGetters[key] = storeConfig.getters;
90
+ delete storeConfig.getters;
72
91
  const storeFunc = defineStore(key, storeConfig);
73
92
  GlobalUtility.$store[key] = storeFunc(pinia);
74
93
  GlobalUtility.$store[key].$logger = logger;
75
94
  }
76
95
 
77
- _init() {
78
- throw new NotImplementedError();
79
- }
80
-
81
96
  _initModules() {
82
97
  throw new NotImplementedError();
83
98
  }
@@ -137,6 +152,104 @@ class BaseStore {
137
152
  _initPluginPersistConfigSetupOverride(storeConfig, persistConfig) {
138
153
  }
139
154
 
155
+ _initStoreConfig() {
156
+ throw new NotImplementedError();
157
+ }
158
+
159
+ _initStoreConfigBase() {
160
+ return {
161
+ state: () => ({
162
+ checksumLastUpdate: [],
163
+ openSource: [],
164
+ plans: [],
165
+ version: null
166
+ }),
167
+ actions: {
168
+ async requestOpenSource(correlationId) {
169
+ const openSourceCheck = GlobalUtility.$store.openSource;
170
+ if (openSourceCheck && Array.isArray(openSourceCheck) && openSourceCheck.length > 0)
171
+ return Response.success(openSourceCheck);
172
+
173
+ const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_UTILITY);
174
+ const response = await service.openSource(correlationId);
175
+ this.$logger.debug('store', 'requestOpenSource', 'response', response, correlationId);
176
+ const openSource = response.results ? response.results : null;
177
+ if (Response.hasFailed(response))
178
+ return response;
179
+ this.setOpenSource(correlationId, openSource);
180
+ return Response.success(correlationId, openSource);
181
+ },
182
+ async requestPlans(correlationId) {
183
+ const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_PLANS);
184
+ const response = await service.plans(correlationId);
185
+ this.$logger.debug('store', 'requestPlans', 'response', response, correlationId);
186
+ const plans = response.results ? response.results.data : [];
187
+ if (Response.hasFailed(response))
188
+ return response;
189
+ this.setPlans(correlationId, plans);
190
+ return Response.success(plans);
191
+ },
192
+ async initialize(correlationId) {
193
+ const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_UTILITY);
194
+ const response = await service.initialize(correlationId);
195
+ if (Response.hasSucceeded(response)) {
196
+ this.setPlans(correlationId, response.results.plans);
197
+ this.setVersion(correlationId, response.results.version);
198
+ if (this._initialize)
199
+ this._intialize(correlationId, response.results);
200
+ }
201
+ },
202
+ async requestVersion(correlationId) {
203
+ const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_VERSION);
204
+ const version = await service.version(correlationId);
205
+ this.setVersion(correlationId, version);
206
+ },
207
+ async setOpenSource(correlationId, openSource) {
208
+ this.$logger.debug('store', 'setOpenSource', 'openSource.a', openSource, correlationId);
209
+ this.$logger.debug('store', 'setOpenSource', 'openSource.b', this.openSource, correlationId);
210
+ this.openSource = openSource;
211
+ this.$logger.debug('store', 'setOpenSource', 'openSource.c', this.openSource, correlationId);
212
+ },
213
+ async setPlans(correlationId, plans) {
214
+ this.$logger.debug('store', 'setPlans', 'plans.a', plans, correlationId);
215
+ this.$logger.debug('store', 'setPlans', 'plans.b', this.plans, correlationId);
216
+ this.plans = plans;
217
+ this.$logger.debug('store', 'setPlans', 'plans.c', this.plans, correlationId);
218
+ },
219
+ async setVersion(correlationId, version) {
220
+ // this.$logger.debug('store', 'getVersion', 'version', version, correlationId);
221
+ // commit('setVersion', { correlationId: correlationId, version: version });
222
+ this.$logger.debug('store', 'setVersion', 'version', version, correlationId);
223
+ this.version = version;
224
+ }
225
+ },
226
+ getters: {
227
+ getOpenSource(correlationId) {
228
+ return GlobalUtility.$store.openSource;
229
+ },
230
+ getPlan(correlationId, id) {
231
+ if (GlobalUtility.$store.plans == null)
232
+ return null;
233
+ return GlobalUtility.$store.plans.find(plan => plan.id === id);
234
+ }
235
+ },
236
+ dispatcher: {
237
+ async requestOpenSource(correlationId) {
238
+ return await GlobalUtility.$store.requestOpenSource(correlationId);
239
+ },
240
+ async requestPlans(correlationId) {
241
+ return await GlobalUtility.$store.requestPlans(correlationId);
242
+ },
243
+ async requestVersion(correlationId) {
244
+ await GlobalUtility.$store.requestVersion(correlationId);
245
+ },
246
+ async initialize(correlationId) {
247
+ await GlobalUtility.$store.initialize(correlationId);
248
+ }
249
+ }
250
+ };
251
+ }
252
+
140
253
  static PersistanceTypeOverride = 'override';
141
254
  static PersistanceTypePersist = 'persist';
142
255
  static PersistanceTypePersist2 = 'persist2';
@@ -42,32 +42,28 @@ const store = {
42
42
  async setUserLoggedIn(correlationId, isLoggedIn) {
43
43
  this.isLoggedIn = isLoggedIn;
44
44
  },
45
+ // async setUserSettings(correlationId, settings) {
46
+ // const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_USER);
47
+ // settings = VueUtility.settings().mergeUser(correlationId, settings);
48
+ // const response = await service.updateSettings(correlationId, this.user, settings);
49
+ // this.$logger.debug('store.user', 'setUserSettings', 'response', response);
50
+ // if (Response.hasSucceeded(response) && response.results)
51
+ // this.setUser(correlationId, response.results);
52
+ // return response;
53
+ // },
45
54
  async setUserSettings(correlationId, settings) {
46
55
  const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_USER);
47
- settings = VueUtility.settings().mergeUser(params.correlationId, settings);
48
- const response = await service.updateSettings(params.correlationId, this.user, settings);
56
+ settings = VueUtility.settings().mergeUser(correlationId, settings);
57
+ const response = await service.updateSettings(correlationId, this.user, settings);
49
58
  this.$logger.debug('store.user', 'setUserSettings', 'response', response);
50
59
  if (Response.hasSucceeded(response) && response.results)
51
- this.setUser(correlationId, response.results);
60
+ this.user = response.results;
52
61
  return response;
53
62
  },
54
- async setUserSettings2(correlationId, settings) {
55
- const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_USER);
56
- settings = VueUtility.settings().mergeUser(params.correlationId, settings);
57
- const response = await service.updateSettings(params.correlationId, this.user, settings);
58
- this.$logger.debug('store.user', 'setUserSettings', 'response', response);
59
- if (Response.hasSucceeded(response) && response.results) {
60
- // commit('setUserSettings', { correlationId: params.correlationId, user: response.results });
61
- const user = response.results;
62
- user.settings = VueUtility.settings().mergeUser(correlationId, user.settings);
63
- this.user = user;
64
- }
65
- return response;
66
- },
67
- async setTheme(correlationId, isLoggedIn) {
63
+ async setUserTheme(correlationId, isLoggedIn) {
68
64
  this.theme = theme;
69
65
  },
70
- async setTokenResult(correlationId, tokenResult) {
66
+ async setUserTokenResult(correlationId, tokenResult) {
71
67
  this.$patch({
72
68
  tokenResult: null,
73
69
  token: tokenResult ? tokenResult.token : null
@@ -79,42 +75,48 @@ const store = {
79
75
  this.user = user;
80
76
  }
81
77
  },
78
+ getters: {
79
+ getUser (correlationId) {
80
+ return GlobalUtility.$store.user.user;
81
+ },
82
+ getUserTheme (correlationId) {
83
+ return GlobalUtility.$store.theme;
84
+ },
85
+ getUserSettings(correlationId) {
86
+ if (GlobalUtility.$store.user.user && GlobalUtility.$store.user.user.settings)
87
+ return GlobalUtility.$store.user.user.settings;
88
+
89
+ const service = GlobalUtility.$injector.getService(LibraryConstants.InjectorKeys.SERVICE_USER);
90
+ return service.initializeSettings();
91
+ }
92
+ },
82
93
  dispatcher: {
83
94
  async refreshUserSettings(correlationId) {
84
- // await GlobalUtility.$store.dispatch('refreshUserSettings', correlationId);
85
- await GlobalUtility.$store.user.refreshUserSettings(correlationId);
95
+ return await GlobalUtility.$store.user.refreshUserSettings(correlationId);
86
96
  },
87
97
  async resetUser(correlationId) {
88
- // await GlobalUtility.$store.dispatch('resetUser', correlationId);
89
98
  await GlobalUtility.$store.user.resetUser(correlationId);
90
99
  },
91
- async setAuthCompleted(correlationId, authCompleted) {
92
- // await GlobalUtility.$store.dispatch('setUserAuthCompleted', { correlationId: correlationId, authCompleted: authCompleted });
100
+ async setUserAuthCompleted(correlationId, authCompleted) {
93
101
  await GlobalUtility.$store.user.setUserAuthCompleted(correlationId, authCompleted);
94
102
  },
95
- async setClaims(correlationId, claims) {
96
- // await GlobalUtility.$store.dispatch('setUserClaims', { correlationId: correlationId, authCompleted: claims });
103
+ async setUserClaims(correlationId, claims) {
97
104
  await GlobalUtility.$store.user.setUserClaims(correlationId, claims);
98
105
  },
99
- async setLoggedIn(correlationId, isLoggedIn) {
100
- // await GlobalUtility.$store.dispatch('setUserLoggedIn', { correlationId: correlationId, isLoggedIn: isLoggedIn });
106
+ async setUserLoggedIn(correlationId, isLoggedIn) {
101
107
  await GlobalUtility.$store.user.setUserLoggedIn(correlationId, isLoggedIn);
102
108
  },
103
- async setTheme(correlationId, theme) {
104
- // await GlobalUtility.$store.dispatch('setTheme', { correlationId: correlationId, tokenResult: tokenResult });
105
- await GlobalUtility.$store.user.setTheme(correlationId, theme);
109
+ async setUserSettings(correlationId, settings) {
110
+ return await GlobalUtility.$store.user.setUserSettings(correlationId, settings);
111
+ },
112
+ async setUserTheme(correlationId, theme) {
113
+ await GlobalUtility.$store.user.setUserTheme(correlationId, theme);
106
114
  },
107
- async setTokenResult(correlationId, tokenResult) {
108
- // await GlobalUtility.$store.dispatch('setTokenResult', { correlationId: correlationId, tokenResult: tokenResult });
109
- await GlobalUtility.$store.user.setTokenResult(correlationId, tokenResult);
115
+ async setUserTokenResult(correlationId, tokenResult) {
116
+ await GlobalUtility.$store.user.setUserTokenResult(correlationId, tokenResult);
110
117
  },
111
118
  async setUser(correlationId, user) {
112
- // await GlobalUtility.$store.dispatch('setUser', { correlationId: correlationId, user: user });
113
119
  await GlobalUtility.$store.user.setUser(correlationId, user);
114
- },
115
- async setUserSettings(correlationId, settings) {
116
- // return await GlobalUtility.$store.dispatch('setUserSettings', { correlationId: correlationId, settings: settings });
117
- await GlobalUtility.$store.user.setUserSettings(correlationId, settings);
118
120
  }
119
121
  }
120
122
  };