@ryuzaki13/react-foundation-lib 1.4.0 → 1.4.2

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 (101) hide show
  1. package/README.md +172 -114
  2. package/dist/chunks/{formatters-CBgrBeSA.js → formatters-D33Uh3si.js} +7 -8
  3. package/dist/chunks/{formatters-CBgrBeSA.js.map → formatters-D33Uh3si.js.map} +1 -1
  4. package/dist/chunks/odata-service-CWkHASdw.js +2211 -0
  5. package/dist/chunks/odata-service-CWkHASdw.js.map +1 -0
  6. package/dist/chunks/{validate-BW-7BZy_.js → validate-DyzojM0w.js} +2 -2
  7. package/dist/chunks/{validate-BW-7BZy_.js.map → validate-DyzojM0w.js.map} +1 -1
  8. package/dist/error-report/index.js +2 -2
  9. package/dist/excel/index.js +20 -21
  10. package/dist/excel/index.js.map +1 -1
  11. package/dist/formatters/index.js +4 -5
  12. package/dist/{odata → odata-service}/buildSeparatedArrays.d.ts +1 -1
  13. package/dist/odata-service/buildSeparatedArrays.d.ts.map +1 -0
  14. package/dist/{odata/types.d.ts → odata-service/collectionTypes.d.ts} +1 -1
  15. package/dist/odata-service/collectionTypes.d.ts.map +1 -0
  16. package/dist/{odata → odata-service}/dateUtils.d.ts +1 -1
  17. package/dist/odata-service/dateUtils.d.ts.map +1 -0
  18. package/dist/{odata → odata-service}/findCollectionPairs.d.ts +1 -1
  19. package/dist/odata-service/findCollectionPairs.d.ts.map +1 -0
  20. package/dist/odata-service/index.d.ts +5 -0
  21. package/dist/odata-service/index.d.ts.map +1 -1
  22. package/dist/odata-service/index.js +2 -2
  23. package/dist/{odata/store.d.ts → odata-service/odataCollectionStore.d.ts} +1 -1
  24. package/dist/odata-service/odataCollectionStore.d.ts.map +1 -0
  25. package/dist/query-client/index.js.map +1 -1
  26. package/dist/query-client/queryClient.d.ts +1 -3
  27. package/dist/query-client/queryClient.d.ts.map +1 -1
  28. package/package.json +1 -5
  29. package/src/array/README.mdx +1630 -0
  30. package/src/binary/README.mdx +1405 -0
  31. package/src/bounded-copy-stack/README.mdx +257 -0
  32. package/src/context-menu/README.mdx +326 -0
  33. package/src/copy/README.mdx +992 -0
  34. package/src/crypto/README.mdx +1052 -0
  35. package/src/currency/README.mdx +155 -0
  36. package/src/date-segments/README.mdx +319 -0
  37. package/src/dom/README.mdx +2179 -0
  38. package/src/error/README.mdx +95 -0
  39. package/src/error-report/README.mdx +612 -0
  40. package/src/excel/README.mdx +449 -0
  41. package/src/file/README.mdx +1957 -0
  42. package/src/fingerprint/README.mdx +100 -0
  43. package/src/form/README.mdx +101 -0
  44. package/src/formatters/README.mdx +469 -0
  45. package/src/formatters/boolean/README.mdx +494 -0
  46. package/src/formatters/date/README.mdx +732 -0
  47. package/src/formatters/number/README.mdx +542 -0
  48. package/src/formatters/pipeline/README.mdx +629 -0
  49. package/src/formatters/rowBased/README.mdx +486 -0
  50. package/src/formatters/strings/README.mdx +442 -0
  51. package/src/formatters/valueState/README.mdx +459 -0
  52. package/src/formulas/README.mdx +1283 -0
  53. package/src/foundationLib.mdx +70 -54
  54. package/src/hooks/README.mdx +988 -0
  55. package/src/http/README.mdx +126 -0
  56. package/src/media/README.mdx +1853 -0
  57. package/src/notifications/README.mdx +323 -0
  58. package/src/number-scale/README.mdx +318 -0
  59. package/src/odata-service/README.mdx +2916 -0
  60. package/src/presets/README.mdx +136 -0
  61. package/src/pwa/README.mdx +394 -0
  62. package/src/query-client/README.mdx +2500 -0
  63. package/src/range-output/README.mdx +161 -0
  64. package/src/seo/README.mdx +279 -0
  65. package/src/session-storage/README.mdx +125 -0
  66. package/src/string-comparison/README.mdx +96 -0
  67. package/src/table/README.mdx +3106 -0
  68. package/src/three-scene/README.mdx +248 -0
  69. package/src/types/README.mdx +172 -0
  70. package/src/utils/README.mdx +1724 -0
  71. package/src/validators/README.mdx +239 -0
  72. package/src/virtualizer/README.mdx +138 -0
  73. package/src/xml/README.mdx +149 -0
  74. package/dist/chunks/dateUtils-B5V5aXB-.js +0 -847
  75. package/dist/chunks/dateUtils-B5V5aXB-.js.map +0 -1
  76. package/dist/chunks/odata-service-B6TxBSLm.js +0 -1277
  77. package/dist/chunks/odata-service-B6TxBSLm.js.map +0 -1
  78. package/dist/odata/buildSeparatedArrays.d.ts.map +0 -1
  79. package/dist/odata/dateUtils.d.ts.map +0 -1
  80. package/dist/odata/findCollectionPairs.d.ts.map +0 -1
  81. package/dist/odata/index.d.ts +0 -6
  82. package/dist/odata/index.d.ts.map +0 -1
  83. package/dist/odata/index.js +0 -102
  84. package/dist/odata/index.js.map +0 -1
  85. package/dist/odata/store.d.ts.map +0 -1
  86. package/dist/odata/types.d.ts.map +0 -1
  87. package/src/binary/README.md +0 -110
  88. package/src/docs/browserAndReact.mdx +0 -150
  89. package/src/docs/filesAndExcel.mdx +0 -163
  90. package/src/docs/formatters-runtime.mdx +0 -455
  91. package/src/docs/formatters.mdx +0 -380
  92. package/src/docs/odataAndTables.mdx +0 -178
  93. package/src/docs/pureUtilities.mdx +0 -96
  94. package/src/docs/runtimeAndState.mdx +0 -155
  95. package/src/file/README.md +0 -289
  96. package/src/formatters/date/README.md +0 -520
  97. package/src/formatters/number/README.md +0 -123
  98. package/src/formatters/valueState/README.md +0 -275
  99. package/src/formulas/README.md +0 -42
  100. package/src/pwa/README.md +0 -638
  101. package/src/query-client/README.md +0 -565
