@ryuzaki13/react-foundation-lib 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,8 +2,69 @@
2
2
 
3
3
  Библиотечный пакет нижнего технического слоя: здесь лежат чистые функции, общие React/browser hooks и сериализуемые runtime-контракты без знания конкретных features, widgets, pages или apps.
4
4
 
5
+ Пакет публикуется в npm как публичная библиотека, но его основная задача практическая: вынести повторно используемый `shared/lib` слой из собственных проектов автора и подключать его одинаково в нескольких host-приложениях. Это не универсальный набор утилит на все случаи жизни; контракты и состав модулей в первую очередь оптимизируются под семейство проектов, где поверх этого слоя используются `@ryuzaki13/react-foundation-api` и `@ryuzaki13/react-foundation-ui`.
6
+
7
+ `react-foundation-lib` является нижним пакетом в этой цепочке. Он не должен зависеть от `api` или `ui`; наоборот, `api` и `ui` используют его как общий технический фундамент.
8
+
9
+ ## Установка
10
+
11
+ ```bash
12
+ npm install @ryuzaki13/react-foundation-lib
13
+ ```
14
+
15
+ Пакет распространяется как ESM и не открывает корневой импорт. Используйте только точечные entrypoints из `exports`:
16
+
17
+ ```ts
18
+ import { formatDateAsDate } from "@ryuzaki13/react-foundation-lib/formatters";
19
+ import { createQueryClient } from "@ryuzaki13/react-foundation-lib/query-client";
20
+ import { buildODataFilter } from "@ryuzaki13/react-foundation-lib/odata-service";
21
+ import type { RowRecord } from "@ryuzaki13/react-foundation-lib/types";
22
+ ```
23
+
24
+ Импорт вида `@ryuzaki13/react-foundation-lib` намеренно недоступен. Так consumer явно выбирает нужный модуль, а сборщик host-проекта не получает общий barrel со всем пакетом. Типы экспортируются теми же subpath entrypoints через `exports.types`.
25
+
26
+ ## Peer-зависимости
27
+
28
+ Большинство внешних пакетов объявлены как optional peers. Это означает только то, что их не нужно ставить для каждого сценария. Если host использует entrypoint, который импортирует внешний пакет, совместимая peer-зависимость должна быть установлена в host-проекте.
29
+
30
+ | Entry point | Что может потребоваться в host-проекте |
31
+ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
32
+ | `formatters`, `array`, `utils`, `validators` | Обычно не требуют дополнительных runtime-зависимостей. |
33
+ | `hooks`, `dom`, `copy`, `media`, `pwa` | `react`, если используются React hooks. |
34
+ | `query-client`, `error-report` | `@tanstack/react-query`, `@tanstack/query-persist-client-core`, `@tanstack/query-broadcast-client-experimental`. |
35
+ | `odata-service` | `zod`; отдельные helpers типизируются вокруг `@tanstack/react-query`. |
36
+ | `odata`, `notifications` | `zustand`, для отдельных store-helpers также `immer`. |
37
+ | `table` | `@tanstack/react-table` и `react` для selection hooks. |
38
+ | `virtualizer` | `@tanstack/react-virtual` и `react`. |
39
+ | `hooks` search helpers | `@tanstack/react-router`. |
40
+ | `hooks` DnD helpers | `@dnd-kit/core`, `@dnd-kit/sortable`. |
41
+ | `hooks` floating/listbox и DOM references | `@floating-ui/react`. |
42
+ | `excel` | `write-excel-file`. |
43
+
44
+ Такая схема оставляет пакет библиотечным: зависимости не зашиваются в bundle, а host-приложение контролирует версии React, TanStack, Zod и других runtime-библиотек.
45
+
46
+ ## Проверка пакета
47
+
48
+ Основные команды разработки:
49
+
50
+ ```bash
51
+ npm run lint
52
+ npm run typecheck
53
+ npm run test
54
+ npm run build
55
+ ```
56
+
57
+ Перед публикацией можно проверить полный npm-артефакт:
58
+
59
+ ```bash
60
+ npm run pack:dry-run
61
+ ```
62
+
5
63
  ## Содержание
6
64
 
65
+ - [Установка](#установка)
66
+ - [Peer-зависимости](#peer-зависимости)
67
+ - [Проверка пакета](#проверка-пакета)
7
68
  - [Быстрый выбор модуля](#быстрый-выбор-модуля)
8
69
  - [Форматирование и значения](#форматирование-и-значения)
9
70
  - [OData, таблицы и экспорт](#odata-таблицы-и-экспорт)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getClientFingerprint.d.ts","sourceRoot":"","sources":["../../src/fingerprint/getClientFingerprint.ts"],"names":[],"mappings":"AAIA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBnE"}
@@ -0,0 +1,2 @@
1
+ export * from "./getClientFingerprint";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fingerprint/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuzaki13/react-foundation-lib",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "Reusable React and TypeScript foundation utilities, hooks, and primitives.",
5
5
  "license": "MIT",
6
6
  "author": "Ryuzaki13",
@@ -1 +0,0 @@
1
- {"version":3,"file":"getClientFingerprint.d.ts","sourceRoot":"","sources":["../../src/auth/getClientFingerprint.ts"],"names":[],"mappings":"AAIA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBnE"}