@koine/browser 2.0.0-beta.38 → 2.0.0-beta.39

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 ADDED
@@ -0,0 +1 @@
1
+ # @koine/i18n
@@ -1,5 +1,5 @@
1
1
  export type CreateStorageConfig = Record<string, any>;
2
- export declare const createStorage: <T extends CreateStorageConfig>(config: Partial<T>, useSessionStorage?: boolean) => {
2
+ export declare let createStorage: <T extends CreateStorageConfig>(config: Partial<T>, useSessionStorage?: boolean) => {
3
3
  get<TKey extends Extract<keyof T, string>>(key: TKey, defaultValue?: T[TKey] | null | undefined): T[TKey] | null;
4
4
  getAll(defaultValues?: Partial<T> | undefined): T;
5
5
  set<TKey_1 extends Extract<keyof T, string>>(key: TKey_1, value?: T[TKey_1] | undefined): void;
@@ -9,4 +9,3 @@ export declare const createStorage: <T extends CreateStorageConfig>(config: Part
9
9
  clear(): void;
10
10
  watch: <TKey_4 extends keyof T>(keyToWatch: TKey_4, onRemoved?: () => void, onAdded?: () => void) => () => void | undefined;
11
11
  };
12
- export default createStorage;
package/getZonedDate.d.ts CHANGED
@@ -1,2 +1 @@
1
- export declare function getZonedDate(dateString?: string, timeZone?: string): Date;
2
- export default getZonedDate;
1
+ export declare let getZonedDate: (dateString?: string, timeZone?: string) => Date;
package/gtagPageview.d.ts CHANGED
@@ -3,5 +3,4 @@ export type GtmPageviewArgs = [
3
3
  page_title?: string,
4
4
  page_location?: string
5
5
  ];
6
- export declare const gtagPageview: (page_path?: string | undefined, page_title?: string | undefined, page_location?: string | undefined) => void;
7
- export default gtagPageview;
6
+ export declare let gtagPageview: (page_path?: string | undefined, page_title?: string | undefined, page_location?: string | undefined) => void;
package/index.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./index";
@@ -0,0 +1 @@
1
+ exports._default = require('./index.cjs.js').default;
package/index.cjs.js ADDED
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+ var dom = require('@koine/dom');
7
+
8
+ let t$1={g:"getItem",s:"setItem",r:"removeItem"};let storageClient=s=>{let r=(o,r,l)=>utils.isBrowser?window[s?"sessionStorage":"localStorage"][t$1[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;}}}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}}};
9
+
10
+ let storage={l:storageClient(),s:storageClient(!0)};
11
+
12
+ let createStorage=(n,a)=>{let c=a?storage.s:storage.l,m=Object.keys(n).reduce((e,o)=>({...e,[o]:utils.encode(o)}),{});return {get:(t,o)=>c.get(m[t],utils.decode,o),getAll(e){if(!utils.isBrowser)return "development"===process.env.NODE_ENV&&console.log("[@koine/utils:createStorage] attempt to use 'getAll' outside of browser."),{};let t={};for(let o in m){let s=this.get(o),l=e?.[o];utils.isNullOrUndefined(s)?l&&(t[o]=l):t[o]=s;}return t},set(e,o){c.set(m[e],o,utils.encode);},setMany(e){if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log("[@koine/utils:createStorage] attempt to use 'setMany' outside of browser."),utils.isBrowser)for(let t in e){let o=e[t];utils.isNullOrUndefined(o)?this.remove(t):this.set(t,o);}},has:e=>c.has(m[e]),remove(e){c.remove(m[e]);},clear(){if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log("[@koine/utils:createStorage] attempt to use 'clear' outside of browser."),utils.isBrowser)for(let e in m)c.remove(m[e]);},watch:(e,t,r)=>utils.isBrowser?dom.on(window,"storage",o=>{let{key:s,oldValue:l,newValue:i}=o;s===m[e]&&(l&&!i?t?.():!l&&i&&r?.());}):("development"===process.env.NODE_ENV&&console.log("[@koine/utils:createStorage] attempt to use 'watch' outside of browser."),utils.noop)}};
13
+
14
+ let t=(e,t)=>e;let getZonedDate=(o="",n)=>{if(o.endsWith("Z")||(o+="Z"),!n&&utils.isBrowser)try{n=Intl.DateTimeFormat().resolvedOptions().timeZone;}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/browser:getZonedDate] failed reading timeZone, error",e);}return n?t(new Date(o)):new Date(o)};
15
+
16
+ let gtagPageview=(...e)=>{utils.isUndefined(window)||utils.isUndefined(window.gtag)||window.gtag("event","page_view",{page_path:e[0]||location.pathname,page_title:e[1]||document.title,page_location:e[2]||location.href});};
17
+
18
+ let isIE=(i=!0)=>{if(utils.isServer)return i;let r=window.navigator.userAgent;return !!(r.indexOf("MSIE ")>0||r.indexOf("Trident/")>0)};
19
+
20
+ let isMobile=(e=!0)=>utils.isServer?e:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);
21
+
22
+ let o=(t,e,o)=>function(...r){if(o)return e(),t.apply(this,r);let i=t.apply(this,r);return e(),i},r=utils.isBrowser?location.search:"",i=()=>{let t=location.search;if(t!==r)for(let e of history.__.h.values())e(r,t);r=t;};let listenUrlSearch=t=>(history.__||(history.pushState=o(history.pushState,i),history.replaceState=o(history.replaceState,i),dom.on(window,"popstate",i),history.__={h:new Set}),history.__.h.has(t)||history.__.h.add(t),()=>{history.__.h.delete(t);});
23
+
24
+ let listenUrlSearchParams=(r,a)=>listenUrlSearch((e,t)=>{let l=new URLSearchParams(e),m=new URLSearchParams(t).get(r);l.get(r)!==m&&a(m);});
25
+
26
+ let navigateToUrl=(t="",e)=>{t&&history[e?"replaceState":"pushState"](history.state,"",t);};
27
+
28
+ let navigateToHash=(t="")=>{let{pathname:a,search:e}=location;navigateToUrl(a+(e?"?"+e:"")+(t?"#"+t:""),!0);};
29
+
30
+ let navigateToHashParams=(a={},e="")=>{let i=!e,r="#/"+utils.getUrlHashPathname(e=e||location.hash)+("string"==typeof a?a:utils.buildUrlQueryString(a));return i&&(location.hash=r),r};
31
+
32
+ let navigateToMergedHashParams=(e={},t="")=>navigateToHashParams(utils.mergeUrlQueryParams(utils.getUrlHashParams(t),e),t);
33
+
34
+ let navigateToParams=(a={},e)=>{let i="string"==typeof a?a:utils.buildUrlQueryString(a);return utils.isBrowser&&navigateToUrl(location.pathname+i,e),i};
35
+
36
+ let navigateToMergedParams=(e={},t)=>navigateToParams(utils.mergeUrlQueryParams(utils.getUrlQueryParams(),e),t);
37
+
38
+ let navigateWithoutUrlParam=(o,a)=>{let e={},i=utils.getUrlQueryParams();for(let t in i)t!==o&&(e[t]=i[t]);return navigateToParams(e,a)};
39
+
40
+ let redirectTo=(r,t)=>{if(utils.isBrowser){let o=utils.buildUrlQueryString(t);location.href=r.replace(/\?+$/g,"")+o;}};
41
+
42
+ exports.createStorage = createStorage;
43
+ exports.getZonedDate = getZonedDate;
44
+ exports.gtagPageview = gtagPageview;
45
+ exports.isIE = isIE;
46
+ exports.isMobile = isMobile;
47
+ exports.listenUrlSearch = listenUrlSearch;
48
+ exports.listenUrlSearchParams = listenUrlSearchParams;
49
+ exports.navigateToHash = navigateToHash;
50
+ exports.navigateToHashParams = navigateToHashParams;
51
+ exports.navigateToMergedHashParams = navigateToMergedHashParams;
52
+ exports.navigateToMergedParams = navigateToMergedParams;
53
+ exports.navigateToParams = navigateToParams;
54
+ exports.navigateToUrl = navigateToUrl;
55
+ exports.navigateWithoutUrlParam = navigateWithoutUrlParam;
56
+ exports.redirectTo = redirectTo;
57
+ exports.storage = storage;
58
+ exports.storageClient = storageClient;
package/index.cjs.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from './index.cjs.js';
2
+ export { _default as default } from './index.cjs.default.js';
package/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- export { createStorage, type CreateStorageConfig } from "./createStorage.js";
2
- export { getZonedDate } from "./getZonedDate.js";
3
- export { gtagPageview, type GtmPageviewArgs } from "./gtagPageview.js";
4
- export { isIE } from "./isIE.js";
5
- export { isMobile } from "./isMobile.js";
6
- export { listenUrlSearch } from "./listenUrlSearch.js";
7
- export { listenUrlSearchParams } from "./listenUrlSearchParams.js";
8
- export { navigateToHash } from "./navigateToHash.js";
9
- export { navigateToHashParams } from "./navigateToHashParams.js";
10
- export { navigateToMergedHashParams } from "./navigateToMergedHashParams.js";
11
- export { navigateToMergedParams } from "./navigateToMergedParams.js";
12
- export { navigateToParams } from "./navigateToParams.js";
13
- export { navigateToUrl } from "./navigateToUrl.js";
14
- export { navigateWithoutUrlParam } from "./navigateWithoutUrlParam.js";
15
- export { redirectTo } from "./redirectTo.js";
16
- export { storage } from "./storage.js";
17
- export { storageClient, type StorageClientConfig } from "./storageClient.js";
1
+ export { createStorage, type CreateStorageConfig } from "./createStorage";
2
+ export { getZonedDate } from "./getZonedDate";
3
+ export { gtagPageview, type GtmPageviewArgs } from "./gtagPageview";
4
+ export { isIE } from "./isIE";
5
+ export { isMobile } from "./isMobile";
6
+ export { listenUrlSearch } from "./listenUrlSearch";
7
+ export { listenUrlSearchParams } from "./listenUrlSearchParams";
8
+ export { navigateToHash } from "./navigateToHash";
9
+ export { navigateToHashParams } from "./navigateToHashParams";
10
+ export { navigateToMergedHashParams } from "./navigateToMergedHashParams";
11
+ export { navigateToMergedParams } from "./navigateToMergedParams";
12
+ export { navigateToParams } from "./navigateToParams";
13
+ export { navigateToUrl } from "./navigateToUrl";
14
+ export { navigateWithoutUrlParam } from "./navigateWithoutUrlParam";
15
+ export { redirectTo } from "./redirectTo";
16
+ export { storage } from "./storage";
17
+ export { storageClient, type StorageClientConfig } from "./storageClient";
package/index.esm.js ADDED
@@ -0,0 +1,38 @@
1
+ import { isBrowser, isString, encode, decode, isNullOrUndefined, noop, isUndefined, isServer, getUrlHashPathname, buildUrlQueryString, mergeUrlQueryParams, getUrlHashParams, getUrlQueryParams } from '@koine/utils';
2
+ import { on } from '@koine/dom';
3
+
4
+ let t$1={g:"getItem",s:"setItem",r:"removeItem"};let storageClient=s=>{let r=(o,r,l)=>isBrowser?window[s?"sessionStorage":"localStorage"][t$1[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;}}}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}}};
5
+
6
+ let storage={l:storageClient(),s:storageClient(!0)};
7
+
8
+ let createStorage=(n,a)=>{let c=a?storage.s:storage.l,m=Object.keys(n).reduce((e,o)=>({...e,[o]:encode(o)}),{});return {get:(t,o)=>c.get(m[t],decode,o),getAll(e){if(!isBrowser)return "development"===process.env.NODE_ENV&&console.log("[@koine/utils:createStorage] attempt to use 'getAll' outside of browser."),{};let t={};for(let o in m){let s=this.get(o),l=e?.[o];isNullOrUndefined(s)?l&&(t[o]=l):t[o]=s;}return t},set(e,o){c.set(m[e],o,encode);},setMany(e){if("development"!==process.env.NODE_ENV||isBrowser||console.log("[@koine/utils:createStorage] attempt to use 'setMany' outside of browser."),isBrowser)for(let t in e){let o=e[t];isNullOrUndefined(o)?this.remove(t):this.set(t,o);}},has:e=>c.has(m[e]),remove(e){c.remove(m[e]);},clear(){if("development"!==process.env.NODE_ENV||isBrowser||console.log("[@koine/utils:createStorage] attempt to use 'clear' outside of browser."),isBrowser)for(let e in m)c.remove(m[e]);},watch:(e,t,r)=>isBrowser?on(window,"storage",o=>{let{key:s,oldValue:l,newValue:i}=o;s===m[e]&&(l&&!i?t?.():!l&&i&&r?.());}):("development"===process.env.NODE_ENV&&console.log("[@koine/utils:createStorage] attempt to use 'watch' outside of browser."),noop)}};
9
+
10
+ let t=(e,t)=>e;let getZonedDate=(o="",n)=>{if(o.endsWith("Z")||(o+="Z"),!n&&isBrowser)try{n=Intl.DateTimeFormat().resolvedOptions().timeZone;}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/browser:getZonedDate] failed reading timeZone, error",e);}return n?t(new Date(o)):new Date(o)};
11
+
12
+ let gtagPageview=(...e)=>{isUndefined(window)||isUndefined(window.gtag)||window.gtag("event","page_view",{page_path:e[0]||location.pathname,page_title:e[1]||document.title,page_location:e[2]||location.href});};
13
+
14
+ let isIE=(i=!0)=>{if(isServer)return i;let r=window.navigator.userAgent;return !!(r.indexOf("MSIE ")>0||r.indexOf("Trident/")>0)};
15
+
16
+ let isMobile=(e=!0)=>isServer?e:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);
17
+
18
+ let o=(t,e,o)=>function(...r){if(o)return e(),t.apply(this,r);let i=t.apply(this,r);return e(),i},r=isBrowser?location.search:"",i=()=>{let t=location.search;if(t!==r)for(let e of history.__.h.values())e(r,t);r=t;};let listenUrlSearch=t=>(history.__||(history.pushState=o(history.pushState,i),history.replaceState=o(history.replaceState,i),on(window,"popstate",i),history.__={h:new Set}),history.__.h.has(t)||history.__.h.add(t),()=>{history.__.h.delete(t);});
19
+
20
+ let listenUrlSearchParams=(r,a)=>listenUrlSearch((e,t)=>{let l=new URLSearchParams(e),m=new URLSearchParams(t).get(r);l.get(r)!==m&&a(m);});
21
+
22
+ let navigateToUrl=(t="",e)=>{t&&history[e?"replaceState":"pushState"](history.state,"",t);};
23
+
24
+ let navigateToHash=(t="")=>{let{pathname:a,search:e}=location;navigateToUrl(a+(e?"?"+e:"")+(t?"#"+t:""),!0);};
25
+
26
+ let navigateToHashParams=(a={},e="")=>{let i=!e,r="#/"+getUrlHashPathname(e=e||location.hash)+("string"==typeof a?a:buildUrlQueryString(a));return i&&(location.hash=r),r};
27
+
28
+ let navigateToMergedHashParams=(e={},t="")=>navigateToHashParams(mergeUrlQueryParams(getUrlHashParams(t),e),t);
29
+
30
+ let navigateToParams=(a={},e)=>{let i="string"==typeof a?a:buildUrlQueryString(a);return isBrowser&&navigateToUrl(location.pathname+i,e),i};
31
+
32
+ let navigateToMergedParams=(e={},t)=>navigateToParams(mergeUrlQueryParams(getUrlQueryParams(),e),t);
33
+
34
+ let navigateWithoutUrlParam=(o,a)=>{let e={},i=getUrlQueryParams();for(let t in i)t!==o&&(e[t]=i[t]);return navigateToParams(e,a)};
35
+
36
+ let redirectTo=(r,t)=>{if(isBrowser){let o=buildUrlQueryString(t);location.href=r.replace(/\?+$/g,"")+o;}};
37
+
38
+ export { createStorage, getZonedDate, gtagPageview, isIE, isMobile, listenUrlSearch, listenUrlSearchParams, navigateToHash, navigateToHashParams, navigateToMergedHashParams, navigateToMergedParams, navigateToParams, navigateToUrl, navigateWithoutUrlParam, redirectTo, storage, storageClient };
package/isIE.d.ts CHANGED
@@ -1,2 +1 @@
1
- export declare function isIE(ssrValue?: boolean): boolean;
2
- export default isIE;
1
+ export declare let isIE: (ssrValue?: boolean) => boolean;
package/isMobile.d.ts CHANGED
@@ -1,2 +1 @@
1
- export declare function isMobile(ssrValue?: boolean): boolean;
2
- export default isMobile;
1
+ export declare let isMobile: (ssrValue?: boolean) => boolean;
@@ -1,3 +1,3 @@
1
1
  type Handler = (prevLocationSearch: string, newLocationSearch: string) => void;
