@koine/browser 2.0.0-beta.2 → 2.0.0-beta.200

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.
Files changed (136) hide show
  1. package/README.md +1 -1
  2. package/createStorage.cjs.default.js +1 -0
  3. package/createStorage.cjs.js +12 -0
  4. package/createStorage.cjs.mjs +2 -0
  5. package/createStorage.d.ts +12 -7
  6. package/createStorage.esm.js +7 -0
  7. package/getZonedDate.cjs.default.js +1 -0
  8. package/getZonedDate.cjs.js +11 -0
  9. package/getZonedDate.cjs.mjs +2 -0
  10. package/getZonedDate.d.ts +1 -1
  11. package/getZonedDate.esm.js +6 -0
  12. package/gtag.cjs.default.js +1 -0
  13. package/gtag.cjs.js +10 -0
  14. package/gtag.cjs.mjs +2 -0
  15. package/gtag.d.ts +13 -0
  16. package/gtag.esm.js +5 -0
  17. package/gtagPageview.cjs.default.js +1 -0
  18. package/gtagPageview.cjs.js +10 -0
  19. package/gtagPageview.cjs.mjs +2 -0
  20. package/gtagPageview.d.ts +1 -1
  21. package/gtagPageview.esm.js +5 -0
  22. package/index.cjs.default.js +1 -0
  23. package/index.cjs.js +43 -0
  24. package/index.cjs.mjs +2 -0
  25. package/index.d.ts +5 -1
  26. package/index.esm.js +19 -0
  27. package/isIE.cjs.default.js +1 -0
  28. package/isIE.cjs.js +10 -0
  29. package/isIE.cjs.mjs +2 -0
  30. package/isIE.d.ts +1 -1
  31. package/isIE.esm.js +5 -0
  32. package/isMobile.cjs.default.js +1 -0
  33. package/isMobile.cjs.js +10 -0
  34. package/isMobile.cjs.mjs +2 -0
  35. package/isMobile.d.ts +1 -1
  36. package/isMobile.esm.js +5 -0
  37. package/isWindowInsideIframe.cjs.default.js +1 -0
  38. package/isWindowInsideIframe.cjs.js +8 -0
  39. package/isWindowInsideIframe.cjs.mjs +2 -0
  40. package/isWindowInsideIframe.d.ts +5 -0
  41. package/isWindowInsideIframe.esm.js +3 -0
  42. package/listenUrlSearch.cjs.default.js +1 -0
  43. package/listenUrlSearch.cjs.js +11 -0
  44. package/listenUrlSearch.cjs.mjs +2 -0
  45. package/listenUrlSearch.d.ts +30 -0
  46. package/listenUrlSearch.esm.js +6 -0
  47. package/listenUrlSearchParams.cjs.default.js +1 -0
  48. package/listenUrlSearchParams.cjs.js +10 -0
  49. package/listenUrlSearchParams.cjs.mjs +2 -0
  50. package/listenUrlSearchParams.d.ts +7 -0
  51. package/listenUrlSearchParams.esm.js +5 -0
  52. package/navigateToHash.cjs.default.js +1 -0
  53. package/navigateToHash.cjs.js +10 -0
  54. package/navigateToHash.cjs.mjs +2 -0
  55. package/navigateToHash.d.ts +1 -1
  56. package/navigateToHash.esm.js +5 -0
  57. package/navigateToHashParams.cjs.default.js +1 -0
  58. package/navigateToHashParams.cjs.js +10 -0
  59. package/navigateToHashParams.cjs.mjs +2 -0
  60. package/navigateToHashParams.d.ts +2 -2
  61. package/navigateToHashParams.esm.js +5 -0
  62. package/navigateToMergedHashParams.cjs.default.js +1 -0
  63. package/navigateToMergedHashParams.cjs.js +11 -0
  64. package/navigateToMergedHashParams.cjs.mjs +2 -0
  65. package/navigateToMergedHashParams.d.ts +2 -2
  66. package/navigateToMergedHashParams.esm.js +6 -0
  67. package/navigateToMergedParams.cjs.default.js +1 -0
  68. package/navigateToMergedParams.cjs.js +11 -0
  69. package/navigateToMergedParams.cjs.mjs +2 -0
  70. package/navigateToMergedParams.d.ts +2 -2
  71. package/navigateToMergedParams.esm.js +6 -0
  72. package/navigateToParams.cjs.default.js +1 -0
  73. package/navigateToParams.cjs.js +11 -0
  74. package/navigateToParams.cjs.mjs +2 -0
  75. package/navigateToParams.d.ts +2 -2
  76. package/navigateToParams.esm.js +6 -0
  77. package/navigateToUrl.cjs.default.js +1 -0
  78. package/navigateToUrl.cjs.js +8 -0
  79. package/navigateToUrl.cjs.mjs +2 -0
  80. package/navigateToUrl.d.ts +1 -1
  81. package/navigateToUrl.esm.js +3 -0
  82. package/navigateWithoutUrlParam.cjs.default.js +1 -0
  83. package/navigateWithoutUrlParam.cjs.js +11 -0
  84. package/navigateWithoutUrlParam.cjs.mjs +2 -0
  85. package/navigateWithoutUrlParam.d.ts +1 -1
  86. package/navigateWithoutUrlParam.esm.js +6 -0
  87. package/package.json +133 -11
  88. package/redirectTo.cjs.default.js +1 -0
  89. package/redirectTo.cjs.js +10 -0
  90. package/redirectTo.cjs.mjs +2 -0
  91. package/redirectTo.d.ts +2 -2
  92. package/redirectTo.esm.js +5 -0
  93. package/storage.cjs.default.js +1 -0
  94. package/storage.cjs.js +10 -0
  95. package/storage.cjs.mjs +2 -0
  96. package/storage.d.ts +9 -7
  97. package/storage.esm.js +5 -0
  98. package/storageClient.cjs.default.js +1 -0
  99. package/storageClient.cjs.js +10 -0
  100. package/storageClient.cjs.mjs +2 -0
  101. package/storageClient.d.ts +10 -5
  102. package/storageClient.esm.js +5 -0
  103. package/vite.config.d.ts +2 -0
  104. package/createStorage.js +0 -147
  105. package/createStorage.mjs +0 -143
  106. package/getZonedDate.js +0 -42
  107. package/getZonedDate.mjs +0 -37
  108. package/gtagPageview.js +0 -35
  109. package/gtagPageview.mjs +0 -30
  110. package/index.js +0 -33
  111. package/index.mjs +0 -15
  112. package/isIE.js +0 -23
  113. package/isIE.mjs +0 -18
  114. package/isMobile.js +0 -21
  115. package/isMobile.mjs +0 -16
  116. package/navigateToHash.js +0 -18
  117. package/navigateToHash.mjs +0 -13
  118. package/navigateToHashParams.js +0 -27
  119. package/navigateToHashParams.mjs +0 -22
  120. package/navigateToMergedHashParams.js +0 -19
  121. package/navigateToMergedHashParams.mjs +0 -14
  122. package/navigateToMergedParams.js +0 -19
  123. package/navigateToMergedParams.mjs +0 -14
  124. package/navigateToParams.js +0 -24
  125. package/navigateToParams.mjs +0 -19
  126. package/navigateToUrl.js +0 -16
  127. package/navigateToUrl.mjs +0 -12
  128. package/navigateWithoutUrlParam.js +0 -24
  129. package/navigateWithoutUrlParam.mjs +0 -19
  130. package/redirectTo.js +0 -20
  131. package/redirectTo.mjs +0 -15
  132. package/storage.js +0 -13
  133. package/storage.mjs +0 -9
  134. package/storageClient.js +0 -108
  135. package/storageClient.mjs +0 -103
  136. package/typings.d.ts +0 -12
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+ var navigateToParams = require('./navigateToParams.cjs.js');
7
+
8
+ let navigateToMergedParams=(o={},t)=>navigateToParams.navigateToParams(utils.mergeUrlQueryParams(utils.getUrlQueryParams(),o),t);
9
+
10
+ exports.default = navigateToMergedParams;
11
+ exports.navigateToMergedParams = navigateToMergedParams;
@@ -0,0 +1,2 @@
1
+ export * from './navigateToMergedParams.cjs.js';
2
+ export { _default as default } from './navigateToMergedParams.cjs.default.js';
@@ -1,9 +1,9 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  /**
3
3
  * Merge current URL query parameters with the given ones, it uses `history`.
4
4
  *
5
5
  * @category location
6
6
  * @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
7
7
  */
