{"maintainers":[{"email":"dev@sheetjs.com","name":"anonymous"}],"keywords":["word"],"dist-tags":{"latest":"0.4.0"},"author":{"name":"sheetjs"},"description":"Word Processing Document library","readme":"# [SheetJS js-word](http://wordjs.com)\n\nParser and writer for various word processing doc formats. Pure-JS cleanroom\nimplementation from official specifications, related documents, and test files.\nEmphasis on parsing and writing robustness, cross-format feature compatibility\nwith a unified JS representation, and maximal browser compatibility.\n\n\n## Test Files\n\nTest files should be placed in the `test_files` directory, in the appropriate\nsubdirectory for the filetype.  For example, DOCX files should be placed in\n`test_files\\docx\\wordjs` and RTF files should be in `test_files\\rtf\\wordjs`.\n\nEvery test file should be accompanied by a plain text `.txt` representation\nwhose filename is the original filename appended with `.txt`.  For example, the\nDOCX file `test_files\\docx\\wordjs\\foo.docx` pairs with the plain text file `test_files\\docx\\wordjs\\foo.docx.txt`\n\n**Generating Baselines using Word for Windows**\n\n0. Ensure you have PowerShell version 7.0 or greater\n1. Run `Set-ExecutionPolicy RemoteSigned` OR `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass` in Powershell (PS) Admin 7.0\n2. Have the PS script in the root of the repo\n3. Run `.\\generate_txt.ps1 .\\test_files\\EXT_TYPE\\FOLDER` (ex. `.\\generate_txt.ps1 .\\test_files\\docx\\apachepoi`)\n\nOn first run, if a test file does not have an accompanying `.txt` file, the\nscript will open Word and save the file as plaintext.  Word will rapidly open\nand close during this process.\n\nThe script will not attempt to open Word or try to generate `.txt` files if they\nalready exist.  After a clean run, Word should not open on future runs.\n\nThe script will halt for documents that are broken in certain ways.  Word will\ndisplay a prompt, stalling the automated process.  Those documents can be\nskipped by creating a `.skip` file as described below.\n\n\n**Skipping Files**\n\nThe script will look for files with the `.skip` extension and skip processing\nthe base file.  For example, if `test_files\\docx\\wordjs\\Hello.docx.skip` exists,\nthe script will not attempt to process `test_files\\docx\\wordjs\\Hello.docx`\n\nWhen the UI blocks (for example, on a VBA error with `ThisDocument`), the\ncorresponding `.skip` file should be created manually.  The script merely tests\nif the file exists, so the content is immaterial and a single letter suffices.\n\n**Generating `.skip` files**\n\nThe script will attempt to open password-protected documents using the password\n\"WordJS\".  The script will not halt but it will not generate a text file.  With\na few adjustments, the script can generate `.skip` files for those cases\n\n1. Uncomment [L27-29](https://github.com/SheetJS/js-word/blob/master/generate_txt.ps1#L27-L29) in the script\n2. Comment [L26](https://github.com/SheetJS/js-word/blob/master/generate_txt.ps1#L26) in the script\n3. Rerun the script\n4. Undo Step 1 and 2\n\n\n## License\n\nPlease consult the attached LICENSE file for details.  All rights not explicitly\ngranted by the Apache 2.0 License are reserved by the Original Author.\n\n\n## References\n\n<details>\n  <summary><b>OSP-covered Specifications</b> (click to show)</summary>\n\n - `MS-CFB`: Compound File Binary File Format\n - `MS-DOC`: Word (.doc) Binary File Format\n - `RTF`: Rich Text Format\n\n</details>\n\n- ISO/IEC 29500:2012(E) \"Information technology — Document description and processing languages — Office Open XML File Formats\"\n- Open Document Format for Office Applications Version 1.3 (25 December 2019)\n\n[![Analytics](https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/js-word?pixel)](https://github.com/SheetJS/js-word)\n","repository":{"type":"git","url":"git://github.com/SheetJS/js-word.git"},"bugs":{"url":"https://github.com/SheetJS/js-word/issues"},"license":"Apache-2.0","versions":{"0.0.1":{"name":"word","version":"0.0.1","description":"Contains functions that assist in working with strings.","keywords":["string helper","text helper","string","text"],"author":{"name":"Veselin Todorov","email":"hi@vesln.com"},"dependencies":{"package":"1.0.0","coffee-script":"1.2.0","lingo":"0.0.4","super":"0.0.1"},"devDependencies":{"mocha":"0.3.3","should":"0.3.2"},"repository":{"type":"git","url":"git://github.com/vesln/word.git"},"homepage":"http://github.com/vesln/word","scripts":{"test":"make test"},"main":"index","engines":{"node":">= 0.6.0 < 0.7.0"},"_npmUser":{"name":"anonymous","email":"hi@vesln.com"},"_id":"word@0.0.1","_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"a275b44df0a48e0a3389ab9eb5cd2916bbf9341b","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.0.1.tgz","integrity":"sha512-zIit8UEWX5LJX/9lsPRVn0sIE8dgNoQ1XAt/oZFjzWu3Q5YiFGRMrmWi0VwGn+WcMxSR/VGX09NArVlya4m61g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQR4XWhKjTa46qcm1CZRJi3NLne4yqhX8vWGmApg1pTgIhANWoJszXpT/3wd8T/jXPztVRccBHwDiOrvKOqevvs8w2"}]},"maintainers":[{"name":"anonymous","email":"hi@vesln.com"}],"directories":{}},"0.1.0":{"name":"word","version":"0.1.0","description":"Contains functions that assist in working with strings.","keywords":["string helper","text helper","string","text"],"author":{"name":"Veselin Todorov","email":"hi@vesln.com"},"dependencies":{"package":"1.0.0","coffee-script":"1.2.0","lingo":"0.0.4","super":"0.0.1","slug":"0.1.1"},"devDependencies":{"mocha":"0.3.3","should":"0.3.2"},"repository":{"type":"git","url":"git://github.com/vesln/word.git"},"homepage":"http://github.com/vesln/word","scripts":{"test":"make test"},"main":"index","engines":{"node":">= 0.6.0 < 0.7.0"},"_npmUser":{"name":"anonymous","email":"hi@vesln.com"},"_id":"word@0.1.0","_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"455b88b0e88cba18f926d79e7465369b5547705b","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.1.0.tgz","integrity":"sha512-VQds6kvt2oACqmd2Uu4EFnsxuICWHUwbbnIvxkVSeA9h7zH11NFxHH1Co2yD7jZPPynLY1zeoGJcYVqrQ5vX+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID7fSK+SHmM15YggPknW0QzX7nCeOOnm41RiHdFQO/2zAiEApJsTHyyW33gj+8dmIDFK+breaNVlYeBrwtKXWt1FGcY="}]},"maintainers":[{"name":"anonymous","email":"hi@vesln.com"}],"directories":{}},"0.2.1":{"name":"word","version":"0.2.1","description":"Contains functions that assist in working with strings.","keywords":["string helper","text helper","string","text"],"author":{"name":"Veselin Todorov","email":"hi@vesln.com"},"dependencies":{"package":"1.0.0","lingo":"0.0.4","super":"0.0.1","slug":"0.1.1"},"devDependencies":{"mocha":"0.3.3","should":"0.3.2","coffee-script":"1.2.0"},"repository":{"type":"git","url":"git://github.com/vesln/word.git"},"homepage":"http://github.com/vesln/word","scripts":{"test":"cake test","pre-publish":"cake build"},"main":"./lib/word","engines":{"node":">= 0.6.0 < 0.7.0"},"_npmUser":{"name":"anonymous","email":"hi@vesln.com"},"_id":"word@0.2.1","_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"b6261499c715bf85acaa12e203b2fac95d46aa35","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.2.1.tgz","integrity":"sha512-SMKcCKXyKELfK/ObrcN8bNrgJcgtHdNHOXr0x2SWBM3gfjVowh+/hKz30dx06yEdYqmcrlu0UkKbmrzQQhaFkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDf1HVQG+7kvrMYdD8aGAZcPkbeXr3LbiqjgclsM0Lw5QIgQpUgWOCSKl3AotltaL8oxuTo3k3rEJg37FC9TGirTGM="}]},"maintainers":[{"name":"anonymous","email":"hi@vesln.com"}],"directories":{}},"0.2.2":{"name":"word","version":"0.2.2","description":"Contains functions that assist in working with strings.","keywords":["string helper","text helper","string","text"],"author":{"name":"Veselin Todorov","email":"hi@vesln.com"},"dependencies":{"package":"1.0.0","lingo":"0.0.4","super":"0.0.1","slug":"0.1.1"},"devDependencies":{"mocha":"0.3.3","should":"0.3.2","coffee-script":"1.2.0"},"repository":{"type":"git","url":"git://github.com/vesln/word.git"},"homepage":"http://github.com/vesln/word","scripts":{"test":"cake test","prepublish":"cake build","postpublish":"cake clean"},"main":"./lib/word","engines":{"node":">= 0.6.0 < 0.7.0"},"_npmUser":{"name":"anonymous","email":"hi@vesln.com"},"_id":"word@0.2.2","_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"d4896ea9b21d796fee27ea1fd7277438577bd136","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.2.2.tgz","integrity":"sha512-vpClppMxF+PZeTUVPUQyNtfEaXy6JDCFWoFB8WFYUOj9IJ6Wx7YAziag9uSkIFyd4lkfOD4/NDuv8Bz3jjSo9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGqDURRzJgcLyikJRJ6HWr43JViXlqeF91/LFo1m/2a8AiB4YBj3UA59uyzAVhAfsbk9XJfm8+AStxXlnpEmjbpGFA=="}]},"maintainers":[{"name":"anonymous","email":"hi@vesln.com"}],"directories":{}},"0.2.3":{"name":"word","version":"0.2.3","description":"Contains functions that assist in working with strings.","keywords":["string helper","text helper","string","text"],"author":{"name":"Veselin Todorov","email":"hi@vesln.com"},"dependencies":{"lingo":"0.0.4","super":"0.0.1","slug":"0.2.2"},"devDependencies":{"mocha":"0.3.3","should":"0.3.2","coffee-script":"1.2.0"},"repository":{"type":"git","url":"git://github.com/vesln/word.git"},"homepage":"http://github.com/vesln/word","scripts":{"test":"cake test","prepublish":"cake build","postpublish":"cake clean"},"main":"./lib/word","engines":{"node":">= 0.6.0 < 0.7.0"},"_npmUser":{"name":"anonymous","email":"hi@vesln.com"},"_id":"word@0.2.3","_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"711e38d045912fbddc9c3934d2f14764fa2eee96","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.2.3.tgz","integrity":"sha512-/MQTCEARDEhBqaept00n6rmtgmyf6sqkYGWve5x3rf09vgYhdb5PwKs8ey/d9Y6s9YZtmW67Y6DLlWg+xumsVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE3LwOJmb6raxloAMEQJXyrnjRd43ITzU2PslTe1WvBjAiEAuYc3J9ti55vQG7WOsHzJmvNrG+YhJEKOJOmR1okIBFM="}]},"maintainers":[{"name":"anonymous","email":"hi@vesln.com"}],"directories":{}},"0.2.4":{"name":"word","version":"0.2.4","description":"Contains functions that assist in working with strings.","keywords":["string helper","text helper","string","text"],"author":{"name":"Veselin Todorov","email":"hi@vesln.com"},"dependencies":{"lingo":"0.0.4","super":"0.0.1","slug":"0.2.2"},"devDependencies":{"mocha":"0.3.3","should":"0.3.2","coffee-script":"1.2.0"},"repository":{"type":"git","url":"git://github.com/vesln/word.git"},"homepage":"http://github.com/vesln/word","scripts":{"test":"cake test","prepublish":"cake build","postpublish":"cake clean"},"main":"./lib/word","engines":{"node":">= 0.6.0 < 0.7.0"},"_npmUser":{"name":"anonymous","email":"hi@vesln.com"},"_id":"word@0.2.4","_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.0","_defaultsLoaded":true,"dist":{"shasum":"6f41892598de491e42f403fa9c592c7200c3aab7","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.2.4.tgz","integrity":"sha512-QDjgU/KcvrpL0fCiYBA2/69Fuujw0ML++w9rBdDC+dZpm4ttCTNEo3Aunndt9UxLR5GCnHXWXMk1uZR9gqobuw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnU/JnFMlx0z+dHqmpRz1DqkWATF2j+PiwSh7kCdpqTQIgawg3zXHZHUfPGC+qWa10RTIjKvdva9WjBZmY1tjSvC4="}]},"maintainers":[{"name":"anonymous","email":"hi@vesln.com"}],"directories":{}},"0.3.0":{"name":"word","version":"0.3.0","author":{"name":"sheetjs"},"description":"Word Processing Document library","keywords":["word"],"main":"./word","dependencies":{},"devDependencies":{},"repository":{"type":"git","url":"git://github.com/SheetJS/js-word.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"homepage":"https://wordjs.com/","bugs":{"url":"https://github.com/SheetJS/js-word/issues"},"license":"Apache-2.0","engines":{"node":">=0.8"},"gitHead":"08bf4fd23b8fa78c19661915e24d57459bf00bfa","_id":"word@0.3.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"anonymous","email":"dev@sheetjs.com"},"dist":{"integrity":"sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==","shasum":"8542157e4f8e849f4a363a288992d47612db9961","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.3.0.tgz","fileCount":5,"unpackedSize":14085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+Df4CRA9TVsSAnZWagAAfS0QAJRH88O2VfdL1zK9BbFa\n/6q9WgF83G5NSKr5GfXjgEDJaNOZvTnWTWx7ZDtUpx/Xh7X9v8AbLzk0iSMN\nOuzeCARJWXrq65B+iUV/h5BOshgomHDgYnGdrVnJdf19LOJDROl16hSg7xNe\naxya9Fn8GMuoDDW7Fyq04OpGcZK9beioLUV3Whl7Odk+HPJuTIj0x6eidk39\nr38LH72fRDzUDMyjyI9GLDQzGLD8dHwHbxl+gikP1vBd+HRQXobzEl77or35\neWer9k9GCKoaig9UPP6rElJ7rp+q8rbvMVM9ZHG3y2QCAafqNKAVCCk/XUua\nGhgyk/XPo25kLFgjYOf1c5sh7xHB0VM5NX+P/CUFmH5+6SPhbfoI40RvE28e\nx2Lu8QXYnDksbHA4VICIIY5CBbApcHJRJRMBKluQOjVukQ5ekqcu7ooeW5AA\nAIztpy+I/w2puzqIkfEiSnq6QrUOsT13alBUlrxGfliFshWfKLBaLV018Mpb\njbpExf9hXru8k7mxFpNyjqR7SD8XzTzreZlz+UOqxBmeIO8LbM1xwTn3VCzJ\nRTi1FhMHa8yKKdVtU5acarKlfzm6pDT+SjGBOvEEUnf3KuZtehN+i2ssIxi9\ntBQUTBvPiCECXwf3ixl4uFoUOww6Tc8tlTkhjOEvScOQ6+hZbmkp8nBLhj9g\nuMXD\r\n=U2wx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6Wr35gw5H4Qw2G9jS5g7BWyWN7XQPRqRFQR5H/udRZgIgBAEZ3AUofPOtMaEgTV64uvh9dRJ5Slt5HqBsu/5EaS8="}]},"maintainers":[{"email":"dev@sheetjs.com","name":"anonymous"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/word_0.3.0_1593325559907_0.2789178467352931"},"_hasShrinkwrap":false},"0.4.0":{"name":"word","version":"0.4.0","author":{"name":"sheetjs"},"description":"Word Processing Document library","keywords":["word"],"main":"./word","types":"./dist/typings/index.d.ts","dependencies":{"cfb":"^1.2.0","jsdom":"^16.2.2"},"devDependencies":{"@types/jsdom":"^16.2.3","@types/mocha":"^7.0.2","@types/node":"^14.0.20","glob":"^7.1.6","mocha":"^8.0.1","ts-node":"^8.10.2","typescript":"^3.9.6"},"repository":{"type":"git","url":"git://github.com/SheetJS/js-word.git"},"scripts":{"build:cjs":"tsc -p tsconfig/tsconfig.cjs.json","build:types":"tsc -p tsconfig/tsconfig.types.json","test":"mocha -r ts-node/register test.ts"},"homepage":"https://wordjs.com/","bugs":{"url":"https://github.com/SheetJS/js-word/issues"},"license":"Apache-2.0","engines":{"node":">=0.8"},"gitHead":"4a9cbcafc6639362857ee46b1d0bc305e0c90dc9","_id":"word@0.4.0","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Aq84KjS7Z9HSU14qf4l/NEouaqfJAZtE9zEz7TIvw9V/3oJeUbjQwhz7ggqbL7I7REt4Bz+9HuCWsBO5N7xChw==","shasum":"691272aaecb9da96388fc873d2ecb48a17cbee54","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/word/-/word-0.4.0.tgz","fileCount":52,"unpackedSize":84515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFy3vCRA9TVsSAnZWagAAKwQP/1Q5YOl+nFwTsFcQ5oNA\n9G9DdH8xN+LZ2qr4nzeuK43F5HeouaXlFwObL6kYnmOpqe8sh5bz2E06gVxw\nH0w/4XT1EPOqaMCC3uWk7X1djk7ZHz6ffdbI15Z86WJ0j32g2aXPxqNAMvMT\nEatQAGe9CYWnZ+vO+cVGPEvT1JkiebgrspmSP+1hIA6KApawEK8UqiJ5rkEv\nGN7+tZLNP7W/+rqTZddo3saB57vS/Or8gdp9/vWbCwUQqcdy3+HVOtMz4KpV\nOoQeAypgtkrIBxqWxuRyvyo+0PpcLN6vL6zu/sgIqd551baHo3mj8hofS8u7\nKccIUrhdbTbpHdG6h2O1mAX9Bd+wB0h3SxJxcRO+IzFu9nr3l9UOOIO8P9zj\nanFY5bNXOW6s/oog1wusoHPD4SDWSllb8uTxE0K+Z08/q07KAY6T9rUizVCD\nM6w9vhA6zzkp4chp//ESU8fPY3UcvbFNZfs6ImZOpoZyPrM4T3lfLcak5Zjv\nGkEmD6MQif/mhY2eO4RAZRGVCkh+A3UmjtfgPThxdJS5rJeKhj0be3Q2uHMr\nmz1rzQ1m0vzC5vyE6/BESkQ2zolA1nbJVj9S65VIG9D5FjMkDGLPgTJeJv8S\n0jYFTYjEn0KbRq3iOgUPuBYRAHzg4/esQ14CTV/LVUUl+OA5NPdrV2vSbI85\nHXwW\r\n=Ines\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA8YP4xbEbeWP3FE9elSpKTT3+HTlTG9T7HHjZvA2FpAAiEAqkMlRE82zVtIEn9xZMZqus1l3yfci253sqB5Im7UR4E="}]},"maintainers":[{"email":"dev@sheetjs.com","name":"anonymous"}],"_npmUser":{"name":"anonymous","email":"dev@sheetjs.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/word_0.4.0_1595354607057_0.15959281057664532"},"_hasShrinkwrap":false}},"name":"word","time":{"modified":"2022-06-29T03:09:36.152Z","created":"2012-01-04T14:18:14.335Z","0.0.1":"2012-01-04T14:18:16.010Z","0.1.0":"2012-01-04T19:11:15.910Z","0.2.0":"2012-01-05T06:37:02.508Z","0.2.1":"2012-01-05T06:47:03.947Z","0.2.2":"2012-01-06T09:27:27.023Z","0.2.3":"2012-01-14T14:55:23.693Z","0.2.4":"2012-01-22T16:32:31.818Z","0.3.0":"2020-06-28T06:26:00.106Z","0.4.0":"2020-07-21T18:03:27.187Z"},"readmeFilename":"README.md","homepage":"https://wordjs.com/"}