"const input$ = sources.DOM.select('.field').events('input')"
Is there a switchMap in here?
What happens if the input element is removed/inserted back into the DOM?
"input('.field', {attrs: {type: 'text'}}),"
It's possible right now for the value in this input to differ from the value in input$.
Maybe use a combineLatest and then this?
"input('.field', {attrs: {type: 'text', value: inputVal}}),"