From daa1993df7f9a4c6b0d68b4c266b6101494f08c9 Mon Sep 17 00:00:00 2001 From: DeividCurcio Date: Wed, 8 Oct 2025 10:34:05 -0300 Subject: [PATCH 1/2] Add public/view-site.html --- public/view-site.html | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 public/view-site.html diff --git a/public/view-site.html b/public/view-site.html new file mode 100644 index 0000000000000..3c6a3f646154a --- /dev/null +++ b/public/view-site.html @@ -0,0 +1,43 @@ + + + + + + Visualizando o Site + + + +

Link para o Site:

+

Clique no botão abaixo para abrir o site:

+ + Abrir no Navegador + + + + From a356364ae1ebdc1e2eb7f3cfe53315ddd92dc878 Mon Sep 17 00:00:00 2001 From: DeividCurcio Date: Fri, 24 Oct 2025 14:41:50 -0300 Subject: [PATCH 2/2] Add files via upload --- .env.example | 7 ++ .gitignore | 31 ++---- DNS_ZONE.md | 34 +++++++ README.md | 214 ++++++++++++++++++++++++++--------------- index.html | 25 +++++ next-env.d.ts | 5 + package.json | 258 ++++---------------------------------------------- serve.ps1 | 82 ++++++++++++++++ tsconfig.json | 20 ++++ 9 files changed, 331 insertions(+), 345 deletions(-) create mode 100644 .env.example create mode 100644 DNS_ZONE.md create mode 100644 index.html create mode 100644 next-env.d.ts create mode 100644 serve.ps1 create mode 100644 tsconfig.json diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000000..1ce7149baa603 --- /dev/null +++ b/.env.example @@ -0,0 +1,7 @@ +# Example env file for local development. DO NOT commit real secrets. +NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key_here +NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com +NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id +NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com +NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id +NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id diff --git a/.gitignore b/.gitignore index 92971a7a5731b..d988e94e4cec4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,6 @@ -.DS_Store -.cache -npm-debug.log -Thumbs.db -node_modules/ -.build/ -.vscode/extensions/**/out/ -extensions/**/dist/ -/out*/ -/extensions/**/out/ -build/node_modules -coverage/ -test_data/ -test-results/ -test-results.xml -vscode.lsif -vscode.db -/.profile-oss -/cli/target -/cli/openssl -product.overrides.json -*.snap.actual -*.tsbuildinfo -.vscode-test -vscode-telemetry-docs/ +node_modules/ +.env.local +.env +/.next +npm-debug.log +package-lock.json diff --git a/DNS_ZONE.md b/DNS_ZONE.md new file mode 100644 index 0000000000000..2b85f627626c3 --- /dev/null +++ b/DNS_ZONE.md @@ -0,0 +1,34 @@ +# DNS zone records for fitvestmoda.com + +The following are the DNS entries intended for the `fitvestmoda.com` zone. Apply changes only through the domain registrar or DNS provider UI (Locaweb) and follow your team's deploy checklist (see `README.md`). + +Zone entries (TTL default if not set): + +Root (A record) +. A 179.188.12.92 + +www (CNAME) +www CNAME fitvestmoda.com + +_domainconnect (CNAME) +_domainconnect CNAME domainconnect.locaweb.com.br + +ftp (CNAME) +ftp CNAME fitvestmoda.com + +Nameservers (set at registrar) +. NS ns1.locaweb.com.br +. NS ns2.locaweb.com.br +. NS ns3.locaweb.com.br + +SOA (example provided by registrar) +. SOA ns1.locaweb.com.br. postmaster.locaweb.com.br. 2025101003 3600 600 1209600 3600 + +Notes +- The SOA serial (2025101003) follows the YYYYMMDDnn convention — update it when changing zone records. +- The root A record points the apex domain to `179.188.12.92`. +- `www` is a CNAME to the apex; ensure your hosting supports serving traffic for the apex and the `www` alias. +- `_domainconnect` is used by domain-connect integrations (Locaweb) for automatic DNS provisioning. +- Use the checklist in `README.md` before making DNS changes (reduce TTL, test propagation, validate SSL). + +If you want, I can also generate a BIND-style zone file or `dig`/`nslookup` commands to validate these records from multiple resolvers. diff --git a/README.md b/README.md index b7a101827f6a7..ea971f1b39df5 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,136 @@ -# Visual Studio Code - Open Source ("Code - OSS") -[![Feature Requests](https://img.shields.io/github/issues/microsoft/vscode/feature-request.svg)](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) -[![Bugs](https://img.shields.io/github/issues/microsoft/vscode/bug.svg)](https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug) -[![Gitter](https://img.shields.io/badge/chat-on%20gitter-yellow.svg)](https://gitter.im/Microsoft/vscode) - -## The Repository - -This repository ("`Code - OSS`") is where we (Microsoft) develop the [Visual Studio Code](https://code.visualstudio.com) product together with the community. Not only do we work on code and issues here, we also publish our [roadmap](https://github.com/microsoft/vscode/wiki/Roadmap), [monthly iteration plans](https://github.com/microsoft/vscode/wiki/Iteration-Plans), and our [endgame plans](https://github.com/microsoft/vscode/wiki/Running-the-Endgame). This source code is available to everyone under the standard [MIT license](https://github.com/microsoft/vscode/blob/main/LICENSE.txt). - -## Visual Studio Code - -

