{
const res = await query('query', {route: `document/${logNotebook.id}/history`, credentials: true}),
events = res.data.events,
changesets = [];
return new Set(events
.filter(e => e.node_name)
.map(e => e.type)
.flat())
function split(n, n2) {
return n.publish_type != null;
}
function merge(events) {
const log = new Map();
const nodes = events.reduce((map, e) => {
const id = e.node_id;
if(!map.has(id)) map.push(id, {});
const state = map.get(id);
switch(e.type) {
case 'pin_node':
case 'unpin_node':
case 'modify_node':
case 'remove_node':
case 'modify_title':
case 'revert':
case 'create':
break;
case '':
}
}, new Map());
return events;
}
let offset = 0, i = 0;
while(i < events.length) {
if(split(events[i], events[++i])) {
changesets.push(merge(events.slice(offset, i)));
offset = i;
}
}
return changesets;
}