2
- export declare function listenUrlSearch(handler: Handler): () => void;
3
- export default listenUrlSearch;
2
+ export declare let listenUrlSearch: (handler: Handler) => () => void;
3
+ export {};
@@ -1,2 +1 @@
1
- export declare const listenUrlSearchParams: (paramName: string, handler: (paramNewValue: string | null) => void) => () => void;
2
- export default listenUrlSearchParams;
1
+ export declare let listenUrlSearchParams: (paramName: string, handler: (paramNewValue: string | null) => void) => () => void;
@@ -1,2 +1 @@
1
- export declare function navigateToHash(hash?: string): void;
2
- export default navigateToHash;
1
+ export declare let navigateToHash: (hash?: string) => void;
@@ -1,3 +1,2 @@
1
1
  import { type AnyQueryParams } from "@koine/utils";
2
- export declare function navigateToHashParams(params?: string | AnyQueryParams, hash?: string): string;
3
- export default navigateToHashParams;
2
+ export declare let navigateToHashParams: (params?: string | AnyQueryParams, hash?: string) => string;
@@ -1,3 +1,2 @@
1
1
  import { type AnyQueryParams } from "@koine/utils";
2
- export declare function navigateToMergedHashParams(params?: NonNullable<AnyQueryParams>, hash?: string): string;
3
- export default navigateToMergedHashParams;
2
+ export declare let navigateToMergedHashParams: (params?: NonNullable<AnyQueryParams>, hash?: string) => string;
@@ -1,3 +1,2 @@
1
1
  import { type AnyQueryParams } from "@koine/utils";
