Adiciona uma extensão MV3 (Firefox e Chromium/Brave) que insere CPF ou CNPJ
válido direto no campo focado, pelo menu de contexto de qualquer input,
textarea ou contenteditable.
Extensões rodam em sandbox sem acesso a processos, então não há como invocar
os binários cpfgen/cnpjgen; fazer isso exigiria um host de native messaging
registrado no SO. Como os algoritmos são curtos e puros, foram portados para
JS em extension/generator.js, a partir de main.go (CPF) e de
cnpj_generator/cnpj/generate.go (CNPJ), trocando math/rand por
crypto.getRandomValues. test_generator.mjs compara as duas implementações
para que não divirjam.
A inserção usa document.execCommand("insertText"), que emite os eventos
nativos e portanto funciona em campos controlados por React/Vue — atribuir
.value diretamente seria descartado por esses frameworks.
Somente desktop: o Firefox para Android não implementa a API menus.
Testes carregam a extensão de verdade nos dois navegadores e verificam que os
8 itens de menu são criados e que a inserção funciona nos três tipos de campo.
25 lines
666 B
JSON
25 lines
666 B
JSON
{
|
|
"manifest_version": 3,
|
|
"name": "cpfgen",
|
|
"version": "1.0.0",
|
|
"description": "Gera CPF e CNPJ válidos direto no menu de contexto de qualquer campo de texto (auxiliar para desenvolvedores).",
|
|
"permissions": ["contextMenus", "scripting", "activeTab"],
|
|
"background": {
|
|
"service_worker": "background.js",
|
|
"scripts": ["background.js"],
|
|
"type": "module"
|
|
},
|
|
"icons": {
|
|
"48": "icons/icon-48.png",
|
|
"128": "icons/icon-128.png"
|
|
},
|
|
"browser_specific_settings": {
|
|
"gecko": {
|
|
"id": "cpfgen@lucasf.xyz",
|
|
"strict_min_version": "140.0",
|
|
"data_collection_permissions": {
|
|
"required": ["none"]
|
|
}
|
|
}
|
|
}
|
|
}
|