8
- export declare function navigateToMergedParams(params?: NonNullable<AnyQueryParams>, replace?: boolean): string;
8
+ export declare let navigateToMergedParams: (params?: NonNullable<AnyQueryParams>, replace?: boolean) => string;
9
9
  export default navigateToMergedParams;
@@ -0,0 +1,6 @@
1
+ import { mergeUrlQueryParams, getUrlQueryParams } from '@koine/utils';
2
+ import { navigateToParams } from './navigateToParams.esm.js';
3
+
4
+ let navigateToMergedParams=(o={},t)=>navigateToParams(mergeUrlQueryParams(getUrlQueryParams(),o),t);
5
+
6
+ export { navigateToMergedParams as default, navigateToMergedParams };
@@ -0,0 +1 @@
1
+ exports._default = require('./navigateToParams.cjs.js').default;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+ var navigateToUrl = require('./navigateToUrl.cjs.js');
7
+
8
+ let navigateToParams=(e={},r)=>{let i="string"==typeof e?e:utils.buildUrlQueryString(e);return utils.isBrowser&&navigateToUrl.navigateToUrl(location.pathname+i,r),i};
9
+
10
+ exports.default = navigateToParams;
11
+ exports.navigateToParams = navigateToParams;
@@ -0,0 +1,2 @@
1
+ export * from './navigateToParams.cjs.js';
2
+ export { _default as default } from './navigateToParams.cjs.default.js';
@@ -1,4 +1,4 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  /**
3
3
  * Change current URL query parameters, it uses `history`.
4
4
  *
@@ -6,5 +6,5 @@ import type { AnyQueryParams } from "@koine/utils/location";
6
6
  * @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
7
7
  * @returns The query string with initial `?`
8
8
  */
