Files
OpenNoodl/packages/noodl-editor
dishant-kumar-thakur d54e2a55a0 feat(phase-10): STRUCT-003 import engine core
Task: STRUCT-003
Branch: cline-dev-dishant
Cross-branch notes: none -- no shared dependencies with Richard phase 9/6 work

- ProjectImporter class (pure, filesystem-agnostic)
- Converts v2 multi-file format back to legacy project.json
- unflattenNodes: reconstructs recursive tree from flat NodeV2 array (two-pass)
- toLegacyName: uses preserved component.path for perfect round-trip fidelity
- Metadata merge: routes/styles merged back into project.metadata
- stateParameters -> stateParamaters reversal (legacy typo preserved)
- Non-fatal warnings: component failures collected, not thrown
- 55 unit tests in tests/io/ProjectImporter.test.ts
  - unflattenNodes: 11 cases
  - toLegacyName: 4 cases
  - ProjectImporter.import(): 20 cases
  - Round-trip (export -> import): 20 cases
- Updated tests/io/index.ts to export importer tests
- Updated PROGRESS-dishant.md: STRUCT-001/002/003 all marked complete
2026-02-19 01:07:22 +05:30
..
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00
2024-12-29 10:01:32 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00
2024-01-26 11:52:55 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00