@trede/backredirect
v0.0.3
Published
Sistema de redirecionamento de volta (Back Redirect) que intercepta a navegação do usuário e redireciona para uma URL específica quando ele tenta voltar na página.
Downloads
8
Readme
🔙 T3 BackRedirect
Sistema de redirecionamento de volta (Back Redirect) que intercepta a navegação do usuário e redireciona para uma URL específica quando ele tenta voltar na página.
✅ Funcionalidades
- ✅ Intercepta cliques em links e adiciona ao histórico
- ✅ Intercepta navegação de volta (botão voltar do navegador)
- ✅ Redireciona automaticamente para URL configurada
- ✅ Preserva parâmetros de busca (opcional)
- ✅ Sistema de tracking e logs
- ✅ Callbacks antes e depois do redirecionamento
- ✅ Suporte a delay configurável
- ✅ Modo debug para desenvolvimento
- ✅ Bloqueio global anti-duplicação
✅ Instalação
npm install @trede/backredirect
# ou
yarn add @trede/backredirect
# ou
pnpm add @trede/backredirect✅ Uso Básico (TypeScript / ESM)
import { init } from "@trede/backredirect";
const tracker = init({
url: "https://example.com",
preserveSearchParams: true,
enabled: true,
debug: true,
});✅ Uso via Script Tag (AutoInit)
<script
src="https://cdn.jsdelivr.net/npm/@trede/backredirect/dist/index.global.js"
data-backredirect
data-url="https://example.com"
data-preserve-search-params="true"
data-enabled="true"
data-debug="true"
data-delay="0"
data-force-redirect="false">
</script>✅ Configuração (InitProps)
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
| url | string | - | URL de destino |
| preserveSearchParams | boolean | false | Mantém os query params |
| enabled | boolean | true | Ativa/desativa o tracker |
| delay | number | 0 | Delay antes do redirect |
| forceRedirect | boolean | false | Redireciona imediatamente |
| onBeforeRedirect | Function | () => {} | Executa antes do redirect |
| onAfterRedirect | Function | () => {} | Executa após o redirect |
| debug | boolean | false | Habilita logs |
✅ API Pública
| Função | Descrição |
|---|---|
| init(config) | Inicializa o tracker |
| BackRedirectInit | Classe principal |
| injectBackRedirect(config) | Injeta o sistema |
| forceFakeHistoryEntry() | Adiciona entrada falsa ao histórico |
| waitForFirstUserInteraction(callback) | Aguarda interação |
| interceptLinkClicks() | Intercepta cliques |
| interceptBackNavigation(targetUrl) | Intercepta volta |
| executeRedirect(context) | Executa redirecionamento |
| buildTargetUrl(config) | Constrói a URL final |
✅ Tipos Importantes
interface RedirectData {
timestamp: number;
currentUrl: string;
targetUrl: string;
referrer: string;
sessionId: string;
userAgent: string;
screenResolution: string;
timeOnPage: number;
redirectType: "back" | "forward" | "external" | "fallback";
preservedParams?: string;
metadata?: Record<string, any>;
}
interface TrackerContext {
config: Required<InitProps>;
sessionId: string;
startTime: number;
redirectHistory: RedirectData[];
isTracking: boolean;
targetUrl: string;
}✅ Fluxo Interno
- Inicializa configurações
- Gera Fake History Entry
- Aguarda primeira interação do usuário
- Intercepta cliques em links
- Monitora navegação de volta
- Executa o redirecionamento
- Dispara callbacks
- Salva histórico de redirecionamento
✅ Desenvolvimento Local
pnpm install
pnpm build
pnpm dev✅ Estrutura Interna
src/
├── index.ts # Exportações principais
├── init.ts # Função de inicialização
├── types.ts # Tipos globais
└── utils/
├── backRedirectTracker.ts
├── injectBackRedirect.ts
├── forceFakeHistoryEntry.ts
├── waitForFirstUserInteraction.ts
├── interceptLinkClicks.ts
├── interceptBackNavigation.ts
├── executeRedirect.ts
├── buildTargetUrl.ts
├── startTracking.ts
├── trackLinkClick.ts
├── trackHistoryNavigation.ts
├── trackPageExit.ts
├── saveRedirectData.ts
├── saveSessionDate.ts
├── generateSessionId.ts
├── log.ts
├── addMetaData.ts
└── getSession.ts✅ Licença
MIT