9
- export declare function navigateToParams(params?: string | AnyQueryParams, replace?: boolean): string;
9
+ export declare let navigateToParams: (params?: string | AnyQueryParams, replace?: boolean) => string;
10
10
  export default navigateToParams;
@@ -0,0 +1,6 @@
1
+ import { buildUrlQueryString, isBrowser } from '@koine/utils';
2
+ import { navigateToUrl } from './navigateToUrl.esm.js';
3
+
4
+ let navigateToParams=(e={},r)=>{let i="string"==typeof e?e:buildUrlQueryString(e);return isBrowser&&navigateToUrl(location.pathname+i,r),i};
5
+
6
+ export { navigateToParams as default, navigateToParams };
@@ -0,0 +1 @@
1
+ exports._default = require('./navigateToUrl.cjs.js').default;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ let navigateToUrl=(t="",e)=>{t&&history[e?"replaceState":"pushState"](history.state,"",t);};
6
+
7
+ exports.default = navigateToUrl;
8
+ exports.navigateToUrl = navigateToUrl;
@@ -0,0 +1,2 @@
1
+ export * from './navigateToUrl.cjs.js';
2
+ export { _default as default } from './navigateToUrl.cjs.default.js';
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * @category location
5
5
  */
6
- export declare function navigateToUrl(url?: string, replace?: boolean): void;
6
+ export declare let navigateToUrl: (url?: string, replace?: boolean) => void;
7
7
  export default navigateToUrl;
