{"_id":"@calvin-coomer/pst-parser","_rev":"3-54d753b0b0042ba5514caf5153c363ed","name":"@calvin-coomer/pst-parser","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.4":{"name":"@calvin-coomer/pst-parser","version":"0.0.4","type":"module","main":"./src/index.js","repository":{"url":"git+https://github.com/Calvin-Coomer/pst-parser.git"},"gitHead":"0171e73bc2bd13c986d31a8b2278b1fc9a15c9ea","description":"This is a parser for Outlook PST files written from scratch in pure JavaScript.","bugs":{"url":"https://github.com/Calvin-Coomer/pst-parser/issues"},"homepage":"https://github.com/Calvin-Coomer/pst-parser#readme","_id":"@calvin-coomer/pst-parser@0.0.4","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-cTHOOo/3ESRjqUzhYzEeofL+AFTHHWLIhfPwDdt+nQ0kGZiU/qhWwBWWF1Kvmm3Z2XUbrM2HJcT4vTlEoU3L+A==","shasum":"8765cc0d8702ef1a1b1b611e8b5461e25eb29ebc","tarball":"https://registry.npmjs.org/@calvin-coomer/pst-parser/-/pst-parser-0.0.4.tgz","fileCount":61,"unpackedSize":377322,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClrpYTE7PHR3uPs2A99DIxA//78St5PuaLNzQ9ai6AUgIhAL11gTZzG9F04JGU/ZgtUbMzgXTo+UWRNCE+DWKLDzPf"}]},"_npmUser":{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"},"directories":{},"maintainers":[{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pst-parser_0.0.4_1698668000165_0.31427168266356387"},"_hasShrinkwrap":false},"0.0.5":{"name":"@calvin-coomer/pst-parser","version":"0.0.5","type":"module","main":"./src/index.js","repository":{"url":"git+https://github.com/Calvin-Coomer/pst-parser.git"},"dependencies":{"nodemailer":"^6.9.7"},"gitHead":"0171e73bc2bd13c986d31a8b2278b1fc9a15c9ea","description":"This is a parser for Outlook PST files written from scratch in pure JavaScript.","bugs":{"url":"https://github.com/Calvin-Coomer/pst-parser/issues"},"homepage":"https://github.com/Calvin-Coomer/pst-parser#readme","_id":"@calvin-coomer/pst-parser@0.0.5","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-9vtSRL7CHpHhOS0S9k+v9LIlZPK7V3kzw1WO1ljKMVv17LFUh9e0JsJK8GyKbIS/qWZYLfSf9IaGpDatEtyjuQ==","shasum":"0e0760911fba1e4633dfcfd85264de96043522e4","tarball":"https://registry.npmjs.org/@calvin-coomer/pst-parser/-/pst-parser-0.0.5.tgz","fileCount":61,"unpackedSize":382690,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCebe27AMXicYFAG3Moecp1c4pl8Do2hOlwoeWTlqKVYQIhAJmuZuWuU+TA6PgEyqPUMPUnWy01QneNTfBL1iFAFgSX"}]},"_npmUser":{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"},"directories":{},"maintainers":[{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pst-parser_0.0.5_1698741298204_0.027505127600333523"},"_hasShrinkwrap":false},"0.0.6":{"name":"@calvin-coomer/pst-parser","version":"0.0.6","type":"module","main":"./src/index.js","repository":{"url":"git+https://github.com/Calvin-Coomer/pst-parser.git"},"dependencies":{"nodemailer":"^6.9.7"},"gitHead":"0171e73bc2bd13c986d31a8b2278b1fc9a15c9ea","description":"This is a parser for Outlook PST files written from scratch in pure JavaScript.","bugs":{"url":"https://github.com/Calvin-Coomer/pst-parser/issues"},"homepage":"https://github.com/Calvin-Coomer/pst-parser#readme","_id":"@calvin-coomer/pst-parser@0.0.6","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-JjVR+HsHo8aSArJ0mMY6YdvoVJmiMrQckLoWpJM4JQ0O2iDpuDLD6UqgYU/oYi+XLplr+oUZfedIvqdW35dkdw==","shasum":"dec541a4dac756349a6f98c4a48cd0436652dfb2","tarball":"https://registry.npmjs.org/@calvin-coomer/pst-parser/-/pst-parser-0.0.6.tgz","fileCount":61,"unpackedSize":383207,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbGIjVHTiWfHK/8/f9IBPni2S1ttUNegnlfgzPf9usQgIhAIIw5JVnTFZYQPPd2SZ41PqWdgMYhUvvJwWs1Z6LLJuu"}]},"_npmUser":{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"},"directories":{},"maintainers":[{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pst-parser_0.0.6_1698742510959_0.05014423324217865"},"_hasShrinkwrap":false},"0.0.7":{"name":"@calvin-coomer/pst-parser","version":"0.0.7","type":"module","main":"./src/index.js","repository":{"url":"git+https://github.com/Calvin-Coomer/pst-parser.git"},"dependencies":{"nodemailer":"^6.9.7"},"gitHead":"658dac563687badb077492825cf76d4615880171","description":"This is a parser for Outlook PST files written from scratch in pure JavaScript.","bugs":{"url":"https://github.com/Calvin-Coomer/pst-parser/issues"},"homepage":"https://github.com/Calvin-Coomer/pst-parser#readme","_id":"@calvin-coomer/pst-parser@0.0.7","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-DzgHmxZJaDJwAW0nAtnw6/LB3UEwpiCc+r/nZfskhvFzuAm/uvS4bgxK5BNZsQ6qj2U7Yiih11hVrX9DX4zh+g==","shasum":"2bf72e107c43970f5650d5b7390964f0c51366f1","tarball":"https://registry.npmjs.org/@calvin-coomer/pst-parser/-/pst-parser-0.0.7.tgz","fileCount":61,"unpackedSize":383293,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICopnPhpLOPPmVydf26Ru8o9ZECTeU4Q8eu71IVc6/iIAiBdZVLaCidKkipW/8RDw7muZHzjqQOrNweVMSgP9SDBLg=="}]},"_npmUser":{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"},"directories":{},"maintainers":[{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pst-parser_0.0.7_1698759892608_0.30153541002422735"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-30T12:13:20.086Z","0.0.4":"2023-10-30T12:13:20.384Z","modified":"2023-10-31T13:44:53.071Z","0.0.5":"2023-10-31T08:34:58.441Z","0.0.6":"2023-10-31T08:55:11.145Z","0.0.7":"2023-10-31T13:44:52.885Z"},"maintainers":[{"name":"calvin-coomer","email":"calvin@tasklogix.co.za"}],"description":"This is a parser for Outlook PST files written from scratch in pure JavaScript.","homepage":"https://github.com/Calvin-Coomer/pst-parser#readme","repository":{"url":"git+https://github.com/Calvin-Coomer/pst-parser.git"},"bugs":{"url":"https://github.com/Calvin-Coomer/pst-parser/issues"},"readme":"# PST-Parser\r\n\r\nThis is a parser for Outlook PST files written from scratch in pure JavaScript.\r\n\r\n## Usage\r\n\r\n### CLI\r\n\r\nMess around with `test.js` to get a basic sanity check of the lib/PST file.\r\n\r\n    > git clone https://github.com/IJMacD/pst-parser.git\r\n    > cd pst-parser\r\n    > node ./test.js ../path/to/file.pst\r\n\r\n### Module\r\n\r\n    > yarn add pst-parser\r\n\r\nUse as a module in whatever JS module system you like (assuming it's somewhat modern).\r\n\r\nThe `PSTFile` constructor takes an `ArrayBuffer`.\r\n\r\n```js\r\nimport * as PST from \"pst-parser\";\r\n\r\nif (file instanceof File) {\r\n    const buffer = await file.arrayBuffer();\r\n\r\n    const pst = new PST.PSTFile(buffer);\r\n\r\n    const messageStore = pst.getMessageStore();\r\n    console.log(messageStore.getAllProperties());\r\n\r\n    const rootFolder = messageStore.getRootFolder();\r\n    console.log(rootFolder.getAllProperties());\r\n\r\n    if (rootFolder.hasSubfolders) {\r\n        // Get listing of subfolders\r\n        const entries = rootFolder.getSubFolderEntries();\r\n\r\n        // Get folder object for the first subfolder\r\n        const subFolder = rootFolder.getSubFolder(entries[0].nid);\r\n\r\n        console.log(subFolder.displayName);\r\n\r\n        // Get first 5 message entries\r\n        const messageEntries = subFolder.getContents(0, 5);\r\n\r\n        // Get actual message object\r\n        const message = subFolder.getMessage(messageEntries[0].nid);\r\n\r\n        console.log(message.getAllProperties());\r\n    }\r\n}\r\n```\r\n\r\n\r\n## FAQ\r\n\r\n### What can it do?\r\n\r\nIt can read some (most?) parts of a PST file.\r\n\r\n### Can it write to a PST file?\r\n\r\nNo read only.\r\n\r\n### Will this break?\r\n\r\nYes, I promise it will at some point. There's lots in the spec that's not\r\nimplemented yet, merely because I haven't run into it with the limited set of test\r\nPST files I have to hand. You might not be so lucky.\r\n\r\nThere are also tons of edge cases and particular behaviours that only come into\r\nplay in very specific situations. (e.g. The subject field has specific processing\r\ndistinct from every other type of value stored in the pst file) Most of these\r\nare not implemented.\r\n\r\n### Will this destroy my data?\r\n\r\nFortunately it shouldn't. The library is read only, so unless something goes\r\ncatastrophically wrong your data should be safe.\r\n\r\n### Can you give me a brief, very high level view of the layout, contents, structure and organisation of a PST file?\r\n\r\nSure, here you go.\r\n\r\n![PST File Layout](ref/pst%20layout.svg)","readmeFilename":"README.md"}