{"id":47753583,"url":"https://github.com/springcomp/fred","last_synced_at":"2026-04-03T03:56:52.062Z","repository":{"id":341272102,"uuid":"1169470610","full_name":"springcomp/fred","owner":"springcomp","description":"FRED is a simple web-base editor for BizTalk Server Flat File Schemas","archived":false,"fork":false,"pushed_at":"2026-02-28T20:14:51.000Z","size":329,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-28T23:31:31.207Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/springcomp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-28T18:29:38.000Z","updated_at":"2026-02-28T20:14:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/springcomp/fred","commit_stats":null,"previous_names":["springcomp/fred"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/springcomp/fred","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springcomp%2Ffred","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springcomp%2Ffred/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springcomp%2Ffred/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springcomp%2Ffred/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/springcomp","download_url":"https://codeload.github.com/springcomp/fred/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springcomp%2Ffred/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31333175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T03:20:36.090Z","status":"ssl_error","status_checked_at":"2026-04-03T03:20:35.133Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-03T03:56:48.527Z","updated_at":"2026-04-03T03:56:52.055Z","avatar_url":"https://github.com/springcomp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nFRED sends good vibes!\n\nFRED is an editor for BizTalk Flat File XSD schemas.\n\n![](./assets/screenshot.png)\n\n## Running the app\n\n```sh\npnpm install\npnpm dev\n```\n\n## Usage\n\nFRED allows you to load, edit, and save XSD files annotated with Microsoft BizTalk Server flat-file extensions — the `b:schemaInfo`, `b:recordInfo`, `b:fieldInfo`, and `b:groupInfo` annotations that describe the physical layout of delimited or positional flat files.\n\n### Opening and Saving Files\n\n- **Open** — Click **Open** in the toolbar (or use the keyboard shortcut). On Chromium browsers, FRED uses the File System Access API to open `.xsd` files directly from disk. On other browsers, a classic file picker fallback is used.\n- **Save** — Writes back to the original file handle (Chromium) or triggers a download.\n- **Save As** — Prompts for a new file name and location.\n- A sample schema is loaded automatically on first launch so you can explore the UI immediately.\n\n### Tree View (Left Pane)\n\nThe schema structure is displayed as an interactive tree with color-coded icons for each node kind:\n\n| Node Kind | Description |\n|-----------|-------------|\n| **Schema** | Root node — global defaults (delimiters, pad characters, code page, etc.) |\n| **Record** | A complex-type element representing a delimited or positional structure |\n| **Element** | A simple-type data field with its own field-level annotations |\n| **Attribute** | An XSD attribute on a record |\n| **Sequence** | An `xs:sequence` group with optional min/max occurrence constraints |\n| **Choice** | An `xs:choice` group with optional min/max occurrence constraints |\n\n- **Select** a node to view and edit its properties in the right pane.\n- **Double-click** a named node (record, element, attribute) to **rename** it inline.\n- **Right-click** any node for a context menu with insert, move, and delete options.\n- **Min…max hints** are displayed next to sequence and choice nodes (e.g., `1…∞`).\n- **Dirty indicators** — node labels turn **bold** when they have unsaved changes.\n\n### Property Sheet (Right Pane)\n\nSelecting a node displays an appropriate property panel with editable fields:\n\n- **Text fields** — node name, namespace, delimiters, wrap/escape characters\n- **Enum dropdowns** — structure type (delimited/positional), child order, justification, character type, etc.\n- **Number fields** — max length, positions, offsets, tag offsets, code page, with increment/decrement\n- **Boolean switches** — count positions in bytes, preserve delimiter for empty data, etc.\n- **Special handling** — the `maxOccurs` field supports the `unbounded` keyword (set to `minOccurs - 1`); W3C built-in data types are available for element type selection\n\nChanges are applied immediately to the in-memory schema tree and tracked at the per-property level.\n\n### Inserting \u0026 Reordering Nodes\n\n- **Insert child** — via the toolbar **Insert** dropdown or the context menu. Valid child kinds are enforced by the schema structure (e.g., you cannot add a sequence under an element).\n- **Insert sibling** — via the context menu's **Insert After** submenu.\n- **Move Up / Move Down** — reorder nodes among their siblings using the toolbar buttons or context menu.\n- **Delete** — remove the selected node and its descendants.\n- Newly inserted named nodes automatically enter inline rename mode.\n\n### Resizable Layout\n\nThe split between the tree view and property sheet is **draggable** — grab the divider and resize to your preference.\n\n## Has this been vibe coded?\n\nEvery line of code in this project was generated by an AI agent. Zero lines were typed by a human. Sounds like vibe coding, right? [Not even close.](vibes/VIBES.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringcomp%2Ffred","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspringcomp%2Ffred","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringcomp%2Ffred/lists"}