@@ -0,0 +1,3 @@
1
+ let navigateToUrl=(t="",e)=>{t&&history[e?"replaceState":"pushState"](history.state,"",t);};
2
+
3
+ export { navigateToUrl as default, navigateToUrl };
@@ -0,0 +1 @@
1
+ exports._default = require('./navigateWithoutUrlParam.cjs.js').default;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+ var navigateToParams = require('./navigateToParams.cjs.js');
7
+
8
+ let navigateWithoutUrlParam=(a,e)=>{let o={},i=utils.getUrlQueryParams();for(let t in i)t!==a&&(o[t]=i[t]);return navigateToParams.navigateToParams(o,e)};
9
+
10
+ exports.default = navigateWithoutUrlParam;
11
+ exports.navigateWithoutUrlParam = navigateWithoutUrlParam;
@@ -0,0 +1,2 @@
1
+ export * from './navigateWithoutUrlParam.cjs.js';
2
+ export { _default as default } from './navigateWithoutUrlParam.cjs.default.js';
@@ -4,5 +4,5 @@
4
4
  * @category location
5
5
  * @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
6
6
  */
7
- export declare function navigateWithoutUrlParam(paramName?: string, replace?: boolean): string;
7
+ export declare let navigateWithoutUrlParam: (paramName?: string, replace?: boolean) => string;
8
8
  export default navigateWithoutUrlParam;
@@ -0,0 +1,6 @@
1
+ import { getUrlQueryParams } from '@koine/utils';
2
+ import { navigateToParams } from './navigateToParams.esm.js';
3
+
4
+ let navigateWithoutUrlParam=(a,e)=>{let o={},i=getUrlQueryParams();for(let t in i)t!==a&&(o[t]=i[t]);return navigateToParams(o,e)};
5
+
6
+ export { navigateWithoutUrlParam as default, navigateWithoutUrlParam };
package/package.json CHANGED
@@ -2,18 +2,140 @@
2
2
  "name": "@koine/browser",
3
3
  "sideEffects": false,
4
4
  "dependencies": {
5
- "clsx": "1.2.1",
6
- "date-fns-tz": "^2.0.0",
7
- "ts-debounce": "^4.0.0",
8
- "type-fest": "^3.11.1"
5
+ "@koine/dom": "2.0.0-beta.200",
6
+ "@koine/utils": "2.0.0-beta.200",
7
+ "date-fns-tz": "^3.2.0"
9
8
  },
