Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions docs/DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ Every fixture contains an **input** and an expected **output**. The format depen
| `xyd-gql` | `input.graphql` | `output.json` |
| `xyd-openapi` | `input.yaml` | `output.json` |
| `xyd-opencli-remark` | `input.md` | `output.md` |
| `xyd-source-react-babel-runtime` | `input/` (folder with `src/`, `package.json`, `tsconfig.json`) | `output.js` |
| `xyd-source-react-runtime` | `input/` (self-contained app with `src/`, `package.json`, build config) | `output.js` |

For simple converters (OpenAPI, GraphQL, remark), input and output are single files. For more complex scenarios (Vite builds, multi-file projects), `input/` is a folder containing the full project source.
For simple converters (OpenAPI, GraphQL, remark), input and output are single files. For build plugins like `xyd-source-react-runtime`, each fixture is a self-contained app with its own bundler config (`vite.config.ts`, `rollup.config.mjs`, `esbuild.config.mjs`) and a `build` script in `package.json`. The test runs `pnpm build` and snapshots the output.

Fixture naming can also encode the build environment: `1.vite-lib.user-card`, `5.rollup.user-card`, `7.react-router.app`.

### Test structure

Expand Down
20 changes: 19 additions & 1 deletion docs/ProjectStructureAndMonorepo.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ xyd/
│ ├── xyd-ui/ # Primitives: Radix UI wrappers
│ ├── xyd-atlas/ # Design tokens: tokens.css
│ ├── xyd-theme-*/ # 6 themes: poetry, cosmo, etc.
│ ├── xyd-source-react-runtime/ # Build plugin: typia → uniform for React components
│ ├── xyd-plugin-*/ # Plugins: docs, orama, algolia
│ ├── xyd-ask-ai/ # AI: LitElement + React wrapper
│ └── xyd-storybook/ # Component documentation
Expand Down Expand Up @@ -93,6 +94,7 @@ The workspace explicitly excludes:
| `@xyd-js/openapi` | `.` | `oapSchemaToReferences()` | OpenAPI spec → Uniform conversion |
| `@xyd-js/gql` | `.` | GraphQL SDL parsing | GraphQL schema → Uniform conversion |
| `@xyd-js/sources` | `.` | `uniformToMiniUniform()` | TypeDoc integration, type resolution |
| `@xyd-js/source-react-runtime` | `.`, `./esbuild` | `xydSourceReactRuntime()` | Build plugin: auto-detects React components, uses typia for type resolution, converts to uniform via openapi |

### UI and Theming Packages

Expand Down Expand Up @@ -210,10 +212,26 @@ The project uses Biome for linting and formatting with Husky integration for pre

## Package Versioning

All packages use consistent versioning with snapshot builds following the pattern `0.1.0-build.XXX`.
There are two versioning strategies depending on the package:

### Scoped packages (`@xyd-js/*`)

All `@xyd-js/*` packages currently use snapshot builds that are auto-published on every push to master. The version format is `0.1.0-build.XXX` where `XXX` is an incrementing build number. Semver versioning for these packages is still work in progress.

Examples:
- `@xyd-js/cli`: `0.1.0-build.342`
- `@xyd-js/documan`: `0.1.0-build.201`
- `@xyd-js/components`: `0.1.0-build.180`
- `@xyd-js/atlas`: `0.1.0-build.185`

### CLI package (`xyd-js`)

The global CLI package `xyd-js` (published separately to npm) uses semver with pre-release tags:

| Version Type | Format | Example | When |
|-------------|--------|---------|------|
| Stable | `v*.*.*` | `v0.1.0` | Tag push triggers full release pipeline |
| Alpha | `v*.*.*-alpha.*` | `v0.1.0-alpha.6` | Pre-release for early testing |
| Beta | `v*.*.*-beta.*` | `v0.2.0-beta.1` | Pre-release for wider testing |

Stable releases go through the full test suite (unit, E2E, Node support matrix) before npm publish. Pre-releases are published with a simplified pipeline. Snapshot builds can be promoted to stable releases via the manual `cli-release-publish` workflow.
1 change: 1 addition & 0 deletions packages/xyd-openapi/TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1. make jsonschema -> uniform as a separate package
3 changes: 3 additions & 0 deletions packages/xyd-openapi/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ export {

oapResponseOperationToUniformDefinition,

schemaObjectToUniformDefinitionProperties,
schemaObjectToUniformDefinitionProperty,

getXDocs,
uniformPluginXDocsSidebar
} from "./src";
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading