How epfromer/pst-extractor works
pst-extractor is a Node.js library for reading Outlook/Exchange PST files and exposing their contents as typed objects. The principal workflow is: a consumer opens a PSTFile, obtains its root folder, walks subfolders and messages, then reads message fields or streams attachment data. Parsing uses file/index access, node streams and table decoding before object dispatch. The README also advertises calendar, contact, task and other object access. The sampled excerpts support the main navigation and decoding links; wiring for some unsampled object types is therefore shown only where documented or directly evidenced.
Main entry points: PSTFolder.class.ts Folder Walker · PSTNodeInputStream.class.ts Node Stream · PSTUtil.class.ts Object Dispatcher · PSTFile.class.ts PST File
Components 21
Library Entry
- Public Exports
src/index.ts
PST Parsing
- PST File
src/PSTFile.class.ts - Message Store
src/PSTMessageStore.class.ts
Content Objects
- Folder Walker
src/PSTFolder.class.ts - Object Dispatcher
src/PSTUtil.class.ts - Email Message
src/PSTMessage.class.ts - Attachments
src/PSTAttachment.class.ts - Contacts
src/PSTContact.class.ts - Calendar Items
src/PSTAppointment.class.ts - Tasks
src/PSTTask.class.ts - Activities
src/PSTActivity.class.ts - Recurrence Data
src/RecurrencePattern.class.ts
Decode Primitives
- Property Access
src/PSTObject.class.ts - Node Stream
src/PSTNodeInputStream.class.ts - Property Tables
src/PSTTableBC.class.ts - Row Tables
src/PSTTable7C.class.ts - Descriptor Index
src/DescriptorIndexNode.class.ts - Descriptor Data
src/PSTDescriptorItem.class.ts - Offset Index
src/OffsetIndexItem.class.ts - Format Utilities
src/PSTUtil.class.ts
Other components
- Library Consumer
Connections 27
- Library Consumer → Public Exports: uses API
- Library Consumer → PST File: opens PST
- PST File → Message Store: loads store
- Library Consumer → Folder Walker: gets root
- Folder Walker → Folder Walker: walks children
- Folder Walker → Object Dispatcher: dispatches child
- Object Dispatcher → Folder Walker: creates folder
- Object Dispatcher → Email Message: creates message
- Object Dispatcher → Contacts: creates contact
- Object Dispatcher → Calendar Items: creates appointment
- Email Message → Property Access: inherits access
- Contacts → Email Message: extends message
- Calendar Items → Email Message: extends message
- Calendar Items → Recurrence Data: exposes recurrence
- Email Message → Row Tables: reads recipients
- Folder Walker → Row Tables: reads folder rows
- Folder Walker → Property Tables: uses properties
- Property Access → Property Tables: reads property rows
- Attachments → Node Stream: opens attachment data
- Node Stream → PST File: reads file bytes
- PST File → Descriptor Index: loads index nodes
- PST File → Offset Index: loads offset nodes
- Node Stream → Descriptor Data: reads descriptor data
- Row Tables → Node Stream: decodes stream
- Property Tables → Node Stream: decodes stream
- Property Access → Format Utilities: decodes values
- Node Stream → Format Utilities: decodes bytes