20 lines
1.1 KiB
Markdown
20 lines
1.1 KiB
Markdown
# P5B ZIP Import Design
|
|
|
|
`scripts/lib/native-road-package.js` becomes the single host adapter. It resolves the config-relative
|
|
ZIP path, hashes it, validates central-directory entry names and metadata, and extracts only accepted
|
|
regular files to `_pipeline/native-road-import/<sha256>/`. It validates the unpacked manifest and
|
|
returns an immutable package descriptor:
|
|
|
|
```text
|
|
{ zipFile, zipRecord, rootDir, manifest, records }
|
|
```
|
|
|
|
The descriptor replaces `area.outputs.nativeRoadDir` as native input for Blender, native preview traffic,
|
|
diagnostics and stage manifests. The configured ZIP and unpacked cache are inputs, never published area
|
|
outputs. Cache invalidation is by ZIP SHA-256; cleanup only deletes importer-owned hash directories.
|
|
|
|
The importer rejects any non-root-flat layout, duplicate path, symlink, unsupported compression/error,
|
|
path traversal, invalid manifest, area mismatch or declared/published mismatch before Blender starts.
|
|
The native compiler CLI dependency and host-owned `nativeRoad` compilation options are removed. Legacy
|
|
`osm2streets` remains an explicit separate provider.
|