10
- "peerDependencies": {
11
- "@koine/dom": "2.0.0-beta.2",
12
- "@koine/utils": "2.0.0-beta.2",
13
- "tslib": "2.5.3"
9
+ "peerDependenciesMeta": {
10
+ "date-fns-tz": {
11
+ "optional": true
12
+ }
14
13
  },
15
- "main": "./index.js",
14
+ "exports": {
15
+ "./package.json": "./package.json",
16
+ ".": {
17
+ "module": "./index.esm.js",
18
+ "types": "./index.d.ts",
19
+ "import": "./index.cjs.mjs",
20
+ "default": "./index.cjs.js"
21
+ },
22
+ "./createStorage": {
23
+ "module": "./createStorage.esm.js",
24
+ "types": "./createStorage.d.ts",
25
+ "import": "./createStorage.cjs.mjs",
26
+ "default": "./createStorage.cjs.js"
27
+ },
28
+ "./getZonedDate": {
29
+ "module": "./getZonedDate.esm.js",
30
+ "types": "./getZonedDate.d.ts",
31
+ "import": "./getZonedDate.cjs.mjs",
32
+ "default": "./getZonedDate.cjs.js"
33
+ },
34
+ "./gtag": {
35
+ "module": "./gtag.esm.js",
36
+ "types": "./gtag.d.ts",
37
+ "import": "./gtag.cjs.mjs",
38
+ "default": "./gtag.cjs.js"
39
+ },
40
+ "./gtagPageview": {
41
+ "module": "./gtagPageview.esm.js",
42
+ "types": "./gtagPageview.d.ts",
43
+ "import": "./gtagPageview.cjs.mjs",
44
+ "default": "./gtagPageview.cjs.js"
45
+ },
46
+ "./isIE": {
47
+ "module": "./isIE.esm.js",
48
+ "types": "./isIE.d.ts",
49
+ "import": "./isIE.cjs.mjs",
50
+ "default": "./isIE.cjs.js"
51
+ },
52
+ "./isMobile": {
53
+ "module": "./isMobile.esm.js",
54
+ "types": "./isMobile.d.ts",
55
+ "import": "./isMobile.cjs.mjs",
56
+ "default": "./isMobile.cjs.js"
57
+ },
58
+ "./isWindowInsideIframe": {
59
+ "module": "./isWindowInsideIframe.esm.js",
60
+ "types": "./isWindowInsideIframe.d.ts",
61
+ "import": "./isWindowInsideIframe.cjs.mjs",
62
+ "default": "./isWindowInsideIframe.cjs.js"
63
+ },
64
+ "./listenUrlSearch": {
65
+ "module": "./listenUrlSearch.esm.js",
66
+ "types": "./listenUrlSearch.d.ts",
67
+ "import": "./listenUrlSearch.cjs.mjs",
68
+ "default": "./listenUrlSearch.cjs.js"
69
+ },
70
+ "./listenUrlSearchParams": {
71
+ "module": "./listenUrlSearchParams.esm.js",
72
+ "types": "./listenUrlSearchParams.d.ts",
73
+ "import": "./listenUrlSearchParams.cjs.mjs",
74
+ "default": "./listenUrlSearchParams.cjs.js"
75
+ },
76
+ "./navigateToHash": {
77
+ "module": "./navigateToHash.esm.js",
78
+ "types": "./navigateToHash.d.ts",
79
+ "import": "./navigateToHash.cjs.mjs",
80
+ "default": "./navigateToHash.cjs.js"
81
+ },
82
+ "./navigateToHashParams": {
83
+ "module": "./navigateToHashParams.esm.js",
84
+ "types": "./navigateToHashParams.d.ts",
85
+ "import": "./navigateToHashParams.cjs.mjs",
86
+ "default": "./navigateToHashParams.cjs.js"
87
+ },
88
+ "./navigateToMergedHashParams": {
89
+ "module": "./navigateToMergedHashParams.esm.js",
90
+ "types": "./navigateToMergedHashParams.d.ts",
91
+ "import": "./navigateToMergedHashParams.cjs.mjs",
92
+ "default": "./navigateToMergedHashParams.cjs.js"
93
+ },
94
+ "./navigateToMergedParams": {
95
+ "module": "./navigateToMergedParams.esm.js",
96
+ "types": "./navigateToMergedParams.d.ts",
97
+ "import": "./navigateToMergedParams.cjs.mjs",
98
+ "default": "./navigateToMergedParams.cjs.js"
99
+ },
100
+ "./navigateToParams": {
101
+ "module": "./navigateToParams.esm.js",
102
+ "types": "./navigateToParams.d.ts",
103
+ "import": "./navigateToParams.cjs.mjs",
104
+ "default": "./navigateToParams.cjs.js"
105
+ },
106
+ "./navigateToUrl": {
107
+ "module": "./navigateToUrl.esm.js",
108
+ "types": "./navigateToUrl.d.ts",
109
+ "import": "./navigateToUrl.cjs.mjs",
110
+ "default": "./navigateToUrl.cjs.js"
111
+ },
112
+ "./navigateWithoutUrlParam": {
113
+ "module": "./navigateWithoutUrlParam.esm.js",
114
+ "types": "./navigateWithoutUrlParam.d.ts",
115
+ "import": "./navigateWithoutUrlParam.cjs.mjs",
116
+ "default": "./navigateWithoutUrlParam.cjs.js"
117
+ },
118
+ "./redirectTo": {
119
+ "module": "./redirectTo.esm.js",
120
+ "types": "./redirectTo.d.ts",
121
+ "import": "./redirectTo.cjs.mjs",
122
+ "default": "./redirectTo.cjs.js"
123
+ },
124
+ "./storage": {
125
+ "module": "./storage.esm.js",
126
+ "types": "./storage.d.ts",
127
+ "import": "./storage.cjs.mjs",
128
+ "default": "./storage.cjs.js"
129
+ },
130
+ "./storageClient": {
131
+ "module": "./storageClient.esm.js",
132
+ "types": "./storageClient.d.ts",
133
+ "import": "./storageClient.cjs.mjs",
134
+ "default": "./storageClient.cjs.js"
135
+ }
136
+ },
137
+ "module": "./index.esm.js",
138
+ "main": "./index.cjs.js",
16
139
  "types": "./index.d.ts",
17
- "version": "2.0.0-beta.2",
18
- "module": "./index.mjs"
140
+ "version": "2.0.0-beta.200"
19
141
  }