@@ -0,0 +1,126 @@
1
+ import { Meta } from "@storybook/addon-docs/blocks";
2
+
3
+ <Meta title="Foundation Lib/HTTP/Headers and Text Response" />
4
+
5
+ # HTTP headers и текстовые ответы через `@ryuzaki13/react-foundation-lib/http`
6
+
7
+ Модуль создаёт стандартный набор HTTP-заголовков запрета кеширования и обычный `Response` с UTF-8 plain text.
8
+
9
+ ## Содержание
10
+
11
+ - [Назначение и границы](#назначение-и-границы)
12
+ - [Установка и импорт](#установка-и-импорт)
13
+ - [`createNoStoreHeaders`](#createnostoreheaders)
14
+ - [`createTextHttpResponse`](#createtexthttpresponse)
15
+ - [Runtime и безопасность](#runtime-и-безопасность)
16
+ - [API](#api)
17
+
18
+ ## Назначение и границы
19
+
20
+ ```text
21
+ HeadersInit + text + status
22
+ │
23
+ ▼
24
+ Headers с no-store + Response(text/plain; charset=UTF-8)
25
+ ```
26
+
27
+ Модуль не выполняет `fetch`, не сериализует JSON, не задаёт CORS, CSP, cookies или authorization и не превращает ошибки transport в response автоматически.
28
+
29
+ ## Установка и импорт
30
+
31
+ ```ts
32
+ import { createNoStoreHeaders, createTextHttpResponse } from "@ryuzaki13/react-foundation-lib/http";
33
+
34
+ import type { NoStoreHeadersInit, TextHttpResponseOptions } from "@ryuzaki13/react-foundation-lib/http";
35
+ ```
36
+
37
+ Нужны стандартные Web API `Headers` и `Response`. Они есть в браузерах, Service Worker и современных server runtimes, но могут отсутствовать в старом Node.js без polyfill.
38
+
39
+ ## `createNoStoreHeaders`
40
+
41
+ ```ts
42
+ const headers = createNoStoreHeaders({
43
+ "X-Request-Id": "request-1"
44
+ });
45
+ ```
46
+
47
+ Функция создаёт новый `Headers` и устанавливает:
48
+
49
+ ```text
50
+ Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate
51
+ Pragma: no-cache
52
+ Expires: 0
53
+ ```
54
+
55
+ Поддерживаются все стандартные формы `HeadersInit`:
56
+
57
+ ```ts
58
+ createNoStoreHeaders();
59
+ createNoStoreHeaders(new Headers({ "X-Test": "1" }));
60
+ createNoStoreHeaders({ "X-Test": "1" });
61
+ createNoStoreHeaders([["X-Test", "1"]]);
62
+ ```
63
+
64
+ Исходный `Headers` не изменяется: constructor создаёт новую коллекцию.
65
+
66
+ Если `init` уже содержит `Cache-Control`, `Pragma` или `Expires`, библиотечное значение перезаписывает его.
67
+
68
+ > `no-store` — инструкция кешам, а не гарантия уничтожения уже сохранённых данных. Не помещайте секреты в response только потому, что добавлены эти headers.
69
+
70
+ ## `createTextHttpResponse`
71
+
72
+ ```ts
73
+ const response = createTextHttpResponse({
74
+ status: 400,
75
+ text: "Некорректный запрос",
76
+ headers: {
77
+ "X-Request-Id": "request-1"
78
+ }
79
+ });
80
+ ```
81
+
82
+ Результат:
83
+
84
+ - обычный экземпляр `Response`;
85
+ - переданный HTTP status;
86
+ - body с исходной строкой;
87
+ - no-store headers;
88
+ - `Content-Type: text/plain; charset=UTF-8`.
89
+
90
+ ```ts
91
+ console.log(response.status); // 400.
92
+ console.log(await response.text()); // "Некорректный запрос".
93
+ console.log(response.headers.get("Content-Type"));
94
+ // "text/plain; charset=UTF-8".
95
+ ```
96
+
97
+ Переданный `Content-Type` перезаписывается. Для JSON, HTML, XML, file stream или redirect создайте специализированный response соответствующего владельца.
98
+
99
+ `Response` сам проверяет допустимость status. Например, некорректное значение может привести к исключению конструктора; helper его не перехватывает.
100
+
101
+ ## Runtime и безопасность
102
+
103
+ - Функции синхронны; чтение body через `response.text()` асинхронно по стандарту Web API.
104
+ - Модуль подходит browser, worker и server runtime с Web Fetch API.
105
+ - Текст вставляется как plain text, а не HTML.
106
+ - CORS-заголовки не добавляются.
107
+ - `Cache-Control` не заменяет authorization и redaction.
108
+ - Не возвращайте пользователю stack trace, tokens или внутренний transport payload.
109
+ - В Service Worker учитывайте общую cache policy: no-store response не должен вручную помещаться в Cache Storage.
110
+
111
+ ## API
112
+
113
+ ```ts
114
+ type NoStoreHeadersInit = HeadersInit | undefined;
115
+
116
+ type TextHttpResponseOptions = {
117
+ readonly status: number;
118
+ readonly text: string;
119
+ readonly headers?: HeadersInit;
120
+ };
121
+ ```
122
+
123
+ | Export | Результат |
124
+ | ------------------------ | ---------------- |
125
+ | `createNoStoreHeaders` | Новый `Headers` |
126
+ | `createTextHttpResponse` | Новый `Response` |