@koine/browser 2.0.0-beta.1 → 2.0.0-beta.100
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/README.md +1 -1
- package/createStorage.cjs.d.ts +2 -0
- package/createStorage.cjs.default.js +1 -0
- package/createStorage.cjs.js +51 -0
- package/createStorage.cjs.mjs +2 -0
- package/createStorage.d.ts +3 -45
- package/createStorage.esm.js +46 -0
- package/getZonedDate.cjs.d.ts +2 -0
- package/getZonedDate.cjs.default.js +1 -0
- package/getZonedDate.cjs.js +27 -0
- package/getZonedDate.cjs.mjs +2 -0
- package/getZonedDate.d.ts +1 -15
- package/getZonedDate.esm.js +22 -0
- package/gtag.cjs.d.ts +2 -0
- package/gtag.cjs.default.js +1 -0
- package/gtag.cjs.js +22 -0
- package/gtag.cjs.mjs +2 -0
- package/gtag.d.ts +2 -0
- package/gtag.esm.js +17 -0
- package/gtagPageview.cjs.d.ts +2 -0
- package/gtagPageview.cjs.default.js +1 -0
- package/gtagPageview.cjs.js +13 -0
- package/gtagPageview.cjs.mjs +2 -0
- package/gtagPageview.d.ts +1 -4
- package/gtagPageview.esm.js +8 -0
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +45 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +4 -1
- package/index.esm.js +20 -0
- package/isIE.cjs.d.ts +2 -0
- package/isIE.cjs.default.js +1 -0
- package/isIE.cjs.js +14 -0
- package/isIE.cjs.mjs +2 -0
- package/isIE.d.ts +1 -6
- package/isIE.esm.js +9 -0
- package/isMobile.cjs.d.ts +2 -0
- package/isMobile.cjs.default.js +1 -0
- package/{isMobile.mjs → isMobile.cjs.js} +11 -11
- package/isMobile.cjs.mjs +2 -0
- package/isMobile.d.ts +1 -6
- package/{isMobile.js → isMobile.esm.js} +6 -16
- package/listenUrlSearch.cjs.d.ts +2 -0
- package/listenUrlSearch.cjs.default.js +1 -0
- package/listenUrlSearch.cjs.js +32 -0
- package/listenUrlSearch.cjs.mjs +2 -0
- package/listenUrlSearch.d.ts +3 -0
- package/listenUrlSearch.esm.js +27 -0
- package/listenUrlSearchParams.cjs.d.ts +2 -0
- package/listenUrlSearchParams.cjs.default.js +1 -0
- package/listenUrlSearchParams.cjs.js +16 -0
- package/listenUrlSearchParams.cjs.mjs +2 -0
- package/listenUrlSearchParams.d.ts +2 -0
- package/listenUrlSearchParams.esm.js +11 -0
- package/navigateToHash.cjs.d.ts +2 -0
- package/navigateToHash.cjs.default.js +1 -0
- package/navigateToHash.cjs.js +15 -0
- package/navigateToHash.cjs.mjs +2 -0
- package/navigateToHash.d.ts +1 -7
- package/navigateToHash.esm.js +10 -0
- package/navigateToHashParams.cjs.d.ts +2 -0
- package/navigateToHashParams.cjs.default.js +1 -0
- package/navigateToHashParams.cjs.js +15 -0
- package/navigateToHashParams.cjs.mjs +2 -0
- package/navigateToHashParams.d.ts +2 -8
- package/navigateToHashParams.esm.js +10 -0
- package/navigateToMergedHashParams.cjs.d.ts +2 -0
- package/navigateToMergedHashParams.cjs.default.js +1 -0
- package/navigateToMergedHashParams.cjs.js +15 -0
- package/navigateToMergedHashParams.cjs.mjs +2 -0
- package/navigateToMergedHashParams.d.ts +2 -7
- package/navigateToMergedHashParams.esm.js +10 -0
- package/navigateToMergedParams.cjs.d.ts +2 -0
- package/navigateToMergedParams.cjs.default.js +1 -0
- package/navigateToMergedParams.cjs.js +17 -0
- package/navigateToMergedParams.cjs.mjs +2 -0
- package/navigateToMergedParams.d.ts +2 -8
- package/navigateToMergedParams.esm.js +12 -0
- package/navigateToParams.cjs.d.ts +2 -0
- package/navigateToParams.cjs.default.js +1 -0
- package/navigateToParams.cjs.js +17 -0
- package/navigateToParams.cjs.mjs +2 -0
- package/navigateToParams.d.ts +2 -9
- package/navigateToParams.esm.js +12 -0
- package/navigateToUrl.cjs.d.ts +2 -0
- package/navigateToUrl.cjs.default.js +1 -0
- package/navigateToUrl.cjs.js +12 -0
- package/navigateToUrl.cjs.mjs +2 -0
- package/navigateToUrl.d.ts +1 -6
- package/navigateToUrl.esm.js +7 -0
- package/navigateWithoutUrlParam.cjs.d.ts +2 -0
- package/navigateWithoutUrlParam.cjs.default.js +1 -0
- package/navigateWithoutUrlParam.cjs.js +17 -0
- package/navigateWithoutUrlParam.cjs.mjs +2 -0
- package/navigateWithoutUrlParam.d.ts +1 -7
- package/navigateWithoutUrlParam.esm.js +12 -0
- package/package.json +107 -7
- package/redirectTo.cjs.d.ts +2 -0
- package/redirectTo.cjs.default.js +1 -0
- package/redirectTo.cjs.js +15 -0
- package/redirectTo.cjs.mjs +2 -0
- package/redirectTo.d.ts +2 -8
- package/redirectTo.esm.js +10 -0
- package/storage.cjs.d.ts +2 -0
- package/storage.cjs.default.js +1 -0
- package/storage.cjs.js +15 -0
- package/storage.cjs.mjs +2 -0
- package/storage.d.ts +1 -4
- package/storage.esm.js +10 -0
- package/storageClient.cjs.d.ts +2 -0
- package/storageClient.cjs.default.js +1 -0
- package/storageClient.cjs.js +21 -0
- package/storageClient.cjs.mjs +2 -0
- package/storageClient.d.ts +2 -5
- package/storageClient.esm.js +16 -0
- package/createStorage.js +0 -147
- package/createStorage.mjs +0 -143
- package/getZonedDate.js +0 -42
- package/getZonedDate.mjs +0 -37
- package/gtagPageview.js +0 -35
- package/gtagPageview.mjs +0 -30
- package/index.js +0 -33
- package/index.mjs +0 -15
- package/isIE.js +0 -23
- package/isIE.mjs +0 -18
- package/navigateToHash.js +0 -18
- package/navigateToHash.mjs +0 -13
- package/navigateToHashParams.js +0 -27
- package/navigateToHashParams.mjs +0 -22
- package/navigateToMergedHashParams.js +0 -19
- package/navigateToMergedHashParams.mjs +0 -14
- package/navigateToMergedParams.js +0 -19
- package/navigateToMergedParams.mjs +0 -14
- package/navigateToParams.js +0 -24
- package/navigateToParams.mjs +0 -19
- package/navigateToUrl.js +0 -16
- package/navigateToUrl.mjs +0 -12
- package/navigateWithoutUrlParam.js +0 -24
- package/navigateWithoutUrlParam.mjs +0 -19
- package/redirectTo.js +0 -20
- package/redirectTo.mjs +0 -15
- package/storage.js +0 -13
- package/storage.mjs +0 -9
- package/storageClient.js +0 -108
- package/storageClient.mjs +0 -103
- package/typings.d.ts +0 -12
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Redirect to url with params {optionally}, removes eventual trailing question
|
|
9
|
+
* marks from the given URL, it uses `location`
|
|
10
|
+
*
|
|
11
|
+
* @category location
|
|
12
|
+
*/let redirectTo=(t,o)=>{if(utils.isBrowser){let r=utils.buildUrlQueryString(o);location.href=t.replace(/\?+$/g,"")+r;}};
|
|
13
|
+
|
|
14
|
+
exports["default"] = redirectTo;
|
|
15
|
+
exports.redirectTo = redirectTo;
|
package/redirectTo.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
* Redirect to url with params {optionally}, removes eventual trailing question
|
|
4
|
-
* marks from the given URL, it uses `location`
|
|
5
|
-
*
|
|
6
|
-
* @category location
|
|
7
|
-
*/
|
|
8
|
-
export declare function redirectTo(url: string, params?: AnyQueryParams): void;
|
|
1
|
+
import { type AnyQueryParams } from "@koine/utils";
|
|
2
|
+
export declare let redirectTo: (url: string, params?: AnyQueryParams) => void;
|
|
9
3
|
export default redirectTo;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isBrowser, buildUrlQueryString } from '@koine/utils';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Redirect to url with params {optionally}, removes eventual trailing question
|
|
5
|
+
* marks from the given URL, it uses `location`
|
|
6
|
+
*
|
|
7
|
+
* @category location
|
|
8
|
+
*/let redirectTo=(t,o)=>{if(isBrowser){let r=buildUrlQueryString(o);location.href=t.replace(/\?+$/g,"")+r;}};
|
|
9
|
+
|
|
10
|
+
export { redirectTo as default, redirectTo };
|
package/storage.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./storage.cjs.js').default;
|
package/storage.cjs.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var storageClient = require('./storageClient.cjs.js');
|
|
6
|
+
require('@koine/utils');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Storage, for `localStorage` and `sessionStorage`
|
|
10
|
+
*
|
|
11
|
+
* @category storage
|
|
12
|
+
*/let storage={l:storageClient.storageClient(),s:storageClient.storageClient(!0)};
|
|
13
|
+
|
|
14
|
+
exports["default"] = storage;
|
|
15
|
+
exports.storage = storage;
|
package/storage.cjs.mjs
ADDED
package/storage.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Storage, for `localStorage` and `sessionStorage`
|
|
3
|
-
*/
|
|
4
|
-
export declare const storage: {
|
|
1
|
+
export declare let storage: {
|
|
5
2
|
l: {
|
|
6
3
|
get: <TKey extends string, TValue = any>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
|
|
7
4
|
set: <TKey_1 extends string, TValue_1 = any>(key: TKey_1, value?: TValue_1 | undefined, transform?: (value: any) => string) => void;
|
package/storage.esm.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { storageClient } from './storageClient.esm.js';
|
|
2
|
+
import '@koine/utils';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Storage, for `localStorage` and `sessionStorage`
|
|
6
|
+
*
|
|
7
|
+
* @category storage
|
|
8
|
+
*/let storage={l:storageClient(),s:storageClient(!0)};
|
|
9
|
+
|
|
10
|
+
export { storage as default, storage };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./storageClient.cjs.js').default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @category storage
|
|
9
|
+
*/let t={g:"getItem",s:"setItem",r:"removeItem"};/**
|
|
10
|
+
* Super minifiable `local/session Storage` client creator with SSR safety
|
|
11
|
+
*
|
|
12
|
+
* @category storage
|
|
13
|
+
*/let storageClient=s=>{let r=(o,r,l)=>utils.isBrowser?window[s?"sessionStorage":"localStorage"][t[o]](r,l):()=>{"development"===process.env.NODE_ENV&&console.warn(`[@koine/utils:storageClient]: ${s?"sessionStorage":"localStorage"} does not exists outside of browser.`);};return {get:(o,t,s)=>{let l=s??null;if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log(`[@koine/utils:storage] called 'get' outside of browser with default value '${JSON.stringify(s)}'.`),utils.isBrowser){let e=r("g",o);if(e){e=t?t(e):e;try{let o=JSON.parse(e);o&&(l=o);}catch(o){l=e;}}}// if (process.env["NODE_ENV"] === "development") {
|
|
14
|
+
// console.warn(
|
|
15
|
+
// `[@koine/utils:storage]: 'get' failed to parse stored value as JSON. Plain '${stored}' value is returned.`
|
|
16
|
+
// );
|
|
17
|
+
// }
|
|
18
|
+
return l},set:(t,s,l=e=>e)=>{if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log("[@koine/utils:storage] called 'set' outside of browser does not work."),utils.isBrowser)try{let e=l(utils.isString(s)?s:JSON.stringify(s));r("s",t,e);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'set' error.",e);}},remove:o=>{if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log("[@koine/utils:storage] called 'remove' outside of browser does not work."),utils.isBrowser)try{r("r",o);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'remove' error.",e);}},has:(o,t)=>{let s=t??!1;return "development"!==process.env.NODE_ENV||utils.isBrowser||console.log(`[@koine/utils:storage] called 'has' outside of browser with default value '${JSON.stringify(t)}'.`),utils.isBrowser&&(s=r("g",o)??!1),s}}};
|
|
19
|
+
|
|
20
|
+
exports["default"] = storageClient;
|
|
21
|
+
exports.storageClient = storageClient;
|
package/storageClient.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export type StorageClientConfig = Record<string, any>;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
export declare const storageClient: <TConfig extends StorageClientConfig = StorageClientConfig>(useSessionStorage?: boolean) => {
|
|
6
|
-
get: <TKey extends Extract<keyof TConfig, string>, TValue = TConfig[TKey]>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
|
|
2
|
+
export declare let storageClient: <TConfig extends StorageClientConfig = StorageClientConfig>(useSessionStorage?: boolean) => {
|
|
3
|
+
get: <TKey extends Extract<keyof TConfig, string>, TValue = TConfig[TKey]>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: null | TValue) => NonNullable<TValue> | null;
|
|
7
4
|
set: <TKey_1 extends Extract<keyof TConfig, string>, TValue_1 = TConfig[TKey_1]>(key: TKey_1, value?: TValue_1 | undefined, transform?: (value: any) => string) => void;
|
|
8
5
|
remove: <TKey_2 extends Extract<keyof TConfig, string>>(key: TKey_2) => void;
|
|
9
6
|
has: <TKey_3 extends Extract<keyof TConfig, string>, TValue_2 = TConfig[TKey_3]>(key: TKey_3, defaultValue?: TValue_2 | undefined) => boolean | NonNullable<TValue_2>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isBrowser, isString } from '@koine/utils';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @category storage
|
|
5
|
+
*/let t={g:"getItem",s:"setItem",r:"removeItem"};/**
|
|
6
|
+
* Super minifiable `local/session Storage` client creator with SSR safety
|
|
7
|
+
*
|
|
8
|
+
* @category storage
|
|
9
|
+
*/let storageClient=s=>{let r=(o,r,l)=>isBrowser?window[s?"sessionStorage":"localStorage"][t[o]](r,l):()=>{"development"===process.env.NODE_ENV&&console.warn(`[@koine/utils:storageClient]: ${s?"sessionStorage":"localStorage"} does not exists outside of browser.`);};return {get:(o,t,s)=>{let l=s??null;if("development"!==process.env.NODE_ENV||isBrowser||console.log(`[@koine/utils:storage] called 'get' outside of browser with default value '${JSON.stringify(s)}'.`),isBrowser){let e=r("g",o);if(e){e=t?t(e):e;try{let o=JSON.parse(e);o&&(l=o);}catch(o){l=e;}}}// if (process.env["NODE_ENV"] === "development") {
|
|
10
|
+
// console.warn(
|
|
11
|
+
// `[@koine/utils:storage]: 'get' failed to parse stored value as JSON. Plain '${stored}' value is returned.`
|
|
12
|
+
// );
|
|
13
|
+
// }
|
|
14
|
+
return l},set:(t,s,l=e=>e)=>{if("development"!==process.env.NODE_ENV||isBrowser||console.log("[@koine/utils:storage] called 'set' outside of browser does not work."),isBrowser)try{let e=l(isString(s)?s:JSON.stringify(s));r("s",t,e);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'set' error.",e);}},remove:o=>{if("development"!==process.env.NODE_ENV||isBrowser||console.log("[@koine/utils:storage] called 'remove' outside of browser does not work."),isBrowser)try{r("r",o);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'remove' error.",e);}},has:(o,t)=>{let s=t??!1;return "development"!==process.env.NODE_ENV||isBrowser||console.log(`[@koine/utils:storage] called 'has' outside of browser with default value '${JSON.stringify(t)}'.`),isBrowser&&(s=r("g",o)??!1),s}}};
|
|
15
|
+
|
|
16
|
+
export { storageClient as default, storageClient };
|
package/createStorage.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createStorage = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var decode_1 = tslib_1.__importDefault(require("@koine/utils/decode"));
|
|
6
|
-
var encode_1 = tslib_1.__importDefault(require("@koine/utils/encode"));
|
|
7
|
-
var isBrowser_1 = tslib_1.__importDefault(require("@koine/utils/isBrowser"));
|
|
8
|
-
var isNullOrUndefined_1 = tslib_1.__importDefault(require("@koine/utils/isNullOrUndefined"));
|
|
9
|
-
var noop_1 = tslib_1.__importDefault(require("@koine/utils/noop"));
|
|
10
|
-
var on_1 = tslib_1.__importDefault(require("@koine/dom/on"));
|
|
11
|
-
var storage_1 = tslib_1.__importDefault(require("./storage"));
|
|
12
|
-
/**
|
|
13
|
-
* Utility to create a storage instance to interact with `localStorage` using
|
|
14
|
-
* encrypted (encoded) key/values.
|
|
15
|
-
*/
|
|
16
|
-
var createStorage = function (config, useSessionStorage) {
|
|
17
|
-
var client = useSessionStorage ? storage_1.default.s : storage_1.default.l;
|
|
18
|
-
var keys = Object.keys(config).reduce(function (map, key) {
|
|
19
|
-
var _a;
|
|
20
|
-
return (tslib_1.__assign(tslib_1.__assign({}, map), (_a = {}, _a[key] = (0, encode_1.default)(key), _a)));
|
|
21
|
-
}, {});
|
|
22
|
-
return {
|
|
23
|
-
/**
|
|
24
|
-
* Get all storage value (it uses `localStorage.get()`).
|
|
25
|
-
*
|
|
26
|
-
* Unparseable values with `JSON.parse()` return their value as it is.
|
|
27
|
-
* On ssr or if the given `key` argument is not found `defaultValue` is
|
|
28
|
-
* returned, otherwise `null`.
|
|
29
|
-
*/
|
|
30
|
-
get: function (key, defaultValue) {
|
|
31
|
-
return client.get(keys[key], decode_1.default, defaultValue);
|
|
32
|
-
},
|
|
33
|
-
/**
|
|
34
|
-
* Get all storage values (it uses `localStorage.get()`).
|
|
35
|
-
*
|
|
36
|
-
* `undefined` and `null` values are not returned.
|
|
37
|
-
*/
|
|
38
|
-
getAll: function (defaultValues) {
|
|
39
|
-
if (!isBrowser_1.default) {
|
|
40
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
41
|
-
console.log("[@koine/utils:createStorage] attempt to use 'getAll' outside of browser.");
|
|
42
|
-
}
|
|
43
|
-
return {};
|
|
44
|
-
}
|
|
45
|
-
var all = {};
|
|
46
|
-
for (var key in keys) {
|
|
47
|
-
var value = this.get(key);
|
|
48
|
-
var defaultValue = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[key];
|
|
49
|
-
if (!(0, isNullOrUndefined_1.default)(value)) {
|
|
50
|
-
all[key] = value;
|
|
51
|
-
}
|
|
52
|
-
else if (defaultValue) {
|
|
53
|
-
all[key] = defaultValue;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return all;
|
|
57
|
-
},
|
|
58
|
-
/**
|
|
59
|
-
* Set a storage value (it uses `localStorage.set()`).
|
|
60
|
-
*
|
|
61
|
-
* Non-string values are stringified with `JSON.stringify()`
|
|
62
|
-
*/
|
|
63
|
-
set: function (key, value) {
|
|
64
|
-
client.set(keys[key], value, encode_1.default);
|
|
65
|
-
},
|
|
66
|
-
/**
|
|
67
|
-
* Set all given storage values (it uses `localStorage.set()`).
|
|
68
|
-
*
|
|
69
|
-
* Non-string values are stringified with `JSON.stringify()`, `undefined`
|
|
70
|
-
* and `null` values are removed from the storage
|
|
71
|
-
*/
|
|
72
|
-
setMany: function (newValues) {
|
|
73
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
74
|
-
if (!isBrowser_1.default) {
|
|
75
|
-
console.log("[@koine/utils:createStorage] attempt to use 'setMany' outside of browser.");
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (isBrowser_1.default) {
|
|
79
|
-
for (var key in newValues) {
|
|
80
|
-
var value = newValues[key];
|
|
81
|
-
if (!(0, isNullOrUndefined_1.default)(value)) {
|
|
82
|
-
this.set(key, value);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
this.remove(key);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
/**
|
|
91
|
-
* Check if a storage value is _truthy_ (it uses `localStorage.get()`).
|
|
92
|
-
*/
|
|
93
|
-
has: function (key) {
|
|
94
|
-
return client.has(keys[key]);
|
|
95
|
-
},
|
|
96
|
-
/**
|
|
97
|
-
* Remove a storage value (it uses `localStorage.remove()`).
|
|
98
|
-
*/
|
|
99
|
-
remove: function (key) {
|
|
100
|
-
client.remove(keys[key]);
|
|
101
|
-
},
|
|
102
|
-
/**
|
|
103
|
-
* Clear all storage values (it uses `localStorage.remove()`).
|
|
104
|
-
*/
|
|
105
|
-
clear: function () {
|
|
106
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
107
|
-
if (!isBrowser_1.default) {
|
|
108
|
-
console.log("[@koine/utils:createStorage] attempt to use 'clear' outside of browser.");
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (isBrowser_1.default) {
|
|
112
|
-
for (var key in keys) {
|
|
113
|
-
client.remove(keys[key]);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
/**
|
|
118
|
-
* Watch a storage value changes, this needs to be executed only in browser
|
|
119
|
-
* context (it uses `window.addEventListener("storage")`).
|
|
120
|
-
*
|
|
121
|
-
* Inspiration from [Multi Tab Logout in React — Redux](https://medium.com/front-end-weekly/multi-tab-logout-in-react-redux-4715f071c7fa)
|
|
122
|
-
*/
|
|
123
|
-
watch: function (keyToWatch, onRemoved, onAdded) {
|
|
124
|
-
if (!isBrowser_1.default) {
|
|
125
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
126
|
-
console.log("[@koine/utils:createStorage] attempt to use 'watch' outside of browser.");
|
|
127
|
-
}
|
|
128
|
-
return noop_1.default;
|
|
129
|
-
}
|
|
130
|
-
var handler = function (event) {
|
|
131
|
-
var key = event.key, oldValue = event.oldValue, newValue = event.newValue;
|
|
132
|
-
if (key === keys[keyToWatch]) {
|
|
133
|
-
if (oldValue && !newValue) {
|
|
134
|
-
onRemoved === null || onRemoved === void 0 ? void 0 : onRemoved();
|
|
135
|
-
}
|
|
136
|
-
else if (!oldValue && newValue) {
|
|
137
|
-
onAdded === null || onAdded === void 0 ? void 0 : onAdded();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
var listener = (0, on_1.default)(window, "storage", handler);
|
|
142
|
-
return listener;
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
exports.createStorage = createStorage;
|
|
147
|
-
exports.default = exports.createStorage;
|
package/createStorage.mjs
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
import decode from "@koine/utils/decode";
|
|
3
|
-
import encode from "@koine/utils/encode";
|
|
4
|
-
import isBrowser from "@koine/utils/isBrowser";
|
|
5
|
-
import isNullOrUndefined from "@koine/utils/isNullOrUndefined";
|
|
6
|
-
import noop from "@koine/utils/noop";
|
|
7
|
-
import on from "@koine/dom/on";
|
|
8
|
-
import storage from "./storage";
|
|
9
|
-
/**
|
|
10
|
-
* Utility to create a storage instance to interact with `localStorage` using
|
|
11
|
-
* encrypted (encoded) key/values.
|
|
12
|
-
*/
|
|
13
|
-
export var createStorage = function (config, useSessionStorage) {
|
|
14
|
-
var client = useSessionStorage ? storage.s : storage.l;
|
|
15
|
-
var keys = Object.keys(config).reduce(function (map, key) {
|
|
16
|
-
var _a;
|
|
17
|
-
return (__assign(__assign({}, map), (_a = {}, _a[key] = encode(key), _a)));
|
|
18
|
-
}, {});
|
|
19
|
-
return {
|
|
20
|
-
/**
|
|
21
|
-
* Get all storage value (it uses `localStorage.get()`).
|
|
22
|
-
*
|
|
23
|
-
* Unparseable values with `JSON.parse()` return their value as it is.
|
|
24
|
-
* On ssr or if the given `key` argument is not found `defaultValue` is
|
|
25
|
-
* returned, otherwise `null`.
|
|
26
|
-
*/
|
|
27
|
-
get: function (key, defaultValue) {
|
|
28
|
-
return client.get(keys[key], decode, defaultValue);
|
|
29
|
-
},
|
|
30
|
-
/**
|
|
31
|
-
* Get all storage values (it uses `localStorage.get()`).
|
|
32
|
-
*
|
|
33
|
-
* `undefined` and `null` values are not returned.
|
|
34
|
-
*/
|
|
35
|
-
getAll: function (defaultValues) {
|
|
36
|
-
if (!isBrowser) {
|
|
37
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
38
|
-
console.log("[@koine/utils:createStorage] attempt to use 'getAll' outside of browser.");
|
|
39
|
-
}
|
|
40
|
-
return {};
|
|
41
|
-
}
|
|
42
|
-
var all = {};
|
|
43
|
-
for (var key in keys) {
|
|
44
|
-
var value = this.get(key);
|
|
45
|
-
var defaultValue = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[key];
|
|
46
|
-
if (!isNullOrUndefined(value)) {
|
|
47
|
-
all[key] = value;
|
|
48
|
-
}
|
|
49
|
-
else if (defaultValue) {
|
|
50
|
-
all[key] = defaultValue;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return all;
|
|
54
|
-
},
|
|
55
|
-
/**
|
|
56
|
-
* Set a storage value (it uses `localStorage.set()`).
|
|
57
|
-
*
|
|
58
|
-
* Non-string values are stringified with `JSON.stringify()`
|
|
59
|
-
*/
|
|
60
|
-
set: function (key, value) {
|
|
61
|
-
client.set(keys[key], value, encode);
|
|
62
|
-
},
|
|
63
|
-
/**
|
|
64
|
-
* Set all given storage values (it uses `localStorage.set()`).
|
|
65
|
-
*
|
|
66
|
-
* Non-string values are stringified with `JSON.stringify()`, `undefined`
|
|
67
|
-
* and `null` values are removed from the storage
|
|
68
|
-
*/
|
|
69
|
-
setMany: function (newValues) {
|
|
70
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
71
|
-
if (!isBrowser) {
|
|
72
|
-
console.log("[@koine/utils:createStorage] attempt to use 'setMany' outside of browser.");
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (isBrowser) {
|
|
76
|
-
for (var key in newValues) {
|
|
77
|
-
var value = newValues[key];
|
|
78
|
-
if (!isNullOrUndefined(value)) {
|
|
79
|
-
this.set(key, value);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.remove(key);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
/**
|
|
88
|
-
* Check if a storage value is _truthy_ (it uses `localStorage.get()`).
|
|
89
|
-
*/
|
|
90
|
-
has: function (key) {
|
|
91
|
-
return client.has(keys[key]);
|
|
92
|
-
},
|
|
93
|
-
/**
|
|
94
|
-
* Remove a storage value (it uses `localStorage.remove()`).
|
|
95
|
-
*/
|
|
96
|
-
remove: function (key) {
|
|
97
|
-
client.remove(keys[key]);
|
|
98
|
-
},
|
|
99
|
-
/**
|
|
100
|
-
* Clear all storage values (it uses `localStorage.remove()`).
|
|
101
|
-
*/
|
|
102
|
-
clear: function () {
|
|
103
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
104
|
-
if (!isBrowser) {
|
|
105
|
-
console.log("[@koine/utils:createStorage] attempt to use 'clear' outside of browser.");
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (isBrowser) {
|
|
109
|
-
for (var key in keys) {
|
|
110
|
-
client.remove(keys[key]);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
/**
|
|
115
|
-
* Watch a storage value changes, this needs to be executed only in browser
|
|
116
|
-
* context (it uses `window.addEventListener("storage")`).
|
|
117
|
-
*
|
|
118
|
-
* Inspiration from [Multi Tab Logout in React — Redux](https://medium.com/front-end-weekly/multi-tab-logout-in-react-redux-4715f071c7fa)
|
|
119
|
-
*/
|
|
120
|
-
watch: function (keyToWatch, onRemoved, onAdded) {
|
|
121
|
-
if (!isBrowser) {
|
|
122
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
123
|
-
console.log("[@koine/utils:createStorage] attempt to use 'watch' outside of browser.");
|
|
124
|
-
}
|
|
125
|
-
return noop;
|
|
126
|
-
}
|
|
127
|
-
var handler = function (event) {
|
|
128
|
-
var key = event.key, oldValue = event.oldValue, newValue = event.newValue;
|
|
129
|
-
if (key === keys[keyToWatch]) {
|
|
130
|
-
if (oldValue && !newValue) {
|
|
131
|
-
onRemoved === null || onRemoved === void 0 ? void 0 : onRemoved();
|
|
132
|
-
}
|
|
133
|
-
else if (!oldValue && newValue) {
|
|
134
|
-
onAdded === null || onAdded === void 0 ? void 0 : onAdded();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
var listener = on(window, "storage", handler);
|
|
139
|
-
return listener;
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
export default createStorage;
|
package/getZonedDate.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getZonedDate = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var utcToZonedTime_1 = tslib_1.__importDefault(require("date-fns-tz/utcToZonedTime"));
|
|
6
|
-
var isBrowser_1 = tslib_1.__importDefault(require("@koine/utils/isBrowser"));
|
|
7
|
-
/**
|
|
8
|
-
* It returns a `Date` object from a date `string` adjusted on the user timeZone,
|
|
9
|
-
* if a timeZone is not provided we try getting it from the `Intl` browwser native
|
|
10
|
-
* API. It gracefully falls back returning a _non-timezone-based_ `Date`.
|
|
11
|
-
*
|
|
12
|
-
* @category date
|
|
13
|
-
*
|
|
14
|
-
* @resources
|
|
15
|
-
* - to get the timeZone client side see [this article](https://attacomsian.com/blog/javascript-current-timezone)
|
|
16
|
-
* - for converting the date based on the time zone [date-fns docs](https://date-fns.org/v2.27.0/docs/Time-Zones) and [date-fns-tz docs](https://github.com/marnusw/date-fns-tz)
|
|
17
|
-
*
|
|
18
|
-
* @param dateString A parseable date as string, `Z` is automatically suffixed if not present to correctly get time zone based time from a UTC date.
|
|
19
|
-
* @param timeZone Optionally pass a timeZone (e.g. from user preference or from the server), it falls back trying to read it from the `Intl` browwser native API.
|
|
20
|
-
*/
|
|
21
|
-
function getZonedDate(dateString, timeZone) {
|
|
22
|
-
if (dateString === void 0) { dateString = ""; }
|
|
23
|
-
if (!dateString.endsWith("Z"))
|
|
24
|
-
dateString += "Z";
|
|
25
|
-
if (!timeZone && isBrowser_1.default) {
|
|
26
|
-
try {
|
|
27
|
-
timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
31
|
-
console.warn("[@koine/utils:getZonedDate] failed reading timeZone, error", e);
|
|
32
|
-
}
|
|
33
|
-
// no need to do anything here, it just means `Intl` failed, probably
|
|
34
|
-
// because the browser does not support it
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return timeZone
|
|
38
|
-
? (0, utcToZonedTime_1.default)(new Date(dateString), timeZone)
|
|
39
|
-
: new Date(dateString);
|
|
40
|
-
}
|
|
41
|
-
exports.getZonedDate = getZonedDate;
|
|
42
|
-
exports.default = getZonedDate;
|
package/getZonedDate.mjs
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import utcToZonedTime from "date-fns-tz/utcToZonedTime";
|
|
2
|
-
import isBrowser from "@koine/utils/isBrowser";
|
|
3
|
-
/**
|
|
4
|
-
* It returns a `Date` object from a date `string` adjusted on the user timeZone,
|
|
5
|
-
* if a timeZone is not provided we try getting it from the `Intl` browwser native
|
|
6
|
-
* API. It gracefully falls back returning a _non-timezone-based_ `Date`.
|
|
7
|
-
*
|
|
8
|
-
* @category date
|
|
9
|
-
*
|
|
10
|
-
* @resources
|
|
11
|
-
* - to get the timeZone client side see [this article](https://attacomsian.com/blog/javascript-current-timezone)
|
|
12
|
-
* - for converting the date based on the time zone [date-fns docs](https://date-fns.org/v2.27.0/docs/Time-Zones) and [date-fns-tz docs](https://github.com/marnusw/date-fns-tz)
|
|
13
|
-
*
|
|
14
|
-
* @param dateString A parseable date as string, `Z` is automatically suffixed if not present to correctly get time zone based time from a UTC date.
|
|
15
|
-
* @param timeZone Optionally pass a timeZone (e.g. from user preference or from the server), it falls back trying to read it from the `Intl` browwser native API.
|
|
16
|
-
*/
|
|
17
|
-
export function getZonedDate(dateString, timeZone) {
|
|
18
|
-
if (dateString === void 0) { dateString = ""; }
|
|
19
|
-
if (!dateString.endsWith("Z"))
|
|
20
|
-
dateString += "Z";
|
|
21
|
-
if (!timeZone && isBrowser) {
|
|
22
|
-
try {
|
|
23
|
-
timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
24
|
-
}
|
|
25
|
-
catch (e) {
|
|
26
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
27
|
-
console.warn("[@koine/utils:getZonedDate] failed reading timeZone, error", e);
|
|
28
|
-
}
|
|
29
|
-
// no need to do anything here, it just means `Intl` failed, probably
|
|
30
|
-
// because the browser does not support it
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return timeZone
|
|
34
|
-
? utcToZonedTime(new Date(dateString), timeZone)
|
|
35
|
-
: new Date(dateString);
|
|
36
|
-
}
|
|
37
|
-
export default getZonedDate;
|
package/gtagPageview.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.gtagPageview = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var isUndefined_1 = tslib_1.__importDefault(require("@koine/utils/isUndefined"));
|
|
6
|
-
/**
|
|
7
|
-
* @category analytics-google
|
|
8
|
-
*/
|
|
9
|
-
var gtagPageview = function () {
|
|
10
|
-
var args = [];
|
|
11
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
12
|
-
args[_i] = arguments[_i];
|
|
13
|
-
}
|
|
14
|
-
if (!(0, isUndefined_1.default)(window) && !(0, isUndefined_1.default)(window.gtag)) {
|
|
15
|
-
window.gtag("event", "page_view", {
|
|
16
|
-
page_path: args[0] || location.pathname,
|
|
17
|
-
page_title: args[1] || document.title,
|
|
18
|
-
page_location: args[2] || location.href,
|
|
19
|
-
// send_to: '<GA_MEASUREMENT_ID>'
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
exports.gtagPageview = gtagPageview;
|
|
24
|
-
exports.default = exports.gtagPageview;
|
|
25
|
-
// export type GtmEventArgs = [
|
|
26
|
-
// eventCategory?: string,
|
|
27
|
-
// eventAction?: string,
|
|
28
|
-
// eventLabel?: string,
|
|
29
|
-
// eventValue?: string
|
|
30
|
-
// ];
|
|
31
|
-
// export const event = (...args: GtmEventArgs) => {
|
|
32
|
-
// if (!isUndefined(window) && !isUndefined(window.gtag)) {
|
|
33
|
-
// window.gtag("send", "event", ...args);
|
|
34
|
-
// }
|
|
35
|
-
// };
|
package/gtagPageview.mjs
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import isUndefined from "@koine/utils/isUndefined";
|
|
2
|
-
/**
|
|
3
|
-
* @category analytics-google
|
|
4
|
-
*/
|
|
5
|
-
export var gtagPageview = function () {
|
|
6
|
-
var args = [];
|
|
7
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
8
|
-
args[_i] = arguments[_i];
|
|
9
|
-
}
|
|
10
|
-
if (!isUndefined(window) && !isUndefined(window.gtag)) {
|
|
11
|
-
window.gtag("event", "page_view", {
|
|
12
|
-
page_path: args[0] || location.pathname,
|
|
13
|
-
page_title: args[1] || document.title,
|
|
14
|
-
page_location: args[2] || location.href,
|
|
15
|
-
// send_to: '<GA_MEASUREMENT_ID>'
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
export default gtagPageview;
|
|
20
|
-
// export type GtmEventArgs = [
|
|
21
|
-
// eventCategory?: string,
|
|
22
|
-
// eventAction?: string,
|
|
23
|
-
// eventLabel?: string,
|
|
24
|
-
// eventValue?: string
|
|
25
|
-
// ];
|
|
26
|
-
// export const event = (...args: GtmEventArgs) => {
|
|
27
|
-
// if (!isUndefined(window) && !isUndefined(window.gtag)) {
|
|
28
|
-
// window.gtag("send", "event", ...args);
|
|
29
|
-
// }
|
|
30
|
-
// };
|
package/index.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.storageClient = exports.storage = exports.redirectTo = exports.navigateWithoutUrlParam = exports.navigateToUrl = exports.navigateToParams = exports.navigateToMergedParams = exports.navigateToMergedHashParams = exports.navigateToHashParams = exports.navigateToHash = exports.isMobile = exports.isIE = exports.gtagPageview = exports.getZonedDate = exports.createStorage = void 0;
|
|
4
|
-
var createStorage_1 = require("./createStorage");
|
|
5
|
-
Object.defineProperty(exports, "createStorage", { enumerable: true, get: function () { return createStorage_1.createStorage; } });
|
|
6
|
-
var getZonedDate_1 = require("./getZonedDate");
|
|
7
|
-
Object.defineProperty(exports, "getZonedDate", { enumerable: true, get: function () { return getZonedDate_1.getZonedDate; } });
|
|
8
|
-
var gtagPageview_1 = require("./gtagPageview");
|
|
9
|
-
Object.defineProperty(exports, "gtagPageview", { enumerable: true, get: function () { return gtagPageview_1.gtagPageview; } });
|
|
10
|
-
var isIE_1 = require("./isIE");
|
|
11
|
-
Object.defineProperty(exports, "isIE", { enumerable: true, get: function () { return isIE_1.isIE; } });
|
|
12
|
-
var isMobile_1 = require("./isMobile");
|
|
13
|
-
Object.defineProperty(exports, "isMobile", { enumerable: true, get: function () { return isMobile_1.isMobile; } });
|
|
14
|
-
var navigateToHash_1 = require("./navigateToHash");
|
|
15
|
-
Object.defineProperty(exports, "navigateToHash", { enumerable: true, get: function () { return navigateToHash_1.navigateToHash; } });
|
|
16
|
-
var navigateToHashParams_1 = require("./navigateToHashParams");
|
|
17
|
-
Object.defineProperty(exports, "navigateToHashParams", { enumerable: true, get: function () { return navigateToHashParams_1.navigateToHashParams; } });
|
|
18
|
-
var navigateToMergedHashParams_1 = require("./navigateToMergedHashParams");
|
|
19
|
-
Object.defineProperty(exports, "navigateToMergedHashParams", { enumerable: true, get: function () { return navigateToMergedHashParams_1.navigateToMergedHashParams; } });
|
|
20
|
-
var navigateToMergedParams_1 = require("./navigateToMergedParams");
|
|
21
|
-
Object.defineProperty(exports, "navigateToMergedParams", { enumerable: true, get: function () { return navigateToMergedParams_1.navigateToMergedParams; } });
|
|
22
|
-
var navigateToParams_1 = require("./navigateToParams");
|
|
23
|
-
Object.defineProperty(exports, "navigateToParams", { enumerable: true, get: function () { return navigateToParams_1.navigateToParams; } });
|
|
24
|
-
var navigateToUrl_1 = require("./navigateToUrl");
|
|
25
|
-
Object.defineProperty(exports, "navigateToUrl", { enumerable: true, get: function () { return navigateToUrl_1.navigateToUrl; } });
|
|
26
|
-
var navigateWithoutUrlParam_1 = require("./navigateWithoutUrlParam");
|
|
27
|
-
Object.defineProperty(exports, "navigateWithoutUrlParam", { enumerable: true, get: function () { return navigateWithoutUrlParam_1.navigateWithoutUrlParam; } });
|
|
28
|
-
var redirectTo_1 = require("./redirectTo");
|
|
29
|
-
Object.defineProperty(exports, "redirectTo", { enumerable: true, get: function () { return redirectTo_1.redirectTo; } });
|
|
30
|
-
var storage_1 = require("./storage");
|
|
31
|
-
Object.defineProperty(exports, "storage", { enumerable: true, get: function () { return storage_1.storage; } });
|
|
32
|
-
var storageClient_1 = require("./storageClient");
|
|
33
|
-
Object.defineProperty(exports, "storageClient", { enumerable: true, get: function () { return storageClient_1.storageClient; } });
|
package/index.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export { createStorage } from "./createStorage";
|
|
2
|
-
export { getZonedDate } from "./getZonedDate";
|
|
3
|
-
export { gtagPageview } from "./gtagPageview";
|
|
4
|
-
export { isIE } from "./isIE";
|
|
5
|
-
export { isMobile } from "./isMobile";
|
|
6
|
-
export { navigateToHash } from "./navigateToHash";
|
|
7
|
-
export { navigateToHashParams } from "./navigateToHashParams";
|
|
8
|
-
export { navigateToMergedHashParams } from "./navigateToMergedHashParams";
|
|
9
|
-
export { navigateToMergedParams } from "./navigateToMergedParams";
|
|
10
|
-
export { navigateToParams } from "./navigateToParams";
|
|
11
|
-
export { navigateToUrl } from "./navigateToUrl";
|
|
12
|
-
export { navigateWithoutUrlParam } from "./navigateWithoutUrlParam";
|
|
13
|
-
export { redirectTo } from "./redirectTo";
|
|
14
|
-
export { storage } from "./storage";
|
|
15
|
-
export { storageClient } from "./storageClient";
|