@applicaster/zapp-react-native-utils 16.0.0-alpha.1593888345 → 16.0.0-alpha.1733304298
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/actionUtils/index.ts +3 -1
- package/actionsExecutor/ActionExecutor.ts +10 -1
- package/actionsExecutor/ActionExecutorContext.tsx +3 -0
- package/actionsExecutor/__tests__/ActionExecutor.test.ts +71 -0
- package/actionsExecutor/__tests__/StorageActions.test.ts +98 -0
- package/actionsExecutor/__tests__/feedDecorator.test.ts +30 -0
- package/actionsExecutor/__tests__/screenToggleFlag.test.ts +90 -0
- package/actionsExecutor/actions/__tests__/navigateToScreen.test.ts +139 -5
- package/actionsExecutor/actions/__tests__/openBottomSheet.customContent.test.ts +24 -0
- package/actionsExecutor/actions/__tests__/openBottomSheet.inlineItems.test.ts +160 -0
- package/actionsExecutor/actions/__tests__/showAlert.test.ts +49 -0
- package/actionsExecutor/actions/__tests__/showToast.test.ts +2 -2
- package/actionsExecutor/actions/index.ts +2 -0
- package/actionsExecutor/actions/navigateToScreen.ts +29 -45
- package/actionsExecutor/actions/openBottomSheet.ts +21 -6
- package/actionsExecutor/actions/screenToggleFlag.ts +1 -3
- package/actionsExecutor/actions/showAlert.ts +51 -0
- package/actionsExecutor/actions/showToast.ts +2 -2
- package/actionsExecutor/consts.ts +1 -0
- package/actionsExecutor/feedDecorator.ts +6 -0
- package/analyticsUtils/__tests__/playerAnalyticsSafeguard.test.ts +62 -0
- package/analyticsUtils/playerAnalyticsTracker.ts +1 -0
- package/appUtils/contextKeysManager/__tests__/getKey/failure.test.ts +1 -22
- package/appUtils/contextKeysManager/__tests__/getKey/success/fullSearch.test.ts +1 -25
- package/appUtils/contextKeysManager/__tests__/getKey/success/searchInSecure.test.ts +1 -7
- package/appUtils/contextKeysManager/__tests__/removeKey/failure.test.ts +0 -25
- package/appUtils/contextKeysManager/__tests__/removeKey/success.test.ts +0 -6
- package/appUtils/contextKeysManager/__tests__/setKey/failure/failedToSaveInStorage.test.ts +0 -40
- package/appUtils/contextKeysManager/__tests__/setKey/{success/saveItemAndReference.test.ts → success.test.ts} +2 -42
- package/appUtils/contextKeysManager/index.ts +28 -129
- package/appUtils/playerManager/OverlayObserver/OverlaysObserver.ts +4 -11
- package/appUtils/playerManager/OverlayObserver/__tests__/getUpcomingQueue.test.ts +67 -0
- package/appUtils/playerManager/OverlayObserver/__tests__/utils.test.ts +9 -2
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ts +15 -2
- package/appUtils/playerManager/OverlayObserver/utils.ts +2 -5
- package/appUtils/playerManager/__tests__/playerDiagnostics.test.ts +62 -0
- package/appUtils/playerManager/__tests__/playerNative.test.ts +76 -0
- package/appUtils/playerManager/__tests__/playerNativeCommand.test.ts +62 -0
- package/appUtils/playerManager/__tests__/playerToolbox.test.ts +281 -0
- package/appUtils/playerManager/__tests__/usePlayerControllerSetup.test.tsx +62 -0
- package/appUtils/playerManager/const.ts +13 -0
- package/appUtils/playerManager/index.ts +7 -0
- package/appUtils/playerManager/player.ts +25 -0
- package/appUtils/playerManager/playerNative.ts +22 -0
- package/appUtils/playerManager/playerNativeCommand.ts +3 -6
- package/appUtils/playerManager/playerToolbox.ts +196 -0
- package/appUtils/playerManager/usePlayerControllerSetup.tsx +6 -0
- package/arrayUtils/__tests__/reorderByIds.test.ts +13 -0
- package/arrayUtils/index.ts +26 -43
- package/cellUtils/__tests__/getButtonsEnabled.test.ts +28 -0
- package/cellUtils/__tests__/getCellNavigationEnabled.test.ts +36 -0
- package/cellUtils/__tests__/getIsCellNavigationEnabled.test.ts +35 -0
- package/cellUtils/__tests__/isCellNavigationEnabled.test.ts +21 -0
- package/cellUtils/index.ts +40 -0
- package/configurationUtils/__tests__/modalBlocksParser.test.ts +189 -46
- package/configurationUtils/modalBlocksParser.ts +57 -101
- package/entryActions/__tests__/buildEntryActions.test.ts +97 -18
- package/entryActions/aliasPresentation.ts +26 -42
- package/entryActions/buildEntryActions.ts +1 -0
- package/entryActions/index.ts +0 -2
- package/focusManager/FocusManager.ts +26 -0
- package/focusManager/__tests__/FocusManager.test.ts +9 -0
- package/localizationUtils/index.ts +12 -6
- package/logger/__tests__/xrayToolbox.test.ts +69 -0
- package/logger/xrayToolbox.ts +67 -0
- package/manifestUtils/defaultManifestConfigurations/player.js +8 -0
- package/manifestUtils/keys.js +7 -2
- package/manifestUtils/mobileAction/container/__tests__/mobileActionButtonsContainer.test.js +21 -0
- package/manifestUtils/mobileAction/groups/__tests__/buildMobileActionButtonGroups.test.js +1 -1
- package/manifestUtils/mobileAction/groups/defaults.js +2 -1
- package/modalState/ModalOrchestrator.ts +2 -0
- package/modalState/RemoteEditableCollection.ts +9 -1
- package/modalState/__tests__/ModalOrchestrator.phase3.test.ts +39 -0
- package/modalState/__tests__/RemoteEditableCollection.test.ts +90 -1
- package/modalState/__tests__/useModalStoreState.test.ts +142 -0
- package/modalState/index.ts +2 -0
- package/modalState/store.ts +9 -2
- package/modalState/types.ts +14 -0
- package/modalState/useBottomSheetContent.ts +17 -12
- package/navigationUtils/xrayNavigator.ts +12 -0
- package/package.json +3 -2
- package/pluginUtils/__tests__/pluginUtils.test.js +32 -0
- package/pluginUtils/index.ts +29 -0
- package/quickBrickAssets/__tests__/index.test.ts +18 -0
- package/quickBrickAssets/index.ts +35 -0
- package/reactHooks/__tests__/getPluginConfiguration.test.ts +82 -0
- package/reactHooks/actions/index.ts +29 -23
- package/reactHooks/cell-click/__tests__/index.test.js +64 -0
- package/reactHooks/cell-click/index.ts +21 -14
- package/reactHooks/connection/index.tsx +8 -5
- package/reactHooks/feed/__tests__/feedInvalidation.test.tsx +338 -0
- package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +8 -2
- package/reactHooks/feed/__tests__/useMarkPipesDataStale.test.tsx +243 -0
- package/reactHooks/feed/useFeedLoader.tsx +28 -1
- package/reactHooks/feed/useLoadPipesDataDispatch.ts +12 -11
- package/reactHooks/feed/useMarkPipesDataStale.ts +68 -23
- package/reactHooks/navigation/__tests__/index.test.tsx +128 -1
- package/reactHooks/navigation/useRoute.ts +8 -4
- package/reactHooks/usePluginConfiguration.ts +84 -46
- package/riverComponetsMeasurementProvider/index.tsx +3 -1
- package/uiActionsRegistrator/__tests__/subscribe.test.ts +26 -0
- package/uiActionsRegistrator/registry.ts +16 -0
- package/appUtils/contextKeysManager/__tests__/getKey/success/byReference.test.ts +0 -56
- package/appUtils/contextKeysManager/__tests__/getKeyByReference/failure.test.ts +0 -265
- package/appUtils/contextKeysManager/__tests__/getKeyByReference/success.test.ts +0 -303
- package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/failure.test.ts +0 -82
- package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/success.test.ts +0 -41
- package/appUtils/contextKeysManager/__tests__/setKey/success/saveItemButNotReference.test.ts +0 -208
- package/appUtils/contextKeysManager/__tests__/setReferenceForKey/failure.test.ts +0 -93
- package/appUtils/contextKeysManager/__tests__/setReferenceForKey/success.test.ts +0 -45
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContextKeysManager
|
|
1
|
+
import { ContextKeysManager } from "../../..";
|
|
2
2
|
|
|
3
3
|
describe("Context Keys Manager - getKey", () => {
|
|
4
4
|
it("returns value if found in session-storage", async () => {
|
|
@@ -35,10 +35,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
35
35
|
secureStorage: mockedSecureStorage,
|
|
36
36
|
});
|
|
37
37
|
|
|
38
|
-
const getKeyByReference = jest
|
|
39
|
-
.spyOn(contextManager, "getKeyByReference")
|
|
40
|
-
.mockResolvedValueOnce(NOTHING);
|
|
41
|
-
|
|
42
38
|
// run
|
|
43
39
|
const result = await contextManager.getKey(key);
|
|
44
40
|
|
|
@@ -47,8 +43,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
47
43
|
|
|
48
44
|
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
49
45
|
|
|
50
|
-
expect(getKeyByReference).toHaveBeenCalledWith("key", "namespace");
|
|
51
|
-
|
|
52
46
|
expect(mockedSessionStorage.getItem).toHaveBeenCalledWith(
|
|
53
47
|
"key",
|
|
54
48
|
"namespace"
|
|
@@ -92,10 +86,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
92
86
|
secureStorage: mockedSecureStorage,
|
|
93
87
|
});
|
|
94
88
|
|
|
95
|
-
const getKeyByReference = jest
|
|
96
|
-
.spyOn(contextManager, "getKeyByReference")
|
|
97
|
-
.mockResolvedValueOnce(NOTHING);
|
|
98
|
-
|
|
99
89
|
// run
|
|
100
90
|
const result = await contextManager.getKey(key);
|
|
101
91
|
|
|
@@ -104,8 +94,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
104
94
|
|
|
105
95
|
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
106
96
|
|
|
107
|
-
expect(getKeyByReference).toHaveBeenCalledWith("key", "namespace");
|
|
108
|
-
|
|
109
97
|
expect(mockedSessionStorage.getItem).toHaveBeenCalledWith(
|
|
110
98
|
"key",
|
|
111
99
|
"namespace"
|
|
@@ -149,10 +137,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
149
137
|
secureStorage: mockedSecureStorage,
|
|
150
138
|
});
|
|
151
139
|
|
|
152
|
-
const getKeyByReference = jest
|
|
153
|
-
.spyOn(contextManager, "getKeyByReference")
|
|
154
|
-
.mockResolvedValueOnce(NOTHING);
|
|
155
|
-
|
|
156
140
|
// run
|
|
157
141
|
const result = await contextManager.getKey(key);
|
|
158
142
|
|
|
@@ -161,8 +145,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
161
145
|
|
|
162
146
|
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
163
147
|
|
|
164
|
-
expect(getKeyByReference).toHaveBeenCalledWith("key", "namespace");
|
|
165
|
-
|
|
166
148
|
expect(mockedSessionStorage.getItem).toHaveBeenCalledWith(
|
|
167
149
|
"key",
|
|
168
150
|
"namespace"
|
|
@@ -209,10 +191,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
209
191
|
secureStorage: mockedSecureStorage,
|
|
210
192
|
});
|
|
211
193
|
|
|
212
|
-
const getKeyByReference = jest
|
|
213
|
-
.spyOn(contextManager, "getKeyByReference")
|
|
214
|
-
.mockResolvedValueOnce(NOTHING);
|
|
215
|
-
|
|
216
194
|
// run
|
|
217
195
|
const result = await contextManager.getKey(key);
|
|
218
196
|
|
|
@@ -221,8 +199,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
221
199
|
|
|
222
200
|
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
223
201
|
|
|
224
|
-
expect(getKeyByReference).toHaveBeenCalledWith("key", "namespace");
|
|
225
|
-
|
|
226
202
|
expect(mockedSessionStorage.getItem).toHaveBeenCalledWith(
|
|
227
203
|
"key",
|
|
228
204
|
"namespace"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContextKeysManager
|
|
1
|
+
import { ContextKeysManager } from "../../..";
|
|
2
2
|
import { DEFAULT_NAMESPACE } from "../../../consts";
|
|
3
3
|
|
|
4
4
|
describe("Context Keys Manager - getKey", () => {
|
|
@@ -36,10 +36,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
36
36
|
secureStorage: mockedSecureStorage,
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
-
const getKeyByReference = jest
|
|
40
|
-
.spyOn(contextManager, "getKeyByReference")
|
|
41
|
-
.mockResolvedValueOnce(NOTHING);
|
|
42
|
-
|
|
43
39
|
// run
|
|
44
40
|
const result = await contextManager.getKey(key);
|
|
45
41
|
|
|
@@ -48,8 +44,6 @@ describe("Context Keys Manager - getKey", () => {
|
|
|
48
44
|
|
|
49
45
|
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
50
46
|
|
|
51
|
-
expect(getKeyByReference).toHaveBeenCalledWith("key", DEFAULT_NAMESPACE);
|
|
52
|
-
|
|
53
47
|
expect(mockedSessionStorage.getItem).toHaveBeenCalledWith(
|
|
54
48
|
"key",
|
|
55
49
|
DEFAULT_NAMESPACE
|
|
@@ -34,11 +34,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
34
34
|
secureStorage: mockedSecureStorage,
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
const removeReferenceForKey = jest.spyOn(
|
|
38
|
-
contextManager,
|
|
39
|
-
"removeReferenceForKey"
|
|
40
|
-
);
|
|
41
|
-
|
|
42
37
|
// run
|
|
43
38
|
const result = await contextManager.removeKey(key);
|
|
44
39
|
|
|
@@ -51,8 +46,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
51
46
|
data: { key },
|
|
52
47
|
});
|
|
53
48
|
|
|
54
|
-
expect(removeReferenceForKey).not.toHaveBeenCalled();
|
|
55
|
-
|
|
56
49
|
expect(mockedSessionStorage.removeItem).not.toHaveBeenCalled();
|
|
57
50
|
expect(mockedLocalStorage.removeItem).not.toHaveBeenCalled();
|
|
58
51
|
expect(mockedSecureStorage.removeItem).not.toHaveBeenCalled();
|
|
@@ -92,10 +85,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
92
85
|
secureStorage: mockedSecureStorage,
|
|
93
86
|
});
|
|
94
87
|
|
|
95
|
-
const removeReferenceForKey = jest
|
|
96
|
-
.spyOn(contextManager, "removeReferenceForKey")
|
|
97
|
-
.mockResolvedValueOnce(true);
|
|
98
|
-
|
|
99
88
|
// run
|
|
100
89
|
const result = await contextManager.removeKey(key);
|
|
101
90
|
|
|
@@ -107,8 +96,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
107
96
|
data: { key },
|
|
108
97
|
});
|
|
109
98
|
|
|
110
|
-
expect(removeReferenceForKey).toHaveBeenCalledWith("key", "namespace");
|
|
111
|
-
|
|
112
99
|
expect(mockedSessionStorage.removeItem).toHaveBeenCalledWith(
|
|
113
100
|
"key",
|
|
114
101
|
"namespace"
|
|
@@ -159,10 +146,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
159
146
|
secureStorage: mockedSecureStorage,
|
|
160
147
|
});
|
|
161
148
|
|
|
162
|
-
const removeReferenceForKey = jest
|
|
163
|
-
.spyOn(contextManager, "removeReferenceForKey")
|
|
164
|
-
.mockResolvedValueOnce(true);
|
|
165
|
-
|
|
166
149
|
// run
|
|
167
150
|
const result = await contextManager.removeKey(key);
|
|
168
151
|
|
|
@@ -174,8 +157,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
174
157
|
data: { key },
|
|
175
158
|
});
|
|
176
159
|
|
|
177
|
-
expect(removeReferenceForKey).toHaveBeenCalledWith("key", "namespace");
|
|
178
|
-
|
|
179
160
|
expect(mockedSessionStorage.removeItem).toHaveBeenCalledWith(
|
|
180
161
|
"key",
|
|
181
162
|
"namespace"
|
|
@@ -226,10 +207,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
226
207
|
secureStorage: mockedSecureStorage,
|
|
227
208
|
});
|
|
228
209
|
|
|
229
|
-
const removeReferenceForKey = jest
|
|
230
|
-
.spyOn(contextManager, "removeReferenceForKey")
|
|
231
|
-
.mockResolvedValueOnce(true);
|
|
232
|
-
|
|
233
210
|
// run
|
|
234
211
|
const result = await contextManager.removeKey(key);
|
|
235
212
|
|
|
@@ -241,8 +218,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
241
218
|
data: { key },
|
|
242
219
|
});
|
|
243
220
|
|
|
244
|
-
expect(removeReferenceForKey).toHaveBeenCalledWith("key", "namespace");
|
|
245
|
-
|
|
246
221
|
expect(mockedSessionStorage.removeItem).toHaveBeenCalledWith(
|
|
247
222
|
"key",
|
|
248
223
|
"namespace"
|
|
@@ -34,10 +34,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
34
34
|
secureStorage: mockedSecureStorage,
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
const removeReferenceForKey = jest
|
|
38
|
-
.spyOn(contextManager, "removeReferenceForKey")
|
|
39
|
-
.mockResolvedValueOnce(true);
|
|
40
|
-
|
|
41
37
|
// run
|
|
42
38
|
const result = await contextManager.removeKey(key);
|
|
43
39
|
|
|
@@ -46,8 +42,6 @@ describe("Context Keys Manager - removeKey", () => {
|
|
|
46
42
|
|
|
47
43
|
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
48
44
|
|
|
49
|
-
expect(removeReferenceForKey).toHaveBeenCalledWith("key", "namespace");
|
|
50
|
-
|
|
51
45
|
expect(mockedSessionStorage.removeItem).toHaveBeenCalledWith(
|
|
52
46
|
"key",
|
|
53
47
|
"namespace"
|
|
@@ -38,10 +38,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
38
38
|
secureStorage: mockedSecureStorage,
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
-
const setReferenceForKey = jest
|
|
42
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
43
|
-
.mockResolvedValueOnce(true);
|
|
44
|
-
|
|
45
41
|
// run
|
|
46
42
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
47
43
|
|
|
@@ -68,12 +64,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
68
64
|
|
|
69
65
|
expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
|
|
70
66
|
expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
|
|
71
|
-
|
|
72
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
73
|
-
"key",
|
|
74
|
-
"namespace",
|
|
75
|
-
storageLevel
|
|
76
|
-
);
|
|
77
67
|
});
|
|
78
68
|
|
|
79
69
|
it("returns false if failed to saved with storage-level=persisted", async () => {
|
|
@@ -112,10 +102,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
112
102
|
secureStorage: mockedSecureStorage,
|
|
113
103
|
});
|
|
114
104
|
|
|
115
|
-
const setReferenceForKey = jest
|
|
116
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
117
|
-
.mockResolvedValueOnce(true);
|
|
118
|
-
|
|
119
105
|
// run
|
|
120
106
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
121
107
|
|
|
@@ -142,12 +128,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
142
128
|
|
|
143
129
|
expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
|
|
144
130
|
expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
|
|
145
|
-
|
|
146
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
147
|
-
"key",
|
|
148
|
-
"namespace",
|
|
149
|
-
storageLevel
|
|
150
|
-
);
|
|
151
131
|
});
|
|
152
132
|
|
|
153
133
|
it("returns false if failed to saved with storage-level=secure", async () => {
|
|
@@ -186,10 +166,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
186
166
|
secureStorage: mockedSecureStorage,
|
|
187
167
|
});
|
|
188
168
|
|
|
189
|
-
const setReferenceForKey = jest
|
|
190
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
191
|
-
.mockResolvedValueOnce(true);
|
|
192
|
-
|
|
193
169
|
// run
|
|
194
170
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
195
171
|
|
|
@@ -216,12 +192,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
216
192
|
value,
|
|
217
193
|
"namespace"
|
|
218
194
|
);
|
|
219
|
-
|
|
220
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
221
|
-
"key",
|
|
222
|
-
"namespace",
|
|
223
|
-
storageLevel
|
|
224
|
-
);
|
|
225
195
|
});
|
|
226
196
|
|
|
227
197
|
it("returns false if failed to saved with storage-level=undefined", async () => {
|
|
@@ -259,10 +229,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
259
229
|
secureStorage: mockedSecureStorage,
|
|
260
230
|
});
|
|
261
231
|
|
|
262
|
-
const setReferenceForKey = jest
|
|
263
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
264
|
-
.mockResolvedValueOnce(true);
|
|
265
|
-
|
|
266
232
|
// run
|
|
267
233
|
const result = await contextManager.setKey({ key, value });
|
|
268
234
|
|
|
@@ -289,11 +255,5 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
289
255
|
|
|
290
256
|
expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
|
|
291
257
|
expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
|
|
292
|
-
|
|
293
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
294
|
-
"key",
|
|
295
|
-
"namespace",
|
|
296
|
-
StorageLevel.default
|
|
297
|
-
);
|
|
298
258
|
});
|
|
299
259
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ContextKeysManager } from "
|
|
2
|
-
import { StorageLevel } from "
|
|
1
|
+
import { ContextKeysManager } from "../..";
|
|
2
|
+
import { StorageLevel } from "../../consts";
|
|
3
3
|
|
|
4
4
|
describe("Context Keys Manager - setKey", () => {
|
|
5
5
|
it("returns true if saved with success with storage-level=undefined", async () => {
|
|
@@ -37,10 +37,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
37
37
|
secureStorage: mockedSecureStorage,
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
const setReferenceForKey = jest
|
|
41
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
42
|
-
.mockResolvedValueOnce(true);
|
|
43
|
-
|
|
44
40
|
// run
|
|
45
41
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
46
42
|
|
|
@@ -62,12 +58,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
62
58
|
|
|
63
59
|
expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
|
|
64
60
|
expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
|
|
65
|
-
|
|
66
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
67
|
-
"key",
|
|
68
|
-
"namespace",
|
|
69
|
-
StorageLevel.default
|
|
70
|
-
);
|
|
71
61
|
});
|
|
72
62
|
|
|
73
63
|
it("returns true if saved with success with storage-level=default", async () => {
|
|
@@ -105,10 +95,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
105
95
|
secureStorage: mockedSecureStorage,
|
|
106
96
|
});
|
|
107
97
|
|
|
108
|
-
const setReferenceForKey = jest
|
|
109
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
110
|
-
.mockResolvedValueOnce(true);
|
|
111
|
-
|
|
112
98
|
// run
|
|
113
99
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
114
100
|
|
|
@@ -130,12 +116,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
130
116
|
|
|
131
117
|
expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
|
|
132
118
|
expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
|
|
133
|
-
|
|
134
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
135
|
-
"key",
|
|
136
|
-
"namespace",
|
|
137
|
-
StorageLevel.default
|
|
138
|
-
);
|
|
139
119
|
});
|
|
140
120
|
|
|
141
121
|
it("returns true if saved with success with storage-level=persisted", async () => {
|
|
@@ -173,10 +153,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
173
153
|
secureStorage: mockedSecureStorage,
|
|
174
154
|
});
|
|
175
155
|
|
|
176
|
-
const setReferenceForKey = jest
|
|
177
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
178
|
-
.mockResolvedValueOnce(true);
|
|
179
|
-
|
|
180
156
|
// run
|
|
181
157
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
182
158
|
|
|
@@ -198,12 +174,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
198
174
|
|
|
199
175
|
expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
|
|
200
176
|
expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
|
|
201
|
-
|
|
202
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
203
|
-
"key",
|
|
204
|
-
"namespace",
|
|
205
|
-
storageLevel
|
|
206
|
-
);
|
|
207
177
|
});
|
|
208
178
|
|
|
209
179
|
it("returns true if saved with success with storage-level=secure", async () => {
|
|
@@ -241,10 +211,6 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
241
211
|
secureStorage: mockedSecureStorage,
|
|
242
212
|
});
|
|
243
213
|
|
|
244
|
-
const setReferenceForKey = jest
|
|
245
|
-
.spyOn(contextManager, "setReferenceForKey")
|
|
246
|
-
.mockResolvedValueOnce(true);
|
|
247
|
-
|
|
248
214
|
// run
|
|
249
215
|
const result = await contextManager.setKey({ key, value, storageLevel });
|
|
250
216
|
|
|
@@ -266,11 +232,5 @@ describe("Context Keys Manager - setKey", () => {
|
|
|
266
232
|
value,
|
|
267
233
|
"namespace"
|
|
268
234
|
);
|
|
269
|
-
|
|
270
|
-
expect(setReferenceForKey).toHaveBeenCalledWith(
|
|
271
|
-
"key",
|
|
272
|
-
"namespace",
|
|
273
|
-
storageLevel
|
|
274
|
-
);
|
|
275
235
|
});
|
|
276
236
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNil } from "@applicaster/zapp-react-native-utils/utils";
|
|
2
2
|
|
|
3
|
-
import { StorageLevel
|
|
3
|
+
import { StorageLevel } from "./consts";
|
|
4
4
|
import {
|
|
5
5
|
getNamespaceAndKey,
|
|
6
6
|
keyIsValid,
|
|
@@ -59,18 +59,14 @@ type Setup = {
|
|
|
59
59
|
sessionStorage?: Storage;
|
|
60
60
|
localStorage?: Storage;
|
|
61
61
|
secureStorage?: Storage;
|
|
62
|
-
referenceStorage?: Storage;
|
|
63
62
|
};
|
|
64
63
|
|
|
65
|
-
export const REFERENCE_NAMESPACE = "applicaster.v2.references";
|
|
66
|
-
|
|
67
64
|
export class ContextKeysManager {
|
|
68
65
|
private static _instance: ContextKeysManager;
|
|
69
66
|
private _logger: Logger;
|
|
70
67
|
private _sessionStorage: Storage;
|
|
71
68
|
private _localStorage: Storage;
|
|
72
69
|
private _secureStorage: Storage;
|
|
73
|
-
private _referenceStorage: Storage;
|
|
74
70
|
|
|
75
71
|
public static get instance() {
|
|
76
72
|
if (!this._instance) {
|
|
@@ -79,7 +75,6 @@ export class ContextKeysManager {
|
|
|
79
75
|
sessionStorage: SessionStorage,
|
|
80
76
|
localStorage: LocalStorage,
|
|
81
77
|
secureStorage: SecureStorage,
|
|
82
|
-
referenceStorage: SessionStorage,
|
|
83
78
|
});
|
|
84
79
|
|
|
85
80
|
this._instance = instance;
|
|
@@ -94,13 +89,11 @@ export class ContextKeysManager {
|
|
|
94
89
|
sessionStorage = SessionStorage,
|
|
95
90
|
localStorage = LocalStorage,
|
|
96
91
|
secureStorage = SecureStorage,
|
|
97
|
-
|
|
98
|
-
}: Setup) {
|
|
92
|
+
}: Setup = {}) {
|
|
99
93
|
this._logger = logger;
|
|
100
94
|
this._sessionStorage = sessionStorage;
|
|
101
95
|
this._localStorage = localStorage;
|
|
102
96
|
this._secureStorage = secureStorage;
|
|
103
|
-
this._referenceStorage = referenceStorage;
|
|
104
97
|
}
|
|
105
98
|
|
|
106
99
|
private parseKey(key: KeyName): ParsedKeyAndNamespace {
|
|
@@ -119,41 +112,6 @@ export class ContextKeysManager {
|
|
|
119
112
|
return { isValid: true, ...parsedKey };
|
|
120
113
|
}
|
|
121
114
|
|
|
122
|
-
// GET
|
|
123
|
-
public async getKeyByReference(
|
|
124
|
-
key: string,
|
|
125
|
-
namespace: string
|
|
126
|
-
): Promise<ValueOrNothing> {
|
|
127
|
-
// 1) look for storage
|
|
128
|
-
// 2) if storage found - look value in it
|
|
129
|
-
// 3) if storage not found return NOTHING
|
|
130
|
-
|
|
131
|
-
return this._referenceStorage
|
|
132
|
-
.getItem(buildNamespaceKey(key, namespace), REFERENCE_NAMESPACE)
|
|
133
|
-
.then((storage: StorageType | unknown) => {
|
|
134
|
-
switch (storage) {
|
|
135
|
-
case StorageType.session:
|
|
136
|
-
return this._sessionStorage.getItem(key, namespace);
|
|
137
|
-
case StorageType.local:
|
|
138
|
-
return this._localStorage.getItem(key, namespace);
|
|
139
|
-
case StorageType.secure:
|
|
140
|
-
return this._secureStorage.getItem(key, namespace);
|
|
141
|
-
default:
|
|
142
|
-
// unknown storage
|
|
143
|
-
return NOTHING;
|
|
144
|
-
}
|
|
145
|
-
})
|
|
146
|
-
.catch((error) => {
|
|
147
|
-
// something went wrong
|
|
148
|
-
this._logger.warn({
|
|
149
|
-
message: error.message,
|
|
150
|
-
data: { key, namespace },
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
return NOTHING;
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
115
|
public async getKeys(
|
|
158
116
|
keys: Array<KeyName>,
|
|
159
117
|
contextObj?: { key: string; required?: boolean }[]
|
|
@@ -228,19 +186,7 @@ export class ContextKeysManager {
|
|
|
228
186
|
return NOTHING;
|
|
229
187
|
}
|
|
230
188
|
|
|
231
|
-
//
|
|
232
|
-
// if not found, look in session > local > secure
|
|
233
|
-
|
|
234
|
-
const resultByReference = await this.getKeyByReference(
|
|
235
|
-
parsedKey,
|
|
236
|
-
parsedNamespace
|
|
237
|
-
);
|
|
238
|
-
|
|
239
|
-
if (!isNil(resultByReference)) {
|
|
240
|
-
return resultByReference;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// try to full-search
|
|
189
|
+
// look in session > local > secure
|
|
244
190
|
try {
|
|
245
191
|
const resultFromSessionStorage = await this._sessionStorage.getItem(
|
|
246
192
|
parsedKey,
|
|
@@ -284,41 +230,6 @@ export class ContextKeysManager {
|
|
|
284
230
|
// GET
|
|
285
231
|
|
|
286
232
|
// SET
|
|
287
|
-
public async setReferenceForKey(
|
|
288
|
-
key: string,
|
|
289
|
-
namespace: string,
|
|
290
|
-
storageLevel: StorageLevel
|
|
291
|
-
): Promise<boolean> {
|
|
292
|
-
return this._referenceStorage
|
|
293
|
-
.setItem(
|
|
294
|
-
buildNamespaceKey(key, namespace),
|
|
295
|
-
storageLevel,
|
|
296
|
-
REFERENCE_NAMESPACE
|
|
297
|
-
)
|
|
298
|
-
.then((result) => {
|
|
299
|
-
if (savingResultIsSuccess(result)) {
|
|
300
|
-
return true;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
this._logger.warn({
|
|
304
|
-
message:
|
|
305
|
-
"While saving reference - reference storage return non expected value: true",
|
|
306
|
-
data: { key, namespace, storageLevel },
|
|
307
|
-
});
|
|
308
|
-
|
|
309
|
-
return false;
|
|
310
|
-
})
|
|
311
|
-
.catch((error) => {
|
|
312
|
-
// something went wrong
|
|
313
|
-
this._logger.warn({
|
|
314
|
-
message: error.message,
|
|
315
|
-
data: { key, namespace, storageLevel },
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
return false;
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
|
|
322
233
|
// for all keys where saving were succeed return true
|
|
323
234
|
// for others return false
|
|
324
235
|
public async setKeys(
|
|
@@ -352,29 +263,36 @@ export class ContextKeysManager {
|
|
|
352
263
|
}
|
|
353
264
|
|
|
354
265
|
try {
|
|
266
|
+
let setItemResult: boolean;
|
|
267
|
+
|
|
355
268
|
switch (storageLevel) {
|
|
356
269
|
case StorageLevel.persisted:
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
270
|
+
setItemResult = await this._localStorage.setItem(
|
|
271
|
+
parsedKey,
|
|
272
|
+
value,
|
|
273
|
+
parsedNamespace
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
break;
|
|
363
277
|
case StorageLevel.secure:
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
278
|
+
setItemResult = await this._secureStorage.setItem(
|
|
279
|
+
parsedKey,
|
|
280
|
+
value,
|
|
281
|
+
parsedNamespace
|
|
282
|
+
);
|
|
283
|
+
|
|
284
|
+
break;
|
|
370
285
|
default:
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
286
|
+
setItemResult = await this._sessionStorage.setItem(
|
|
287
|
+
parsedKey,
|
|
288
|
+
value,
|
|
289
|
+
parsedNamespace
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
break;
|
|
377
293
|
}
|
|
294
|
+
|
|
295
|
+
return savingResultIsSuccess(setItemResult);
|
|
378
296
|
} catch (error) {
|
|
379
297
|
// something went wrong
|
|
380
298
|
this._logger.warn({
|
|
@@ -388,24 +306,6 @@ export class ContextKeysManager {
|
|
|
388
306
|
// SET
|
|
389
307
|
|
|
390
308
|
// REMOVE
|
|
391
|
-
public async removeReferenceForKey(
|
|
392
|
-
key: string,
|
|
393
|
-
namespace: string
|
|
394
|
-
): Promise<boolean> {
|
|
395
|
-
return this._referenceStorage
|
|
396
|
-
.removeItem(buildNamespaceKey(key, namespace), REFERENCE_NAMESPACE)
|
|
397
|
-
.then(() => true)
|
|
398
|
-
.catch((error) => {
|
|
399
|
-
// something went wrong
|
|
400
|
-
this._logger.warn({
|
|
401
|
-
message: error.message,
|
|
402
|
-
data: { key, namespace },
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
return false;
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
|
|
409
309
|
public async removeKey(key: KeyName): Promise<boolean> {
|
|
410
310
|
const {
|
|
411
311
|
isValid: isValidKey,
|
|
@@ -422,7 +322,6 @@ export class ContextKeysManager {
|
|
|
422
322
|
this._sessionStorage.removeItem(parsedKey, parsedNamespace),
|
|
423
323
|
this._localStorage.removeItem(parsedKey, parsedNamespace),
|
|
424
324
|
this._secureStorage.removeItem(parsedKey, parsedNamespace),
|
|
425
|
-
this.removeReferenceForKey(parsedKey, parsedNamespace),
|
|
426
325
|
])
|
|
427
326
|
.then(() => true)
|
|
428
327
|
.catch((error) => {
|
|
@@ -2,8 +2,7 @@ import { BehaviorSubject, Observable } from "rxjs";
|
|
|
2
2
|
import { distinctUntilChanged } from "rxjs/operators";
|
|
3
3
|
import { Player } from "../player";
|
|
4
4
|
import { createLogger, utilsLogger } from "../../../logger";
|
|
5
|
-
import {
|
|
6
|
-
import { findPluginByIdentifier } from "../../../pluginUtils";
|
|
5
|
+
import { getPluginByIdentifier } from "@applicaster/zapp-react-native-utils/pluginUtils";
|
|
7
6
|
import {
|
|
8
7
|
loadFeedEntry,
|
|
9
8
|
loadFeedAndPrefetchThumbnailImage,
|
|
@@ -237,11 +236,8 @@ export class OverlaysObserver {
|
|
|
237
236
|
|
|
238
237
|
preparePlayNext = async () => {
|
|
239
238
|
try {
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
const playNextPlugin: any = findPluginByIdentifier(
|
|
243
|
-
"QuickBrickPlayNextOverlay",
|
|
244
|
-
plugins
|
|
239
|
+
const playNextPlugin: any = getPluginByIdentifier(
|
|
240
|
+
"QuickBrickPlayNextOverlay"
|
|
245
241
|
);
|
|
246
242
|
|
|
247
243
|
if (!playNextPlugin) {
|
|
@@ -252,10 +248,7 @@ export class OverlaysObserver {
|
|
|
252
248
|
return;
|
|
253
249
|
}
|
|
254
250
|
|
|
255
|
-
const playNextFeedUrl: string = await retrieveFeedUrl(
|
|
256
|
-
this.entry,
|
|
257
|
-
plugins
|
|
258
|
-
);
|
|
251
|
+
const playNextFeedUrl: string = await retrieveFeedUrl(this.entry);
|
|
259
252
|
|
|
260
253
|
if (!playNextFeedUrl || typeof playNextFeedUrl !== "string") {
|
|
261
254
|
log_debug(
|