@budarin/psw-plugin-opfs-serve-range 1.1.4 → 1.1.6

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
@@ -165,28 +165,19 @@ Client‑side helpers are exported from the entry point `@budarin/psw-plugin-opf
165
165
 
166
166
  **Message payload**
167
167
 
168
- Every subscription handler receives a `MessageEvent`; `event.data` is `{ type: string } & OpfsMessagePayload`:
169
-
170
- - `type` — message type (one of the `OPFS_MSG_*` constants);
171
- - `url?` — URL of the resource the event refers to (when applicable);
172
- - `size?` — size in bytes (e.g. file that did not fit);
173
- - `limit?` — cache limit in bytes (e.g. in WRITE_SKIPPED / CACHE_LIMIT_REACHED);
174
- - `reason?` — error text (in WRITE_FAILED).
175
-
176
- Some events send extra fields (e.g. `count` in EVICTION_COMPLETED).
168
+ Each handler receives a `MessageEvent`; `event.data` is `{ type: string } & OpfsMessagePayload`, and some events add a `count` field. The exact set of fields depends on the message type (see table below). The package type `OpfsMessagePayload` is `{ url?: string; size?: number; limit?: number; reason?: string }`.
177
169
 
178
170
  **Message subscriptions**
179
171
 
180
- Each function takes one argument — the handler and returns an unsubscribe function `() => void`. Call it when the subscription is no longer needed.
172
+ Each function takes a handler and returns an unsubscribe function `() => void`. The table lists only subscriptions for messages **that the service worker actually sends** in the current version; the exact `event.data` fields are in the last column.
181
173
 
182
- | Function | Signature | When it runs |
183
- |----------|-----------|---------------|
184
- | `onOPFSQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | Browser threw QuotaExceeded while writing to OPFS. `event.data`: `url`, optionally `size`. |
185
- | `onOPFSWriteSkipped` | `(handler: (event: MessageEvent) => void) => () => void` | Write not started: file does not fit even after eviction. `event.data`: `url`, `size`, `limit`. |
186
- | `onOPFSCacheLimitReached` | `(handler: (event: MessageEvent) => void) => () => void` | Cache limit reached, eviction started. `event.data`: `limit`, etc. |
187
- | `onOPFSEvictionCompleted` | `(handler: (event: MessageEvent) => void) => () => void` | Eviction finished. `event.data`: `count` (number of files removed). |
188
- | `onOPFSWriteFailed` | `(handler: (event: MessageEvent) => void) => () => void` | Write error (network, disk, partial file removed). `event.data`: `url`, `reason`. |
189
- | `onOPFSSkipQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | Repeat request for a blacklisted URL (resource not cached). `event.data`: `url`. |
174
+ | Function | Signature | When it runs | Fields in `event.data` (besides `type`) |
175
+ |----------|-----------|---------------|----------------------------------------|
176
+ | `onOPFSQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | Browser threw QuotaExceeded while writing to OPFS. | `url: string` |
177
+ | `onOPFSWriteSkipped` | `(handler: (event: MessageEvent) => void) => () => void` | Write not started: file does not fit even after eviction. | `url: string`, `size: number`, `reason: string` |
178
+ | `onOPFSEvictionCompleted` | `(handler: (event: MessageEvent) => void) => () => void` | Eviction finished. | `count: number` (number of files removed) |
179
+ | `onOPFSWriteFailed` | `(handler: (event: MessageEvent) => void) => () => void` | Write error (network, disk, partial file removed). | `url?: string`, `reason: string` |
180
+ | `onOPFSSkipQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | Repeat request for a blacklisted URL (resource not cached). | `url: string` |
190
181
 
191
182
  **Cache management and types**
192
183
 
@@ -194,7 +185,7 @@ Each function takes one argument — the handler — and returns an unsubscribe
194
185
  - `hasInOpfsCache(url: string): Promise<boolean>` — whether the URL is in the cache.
195
186
  - `deleteFromOpfsCache(url: string): Promise<void>` — remove resource by URL from the cache.
196
187
 
197
- Types `OpfsMessagePayload` and `OpfsCachedResource` are exported; message type constants are `OPFS_MSG_QUOTA_EXCEEDED`, `OPFS_MSG_WRITE_SKIPPED_SIZE`, etc.
188
+ Types `OpfsMessagePayload` and `OpfsCachedResource` are exported. Message type constants (name equals the string value in `event.data.type`): `OPFS_MSG_QUOTA_EXCEEDED`, `OPFS_MSG_WRITE_SKIPPED_SIZE`, `OPFS_MSG_CACHE_LIMIT_REACHED`, `OPFS_MSG_EVICTION_COMPLETED`, `OPFS_MSG_WRITE_FAILED`, `OPFS_MSG_SKIP_QUOTA_EXCEEDED`.
198
189
 
199
190
  ### Tab notifications about quota and limits
200
191
 
package/README.ru.md CHANGED
@@ -155,28 +155,19 @@ await writeToOpfs(dir, key, response.body, metadata);
155
155
 
156
156
  **Данные в сообщениях**
157
157
 
158
- Во всех подписках обработчик получает `MessageEvent`: в `event.data` приходит объект типа `{ type: string } & OpfsMessagePayload`:
159
-
160
- - `type` — тип сообщения (константа `OPFS_MSG_*`);
161
- - `url?` — URL ресурса, к которому относится событие (если применимо);
162
- - `size?` — размер в байтах (например, размер файла, который не влез);
163
- - `limit?` — лимит кеша в байтах (например, в WRITE_SKIPPED / CACHE_LIMIT_REACHED);
164
- - `reason?` — текст ошибки (в WRITE_FAILED).
165
-
166
- В части сообщений в `event.data` бывают и другие поля (например, `count` в EVICTION_COMPLETED).
158
+ Обработчик получает `MessageEvent`; `event.data` имеет тип `{ type: string } & OpfsMessagePayload` плюс при необходимости поле `count`. Конкретный набор полей зависит от типа сообщения (см. таблицу ниже). Тип `OpfsMessagePayload` в пакете: `{ url?: string; size?: number; limit?: number; reason?: string }`.
167
159
 
168
160
  **Подписки на сообщения**
169
161
 
170
- Каждая функция принимает один аргумент — обработчик и возвращает функцию отписки `() => void`. Вызовите её, когда подписка больше не нужна.
162
+ Каждая функция принимает обработчик и возвращает функцию отписки `() => void`. В таблице только те подписки, **сообщения которых сервис-воркер реально отправляет** в текущей версии пакета; точный состав `event.data` — в последней колонке.
171
163
 
172
- | Функция | Сигнатура | Когда вызывается |
173
- |--------|-----------|-------------------|
174
- | `onOPFSQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | При записи в OPFS браузер вернул QuotaExceeded. В `event.data`: `url`, при необходимости `size`. |
175
- | `onOPFSWriteSkipped` | `(handler: (event: MessageEvent) => void) => () => void` | Запись не начата: файл не влезает даже после попытки эвикции. В `event.data`: `url`, `size`, `limit`. |
176
- | `onOPFSCacheLimitReached` | `(handler: (event: MessageEvent) => void) => () => void` | Достигнут лимит кеша, начинается эвикция. В `event.data`: `limit` и др. |
177
- | `onOPFSEvictionCompleted` | `(handler: (event: MessageEvent) => void) => () => void` | Эвикция завершена. В `event.data`: `count` (число удалённых файлов). |
178
- | `onOPFSWriteFailed` | `(handler: (event: MessageEvent) => void) => () => void` | Ошибка записи (сеть, диск, удалён частичный файл). В `event.data`: `url`, `reason`. |
179
- | `onOPFSSkipQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | Повторный запрос к URL из чёрного списка (ресурс не кешируем). В `event.data`: `url`. |
164
+ | Функция | Сигнатура | Когда вызывается | Поля в `event.data` (кроме `type`) |
165
+ |--------|-----------|-------------------|------------------------------------|
166
+ | `onOPFSQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | При записи в OPFS браузер вернул QuotaExceeded. | `url: string` |
167
+ | `onOPFSWriteSkipped` | `(handler: (event: MessageEvent) => void) => () => void` | Запись не начата: файл не влезает даже после эвикции. | `url: string`, `size: number`, `reason: string` |
168
+ | `onOPFSEvictionCompleted` | `(handler: (event: MessageEvent) => void) => () => void` | Эвикция завершена. | `count: number` (число удалённых файлов) |
169
+ | `onOPFSWriteFailed` | `(handler: (event: MessageEvent) => void) => () => void` | Ошибка записи (сеть, диск, удалён частичный файл). | `url?: string`, `reason: string` |
170
+ | `onOPFSSkipQuotaExceeded` | `(handler: (event: MessageEvent) => void) => () => void` | Повторный запрос к URL из чёрного списка (ресурс не кешируем). | `url: string` |
180
171
 
