javascript(Firefox拡張)でAtomPubで投稿するコード書いてみた

AtomPubを使ってはてなに投稿する方法を調べている。
WSSE認証ががけっこうややこしい。結局ネットから拾ったライブラリを使ってみた。
http://rvr.typepad.com/wind/2005/07/wsse_for_javasc.html

以下のようなコードで記事が投稿できる。(ライブラリ部分除く)

atompub = (function(){
  function HatenaAtomPub(userId) {
    this.userId = userId;
  }
  HatenaAtomPub.prototype = {
    set password(passwd) (this.passwd = passwd),
    get wsseHeader() plugins.wsse.header(this.userId, this.passwd) ,
    get endpoint() ({'collection': 'http://d.hatena.ne.jp/' + this.userId + '/atom/blog'}),

    postEntry: function(title, content) {
      let transport = new XMLHttpRequest();
      transport.open('POST', this.endpoint['collection'], false /* synchronous */);
      transport.setRequestHeader('X-WSSE', hatena.wsseHeader);
      transport.setRequestHeader('Content-Type', 'application/atom+xml;type=entry;charset="utf-8"');
      transport.send(<>
          <entry xmlns="http://purl.org/atom/ns#">
            <title>{title}</title>
            <content type="text/plain">{content}</content>
          </entry>
      </>.toXMLString());
      return transport.responseXML;
    }
  };

  let hatena = new HatenaAtomPub('snaka72');

  let self = {
    post: function(pass) {
      hatena.password = pass;
      return hatena.postEntry(
          "AtomPub\u3067\u6295\u7A3F\u3057\u3066\u307F\u305F\u30C6\u30B9\u30C8",
<>
{"AtomPub\u306E\u3066\u3059\u3068\u266A"}
- {"\u307B\u3052\u307B\u3052"}
- {"\uFF3C\uFF08\uFF3E\uFF2F\uFF3E\uFF09\uFF0F"}
</>
      );
    }
  };

  return self;
})();

atompub.post("password"); // => see http://d.hatena.ne.jp/snaka72/20090611/1244745870