{"_id":"@educorvi/json-schema-viewer","_rev":"2-0c406a617499b33dfc166524e49d1f9e","name":"@educorvi/json-schema-viewer","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@educorvi/json-schema-viewer","version":"1.0.0","_id":"@educorvi/json-schema-viewer@1.0.0","maintainers":[{"name":"neferin","email":"julian@pollinger.dev"},{"name":"educorvi-dev","email":"developers@educorvi.de"}],"bin":{"json-schema-viewer":"bin/json-schema-viewer.mjs"},"dist":{"shasum":"c9c1b6116f30c5b58ab93f53ac1c3164394c3e47","tarball":"https://registry.npmjs.org/@educorvi/json-schema-viewer/-/json-schema-viewer-1.0.0.tgz","fileCount":17,"integrity":"sha512-G41v5aaXqageVEe6A4ikhXctc5s4Wz9No9xHjxXUFERo35rDETVqmtH61UiFuJIYNm9BPw8UoA1KGe1BWpfx0A==","signatures":[{"sig":"MEYCIQDCrrYKR64N07pVGJ3zunuW/+ALYKy2dsjuV5xbe1C5CgIhAI8fXApCTAeBju6CxVJ+Sx+Tx6Pe8TtgpdiRgaBOV7Gc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41611},"type":"module","engines":{"node":"^22.18.0 || >=24.12.0"},"gitHead":"b2f744ff010309ddd1541093d6801c5081429314","scripts":{"dev":"vite","lint":"run-s \"lint:*\"","build":"run-p type-check \"build-only {@}\" --","format":"prettier --write --experimental-cli src/","preview":"vite preview","release":"semantic-release","build-only":"vite build","type-check":"vue-tsc --build","lint:eslint":"eslint . --fix --cache","lint:oxlint":"oxlint . --fix"},"_npmUser":{"name":"neferin","email":"julian@pollinger.dev"},"_npmVersion":"11.9.0","description":"Generate interactive static documentation for a JSON Schema.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"vue":"^3.5.38","vite":"^8.0.16","primevue":"^4.5.5","vue-router":"^5.1.0","highlight.js":"^11.11.1","@primevue/themes":"^4.5.4","@vitejs/plugin-vue":"^6.0.7"},"_hasShrinkwrap":false,"packageManager":"yarn@4.17.0","devDependencies":{"jiti":"^2.7.0","eslint":"^10.5.0","oxlint":"~1.69.0","vue-tsc":"^3.3.5","prettier":"3.8.4","typescript":"~6.0.0","@types/node":"^24.13.2","npm-run-all2":"^9.0.2","@vue/tsconfig":"^0.9.1","@tsconfig/node24":"^24.0.4","semantic-release":"^25.0.9","eslint-plugin-vue":"~10.9.2","json-schema-typed":"^8.0.2","vue-eslint-parser":"^10.4.1","eslint-plugin-oxlint":"~1.69.0","eslint-config-prettier":"^10.1.8","@vue/eslint-config-typescript":"^14.8.0"},"_npmOperationalInternal":{"tmp":"tmp/json-schema-viewer_1.0.0_1786541482020_0.5438149515009039","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@educorvi/json-schema-viewer","version":"1.0.1","description":"Generate interactive static documentation for a JSON Schema.","type":"module","bin":{"json-schema-viewer":"bin/json-schema-viewer.mjs"},"scripts":{"dev":"vite","build":"run-p type-check \"build-only {@}\" --","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --build","lint":"run-s \"lint:*\"","lint:oxlint":"oxlint . --fix","lint:eslint":"eslint . --fix --cache","format":"prettier --write --experimental-cli src/","release":"semantic-release"},"dependencies":{"@primevue/themes":"^4.5.4","@vitejs/plugin-vue":"^6.0.7","highlight.js":"^11.11.1","primevue":"^4.5.5","vite":"^8.0.16","vue":"^3.5.38","vue-router":"^5.1.0"},"devDependencies":{"@tsconfig/node24":"^24.0.4","@types/node":"^24.13.2","@vue/eslint-config-typescript":"^14.8.0","@vue/tsconfig":"^0.9.1","eslint":"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-oxlint":"~1.69.0","eslint-plugin-vue":"~10.9.2","jiti":"^2.7.0","json-schema-typed":"^8.0.2","npm-run-all2":"^9.0.2","oxlint":"~1.69.0","prettier":"3.8.4","semantic-release":"^25.0.9","typescript":"~6.0.0","vue-eslint-parser":"^10.4.1","vue-tsc":"^3.3.5"},"engines":{"node":"^22.18.0 || >=24.12.0"},"packageManager":"yarn@4.18.0","gitHead":"e2e56fd0333943ea00446026975496fe9f9d961f","_id":"@educorvi/json-schema-viewer@1.0.1","_nodeVersion":"24.19.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-nQchN409zsKXUWSMgIiHkjzPICHts72lBkzT6e1KHjhzpBFDaIs4ttqplB6pP2/myUBtDfijiwJFOB6B87uaDg==","shasum":"eb1988e551ea950290288fc8ccbd10f9f38c836f","tarball":"https://registry.npmjs.org/@educorvi/json-schema-viewer/-/json-schema-viewer-1.0.1.tgz","fileCount":17,"unpackedSize":41354,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAUFHnNORYaCAl4k2vm8bJQ3tAZM4FNGa65RTjEMmdGZAiEA76Jfu7Xtw1e3HF8MoUyCAQ65z7KJ8xZY/DCJprErqJY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f19c690b-da7d-4f11-9a9c-25941d2a1f85"}},"directories":{},"maintainers":[{"name":"neferin","email":"julian@pollinger.dev"},{"name":"educorvi-dev","email":"developers@educorvi.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/json-schema-viewer_1.0.1_1786965284794_0.8079722461438419"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T13:31:21.845Z","modified":"2026-08-17T11:14:45.818Z","1.0.0":"2026-08-12T13:31:22.158Z","1.0.1":"2026-08-17T11:14:44.966Z"},"description":"Generate interactive static documentation for a JSON Schema.","maintainers":[{"name":"neferin","email":"julian@pollinger.dev"},{"name":"educorvi-dev","email":"developers@educorvi.de"}],"readme":"# JSON Schema Explorer\n\nInteractive documentation UI for JSON Schema. This project is a Vue 3 + Vite single-page app that renders a schema as browsable documentation, with route-based navigation into nested nodes and optional loading of external schemas at runtime.\n\n## What It Does\n\n- Renders schema metadata such as `title`, `description`, `type`, enums, constants, patterns, and validation constraints.\n- Lets you drill into `properties`, `items`, `definitions`, `$defs`, `anyOf`, `oneOf`, and `allOf`.\n- Shows required properties and whether `additionalProperties` are allowed.\n- Resolves internal references and supports loading a schema from a remote URL via query string.\n- Includes a collapsible raw JSON view with syntax highlighting.\n- Supports light, dark, and system theme modes.\n\n## Requirements\n\n- Node.js `^22.18.0 || >=24.12.0`\n- Yarn `4.17.0`\n\n## Use with npx\n\nGenerate a self-contained static viewer for a schema:\n\n```sh\nnpx json-schema-viewer ./path/to/schema.json --out-dir ./dist\n```\n\nThe output directory contains the generated `index.html` and bundled assets and can be\nserved by any static web server. The output defaults to `./dist` when `--out-dir` is omitted.\n\nFor a locally checked-out copy of this package, the equivalent command is:\n\n```sh\nyarn json-schema-viewer ./path/to/schema.json --out-dir ./dist\n```\n\n## Install\n\n```sh\nyarn\n```\n\n## Run Locally\n\n```sh\nyarn dev\n```\n\nThe Vite dev server will start the app locally. By default, the app renders the schema embedded at build time.\n\n## Provide a Schema\n\nThe app reads the default schema at build/dev time through the Vite environment handling in `vite.config.ts`.\n\n### Option 1: Load from a file\n\n```sh\nVITE_JSON_SCHEMA_PATH=./path/to/schema.json yarn dev\n```\n\n### Option 2: Inline the schema JSON\n\n```sh\nVITE_JSON_SCHEMA='{\"title\":\"Example\",\"type\":\"object\"}' yarn dev\n```\n\n`VITE_JSON_SCHEMA_PATH` takes precedence when both variables are set.\n\n## Runtime Usage\n\n### Browse the bundled schema\n\nOpen the app root:\n\n```text\n/\n```\n\nNavigation is route-based, so deeper paths map directly to schema segments, for example:\n\n```text\n/properties/user\n/definitions/Address\n/$defs/Profile\n/items\n```\n\n### Load an external schema\n\nPass a schema URL through the `url` query parameter:\n\n```text\n/?url=https://example.com/schema.json\n```\n\nThe viewer will fetch that schema in the browser and keep route navigation working against the loaded document.\n\nThe remote endpoint must allow browser access from your app origin, otherwise the request will fail due to CORS.\n\n## Scripts\n\n- `yarn dev` starts the Vite development server.\n- `yarn build` runs type-checking and creates a production build.\n- `yarn preview` serves the production build locally.\n- `yarn lint` runs Oxlint and ESLint with autofix enabled.\n- `yarn format` formats files under `src/` with Prettier.\n\n## Build\n\n```sh\nyarn build\n```\n","readmeFilename":"README.md"}