testefluxoutils.ts3 matches
9export function calculateEstimatedDuration(steps: any[]): number {
10const baseDuration = steps.length * 2;
11const complexSteps = steps.filter(s => ["make_api_call", "database_operation"].includes(s.type)).length;
12return baseDuration + (complexSteps * 5);
13}
35steps.forEach(step => {
36switch (step.type) {
37case "make_api_call":
38permissions.add("network_access");
39break;
60const dependencies = new Set<string>();
61steps.forEach(step => {
62if (step.type === "make_api_call") {
63dependencies.add("http_client");
64}
ChatTESTING.md2 matches
253254```typescript
255// DOM APIs
256globalThis.localStorage = mockLocalStorage;
257globalThis.fetch = mockFetch;
258globalThis.crypto.randomUUID = mockUUID;
259260// Browser APIs
261navigator.clipboard = mockClipboard;
262globalThis.alert = mockAlert;
105- **Deno Standard Library**: For assertions
106- **Mock DOM**: Simulated browser environment
107- **Mock APIs**: localStorage, fetch, crypto.randomUUID
108- **Test Helpers**: Utilities for creating mock data
109
39};
4041// Mock fetch for API calls in tests
42const originalFetch = globalThis.fetch;
43globalThis.fetch = async (input: RequestInfo | URL, init?: RequestInit) => {
Chattest-helpers.ts1 match
152*/
153export function setupMockDOM() {
154// Mock clipboard API
155Object.assign(navigator, {
156clipboard: {
Chatpackage.json1 match
2"name": "anthropic-streaming-chat-mcp",
3"version": "1.0.0",
4"description": "A mobile-optimized single page chat application that uses the Anthropic Messages API with real-time streaming and MCP (Model Context Protocol) server support",
5"type": "module",
6"scripts": {
invest-trackernews_api.tsx1 match
1// news_api.tsx ā tiny helper: http://ā¦/latest?limit=6
2import { blob } from "https://esm.town/v/std/blob";
3
untitled-5696htmlTemplate.ts4 matches
411<button class="glass-button" data-node-type="input">š Entrada</button>
412<button class="glass-button" data-node-type="output">š¤ SaĆda</button>
413<button class="glass-button" data-node-type="api">š API</button>
414<button class="glass-button" data-node-type="end">ā¹ļø Fim</button>
415<button class="glass-button" id="saveFlowchart">š¾ Salvar</button>
464<li><strong>š Entrada:</strong> Coleta de dados ou informaƧƵes.</li>
465<li><strong>š¤ SaĆda:</b> Exibição de resultados ou informaƧƵes.</li>
466<li><strong>š API:</strong> Chamada a uma API externa.</li>
467<li><strong>ā¹ļø Fim:</strong> O ponto final do seu fluxograma.</li>
468</ul>
506decision: { label: "DecisĆ£o", icon: "ā", color: "#FFC107", subtypes: ["Booleano", "Comparação", "Intervalo", "PadrĆ£o"] },
507input: { label: "Entrada", icon: "š", color: "#9C27B0", subtypes: ["Texto", "NĆŗmero", "Arquivo", "Seleção"] },
508output: { label: "SaĆda", icon: "š¤", color: "#FF5722", subtypes: ["Exibir", "Arquivo", "Notificação", "Resposta API"] },
509api: { label: "API", icon: "š", color: "#673AB7", subtypes: ["REST API", "GraphQL", "Webhook", "Database"] },
510end: { label: "Fim", icon: "ā¹ļø", color: "#F4436", subtypes: [] },
511};
untitled-5696flowchart-editor-valtown.ts20 matches
5function calculateEstimatedDuration(steps) {
6const baseDuration = steps.length * 2;
7const complexSteps = steps.filter(s => ["api_call", "database_operation"].includes(s.action)).length;
8return baseDuration + (complexSteps * 5);
9}
21steps.forEach(step => {
22switch (step.action) {
23case "make_api_call":
24permissions.add("network_access");
25break;
41const dependencies = new Set();
42steps.forEach(step => {
43if (step.action === "make_api_call") {
44dependencies.add("http_client");
45}
105instructions.push({ type: "display_output", content: node.text, format: node.subtype });
106break;
107case "api":
108instructions.push({ type: "make_api_call", endpoint: node.text, method: node.subtype, description: node.description });
109break;
110case "end":
133}
134135// --- api.ts ---
136// Salvar fluxograma (simulado - em produção usaria std/blob)
137async function saveFlowchart(req) {
669<button class="glass-button" data-node-type="input">š Entrada</button>
670<button class="glass-button" data-node-type="output">š¤ SaĆda</button>
671<button class="glass-button" data-node-type="api">š API</button>
672<button class="glass-button" data-node-type="end">ā¹ļø Fim</button>
673<button class="glass-button" id="saveFlowchart">š¾ Salvar</button>
724<li>š <strong>Entrada:</strong> Coleta de dados ou informaƧƵes.</li>
725<li>š¤ <strong>SaĆda:</strong> Exibição ou entrega de resultados.</li>
726<li>š <strong>API:</strong> Interação com serviƧos externos via API.</li>
727<li>ā¹ļø <strong>Fim:</strong> Ponto de saĆda do fluxograma.</li>
728</ul>
944newNode.subtype = 'Texto';
945break;
946case 'api':
947newNode.icon = 'š';
948newNode.subtypes = ['GET', 'POST', 'PUT', 'DELETE'];
1042const flowchartName = prompt('Nome do fluxograma para salvar:');
1043if (flowchartName) {
1044const response = await fetch('/api/save-flowchart', {
1045method: 'POST',
1046headers: { 'Content-Type': 'application/json' },
1055const flowchartId = prompt('ID do fluxograma para carregar:');
1056if (flowchartId) {
1057const response = await fetch(`/api/load-flowchart?id=${flowchartId}`);
1058const result = await response.json();
1059if (result.success) {
10691070document.getElementById('exportJson').addEventListener('click', async () => {
1071const response = await fetch('/api/export-json', {
1072method: 'POST',
1073headers: { 'Content-Type': 'application/json' },
1099try {
1100const jsonData = JSON.parse(event.target.result);
1101const response = await fetch('/api/import-json', {
1102method: 'POST',
1103headers: { 'Content-Type': 'application/json' },
11241125document.getElementById('convertToAI').addEventListener('click', async () => {
1126const response = await fetch('/api/convert-to-ai', {
1127method: 'POST',
1128headers: { 'Content-Type': 'application/json' },
1180const path = url.pathname;
11811182// Roteamento da API
1183if (path === '/api/save-flowchart' && req.method === 'POST') {
1184return await saveFlowchart(req);
1185}
1186
1187if (path === '/api/convert-to-ai' && req.method === 'POST') {
1188return await convertToAI(req);
1189}
1190
1191if (path === '/api/load-flowchart' && req.method === 'GET') {
1192return await loadFlowchart(req);
1193}
11941195if (path === '/api/export-json' && req.method === 'POST') {
1196return await exportJSON(req);
1197}
11981199if (path === '/api/import-json' && req.method === 'POST') {
1200return await importJSON(req);
1201}
untitled-5696README.md4 matches
47| **DecisĆ£o** | ā | CondiƧƵes | Booleano, Comparação, Intervalo, PadrĆ£o |
48| **Entrada** | š | Coletar dados | Texto, NĆŗmero, Arquivo, Seleção |
49| **SaĆda** | š¤ | Exibir resultados | Exibir, Arquivo, Notificação, Resposta API |
50| **API** | š | Chamadas externas | REST API, GraphQL, Webhook, Database |
51| **Fim** | ā¹ļø | Ponto de tĆ©rmino | - |
52120- `collect_user_input`: Coleta de entrada do usuƔrio
121- `display_output`: Exibição de resultados
122- `make_api_call`: Chamadas para APIs
123- `database_operation`: OperaƧƵes de banco de dados
124- `iterate`: Loops e iteraƧƵes
196- **Runtime**: Deno (Val.town)
197- **Bibliotecas**: Nenhuma dependĆŖncia externa
198- **APIs**: Web APIs padrão (DOM, Fetch, etc.)
199200## š Suporte