@dxtmisha/wiki 0.39.6 → 0.39.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/defineProperty-Bjg6wMoX.js +39 -0
  2. package/dist/library.d.ts +0 -1
  3. package/dist/library.js +25 -25
  4. package/dist/media.js +12 -0
  5. package/dist/storybook.js +26929 -11
  6. package/package.json +1 -1
  7. package/src/library.ts +0 -1
  8. package/src/media/functional/functional-basic/api/api.en.mdx +45 -0
  9. package/src/media/functional/functional-basic/api/api.ru.mdx +45 -0
  10. package/src/media/functional/functional-basic/api/api.vi.mdx +45 -0
  11. package/src/media/functional/functional-basic/classes/Api/Api.en.mdx +54 -54
  12. package/src/media/functional/functional-basic/classes/Api/Api.ru.mdx +54 -54
  13. package/src/media/functional/functional-basic/classes/Api/Api.vi.mdx +54 -54
  14. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.en.mdx +111 -0
  15. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.ru.mdx +111 -0
  16. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.vi.mdx +111 -0
  17. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.en.mdx +32 -0
  18. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.ru.mdx +32 -0
  19. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.vi.mdx +32 -0
  20. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.en.mdx +24 -28
  21. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.ru.mdx +24 -28
  22. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.vi.mdx +24 -28
  23. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.en.mdx +28 -14
  24. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.ru.mdx +33 -19
  25. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.vi.mdx +33 -19
  26. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.en.mdx +56 -0
  27. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.ru.mdx +56 -0
  28. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.vi.mdx +55 -0
  29. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.en.mdx +101 -49
  30. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.ru.mdx +101 -49
  31. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.vi.mdx +98 -47
  32. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.en.mdx +44 -26
  33. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.ru.mdx +45 -27
  34. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.vi.mdx +44 -26
  35. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.en.mdx +50 -21
  36. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.ru.mdx +54 -25
  37. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.vi.mdx +55 -26
  38. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.en.mdx +29 -32
  39. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.ru.mdx +33 -36
  40. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.vi.mdx +33 -36
  41. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.en.mdx +34 -53
  42. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.ru.mdx +33 -52
  43. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.vi.mdx +39 -58
  44. package/src/media/functional/functional-basic/classes/Cache/Cache.en.mdx +7 -4
  45. package/src/media/functional/functional-basic/classes/Cache/Cache.ru.mdx +7 -4
  46. package/src/media/functional/functional-basic/classes/Cache/Cache.vi.mdx +28 -25
  47. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.en.mdx +45 -53
  48. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.ru.mdx +46 -54
  49. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.vi.mdx +47 -55
  50. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.en.mdx +13 -1
  51. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.ru.mdx +13 -1
  52. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.vi.mdx +13 -0
  53. package/src/media/functional/functional-basic/classes/Cookie/Cookie.en.mdx +88 -44
  54. package/src/media/functional/functional-basic/classes/Cookie/Cookie.ru.mdx +88 -44
  55. package/src/media/functional/functional-basic/classes/Cookie/Cookie.vi.mdx +85 -41
  56. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.en.mdx +43 -22
  57. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.ru.mdx +46 -25
  58. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.vi.mdx +43 -22
  59. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.en.mdx +84 -0
  60. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.ru.mdx +84 -0
  61. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.vi.mdx +100 -0
  62. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.en.mdx +153 -0
  63. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.ru.mdx +153 -0
  64. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.vi.mdx +153 -0
  65. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.en.mdx +32 -25
  66. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.ru.mdx +32 -25
  67. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.vi.mdx +32 -27
  68. package/src/media/functional/functional-basic/classes/Datetime/Datetime.en.mdx +36 -4
  69. package/src/media/functional/functional-basic/classes/Datetime/Datetime.ru.mdx +36 -4
  70. package/src/media/functional/functional-basic/classes/Datetime/Datetime.vi.mdx +36 -4
  71. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.en.mdx +101 -70
  72. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.ru.mdx +100 -69
  73. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.vi.mdx +101 -70
  74. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.en.mdx +46 -42
  75. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.ru.mdx +46 -42
  76. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.vi.mdx +46 -42
  77. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.en.mdx +44 -96
  78. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.ru.mdx +44 -96
  79. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.vi.mdx +44 -96
  80. package/src/media/functional/functional-basic/classes/EventItem/EventItem.en.mdx +49 -28
  81. package/src/media/functional/functional-basic/classes/EventItem/EventItem.ru.mdx +21 -0
  82. package/src/media/functional/functional-basic/classes/EventItem/EventItem.vi.mdx +63 -42
  83. package/src/media/functional/functional-basic/classes/Formatters/Formatters.en.mdx +97 -109
  84. package/src/media/functional/functional-basic/classes/Formatters/Formatters.ru.mdx +86 -98
  85. package/src/media/functional/functional-basic/classes/Formatters/Formatters.vi.mdx +99 -111
  86. package/src/media/functional/functional-basic/classes/Geo/Geo.en.mdx +3 -3
  87. package/src/media/functional/functional-basic/classes/Geo/Geo.ru.mdx +5 -5
  88. package/src/media/functional/functional-basic/classes/Geo/Geo.vi.mdx +5 -5
  89. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.en.mdx +83 -40
  90. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.ru.mdx +83 -40
  91. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.vi.mdx +87 -44
  92. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.en.mdx +81 -0
  93. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.ru.mdx +81 -0
  94. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.vi.mdx +81 -0
  95. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.en.mdx +56 -105
  96. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.ru.mdx +53 -102
  97. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.vi.mdx +55 -105
  98. package/src/media/functional/functional-basic/classes/Hash/Hash.en.mdx +18 -7
  99. package/src/media/functional/functional-basic/classes/Hash/Hash.ru.mdx +18 -7
  100. package/src/media/functional/functional-basic/classes/Hash/Hash.vi.mdx +18 -7
  101. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.en.mdx +54 -0
  102. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.ru.mdx +54 -0
  103. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.vi.mdx +54 -0
  104. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.en.mdx +78 -0
  105. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.ru.mdx +78 -0
  106. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.vi.mdx +78 -0
  107. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.en.mdx +50 -0
  108. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.ru.mdx +50 -0
  109. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.vi.mdx +50 -0
  110. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.en.mdx +131 -0
  111. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.ru.mdx +131 -0
  112. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.vi.mdx +131 -0
  113. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.en.mdx +97 -0
  114. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.ru.mdx +97 -0
  115. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.vi.mdx +97 -0
  116. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.en.mdx +13 -5
  117. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.ru.mdx +13 -5
  118. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.vi.mdx +13 -5
  119. package/src/media/functional/functional-basic/functions/anyToString/anyToString.en.mdx +37 -19
  120. package/src/media/functional/functional-basic/functions/anyToString/anyToString.ru.mdx +37 -19
  121. package/src/media/functional/functional-basic/functions/anyToString/anyToString.vi.mdx +35 -17
  122. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.en.mdx +31 -19
  123. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.ru.mdx +31 -19
  124. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.vi.mdx +32 -20
  125. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.en.mdx +29 -15
  126. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.ru.mdx +28 -14
  127. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.vi.mdx +28 -14
  128. package/src/media/functional/functional-basic/functions/capitalize/capitalize.en.mdx +7 -3
  129. package/src/media/functional/functional-basic/functions/capitalize/capitalize.ru.mdx +7 -3
  130. package/src/media/functional/functional-basic/functions/capitalize/capitalize.vi.mdx +7 -3
  131. package/src/media/functional/functional-basic/functions/copyObject/copyObject.en.mdx +17 -13
  132. package/src/media/functional/functional-basic/functions/copyObject/copyObject.ru.mdx +17 -13
  133. package/src/media/functional/functional-basic/functions/copyObject/copyObject.vi.mdx +17 -13
  134. package/src/media/functional/functional-basic/functions/createElement/createElement.en.mdx +2 -0
  135. package/src/media/functional/functional-basic/functions/createElement/createElement.ru.mdx +2 -0
  136. package/src/media/functional/functional-basic/functions/createElement/createElement.vi.mdx +2 -0
  137. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.en.mdx +1 -3
  138. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.ru.mdx +1 -3
  139. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.vi.mdx +1 -3
  140. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.en.mdx +13 -10
  141. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.ru.mdx +14 -11
  142. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.vi.mdx +12 -9
  143. package/src/media/functional/functional-basic/functions/executePromise/executePromise.en.mdx +14 -13
  144. package/src/media/functional/functional-basic/functions/executePromise/executePromise.ru.mdx +15 -14
  145. package/src/media/functional/functional-basic/functions/executePromise/executePromise.vi.mdx +14 -13
  146. package/src/media/functional/functional-basic/functions/forEach/forEach.en.mdx +1 -1
  147. package/src/media/functional/functional-basic/functions/forEach/forEach.ru.mdx +1 -1
  148. package/src/media/functional/functional-basic/functions/forEach/forEach.vi.mdx +1 -1
  149. package/src/media/functional/functional-basic/functions/frame/frame.en.mdx +7 -4
  150. package/src/media/functional/functional-basic/functions/frame/frame.ru.mdx +6 -3
  151. package/src/media/functional/functional-basic/functions/frame/frame.vi.mdx +7 -4
  152. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.en.mdx +34 -0
  153. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.ru.mdx +34 -0
  154. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.vi.mdx +35 -0
  155. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +2 -0
  156. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +2 -0
  157. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +2 -0
  158. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.en.mdx +21 -0
  159. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.ru.mdx +21 -0
  160. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.vi.mdx +21 -0
  161. package/src/media/functional/functional-basic/functions/getElementId/getElementId.en.mdx +17 -3
  162. package/src/media/functional/functional-basic/functions/getElementId/getElementId.ru.mdx +17 -3
  163. package/src/media/functional/functional-basic/functions/getElementId/getElementId.vi.mdx +18 -4
  164. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.en.mdx +31 -0
  165. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.ru.mdx +31 -0
  166. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.vi.mdx +31 -0
  167. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.en.mdx +25 -0
  168. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.ru.mdx +25 -0
  169. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.vi.mdx +25 -0
  170. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.en.mdx +11 -4
  171. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.ru.mdx +14 -7
  172. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.vi.mdx +13 -6
  173. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.en.mdx +3 -2
  174. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.ru.mdx +3 -2
  175. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.vi.mdx +3 -2
  176. package/src/media/functional/functional-basic/functions/toNumber/toNumber.en.mdx +25 -9
  177. package/src/media/functional/functional-basic/functions/toNumber/toNumber.ru.mdx +25 -9
  178. package/src/media/functional/functional-basic/functions/toNumber/toNumber.vi.mdx +25 -9
  179. package/src/media/functional/functional-basic/functions/toString/toString.en.mdx +28 -0
  180. package/src/media/functional/functional-basic/functions/toString/toString.ru.mdx +28 -0
  181. package/src/media/functional/functional-basic/functions/toString/toString.vi.mdx +28 -0
  182. package/src/media/functional/ui/about/about.en.mdx +45 -0
  183. package/src/media/functional/ui/about/about.ru.mdx +45 -0
  184. package/src/media/functional/ui/about/about.vi.mdx +45 -0
  185. package/src/media/functional/ui/component/component.en.mdx +104 -0
  186. package/src/media/functional/ui/component/component.ru.mdx +106 -0
  187. package/src/media/functional/ui/component/component.vi.mdx +104 -0
  188. package/src/media/functional/ui/setup/setup.en.mdx +72 -0
  189. package/src/media/functional/ui/setup/setup.ru.mdx +72 -0
  190. package/src/media/functional/ui/setup/setup.vi.mdx +72 -0
  191. package/src/media/functional/ui/wiki-data.en.mdx +114 -0
  192. package/src/media/functional/ui/wiki-data.ru.mdx +114 -0
  193. package/src/media/functional/ui/wiki-data.vi.mdx +114 -0
  194. package/dist/WikiStorybookDescriptions-IKMchHA-.js +0 -26959
