@dxtmisha/functional-basic 1.8.3 → 1.8.5

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/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.8.5] - 2026-08-05
6
+
7
+ ### Changed
8
+ - **AI Documentation**: Updated JSDoc prompt rules, added MCP resource definitions (`ai-mcp.json`), removed redundant prompt files, and updated package metadata (`ai-description.md`, `ai-types.md`).
9
+
10
+ ## [1.8.4] - 2026-08-05
11
+
12
+ ### Changed
13
+ - **AI Documentation**: Modularized package documentation and generated `ai-mcp.json` resource definitions alongside updated `ai-description.md` and `ai-types.md`.
14
+
15
+ ## [1.8.3] - 2026-08-01
16
+
17
+ ### Changed
18
+ - **Documentation**: Updated `ai-doc.md` and `ai-doc.ru.md` with explicit class method sorting order guidelines (`get/set`, `is/has`, `get.../set...`, `add/remove`, `update/reset`, sorted alphabetically within subgroups).
19
+
20
+ ## [1.8.2] - 2026-07-31
21
+
22
+ ### Changed
23
+ - **Package Metadata**: Standardized package exports and AI documentation files (`ai-description.md`, `ai-types.md`).
24
+
5
25
  ## [1.8.1] - 2026-07-31
6
26
 
7
27
  ### Added
package/ai-description.md CHANGED
@@ -1,5 +1,4 @@
1
- This library is an isomorphic utility framework designed for full-stack JavaScript and TypeScript applications, providing unified abstractions for API data fetching, SSR hydration, state persistence, internationalization, DOM event management, and SEO metadata. The API and Network module manages HTTP requests via Fetch with automated retries, hook-based request preparation, response caching, SSR client hydration, error storage matching, and mock response emulation. The Storage module delivers cross-environment persistence across browser cookies, local or session storage, and request-isolated server rendering contexts. The Localization and Formatting module handles locale detection, phone number masking, localized unit conversions, translation retrieval, and date, number, or plural formatting using native Intl APIs. The DOM, Events, and Navigation module offers memory-safe event listening with automatic DOM removal checks, reactive URL query and hash state tracking, inter-tab broadcast messaging, global loading state coordination, and meta tag management for OpenGraph and Twitter cards. The Search and Utilities module facilitates in-memory multi-column searching with match highlighting, centralized error logging, resumable timers, and type-safe array or object transformations. Studying type definitions in ai-types.md is mandatory when constructing strongly typed API fetch parameters, handling custom response wrappers, defining error storage criteria, configuring complex list formatters, or supplying generic type arguments to search, storage, and event handlers. The library connects as a foundational utility layer bridging client-side UI frameworks with server-side rendering environments and REST backend endpoints.
1
+ The library provides an isomorphic suite of client- and server-side utilities designed for web application infrastructure, state management, internationalization, and network communication, serving as a unified foundation for API lifecycle management, SSR hydration, browser storage, and data transformation across JavaScript runtimes. API and network utilities streamline HTTP fetch requests with configurable defaults, automatic retries with jitter, response caching, error classification, and SSR client hydration script generation. Storage and state management modules supply request-isolated SSR storage contexts, type-safe cookie management, synchronized URL query and hash state, local and session storage with age-based expiration, and cross-tab broadcast messaging. Localization and geographic tools provide automated country and language detection, phone number mask matching, metric-to-imperial unit conversion, pluralization, currency formatting, and asynchronous multi-language translation resolution. Search and data handling capabilities enable multi-column list searching, search match highlighting, fuzzy and exact regular expression matching, multi-field array sorting, and recursive object template replacement. UI, DOM, and event helpers deliver DOM element manipulation, ResizeObserver and scroll-sync event listeners, global loading indicators, icon registration, resumable timers, and isomorphic HTML meta tag management for standard SEO, Open Graph, and Twitter Cards. Studying type definitions in ai-types.md is mandatory when typing complex API request or response structures, configuring custom request wrappers, defining criteria for error storage items, specifying search column paths, setting up custom translation dictionaries, or implementing isolated server storage contexts during SSR. This package connects with modern web frameworks and SSR environments by wrapping standard Web APIs, fetch interfaces, and DOM listeners with environment-agnostic abstractions and automated client-side hydration hooks.
2
2
  ## Mandatory Rules
3
- Read the corresponding file if your task relates to:
4
- - 'node_modules/@dxtmisha/functional-basic/ai-prompts/api-reference.md': HTTP client, caching, storage management, geolocation, localization, DOM events, and general utilities
5
- - 'node_modules/@dxtmisha/functional-basic/ai-prompts/coding-standards.md': Class structure, naming and typing standards, SSR safety, and primitive helper functions
3
+ Read the corresponding file ONLY when working on a task related to (even if not working directly with this package):
4
+ - 'node_modules/@dxtmisha/functional-basic/ai-prompts/api-reference.md': HTTP client caching, storage management, geolocation localization, and DOM utility helpers
package/ai-doc.md CHANGED
@@ -1 +1,8 @@
1
- Framework-agnostic utility library. **Vue developers MUST search `@dxtmisha/functional` first**; use this ONLY if no reactive/Vue-specific analog exists.
1
+ Framework-agnostic utility library. **Vue developers MUST search `@dxtmisha/functional` first**; use this ONLY if no reactive/Vue-specific analog exists.
2
+
3
+ ## Coding Standards & Conventions
4
+
5
+ - **Class Structure**: Properties/Variables (`public`->`protected`->`private`) -> Constructor -> Public Methods -> Protected Methods -> Private Methods. Within each method group, follow order: 1) `get` / `set` (getters/setters), 2) `is...` / `has...`, 3) `get...` / `set...`, 4) `add...` / `remove...`, 5) `update...` / `reset...`, 6) remaining methods. Within each subgroup, methods are grouped semantically by logical pairs and rules (e.g., `min` / `max`, `width` / `height`, `x` / `y` / `z`), and remaining methods are sorted alphabetically.
6
+ - **Style/Types**: `PascalCase` classes, `camelCase` methods/props, `UPPER_SNAKE_CASE` constants. No `any` (use `unknown`/generics). Explicit return types for ALL methods. Export all interfaces. Type files: `*Types.ts`. Use `@effect/schema` for schemas.
7
+ - **SSR Safety**: Isomorphic code. Do NOT store request state in globals. Use `isDomRuntime()` before `window`/`document`. Use `ServerStorage.get('key', () => new Class())` for request-isolated singletons.
8
+ - **Utility & Primitive Functions**: ALWAYS use primitive helper functions from this package (e.g. `isFunction`, `executeFunction`, `isFilled`, `isObject`, `isString`, `isArray`, etc.) instead of writing custom inline checks or conditions.
package/ai-mcp.json CHANGED
@@ -1,14 +1,20 @@
1
1
  [
2
2
  {
3
- "uri": "@dxtmisha/functional-basic/ai-prompts/api-reference.md",
4
- "name": "API Reference",
3
+ "uri": "@dxtmisha/functional-basic/ai-types.md",
4
+ "name": "TypeScript Types Reference (@dxtmisha/functional-basic)",
5
5
  "mimeType": "text/markdown",
6
- "description": "Comprehensive API reference and code examples for the functional-basic library, covering HTTP requests, state storage, localization, DOM manipulation, and utility helpers."
6
+ "description": "Comprehensive TypeScript type definitions, enums, classes, and utility function declarations covering API client interfaces, metadata management, internationalization, and DOM utilities."
7
7
  },
8
8
  {
9
- "uri": "@dxtmisha/functional-basic/ai-prompts/coding-standards.md",
10
- "name": "Coding Standards",
9
+ "uri": "@dxtmisha/functional-basic/ai-description.md",
10
+ "name": "Utility Library Overview (@dxtmisha/functional-basic)",
11
+ "mimeType": "text/markdown",
12
+ "description": "Provides an overview of isomorphic client and server utilities for HTTP networking, state management, localization, data search, DOM handling, and SSR hydration. Outlines architectural conventions and package capabilities across browser and server runtimes."
13
+ },
14
+ {
15
+ "uri": "@dxtmisha/functional-basic/ai-prompts/api-reference.md",
16
+ "name": "API Reference Guide (@dxtmisha/functional-basic)",
11
17
  "mimeType": "text/markdown",
12
- "description": "Defines class structure ordering, TypeScript styling and typing conventions, isomorphic SSR safety rules, and standard primitive helper function usage."
18
+ "description": "Comprehensive API reference and usage examples for the `@dxtmisha/functional-basic` package. Covers HTTP client configurations, caching, state storage, localization, DOM events, and core utility functions."
13
19
  }
14
20
  ]
package/ai-types.md CHANGED
@@ -1,14 +1,4 @@
1
- 1) All these methods are in the @dxtmisha/functional-basic library.
2
- 2) Everything that is exported can be used.
3
- 3) Use what is in this library if it exists; do not use other libraries if there is an analogue here. Do not create new ones if an analogue already exists here.
4
-
5
- The following is the content of "exports" from package.json:
6
- {
7
- ".": {
8
- "import": "./dist/library.js",
9
- "types": "./dist/library.d.ts"
10
- }
11
- }
1
+ All these methods are in the @dxtmisha/functional-basic library.
12
2
 
13
3
  export declare enum ApiMethodItem {
14
4
  delete = "DELETE",
@@ -545,47 +535,6 @@ export type TranslateDataFileItem = () => Promise<TranslateDataFileList>;
545
535
  export type TranslateDataFile = Record<string, TranslateDataFileItem>;
546
536
  export declare const TRANSLATE_GLOBAL_PREFIX = "global";
547
537
  export declare const TRANSLATE_TIME_OUT = 160;
548
- export type IconsItem = string | Promise<string | any> | (() => Promise<string | any>);
549
- export type IconsConfig = {
550
- url?: string;
551
- list?: Record<string, IconsItem>;
552
- };
553
- export type CookieSameSite = 'strict' | 'lax';
554
- export type CookieOptions = {
555
- age?: number;
556
- sameSite?: CookieSameSite;
557
- path?: string;
558
- domain?: string;
559
- secure?: boolean;
560
- httpOnly?: boolean;
561
- partitioned?: boolean;
562
- arguments?: string[] | Record<string, string | number | boolean>;
563
- };
564
- export type LoadingDetail = {
565
- loading: boolean;
566
- };
567
- export type LoadingRegistrationItem = {
568
- item: EventItem<Window, CustomEvent, LoadingDetail>;
569
- listener: EventListenerDetail<CustomEvent, LoadingDetail>;
570
- element?: ElementOrString<HTMLElement>;
571
- };
572
- export type ApiInstanceOptions = {
573
- headersClass?: typeof ApiHeaders;
574
- requestDefaultClass?: typeof ApiDefault;
575
- statusClass?: typeof ApiStatus;
576
- responseClass?: typeof ApiResponse;
577
- preparationClass?: typeof ApiPreparation;
578
- loadingClass?: LoadingInstance;
579
- errorCenterClass?: ErrorCenterInstance;
580
- hydrationClass?: typeof ApiHydration;
581
- wrapper?: <R>(callback: () => Promise<R>, apiFetch: ApiFetch) => Promise<R>;
582
- };
583
- export declare const GEO_FLAG_ICON_NAME = "f";
584
- export declare const UI_GEO_COOKIE_KEY = "ui-geo-code";
585
- export declare const errorCauseList: ErrorCenterCauseList;
586
- /**
587
- * Utility for making HTTP requests.
588
- */
589
538
  export declare class Api {
590
539
  static isLocalhost(): boolean;
591
540
  static getItem(): ApiInstance;
@@ -613,9 +562,6 @@ export declare class Api {
613
562
  static patch<T>(request: ApiFetch): Promise<T>;
614
563
  static delete<T>(request: ApiFetch): Promise<T>;
615
564
  }
616
- /**
617
- * Class for caching API responses.
618
- */
619
565
  export declare class ApiCache {
620
566
  static init(getListener: (key: string) => Promise<ApiCacheItem | undefined>, setListener: (key: string, value: ApiCacheItem) => Promise<boolean>, removeListener: (key: string) => Promise<boolean>, cacheStepAgeClearOld?: number): void;
621
567
  static reset(): void;
@@ -625,9 +571,6 @@ export declare class ApiCache {
625
571
  static setByFetch<T>(fetch: ApiFetch, value: T): Promise<void>;
626
572
  static remove(key: string): Promise<void>;
627
573
  }
628
- /**
629
- * Class for handling and processing data returned from an API request.
630
- */
631
574
  export declare class ApiDataReturn<T = any> {
632
575
  constructor(apiFetch: ApiFetch, query: Response, end: ApiPreparationEnd, error?: ApiErrorItem | undefined);
633
576
  init(): Promise<this>;
@@ -635,26 +578,17 @@ export declare class ApiDataReturn<T = any> {
635
578
  getAndStatus(status: ApiStatus): ApiData<T>;
636
579
  getData(): ApiData<T> | undefined;
637
580
  }
638
- /**
639
- * Class for working with default API request data.
640
- */
641
581
  export declare class ApiDefault {
642
582
  is(): boolean;
643
583
  get(): Record<string, any> | undefined;
644
584
  request(request: ApiFetch['request']): ApiFetch['request'];
645
585
  set(request: ApiDefaultValue): this;
646
586
  }
647
- /**
648
- * Utility class for managing the API error storage and creating error items.
649
- */
650
587
  export declare class ApiError {
651
588
  static getStorage(): ApiErrorStorage;
652
589
  static add(item: Partial<ApiErrorStorageItem> | Partial<ApiErrorStorageItem>[], url?: string | RegExp, method?: ApiMethodItem): void;
653
590
  static getItem(method: ApiMethodItem, response: Response): Promise<ApiErrorItem>;
654
591
  }
655
- /**
656
- * Class for managing and extracting data from an API error response.
657
- */
658
592
  export declare class ApiErrorItem {
659
593
  constructor(method: ApiMethodItem, response: Response, error: ApiErrorStorageItem);
660
594
  getMethod(): ApiMethodItem;
@@ -664,32 +598,31 @@ export declare class ApiErrorItem {
664
598
  getMessage(): string | undefined;
665
599
  getStatus(): number;
666
600
  }
667
- /**
668
- * Manager for handling and identifying API error states.
669
- */
670
601
  export declare class ApiErrorStorage {
671
602
  find(method: ApiMethodItem, response: Response): Promise<ApiErrorStorageItem>;
672
603
  add(item: Partial<ApiErrorStorageItem> | Partial<ApiErrorStorageItem>[], url?: string | RegExp, method?: ApiMethodItem): this;
673
604
  }
674
- /**
675
- * Class for managing HTTP request headers.
676
- */
677
605
  export declare class ApiHeaders {
678
606
  get(value?: Record<string, string> | null, type?: string | undefined | null): Record<string, string> | undefined;
679
607
  getByRequest(request: ApiFetch['request'], value?: Record<string, string> | null, type?: string): Record<string, string> | undefined;
680
608
  set(headers: ApiHeadersValue): this;
681
609
  }
682
- /**
683
- * Class for collecting API data for hydration on the client side during SSR.
684
- */
685
610
  export declare class ApiHydration {
686
611
  initResponse(response: ApiResponse): void;
687
612
  toClient<T>(apiFetch: ApiFetch, response: T): void;
688
613
  toString(): string;
689
614
  }
690
- /**
691
- * Core class for managing HTTP requests using the Fetch API.
692
- */
615
+ export type ApiInstanceOptions = {
616
+ headersClass?: typeof ApiHeaders;
617
+ requestDefaultClass?: typeof ApiDefault;
618
+ statusClass?: typeof ApiStatus;
619
+ responseClass?: typeof ApiResponse;
620
+ preparationClass?: typeof ApiPreparation;
621
+ loadingClass?: LoadingInstance;
622
+ errorCenterClass?: ErrorCenterInstance;
623
+ hydrationClass?: typeof ApiHydration;
624
+ wrapper?: <R>(callback: () => Promise<R>, apiFetch: ApiFetch) => Promise<R>;
625
+ };
693
626
  export declare class ApiInstance {
694
627
  constructor(url?: string, options?: ApiInstanceOptions);
695
628
  isLocalhost(): boolean;
@@ -716,18 +649,12 @@ export declare class ApiInstance {
716
649
  patch<T>(request: ApiFetch): Promise<T>;
717
650
  delete<T>(request: ApiFetch): Promise<T>;
718
651
  }
719
- /**
720
- * Class for preparing requests before and after execution.
721
- */
722
652
  export declare class ApiPreparation {
723
653
  make(active: boolean, apiFetch: ApiFetch): Promise<void>;
724
654
  makeEnd(active: boolean, query: Response, apiFetch: ApiFetch): Promise<ApiPreparationEnd>;
725
655
  set(callback: (apiFetch: ApiFetch) => Promise<void>): this;
726
656
  setEnd(callback: (query: Response, apiFetch: ApiFetch) => Promise<ApiPreparationEnd>): this;
727
657
  }
728
- /**
729
- * Class for working with API responses.
730
- */
731
658
  export declare class ApiResponse {
732
659
  constructor(requestDefault: ApiDefault);
733
660
  get(path: string | undefined, method: ApiMethod, request?: ApiFetch['request'], devMode?: boolean): ApiResponseItem | undefined;
@@ -737,9 +664,6 @@ export declare class ApiResponse {
737
664
  emulator<T>(apiFetch: ApiFetch): Promise<T | undefined>;
738
665
  emulatorAsync<T>(apiFetch: ApiFetch): T | undefined;
739
666
  }
740
- /**
741
- * Class for managing API request status.
742
- */
743
667
  export declare class ApiStatus {
744
668
  get(): ApiStatusItem | undefined;
745
669
  getStatus(): number | undefined;
@@ -757,9 +681,6 @@ export declare class ApiStatus {
757
681
  setLastCode(code?: string): this;
758
682
  setLastMessage(message?: string): this;
759
683
  }
760
- /**
761
- * Class for working with BroadcastChannel messages.
762
- */
763
684
  export declare class BroadcastMessage<Message = any> {
764
685
  constructor(name: string, callback?: ((event: MessageEvent<Message>) => void) | undefined, callbackError?: ((event: MessageEvent<Message>) => void) | undefined, errorCenter?: ErrorCenterInstance);
765
686
  getChannel(): BroadcastChannel | undefined;
@@ -768,35 +689,20 @@ export declare class BroadcastMessage<Message = any> {
768
689
  setCallbackError(callbackError: (event: MessageEvent<Message>) => void): this;
769
690
  destroy(): this;
770
691
  }
771
- /**
772
- * Simple in-memory cache class that stores computed values by key.
773
- * @deprecated
774
- */
775
692
  export declare class Cache {
776
693
  get<T>(name: string, callback: () => T, comparison?: any[]): T;
777
694
  getAsync<T>(name: string, callback: () => T, comparison?: any[]): Promise<T>;
778
695
  }
779
- /**
780
- * Class for managing a single cached value with dependency tracking.
781
- * @deprecated
782
- */
783
696
  export declare class CacheItem<T> {
784
697
  constructor(callback: () => T);
785
698
  getCache(comparison: any[]): T;
786
699
  getCacheOld(): T | undefined;
787
700
  getCacheAsync(comparison: any[]): Promise<T>;
788
701
  }
789
- /**
790
- * Static cache class that uses ServerStorage for persistent caching across the application.
791
- * @deprecated
792
- */
793
702
  export declare class CacheStatic {
794
703
  static get<T>(name: string, callback: () => T, comparison?: any[]): T;
795
704
  static getAsync<T>(name: string, callback: () => T, comparison?: any[]): Promise<T>;
796
705
  }
797
- /**
798
- * Class for managing browser cookies.
799
- */
800
706
  export declare class Cookie<T> {
801
707
  static getInstance<T>(name: string): Cookie<T>;
802
708
  constructor(name: string);
@@ -804,24 +710,26 @@ export declare class Cookie<T> {
804
710
  set(value?: T | string | (() => (T | string)), options?: CookieOptions): void;
805
711
  remove(): void;
806
712
  }
807
- /**
808
- * Class for changing cookie access status.
809
- */
810
713
  export declare class CookieBlock {
811
714
  static getItem(): CookieBlockInstance;
812
715
  static get(): boolean;
813
716
  static set(value: boolean): void;
814
717
  }
815
- /**
816
- * Class for changing cookie access status instance.
817
- */
818
718
  export declare class CookieBlockInstance {
819
719
  get(): boolean;
820
720
  set(value: boolean): void;
821
721
  }
822
- /**
823
- * Class for managing cookie storage with support for custom listeners.
824
- */
722
+ export type CookieSameSite = 'strict' | 'lax';
723
+ export type CookieOptions = {
724
+ age?: number;
725
+ sameSite?: CookieSameSite;
726
+ path?: string;
727
+ domain?: string;
728
+ secure?: boolean;
729
+ httpOnly?: boolean;
730
+ partitioned?: boolean;
731
+ arguments?: string[] | Record<string, string | number | boolean>;
732
+ };
825
733
  export declare class CookieStorage {
826
734
  static init(getListener?: (key: string) => any | undefined, getListenerRaw?: () => string, setListener?: (key: string, value: any, cookie: string, options?: CookieOptions) => void): void;
827
735
  static reset(): void;
@@ -830,9 +738,6 @@ export declare class CookieStorage {
830
738
  static remove(name: string): void;
831
739
  static update(): void;
832
740
  }
833
- /**
834
- * Class for working with localStorage and sessionStorage.
835
- */
836
741
  export declare class DataStorage<T> {
837
742
  static setPrefix(newPrefix: string): void;
838
743
  constructor(name: string, isSession?: boolean, errorCenter?: ErrorCenterInstance);
@@ -842,7 +747,12 @@ export declare class DataStorage<T> {
842
747
  update(): this;
843
748
  }
844
749
  /**
845
- * Class for date manipulation and formatting.
750
+ * A class for working with dates and localized date-time operations.
751
+ *
752
+ * @remarks
753
+ * Creating a `Datetime` instance without a specific date (using the current time)
754
+ * for rendering in SSR may lead to hydration mismatches because the time or time zone
755
+ * on the server may differ from the time on the client.
846
756
  */
847
757
  export declare class Datetime {
848
758
  constructor(date?: NumberOrStringOrDate, type?: GeoDate, code?: string);
@@ -917,9 +827,6 @@ export declare class Datetime {
917
827
  cloneDayNext(): Datetime;
918
828
  cloneDayPrevious(): Datetime;
919
829
  }
920
- /**
921
- * Class for managing application error handling globally.
922
- */
923
830
  export declare class ErrorCenter {
924
831
  static getItem(): ErrorCenterInstance;
925
832
  static has(code: string, group?: string): boolean;
@@ -932,9 +839,6 @@ export declare class ErrorCenter {
932
839
  static setIsConsole(isConsole: ErrorCenterHandlerIsConsole): void;
933
840
  static on(cause: ErrorCenterCauseItem): void;
934
841
  }
935
- /**
936
- * Class for managing and triggering error handlers.
937
- */
938
842
  export declare class ErrorCenterHandler {
939
843
  constructor(handlers?: ErrorCenterHandlerList, isConsole?: ErrorCenterHandlerIsConsole);
940
844
  has(group: ErrorCenterGroup): boolean;
@@ -945,9 +849,6 @@ export declare class ErrorCenterHandler {
945
849
  setIsConsole(isConsole: ErrorCenterHandlerIsConsole): this;
946
850
  on(cause: ErrorCenterCauseItem): this;
947
851
  }
948
- /**
949
- * Class for managing error storage and handling within an instance.
950
- */
951
852
  export declare class ErrorCenterInstance {
952
853
  constructor(causes?: ErrorCenterCauseList, handler?: ErrorCenterHandler);
953
854
  has(code: string, group?: string): boolean;
@@ -961,7 +862,23 @@ export declare class ErrorCenterInstance {
961
862
  on(cause: ErrorCenterCauseItem): this;
962
863
  }
963
864
  /**
964
- * Wrapper for managing DOM or window event listeners.
865
+ * Advanced wrapper for managing event listeners on DOM elements or the `window` object.
866
+ *
867
+ * ### Key Features:
868
+ * - Lifecycle Control: Easily `start`, `stop`, `toggle`, or `reset` event listeners.
869
+ * - DOM Safety: Automatically halts the event if the target element is removed from the DOM.
870
+ * - Specialized Optimizations:
871
+ * - `resize`: Uses `ResizeObserver` for any HTML element (not limited to `window`).
872
+ * - `scroll-sync`: High-performance scroll tracking using `requestAnimationFrame`.
873
+ * - Dynamic Configuration: Chained setters for target element, event type, listener, and options.
874
+ * - Custom Event Dispatching: Built-in support for triggering events with custom data via `dispatch`.
875
+ * - Strict Typing: Generic support for elements, event objects, and custom detail data.
876
+ *
877
+ * @example
878
+ * ```typescript
879
+ * const clickEvent = new EventItem('.btn', 'click', (e) => console.log('Clicked!'));
880
+ * clickEvent.start();
881
+ * ```
965
882
  */
966
883
  export declare class EventItem<E extends ElementOrWindow, O extends Event, D extends Record<string, any> = Record<string, any>> {
967
884
  constructor(elementSelector?: ElementOrString<E>, type?: string | string[], listener?: EventListenerDetail<O, D> | undefined, options?: EventOptions, detail?: D | undefined);
@@ -979,9 +896,6 @@ export declare class EventItem<E extends ElementOrWindow, O extends Event, D ext
979
896
  toggle(activity: boolean): this;
980
897
  reset(): this;
981
898
  }
982
- /**
983
- * Class for formatting a list of data based on provided options.
984
- */
985
899
  export declare class Formatters<Options extends FormattersOptionsList = FormattersOptionsList, List extends FormattersListProp = FormattersListProp, Item extends FormattersItemProp<List> = FormattersItemProp<List>> {
986
900
  constructor(options: Options, list?: List | undefined);
987
901
  is(): boolean;
@@ -994,9 +908,6 @@ export declare class Formatters<Options extends FormattersOptionsList = Formatte
994
908
  setList(list?: List): this;
995
909
  to(): FormattersReturn<List, Options>;
996
910
  }
997
- /**
998
- * Static class for working with geographical data.
999
- */
1000
911
  export declare class Geo {
1001
912
  static getObject(): GeoInstance;
1002
913
  static get(): GeoItemFull;
@@ -1021,9 +932,7 @@ export declare class Geo {
1021
932
  static setTimezone(timezone: number): void;
1022
933
  static setValueDefault(code?: string | (() => string)): void;
1023
934
  }
1024
- /**
1025
- * Class for working with flags and geographic information.
1026
- */
935
+ export declare const GEO_FLAG_ICON_NAME = "f";
1027
936
  export declare class GeoFlag {
1028
937
  static flags: Record<string, string>;
1029
938
  constructor(code?: string);
@@ -1037,9 +946,7 @@ export declare class GeoFlag {
1037
946
  getNationalLanguage(codes?: string[], sort?: boolean): GeoFlagNational[];
1038
947
  setCode(code: string): this;
1039
948
  }
1040
- /**
1041
- * Base class for working with geographic data.
1042
- */
949
+ export declare const UI_GEO_COOKIE_KEY = "ui-geo-code";
1043
950
  export declare class GeoInstance {
1044
951
  constructor();
1045
952
  get(): GeoItemFull;
@@ -1064,9 +971,6 @@ export declare class GeoInstance {
1064
971
  setTimezone(timezone: number): void;
1065
972
  setValueDefault(code?: string | (() => string)): void;
1066
973
  }
1067
- /**
1068
- * Internationalization wrapper for numbers, dates, currencies, and plurals.
1069
- */
1070
974
  export declare class GeoIntl {
1071
975
  static isItem(code?: string): boolean;
1072
976
  static getLocation(code?: string): string;
@@ -1098,9 +1002,6 @@ export declare class GeoIntl {
1098
1002
  time(value: NumberOrStringOrDate): string;
1099
1003
  sort<T>(data: T[], compareFn?: (a: T, b: T) => [string, string]): T[];
1100
1004
  }
1101
- /**
1102
- * Utility for phone number formatting and country phone codes.
1103
- */
1104
1005
  export declare class GeoPhone {
1105
1006
  static get(code: string): GeoPhoneValue | undefined;
1106
1007
  static getByPhone(phone: string): GeoPhoneMapInfo;
@@ -1110,9 +1011,6 @@ export declare class GeoPhone {
1110
1011
  static toMask(phone: string, masks?: string[]): string | undefined;
1111
1012
  static removeZero(phone: string): string;
1112
1013
  }
1113
- /**
1114
- * Class for localized unit formatting and automatic conversions.
1115
- */
1116
1014
  export declare class GeoUnit {
1117
1015
  static getInstance(code?: string): GeoUnit;
1118
1016
  constructor(code?: string);
@@ -1132,17 +1030,11 @@ export declare class GeoUnit {
1132
1030
  kilometerPerHour(value: NumberOrString, options?: Intl.NumberFormatOptions): string;
1133
1031
  format(value: NumberOrString, unit: string, options?: Intl.NumberFormatOptions): string;
1134
1032
  }
1135
- /**
1136
- * Static utility class for global application data.
1137
- */
1138
1033
  export declare class Global {
1139
1034
  static getItem(): Record<string, any>;
1140
1035
  static get<R = any>(name: string): R;
1141
1036
  static add(data: Record<string, any>): void;
1142
1037
  }
1143
- /**
1144
- * Static class for working with URL hash data.
1145
- */
1146
1038
  export declare class Hash {
1147
1039
  static getItem(): HashInstance;
1148
1040
  static get<T>(name: string, defaultValue?: T | (() => T)): T;
@@ -1151,13 +1043,13 @@ export declare class Hash {
1151
1043
  static removeWatch<T>(name: string, callback: (value: T) => void): void;
1152
1044
  static reload(): void;
1153
1045
  }
1154
- /**
1155
- * Instance class for working with URL hash parameters.
1156
- */
1157
- export declare class HashInstance extends UrlInstanceAbstract {}
1158
- /**
1159
- * Class for managing icons.
1160
- */
1046
+ export declare class HashInstance extends UrlInstanceAbstract {
1047
+ }
1048
+ export type IconsItem = string | Promise<string | any> | (() => Promise<string | any>);
1049
+ export type IconsConfig = {
1050
+ url?: string;
1051
+ list?: Record<string, IconsItem>;
1052
+ };
1161
1053
  export declare class Icons {
1162
1054
  static is(index: string): boolean;
1163
1055
  static get(index: string, url?: string, wait?: number): Promise<string>;
@@ -1171,9 +1063,6 @@ export declare class Icons {
1171
1063
  static setUrl(url: string): void;
1172
1064
  static setConfig(config: IconsConfig): void;
1173
1065
  }
1174
- /**
1175
- * Class for managing global loading state.
1176
- */
1177
1066
  export declare class Loading {
1178
1067
  static is(): boolean;
1179
1068
  static get(): number;
@@ -1183,9 +1072,14 @@ export declare class Loading {
1183
1072
  static registrationEvent(listener: EventListenerDetail<CustomEvent, LoadingDetail>, element?: ElementOrString<HTMLElement>): void;
1184
1073
  static unregistrationEvent(listener: EventListenerDetail<CustomEvent, LoadingDetail>, element?: ElementOrString<HTMLElement>): void;
1185
1074
  }
1186
- /**
1187
- * Instance class for managing loading state.
1188
- */
1075
+ export type LoadingDetail = {
1076
+ loading: boolean;
1077
+ };
1078
+ export type LoadingRegistrationItem = {
1079
+ item: EventItem<Window, CustomEvent, LoadingDetail>;
1080
+ listener: EventListenerDetail<CustomEvent, LoadingDetail>;
1081
+ element?: ElementOrString<HTMLElement>;
1082
+ };
1189
1083
  export declare class LoadingInstance {
1190
1084
  constructor(eventName?: string);
1191
1085
  is(): boolean;
@@ -1195,9 +1089,6 @@ export declare class LoadingInstance {
1195
1089
  registrationEvent(listener: EventListenerDetail<CustomEvent, LoadingDetail>, element?: ElementOrString<HTMLElement>): void;
1196
1090
  unregistrationEvent(listener: EventListenerDetail<CustomEvent, LoadingDetail>, element?: ElementOrString<HTMLElement>): void;
1197
1091
  }
1198
- /**
1199
- * Class for managing meta tags.
1200
- */
1201
1092
  export declare class Meta extends MetaManager<MetaTag[]> {
1202
1093
  constructor();
1203
1094
  getOg(): MetaOg;
@@ -1224,9 +1115,9 @@ export declare class Meta extends MetaManager<MetaTag[]> {
1224
1115
  html(): string;
1225
1116
  htmlTitle(): string;
1226
1117
  }
1227
- /**
1228
- * Manager class for meta tags.
1229
- */
1118
+ type MetaList<T extends readonly string[]> = {
1119
+ [K in T[number]]?: string;
1120
+ };
1230
1121
  export declare class MetaManager<T extends readonly string[], Key extends keyof MetaList<T> = keyof MetaList<T>> {
1231
1122
  constructor(listMeta: T, isProperty?: boolean);
1232
1123
  getListMeta(): T;
@@ -1236,12 +1127,6 @@ export declare class MetaManager<T extends readonly string[], Key extends keyof
1236
1127
  set(name: Key, content: string): this;
1237
1128
  setByList(metaList: MetaList<T>): this;
1238
1129
  }
1239
- type MetaList<T extends readonly string[]> = {
1240
- [K in T[number]]?: string;
1241
- };
1242
- /**
1243
- * Class for Open Graph meta tags.
1244
- */
1245
1130
  export declare class MetaOg extends MetaManager<MetaOpenGraphTag[]> {
1246
1131
  constructor();
1247
1132
  getTitle(): string;
@@ -1259,9 +1144,6 @@ export declare class MetaOg extends MetaManager<MetaOpenGraphTag[]> {
1259
1144
  setLocale(locale: string): this;
1260
1145
  setSiteName(siteName: string): this;
1261
1146
  }
1262
- /**
1263
- * Static accessor for Meta management.
1264
- */
1265
1147
  export declare class MetaStatic {
1266
1148
  static getItem(): Meta;
1267
1149
  static getOg(): MetaOg;
@@ -1288,9 +1170,6 @@ export declare class MetaStatic {
1288
1170
  static html(): string;
1289
1171
  static htmlTitle(): string;
1290
1172
  }
1291
- /**
1292
- * Class for Twitter Card meta tags.
1293
- */
1294
1173
  export declare class MetaTwitter extends MetaManager<MetaTwitterTag[]> {
1295
1174
  constructor();
1296
1175
  getCard(): MetaTwitterCard;
@@ -1308,9 +1187,6 @@ export declare class MetaTwitter extends MetaManager<MetaTwitterTag[]> {
1308
1187
  setDescription(description: string): this;
1309
1188
  setImage(image: string): this;
1310
1189
  }
1311
- /**
1312
- * Static class for URL query parameter management.
1313
- */
1314
1190
  export declare class Query {
1315
1191
  static getItem(): QueryInstance;
1316
1192
  static get<T>(name: string, defaultValue?: T | (() => T)): T;
@@ -1319,13 +1195,8 @@ export declare class Query {
1319
1195
  static removeWatch<T>(name: string, callback: (value: T) => void): void;
1320
1196
  static reload(): void;
1321
1197
  }
1322
- /**
1323
- * Instance class for URL query parameters.
1324
- */
1325
- export declare class QueryInstance extends UrlInstanceAbstract {}
1326
- /**
1327
- * Class for creating a timer that can be paused and resumed.
1328
- */
1198
+ export declare class QueryInstance extends UrlInstanceAbstract {
1199
+ }
1329
1200
  export declare class ResumableTimer {
1330
1201
  constructor(callback: FunctionVoid, delay?: number, blockStart?: boolean);
1331
1202
  resume(): this;
@@ -1333,18 +1204,12 @@ export declare class ResumableTimer {
1333
1204
  reset(): this;
1334
1205
  clear(): this;
1335
1206
  }
1336
- /**
1337
- * Utility class for scrollbar calculations.
1338
- */
1339
1207
  export declare class ScrollbarWidth {
1340
1208
  static is(): Promise<boolean>;
1341
1209
  static get(): Promise<number>;
1342
1210
  static getStorage(): DataStorage<number>;
1343
1211
  static getCalculate(): boolean;
1344
1212
  }
1345
- /**
1346
- * Class for managing search lists.
1347
- */
1348
1213
  export declare class SearchList<T extends SearchItem, K extends SearchColumns<T>> {
1349
1214
  constructor(list: SearchListValue<T>, columns?: K, value?: string, options?: SearchOptions);
1350
1215
  getData(): SearchListData<T, K>;
@@ -1359,9 +1224,6 @@ export declare class SearchList<T extends SearchItem, K extends SearchColumns<T>
1359
1224
  setOptions(options: SearchOptions): this;
1360
1225
  to(): SearchFormatList<T, K>;
1361
1226
  }
1362
- /**
1363
- * Data manager for search lists.
1364
- */
1365
1227
  export declare class SearchListData<T extends SearchItem, K extends SearchColumns<T>> {
1366
1228
  constructor(list: SearchListValue<T>, columns: K | undefined, item: SearchListItem, options: SearchListOptions);
1367
1229
  is(): this is this & {
@@ -1379,9 +1241,6 @@ export declare class SearchListData<T extends SearchItem, K extends SearchColumn
1379
1241
  forEach(callback: (item: SearchCacheItem<T>['item'], value: SearchCacheItem<T>['value']) => SearchFormatItem<T, K> | undefined): SearchFormatList<T, K>;
1380
1242
  toFormatItem(item: T, selection: boolean): SearchFormatItem<T, K>;
1381
1243
  }
1382
- /**
1383
- * Search list item wrapper.
1384
- */
1385
1244
  export declare class SearchListItem {
1386
1245
  constructor(value: string | undefined, options: SearchListOptions);
1387
1246
  is(): this is this & {
@@ -1391,9 +1250,6 @@ export declare class SearchListItem {
1391
1250
  get(): string;
1392
1251
  set(value?: string): this;
1393
1252
  }
1394
- /**
1395
- * Matcher for search list evaluation.
1396
- */
1397
1253
  export declare class SearchListMatcher {
1398
1254
  constructor(item: SearchListItem, options: SearchListOptions);
1399
1255
  is(): boolean;
@@ -1401,9 +1257,6 @@ export declare class SearchListMatcher {
1401
1257
  get(): RegExp | undefined;
1402
1258
  update(): void;
1403
1259
  }
1404
- /**
1405
- * Options container for search lists.
1406
- */
1407
1260
  export declare class SearchListOptions {
1408
1261
  constructor(options?: SearchOptions | undefined);
1409
1262
  getOptions(): SearchOptions;
@@ -1414,9 +1267,6 @@ export declare class SearchListOptions {
1414
1267
  getClassName(): string;
1415
1268
  setOptions(options: SearchOptions): this;
1416
1269
  }
1417
- /**
1418
- * Storage manager for Server-Side Rendering context.
1419
- */
1420
1270
  export declare class ServerStorage {
1421
1271
  static init(listener: () => Record<string, any> | undefined): typeof ServerStorage;
1422
1272
  static reset(): void;
@@ -1427,9 +1277,6 @@ export declare class ServerStorage {
1427
1277
  static remove(key: string): void;
1428
1278
  static toString(): string;
1429
1279
  }
1430
- /**
1431
- * Callback queue for storage mechanisms.
1432
- */
1433
1280
  export declare class StorageCallback<T = any, Callback = (value: T) => void | Promise<void>> {
1434
1281
  static getInstance<T>(name: string, group?: string): StorageCallback<T, (value: T) => void | Promise<void>>;
1435
1282
  constructor(name: string, group?: string);
@@ -1441,9 +1288,6 @@ export declare class StorageCallback<T = any, Callback = (value: T) => void | Pr
1441
1288
  preparation(): this;
1442
1289
  run(value: T): Promise<this>;
1443
1290
  }
1444
- /**
1445
- * Utility for translation text retrieval.
1446
- */
1447
1291
  export declare class Translate {
1448
1292
  static get(name: string, replacement?: string[] | Record<string, string | number>): Promise<string>;
1449
1293
  static getItem(): TranslateInstance;
@@ -1460,9 +1304,6 @@ export declare class Translate {
1460
1304
  static setReadApi(value: boolean): void;
1461
1305
  static setConfig(config: TranslateConfig): void;
1462
1306
  }
1463
- /**
1464
- * Translation file provider.
1465
- */
1466
1307
  export declare class TranslateFile {
1467
1308
  constructor(data?: TranslateDataFile, language?: string | (() => string), location?: string | (() => string));
1468
1309
  isFile(): boolean;
@@ -1471,9 +1312,6 @@ export declare class TranslateFile {
1471
1312
  getList(): Promise<TranslateDataFileList | undefined>;
1472
1313
  add(data: TranslateDataFile): void;
1473
1314
  }
1474
- /**
1475
- * Translation engine instance.
1476
- */
1477
1315
  export declare class TranslateInstance {
1478
1316
  constructor(url?: string, propsName?: string, files?: TranslateFile);
1479
1317
  get(name: string, replacement?: string[] | Record<string, string | number>): Promise<string>;
@@ -1489,9 +1327,6 @@ export declare class TranslateInstance {
1489
1327
  setPropsName(name: string): this;
1490
1328
  setReadApi(value: boolean): this;
1491
1329
  }
1492
- /**
1493
- * Abstract class for URL state instances.
1494
- */
1495
1330
  export declare abstract class UrlInstanceAbstract {
1496
1331
  get<T>(name: string, defaultValue?: T | (() => T)): T;
1497
1332
  set<T>(name: string, callback: T | (() => T)): this;
@@ -1499,9 +1334,6 @@ export declare abstract class UrlInstanceAbstract {
1499
1334
  removeWatch<T>(name: string, callback: (value: T) => void): this;
1500
1335
  reload(): this;
1501
1336
  }
1502
- /**
1503
- * Isomorphic utility class for URL management.
1504
- */
1505
1337
  export declare class UrlItem {
1506
1338
  static getInstance(): UrlItem;
1507
1339
  constructor(url?: string | URL);
@@ -1535,6 +1367,14 @@ export declare function blobToBase64(blob: Blob, clean?: boolean): Promise<strin
1535
1367
  export declare function capitalize(value: string, isLocale?: boolean): string;
1536
1368
  export declare function copyObject<T>(value: T): T;
1537
1369
  export declare function copyObjectLite<T, R = T>(value: T, source?: any): R;
1370
+ /**
1371
+ * Creates an HTML element with the specified tag name and options.
1372
+ *
1373
+ * @remarks
1374
+ * When running on the server, the function always returns `undefined`.
1375
+ * If you use it within a component's rendering logic, it may lead to hydration mismatches.
1376
+ * It is recommended to call this function only inside lifecycle hooks that run exclusively on the client (e.g., `onMounted` in Vue or `useEffect` in React).
1377
+ */
1538
1378
  export declare function createElement<T extends HTMLElement>(parentElement?: HTMLElement, tagName?: string, options?: Partial<T> | Record<keyof T, T[keyof T]> | ((element: T) => void), referenceElement?: HTMLElement): T | undefined;
1539
1379
  export declare function domContentLoaded<T = void>(callback: () => T | Promise<T>): Promise<T>;
1540
1380
  export declare function domQuerySelector<E extends Element = Element>(selectors: string): E | undefined;
@@ -1552,10 +1392,37 @@ export declare function getArrayHighlightMatch(value: string, search?: string |
1552
1392
  export declare function getAttributes<E extends ElementOrWindow>(element?: ElementOrString<E>): Record<string, string | undefined>;
1553
1393
  export declare function getClipboardData(event?: ClipboardEvent): Promise<string>;
1554
1394
  export declare function getColumn<T, K extends keyof T>(array: ObjectOrArray<T>, column: K): (T[K] | undefined)[];
1395
+ /**
1396
+ * Returns the current date in the specified format.
1397
+ *
1398
+ * @remarks
1399
+ * Using this function for rendering in SSR may lead to hydration mismatches
1400
+ * because the time or time zone on the server may differ from the time on the client.
1401
+ * It is recommended to use this function inside client-side hooks only (e.g., `onMounted` in Vue or `useEffect` in React).
1402
+ */
1555
1403
  export declare function getCurrentDate(format?: GeoDate): string;
1404
+ /**
1405
+ * Returns the current time in milliseconds.
1406
+ *
1407
+ * @remarks
1408
+ * Using this function for rendering in SSR will almost certainly lead to hydration mismatches
1409
+ * because the timestamp on the server will differ from the timestamp on the client.
1410
+ */
1556
1411
  export declare function getCurrentTime(): number;
1557
1412
  export declare function getElement<E extends ElementOrWindow, R extends Exclude<E, Window>>(element?: ElementOrString<E>): R | undefined;
1558
1413
  export declare function getElementId<E extends ElementOrWindow>(element?: ElementOrString<E>, selector?: string): string;
1414
+ /**
1415
+ * Initializes getElementId with a context provider.
1416
+ *
1417
+ * @warning
1418
+ * Mandatory for correct SSR behavior on both server and client.
1419
+ *
1420
+ * @example
1421
+ * ```typescript
1422
+ * import { useId } from 'vue'
1423
+ * initGetElementId(() => useId())
1424
+ * ```
1425
+ */
1559
1426
  export declare function initGetElementId(newListener: () => string | number): void;
1560
1427
  export declare function getElementImage(image: HTMLImageElement | string): HTMLImageElement | undefined;
1561
1428
  export declare function getElementItem<T extends ElementOrWindow, K extends keyof T, D>(element: ElementOrString<T>, index: K | string, defaultValue?: D): T[K] | D | undefined;
@@ -1643,16 +1510,22 @@ export declare function toCamelCase(value: string): string;
1643
1510
  export declare function toCamelCaseFirst(value: string): string;
1644
1511
  export declare function toDate<T extends Date | number | string>(value?: T): (T & Date) | Date;
1645
1512
  export declare function toKebabCase(value: string): string;
1513
+ /**
1514
+ * Converts a string or number to a finite floating-point number.
1515
+ *
1516
+ * @example
1517
+ * toNumber("1 234,56") // 1234.56
1518
+ * toNumber("1,234.56") // 1234.56
1519
+ * toNumber("1,234") // 1.234
1520
+ */
1646
1521
  export declare function toNumber(value?: NumberOrString): number;
1647
1522
  export declare function toNumberByMax(value: string | number, max?: string | number, formatting?: boolean, language?: string): string | number;
1648
1523
  export declare function toNumberPositive(value?: number | string | null, defaultValue?: number): number;
1649
1524
  export declare function toPercent(maxValue: number, value: number): number;
1650
1525
  export declare function toPercentBy100(maxValue: number, value: number): number;
1651
1526
  export declare function toString<T>(value: T): string;
1652
- /**
1653
- * Transforms a string into the corresponding primitive data type or object.
1654
- */
1655
1527
  export declare function transformation(value: any, isFunction?: boolean): any;
1656
1528
  export declare function uint8ArrayToBase64(bytes: Uint8Array): string;
1657
1529
  export declare function uniqueArray<T>(value: T[]): T[];
1658
- export declare function writeClipboardData(text: string): Promise<void>;
1530
+ export declare function writeClipboardData(text: string): Promise<void>;
1531
+ export declare const errorCauseList: ErrorCenterCauseList;
package/dist/library.js CHANGED
@@ -160,7 +160,7 @@ function oe(e, t, n) {
160
160
  return i.length === a.length ? i : (i.pop(), [...i, a.slice(n - 1).join(t)]);
161
161
  }
162
162
  //#endregion
163
- //#region \0@oxc-project+runtime@0.138.0/helpers/esm/typeof.js
163
+ //#region \0@oxc-project+runtime@0.139.0/helpers/esm/typeof.js
164
164
  function C(e) {
165
165
  "@babel/helpers - typeof";
166
166
  return C = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
@@ -170,7 +170,7 @@ function C(e) {
170
170
  }, C(e);
171
171
  }
172
172
  //#endregion
173
- //#region \0@oxc-project+runtime@0.138.0/helpers/esm/toPrimitive.js
173
+ //#region \0@oxc-project+runtime@0.139.0/helpers/esm/toPrimitive.js
174
174
  function se(e, t) {
175
175
  if (C(e) != "object" || !e) return e;
176
176
  var n = e[Symbol.toPrimitive];
@@ -182,13 +182,13 @@ function se(e, t) {
182
182
  return (t === "string" ? String : Number)(e);
183
183
  }
184
184
  //#endregion
185
- //#region \0@oxc-project+runtime@0.138.0/helpers/esm/toPropertyKey.js
185
+ //#region \0@oxc-project+runtime@0.139.0/helpers/esm/toPropertyKey.js
186
186
  function ce(e) {
187
187
  var t = se(e, "string");
188
188
  return C(t) == "symbol" ? t : t + "";
189
189
  }
190
190
  //#endregion
191
- //#region \0@oxc-project+runtime@0.138.0/helpers/esm/defineProperty.js
191
+ //#region \0@oxc-project+runtime@0.139.0/helpers/esm/defineProperty.js
192
192
  function w(e, t, n) {
193
193
  return (t = ce(t)) in e ? Object.defineProperty(e, t, {
194
194
  value: n,
@@ -671,7 +671,7 @@ var ve = "ui-storage", ye = () => D.get("__ui:data-storage__", () => ({})), O =
671
671
  }
672
672
  get() {
673
673
  var e;
674
- return (e = this.storage.get()) == null ? !1 : e;
674
+ return (e = this.storage.get()) != null && e;
675
675
  }
676
676
  set(e) {
677
677
  this.storage.set(e);
@@ -1204,7 +1204,7 @@ var Me = class {
1204
1204
  return s() && !n ? !1 : !!t;
1205
1205
  }
1206
1206
  static isAge(e) {
1207
- return e ? e.age ? e.age * 1e3 + e.cacheAge >= Date.now() : !0 : !1;
1207
+ return e ? !e.age || e.age * 1e3 + e.cacheAge >= Date.now() : !1;
1208
1208
  }
1209
1209
  static isItem(e) {
1210
1210
  return e in this.getList();
@@ -4135,7 +4135,7 @@ var qt = class {
4135
4135
  }
4136
4136
  getReturnEverything() {
4137
4137
  var e;
4138
- return (e = this.getOptions().returnEverything) == null ? !1 : e;
4138
+ return (e = this.getOptions().returnEverything) != null && e;
4139
4139
  }
4140
4140
  getDelay() {
4141
4141
  var e;
@@ -4143,7 +4143,7 @@ var qt = class {
4143
4143
  }
4144
4144
  getFindExactMatch() {
4145
4145
  var e;
4146
- return (e = this.getOptions().findExactMatch) == null ? !1 : e;
4146
+ return (e = this.getOptions().findExactMatch) != null && e;
4147
4147
  }
4148
4148
  getClassName() {
4149
4149
  var e;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dxtmisha/functional-basic",
3
3
  "private": false,
4
- "version": "1.8.3",
4
+ "version": "1.8.5",
5
5
  "type": "module",
6
6
  "description": "Foundational isomorphic utility library for modern web and SSR development — HTTP client, state storage, i18n localization, SEO metadata, DOM events, formatting, and data utilities. Framework-agnostic, TypeScript-first.",
7
7
  "keywords": [
@@ -1,6 +0,0 @@
1
- # Coding Standards & Conventions
2
-
3
- - **Class Structure**: Properties/Variables (`public`->`protected`->`private`) -> Constructor -> Public Methods -> Protected Methods -> Private Methods. Within each method group, follow order: 1) `get` / `set` (getters/setters), 2) `is...` / `has...`, 3) `get...` / `set...`, 4) `add...` / `remove...`, 5) `update...` / `reset...`, 6) remaining methods. Within each subgroup, methods are grouped semantically by logical pairs and rules (e.g., `min` / `max`, `width` / `height`, `x` / `y` / `z`), and remaining methods are sorted alphabetically.
4
- - **Style/Types**: `PascalCase` classes, `camelCase` methods/props, `UPPER_SNAKE_CASE` constants. No `any` (use `unknown`/generics). Explicit return types for ALL methods. Export all interfaces. Type files: `*Types.ts`. Use `@effect/schema` for schemas.
5
- - **SSR Safety**: Isomorphic code. Do NOT store request state in globals. Use `isDomRuntime()` before `window`/`document`. Use `ServerStorage.get('key', () => new Class())` for request-isolated singletons.
6
- - **Utility & Primitive Functions**: ALWAYS use primitive helper functions from this package (e.g. `isFunction`, `executeFunction`, `isFilled`, `isObject`, `isString`, `isArray`, etc.) instead of writing custom inline checks or conditions.