«AfterPack у Worker» означає одне з трьох, і ці варіанти не взаємозамінні. AfterPack уже сьогодні може працювати всередині вашого Worker як модуль WebAssembly, який ви встановлюєте з npm. Pro працює в хмарі AfterPack, і з Worker до неї можна звернутися так само, як звідки завгодно. AfterPack на Workers for Platforms — Pro під керуванням AfterPack, що працює всередині облікового запису Workers for Platforms і віддає нову форму на кожен запит, — є в дорожній карті, але ще не існує.
Ця сторінка описує всі три, саме в такому порядку.
AfterPack у вашому власному Worker
@afterpack/wasm — це AfterPack, скомпільований у WebAssembly. Це той самий рушій на Rust, який запускають CLI і плагіни для фреймворків, зібраний для wasm32, а не для архітектури вашої машини.
npm install @afterpack/wasmimport { obfuscate } from "@afterpack/wasm";
export default {
async fetch(request) {
const source = await request.text();
const result = await obfuscate({ path: "app.js", source }, { preset: "hard" });
return new Response(result.bytes, {
headers: { "content-type": "application/javascript" },
});
},
};Це вся інтеграція. Ні виклику init, ні прапорця nodejs_compat, ні правила wrangler для файлу .wasm. Модуль не має імпортів WebAssembly, тож він синхронно інстанціюється під час першого виклику obfuscate, а мапа exports пакета сама віддає вашому бандлеру точку входу, придатну для Worker. Той самий імпорт працює в Node, де інша точка входу зчитує бінарний файл із диска.
Інтерфейс ідентичний @afterpack/core: obfuscate, obfuscateAll, version, усі асинхронні й усі кидають виняток на збірці, яку не можна випустити. Конфігурація — той самий об'єкт, описаний на сторінці Конфігурація, зокрема preset і seed.
@afterpack/core постачає нативний бінарний файл і працює швидше. Беріть @afterpack/wasm, коли хост не може його завантажити: Worker, ізольований образ CI, edge-функція.
Скільки це коштує
Бінарний файл рушія постачається всередині пакета, уже скомпільований.
| Розмір | |
|---|---|
Сирий .wasm | 4.36 MiB |
| Після gzip | 1.25 MiB |
Ліміт розміру Worker у Cloudflare — 3 MB у стисненому вигляді на безкоштовному плані і 10 MB на платному, тож рушій вміщується в обидва. Що не вміщується в безкоштовний план, так це робота: він обмежує CPU до 10 ms на виклик, а обфускація бандла на 185 KB на ядрі ноутбука займає менш ніж 0.3 секунди на пресеті за замовчуванням light і приблизно 1 секунду на medium. Усьому, що виходить за межі демо, потрібен Workers Paid.
Worker, який обфускує той самий ассет на кожен запит, щоразу платить за цей CPU. Кешування результату на період ротації або виконання цієї роботи у вашій збірці з подальшою роздачею результату тримає рахунок низьким там, де нова форма на кожен запит вам не потрібна.
Що може і чого не може пакет, який ви хостите
.wasm, який ви встановлюєте, виконує захист рівня Free. Трансформації Pro працюють лише на інфраструктурі AfterPack, тож у пакеті немає нічого, що можна розблокувати: ні перевірки ключа, яку можна обійти, ні перемикача, що перетворює розміщену у вас копію на збірку Pro. key спрямовує роботу в хмару; локально він нічого не вмикає.
Опублікований пакет має запис npm provenance — версію пакета, workflow, який його зібрав, і дайджест артефакту, — тож ви можете пов'язати встановлені байти зі збіркою, яка їх створила.
Pro сьогодні: хмарний API
Pro не входить у цей пакет і не входитиме. Він працює лише на власній інфраструктурі AfterPack; у цьому й суть межі між тарифами, описаної вище. Натомість пакет містить клієнт для нього.
Звернення до нього з Worker — це той самий виклик, який ви вже пишете: передайте key в @afterpack/wasm, і той самий obfuscate() працюватиме як Pro. Під капотом пакет надсилає запит Pro на POST /v1/obfuscate/batch, тож Worker ніколи не програмує API вручну. Довідник Cloud API містить повний контракт протоколу, а Режими розгортання пояснюють, що змінюється, коли рушій переїжджає.
Два наслідки варто назвати прямо. Ваш вихідний код залишає ваш Worker і обробляється в хмарі AfterPack — у пам'яті, без збереження, згідно з Конфіденційністю і обробкою даних. І збірка зупиняється з помилкою (fail closed), якщо хмара недоступна.
Пакет, який стверджує, що виконує трансформації Pro на вашій власній інфраструктурі, не наш. Перевірте запис npm provenance, перш ніж встановлювати будь-що під цією назвою.
У дорожній карті: AfterPack на Workers for Platforms
Варіант, якого ще не існує: обгортка для Workers від AfterPack, що працює всередині dispatch namespace Workers for Platforms і віддає нову форму на кожен запит. Немає пакета для встановлення і немає запиту від worker до worker — збірка Pro виконується на edge без виходу за межі мережі Cloudflare.
Він є в дорожній карті, і дати немає. Ніщо на цій сторінці від нього не залежить, а Режими розгортання описують те, що доступно сьогодні. Для вимоги «вихідний код ніколи не повинен залишати нашу інфраструктуру» відповідь — безкоштовна локальна збірка, доступна вже сьогодні.
Вибір
| Вам потрібно | Використовуйте |
|---|---|
| Обфускація у Worker, нічого не залишає ваш обліковий запис | @afterpack/wasm, ця сторінка |
| Обфускація у звичайній збірці на Node | @afterpack/core або CLI |
| Посилений захист Pro і директиви для окремих ділянок | Той самий виклик із key, який звертається до хмарного API |
| Pro на edge в обгортці від AfterPack | Недоступно |
Далі
- Режими розгортання: локальний режим проти хмарного і що зберігає кожен із них.
- Довідник Cloud API: контракт, який викликає Worker для збірок Pro.
- Конфігурація: кожен ключ, який приймають обидва пакети.
- Тарифи: що входить у Free і що додає Pro.
- Конфіденційність і обробка даних: що залишає ваш комп'ютер у кожному режимі.