2
- export declare function navigateToMergedParams(params?: NonNullable<AnyQueryParams>, replace?: boolean): string;
3
- export default navigateToMergedParams;
2
+ export declare let navigateToMergedParams: (params?: NonNullable<AnyQueryParams>, replace?: boolean) => string;
@@ -1,3 +1,2 @@
1
1
  import { type AnyQueryParams } from "@koine/utils";
2
- export declare function navigateToParams(params?: string | AnyQueryParams, replace?: boolean): string;
3
- export default navigateToParams;
2
+ export declare let navigateToParams: (params?: string | AnyQueryParams, replace?: boolean) => string;
@@ -1,2 +1 @@
1
- export declare function navigateToUrl(url?: string, replace?: boolean): void;
2
- export default navigateToUrl;
1
+ export declare let navigateToUrl: (url?: string, replace?: boolean) => void;
@@ -1,2 +1 @@
1
- export declare function navigateWithoutUrlParam(paramName?: string, replace?: boolean): string;
2
- export default navigateWithoutUrlParam;
1
+ export declare let navigateWithoutUrlParam: (paramName?: string, replace?: boolean) => string;
package/package.json CHANGED
@@ -2,72 +2,23 @@
2
2
  "name": "@koine/browser",
3
3
  "sideEffects": false,
