@timo9378/flow2code 0.1.0 โ†’ 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/cli.js +4 -8
  2. package/dist/compiler.cjs +1 -5
  3. package/dist/compiler.js +1 -5
  4. package/dist/server.js +2 -6
  5. package/out/404.html +1 -0
  6. package/out/__next.__PAGE__.txt +10 -0
  7. package/out/__next._full.txt +21 -0
  8. package/out/__next._head.txt +6 -0
  9. package/out/__next._index.txt +7 -0
  10. package/out/__next._tree.txt +3 -0
  11. package/out/_next/static/MU8PWJNAi-sgHZxErePm1/_buildManifest.js +11 -0
  12. package/out/_next/static/MU8PWJNAi-sgHZxErePm1/_clientMiddlewareManifest.json +1 -0
  13. package/out/_next/static/MU8PWJNAi-sgHZxErePm1/_ssgManifest.js +1 -0
  14. package/out/_next/static/chunks/3638bc7cb3d72bbe.js +379 -0
  15. package/out/_next/static/chunks/41ec06cb3e44c96a.js +125 -0
  16. package/out/_next/static/chunks/46e882944a7f3aed.js +1 -0
  17. package/out/_next/static/chunks/4b43c69e91d19eee.js +1 -0
  18. package/out/_next/static/chunks/59b058cf94cc555e.js +1 -0
  19. package/out/_next/static/chunks/5c37aae6b3fd1bfe.js +52 -0
  20. package/out/_next/static/chunks/6e36daee8960e188.js +5 -0
  21. package/out/_next/static/chunks/80a5431d4e78c469.js +1 -0
  22. package/out/_next/static/chunks/8486af13ea541d4d.js +1 -0
  23. package/out/_next/static/chunks/8a38426c5ed81587.js +1 -0
  24. package/out/_next/static/chunks/8a5bd6fe3abc8091.css +1 -0
  25. package/out/_next/static/chunks/8b2510d8037d3419.css +1 -0
  26. package/out/_next/static/chunks/a6dad97d9634a72d.js +1 -0
  27. package/out/_next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  28. package/out/_next/static/chunks/turbopack-b95472a0b02a2729.js +4 -0
  29. package/out/_not-found/__next._full.txt +16 -0
  30. package/out/_not-found/__next._head.txt +6 -0
  31. package/out/_not-found/__next._index.txt +7 -0
  32. package/out/_not-found/__next._not-found.__PAGE__.txt +5 -0
  33. package/out/_not-found/__next._not-found.txt +4 -0
  34. package/out/_not-found/__next._tree.txt +2 -0
  35. package/out/_not-found.html +1 -0
  36. package/out/_not-found.txt +16 -0
  37. package/out/android-chrome-192x192.png +0 -0
  38. package/out/apple-touch-icon.png +0 -0
  39. package/out/favicon-16x16.png +0 -0
  40. package/out/favicon-32x32.png +0 -0
  41. package/out/favicon.ico +0 -0
  42. package/out/index.html +2 -0
  43. package/out/index.txt +21 -0
  44. package/out/site.webmanifest +1 -0
  45. package/package.json +2 -1