@@ -0,0 +1 @@
1
+ exports._default = require('./redirectTo.cjs.js').default;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+
7
+ let redirectTo=(t,o)=>{if(utils.isBrowser){let r=utils.buildUrlQueryString(o);location.href=t.replace(/\?+$/g,"")+r;}};
8
+
9
+ exports.default = redirectTo;
10
+ exports.redirectTo = redirectTo;
@@ -0,0 +1,2 @@
1
+ export * from './redirectTo.cjs.js';
2
+ export { _default as default } from './redirectTo.cjs.default.js';
package/redirectTo.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import type { AnyQueryParams } from "@koine/utils/location";
1
+ import { type AnyQueryParams } from "@koine/utils";
2
2
  /**
3
3
  * Redirect to url with params {optionally}, removes eventual trailing question
4
4
  * marks from the given URL, it uses `location`
5
5
  *
6
6
  * @category location
7
7
  */
8
- export declare function redirectTo(url: string, params?: AnyQueryParams): void;
8
+ export declare let redirectTo: (url: string, params?: AnyQueryParams) => void;
9
9
  export default redirectTo;
@@ -0,0 +1,5 @@
1
+ import { isBrowser, buildUrlQueryString } from '@koine/utils';
2
+
3
+ let redirectTo=(t,o)=>{if(isBrowser){let r=buildUrlQueryString(o);location.href=t.replace(/\?+$/g,"")+r;}};
4
+
5
+ export { redirectTo as default, redirectTo };
@@ -0,0 +1 @@
1
+ exports._default = require('./storage.cjs.js').default;
package/storage.cjs.js ADDED
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var storageClient = require('./storageClient.cjs.js');
6
+
7
+ let storage={l:storageClient.storageClient(),s:storageClient.storageClient(true)};
8
+
9
+ exports.default = storage;
10
+ exports.storage = storage;
@@ -0,0 +1,2 @@
1
+ export * from './storage.cjs.js';
2
+ export { _default as default } from './storage.cjs.default.js';
package/storage.d.ts CHANGED
@@ -1,18 +1,20 @@
1
1
  /**
2
2
  * Storage, for `localStorage` and `sessionStorage`
3
+ *
4
+ * @category storage
3
5
  */
