Paket API referansı

CopyPatch, tarayıcı, sunucu, depolama ve framework sorumluluklarını ayrı paketlerde tutar. Davranışın sahibi olan en dar paketten import edin.

PaketGenel giriş noktalarıKullanım amacı
@copypatch/coreAPI_BASE_PATH, içerik snapshot’ları, istek sözleşmeleri, doğrulama yardımcılarıPaylaşılan tipler ve özel kalıcılık uygulamaları
@copypatch/reactCopyPatchProvider, EditableText, useCopyPatch, useEditableTextReact istemci render’ı ve satır içi düzenleme
@copypatch/backendcreateCopyPatchBackend, CopyPatchBackendGömülü Web Request/Response çalışma zamanı
@copypatch/storage-sqlitecreateSQLitePersistenceYerel veya tek örnekli kalıcılık
@copypatch/storage-postgrescreatePostgresPersistenceUygulama örnekleri arasında paylaşılan kalıcılık
@copypatch/nodeNode, Express, Fastify ve Hono adaptörleri; copypatch CLINode sunucusu yüzeyi sunan host’lar
@copypatch/nextNextCopyPatchProvider, createCopyPatchRouteHandlers, readPublishedSnapshotNext.js App Router rotaları ve SSR/RSC snapshot’ları

Backend yapılandırması

createCopyPatchBackend, bir kalıcılık uygulaması ve tam olarak bir kimlik doğrulama stratejisi ister: Argon2id passphraseHash veya host authAdapter.

Varsayılan metin sınırı düzenlenen her değer için 10.000 karakterdir. Gerekirse maxTextLength ayarlayın; sert sınır 100.000 karakterdir. Backend varsayılan olarak 12 saat boşta kalma oturum süresi, yedi gün mutlak süre ve her hız sınırı anahtarı için dakikada 30 güvenli olmayan istek kullanır.

React entegrasyonu

CopyPatchProvider, apiBase verilmezse /__copypatch/api/v2 kullanır. Locale verin ve SSR veya RSC host’larında initialSnapshot sağlayın. EditableText, ziyaretçilere fallback metni render eder ve yalnızca düzenleme modunda contentEditable yüzeyini etkinleştirir. Düzenlenebilir değer bir öznitelikte, seçenekte veya buton etiketinde kullanılacaksa useCopyPatch kullanın.

Kalıcılık sözleşmesi

İki yerleşik adaptör de CopyPatchPersistence sözleşmesini uygular. Her mutasyon, yayınlanmış ve taslak revizyonlar üzerinde atomik compare-and-swap işlemidir. Trafik almadan önce migrate() çağırın; adaptör bağlantının sahibiyse kapanışta close() çağırın.

İstek ve yanıt şekilleri için HTTP API referansına geçin.