lookatni-file-markers
Version:
Advanced file organization system with unique markers for code sharing and project management. Extract files from marked content, generate markers, and validate project integrity.
298 lines (266 loc) • 10.1 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.LookAtniDemo = void 0;
const fs = __importStar(require("fs"));
const FS_CHAR = String.fromCharCode(28);
const MARKER_START = `//${FS_CHAR}/`;
const MARKER_END = `/${FS_CHAR}//`;
const colors = {
RED: '\x1b[0;31m',
GREEN: '\x1b[0;32m',
YELLOW: '\x1b[1;33m',
BLUE: '\x1b[0;34m',
PURPLE: '\x1b[0;35m',
CYAN: '\x1b[0;36m',
NC: '\x1b[0m'
};
class LookAtniDemo {
constructor() {
this.demoFile = 'demo-code.txt';
}
run() {
console.log(`${colors.CYAN}🚀 LookAtni File Markers Demo v4.0${colors.NC}`);
console.log("======================================================");
console.log("");
this.createDemoFile();
this.showMarkers();
this.showUsageExamples();
this.printConclusion();
}
createDemoFile() {
console.log(`${colors.YELLOW}📄 Criando arquivo de demonstração...${colors.NC}`);
const helloMarker = `${MARKER_START} hello.js ${MARKER_END}`;
const styleMarker = `${MARKER_START} style.css ${MARKER_END}`;
const htmlMarker = `${MARKER_START} index.html ${MARKER_END}`;
const readmeMarker = `${MARKER_START} README.md ${MARKER_END}`;
const demoContent = `# LookAtni Demo Code
${helloMarker}
console.log('Hello, LookAtni!');
console.log('Sistema de marcadores invisíveis funcionando!');
const message = 'Bem-vindo ao futuro do compartilhamento de código!';
console.log(message);
// Função para demonstrar funcionalidade
function showDemo() {
console.log('🎉 LookAtni está funcionando perfeitamente!');
console.log('📁 Agora você pode compartilhar projetos inteiros em um só arquivo!');
}
showDemo();
${styleMarker}
/* LookAtni Demo Styles */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
margin: 0;
padding: 20px;
min-height: 100vh;
color: white;
}
.container {
max-width: 800px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border-radius: 20px;
padding: 40px;
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
}
.header {
text-align: center;
margin-bottom: 30px;
}
.header h1 {
font-size: 3em;
margin: 0;
background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.features {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 30px;
}
.feature-card {
background: rgba(255, 255, 255, 0.1);
padding: 20px;
border-radius: 15px;
border: 1px solid rgba(255, 255, 255, 0.2);
}
${htmlMarker}
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LookAtni File Markers Demo</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<header class="header">
<h1>🚀 LookAtni File Markers</h1>
<p>Sistema revolucionário de marcadores invisíveis que permite
compartilhar projetos inteiros em um único arquivo!</p>
</header>
<main>
<div class="features">
<div class="feature-card">
<h3>🎯 Marcadores Únicos</h3>
<p>Marcadores invisíveis que nunca conflitam com seu código</p>
</div>
<div class="feature-card">
<h3>📁 Múltiplos Arquivos</h3>
<p>Organize projetos inteiros em um só documento</p>
</div>
<div class="feature-card">
<h3>🚀 Extração Automática</h3>
<p>Reconstrua o projeto com um simples comando</p>
</div>
<div class="feature-card">
<h3>🔄 Cross-Platform</h3>
<p>Funciona em Windows, Linux e macOS</p>
</div>
</div>
</main>
</div>
<script src="hello.js"></script>
</body>
</html>
${readmeMarker}
# 🚀 LookAtni File Markers Demo
Este é um projeto de demonstração do **LookAtni File Markers**, o sistema mais avançado para compartilhamento e reconstrução de projetos.
## ✨ Características
- 🎯 **Marcadores invisíveis** que nunca conflitam
- 📁 **Múltiplos arquivos** em um só documento
- 🚀 **Extração automática** com um comando
- 🔄 **Cross-platform** (Windows, Linux, macOS)
- 💼 **Zero dependências** para o arquivo final
- 🎨 **Compatível** com qualquer linguagem de programação
## 📋 Como Usar
### 1. Instalar ferramentas
\`\`\`bash
npm install -g lookatni-file-markers
\`\`\`
### 2. Extrair projeto
\`\`\`bash
tsx extractFiles.ts demo-code.txt ./meu-projeto
\`\`\`
### 3. Executar projeto
\`\`\`bash
cd meu-projeto
# Abrir index.html no navegador
\`\`\`
## 🔍 Comandos Úteis
### Validar marcadores invisíveis
\`\`\`bash
tsx extractFiles.ts demo-code.txt --format
\`\`\`
### Simular extração
\`\`\`bash
tsx extractFiles.ts demo-code.txt ./demo --dry-run --stats
\`\`\`
### Extrair com estatísticas
\`\`\`bash
tsx extractFiles.ts demo-code.txt ./demo --stats --verbose
\`\`\`
## 🎉 Resultado
Depois de extrair, você terá:
- \`index.html\` - Página principal
- \`style.css\` - Estilos modernos
- \`hello.js\` - Lógica JavaScript
- \`README.md\` - Esta documentação
**Pronto para usar!** 🚀
`;
fs.writeFileSync(this.demoFile, demoContent);
console.log(`${colors.GREEN}✅ Demo criada: ${this.demoFile}${colors.NC}`);
}
showMarkers() {
console.log("");
console.log(`${colors.BLUE}🔍 Analisando marcadores invisíveis...${colors.NC}`);
if (!fs.existsSync(this.demoFile)) {
console.log(`${colors.RED}❌ Arquivo ${this.demoFile} não encontrado!${colors.NC}`);
return;
}
const content = fs.readFileSync(this.demoFile, 'utf-8');
const markers = content.split('\n').filter(line => line.startsWith(MARKER_START));
console.log(`${colors.GREEN}📊 Encontrados ${markers.length} marcadores invisíveis:${colors.NC}`);
markers.forEach((marker, index) => {
const match = marker.match(new RegExp(`^//${FS_CHAR}/ (.+) /${FS_CHAR}//$`));
if (match) {
console.log(` ${(index + 1).toString().padStart(2)}. ${colors.CYAN}${match[1]}${colors.NC}`);
}
});
}
showUsageExamples() {
console.log("");
console.log(`${colors.PURPLE}🚀 Exemplos de uso:${colors.NC}`);
console.log("");
console.log(`${colors.YELLOW}1. Extrair projeto completo:${colors.NC}`);
console.log(` tsx extractFiles.ts ${this.demoFile} ./demo-extracted`);
console.log("");
console.log(`${colors.YELLOW}2. Validar marcadores invisíveis:${colors.NC}`);
console.log(` tsx extractFiles.ts ${this.demoFile} --format`);
console.log("");
console.log(`${colors.YELLOW}3. Simular extração:${colors.NC}`);
console.log(` tsx extractFiles.ts ${this.demoFile} ./demo --dry-run --stats`);
console.log("");
console.log(`${colors.YELLOW}4. Modo interativo:${colors.NC}`);
console.log(` tsx extractFiles.ts ${this.demoFile} ./demo --interactive`);
}
printConclusion() {
console.log("");
console.log(`${colors.GREEN}🎉 Demo concluída com sucesso!${colors.NC}`);
console.log("");
console.log(`${colors.CYAN}💡 Próximos passos:${colors.NC}`);
console.log(` 1. Extrair o projeto: ${colors.YELLOW}tsx extractFiles.ts ${this.demoFile} ./demo-extracted${colors.NC}`);
console.log(` 2. Abrir o HTML: ${colors.YELLOW}cd demo-extracted && open index.html${colors.NC}`);
console.log(` 3. Estudar o código gerado e personalizar!`);
console.log("");
console.log(`${colors.PURPLE}🔗 Arquivo gerado: ${this.demoFile}${colors.NC}`);
console.log(`${colors.PURPLE}📁 Contém: HTML, CSS, JavaScript e documentação${colors.NC}`);
console.log(`${colors.PURPLE}✨ Marcadores: Invisíveis e seguros para marketplace!${colors.NC}`);
console.log("");
console.log(`${colors.CYAN}Experimente agora mesmo! 🚀${colors.NC}`);
}
}
exports.LookAtniDemo = LookAtniDemo;
if (require.main === module) {
const demo = new LookAtniDemo();
demo.run();
}