4
- export declare const storage: {
6
+ export declare let storage: {
5
7
  l: {
6
8
  get: <TKey extends string, TValue = any>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
7
- set: <TKey_1 extends string, TValue_1 = any>(key: TKey_1, value?: TValue_1 | undefined, transform?: (value: any) => string) => void;
8
- remove: <TKey_2 extends string>(key: TKey_2) => void;
9
- has: <TKey_3 extends string, TValue_2 = any>(key: TKey_3, defaultValue?: TValue_2 | undefined) => boolean | NonNullable<TValue_2>;
9
+ set: <TKey extends string, TValue = any>(key: TKey, value?: TValue | undefined, transform?: (value: any) => string) => void;
10
+ remove: <TKey extends string>(key: TKey) => void;
11
+ has: <TKey extends string, TValue = any>(key: TKey, defaultValue?: TValue | undefined) => boolean | NonNullable<TValue>;
10
12
  };
11
13
  s: {
12
14
  get: <TKey extends string, TValue = any>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
13
- set: <TKey_1 extends string, TValue_1 = any>(key: TKey_1, value?: TValue_1 | undefined, transform?: (value: any) => string) => void;
14
- remove: <TKey_2 extends string>(key: TKey_2) => void;
15
- has: <TKey_3 extends string, TValue_2 = any>(key: TKey_3, defaultValue?: TValue_2 | undefined) => boolean | NonNullable<TValue_2>;
15
+ set: <TKey extends string, TValue = any>(key: TKey, value?: TValue | undefined, transform?: (value: any) => string) => void;
16
+ remove: <TKey extends string>(key: TKey) => void;
17
+ has: <TKey extends string, TValue = any>(key: TKey, defaultValue?: TValue | undefined) => boolean | NonNullable<TValue>;
16
18
  };
17
19
  };
18
20
  export default storage;
package/storage.esm.js ADDED
@@ -0,0 +1,5 @@
1
+ import { storageClient } from './storageClient.esm.js';
2
+
3
+ let storage={l:storageClient(),s:storageClient(true)};
4
+
5
+ export { storage as default, storage };
@@ -0,0 +1 @@
1
+ exports._default = require('./storageClient.cjs.js').default;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+
7
+ let t={g:"getItem",s:"setItem",r:"removeItem"};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;}}}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??false;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)??false),s}}};
8
+
9
+ exports.default = storageClient;
10
+ exports.storageClient = storageClient;
@@ -0,0 +1,2 @@
1
+ export * from './storageClient.cjs.js';
2
+ export { _default as default } from './storageClient.cjs.default.js';
@@ -1,11 +1,16 @@
1
+ /**
2
+ * @category storage
3
+ */
1
4
  export type StorageClientConfig = Record<string, any>;
2
5
  /**
3
6
  * Super minifiable `local/session Storage` client creator with SSR safety
7
+ *
8
+ * @category storage
4
9
  */
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;
7
- 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
- remove: <TKey_2 extends Extract<keyof TConfig, string>>(key: TKey_2) => void;
9
- has: <TKey_3 extends Extract<keyof TConfig, string>, TValue_2 = TConfig[TKey_3]>(key: TKey_3, defaultValue?: TValue_2 | undefined) => boolean | NonNullable<TValue_2>;
10
+ export declare let storageClient: <TConfig extends StorageClientConfig = StorageClientConfig>(useSessionStorage?: boolean) => {
11
+ get: <TKey extends Extract<keyof TConfig, string>, TValue = TConfig[TKey]>(key: TKey, transform?: (value: string) => TValue, defaultValue?: null | TValue) => NonNullable<TValue> | null;
12
+ set: <TKey extends Extract<keyof TConfig, string>, TValue_1 = TConfig[TKey]>(key: TKey, value?: TValue_1, transform?: (value: any) => string) => void;
13
+ remove: <TKey extends Extract<keyof TConfig, string>>(key: TKey) => void;
14
+ has: <TKey extends Extract<keyof TConfig, string>, TValue_2 = TConfig[TKey]>(key: TKey, defaultValue?: TValue_2) => boolean | NonNullable<TValue_2>;
10
15
  };
11
16
  export default storageClient;
@@ -0,0 +1,5 @@
1
+ import { isBrowser, isString } from '@koine/utils';
2
+
3
+ let t={g:"getItem",s:"setItem",r:"removeItem"};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;}}}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??false;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)??false),s}}};
4
+
5
+ export { storageClient as default, storageClient };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
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;