package/out/index.html ADDED
@@ -0,0 +1,2 @@
1
+ <!DOCTYPE html><!--MU8PWJNAi_sgHZxErePm1--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/favicon-32x32.png"/><link rel="stylesheet" href="/_next/static/chunks/8b2510d8037d3419.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/8a5bd6fe3abc8091.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/8a38426c5ed81587.js"/><script src="/_next/static/chunks/80a5431d4e78c469.js" async=""></script><script src="/_next/static/chunks/6e36daee8960e188.js" async=""></script><script src="/_next/static/chunks/turbopack-b95472a0b02a2729.js" async=""></script><script src="/_next/static/chunks/46e882944a7f3aed.js" async=""></script><script src="/_next/static/chunks/4b43c69e91d19eee.js" async=""></script><script src="/_next/static/chunks/59b058cf94cc555e.js" async=""></script><script src="/_next/static/chunks/8486af13ea541d4d.js" async=""></script><script src="/_next/static/chunks/41ec06cb3e44c96a.js" async=""></script><script src="/_next/static/chunks/5c37aae6b3fd1bfe.js" async=""></script><title>Flow2Code | Visual AST Compiler</title><meta name="description" content="Visual backend logic generator: compile canvas nodes directly into native TypeScript code"/><link rel="manifest" href="/site.webmanifest"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="antialiased overflow-hidden"><div hidden=""><!--$--><!--/$--></div><div class="flex flex-col h-screen w-screen bg-background"><header class="h-12 bg-card border-b border-border flex items-center px-4 gap-1.5 shrink-0"><div class="flex items-center gap-2 mr-3"><img src="/favicon-32x32.png" alt="Flow2Code" class="w-6 h-6"/><span class="text-sm font-bold tracking-tight text-foreground">Flow2Code</span></div><div data-orientation="vertical" role="none" data-slot="separator" class="bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px h-5 mx-1"></div><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5 text-primary hover:text-primary hover:bg-primary/10" data-state="closed">๐Ÿš€ Compile</button><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5" data-state="closed">โœ… Validate</button><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5" data-state="closed">๐Ÿ“Š Analyze</button><div data-orientation="vertical" role="none" data-slot="separator" class="bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px h-5 mx-1"></div><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5 text-purple-400 hover:text-purple-300 hover:bg-purple-500/10" data-state="closed">โœจ AI Generate</button><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 has-[&gt;svg]:px-2.5 text-purple-400 hover:text-purple-300 hover:bg-purple-500/10 px-1.5" data-state="closed">โš™๏ธ</button><div data-orientation="vertical" role="none" data-slot="separator" class="bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px h-5 mx-1"></div><button data-slot="dropdown-menu-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5" type="button" id="radix-_R_a5avb_" aria-haspopup="menu" aria-expanded="false" data-state="closed">๐Ÿ“ File</button><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5 text-emerald-400 hover:text-emerald-300 hover:bg-emerald-500/10" data-state="closed">๐Ÿงช Test</button><div class="flex-1"></div><span data-slot="badge" data-variant="secondary" class="inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 font-medium w-fit whitespace-nowrap shrink-0 [&amp;&gt;svg]:size-3 gap-1 [&amp;&gt;svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-[10px] font-mono">0<!-- --> nodes</span><button data-slot="tooltip-trigger" data-variant="ghost" data-size="sm" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-accent/50 h-8 rounded-md gap-1.5 px-3 has-[&gt;svg]:px-2.5 text-destructive hover:text-destructive hover:bg-destructive/10" data-state="closed">๐Ÿ—‘๏ธ Reset</button></header><div class="flex flex-1 overflow-hidden"><div class="w-56 bg-card border-r border-border flex flex-col shrink-0"><div class="flex items-center justify-between px-3 py-2.5 border-b border-border"><span class="text-xs font-semibold text-foreground uppercase tracking-wider">Node Library</span><button data-slot="button" data-variant="ghost" data-size="icon" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent dark:hover:bg-accent/50 size-9 w-6 h-6 text-muted-foreground hover:text-foreground">ยซ</button></div><div dir="ltr" data-slot="scroll-area" class="relative flex-1" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" data-slot="scroll-area-viewport" class="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><div class="p-2 flex flex-col gap-1"><div data-state="open" data-slot="collapsible"><button type="button" aria-controls="radix-_R_1j6avb_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger" class="flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground w-full rounded-md hover:bg-accent transition-colors cursor-pointer"><span>โšก</span><span class="text-emerald-400">Triggers</span></button><div data-state="open" id="radix-_R_1j6avb_" data-slot="collapsible-content"><div class="flex flex-col gap-0.5 py-0.5 pl-2"><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐ŸŒ</span><span>HTTP Webhook</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">โฐ</span><span>Cron Job</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ‘ค</span><span>Manual Trigger</span></button></div></div></div><div data-state="open" data-slot="collapsible"><button type="button" aria-controls="radix-_R_2j6avb_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger" class="flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground w-full rounded-md hover:bg-accent transition-colors cursor-pointer"><span>๐Ÿ”ง</span><span class="text-blue-400">Actions</span></button><div data-state="open" id="radix-_R_2j6avb_" data-slot="collapsible-content"><div class="flex flex-col gap-0.5 py-0.5 pl-2"><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ“ก</span><span>Fetch API</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ—„๏ธ</span><span>SQL Query</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ’พ</span><span>Redis Cache</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ’ป</span><span>Custom Code</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ”—</span><span>Call Subflow</span></button></div></div></div><div data-state="open" data-slot="collapsible"><button type="button" aria-controls="radix-_R_3j6avb_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger" class="flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground w-full rounded-md hover:bg-accent transition-colors cursor-pointer"><span>๐Ÿ”€</span><span class="text-amber-400">Logic Control</span></button><div data-state="open" id="radix-_R_3j6avb_" data-slot="collapsible-content"><div class="flex flex-col gap-0.5 py-0.5 pl-2"><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ”€</span><span>If / Else</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ”</span><span>For Loop</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ›ก๏ธ</span><span>Try / Catch</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">โšก</span><span>Promise.all</span></button></div></div></div><div data-state="open" data-slot="collapsible"><button type="button" aria-controls="radix-_R_4j6avb_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger" class="flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground w-full rounded-md hover:bg-accent transition-colors cursor-pointer"><span>๐Ÿ“ฆ</span><span class="text-purple-400">Variables</span></button><div data-state="open" id="radix-_R_4j6avb_" data-slot="collapsible-content"><div class="flex flex-col gap-0.5 py-0.5 pl-2"><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ“ฆ</span><span>Declare Variable</span></button><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ”„</span><span>Transform</span></button></div></div></div><div data-state="open" data-slot="collapsible"><button type="button" aria-controls="radix-_R_5j6avb_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger" class="flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground hover:text-foreground w-full rounded-md hover:bg-accent transition-colors cursor-pointer"><span>๐Ÿ“ค</span><span class="text-rose-400">Output</span></button><div data-state="open" id="radix-_R_5j6avb_" data-slot="collapsible-content"><div class="flex flex-col gap-0.5 py-0.5 pl-2"><button class="flex items-center gap-2 px-2 py-1.5 rounded-md text-xs text-muted-foreground hover:text-foreground hover:bg-accent transition-colors cursor-pointer text-left group"><span class="text-sm group-hover:scale-110 transition-transform">๐Ÿ“ค</span><span>Return Response</span></button></div></div></div></div></div></div></div></div><div class="flex-1 min-w-0 relative"><div data-testid="rf__wrapper" style="background:transparent;width:100%;height:100%;overflow:hidden;position:relative;z-index:0" class="react-flow light" role="application"><div class="react-flow__renderer" style="position:absolute;width:100%;height:100%;top:0;left:0"><div class="react-flow__pane draggable" style="position:absolute;width:100%;height:100%;top:0;left:0"><div class="react-flow__viewport xyflow__viewport react-flow__container" style="transform:translate(0px,0px) scale(1)"><div class="react-flow__edges"></div><div class="react-flow__edgelabel-renderer"></div><div class="react-flow__nodes" style="position:absolute;width:100%;height:100%;top:0;left:0"></div><div class="react-flow__viewport-portal"></div></div></div></div><div class="react-flow__panel react-flow__controls vertical !bg-card !border-border !shadow-lg [&amp;&gt;button]:!bg-card [&amp;&gt;button]:!border-border [&amp;&gt;button]:!text-foreground [&amp;&gt;button:hover]:!bg-accent bottom left" style="margin-left:1rem;margin-bottom:1rem" data-testid="rf__controls" aria-label="Control Panel"><button type="button" class="react-flow__controls-button react-flow__controls-zoomin" title="Zoom In" aria-label="Zoom In"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"></path></svg></button><button type="button" class="react-flow__controls-button react-flow__controls-zoomout" title="Zoom Out" aria-label="Zoom Out"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 5"><path d="M0 0h32v4.2H0z"></path></svg></button><button type="button" class="react-flow__controls-button react-flow__controls-fitview" title="Fit View" aria-label="Fit View"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 30"><path d="M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"></path></svg></button><button type="button" class="react-flow__controls-button react-flow__controls-interactive" title="Toggle Interactivity" aria-label="Toggle Interactivity"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 32"><path d="M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"></path></svg></button></div><div class="react-flow__panel react-flow__minimap !bg-card !border !border-border !rounded-lg !shadow-lg bottom right" style="margin-right:1rem;margin-bottom:1rem;--xy-minimap-mask-background-color-props:rgba(0, 0, 0, 0.6)" data-testid="rf__minimap"><svg width="200" height="150" viewBox="0 0 0 0" class="react-flow__minimap-svg" role="img" aria-labelledby="react-flow__minimap-desc-1"><title id="react-flow__minimap-desc-1">Mini Map</title><path class="react-flow__minimap-mask" d="M0,0h0v0h0z
2
+ M0,0h0v0h0z" fill-rule="evenodd" pointer-events="none"></path></svg></div><svg class="react-flow__background" style="position:absolute;width:100%;height:100%;top:0;left:0;--xy-background-pattern-color-props:oklch(0.3 0 0)" data-testid="rf__background"><pattern id="pattern-1" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse" patternTransform="translate(-11,-11)"><circle cx="0.5" cy="0.5" r="0.5" class="react-flow__background-pattern dots"></circle></pattern><rect x="0" y="0" width="100%" height="100%" fill="url(#pattern-1)"></rect></svg><div class="react-flow__panel react-flow__attribution bottom right" data-message="Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev"><a href="https://reactflow.dev" target="_blank" rel="noopener noreferrer" aria-label="React Flow attribution">React Flow</a></div><div id="react-flow__node-desc-1" style="display:none">Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.</div><div id="react-flow__edge-desc-1" style="display:none">Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.</div><div id="react-flow__aria-live-1" aria-live="assertive" aria-atomic="true" style="position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(0px, 0px, 0px, 0px);clip-path:inset(100%)"></div></div></div><div class="w-72 bg-card border-l border-border flex items-center justify-center h-full shrink-0"><p class="text-xs text-muted-foreground text-center px-4">Click a node to edit its parameters</p></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/8a38426c5ed81587.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[46798,[\"/_next/static/chunks/46e882944a7f3aed.js\"],\"TooltipProvider\"]\n3:I[25270,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"default\"]\n4:I[58298,[\"/_next/static/chunks/46e882944a7f3aed.js\",\"/_next/static/chunks/8486af13ea541d4d.js\"],\"default\"]\n5:I[85455,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"default\"]\n6:I[33461,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"ClientPageRoot\"]\n7:I[52683,[\"/_next/static/chunks/46e882944a7f3aed.js\",\"/_next/static/chunks/41ec06cb3e44c96a.js\",\"/_next/static/chunks/5c37aae6b3fd1bfe.js\"],\"default\"]\na:I[95276,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[95276,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"ViewportBoundary\"]\nf:I[95276,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"MetadataBoundary\"]\n11:I[63491,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/8b2510d8037d3419.css\",\"style\"]\n:HL[\"/_next/static/chunks/8a5bd6fe3abc8091.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"MU8PWJNAi-sgHZxErePm1\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/8b2510d8037d3419.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/46e882944a7f3aed.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"antialiased overflow-hidden\",\"children\":[\"$\",\"$L2\",null,{\"delayDuration\":200,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/8486af13ea541d4d.js\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/8a5bd6fe3abc8091.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/41ec06cb3e44c96a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/5c37aae6b3fd1bfe.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:{}\n9:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[8780,[\"/_next/static/chunks/4b43c69e91d19eee.js\",\"/_next/static/chunks/59b058cf94cc555e.js\"],\"IconMark\"]\nc:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"Flow2Code | Visual AST Compiler\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Visual backend logic generator: compile canvas nodes directly into native TypeScript code\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/site.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$L12\",\"7\",{}]]\n"])</script></body></html>
package/out/index.txt ADDED
@@ -0,0 +1,21 @@
1
+ 1:"$Sreact.fragment"
2
+ 2:I[46798,["/_next/static/chunks/46e882944a7f3aed.js"],"TooltipProvider"]
3
+ 3:I[25270,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"default"]
4
+ 4:I[58298,["/_next/static/chunks/46e882944a7f3aed.js","/_next/static/chunks/8486af13ea541d4d.js"],"default"]
5
+ 5:I[85455,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"default"]
6
+ 6:I[33461,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"ClientPageRoot"]
7
+ 7:I[52683,["/_next/static/chunks/46e882944a7f3aed.js","/_next/static/chunks/41ec06cb3e44c96a.js","/_next/static/chunks/5c37aae6b3fd1bfe.js"],"default"]
8
+ a:I[95276,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"OutletBoundary"]
9
+ b:"$Sreact.suspense"
10
+ d:I[95276,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"ViewportBoundary"]
11
+ f:I[95276,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"MetadataBoundary"]
12
+ 11:I[63491,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"default"]
13
+ :HL["/_next/static/chunks/8b2510d8037d3419.css","style"]
14
+ :HL["/_next/static/chunks/8a5bd6fe3abc8091.css","style"]
15
+ 0:{"P":null,"b":"MU8PWJNAi-sgHZxErePm1","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8b2510d8037d3419.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/46e882944a7f3aed.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased overflow-hidden","children":["$","$L2",null,{"delayDuration":200,"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$4","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/8486af13ea541d4d.js","async":true}]],"template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8a5bd6fe3abc8091.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/41ec06cb3e44c96a.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/5c37aae6b3fd1bfe.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[]],"S":true}
16
+ 8:{}
17
+ 9:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
18
+ e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
19
+ 12:I[8780,["/_next/static/chunks/4b43c69e91d19eee.js","/_next/static/chunks/59b058cf94cc555e.js"],"IconMark"]
20
+ c:null
21
+ 10:[["$","title","0",{"children":"Flow2Code | Visual AST Compiler"}],["$","meta","1",{"name":"description","content":"Visual backend logic generator: compile canvas nodes directly into native TypeScript code"}],["$","link","2",{"rel":"manifest","href":"/site.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico","sizes":"any"}],["$","link","4",{"rel":"icon","href":"/favicon-16x16.png","sizes":"16x16","type":"image/png"}],["$","link","5",{"rel":"icon","href":"/favicon-32x32.png","sizes":"32x32","type":"image/png"}],["$","link","6",{"rel":"apple-touch-icon","href":"/apple-touch-icon.png"}],["$","$L12","7",{}]]
@@ -0,0 +1 @@
1
+ {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timo9378/flow2code",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Visual AST Compiler: Flow-based visual editor that compiles to native TypeScript code",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -44,6 +44,7 @@
44
44
  },
45
45
  "files": [
46
46
  "dist",
47
+ "out",
47
48
  "!dist/*.map",
48
49
  "README.md",
49
50
  "LICENSE",