/* * This is a debug tool. It checks all revisions for data corruption */ if (process.argv.length != 3) { console.error("Use: node bin/checkPadDeltas.js $PADID"); process.exit(1); } // get the padID const padId = process.argv[2]; // load and initialize NPM; var expect = require('expect.js') var diff = require('diff') var async = require('async') let npm = require('../src/node_modules/npm'); var async = require("ep_etherpad-lite/node_modules/async"); var Changeset = require("ep_etherpad-lite/static/js/Changeset"); npm.load({}, async function() { try { // initialize database let settings = require('../src/node/utils/Settings'); let db = require('../src/node/db/DB'); await db.init(); // load modules let Changeset = require('ep_etherpad-lite/static/js/Changeset'); let padManager = require('../src/node/db/PadManager'); let exists = await padManager.doesPadExists(padId); if (!exists) { console.error("Pad does not exist"); process.exit(1); } // get the pad let pad = await padManager.getPad(padId); //create an array with key revisions //key revisions always save the full pad atext var head = pad.getHeadRevisionNumber(); var keyRevisions = []; for(var i=0;i