4
4
  "dependencies": {
5
- "@koine/dom": "2.0.0-beta.38",
6
- "@koine/utils": "2.0.0-beta.38"
5
+ "@koine/dom": "2.0.0-beta.39",
6
+ "@koine/utils": "2.0.0-beta.39"
7
7
  },
8
8
  "peerDependenciesMeta": {
9
9
  "date-fns-tz": {
10
10
  "optional": true
11
11
  }
12
12
  },
13
- "module": "./index.js",
14
- "type": "module",
15
13
  "exports": {
14
+ "./package.json": "./package.json",
16
15
  ".": {
17
- "import": "./index.js"
18
- },
19
- "./createStorage": {
20
- "import": "./createStorage.js"
21
- },
22
- "./getZonedDate": {
23
- "import": "./getZonedDate.js"
24
- },
25
- "./gtagPageview": {
26
- "import": "./gtagPageview.js"
27
- },
28
- "./isIE": {
29
- "import": "./isIE.js"
30
- },
31
- "./isMobile": {
32
- "import": "./isMobile.js"
33
- },
34
- "./listenUrlSearch": {
35
- "import": "./listenUrlSearch.js"
36
- },
37
- "./listenUrlSearchParams": {
38
- "import": "./listenUrlSearchParams.js"
39
- },
40
- "./navigateToHash": {
41
- "import": "./navigateToHash.js"
42
- },
43
- "./navigateToHashParams": {
44
- "import": "./navigateToHashParams.js"
45
- },
46
- "./navigateToMergedHashParams": {
47
- "import": "./navigateToMergedHashParams.js"
48
- },
49
- "./navigateToMergedParams": {
50
- "import": "./navigateToMergedParams.js"
51
- },
52
- "./navigateToParams": {
53
- "import": "./navigateToParams.js"
54
- },
55
- "./navigateToUrl": {
56
- "import": "./navigateToUrl.js"
57
- },
58
- "./navigateWithoutUrlParam": {
59
- "import": "./navigateWithoutUrlParam.js"
60
- },
61
- "./redirectTo": {
62
- "import": "./redirectTo.js"
63
- },
64
- "./storage": {
65
- "import": "./storage.js"
66
- },
67
- "./storageClient": {
68
- "import": "./storageClient.js"
16
+ "module": "./index.esm.js",
17
+ "import": "./index.cjs.mjs",
18
+ "default": "./index.cjs.js"
69
19
  }
70
20
  },