- VS Code in action -

- -[Visual Studio Code](https://code.visualstudio.com) is a distribution of the `Code - OSS` repository with Microsoft-specific customizations released under a traditional [Microsoft product license](https://code.visualstudio.com/License/). - -[Visual Studio Code](https://code.visualstudio.com) combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. It provides comprehensive code editing, navigation, and understanding support along with lightweight debugging, a rich extensibility model, and lightweight integration with existing tools. - -Visual Studio Code is updated monthly with new features and bug fixes. You can download it for Windows, macOS, and Linux on [Visual Studio Code's website](https://code.visualstudio.com/Download). To get the latest releases every day, install the [Insiders build](https://code.visualstudio.com/insiders). - -## Contributing - -There are many ways in which you can participate in this project, for example: - -* [Submit bugs and feature requests](https://github.com/microsoft/vscode/issues), and help us verify as they are checked in -* Review [source code changes](https://github.com/microsoft/vscode/pulls) -* Review the [documentation](https://github.com/microsoft/vscode-docs) and make pull requests for anything from typos to additional and new content - -If you are interested in fixing issues and contributing directly to the code base, -please see the document [How to Contribute](https://github.com/microsoft/vscode/wiki/How-to-Contribute), which covers the following: - -* [How to build and run from source](https://github.com/microsoft/vscode/wiki/How-to-Contribute) -* [The development workflow, including debugging and running tests](https://github.com/microsoft/vscode/wiki/How-to-Contribute#debugging) -* [Coding guidelines](https://github.com/microsoft/vscode/wiki/Coding-Guidelines) -* [Submitting pull requests](https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests) -* [Finding an issue to work on](https://github.com/microsoft/vscode/wiki/How-to-Contribute#where-to-contribute) -* [Contributing to translations](https://aka.ms/vscodeloc) - -## Feedback - -* Ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/vscode) -* [Request a new feature](CONTRIBUTING.md) -* Upvote [popular feature requests](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) -* [File an issue](https://github.com/microsoft/vscode/issues) -* Connect with the extension author community on [GitHub Discussions](https://github.com/microsoft/vscode-discussions/discussions) or [Slack](https://aka.ms/vscode-dev-community) -* Follow [@code](https://twitter.com/code) and let us know what you think! - -See our [wiki](https://github.com/microsoft/vscode/wiki/Feedback-Channels) for a description of each of these channels and information on some other available community-driven channels. - -## Related Projects - -Many of the core components and extensions to VS Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug) repositories are separate from each other. For a complete list, please visit the [Related Projects](https://github.com/microsoft/vscode/wiki/Related-Projects) page on our [wiki](https://github.com/microsoft/vscode/wiki). - -## Bundled Extensions - -VS Code includes a set of built-in extensions located in the [extensions](extensions) folder, including grammars and snippets for many languages. Extensions that provide rich language support (code completion, Go to Definition) for a language have the suffix `language-features`. For example, the `json` extension provides coloring for `JSON` and the `json-language-features` extension provides rich language support for `JSON`. - -## Development Container - -This repository includes a Visual Studio Code Dev Containers / GitHub Codespaces development container. - -* For [Dev Containers](https://aka.ms/vscode-remote/download/containers), use the **Dev Containers: Clone Repository in Container Volume...** command which creates a Docker volume for better disk I/O on macOS and Windows. - * If you already have VS Code and Docker installed, you can also click [here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/vscode) to get started. This will cause VS Code to automatically install the Dev Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use. - -* For Codespaces, install the [GitHub Codespaces](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) extension in VS Code, and use the **Codespaces: Create New Codespace** command. - -Docker / the Codespace should have at least **4 Cores and 6 GB of RAM (8 GB recommended)** to run a full build. See the [development container README](.devcontainer/README.md) for more information. - -## Code of Conduct - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -## License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Licensed under the [MIT](LICENSE.txt) license. +# FITVEST — Preview local (rápido) + +Este repositório é uma prévia estática de uma única página: `index.html` (pt-BR). +Use este projeto para visualizar rapidamente o site localmente ou preparar pequenas edições. + +## Como visualizar localmente + +1) Abrir diretamente no navegador (Windows PowerShell): + +```powershell +Set-Location -Path 'C:\Users\Usuario\OneDrive\Desktop\FITVEST' +Start-Process 'index.html' +``` + +2) Usando Python (se estiver disponível): + +```powershell +Set-Location -Path 'C:\Users\Usuario\OneDrive\Desktop\FITVEST' +python -m http.server 8000 +# então abra http://localhost:8000/ +``` + +3) Alternativa PowerShell (sem Python) — script incluído `serve.ps1`: + +```powershell +Set-Location -Path 'C:\Users\Usuario\OneDrive\Desktop\FITVEST' +.\serve.ps1 # porta padrão 8000 +.\serve.ps1 -Port 8080 +# abra http://localhost:8000/ ou a porta escolhida +``` + +Dica: a extensão "Live Server" do VS Code também funciona bem para edição/preview rápidos. + +## Convenções rápidas + +- Idioma: conteúdo em Português do Brasil (`pt-BR`). Mantenha consistência nas traduções. +- Acessibilidade: preserve ou melhore atributos ARIA já existentes (ex.: `aria-label` no link principal). +- Estilo: atualmente o CSS está embutido em `index.html`. Se extrair, prefira `assets/css/style.css` e mantenha a aparência. +- Não altere o link de produção: `https://www.fitvestmoda.com.br` — não substitua ou redirecione sem uma issue/PR explícita. + +## Commits e PRs + +- Mantenha commits pequenos e focados. Exemplo de mensagem: + +``` +fix(html): ajustar texto de link e aria-label +``` + +- Em PRs, inclua uma captura de tela ou uma breve nota explicando as mudanças visuais no `index.html`. + +## Quando expandir o projeto + +Antes de introduzir frameworks (React, Vite, etc.) abra uma issue propondo a mudança e aguarde aprovação de um revisor humano — este repositório é intencionalmente minimalista. + +## Mais documentação + +Veja também: `.github/copilot-instructions.md` — instruções para agentes/colaboradores (bilíngue). + + +Se quiser, posso também criar pequenos exemplos: extrair o CSS para `assets/css/style.css` e atualizar `index.html`, ou adicionar um `serve` npm/script se preferir Node.js. Escolha o próximo passo. + +## Rodando o projeto Next.js localmente (opcional) + +Se você quiser experimentar a versão mínima do Next.js incluída aqui: + +```powershell +# instalar dependências (uma vez) +npm install + +# rodar em desenvolvimento +npm run dev +``` + +Isto cria um app Next minimal que inclui o `src/app/page.tsx` e stubs de componentes. Use esta versão só se você pretende transformar o repositório em um app React/Next. + +## Firebase (inicialização cliente) + +O repositório inclui um inicializador cliente mínimo em `src/firebase/index.tsx` que usa variáveis de ambiente públicas do Next (`NEXT_PUBLIC_FIREBASE_*`). + +Variáveis esperadas (exemplo): + +- NEXT_PUBLIC_FIREBASE_API_KEY +- NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN +- NEXT_PUBLIC_FIREBASE_PROJECT_ID +- NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET +- NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID +- NEXT_PUBLIC_FIREBASE_APP_ID + +NUNCA comite chaves privadas ou credenciais sensíveis no repositório. Use o sistema de variáveis do seu provedor/CI para armazenar segredos. + + +## DNS (informações de deploy) + +Servidores de nome usados pelo deploy/registro do domínio: + +- Servidor DNS Primário: `ns1.locaweb.com.br` +- Servidor DNS Secundário: `ns2.locaweb.com.br` +- Servidor DNS Terciário: `ns3.locaweb.com.br` + +Inclua estas entradas apenas em alterações aprovadas pelo time de infraestrutura ou pelo responsável do domínio. + +## Privacidade e Telemetria + +Este repositório inclui integração opcional com Google Analytics (gtag) e Google Tag Manager (GTM). +- Por padrão os snippets estão desativados em `assets/js/analytics.js` (variável `ENABLE_ANALYTICS = false`). +- Só habilite o rastreamento em deploys de produção com aprovação explícita da equipe responsável e garantindo conformidade com LGPD/GDPR. +- Se ativar, atualize a documentação do deploy e garanta aviso/consentimento aos usuários conforme as políticas aplicáveis. + +### Como ativar/desativar (procedimento controlado) + +Há um utilitário PowerShell para alternar a flag de telemetria em `assets/js/analytics.js`. + +```powershell +# Ativar analytics (APENAS em deploy de produção e com aprovação) +.\scripts\enable_analytics.ps1 -Enable $true + +# Desativar analytics +.\scripts\enable_analytics.ps1 -Enable $false +``` + +O script cria um backup do arquivo `analytics.js` antes da alteração. Use este utilitário somente em pipelines de release aprovados. + +## Checklist de deploy (rápido) + +Antes de publicar alterações na zona DNS ou apontar o domínio, siga estes passos mínimos: + +- Verifique os registros atuais: A/AAAA/CNAME/MX/TXT usando `dig` ou `nslookup`. +- Reduza temporariamente o TTL (ex.: 300s) algumas horas antes da mudança para acelerar rollback. +- Atualize apenas os registros aprovados (A/AAAA para o host, CNAMEs conforme necessário). +- Confirme que os nameservers (`ns1/2/3.locaweb.com.br`) estão corretos na interface do registrador. +- Verifique certificação TLS/SSL: gere/renove certificados (Let's Encrypt/ACME ou provedor) e valide o HTTPS. +- Após aplicar, monitore a propagação (dig/nslookup apontando para diferentes resolvers, e ferramentas online de propagação). +- Teste o site em HTTP/HTTPS, em múltiplos dispositivos/rede, e verifique cabeçalhos e redirecionamentos. +- Se algo der errado, use o TTL reduzido para reverter rapidamente aos valores anteriores e notifique o time. + +Notas: Este é um checklist mínimo. Para alterações maiores (subdomínios, uso de CDN, failover), siga o runbook de infraestrutura do time. \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000000000..0eef9c0b09312 --- /dev/null +++ b/index.html @@ -0,0 +1,25 @@ + + + + + + Visualizando o Site + + + + + + + + + +

Link para o Site:

+

Clique no botão abaixo para abrir o site:

+ + Abrir no Navegador + +
+ © 2025 - Desenvolvido por DeividCurcio +
+ + \ No newline at end of file diff --git a/next-env.d.ts b/next-env.d.ts new file mode 100644 index 0000000000000..e5341d2f2e978 --- /dev/null +++ b/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// +/// + +// NOTE: This file should not be edited diff --git a/package.json b/package.json index 9c97d57a7619c..cd08276a8c4d5 100644 --- a/package.json +++ b/package.json @@ -1,242 +1,16 @@ -{ - "name": "code-oss-dev", - "version": "1.106.0", - "distro": "83bba123096af4c03a5f4419dc4e7f33d14e354c", - "author": { - "name": "Microsoft Corporation" - }, - "license": "MIT", - "main": "./out/main.js", - "type": "module", - "private": true, - "scripts": { - "test": "echo Please run any of the test scripts from the scripts folder.", - "test-browser": "npx playwright install && node test/unit/browser/index.js", - "test-browser-no-install": "node test/unit/browser/index.js", - "test-node": "mocha test/unit/node/index.js --delay --ui=tdd --timeout=5000 --exit", - "test-extension": "vscode-test", - "preinstall": "node build/npm/preinstall.js", - "postinstall": "node build/npm/postinstall.js", - "compile": "node ./node_modules/gulp/bin/gulp.js compile", - "compile-check-ts-native": "tsgo --project ./src/tsconfig.json --noEmit --skipLibCheck", - "watch": "npm-run-all -lp watch-client watch-extensions", - "watchd": "deemon npm run watch", - "watch-webd": "deemon npm run watch-web", - "kill-watchd": "deemon --kill npm run watch", - "kill-watch-webd": "deemon --kill npm run watch-web", - "restart-watchd": "deemon --restart npm run watch", - "restart-watch-webd": "deemon --restart npm run watch-web", - "watch-client": "node --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js watch-client", - "watch-clientd": "deemon npm run watch-client", - "kill-watch-clientd": "deemon --kill npm run watch-client", - "watch-extensions": "node --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js watch-extensions watch-extension-media", - "watch-extensionsd": "deemon npm run watch-extensions", - "kill-watch-extensionsd": "deemon --kill npm run watch-extensions", - "precommit": "node build/hygiene.js", - "gulp": "node --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js", - "electron": "node build/lib/electron", - "7z": "7z", - "update-grammars": "node build/npm/update-all-grammars.mjs", - "update-localization-extension": "node build/npm/update-localization-extension.js", - "mixin-telemetry-docs": "node build/npm/mixin-telemetry-docs.mjs", - "smoketest": "node build/lib/preLaunch.js && cd test/smoke && npm run compile && node test/index.js", - "smoketest-no-compile": "cd test/smoke && node test/index.js", - "download-builtin-extensions": "node build/lib/builtInExtensions.js", - "download-builtin-extensions-cg": "node build/lib/builtInExtensionsCG.js", - "monaco-compile-check": "tsgo --project src/tsconfig.monaco.json --noEmit", - "tsec-compile-check": "node node_modules/tsec/bin/tsec -p src/tsconfig.tsec.json", - "vscode-dts-compile-check": "tsgo --project src/tsconfig.vscode-dts.json && tsgo --project src/tsconfig.vscode-proposed-dts.json", - "valid-layers-check": "node build/checker/layersChecker.js && tsgo --project build/checker/tsconfig.browser.json && tsgo --project build/checker/tsconfig.worker.json && tsgo --project build/checker/tsconfig.node.json && tsgo --project build/checker/tsconfig.electron-browser.json && tsgo --project build/checker/tsconfig.electron-main.json && tsgo --project build/checker/tsconfig.electron-utility.json", - "define-class-fields-check": "node build/lib/propertyInitOrderChecker.js && tsgo --project src/tsconfig.defineClassFields.json", - "update-distro": "node build/npm/update-distro.mjs", - "web": "echo 'npm run web' is replaced by './scripts/code-server' or './scripts/code-web'", - "compile-cli": "gulp compile-cli", - "compile-web": "node ./node_modules/gulp/bin/gulp.js compile-web", - "watch-web": "node ./node_modules/gulp/bin/gulp.js watch-web", - "watch-cli": "node ./node_modules/gulp/bin/gulp.js watch-cli", - "eslint": "node build/eslint", - "stylelint": "node build/stylelint", - "playwright-install": "npm exec playwright install", - "compile-build": "node ./node_modules/gulp/bin/gulp.js compile-build-with-mangling", - "compile-extensions-build": "node ./node_modules/gulp/bin/gulp.js compile-extensions-build", - "minify-vscode": "node ./node_modules/gulp/bin/gulp.js minify-vscode", - "minify-vscode-reh": "node ./node_modules/gulp/bin/gulp.js minify-vscode-reh", - "minify-vscode-reh-web": "node ./node_modules/gulp/bin/gulp.js minify-vscode-reh-web", - "hygiene": "node ./node_modules/gulp/bin/gulp.js hygiene", - "core-ci": "node ./node_modules/gulp/bin/gulp.js core-ci", - "core-ci-pr": "node ./node_modules/gulp/bin/gulp.js core-ci-pr", - "extensions-ci": "node ./node_modules/gulp/bin/gulp.js extensions-ci", - "extensions-ci-pr": "node ./node_modules/gulp/bin/gulp.js extensions-ci-pr", - "perf": "node scripts/code-perf.js", - "update-build-ts-version": "npm install -D typescript@next && npm install -D @typescript/native-preview && (cd build && npm run compile)" - }, - "dependencies": { - "@microsoft/1ds-core-js": "^3.2.13", - "@microsoft/1ds-post-js": "^3.2.13", - "@parcel/watcher": "parcel-bundler/watcher#1ca032aa8339260a8a3bcf825c3a1a71e3e43542", - "@types/semver": "^7.5.8", - "@vscode/deviceid": "^0.1.1", - "@vscode/iconv-lite-umd": "0.7.0", - "@vscode/policy-watcher": "^1.3.2", - "@vscode/proxy-agent": "^0.35.0", - "@vscode/ripgrep": "^1.15.13", - "@vscode/spdlog": "^0.15.2", - "@vscode/sqlite3": "5.1.8-vscode", - "@vscode/sudo-prompt": "9.3.1", - "@vscode/tree-sitter-wasm": "^0.1.4", - "@vscode/vscode-languagedetection": "1.0.21", - "@vscode/windows-mutex": "^0.5.0", - "@vscode/windows-process-tree": "^0.6.0", - "@vscode/windows-registry": "^1.1.0", - "@xterm/addon-clipboard": "^0.2.0-beta.102", - "@xterm/addon-image": "^0.9.0-beta.119", - "@xterm/addon-ligatures": "^0.10.0-beta.119", - "@xterm/addon-progress": "^0.2.0-beta.25", - "@xterm/addon-search": "^0.16.0-beta.119", - "@xterm/addon-serialize": "^0.14.0-beta.119", - "@xterm/addon-unicode11": "^0.9.0-beta.119", - "@xterm/addon-webgl": "^0.19.0-beta.119", - "@xterm/headless": "^5.6.0-beta.119", - "@xterm/xterm": "^5.6.0-beta.119", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "jschardet": "3.1.4", - "katex": "^0.16.22", - "kerberos": "2.1.1", - "minimist": "^1.2.8", - "native-is-elevated": "0.7.0", - "native-keymap": "^3.3.5", - "native-watchdog": "^1.4.1", - "node-pty": "1.1.0-beta35", - "open": "^10.1.2", - "tas-client-umd": "0.2.0", - "undici": "^7.9.0", - "v8-inspect-profiler": "^0.1.1", - "vscode-oniguruma": "1.7.0", - "vscode-regexpp": "^3.1.0", - "vscode-textmate": "^9.2.1", - "yauzl": "^3.0.0", - "yazl": "^2.4.3" - }, - "devDependencies": { - "@playwright/test": "^1.55.1", - "@stylistic/eslint-plugin-ts": "^2.8.0", - "@types/cookie": "^0.3.3", - "@types/debug": "^4.1.5", - "@types/eslint": "^9.6.1", - "@types/gulp-svgmin": "^1.2.1", - "@types/http-proxy-agent": "^2.0.1", - "@types/kerberos": "^1.1.2", - "@types/minimist": "^1.2.1", - "@types/mocha": "^10.0.10", - "@types/node": "22.x", - "@types/sinon": "^10.0.2", - "@types/sinon-test": "^2.4.2", - "@types/trusted-types": "^1.0.6", - "@types/vscode-notebook-renderer": "^1.72.0", - "@types/webpack": "^5.28.5", - "@types/wicg-file-system-access": "^2020.9.6", - "@types/windows-foreground-love": "^0.3.0", - "@types/winreg": "^1.2.30", - "@types/yauzl": "^2.10.0", - "@types/yazl": "^2.4.2", - "@typescript-eslint/utils": "^8.45.0", - "@typescript/native-preview": "^7.0.0-dev.20250812.1", - "@vscode/gulp-electron": "^1.38.2", - "@vscode/l10n-dev": "0.0.35", - "@vscode/telemetry-extractor": "^1.10.2", - "@vscode/test-cli": "^0.0.6", - "@vscode/test-electron": "^2.4.0", - "@vscode/test-web": "^0.0.62", - "@vscode/v8-heap-parser": "^0.1.0", - "@vscode/vscode-perf": "^0.0.19", - "@webgpu/types": "^0.1.44", - "ansi-colors": "^3.2.3", - "asar": "^3.0.3", - "chromium-pickle-js": "^0.2.0", - "cookie": "^0.7.2", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.9.1", - "debounce": "^1.0.0", - "deemon": "^1.13.6", - "electron": "37.6.0", - "eslint": "^9.36.0", - "eslint-formatter-compact": "^8.40.0", - "eslint-plugin-header": "3.1.1", - "eslint-plugin-jsdoc": "^50.3.1", - "event-stream": "3.3.4", - "fancy-log": "^1.3.3", - "file-loader": "^6.2.0", - "glob": "^5.0.13", - "gulp": "^4.0.0", - "gulp-azure-storage": "^0.12.1", - "gulp-bom": "^3.0.0", - "gulp-buffer": "0.0.2", - "gulp-filter": "^5.1.0", - "gulp-flatmap": "^1.0.2", - "gulp-gunzip": "^1.0.0", - "gulp-gzip": "^1.4.2", - "gulp-json-editor": "^2.5.0", - "gulp-plumber": "^1.2.0", - "gulp-rename": "^1.2.0", - "gulp-replace": "^0.5.4", - "gulp-sourcemaps": "^3.0.0", - "gulp-svgmin": "^4.1.0", - "gulp-untar": "^0.0.7", - "husky": "^0.13.1", - "innosetup": "^6.4.1", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^6.0.1", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.1.5", - "lazy.js": "^0.4.2", - "merge-options": "^1.0.1", - "mime": "^1.4.1", - "minimatch": "^3.0.4", - "mocha": "^10.8.2", - "mocha-junit-reporter": "^2.2.1", - "mocha-multi-reporters": "^1.5.1", - "npm-run-all": "^4.1.5", - "os-browserify": "^0.3.0", - "p-all": "^1.0.0", - "path-browserify": "^1.0.1", - "pump": "^1.0.1", - "rcedit": "^1.1.0", - "rimraf": "^2.2.8", - "sinon": "^12.0.1", - "sinon-test": "^3.1.3", - "source-map": "0.6.1", - "source-map-support": "^0.3.2", - "style-loader": "^3.3.2", - "ts-loader": "^9.5.1", - "ts-node": "^10.9.1", - "tsec": "0.2.7", - "tslib": "^2.6.3", - "typescript": "^6.0.0-dev.20250922", - "typescript-eslint": "^8.45.0", - "util": "^0.12.4", - "webpack": "^5.94.0", - "webpack-cli": "^5.1.4", - "webpack-stream": "^7.0.0", - "xml2js": "^0.5.0", - "yaserver": "^0.4.0", - "zx": "^8.7.0" - }, - "overrides": { - "node-gyp-build": "4.8.1", - "kerberos@2.1.1": { - "node-addon-api": "7.1.0" - } - }, - "repository": { - "type": "git", - "url": "https://github.com/microsoft/vscode.git" - }, - "bugs": { - "url": "https://github.com/microsoft/vscode/issues" - }, - "optionalDependencies": { - "windows-foreground-love": "0.5.0" - } -} \ No newline at end of file +{ + "name": "fitvest", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "next": "14.0.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "firebase": "^10.0.0" + } +} diff --git a/serve.ps1 b/serve.ps1 new file mode 100644 index 0000000000000..43332e8073b71 --- /dev/null +++ b/serve.ps1 @@ -0,0 +1,82 @@ +serve.ps1 +A minimal, reusable PowerShell HTTP server for this project. +Usage (from repo root): + .\serve.ps1 [-Port 8000] + +This script does not require Python or Node. It opens an HttpListener on localhost +and serves files from the script's directory (defaults to the repo root). +#> + +param( + [int]$Port = 8000, + [string]$Root = (Split-Path -Path $MyInvocation.MyCommand.Definition -Parent) +) + +$prefix = "http://localhost:$Port/" +$listener = New-Object System.Net.HttpListener +$listener.Prefixes.Add($prefix) + +function Get-MimeType($file) { + $ext = [System.IO.Path]::GetExtension($file).ToLower() + switch ($ext) { + '.html' { 'text/html' } + '.htm' { 'text/html' } + '.css' { 'text/css' } + '.js' { 'application/javascript' } + '.json' { 'application/json' } + '.png' { 'image/png' } + '.jpg' { 'image/jpeg' } + '.jpeg' { 'image/jpeg' } + '.gif' { 'image/gif' } + '.svg' { 'image/svg+xml' } + default { 'application/octet-stream' } + } +} + +try { + $listener.Start() + Write-Output "Serving $Root at $prefix" + Write-Output "Press Ctrl+C in this window to stop the server." + + while ($listener.IsListening) { + $context = $listener.GetContext() + $req = $context.Request + + $path = $req.Url.LocalPath.TrimStart('/') + if ([string]::IsNullOrEmpty($path)) { $path = 'index.html' } + + # Prevent path traversal + $safePath = [System.IO.Path]::GetFullPath((Join-Path $Root $path)) + if (-not $safePath.StartsWith((Get-Item $Root).FullName, [System.StringComparison]::OrdinalIgnoreCase)) { + $context.Response.StatusCode = 403 + $data = [System.Text.Encoding]::UTF8.GetBytes('403 - Forbidden') + $context.Response.OutputStream.Write($data,0,$data.Length) + $context.Response.Close() + continue + } + + if (Test-Path $safePath) { + try { + $bytes = [System.IO.File]::ReadAllBytes($safePath) + $mime = Get-MimeType $safePath + $context.Response.ContentType = $mime + $context.Response.ContentLength64 = $bytes.Length + $context.Response.OutputStream.Write($bytes,0,$bytes.Length) + } catch { + $context.Response.StatusCode = 500 + $msg = "500 - Internal Server Error: $($_.Exception.Message)" + $data = [System.Text.Encoding]::UTF8.GetBytes($msg) + $context.Response.OutputStream.Write($data,0,$data.Length) + } + } else { + $context.Response.StatusCode = 404 + $data = [System.Text.Encoding]::UTF8.GetBytes('404 - Not Found') + $context.Response.OutputStream.Write($data,0,$data.Length) + } + $context.Response.Close() + } +} catch { + Write-Error "Server error: $($_.Exception.Message)" +} finally { + if ($listener.IsListening) { $listener.Stop() } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000000..8215a8148cec9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +}