File: /volume1/@appstore/Spreadsheet/server/common/helper/index.js
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function e(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:true,get:r[t]})}e(exports,{generateOFileAsync:function(){return s},isFile:function(){return d},isPermissionDowngrade:function(){return u},isPermissionNone:function(){return l},isPermissionUpgrade:function(){return a},isSubPath:function(){return g},isSubPathInDirSet:function(){return m},isTemplate:function(){return b},randomString:function(){return o},touch:function(){return c}});const r=i(require("crypto"));const t=i(require("../../task-daemon/client"));const n=require("@synology-office/logger");function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){let i="";try{i=r.default.randomBytes(e).toString(t)}catch{n.logger.error("Failed to create randomString")}return i}function u(e,r){return e.commentable&&!r.commentable||e.readable&&!r.readable||e.writable&&!r.writable||e.organizable&&!r.organizable||e.previewable&&!r.previewable}function a(e,r){return!e.readable&&r.readable||!e.writable&&r.writable||!e.organizable&&r.organizable||!e.commentable&&r.commentable}function l(e){return!e||!e.previewable&&!e.readable&&!e.commentable&&!e.writable}const f=new Set;function c(e,r,i,o,u,a,l){if(f.has(e)){return}f.add(e);setTimeout((function(){f.delete(e)}),12e4);if(l&&true===l()){return}(0,t.default)("touch",{object_id:e,modify:a,remote_ip:r,run_as:i,sharing_token:o,is_admin:u}).catch((function(r){n.logger.error(`touch(${e}) failed`,r)}))}function s(e,r,i){if(!d(e)){return Promise.resolve()}return(0,t.default)("generate_ofile",{object_id:e,editors:r,password:i}).catch((r=>{n.logger.error(`generate ofile error: ${e}`,r)}))}function d(e){return-1===e.lastIndexOf(".tpl.")&&-1===e.lastIndexOf(".synoffice.")}function b(e){return-1!==e.lastIndexOf(".tpl.")}function g(e,r){if(!e||!r){return false}if(e.length<r.length){return e===r.substring(0,e.length)}return false}function m(e,r){if(!r){return false}for(const t of e){if(g(t,r)){return true}}return false}