From 7f3bb834e7e8f5abf7ab517593897023c2deb8a9 Mon Sep 17 00:00:00 2001
From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com>
Date: Thu, 17 Sep 2026 17:31:50 -0400
Subject: [PATCH 1/5] feat: add document validation block
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
package.json | 1 +
packages/cli/README.md | 10 +-
packages/cli/src/pipeline.ts | 7 +-
packages/core/docs/blocks.md | 6 +
packages/core/docs/usage.md | 40 ++++++
packages/core/package.json | 1 +
packages/core/src/blocks/validateBlock.ts | 80 ++++++++++++
packages/core/src/index.ts | 1 +
packages/core/src/types/gltf-validator.d.ts | 30 +++++
packages/core/vite.config.ts | 7 +-
pnpm-lock.yaml | 11 ++
tests/bundle/browserConsumerBundle.test.ts | 6 +-
tests/e2e/cli.test.ts | 46 ++++++-
tests/integration/validate.test.ts | 130 ++++++++++++++++++++
tests/unit/validateBlock.test.ts | 110 +++++++++++++++++
15 files changed, 480 insertions(+), 6 deletions(-)
create mode 100644 packages/core/src/blocks/validateBlock.ts
create mode 100644 packages/core/src/types/gltf-validator.d.ts
create mode 100644 tests/integration/validate.test.ts
create mode 100644 tests/unit/validateBlock.test.ts
diff --git a/package.json b/package.json
index 59c066f..9cb1b20 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.6",
"globals": "^17.7.0",
+ "gltf-validator": "2.0.0-dev.3.10",
"prettier": "^3.9.6",
"typedoc": "^0.28.20",
"typescript": "^6.0.3",
diff --git a/packages/cli/README.md b/packages/cli/README.md
index 5ed256a..ccc69f5 100644
--- a/packages/cli/README.md
+++ b/packages/cli/README.md
@@ -13,6 +13,7 @@ A pipeline is a sequence of operations applied to a 3D asset. The CLI allows you
```sh
node-assets pipeline input.gltf output.glb
node-assets pipeline input.glb ktx2 draco output.glb
+node-assets pipeline input.glb validate output.glb
```
The command syntax is:
@@ -25,10 +26,17 @@ node-assets pipeline [operation...]