tool-shack 1.0.0 → 1.1.0
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 +97 -93
- package/dist/cjs/browser/getCookie.d.ts.map +1 -1
- package/dist/cjs/browser/getCookie.js +12 -2
- package/dist/cjs/browser/getCookie.js.map +1 -1
- package/dist/cjs/browser/getQueryParams.d.ts +1 -1
- package/dist/cjs/browser/getQueryParams.d.ts.map +1 -1
- package/dist/cjs/browser/getQueryParams.js +10 -15
- package/dist/cjs/browser/getQueryParams.js.map +1 -1
- package/dist/cjs/browser/index.d.ts +2 -0
- package/dist/cjs/browser/index.d.ts.map +1 -1
- package/dist/cjs/browser/index.js +33 -18
- package/dist/cjs/browser/index.js.map +1 -1
- package/dist/cjs/browser/interfaces/index.js +17 -4
- package/dist/cjs/browser/interfaces/index.js.map +1 -1
- package/dist/cjs/browser/isPageVisible.d.ts +10 -0
- package/dist/cjs/browser/isPageVisible.d.ts.map +1 -0
- package/dist/cjs/browser/isPageVisible.js +14 -0
- package/dist/cjs/browser/isPageVisible.js.map +1 -0
- package/dist/cjs/browser/isPushNotificationSupported.d.ts +5 -2
- package/dist/cjs/browser/isPushNotificationSupported.d.ts.map +1 -1
- package/dist/cjs/browser/isPushNotificationSupported.js +6 -3
- package/dist/cjs/browser/isPushNotificationSupported.js.map +1 -1
- package/dist/cjs/browser/isTabFocused.d.ts +2 -3
- package/dist/cjs/browser/isTabFocused.d.ts.map +1 -1
- package/dist/cjs/browser/isTabFocused.js +4 -5
- package/dist/cjs/browser/isTabFocused.js.map +1 -1
- package/dist/cjs/browser/pageVisibilityListener.d.ts +12 -0
- package/dist/cjs/browser/pageVisibilityListener.d.ts.map +1 -0
- package/dist/cjs/browser/pageVisibilityListener.js +30 -0
- package/dist/cjs/browser/pageVisibilityListener.js.map +1 -0
- package/dist/cjs/browser/preferColorScheme.d.ts +4 -2
- package/dist/cjs/browser/preferColorScheme.d.ts.map +1 -1
- package/dist/cjs/browser/preferColorScheme.js +4 -2
- package/dist/cjs/browser/preferColorScheme.js.map +1 -1
- package/dist/cjs/browser/tabFocusListener.d.ts +3 -6
- package/dist/cjs/browser/tabFocusListener.d.ts.map +1 -1
- package/dist/cjs/browser/tabFocusListener.js +4 -17
- package/dist/cjs/browser/tabFocusListener.js.map +1 -1
- package/dist/cjs/dateTime/dateAsIso.d.ts +5 -3
- package/dist/cjs/dateTime/dateAsIso.d.ts.map +1 -1
- package/dist/cjs/dateTime/dateAsIso.js +5 -3
- package/dist/cjs/dateTime/dateAsIso.js.map +1 -1
- package/dist/cjs/dateTime/index.js +19 -6
- package/dist/cjs/dateTime/index.js.map +1 -1
- package/dist/cjs/dateTime/interfaces/index.js +15 -2
- package/dist/cjs/dateTime/interfaces/index.js.map +1 -1
- package/dist/cjs/dom/addAsyncEventListener.d.ts +2 -2
- package/dist/cjs/dom/addAsyncEventListener.d.ts.map +1 -1
- package/dist/cjs/dom/addAsyncEventListener.js +25 -13
- package/dist/cjs/dom/addAsyncEventListener.js.map +1 -1
- package/dist/cjs/dom/addClickOutsideListener.d.ts +2 -2
- package/dist/cjs/dom/addClickOutsideListener.d.ts.map +1 -1
- package/dist/cjs/dom/addClickOutsideListener.js +8 -4
- package/dist/cjs/dom/addClickOutsideListener.js.map +1 -1
- package/dist/cjs/dom/addEventListener.d.ts +5 -3
- package/dist/cjs/dom/addEventListener.d.ts.map +1 -1
- package/dist/cjs/dom/addEventListener.js +5 -3
- package/dist/cjs/dom/addEventListener.js.map +1 -1
- package/dist/cjs/dom/copyToClipboard.d.ts.map +1 -1
- package/dist/cjs/dom/copyToClipboard.js +8 -5
- package/dist/cjs/dom/copyToClipboard.js.map +1 -1
- package/dist/cjs/dom/createElement.d.ts +6 -3
- package/dist/cjs/dom/createElement.d.ts.map +1 -1
- package/dist/cjs/dom/createElement.js +1 -1
- package/dist/cjs/dom/createElement.js.map +1 -1
- package/dist/cjs/dom/fireEvent.d.ts +4 -4
- package/dist/cjs/dom/fireEvent.js +4 -4
- package/dist/cjs/dom/index.d.ts +1 -0
- package/dist/cjs/dom/index.d.ts.map +1 -1
- package/dist/cjs/dom/index.js +29 -15
- package/dist/cjs/dom/index.js.map +1 -1
- package/dist/cjs/dom/interfaces/createElement.d.ts +1 -1
- package/dist/cjs/dom/interfaces/index.js +16 -3
- package/dist/cjs/dom/interfaces/index.js.map +1 -1
- package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts.map +1 -1
- package/dist/cjs/dom/toggleFullscreenWithFallback.js +45 -34
- package/dist/cjs/dom/toggleFullscreenWithFallback.js.map +1 -1
- package/dist/cjs/dom/types/createElement.d.ts +3 -0
- package/dist/cjs/dom/types/createElement.d.ts.map +1 -0
- package/dist/cjs/dom/types/createElement.js +3 -0
- package/dist/cjs/dom/types/createElement.js.map +1 -0
- package/dist/cjs/dom/types/index.d.ts +3 -0
- package/dist/cjs/dom/types/index.d.ts.map +1 -0
- package/dist/cjs/dom/types/index.js +19 -0
- package/dist/cjs/dom/types/index.js.map +1 -0
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts +15 -0
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts.map +1 -0
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.js +3 -0
- package/dist/cjs/dom/types/toggleFullscreenWithFallback.js.map +1 -0
- package/dist/cjs/general/chunk.d.ts +1 -1
- package/dist/cjs/general/chunk.js +1 -1
- package/dist/cjs/general/groupBy.js +1 -1
- package/dist/cjs/general/groupBy.js.map +1 -1
- package/dist/cjs/general/index.js +23 -10
- package/dist/cjs/general/index.js.map +1 -1
- package/dist/cjs/general/isEmpty.d.ts.map +1 -1
- package/dist/cjs/general/isEmpty.js +3 -0
- package/dist/cjs/general/isEmpty.js.map +1 -1
- package/dist/cjs/general/isEqual.d.ts +4 -2
- package/dist/cjs/general/isEqual.d.ts.map +1 -1
- package/dist/cjs/general/isEqual.js +4 -2
- package/dist/cjs/general/isEqual.js.map +1 -1
- package/dist/cjs/index.js +21 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/schedule/debounce.d.ts +2 -2
- package/dist/cjs/schedule/debounce.d.ts.map +1 -1
- package/dist/cjs/schedule/debounce.js +1 -1
- package/dist/cjs/schedule/index.js +21 -8
- package/dist/cjs/schedule/index.js.map +1 -1
- package/dist/cjs/schedule/interfaces/debounce.d.ts +1 -1
- package/dist/cjs/schedule/interfaces/debounce.d.ts.map +1 -1
- package/dist/cjs/schedule/interfaces/index.js +18 -5
- package/dist/cjs/schedule/interfaces/index.js.map +1 -1
- package/dist/cjs/schedule/interfaces/throttle.d.ts +1 -1
- package/dist/cjs/schedule/interfaces/throttle.d.ts.map +1 -1
- package/dist/cjs/schedule/runAsync.d.ts +5 -3
- package/dist/cjs/schedule/runAsync.d.ts.map +1 -1
- package/dist/cjs/schedule/runAsync.js +5 -3
- package/dist/cjs/schedule/runAsync.js.map +1 -1
- package/dist/cjs/schedule/throttle.d.ts +2 -2
- package/dist/cjs/schedule/throttle.d.ts.map +1 -1
- package/dist/cjs/schedule/throttle.js +1 -1
- package/dist/cjs/storage/index.js +23 -10
- package/dist/cjs/storage/index.js.map +1 -1
- package/dist/cjs/storage/interfaces/index.js +15 -2
- package/dist/cjs/storage/interfaces/index.js.map +1 -1
- package/dist/cjs/storage/setLocalStorage.d.ts +1 -1
- package/dist/cjs/storage/setLocalStorage.d.ts.map +1 -1
- package/dist/cjs/storage/setLocalStorage.js +4 -1
- package/dist/cjs/storage/setLocalStorage.js.map +1 -1
- package/dist/cjs/storage/setSessionStorage.d.ts +1 -1
- package/dist/cjs/storage/setSessionStorage.d.ts.map +1 -1
- package/dist/cjs/storage/setSessionStorage.js +4 -1
- package/dist/cjs/storage/setSessionStorage.js.map +1 -1
- package/dist/cjs/string/escapeHTML.d.ts +5 -3
- package/dist/cjs/string/escapeHTML.d.ts.map +1 -1
- package/dist/cjs/string/escapeHTML.js +11 -8
- package/dist/cjs/string/escapeHTML.js.map +1 -1
- package/dist/cjs/string/index.js +32 -19
- package/dist/cjs/string/index.js.map +1 -1
- package/dist/cjs/string/interfaces/index.js +15 -2
- package/dist/cjs/string/interfaces/index.js.map +1 -1
- package/dist/cjs/string/slugify.js +2 -2
- package/dist/cjs/string/slugify.js.map +1 -1
- package/dist/esm/browser/getCookie.d.ts.map +1 -1
- package/dist/esm/browser/getCookie.js +12 -2
- package/dist/esm/browser/getCookie.js.map +1 -1
- package/dist/esm/browser/getQueryParams.d.ts +1 -1
- package/dist/esm/browser/getQueryParams.d.ts.map +1 -1
- package/dist/esm/browser/getQueryParams.js +10 -15
- package/dist/esm/browser/getQueryParams.js.map +1 -1
- package/dist/esm/browser/index.d.ts +2 -0
- package/dist/esm/browser/index.d.ts.map +1 -1
- package/dist/esm/browser/index.js +2 -0
- package/dist/esm/browser/index.js.map +1 -1
- package/dist/esm/browser/isPageVisible.d.ts +10 -0
- package/dist/esm/browser/isPageVisible.d.ts.map +1 -0
- package/dist/esm/browser/isPageVisible.js +10 -0
- package/dist/esm/browser/isPageVisible.js.map +1 -0
- package/dist/esm/browser/isPushNotificationSupported.d.ts +5 -2
- package/dist/esm/browser/isPushNotificationSupported.d.ts.map +1 -1
- package/dist/esm/browser/isPushNotificationSupported.js +6 -3
- package/dist/esm/browser/isPushNotificationSupported.js.map +1 -1
- package/dist/esm/browser/isTabFocused.d.ts +2 -3
- package/dist/esm/browser/isTabFocused.d.ts.map +1 -1
- package/dist/esm/browser/isTabFocused.js +4 -4
- package/dist/esm/browser/isTabFocused.js.map +1 -1
- package/dist/esm/browser/pageVisibilityListener.d.ts +12 -0
- package/dist/esm/browser/pageVisibilityListener.d.ts.map +1 -0
- package/dist/esm/browser/pageVisibilityListener.js +26 -0
- package/dist/esm/browser/pageVisibilityListener.js.map +1 -0
- package/dist/esm/browser/preferColorScheme.d.ts +4 -2
- package/dist/esm/browser/preferColorScheme.d.ts.map +1 -1
- package/dist/esm/browser/preferColorScheme.js +4 -2
- package/dist/esm/browser/preferColorScheme.js.map +1 -1
- package/dist/esm/browser/tabFocusListener.d.ts +3 -6
- package/dist/esm/browser/tabFocusListener.d.ts.map +1 -1
- package/dist/esm/browser/tabFocusListener.js +4 -16
- package/dist/esm/browser/tabFocusListener.js.map +1 -1
- package/dist/esm/dateTime/dateAsIso.d.ts +5 -3
- package/dist/esm/dateTime/dateAsIso.d.ts.map +1 -1
- package/dist/esm/dateTime/dateAsIso.js +5 -3
- package/dist/esm/dateTime/dateAsIso.js.map +1 -1
- package/dist/esm/dom/addAsyncEventListener.d.ts +2 -2
- package/dist/esm/dom/addAsyncEventListener.d.ts.map +1 -1
- package/dist/esm/dom/addAsyncEventListener.js +25 -13
- package/dist/esm/dom/addAsyncEventListener.js.map +1 -1
- package/dist/esm/dom/addClickOutsideListener.d.ts +2 -2
- package/dist/esm/dom/addClickOutsideListener.d.ts.map +1 -1
- package/dist/esm/dom/addClickOutsideListener.js +8 -4
- package/dist/esm/dom/addClickOutsideListener.js.map +1 -1
- package/dist/esm/dom/addEventListener.d.ts +5 -3
- package/dist/esm/dom/addEventListener.d.ts.map +1 -1
- package/dist/esm/dom/addEventListener.js +5 -3
- package/dist/esm/dom/addEventListener.js.map +1 -1
- package/dist/esm/dom/copyToClipboard.d.ts.map +1 -1
- package/dist/esm/dom/copyToClipboard.js +8 -5
- package/dist/esm/dom/copyToClipboard.js.map +1 -1
- package/dist/esm/dom/createElement.d.ts +6 -3
- package/dist/esm/dom/createElement.d.ts.map +1 -1
- package/dist/esm/dom/createElement.js +1 -1
- package/dist/esm/dom/createElement.js.map +1 -1
- package/dist/esm/dom/fireEvent.d.ts +4 -4
- package/dist/esm/dom/fireEvent.js +4 -4
- package/dist/esm/dom/index.d.ts +1 -0
- package/dist/esm/dom/index.d.ts.map +1 -1
- package/dist/esm/dom/index.js +1 -0
- package/dist/esm/dom/index.js.map +1 -1
- package/dist/esm/dom/interfaces/createElement.d.ts +1 -1
- package/dist/esm/dom/toggleFullscreenWithFallback.d.ts.map +1 -1
- package/dist/esm/dom/toggleFullscreenWithFallback.js +45 -34
- package/dist/esm/dom/toggleFullscreenWithFallback.js.map +1 -1
- package/dist/esm/dom/types/createElement.d.ts +3 -0
- package/dist/esm/dom/types/createElement.d.ts.map +1 -0
- package/dist/esm/dom/types/createElement.js +2 -0
- package/dist/esm/dom/types/createElement.js.map +1 -0
- package/dist/esm/dom/types/index.d.ts +3 -0
- package/dist/esm/dom/types/index.d.ts.map +1 -0
- package/dist/esm/dom/types/index.js +3 -0
- package/dist/esm/dom/types/index.js.map +1 -0
- package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts +15 -0
- package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts.map +1 -0
- package/dist/esm/dom/types/toggleFullscreenWithFallback.js +2 -0
- package/dist/esm/dom/types/toggleFullscreenWithFallback.js.map +1 -0
- package/dist/esm/general/chunk.d.ts +1 -1
- package/dist/esm/general/chunk.js +1 -1
- package/dist/esm/general/groupBy.js +1 -1
- package/dist/esm/general/groupBy.js.map +1 -1
- package/dist/esm/general/isEmpty.d.ts.map +1 -1
- package/dist/esm/general/isEmpty.js +3 -0
- package/dist/esm/general/isEmpty.js.map +1 -1
- package/dist/esm/general/isEqual.d.ts +4 -2
- package/dist/esm/general/isEqual.d.ts.map +1 -1
- package/dist/esm/general/isEqual.js +4 -2
- package/dist/esm/general/isEqual.js.map +1 -1
- package/dist/esm/schedule/debounce.d.ts +2 -2
- package/dist/esm/schedule/debounce.d.ts.map +1 -1
- package/dist/esm/schedule/debounce.js +1 -1
- package/dist/esm/schedule/interfaces/debounce.d.ts +1 -1
- package/dist/esm/schedule/interfaces/debounce.d.ts.map +1 -1
- package/dist/esm/schedule/interfaces/throttle.d.ts +1 -1
- package/dist/esm/schedule/interfaces/throttle.d.ts.map +1 -1
- package/dist/esm/schedule/runAsync.d.ts +5 -3
- package/dist/esm/schedule/runAsync.d.ts.map +1 -1
- package/dist/esm/schedule/runAsync.js +5 -3
- package/dist/esm/schedule/runAsync.js.map +1 -1
- package/dist/esm/schedule/throttle.d.ts +2 -2
- package/dist/esm/schedule/throttle.d.ts.map +1 -1
- package/dist/esm/schedule/throttle.js +1 -1
- package/dist/esm/storage/setLocalStorage.d.ts +1 -1
- package/dist/esm/storage/setLocalStorage.d.ts.map +1 -1
- package/dist/esm/storage/setLocalStorage.js +4 -1
- package/dist/esm/storage/setLocalStorage.js.map +1 -1
- package/dist/esm/storage/setSessionStorage.d.ts +1 -1
- package/dist/esm/storage/setSessionStorage.d.ts.map +1 -1
- package/dist/esm/storage/setSessionStorage.js +4 -1
- package/dist/esm/storage/setSessionStorage.js.map +1 -1
- package/dist/esm/string/escapeHTML.d.ts +5 -3
- package/dist/esm/string/escapeHTML.d.ts.map +1 -1
- package/dist/esm/string/escapeHTML.js +11 -8
- package/dist/esm/string/escapeHTML.js.map +1 -1
- package/dist/esm/string/slugify.js +2 -2
- package/dist/esm/string/slugify.js.map +1 -1
- package/package.json +10 -9
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runAsync = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Run function in
|
|
5
|
+
* Run a function in a Web Worker by serializing its source into a Blob URL
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Closures, imports, and `this` are not available. Async callbacks are not awaited before `postMessage`.
|
|
8
|
+
*
|
|
9
|
+
* @param workerFunction Function whose source is run in the worker
|
|
10
|
+
* @returns Promise of the posted result
|
|
9
11
|
*/
|
|
10
12
|
const runAsync = (workerFunction) => {
|
|
11
13
|
const worker = new Worker(URL.createObjectURL(new Blob([`postMessage((${workerFunction})());`])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runAsync.js","sourceRoot":"","sources":["../../../src/schedule/runAsync.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"runAsync.js","sourceRoot":"","sources":["../../../src/schedule/runAsync.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACI,MAAM,QAAQ,GAAG,CAAI,cAAoC,EAAc,EAAE;IAC9E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,gBAAgB,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAElG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAmB,EAAE,EAAE;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAdW,QAAA,QAAQ,YAcnB"}
|
|
@@ -3,8 +3,8 @@ import type { IThrottledFunction } from './interfaces/throttle.js';
|
|
|
3
3
|
* Creates a throttled function that only invokes callback at most once per every limit milliseconds
|
|
4
4
|
*
|
|
5
5
|
* @param callback Function to throttle
|
|
6
|
-
* @param limit Milliseconds to limit invocations
|
|
6
|
+
* @param limit Milliseconds to limit invocations (default 300)
|
|
7
7
|
* @returns Throttled function with cancel method
|
|
8
8
|
*/
|
|
9
|
-
export declare const throttle: <T extends (...args:
|
|
9
|
+
export declare const throttle: <T extends (...args: never[]) => unknown>(callback: T, limit?: number) => IThrottledFunction<T>;
|
|
10
10
|
//# sourceMappingURL=throttle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/schedule/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/schedule/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAC9D,UAAU,CAAC,EACX,cAAW,KACV,kBAAkB,CAAC,CAAC,CA6BtB,CAAC"}
|
|
@@ -5,7 +5,7 @@ exports.throttle = void 0;
|
|
|
5
5
|
* Creates a throttled function that only invokes callback at most once per every limit milliseconds
|
|
6
6
|
*
|
|
7
7
|
* @param callback Function to throttle
|
|
8
|
-
* @param limit Milliseconds to limit invocations
|
|
8
|
+
* @param limit Milliseconds to limit invocations (default 300)
|
|
9
9
|
* @returns Throttled function with cancel method
|
|
10
10
|
*/
|
|
11
11
|
const throttle = (callback, limit = 300) => {
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
tslib_1.__exportStar(require("./setSessionStorage.js"), exports);
|
|
17
|
+
__exportStar(require("./interfaces/index.js"), exports);
|
|
18
|
+
__exportStar(require("./clearLocalStorage.js"), exports);
|
|
19
|
+
__exportStar(require("./clearSessionStorage.js"), exports);
|
|
20
|
+
__exportStar(require("./getLocalStorage.js"), exports);
|
|
21
|
+
__exportStar(require("./getSessionStorage.js"), exports);
|
|
22
|
+
__exportStar(require("./removeLocalStorage.js"), exports);
|
|
23
|
+
__exportStar(require("./removeSessionStorage.js"), exports);
|
|
24
|
+
__exportStar(require("./setLocalStorage.js"), exports);
|
|
25
|
+
__exportStar(require("./setSessionStorage.js"), exports);
|
|
13
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AAEtC,yDAAuC;AACvC,2DAAyC;AACzC,uDAAqC;AACrC,yDAAuC;AACvC,0DAAwC;AACxC,4DAA0C;AAC1C,uDAAqC;AACrC,yDAAuC"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
tslib_1.__exportStar(require("./storage.js"), exports);
|
|
17
|
+
__exportStar(require("./storage.js"), exports);
|
|
5
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/storage/interfaces/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/storage/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B"}
|
|
@@ -5,7 +5,7 @@ import type { IStorageOptions } from './interfaces/storage.js';
|
|
|
5
5
|
* @param key Storage key
|
|
6
6
|
* @param value Value to store
|
|
7
7
|
* @param options Storage options including optional Base64 encoding
|
|
8
|
-
* @returns
|
|
8
|
+
* @returns Whether a JSON-serializable payload was stored
|
|
9
9
|
*/
|
|
10
10
|
export declare const setLocalStorage: <T>(key: string, value: T, options?: IStorageOptions) => boolean;
|
|
11
11
|
//# sourceMappingURL=setLocalStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setLocalStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,
|
|
1
|
+
{"version":3,"file":"setLocalStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,OAerF,CAAC"}
|
|
@@ -8,7 +8,7 @@ const index_js_1 = require("../string/index.js");
|
|
|
8
8
|
* @param key Storage key
|
|
9
9
|
* @param value Value to store
|
|
10
10
|
* @param options Storage options including optional Base64 encoding
|
|
11
|
-
* @returns
|
|
11
|
+
* @returns Whether a JSON-serializable payload was stored
|
|
12
12
|
*/
|
|
13
13
|
const setLocalStorage = (key, value, options) => {
|
|
14
14
|
try {
|
|
@@ -16,6 +16,9 @@ const setLocalStorage = (key, value, options) => {
|
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
18
|
const json = JSON.stringify(value);
|
|
19
|
+
if (json === undefined) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
19
22
|
const payload = options?.encode ? (0, index_js_1.encodeBase64)(json) : json;
|
|
20
23
|
localStorage.setItem(key, payload);
|
|
21
24
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setLocalStorage.js","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAElD;;;;;;;GAOG;AACI,MAAM,eAAe,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAC9F,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"setLocalStorage.js","sourceRoot":"","sources":["../../../src/storage/setLocalStorage.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAElD;;;;;;;GAOG;AACI,MAAM,eAAe,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAC9F,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAfW,QAAA,eAAe,mBAe1B"}
|
|
@@ -5,7 +5,7 @@ import type { IStorageOptions } from './interfaces/storage.js';
|
|
|
5
5
|
* @param key Storage key
|
|
6
6
|
* @param value Value to store
|
|
7
7
|
* @param options Storage options including optional Base64 encoding
|
|
8
|
-
* @returns
|
|
8
|
+
* @returns Whether a JSON-serializable payload was stored
|
|
9
9
|
*/
|
|
10
10
|
export declare const setSessionStorage: <T>(key: string, value: T, options?: IStorageOptions) => boolean;
|
|
11
11
|
//# sourceMappingURL=setSessionStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setSessionStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,
|
|
1
|
+
{"version":3,"file":"setSessionStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,eAAe,KAAG,OAevF,CAAC"}
|
|
@@ -8,7 +8,7 @@ const index_js_1 = require("../string/index.js");
|
|
|
8
8
|
* @param key Storage key
|
|
9
9
|
* @param value Value to store
|
|
10
10
|
* @param options Storage options including optional Base64 encoding
|
|
11
|
-
* @returns
|
|
11
|
+
* @returns Whether a JSON-serializable payload was stored
|
|
12
12
|
*/
|
|
13
13
|
const setSessionStorage = (key, value, options) => {
|
|
14
14
|
try {
|
|
@@ -16,6 +16,9 @@ const setSessionStorage = (key, value, options) => {
|
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
18
|
const json = JSON.stringify(value);
|
|
19
|
+
if (json === undefined) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
19
22
|
const payload = options?.encode ? (0, index_js_1.encodeBase64)(json) : json;
|
|
20
23
|
sessionStorage.setItem(key, payload);
|
|
21
24
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setSessionStorage.js","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAElD;;;;;;;GAOG;AACI,MAAM,iBAAiB,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAChG,IAAI,CAAC;QACH,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"setSessionStorage.js","sourceRoot":"","sources":["../../../src/storage/setSessionStorage.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAElD;;;;;;;GAOG;AACI,MAAM,iBAAiB,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,OAAyB,EAAW,EAAE;IAChG,IAAI,CAAC;QACH,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAfW,QAAA,iBAAiB,qBAe5B"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Encode `&`, `<`, `>`, `"`, and `'` as HTML entities for ordinary text content or quoted attributes.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This is not an HTML sanitizer and is not safe for script, style, URL, or unquoted-attribute contexts.
|
|
5
|
+
*
|
|
6
|
+
* @param html String that may contain HTML-significant characters
|
|
7
|
+
* @returns String with `&`, `<`, `>`, `"`, and `'` replaced by HTML entities
|
|
6
8
|
*/
|
|
7
9
|
export declare const escapeHTML: (html: string) => string;
|
|
8
10
|
//# sourceMappingURL=escapeHTML.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escapeHTML.d.ts","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"escapeHTML.d.ts","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAMf,CAAC"}
|
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.escapeHTML = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Encode `&`, `<`, `>`, `"`, and `'` as HTML entities for ordinary text content or quoted attributes.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* This is not an HTML sanitizer and is not safe for script, style, URL, or unquoted-attribute contexts.
|
|
8
|
+
*
|
|
9
|
+
* @param html String that may contain HTML-significant characters
|
|
10
|
+
* @returns String with `&`, `<`, `>`, `"`, and `'` replaced by HTML entities
|
|
9
11
|
*/
|
|
10
|
-
const escapeHTML = (html) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const escapeHTML = (html) => html
|
|
13
|
+
.replace(/&/g, '&')
|
|
14
|
+
.replace(/</g, '<')
|
|
15
|
+
.replace(/>/g, '>')
|
|
16
|
+
.replace(/"/g, '"')
|
|
17
|
+
.replace(/'/g, ''');
|
|
15
18
|
exports.escapeHTML = escapeHTML;
|
|
16
19
|
//# sourceMappingURL=escapeHTML.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escapeHTML.js","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"escapeHTML.js","sourceRoot":"","sources":["../../../src/string/escapeHTML.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACI,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,IAAI;KACD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;KACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;KACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AANf,QAAA,UAAU,cAMK"}
|
package/dist/cjs/string/index.js
CHANGED
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
tslib_1.__exportStar(require("./unescapeHTML.js"), exports);
|
|
17
|
+
__exportStar(require("./interfaces/index.js"), exports);
|
|
18
|
+
__exportStar(require("./byteSize.js"), exports);
|
|
19
|
+
__exportStar(require("./camelCase.js"), exports);
|
|
20
|
+
__exportStar(require("./capitalize.js"), exports);
|
|
21
|
+
__exportStar(require("./decodeBase64.js"), exports);
|
|
22
|
+
__exportStar(require("./encodeBase64.js"), exports);
|
|
23
|
+
__exportStar(require("./escapeHTML.js"), exports);
|
|
24
|
+
__exportStar(require("./formatBytes.js"), exports);
|
|
25
|
+
__exportStar(require("./kebabCase.js"), exports);
|
|
26
|
+
__exportStar(require("./mask.js"), exports);
|
|
27
|
+
__exportStar(require("./pascalCase.js"), exports);
|
|
28
|
+
__exportStar(require("./randomCryptoString.js"), exports);
|
|
29
|
+
__exportStar(require("./randomString.js"), exports);
|
|
30
|
+
__exportStar(require("./removeDiacritics.js"), exports);
|
|
31
|
+
__exportStar(require("./slugify.js"), exports);
|
|
32
|
+
__exportStar(require("./snakeCase.js"), exports);
|
|
33
|
+
__exportStar(require("./truncate.js"), exports);
|
|
34
|
+
__exportStar(require("./unescapeHTML.js"), exports);
|
|
22
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/string/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/string/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AAEtC,gDAA8B;AAC9B,iDAA+B;AAC/B,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,4CAA0B;AAC1B,kDAAgC;AAChC,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC;AACtC,+CAA6B;AAC7B,iDAA+B;AAC/B,gDAA8B;AAC9B,oDAAkC"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
tslib_1.__exportStar(require("./mask.js"), exports);
|
|
17
|
+
__exportStar(require("./mask.js"), exports);
|
|
5
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/string/interfaces/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/string/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
|
|
@@ -11,8 +11,8 @@ const removeDiacritics_js_1 = require("./removeDiacritics.js");
|
|
|
11
11
|
*/
|
|
12
12
|
const slugify = (value, separator = '-') => {
|
|
13
13
|
separator = separator.trim().substring(0, 1) || '-';
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const escapedSeparator = separator.replace(/[.*+?^${}()|[\]\\-]/g, '\\$&');
|
|
15
|
+
const removeCharsRegex = new RegExp(`[^\\w\\s${escapedSeparator}]`, 'g');
|
|
16
16
|
const multipleSeparatorsRegex = new RegExp(`${escapedSeparator}+`, 'g');
|
|
17
17
|
const trimSeparatorsRegex = new RegExp(`^${escapedSeparator}+|${escapedSeparator}+$`, 'g');
|
|
18
18
|
return (0, removeDiacritics_js_1.removeDiacritics)(value.trim().toLowerCase())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugify.js","sourceRoot":"","sources":["../../../src/string/slugify.ts"],"names":[],"mappings":";;;AAAA,+DAAyD;AAEzD;;;;;;GAMG;AACI,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IAChE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;IACpD,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"slugify.js","sourceRoot":"","sources":["../../../src/string/slugify.ts"],"names":[],"mappings":";;;AAAA,+DAAyD;AAEzD;;;;;;GAMG;AACI,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IAChE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;IACpD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,WAAW,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IACzE,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,IAAI,gBAAgB,KAAK,gBAAgB,IAAI,EAAE,GAAG,CAAC,CAAC;IAE3F,OAAO,IAAA,sCAAgB,EAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChD,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;SAC1B,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC;SAC3C,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC;AAZW,QAAA,OAAO,WAYlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCookie.d.ts","sourceRoot":"","sources":["../../../src/browser/getCookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"getCookie.d.ts","sourceRoot":"","sources":["../../../src/browser/getCookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,IAiBjD,CAAC"}
|
|
@@ -5,7 +5,17 @@
|
|
|
5
5
|
* @returns Decoded cookie value or null if not found
|
|
6
6
|
*/
|
|
7
7
|
export const getCookie = (name) => {
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const encodedName = encodeURIComponent(name);
|
|
9
|
+
for (const part of document.cookie.split(';')) {
|
|
10
|
+
const entry = part.trim();
|
|
11
|
+
const separatorIndex = entry.indexOf('=');
|
|
12
|
+
if (separatorIndex === -1) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
if (entry.slice(0, separatorIndex) === encodedName) {
|
|
16
|
+
return decodeURIComponent(entry.slice(separatorIndex + 1));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
10
20
|
};
|
|
11
21
|
//# sourceMappingURL=getCookie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCookie.js","sourceRoot":"","sources":["../../../src/browser/getCookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAiB,EAAE;IACvD,MAAM,
|
|
1
|
+
{"version":3,"file":"getCookie.js","sourceRoot":"","sources":["../../../src/browser/getCookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAiB,EAAE;IACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,WAAW,EAAE,CAAC;YACnD,OAAO,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Extract query parameters from URL into a key-value record
|
|
3
3
|
*
|
|
4
4
|
* @param url Optional URL string (defaults to window.location.href)
|
|
5
|
-
* @returns Record of query parameters
|
|
5
|
+
* @returns Record of query parameters; empty if the URL is invalid or has no search
|
|
6
6
|
*/
|
|
7
7
|
export declare const getQueryParams: (url?: string) => Record<string, string>;
|
|
8
8
|
//# sourceMappingURL=getQueryParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQueryParams.d.ts","sourceRoot":"","sources":["../../../src/browser/getQueryParams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"getQueryParams.d.ts","sourceRoot":"","sources":["../../../src/browser/getQueryParams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAalE,CAAC"}
|
|
@@ -2,24 +2,19 @@
|
|
|
2
2
|
* Extract query parameters from URL into a key-value record
|
|
3
3
|
*
|
|
4
4
|
* @param url Optional URL string (defaults to window.location.href)
|
|
5
|
-
* @returns Record of query parameters
|
|
5
|
+
* @returns Record of query parameters; empty if the URL is invalid or has no search
|
|
6
6
|
*/
|
|
7
7
|
export const getQueryParams = (url) => {
|
|
8
|
-
let search = url
|
|
9
|
-
? url.includes('?')
|
|
10
|
-
? url.substring(url.indexOf('?'))
|
|
11
|
-
: ''
|
|
12
|
-
: typeof window !== 'undefined'
|
|
13
|
-
? window.location.search
|
|
14
|
-
: '';
|
|
15
|
-
if (search.includes('#')) {
|
|
16
|
-
search = search.substring(0, search.indexOf('#'));
|
|
17
|
-
}
|
|
18
|
-
const params = new URLSearchParams(search);
|
|
19
8
|
const result = {};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
const base = typeof window !== 'undefined' ? window.location.href : 'http://localhost/';
|
|
10
|
+
try {
|
|
11
|
+
new URL(url ?? base, base).searchParams.forEach((value, key) => {
|
|
12
|
+
result[key] = value;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
23
18
|
return result;
|
|
24
19
|
};
|
|
25
20
|
//# sourceMappingURL=getQueryParams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getQueryParams.js","sourceRoot":"","sources":["../../../src/browser/getQueryParams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAY,EAA0B,EAAE;IACrE,
|
|
1
|
+
{"version":3,"file":"getQueryParams.js","sourceRoot":"","sources":["../../../src/browser/getQueryParams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAY,EAA0B,EAAE;IACrE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAExF,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -4,12 +4,14 @@ export * from './detectOS.js';
|
|
|
4
4
|
export * from './downloadFile.js';
|
|
5
5
|
export * from './getCookie.js';
|
|
6
6
|
export * from './getQueryParams.js';
|
|
7
|
+
export * from './isPageVisible.js';
|
|
7
8
|
export * from './isPushNotificationSupported.js';
|
|
8
9
|
export * from './isScrollBehaviorSupported.js';
|
|
9
10
|
export * from './isShareSupported.js';
|
|
10
11
|
export * from './isTabFocused.js';
|
|
11
12
|
export * from './isTouchSupported.js';
|
|
12
13
|
export * from './networkStatusListener.js';
|
|
14
|
+
export * from './pageVisibilityListener.js';
|
|
13
15
|
export * from './preferColorScheme.js';
|
|
14
16
|
export * from './scrollToElement.js';
|
|
15
17
|
export * from './scrollToPosition.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -4,12 +4,14 @@ export * from './detectOS.js';
|
|
|
4
4
|
export * from './downloadFile.js';
|
|
5
5
|
export * from './getCookie.js';
|
|
6
6
|
export * from './getQueryParams.js';
|
|
7
|
+
export * from './isPageVisible.js';
|
|
7
8
|
export * from './isPushNotificationSupported.js';
|
|
8
9
|
export * from './isScrollBehaviorSupported.js';
|
|
9
10
|
export * from './isShareSupported.js';
|
|
10
11
|
export * from './isTabFocused.js';
|
|
11
12
|
export * from './isTouchSupported.js';
|
|
12
13
|
export * from './networkStatusListener.js';
|
|
14
|
+
export * from './pageVisibilityListener.js';
|
|
13
15
|
export * from './preferColorScheme.js';
|
|
14
16
|
export * from './scrollToElement.js';
|
|
15
17
|
export * from './scrollToPosition.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether the page is currently visible
|
|
3
|
+
*
|
|
4
|
+
* Uses the Page Visibility API (`document.hidden`). This is not window or tab
|
|
5
|
+
* input focus.
|
|
6
|
+
*
|
|
7
|
+
* @returns Whether the document is currently visible
|
|
8
|
+
*/
|
|
9
|
+
export declare const isPageVisible: () => boolean;
|
|
10
|
+
//# sourceMappingURL=isPageVisible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPageVisible.d.ts","sourceRoot":"","sources":["../../../src/browser/isPageVisible.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAO,OAA2B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether the page is currently visible
|
|
3
|
+
*
|
|
4
|
+
* Uses the Page Visibility API (`document.hidden`). This is not window or tab
|
|
5
|
+
* input focus.
|
|
6
|
+
*
|
|
7
|
+
* @returns Whether the document is currently visible
|
|
8
|
+
*/
|
|
9
|
+
export const isPageVisible = () => !document.hidden;
|
|
10
|
+
//# sourceMappingURL=isPageVisible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPageVisible.js","sourceRoot":"","sources":["../../../src/browser/isPageVisible.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Check
|
|
2
|
+
* Check whether the environment supports the Web Push API
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Requires Notification, Service Worker, and PushManager. Does not check
|
|
5
|
+
* permission and does not register a service worker.
|
|
6
|
+
*
|
|
7
|
+
* @returns Whether Web Push is supported
|
|
5
8
|
*/
|
|
6
9
|
export declare const isPushNotificationSupported: () => boolean;
|
|
7
10
|
//# sourceMappingURL=isPushNotificationSupported.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isPushNotificationSupported.d.ts","sourceRoot":"","sources":["../../../src/browser/isPushNotificationSupported.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"isPushNotificationSupported.d.ts","sourceRoot":"","sources":["../../../src/browser/isPushNotificationSupported.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,QAAO,OACsC,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Check
|
|
2
|
+
* Check whether the environment supports the Web Push API
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Requires Notification, Service Worker, and PushManager. Does not check
|
|
5
|
+
* permission and does not register a service worker.
|
|
6
|
+
*
|
|
7
|
+
* @returns Whether Web Push is supported
|
|
5
8
|
*/
|
|
6
|
-
export const isPushNotificationSupported = () =>
|
|
9
|
+
export const isPushNotificationSupported = () => 'Notification' in window && 'serviceWorker' in navigator && 'PushManager' in window;
|
|
7
10
|
//# sourceMappingURL=isPushNotificationSupported.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isPushNotificationSupported.js","sourceRoot":"","sources":["../../../src/browser/isPushNotificationSupported.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"isPushNotificationSupported.js","sourceRoot":"","sources":["../../../src/browser/isPushNotificationSupported.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAY,EAAE,CACvD,cAAc,IAAI,MAAM,IAAI,eAAe,IAAI,SAAS,IAAI,aAAa,IAAI,MAAM,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* @returns Boolean indicating if current browser tab is in focus
|
|
2
|
+
* @deprecated Use {@link isPageVisible}. Same as `!document.hidden`; not window
|
|
3
|
+
* or tab input focus.
|
|
5
4
|
*/
|
|
6
5
|
export declare const isTabFocused: () => boolean;
|
|
7
6
|
//# sourceMappingURL=isTabFocused.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTabFocused.d.ts","sourceRoot":"","sources":["../../../src/browser/isTabFocused.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isTabFocused.d.ts","sourceRoot":"","sources":["../../../src/browser/isTabFocused.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,YAAY,eAAgB,CAAC"}
|