Перейти до основного вмісту

Меню команд

Перейдіть на сторінку або пошукайте в каталозі

ШІ-інструменти та скрипти

Перевірка маніфесту PWA і Service Worker

Перевірте маніфести PWA, service worker і конфігурації Workbox: зламаний JSON маніфесту, start_url поза scope, закешовані дані сесії чи облікового запису, помилки з importScripts і respondWith, прогалини в запрошенні до встановлення та ризиковані налаштування кешу й оновлень.

$5.00

Що ви отримаєте: 1 файл · 53.05 KB · ZIP

Переглянути варіанти купівлі

Опис товару

Одна зайва кома в кінці в manifest.webmanifest, і браузери вважають, що у вашого застосунку взагалі немає маніфесту: ні назви, ні іконок, ні запрошення до встановлення. Маршрут Workbox, який віддає /api/account через StaleWhileRevalidate, зберігає дані облікового запису клієнта на спільному комп'ютері після того, як він вийшов, бо Cache API ігнорує Cache-Control: private. event.respondWith(), викликаний після await, кидає виняток, і запит іде в мережу, ніби воркера не існує. Ця навичка знаходить ці та інші помилки PWA, перелічені нижче, до публікації та пояснює, як виправити кожну.

Ваш агент запускає сканер для маніфестів вебзастосунку (manifest.json, *.webmanifest, app/manifest.ts у Next.js, маніфест у конфігураціях vite-plugin-pwa), service worker (написаних вручну, Workbox, Serwist), конфігурацій runtimeCaching у Workbox (workbox-config.js, vite-plugin-pwa, next-pwa, webpack), ngsw-config.json в Angular і викликів реєстрації service worker. Він розбирає маніфести як строгий JSON, як це роблять браузери, читає JavaScript і TypeScript без урахування коментарів і рядків, зіставляє цілі сегменти шляху URL (тож /api/session вважається приватним, а /api/sessions, розклад конференції, ні), розуміє зіставлювачі Workbox, що виключають URL (if ... return false, denylist у NavigationRoute), і знає типові значення vite-plugin-pwa і next-pwa. Код service worker із шаблонів Workbox, Create React App, vite-plugin-pwa і Serwist проходить без зауважень. Він ніколи не запускає, не збирає і не розміщує ваш застосунок. Результат: BLOCK, REVIEW або NOT FLAGGED, із зазначенням файлу, рядка, причини та безпечнішого підходу, і кожне правило посилається на відповідну документацію W3C, MDN, web.dev або Chrome. Секрети ніколи не виводяться.

Що перевіряється

BLOCK (виправити до випуску)

  • W01: маніфест, який не є коректним JSON (кома в кінці, коментар, одинарні лапки), не є об'єктом або збережений в UTF-16
  • W02: start_url поза scope (зокрема "/app" при scope "/app/"), або start_url чи scope на localhost
  • W03: маршрути, які в режимі онлайн відповідають на URL сесії, токена або виходу чи на дані облікового запису, профілю, кошика або оформлення замовлення зі збереженої копії
  • W04: importScripts() через http:// або виклик усередині обробника fetch, message чи іншої події
  • W05: event.respondWith() або перший event.waitUntil(), викликаний після await або в колбеку then()
  • W06: та сама URL-адреса двічі в списку cache.addAll(), зокрема записана як ./index.html та index.html (встановлення завершується помилкою)

REVIEW (перевірити перед релізом)

  • W11: маніфести, для яких Chromium не запропонує встановлення (немає назви, немає іконки 144px або більше, режим відображення, що не допускає встановлення, prefer_related_applications)
  • W12: немає іконки maskable або іконки з purpose "any maskable"
  • W13: маніфести без id
  • W14: сторінки або файли .html, що віддаються за стратегією cache-first
  • W15: версійовані кеші, які ніколи не видаляються
  • W16: безумовний skipWaiting() у воркері, який попередньо кешує застосунок, зокрема типова поведінка next-pwa
  • W17: відповіді API, що віддаються через CacheFirst, CacheOnly або StaleWhileRevalidate (і dataGroups в Angular з типовою стратегією performance), а також URL сесії чи токена, збережені для використання офлайн
  • W18: обробники fetch, які зберігають кожну відповідь через cache.put()
  • W19: реєстрації service worker, scope яких не охоплює сторінки застосунку або потребує заголовка Service-Worker-Allowed

Що входить до комплекту

  • Сканер (Python 3.9+, лише стандартна бібліотека)
  • Посібник із правил із причиною, безпечнішим підходом і посиланням на офіційне джерело для кожного правила
  • Ризикований і безпечний приклади проєктів (статичний сайт із написаним вручну service worker і магазин на Vite з vite-plugin-pwa) і справжній звіт сканера щодо ризикованого

Обмеження

Сканер читає текст файлів і відстежує між файлами лише кілька фактів (маніфести, на які посилаються сторінки, заголовок Service-Worker-Allowed у конфігураціях сервера, autoUpdate у vite-plugin-pwa). Зіставлювачі, визначені в іншому файлі, мініфіковані або згенеровані service worker, файли іконок, HTTPS і HTTP-заголовки, які надсилає ваш сервер, не перевіряються, а кешування приватних URL у написаних вручну обробниках fetch позначається лише як зауваження cache-first або «кешувати все». Режим autoUpdate у vite-plugin-pwa і шаблон Serwist, які навмисно обирають негайні оновлення, правило W16 не позначає. NOT FLAGGED не є гарантією.

Вміст

Один ZIP-файл із 20 файлами: SKILL.md, сканер у scripts/ (7 файлів Python), references/rules.md (кожне правило з причиною та безпечнішим підходом) і examples/ (10 файлів прикладів плюс report.md, справжній вивід сканера для ризикованого прикладу).

Як користуватися: Це навичка для агента: папка з файлом SKILL.md і скриптами на Python, які може запускати ШІ-агент для програмування, наприклад Claude Code, Cursor або Codex CLI. Розпакуйте архів у папку навичок вашого агента (для Claude Code: ~/.claude/skills/), а потім попросіть агента перевірити ваш проєкт. Скрипти також працюють самостійно з Python 3.9 або новішим, нічого не потрібно встановлювати. Вони лише читають ваші файли: без доступу до мережі, нічого нікуди не надсилається.

Що ви отримаєте

1 файл · 53.05 KB

  • pwa-manifest-sw-check-1.0.0.zipZIP · 53.05 KB
ЛіцензіяКомерційне використання дозволено
Перевірка пакетаПройдено

Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.

Опубліковано12 лист. 2026 р.
Розмір файлу53.05 KB
Формат файлуZIP
Версіяv1.0

Теги

pwaservice-workerworkboxweb-manifestfrontendai agent skill
R
RR HH

Поширені запитання

Чи отримаю я доступ одразу?

Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.

Чи можна використовувати його в комерційних проєктах?

Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.

Яка у вас політика повернення коштів?

Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.

Які формати та розміри файлів я отримаю?

Ви завантажите 1 файл - ZIP - загалом 53.05 KB.

Чи отримую я безкоштовні оновлення?

Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.

Ціна

$5.00