
Research
/Security News
60 Malicious Ruby Gems Used in Targeted Credential Theft Campaign
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
docx4js-fork
Advanced tools
*please note 3.x is totally different from 2.x, everything is breaking change.
*please note 2.x is totally different from 1.x, everything is breaking change.
docx4js is a javascript docx parser.
The original goal is to support docx, pptx, and xlsx, but it's a huge work, so I limited to docx so far.
In sake of performance, the implementation doesn't keep parsed structure. It only traverse docx content, and identify docx model, then call passed visitors one by one. No matter content, and styles, are all with the same stratigy. This method makes it do more with less memory.
There are lots of information in docx, but the client application usually only cares about part of them, such as content only, structure only, some styles, or some attributes. The client application is able to handle special word model by TYPE.
Attributes of word model usually affects styles, but I don't understand all of them, so I'm lazy just to iterate every attribute, and some unknown child elements, so client application is possible to catch all information you know.
identified models
style
import docx4js from "docx4js" docx4js.load("~/test.docx").then(docx=>{ //you can render docx to anything (react elements, tree, dom, and etc) by giving a function docx.render(function createElement(type,props,children){ return {type,props,children} }) //or use a event handler for more flexible control const ModelHandler=require("docx4js/openxml/docx/model-handler").default class MyModelhandler extends ModelHandler{ onp({type,children,node,...}, node, officeDocument){ } } let handler=new MyModelhandler() handler.on("*",function({type,children,node,...}, node, officeDocument){ console.log("found model:"+type) }) handler.on("r",function({type,children,node,...}, node, officeDocument){ console.log("found a run") }) docx.parse(handler) //you can change content on docx.officeDocument.content, and then save docx.officeDocument.content("w\\:t").text("hello") docx.save("~/changed.docx") }) //you can create a blank docx docx4js.create().then(docx=>{ //do anything you want docx.save("~/new.docx") })
* ~~identify OLE object~~
GPL
FAQs
javascript docx parser
The npm package docx4js-fork receives a total of 0 weekly downloads. As such, docx4js-fork popularity was classified as not popular.
We found that docx4js-fork demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.