@budarin/psw-plugin-opfs-serve-range 1.0.3 → 1.0.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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [Русская версия](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/README.ru.md)
4
4
 
5
- Service Worker plugins and utilities for `@budarin/pluggable-serviceworker` that serve HTTP Range requests from files stored in Origin Private File System (OPFS).
5
+ Service Worker plugins and utilities for [@budarin/pluggable-serviceworker](https://www.npmjs.com/package/@budarin/pluggable-serviceworker) that serve HTTP Range requests from files stored in Origin Private File System (OPFS).
6
6
 
7
7
  [![CI](https://github.com/budarin/psw-plugin-opfs-serve-range/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/budarin/psw-plugin-opfs-serve-range/actions/workflows/ci.yml)
8
8
  [![npm](https://img.shields.io/npm/v/@budarin/psw-plugin-opfs-serve-range?color=cb0000)](https://www.npmjs.com/package/@budarin/psw-plugin-opfs-serve-range)
@@ -28,7 +28,7 @@ In environments without OPFS support, plugin factories return `undefined`.
28
28
 
29
29
  All cache files live under a single OPFS directory. The directory name is configured once via **configureOpfs({ folderName })** before registering plugins (defaults to `'range-requests-cache'`). To clear the cache, call **clearOpfsCache()** – the whole directory is removed. Inside, there is one file per URL; all metadata is stored in the file footer.
30
30
 
31
- Detailed cache behavior (limits, LRU, eviction, notifications) is described in [docs/opfs-cache-behavior.md](docs/opfs-cache-behavior.md) (Russian version: [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md)).
31
+ Detailed cache behavior (limits, LRU, eviction, notifications) is described in [docs/opfs-cache-behavior.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.md) (Russian version: [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md)).
32
32
 
33
33
  ## Install
34
34
 
@@ -183,7 +183,7 @@ onOPFSSkipQuotaExceeded((event) => {
183
183
  });
184
184
  ```
185
185
 
186
- See [docs/opfs-cache-behavior.md](docs/opfs-cache-behavior.md) for details (Russian version: [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md)).
186
+ See [docs/opfs-cache-behavior.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.md) for details (Russian version: [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md)).
187
187
 
188
188
  ### Clearing the cache and managing individual resources
189
189
 
package/README.ru.md CHANGED
@@ -1,13 +1,12 @@
1
1
  # @budarin/psw-plugin-opfs-serve-range
2
2
 
3
-
4
3
  Большие медиафайлы и другие «тяжёлые» ресурсы почти всегда запрашиваются по частям через HTTP Range, а не одним куском. Когда такие файлы лежат в обычном HTTP‑кеше (Cache API), сервис‑воркеру приходится каждый раз читать и обрабатывать весь файл, даже если клиенту нужен только небольшой диапазон. Это лишняя нагрузка на память и процессор, которая особенно больно бьёт по слабым устройствам и при небольшой квоте хранилища.
5
4
 
6
5
  Этот пакет решает задачу по‑другому: он использует Origin Private File System (OPFS) как основное хранилище для больших ресурсов и ответов по Range. Файлы записываются в OPFS в собственном формате (один файл на URL плюс метаданные во футере), а диапазоны читаются напрямую из файловой системы, без Cache API. Поверх этого построены плагины для предзагрузки, фоновых загрузок и обслуживания range‑запросов.
7
6
 
8
7
  В отличие от пакета `@budarin/psw-plugin-serve-range-requests`, который работает поверх обычного кеша (Cache API) и отдаёт диапазоны для уже закешированных ответов, этот пакет использует именно OPFS в качестве кеша: даёт явный контроль над квотой и политиками эвикции (лимиты, LRU, уведомления вкладок), поддерживает сценарии «сначала скачать в фоне, потом долго воспроизводить или просматривать офлайн» (через Background Fetch и precache) и предоставляет утилиты для собственных плагинов записи и чтения из OPFS.
9
8
 
10
- Пакет предоставляет плагины и утилиты для `@budarin/pluggable-serviceworker` для обработки range‑запросов к файлам в OPFS:
9
+ Пакет предоставляет плагины и утилиты для [@budarin/pluggable-serviceworker](https://www.npmjs.com/package/@budarin/pluggable-serviceworker) для обработки range‑запросов к файлам в OPFS:
11
10
 
12
11
  - **opfsServeRange** — читает файлы из OPFS и отдаёт запрошенные диапазоны байтов.
13
12
  - **opfsPrecache** — при установке сервис‑воркера загружает список URL и записывает их в OPFS. Загрузка объёмных файлов на стадии установки может занять много времени, поэтому в UI имеет смысл явно сообщать пользователю, что идёт инициализация, либо не включать большие файлы в precache. Отдельно важно учитывать, что если на стадии `install` при записи в OPFS не хватит места и операция завершится ошибкой, весь сервис‑воркер не будет установлен (install не завершится успешно). Через opfsPrecache стоит грузить только те ресурсы, которые гарантированно помещаются даже на маленьких и уже частично заполненных устройствах; тяжёлые файлы лучше выносить в отдельные сценарии фоновой или отложенной загрузки с помощью плагина `opfsRangeFromNetworkAndCache` или Background Fetch.
@@ -19,7 +18,7 @@
19
18
 
20
19
  Все файлы кеша лежат в одной папке OPFS. Её имя задаётся один раз в **configureOpfs({ folderName })** до регистрации плагинов (по умолчанию `'range-requests-cache'`). Чтобы очистить кеш, вызовите **clearOpfsCache()** — удалится вся папка. Внутри — один файл на URL, все метаданные хранятся в самом файле.
21
20
 
22
- Подробное описание поведения кеша (лимиты, LRU, эвикция, оповещения) — в [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md).
21
+ Подробное описание поведения кеша (лимиты, LRU, эвикция, оповещения) — в [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md).
23
22
 
24
23
  ## Установка
25
24
 
@@ -174,19 +173,19 @@ onOPFSSkipQuotaExceeded((event) => {
174
173
  });
175
174
  ```
176
175
 
177
- Подробнее — в [docs/opfs-cache-behavior.ru.md](docs/opfs-cache-behavior.ru.md) и в разделе **«Клиентские утилиты»** этого README.
176
+ Подробнее — в [docs/opfs-cache-behavior.ru.md](https://github.com/budarin/psw-plugin-opfs-serve-range/blob/master/docs/opfs-cache-behavior.ru.md) и в разделе **«Клиентские утилиты»** этого README.
178
177
 
179
178
  ### Очистка кеша и управление отдельными ресурсами
180
179
 
181
- Когда нужно сбросить весь кеш (например, по кнопке в UI или при логауте), можно вызвать clearOpfsCache() из сервис-воркера или клиента — будет удалена вся папка кеша.
180
+ Когда нужно сбросить весь кеш (например, по кнопке в UI или при логауте), можно вызвать `clearOpfsCache()` из сервис-воркера или клиента — будет удалена вся папка кеша.
182
181
 
183
182
  Если нужно работать с отдельными ресурсами (показать пользователю список сохранённых файлов и дать удалить что-то выборочно), можно использовать клиентские утилиты из entry point `@budarin/psw-plugin-opfs-serve-range/client`. Список в кеше строится по метаданным в футере (там теперь хранится исходный url каждого ресурса).
184
183
 
185
184
  Основные сценарии:
186
185
 
187
- - получить список ресурсов в OPFS-кеше с размерами и типами — listOpfsCachedResources();
188
- - проверить, есть ли конкретный URL в кеше — hasInOpfsCache(url);
189
- - удалить один ресурс по URL — deleteFromOpfsCache(url).
186
+ - получить список ресурсов в OPFS-кеше с размерами и типами — `listOpfsCachedResources()`;
187
+ - проверить, есть ли конкретный URL в кеше — `hasInOpfsCache`(url);
188
+ - удалить один ресурс по URL — `deleteFromOpfsCache`(url).
190
189
 
191
190
  Эти утилиты и подписки на события описаны подробнее в разделе **«Клиентские утилиты»** и в типах пакета.
192
191
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budarin/psw-plugin-opfs-serve-range",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Service Worker plugin: serve HTTP Range requests from OPFS files",
5
5
  "keywords": [
6
6
  "service-worker",