Yes, I have implemented this for xmpp.js -- except for
"tasks" which I have
not implemented and I think there are no official profiles of, making that a
somewhat more risky area of the spec.
There is a task defined in XEP-0480 (for upgrading server-stored SCRAM hashes,
for example from SHA-1 to SHA-256)