File: /volume1/@appstore/Spreadsheet/server/common/collab/command-queue/commandQueue.js
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"CommandQueue",{enumerable:true,get:function(){return a}});const e=i(require("../../command-queue"));const t=require("../../prosemirror");const r=require("../../syno-crypto");const n=i(require("path"));const u=i(require("@synology-office/logger"));function i(e){return e&&e.__esModule?e:{default:e}}class a extends e.default{static async migrateLegacyQueueFile(e,n){try{const[u,i]=await Promise.all([this.loadLegacyQueueFile(e,n,"command"),this.loadLegacyQueueFile(e,n,"comment")]);if(u.length===0&&i.length===0){return}const a=u.reduce(((e,r)=>{const n=r&&typeof r==="object"?t.migrator.CommandStepUpgrader.run(r):null;if(n){e.push(n)}return e}),[]);const o=i.reduce(((e,r)=>{const n=r&&typeof r==="object"?t.migrator.CommentStepUpgrader.run(r):null;if(n){e.push(n)}return e}),[]);const c=a.concat(o);if(c.length===0){return}let s;if(n){s=c.map((e=>(0,r.encrypt)(JSON.stringify(e),n)+"\n"))}else{s=c.map((e=>JSON.stringify(e)+"\n"))}await this.writeQueueFileAsync(this.getFilePath(e),s.join(""));return c}catch(t){u.default.error(`${e}: Failed to migrate legacy queue file.`,t)}}static async loadLegacyQueueFile(e,t,i){const a=n.default.join("/var/packages/Spreadsheet/target/synodoc/",i,e);try{let e;e=await this.readQueueFileAsync(a);if(typeof e==="string"){this.unlinkQueueFileAsync(a)}if(!e){return[]}if(t){e=(0,r.decrypt)(e.slice(1,-1),t);if(!e){return[]}}const n=JSON.parse(e);if(!Array.isArray(n)){return[]}return n}catch(t){u.default.error(`${e}: Failed to read legacy queue file.`,a,t)}return[]}}