181
172
  **Управление кешем и типы**
182
173
 
@@ -184,7 +175,7 @@ await writeToOpfs(dir, key, response.body, metadata);
184
175
  - `hasInOpfsCache(url: string): Promise<boolean>` — есть ли URL в кеше.
185
176
  - `deleteFromOpfsCache(url: string): Promise<void>` — удалить ресурс по URL из кеша.
186
177
 
187
- Типы `OpfsMessagePayload` и `OpfsCachedResource` экспортируются из пакета; константы типов сообщений `OPFS_MSG_QUOTA_EXCEEDED`, `OPFS_MSG_WRITE_SKIPPED_SIZE` и т.д.
178
+ Типы `OpfsMessagePayload` и `OpfsCachedResource` экспортируются из пакета. Константы типов сообщений (имя совпадает со строковым значением в `event.data.type`): `OPFS_MSG_QUOTA_EXCEEDED`, `OPFS_MSG_WRITE_SKIPPED_SIZE`, `OPFS_MSG_CACHE_LIMIT_REACHED`, `OPFS_MSG_EVICTION_COMPLETED`, `OPFS_MSG_WRITE_FAILED`, `OPFS_MSG_SKIP_QUOTA_EXCEEDED`.
188
179
 
189
180
  ### Оповещения вкладок о квоте и лимитах