@@ -10,11 +10,13 @@ It includes tight integration with dependency classes: `ApiStatus`, `ApiResponse
10
10
 
11
11
  ## Key Features
12
12
 
13
- - **CRUD Methods** — convenient aliases `get`, `post`, `put`, `delete` for handling HTTP requests
13
+ - **CRUD Methods** — convenient aliases `get`, `post`, `put`, `patch`, `delete` for handling HTTP requests
14
14
  - **Global Configuration** — setting base URL, default headers, and parameters for all requests
15
15
  - **Lifecycle Hooks** — ability to set custom callback functions executed before (`setPreparation`) and after (`setEnd`) each request
16
16
  - **Status Tracking** — access to the status and errors of the last request via `ApiStatus`
17
- - **Caching & Emulation** — managing mock responses and caching via `ApiResponse`
17
+ - **Hydration** — transferring data from server to client (SSR) for instant rendering
18
+ - **Caching** — saving responses in internal or external storage via `ApiCache`
19
+ - **Response Emulation** — flexible management of mock data via `ApiResponse`
18
20
  - **Automatic Parsing** — converting the request body into JSON/FormData and automatically extracting data from JSON responses
19
21
  - **Geolocation** — automatic substitution of `{locale}`, `{country}`, `{language}` placeholders into request paths
20
22
 
@@ -35,10 +37,13 @@ The `ApiInstance` can be configured during initialization with custom dependency
35
37
  - `preparationClass?: typeof ApiPreparation` — class for lifecycle hook management.
36
38
  - `loadingClass?: LoadingInstance` — instance of the loading indicator manager (defaults to `Loading.getItem()`).
37
39
  - `errorCenterClass?: ErrorCenterInstance` — instance of the error center for triggering events (defaults to `ErrorCenter.getItem()`).
40
+ - `hydrationClass?: typeof ApiHydration` — class for SSR hydration management.
38
41
 
39
- ## API Calling Methods
42
+ ## Methods
40
43
 
41
- ### `request`
44
+ ### Action
45
+
46
+ #### `request`
42
47
 
43
48
  Core executor sequence method managing pure physical network fetch pipelines. Should a solitary string serve as param context, default `GET` assumptions trigger automatically.
44
49
  In case of network failures (e.g., 500 status), the method explicitly throws an exception (`throw e`), allowing errors to be natively intercepted in `try/catch`. If the server returns a JSON object, the system automatically injects a `statusObject` field (instance of request status) to the returned payload.
@@ -48,49 +53,21 @@ In case of network failures (e.g., 500 status), the method explicitly throws an
48
53
 
49
54
  **Returns:** `Promise<ApiData<T>>` — decoded endpoint structural response formatted interface (including `data`, `statusObject`, etc., when returning an object payload).
50
55
 
51
- ### `get`
52
-
53
- Dispatches a basic query through HTTP `GET` methodologies natively optimizing inputs payload onto string search parameters formats automatically.
54
-
55
- **Parameters:**
56
- - `request: ApiFetch` — fetch execution configuration property mapping (`path`, `request` body, and so on).
57
-
58
- **Returns:** `Promise<T>`
59
-
60
- ### `post`
56
+ ### Shorthand
61
57
 
62
- Transfers query packets across standard REST/GraphQL pipelines formatted onto the HTTP `POST` specification.
58
+ - `get(request: ApiFetch): Promise<T>` Dispatches a basic query through HTTP `GET` methodologies natively optimizing inputs payload onto string search parameters formats automatically.
59
+ - `post(request: ApiFetch): Promise<T>` — Transfers query packets across standard REST/GraphQL pipelines formatted onto the HTTP `POST` specification.
60
+ - `put(request: ApiFetch): Promise<T>` — Directs object modifications over target remote points using typical system environment HTTP `PUT`.
61
+ - `patch(request: ApiFetch): Promise<T>` — Initiates partial resource updates using the standard HTTP `PATCH` method.
62
+ - `delete(request: ApiFetch): Promise<T>` — Forwards structural clearance/purge request using classic URL targeted HTTP `DELETE`.
63
63
 
64
- **Parameters:**
65
- - `request: ApiFetch` — parameters interface structure container including URL pointing directives.
66
-
67
- **Returns:** `Promise<T>`
68
-
69
- ### `put`
70
-
71
- Directs object modifications over target remote points using typical system environment HTTP `PUT`.
72
-
73
- **Parameters:**
74
- - `request: ApiFetch` — query options mapped against backend routing.
75
-
76
- **Returns:** `Promise<T>`
77
-
78
- ### `delete`
79
-
80
- Forwards structural clearance/purge request using classic URL targeted HTTP `DELETE`.
81
-
82
- **Parameters:**
83
- - `request: ApiFetch` — arguments package structure wrapper.
84
-
85
- **Returns:** `Promise<T>`
86
-
87
- ## Instance Retrieval Methods
64
+ ### Check
88
65
 
89
66
  - `isLocalhost(): boolean` — Returns `true` if the code is running on a local development server.
90
67
  - `getStatus(): ApiStatus` — Returns the `ApiStatus` manager for tracking the state, errors, and complete response object of the last network request.
91
68
  - `getResponse(): ApiResponse` — Returns the responses/emulation manager `ApiResponse` for controlling mock-responses.
92
69
 
93
- ## Configuration Methods
70
+ ### Configuration
94
71
 
95
72
  Methods to configure the API (support chaining, returning the `ApiInstance` object):
96
73
  - `setHeaders(headers: Record<string, string>): this` — Applies universal headers injected automatically toward outbound fetch activities.
@@ -99,21 +76,23 @@ Methods to configure the API (support chaining, returning the `ApiInstance` obje
99
76
  - `setPreparation(callback: (apiFetch: ApiFetch) => Promise<void>): this` — Connects a custom hook function actively running just _before_ execution trigger occurs.
100
77
  - `setEnd(callback: (query: Response, apiFetch: ApiFetch) => Promise<ApiPreparationEnd>): this` — Sets the hook triggered exactly _after_ network response returns.
101
78
 
102
- ## Request Preparation Methods
79
+ ### Auxiliary
103
80
 
104
- - `getUrl(path: string, api?: boolean): string` — Generates the full target URL referencing the script, handling dynamic geography variables.
81
+ - `getUrl(path: string, api?: boolean): string` — Generates the full target URL referencing the script, handling `{locale}`, `{country}`, `{language}` placeholder substitution.
105
82
  - `getBody(request?: ApiFetch['request'], method?: string): string | FormData | undefined` — Creates data to be passed into the request physical body.
106
83
  - `getBodyForGet(request: ApiFetch['request'], path?: string, method?: string): string` — Forms query parameters specifically for HTTP arguments assigned into the URL directly used when sending `GET` queries.
84
+ - `getHydration(): ApiHydration` — Returns the hydration manager.
85
+ - `getHydrationScript(): string` — Returns a string representation of the hydration data for the client.
107
86
 
108
87
  ## ApiFetch Object
109
88
 
110
- `ApiFetch` is the main configuration object passed to all request methods (`request`, `get`, `post`, `put`, `delete`). All fields are optional:
89
+ `ApiFetch` is the main configuration object passed to all request methods (`request`, `get`, `post`, `put`, `patch`, `delete`). All fields are optional:
111
90
 
112
91
  - `path?: string` — endpoint path relative to the base URL (e.g. `'users/list'`).
113
92
  - `pathFull?: string` — full request URL. If provided, overrides `api` and `path`.
114
93
  - `api?: boolean` — whether to prepend the base URL before `path`. Default: `true`.
115
- - `method?: ApiMethod` — HTTP method (`'GET'`, `'POST'`, `'PUT'`, `'DELETE'`). Default: `'GET'`.
116
- - `request?: FormData | Record<string, any> | string` — request body (for POST/PUT) or query parameters (for GET). Serialized as JSON or `FormData`.
94
+ - `method?: ApiMethod` — HTTP method (`'GET'`, `'POST'`, `'PUT'`, `'PATCH'`, `'DELETE'`). Default: `'GET'`.
95
+ - `request?: FormData | Record<string, any> | string` — request body (for POST/PUT/PATCH) or query parameters (for GET). Serialized as JSON or `FormData`.
117
96
  - `headers?: Record<string, string> | null` — additional request headers. Pass `null` to disable all headers.
118
97
  - `type?: string` — `Content-Type` header value. Default: `'application/json;charset=UTF-8'`.
119
98
  - `auth?: boolean` — include authentication headers.
@@ -125,8 +104,8 @@ Methods to configure the API (support chaining, returning the `ApiInstance` obje
125
104
  - `globalEnd?: boolean` — whether to run the global `setEnd` hook after the response. Default: `true`.
126
105
  - `queryReturn?: (query: Response) => Promise<any>` — custom response processor instead of the default JSON reader.
127
106
  - `init?: RequestInit` — additional options passed directly to native `fetch()` (CORS, cache mode, etc.).
128
- - `timeout?: number` — request timeout in milliseconds. Default: `16000`ms.
129
- - `controller?: AbortController` — controller for canceling the request.
107
+ - `timeout?: number` — request timeout in milliseconds. Default: `16000`ms (only used if `controller` is not provided).
108
+ - `controller?: AbortController` — controller for canceling the request. If provided, timeout is ignored.
130
109
  - `retry?: number` — number of retries on failure.
131
110
  - `retryDelay?: number` — base delay between retries in milliseconds. Default: `64`ms.
132
111
 
@@ -245,7 +224,80 @@ You can selectively disable global hooks in the `ApiFetch` object:
245
224
  - `globalPreparation: false` — skip the `setPreparation` hook execution.
246
225
  - `globalEnd: false` — skip the `setEnd` hook execution.
247
226
 
248
- ## Response Emulation (ApiResponse)
227
+ ## Hydration
228
+
229
+ Hydration is a mechanism for transferring data obtained during Server-Side Rendering (SSR) to the client side. This avoids re-executing the same network requests immediately after the page loads in the browser, which significantly speeds up rendering and reduces server load.
230
+
231
+ ### How it works
232
+
233
+ 1. **Server-side (SSR):**
234
+ - All executed requests (usually `GET` methods with `global: true`) are automatically saved in the hydration list.
235
+ - After the page is formed, you need to call `api.getHydrationScript()` and insert the resulting string into the HTML template (usually at the end of the `<body>` tag).
236
+
237
+ 2. **Client-side (Browser):**
238
+ - When an `ApiInstance` is created, it automatically looks for the hydration script on the page.
239
+ - Found data is loaded into the system and substituted for the first call of similar requests.
240
+ - Thus, the client code receives data instantly without waiting for a network response.
241
+
242
+ ### Usage Example (SSR)
243
+
244
+ ```javascript
245
+ // On the server
246
+ const api = new ApiInstance();
247
+ await api.get({ path: 'settings' });
248
+
249
+ // In the page template (e.g., at the end of body)
250
+ // The method returns a string: <script id="__ui:api:hydration:id__" type="application/json">[...]</script>
251
+ const hydrationScript = api.getHydrationScript();
252
+ ```
253
+
254
+
255
+ ## Caching
256
+
257
+ The library provides a built-in mechanism for caching responses, allowing you to save request results in memory or in external storage (e.g., `LocalStorage`).
258
+
259
+ ### Key Features
260
+
261
+ - **Time to Live (TTL)** — for each request, you can specify the cache validity time in seconds.
262
+ - **External Storage** — ability to integrate with any asynchronous data storage.
263
+ - **Automatic Cleanup** — old data is removed from memory when limits are exceeded.
264
+
265
+ ### Setting up External Storage
266
+
267
+ By default, the cache works only in RAM and is reset when the page is reloaded. To save data long-term, you need to initialize `ApiCache` with your own listeners (for example, using `LocalStorage` or `IndexedDB`):
268
+
269
+ ```javascript
270
+ import { ApiCache, DataStorage } from '@dxtmisha/functional';
271
+
272
+ // Example of initialization using LocalStorage via DataStorage wrapper
273
+ ApiCache.init(
274
+ async (key) => DataStorage.get(key),
275
+ async (key, value) => {
276
+ DataStorage.set(key, value);
277
+ return true;
278
+ },
279
+ async (key) => {
280
+ DataStorage.remove(key);
281
+ return true;
282
+ }
283
+ );
284
+ ```
285
+
286
+ ### Usage in Requests
287
+
288
+ To enable caching, just pass the time in seconds in the `cache` field of the `ApiFetch` object:
289
+
290
+ ```javascript
291
+ // Cache response for 1 hour (3600 seconds)
292
+ const data = await api.get({
293
+ path: 'catalog/list',
294
+ cache: 3600
295
+ });
296
+ ```
297
+
298
+ If the data is in the cache and its lifetime has not expired, the library will return it instantly without performing a real request to the server.
299
+
300
+ ## Response Emulation
249
301
 
250
302
  The emulator manager `ApiResponse` (accessible via `api.getResponse()`) allows configuring mock responses for specified paths. This is incredibly useful during frontend UI development without a completely ready backend API or for writing test fixtures.
251
303
 
@@ -255,7 +307,7 @@ The `add` method accepts an `ApiResponseItem` object or an array of such objects
255
307
 
256
308
  **Key `ApiResponseItem` fields:**
257
309
  - `path` — String (exact match) or Regular Expression (`RegExp`) to intercept the request URL.
258
- - `method` — HTTP method (`ApiMethodItem.get`, `post`, etc.).
310
+ - `method` — HTTP method (`ApiMethodItem.get`, `post`, `put`, `patch`, etc.).
259
311
  - `request` — (Optional) Request body filter. You can use the special marker `'*any'` to bypass payload validation and capture all requests to this path.
260
312
  - `response` — Static data object _or_ a dynamic factory function `(request) => any` that generates a response based on the incoming request payload.
261
313
  - `disable` — (Optional) Disable this mock (boolean or callback).
@@ -10,11 +10,13 @@ import {Meta} from '@storybook/addon-docs/blocks'
10
10
 
11
11
  ## Ключевые особенности
12
12
 
13
- - **CRUD методы** — удобные алиасы `get`, `post`, `put`, `delete` для работы с HTTP-запросами
13
+ - **CRUD методы** — удобные алиасы `get`, `post`, `put`, `patch`, `delete` для работы с HTTP-запросами
14
14
  - **Глобальная конфигурация** — установка базового URL, заголовков и параметров по умолчанию для всех запросов
15
15
  - **Хуки жизненного цикла** — возможность задать функции, выполняемые до (`setPreparation`) и после (`setEnd`) каждого запроса
16
16
  - **Отслеживание статуса** — доступ к статусу и ошибкам последнего запроса через `ApiStatus`
17
- - **Кэширование и эмуляция** управление мок-ответами и кэшированием через `ApiResponse`
17
+ - **Гидратация** передача данных от сервера к клиенту (SSR) для мгновенной отрисовки
18
+ - **Кэширование** — сохранение ответов во внутреннем или внешнем хранилище через `ApiCache`
19
+ - **Эмуляция ответов** — гибкое управление мок-данными через `ApiResponse`
18
20
  - **Автоматический парсинг** — преобразование тела запроса в JSON/FormData и автоматическое извлечение данных из JSON-ответов
19
21
  - **Геолокация** — автоматическая подстановка `{locale}`, `{country}`, `{language}` в пути запросов
20
22
 
@@ -35,10 +37,13 @@ import {Meta} from '@storybook/addon-docs/blocks'
35
37
  - `preparationClass?: typeof ApiPreparation` — класс для управления хуками жизненного цикла.
36
38
  - `loadingClass?: LoadingInstance` — экземпляр менеджера индикации загрузки (по умолчанию: `Loading.getItem()`).
37
39
  - `errorCenterClass?: ErrorCenterInstance` — экземпляр центра ошибок для вызова событий (по умолчанию: `ErrorCenter.getItem()`).
40
+ - `hydrationClass?: typeof ApiHydration` — класс для управления гидратацией SSR.
38
41
 
39
- ## Методы запросов
42
+ ## Методы
40
43
 
41
- ### `request`
44
+ ### Действие
45
+
46
+ #### `request`
42
47
 
43
48
  Универсальный метод для выполнения сетевого HTTP-запроса. Если передана строка, выполняется простой `GET` запрос по этому адресу.
44
49
  В случае сетевых сбоев (например, 500 статус) метод явно выбрасывает исключение (`throw e`), что позволяет перехватывать ошибки в `try/catch`. Если сервер возвращает JSON объект, к возвращаемым данным автоматически добавляется поле `statusObject` (инстанс статуса запроса).
@@ -48,49 +53,21 @@ import {Meta} from '@storybook/addon-docs/blocks'
48
53
 
49
54
  **Возвращает:** `Promise<ApiData<T>>` — возвращает спарсенные данные ответа сервера (с полями `data`, `statusObject` и др., если возвращается объект).
50
55
 
51
- ### `get`
52
-
53
- Отправляет запрос методом `GET`.
54
-
55
- **Параметры:**
56
- - `request: ApiFetch` — конфигурационный объект запроса (содержащий `path`, `request` и т.д.).
57
-
58
- **Возвращает:** `Promise<T>`
59
-
60
- ### `post`
56
+ ### Сокращенные методы
61
57
 
62
- Отправляет запрос методом `POST`. Идеально для создания/сохранения сущностей.
58
+ - `get(request: ApiFetch): Promise<T>` — Отправляет запрос методом `GET`.
59
+ - `post(request: ApiFetch): Promise<T>` — Отправляет запрос методом `POST`. Идеально для создания/сохранения сущностей.
60
+ - `put(request: ApiFetch): Promise<T>` — Отправляет запрос методом `PUT`. Применяется для обновления данных.
61
+ - `patch(request: ApiFetch): Promise<T>` — Отправляет запрос методом `PATCH`. Используется для частичного обновления данных ресурса.
62
+ - `delete(request: ApiFetch): Promise<T>` — Отправляет запрос методом `DELETE`. Применяется для удаления данных из системы.
63
63
 
64
- **Параметры:**
65
- - `request: ApiFetch` — конфигурационный объект запроса (содержащий `path`, `request` и т.д.).
66
-
67
- **Возвращает:** `Promise<T>`
68
-
69
- ### `put`
70
-
71
- Отправляет запрос методом `PUT`. Применяется для обновления данных.
72
-
73
- **Параметры:**
74
- - `request: ApiFetch` — конфигурационный объект запроса (содержащий `path`, `request` и т.д.).
75
-
76
- **Возвращает:** `Promise<T>`
77
-
78
- ### `delete`
79
-
80
- Отправляет запрос методом `DELETE`. Применяется для удаления данных из системы.
81
-
82
- **Параметры:**
83
- - `request: ApiFetch` — конфигурационный объект запроса (содержащий `path`, `request` и т.д.).
84
-
85
- **Возвращает:** `Promise<T>`
86
-
87
- ## Методы получения инстансов
64
+ ### Проверка
88
65
 
89
66
  - `isLocalhost(): boolean` — Возвращает `true`, если код запущен на локальном сервере.
90
67
  - `getStatus(): ApiStatus` — Возвращает менеджер `ApiStatus` для работы со статусом последнего запроса.
91
68
  - `getResponse(): ApiResponse` — Возвращает менеджер эмуляции `ApiResponse`.
92
69
 
93
- ## Конфигурация
70
+ ### Конфигурация
94
71
 
95
72
  Методы для настройки API (поддерживают чейнинг вызовов, возвращают объект `ApiInstance`):
96
73
  - `setHeaders(headers: Record<string, string>): this` — Устанавливает глобальные заголовки по умолчанию.
@@ -99,21 +76,23 @@ import {Meta} from '@storybook/addon-docs/blocks'
99
76
  - `setPreparation(callback: (apiFetch: ApiFetch) => Promise<void>): this` — Устанавливает хук, выполняемый перед каждым сетевым запросом.
100
77
  - `setEnd(callback: (query: Response, apiFetch: ApiFetch) => Promise<ApiPreparationEnd>): this` — Устанавливает хук, выполняемый после получения ответа.
101
78
 
102
- ## Формирование запроса
79
+ ### Вспомогательные
103
80
 
104
- - `getUrl(path: string, api?: boolean): string` — Формирует полный адрес к скрипту запроса с подстановкой гео-меток.
81
+ - `getUrl(path: string, api?: boolean): string` — Формирует полный адрес к скрипту запроса с подстановкой плейсхолдеров `{locale}`, `{country}`, `{language}`.
105
82
  - `getBody(request?: ApiFetch['request'], method?: string): string | FormData | undefined` — Формирует данные для тела запроса.
106
83
  - `getBodyForGet(request: ApiFetch['request'], path?: string, method?: string): string` — Формирует строку query-параметров для GET-запроса.
84
+ - `getHydration(): ApiHydration` — Возвращает менеджер гидратации.
85
+ - `getHydrationScript(): string` — Возвращает строковое представление данных гидратации для клиента.
107
86
 
108
87
  ## Объект ApiFetch
109
88
 
110
- `ApiFetch` — главный конфигурационный объект, передаваемый в методы `request`, `get`, `post`, `put`, `delete`. Все поля опциональны:
89
+ `ApiFetch` — главный конфигурационный объект, передаваемый в методы `request`, `get`, `post`, `put`, `patch`, `delete`. Все поля опциональны:
111
90
 
112
91
  - `path?: string` — путь к endpoint-скрипту относительно базового URL (например: `'users/list'`).
113
92
  - `pathFull?: string` — полный URL запроса. Если указан, игнорирует `api` и `path`.
114
93
  - `api?: boolean` — добавлять ли базовый URL перед `path`. По умолчанию: `true`.
115
- - `method?: ApiMethod` — HTTP-метод (`'GET'`, `'POST'`, `'PUT'`, `'DELETE'`). По умолчанию: `'GET'`.
116
- - `request?: FormData | Record<string, any> | string` — тело запроса (для POST/PUT) или query-параметры (для GET). Передается как JSON или `FormData`.
94
+ - `method?: ApiMethod` — HTTP-метод (`'GET'`, `'POST'`, `'PUT'`, `'PATCH'`, `'DELETE'`). По умолчанию: `'GET'`.
95
+ - `request?: FormData | Record<string, any> | string` — тело запроса (для POST/PUT/PATCH) или query-параметры (for GET). Передается как JSON или `FormData`.
117
96
  - `headers?: Record<string, string> | null` — дополнительные заголовки запроса. `null` — отключить все заголовки.
118
97
  - `type?: string` — значение `Content-Type`. По умолчанию: `'application/json;charset=UTF-8'`.
119
98
  - `auth?: boolean` — добавить заголовки аутентификации.
@@ -125,8 +104,8 @@ import {Meta} from '@storybook/addon-docs/blocks'
125
104
  - `globalEnd?: boolean` — запускать ли глобальный хук `setEnd` после ответа. По умолчанию: `true`.
126
105
  - `queryReturn?: (query: Response) => Promise<any>` — обработчик ответа вместо стандартного чтения JSON.
127
106
  - `init?: RequestInit` — дополнительные опции для нативного `fetch()` (CORS, режим кеша и др.).
128
- - `timeout?: number` — таймаут запроса в миллисекундах. По умолчанию: `16000`мс.
129
- - `controller?: AbortController` — контроллер для отмены запроса.
107
+ - `timeout?: number` — таймаут запроса в миллисекундах. По умолчанию: `16000`мс (используется только если не передан `controller`).
108
+ - `controller?: AbortController` — контроллер для отмены запроса. Если передан, таймаут игнорируется.
130
109
  - `retry?: number` — количество повторов при сбое.
131
110
  - `retryDelay?: number` — базовая задержка между повторами в миллисекундах. По умолчанию: `64`мс.
132
111
 
@@ -245,7 +224,80 @@ api.setEnd(async (response, apiFetch) => {
245
224
  - `globalPreparation: false` — пропустить выполнение хука `setPreparation`.
246
225
  - `globalEnd: false` — пропустить выполнение хука `setEnd`.
247
226
 
248
- ## Эмуляция ответов (ApiResponse)
227
+ ## Гидратация
228
+
229
+ Гидратация — это механизм передачи данных, полученных в ходе серверного рендеринга (SSR), на сторону клиента. Это позволяет избежать повторного выполнения тех же самых сетевых запросов сразу после загрузки страницы в браузере, что значительно ускоряет отрисовку и снижает нагрузку на сервер.
230
+
231
+ ### Как это работает
232
+
233
+ 1. **На стороне сервера (SSR):**
234
+ - Все выполненные запросы (обычно метода `GET` с параметром `global: true`) автоматически сохраняются в списке гидратации.
235
+ - После завершения формирования страницы необходимо вызвать метод `api.getHydrationScript()` и вставить полученную строку в HTML-шаблон (обычно в конец тега `<body>`).
236
+
237
+ 2. **На стороне клиента (Браузер):**
238
+ - При создании экземпляра `ApiInstance` он автоматически ищет на странице скрипт с данными гидратации.
239
+ - Найденные данные загружаются в систему и подставляются вместо первого вызова аналогичных запросов.
240
+ - Таким образом, клиентский код получает данные мгновенно, не дожидаясь ответа от сети.
241
+
242
+ ### Пример использования (SSR)
243
+
244
+ ```javascript
245
+ // На сервере
246
+ const api = new ApiInstance();
247
+ await api.get({ path: 'settings' });
248
+
249
+ // В шаблоне страницы (например, в конце body)
250
+ // Метод вернет строку: <script id="__ui:api:hydration:id__" type="application/json">[...]</script>
251
+ const hydrationScript = api.getHydrationScript();
252
+ ```
253
+
254
+
255
+ ## Кэширование
256
+
257
+ Библиотека предоставляет встроенный механизм кэширования ответов, который позволяет сохранять результаты запросов в памяти или во внешнем хранилище (например, `LocalStorage`).
258
+
259
+ ### Основные возможности
260
+
261
+ - **Время жизни (TTL)** — для каждого запроса можно указать время актуальности кэша в секундах.
262
+ - **Внешние хранилища** — возможность интеграции с любым асинхронным хранилищем данных.
263
+ - **Автоматическая очистка** — старые данные удаляются из памяти при превышении лимитов.
264
+
265
+ ### Настройка внешнего хранилища
266
+
267
+ По умолчанию кэш работает только в оперативной памяти и сбрасывается при перезагрузке страницы. Чтобы сохранять данные надолго, необходимо инициализировать `ApiCache` своими слушателями (например, используя `LocalStorage` или `IndexedDB`):
268
+
269
+ ```javascript
270
+ import { ApiCache, DataStorage } from '@dxtmisha/functional';
271
+
272
+ // Пример инициализации с использованием LocalStorage через обертку DataStorage
273
+ ApiCache.init(
274
+ async (key) => DataStorage.get(key),
275
+ async (key, value) => {
276
+ DataStorage.set(key, value);
277
+ return true;
278
+ },
279
+ async (key) => {
280
+ DataStorage.remove(key);
281
+ return true;
282
+ }
283
+ );
284
+ ```
285
+
286
+ ### Использование в запросах
287
+
288
+ Для включения кэширования достаточно передать время в секундах в поле `cache` объекта `ApiFetch`:
289
+
290
+ ```javascript
291
+ // Кэшировать ответ на 1 час (3600 секунд)
292
+ const data = await api.get({
293
+ path: 'catalog/list',
294
+ cache: 3600
295
+ });
296
+ ```
297
+
298
+ Если данные есть в кэше и их время жизни не истекло, библиотека вернет их мгновенно, не выполняя реальный запрос к серверу.
299
+
300
+ ## Эмуляция ответов
249
301
 
250
302
  Менеджер эмуляции `ApiResponse` (доступен через `api.getResponse()`) позволяет настраивать мок-ответы для определенных путей — это невероятно полезно при разработке UI без готового Backend API или для написания тестов.
251
303
 
@@ -255,7 +307,7 @@ api.setEnd(async (response, apiFetch) => {
255
307
 
256
308
  **Важные поля `ApiResponseItem`:**
257
309
  - `path` — Строка (точное совпадение) или Регулярное выражение (`RegExp`) для перехвата пути.
258
- - `method` — HTTP метод (`ApiMethodItem.get`, `post` и т.д.).
310
+ - `method` — HTTP метод (`ApiMethodItem.get`, `post`, `put`, `patch` и т.д.).
259
311
  - `request` — (Опционально) Фильтр по телу запроса. Можно использовать специальный маркер `'*any'`, чтобы перехватывать любые данные.
260
312
  - `response` — Статический объект с данными ответа _или_ функция `(request) => any`, генерирующая ответ динамически на основе параметров запроса.
261
313
  - `disable` — (Опционально) Отключить этот мок (boolean или callback).