71
- "peerDependencies": {},
72
- "version": "2.0.0-beta.38"
21
+ "module": "./index.esm.js",
22
+ "main": "./index.cjs.js",
23
+ "version": "2.0.0-beta.39"
73
24
  }
package/redirectTo.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  import { type AnyQueryParams } from "@koine/utils";
2
- export declare function redirectTo(url: string, params?: AnyQueryParams): void;
3
- export default redirectTo;
2
+ export declare let redirectTo: (url: string, params?: AnyQueryParams) => void;
package/storage.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const storage: {
1
+ export declare let storage: {
2
2
  l: {
3
3
  get: <TKey extends string, TValue = any>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
4
4
  set: <TKey_1 extends string, TValue_1 = any>(key: TKey_1, value?: TValue_1 | undefined, transform?: (value: any) => string) => void;
@@ -12,4 +12,3 @@ export declare const storage: {
12
12
  has: <TKey_3 extends string, TValue_2 = any>(key: TKey_3, defaultValue?: TValue_2 | undefined) => boolean | NonNullable<TValue_2>;
13
13
  };
14
14
  };
15
- export default storage;
@@ -1,8 +1,7 @@
1
1
  export type StorageClientConfig = Record<string, any>;
2
- export declare const storageClient: <TConfig extends StorageClientConfig = StorageClientConfig>(useSessionStorage?: boolean) => {
2
+ export declare let storageClient: <TConfig extends StorageClientConfig = StorageClientConfig>(useSessionStorage?: boolean) => {
3
3
  get: <TKey extends Extract<keyof TConfig, string>, TValue = TConfig[TKey]>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
4
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;
5
5
  remove: <TKey_2 extends Extract<keyof TConfig, string>>(key: TKey_2) => void;
6
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>;
7
7
  };
8
- export default storageClient;
package/createStorage.js DELETED
@@ -1,97 +0,0 @@
1
- import { __assign } from "tslib";
2
- import { decode, encode, isBrowser, isNullOrUndefined, noop, } from "@koine/utils";
3
- import { on } from "@koine/dom";
4
- import storage from "./storage.js";
5
- export var createStorage = function (config, useSessionStorage) {
6
- var client = useSessionStorage ? storage.s : storage.l;
7
- var keys = Object.keys(config).reduce(function (map, key) {
8
- var _a;
9
- return (__assign(__assign({}, map), (_a = {}, _a[key] = encode(key), _a)));
10
- }, {});
11
- return {
12
- get: function (key, defaultValue) {
13
- return client.get(keys[key], decode, defaultValue);
14
- },
15
- getAll: function (defaultValues) {
16
- if (!isBrowser) {
17
- if (process.env["NODE_ENV"] === "development") {
18
- console.log("[@koine/utils:createStorage] attempt to use 'getAll' outside of browser.");
19
- }
20
- return {};
21
- }
22
- var all = {};
23
- for (var key in keys) {
24
- var value = this.get(key);
25
- var defaultValue = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[key];
26
- if (!isNullOrUndefined(value)) {
27
- all[key] = value;
28
- }
29
- else if (defaultValue) {
30
- all[key] = defaultValue;
31
- }
32
- }
33
- return all;
34
- },
35
- set: function (key, value) {
36
- client.set(keys[key], value, encode);
37
- },
38
- setMany: function (newValues) {
39
- if (process.env["NODE_ENV"] === "development") {
40
- if (!isBrowser) {
41
- console.log("[@koine/utils:createStorage] attempt to use 'setMany' outside of browser.");
42
- }
43
- }
44
- if (isBrowser) {
45
- for (var key in newValues) {
46
- var value = newValues[key];
47
- if (!isNullOrUndefined(value)) {
48
- this.set(key, value);
49
- }
50
- else {
51
- this.remove(key);
52
- }
53
- }
54
- }
55
- },
56
- has: function (key) {
57
- return client.has(keys[key]);
58
- },
59
- remove: function (key) {
60
- client.remove(keys[key]);
61
- },
62
- clear: function () {
63
- if (process.env["NODE_ENV"] === "development") {
64
- if (!isBrowser) {
65
- console.log("[@koine/utils:createStorage] attempt to use 'clear' outside of browser.");
66
- }
67
- }
68
- if (isBrowser) {
69
- for (var key in keys) {
70
- client.remove(keys[key]);
71
- }
72
- }
73
- },
74
- watch: function (keyToWatch, onRemoved, onAdded) {
75
- if (!isBrowser) {
76
- if (process.env["NODE_ENV"] === "development") {
77
- console.log("[@koine/utils:createStorage] attempt to use 'watch' outside of browser.");
78
- }
79
- return noop;
80
- }
81
- var handler = function (event) {
82
- var key = event.key, oldValue = event.oldValue, newValue = event.newValue;
83
- if (key === keys[keyToWatch]) {
84
- if (oldValue && !newValue) {
85
- onRemoved === null || onRemoved === void 0 ? void 0 : onRemoved();
86
- }
87
- else if (!oldValue && newValue) {
88
- onAdded === null || onAdded === void 0 ? void 0 : onAdded();
89
- }
90
- }
91
- };
92
- var listener = on(window, "storage", handler);
93
- return listener;
94
- },
95
- };
96
- };
97
- export default createStorage;
package/getZonedDate.js DELETED
@@ -1,23 +0,0 @@
1
- import { isBrowser } from "@koine/utils";
2
- var utcToZonedTime = function (date, _tz) {
3
- return date;
4
- };
5
- export function getZonedDate(dateString, timeZone) {
6
- if (dateString === void 0) { dateString = ""; }
7
- if (!dateString.endsWith("Z"))
8
- dateString += "Z";
9
- if (!timeZone && isBrowser) {
10
- try {
11
- timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
12
- }
13
- catch (e) {
14
- if (process.env["NODE_ENV"] === "development") {
15
- console.warn("[@koine/browser:getZonedDate] failed reading timeZone, error", e);
16
- }
17
- }
18
- }
19
- return timeZone
20
- ? utcToZonedTime(new Date(dateString), timeZone)
21
- : new Date(dateString);
22
- }
23
- export default getZonedDate;
package/gtagPageview.js DELETED
@@ -1,15 +0,0 @@
1
- import { isUndefined } from "@koine/utils";
2
- export var gtagPageview = function () {
3
- var args = [];
4
- for (var _i = 0; _i < arguments.length; _i++) {
5
- args[_i] = arguments[_i];
6
- }
7
- if (!isUndefined(window) && !isUndefined(window.gtag)) {
8
- window.gtag("event", "page_view", {
9
- page_path: args[0] || location.pathname,
10
- page_title: args[1] || document.title,
11
- page_location: args[2] || location.href,
12
- });
13
- }
14
- };
15
- export default gtagPageview;
package/index.js DELETED
@@ -1,17 +0,0 @@
1
- export { createStorage } from "./createStorage.js";
2
- export { getZonedDate } from "./getZonedDate.js";
3
- export { gtagPageview } from "./gtagPageview.js";
4
- export { isIE } from "./isIE.js";
5
- export { isMobile } from "./isMobile.js";
6
- export { listenUrlSearch } from "./listenUrlSearch.js";
7
- export { listenUrlSearchParams } from "./listenUrlSearchParams.js";
8
- export { navigateToHash } from "./navigateToHash.js";
9
- export { navigateToHashParams } from "./navigateToHashParams.js";
10
- export { navigateToMergedHashParams } from "./navigateToMergedHashParams.js";
11
- export { navigateToMergedParams } from "./navigateToMergedParams.js";
12
- export { navigateToParams } from "./navigateToParams.js";
13
- export { navigateToUrl } from "./navigateToUrl.js";
14
- export { navigateWithoutUrlParam } from "./navigateWithoutUrlParam.js";
15
- export { redirectTo } from "./redirectTo.js";
16
- export { storage } from "./storage.js";
17
- export { storageClient } from "./storageClient.js";
package/isIE.js DELETED
@@ -1,13 +0,0 @@
1
- import { isServer } from "@koine/utils";
2
- export function isIE(ssrValue) {
3
- if (ssrValue === void 0) { ssrValue = true; }
4
- if (isServer) {
5
- return ssrValue;
6
- }
7
- var ua = window.navigator.userAgent;
8
- if (ua.indexOf("MSIE ") > 0 || ua.indexOf("Trident/") > 0) {
9
- return true;
10
- }
11
- return false;
12
- }
13
- export default isIE;
package/isMobile.js DELETED
@@ -1,9 +0,0 @@
1
- import { isServer } from "@koine/utils";
2
- export function isMobile(ssrValue) {
3
- if (ssrValue === void 0) { ssrValue = true; }
4
- if (isServer) {
5
- return ssrValue;
6
- }
7
- return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);
8
- }
9
- export default isMobile;
@@ -1,55 +0,0 @@
1
- import { __values } from "tslib";
2
- import { isBrowser } from "@koine/utils";
3
- import { on } from "@koine/dom";
4
- function extendHistoryMethod(fn, runHandlers, before) {
5
- return function interceptor() {
6
- var args = [];
7
- for (var _i = 0; _i < arguments.length; _i++) {
8
- args[_i] = arguments[_i];
9
- }
10
- if (before) {
11
- runHandlers();
12
- return fn.apply(this, args);
13
- }
14
- var result = fn.apply(this, args);
15
- runHandlers();
16
- return result;
17
- };
18
- }
19
- var prevSearch = isBrowser ? location.search : "";
20
- function runHandlers() {
21
- var e_1, _a;
22
- var newSearch = location.search;
23
- if (newSearch !== prevSearch) {
24
- var listeners = history.__.h.values();
25
- try {
26
- for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {
27
- var listener = listeners_1_1.value;
28
- listener(prevSearch, newSearch);
29
- }
30
- }
31
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
32
- finally {
33
- try {
34
- if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);
35
- }
36
- finally { if (e_1) throw e_1.error; }
37
- }
38
- }
39
- prevSearch = newSearch;
40
- }
41
- export function listenUrlSearch(handler) {
42
- if (!history.__) {
43
- history.pushState = extendHistoryMethod(history.pushState, runHandlers);
44
- history.replaceState = extendHistoryMethod(history.replaceState, runHandlers);
45
- on(window, "popstate", runHandlers);
46
- history.__ = { h: new Set() };
47
- }
48
- if (!history.__.h.has(handler)) {
49
- history.__.h.add(handler);
50
- }
51
- return function () {
52
- history.__.h.delete(handler);
53
- };
54
- }
55
- export default listenUrlSearch;
@@ -1,12 +0,0 @@
1
- import listenUrlSearch from "./listenUrlSearch.js";
2
- export var listenUrlSearchParams = function (paramName, handler) {
3
- return listenUrlSearch(function (prevSearch, newSearch) {
4
- var prevParams = new URLSearchParams(prevSearch);
5
- var newParams = new URLSearchParams(newSearch);
6
- var newValue = newParams.get(paramName);
7
- if (prevParams.get(paramName) !== newValue) {
8
- handler(newValue);
9
- }
10
- });
11
- };
12
- export default listenUrlSearchParams;
package/navigateToHash.js DELETED
@@ -1,7 +0,0 @@
1
- import navigateToUrl from "./navigateToUrl.js";
2
- export function navigateToHash(hash) {
3
- if (hash === void 0) { hash = ""; }
4
- var pathname = location.pathname, search = location.search;
5
- navigateToUrl(pathname + (search ? "?" + search : "") + (hash ? "#" + hash : ""), true);
6
- }
7
- export default navigateToHash;
@@ -1,15 +0,0 @@
1
- import { buildUrlQueryString, getUrlHashPathname, } from "@koine/utils";
2
- export function navigateToHashParams(params, hash) {
3
- if (params === void 0) { params = {}; }
4
- if (hash === void 0) { hash = ""; }
5
- var useLocation = !hash;
6
- hash = hash || location.hash;
7
- var hashQueryLess = getUrlHashPathname(hash);
8
- var queryString = typeof params === "string" ? params : buildUrlQueryString(params);
9
- var newHash = "#/" + hashQueryLess + queryString;
10
- if (useLocation) {
11
- location.hash = newHash;
12
- }
13
- return newHash;
14
- }
15
- export default navigateToHashParams;
@@ -1,8 +0,0 @@
1
- import { getUrlHashParams, mergeUrlQueryParams, } from "@koine/utils";
2
- import { navigateToHashParams } from "./navigateToHashParams.js";
3
- export function navigateToMergedHashParams(params, hash) {
4
- if (params === void 0) { params = {}; }
5
- if (hash === void 0) { hash = ""; }
6
- return navigateToHashParams(mergeUrlQueryParams(getUrlHashParams(hash), params), hash);
7
- }
8
- export default navigateToMergedHashParams;
@@ -1,7 +0,0 @@
1
- import { getUrlQueryParams, mergeUrlQueryParams, } from "@koine/utils";
2
- import { navigateToParams } from "./navigateToParams.js";
3
- export function navigateToMergedParams(params, replace) {
4
- if (params === void 0) { params = {}; }
5
- return navigateToParams(mergeUrlQueryParams(getUrlQueryParams(), params), replace);
6
- }
7
- export default navigateToMergedParams;
@@ -1,11 +0,0 @@
1
- import { buildUrlQueryString, isBrowser, } from "@koine/utils";
2
- import navigateToUrl from "./navigateToUrl.js";
3
- export function navigateToParams(params, replace) {
4
- if (params === void 0) { params = {}; }
5
- var queryString = typeof params === "string" ? params : buildUrlQueryString(params);
6
- if (isBrowser) {
7
- navigateToUrl(location.pathname + queryString, replace);
8
- }
9
- return queryString;
10
- }
11
- export default navigateToParams;
package/navigateToUrl.js DELETED
@@ -1,7 +0,0 @@
1
- export function navigateToUrl(url, replace) {
2
- if (url === void 0) { url = ""; }
3
- if (url) {
4
- history[replace ? "replaceState" : "pushState"](history.state, "", url);
5
- }
6
- }
7
- export default navigateToUrl;
@@ -1,13 +0,0 @@
1
- import { getUrlQueryParams } from "@koine/utils";
2
- import navigateToParams from "./navigateToParams.js";
3
- export function navigateWithoutUrlParam(paramName, replace) {
4
- var params = {};
5
- var currentParams = getUrlQueryParams();
6
- for (var key in currentParams) {
7
- if (key !== paramName) {
8
- params[key] = currentParams[key];
9
- }
10
- }
11
- return navigateToParams(params, replace);
12
- }
13
- export default navigateWithoutUrlParam;
package/redirectTo.js DELETED
@@ -1,8 +0,0 @@
1
- import { buildUrlQueryString, isBrowser, } from "@koine/utils";
2
- export function redirectTo(url, params) {
3
- if (isBrowser) {
4
- var queryString = buildUrlQueryString(params);
5
- location.href = url.replace(/\?+$/g, "") + queryString;
6
- }
7
- }
8
- export default redirectTo;
package/storage.js DELETED
@@ -1,6 +0,0 @@
1
- import storageClient from "./storageClient.js";
2
- export var storage = {
3
- l: storageClient(),
4
- s: storageClient(true),
5
- };
6
- export default storage;
package/storageClient.js DELETED
@@ -1,94 +0,0 @@
1
- import { isBrowser, isString } from "@koine/utils";
2
- var methodsMap = { g: "getItem", s: "setItem", r: "removeItem" };
3
- export var storageClient = function (useSessionStorage) {
4
- var nativeMethod = function (method, key, value) {
5
- return isBrowser
6
- ? window[useSessionStorage ? "sessionStorage" : "localStorage"][methodsMap[method]](key, value)
7
- : function () {
8
- if (process.env["NODE_ENV"] === "development") {
9
- console.warn("[@koine/utils:storageClient]: ".concat(useSessionStorage ? "sessionStorage" : "localStorage", " does not exists outside of browser."));
10
- }
11
- };
12
- };
13
- var get = function (key, transform, defaultValue) {
14
- var value = defaultValue !== null && defaultValue !== void 0 ? defaultValue : null;
15
- if (process.env["NODE_ENV"] === "development") {
16
- if (!isBrowser) {
17
- console.log("[@koine/utils:storage] called 'get' outside of browser with default value '".concat(JSON.stringify(defaultValue), "'."));
18
- }
19
- }
20
- if (isBrowser) {
21
- var stored = nativeMethod("g", key);
22
- if (stored) {
23
- stored = transform ? transform(stored) : stored;
24
- try {
25
- var parsed = JSON.parse(stored);
26
- if (parsed)
27
- value = parsed;
28
- }
29
- catch (_e) {
30
- value = stored;
31
- }
32
- }
33
- }
34
- return value;
35
- };
36
- var set = function (key, value, transform) {
37
- if (transform === void 0) { transform = function (value) { return value; }; }
38
- if (process.env["NODE_ENV"] === "development") {
39
- if (!isBrowser) {
40
- console.log("[@koine/utils:storage] called 'set' outside of browser does not work.");
41
- }
42
- }
43
- if (isBrowser) {
44
- try {
45
- var transformedValue = isString(value)
46
- ? transform(value)
47
- : transform(JSON.stringify(value));
48
- nativeMethod("s", key, transformedValue);
49
- }
50
- catch (_e) {
51
- if (process.env["NODE_ENV"] === "development") {
52
- console.warn("[@koine/utils:createStorage]: 'set' error.", _e);
53
- }
54
- }
55
- }
56
- };
57
- var remove = function (key) {
58
- if (process.env["NODE_ENV"] === "development") {
59
- if (!isBrowser) {
60
- console.log("[@koine/utils:storage] called 'remove' outside of browser does not work.");
61
- }
62
- }
63
- if (isBrowser) {
64
- try {
65
- nativeMethod("r", key);
66
- }
67
- catch (_e) {
68
- if (process.env["NODE_ENV"] === "development") {
69
- console.warn("[@koine/utils:createStorage]: 'remove' error.", _e);
70
- }
71
- }
72
- }
73
- };
74
- var has = function (key, defaultValue) {
75
- var value = defaultValue !== null && defaultValue !== void 0 ? defaultValue : false;
76
- if (process.env["NODE_ENV"] === "development") {
77
- if (!isBrowser) {
78
- console.log("[@koine/utils:storage] called 'has' outside of browser with default value '".concat(JSON.stringify(defaultValue), "'."));
79
- }
80
- }
81
- if (isBrowser) {
82
- var stored = nativeMethod("g", key);
83
- value = stored !== null && stored !== void 0 ? stored : false;
84
- }
85
- return value;
86
- };
87
- return {
88
- get: get,
89
- set: set,
90
- remove: remove,
91
- has: has,
92
- };
93
- };
94
- export default storageClient;
package/typings.d.ts DELETED
@@ -1,12 +0,0 @@
1
- /**
2
- * List here the global variables used by third party scripts supported within
3
- * the `koine` ecosystem. For instance Google Analytics globally available
4
- * variables.
5
- */
6
-
7
- // eslint-disable-next-line no-var,@typescript-eslint/no-explicit-any
8
- declare var gtag: (...args: any[]) => any;
9
-
10
- // declare type NullableRecord<T> = {
11
- // [K in keyof T]: T[K] | null;
12
- // };