190
181
 
@@ -1,7 +1,7 @@
1
- export declare const OPFS_MSG_QUOTA_EXCEEDED = "OPFS_QUOTA_EXCEEDED";
2
- export declare const OPFS_MSG_WRITE_SKIPPED_SIZE = "OPFS_WRITE_SKIPPED_SIZE";
3
- export declare const OPFS_MSG_CACHE_LIMIT_REACHED = "OPFS_CACHE_LIMIT_REACHED";
4
- export declare const OPFS_MSG_EVICTION_COMPLETED = "OPFS_EVICTION_COMPLETED";
5
- export declare const OPFS_MSG_WRITE_FAILED = "OPFS_WRITE_FAILED";
6
- export declare const OPFS_MSG_SKIP_QUOTA_EXCEEDED = "OPFS_SKIP_QUOTA_EXCEEDED";
1
+ export declare const OPFS_MSG_QUOTA_EXCEEDED = "OPFS_MSG_QUOTA_EXCEEDED";
2
+ export declare const OPFS_MSG_WRITE_SKIPPED_SIZE = "OPFS_MSG_WRITE_SKIPPED_SIZE";
3
+ export declare const OPFS_MSG_CACHE_LIMIT_REACHED = "OPFS_MSG_CACHE_LIMIT_REACHED";
4
+ export declare const OPFS_MSG_EVICTION_COMPLETED = "OPFS_MSG_EVICTION_COMPLETED";
5
+ export declare const OPFS_MSG_WRITE_FAILED = "OPFS_MSG_WRITE_FAILED";
6
+ export declare const OPFS_MSG_SKIP_QUOTA_EXCEEDED = "OPFS_MSG_SKIP_QUOTA_EXCEEDED";
7
7
  export type OpfsMessageType = typeof OPFS_MSG_QUOTA_EXCEEDED | typeof OPFS_MSG_WRITE_SKIPPED_SIZE | typeof OPFS_MSG_CACHE_LIMIT_REACHED | typeof OPFS_MSG_EVICTION_COMPLETED | typeof OPFS_MSG_WRITE_FAILED | typeof OPFS_MSG_SKIP_QUOTA_EXCEEDED;
@@ -1,6 +1,6 @@
1
- export const OPFS_MSG_QUOTA_EXCEEDED = 'OPFS_QUOTA_EXCEEDED';
2
- export const OPFS_MSG_WRITE_SKIPPED_SIZE = 'OPFS_WRITE_SKIPPED_SIZE';
3
- export const OPFS_MSG_CACHE_LIMIT_REACHED = 'OPFS_CACHE_LIMIT_REACHED';
4
- export const OPFS_MSG_EVICTION_COMPLETED = 'OPFS_EVICTION_COMPLETED';
5
- export const OPFS_MSG_WRITE_FAILED = 'OPFS_WRITE_FAILED';
6
- export const OPFS_MSG_SKIP_QUOTA_EXCEEDED = 'OPFS_SKIP_QUOTA_EXCEEDED';
1
+ export const OPFS_MSG_QUOTA_EXCEEDED = 'OPFS_MSG_QUOTA_EXCEEDED';
2
+ export const OPFS_MSG_WRITE_SKIPPED_SIZE = 'OPFS_MSG_WRITE_SKIPPED_SIZE';
3
+ export const OPFS_MSG_CACHE_LIMIT_REACHED = 'OPFS_MSG_CACHE_LIMIT_REACHED';
4
+ export const OPFS_MSG_EVICTION_COMPLETED = 'OPFS_MSG_EVICTION_COMPLETED';
5
+ export const OPFS_MSG_WRITE_FAILED = 'OPFS_MSG_WRITE_FAILED';
6
+ export const OPFS_MSG_SKIP_QUOTA_EXCEEDED = 'OPFS_MSG_SKIP_QUOTA_EXCEEDED';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budarin/psw-plugin-opfs-serve-range",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "Service Worker plugin: serve HTTP Range requests from OPFS files",
5
5
  "keywords": [
6
6
  "service-worker",