You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

10 lines
39 KiB

/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
3 years ago
3 days ago
var oe=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Ie=Object.prototype.hasOwnProperty;var Se=(g,t)=>{for(var e in t)oe(g,e,{get:t[e],enumerable:!0})},Ae=(g,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ce(t))!Ie.call(g,s)&&s!==e&&oe(g,s,{get:()=>t[s],enumerable:!(n=xe(t,s))||n.enumerable});return g};var De=g=>Ae(oe({},"__esModule",{value:!0}),g);var He={};Se(He,{default:()=>re});module.exports=De(He);var ae=require("obsidian");var I=require("obsidian");var Pe=require("obsidian");var j=class{constructor(){this.values=new Map}put(t,e){this.values.set(t,e)}get(t,e){var n;return(n=this.values.get(t))!=null?n:e}getOrNull(t){var e;return(e=this.values.get(t))!=null?e:null}getFirst(t,e){for(let n=0;n<t.length;n++){let s=t[n];if(this.containsKey(s))return this.get(s,e)}return e}containsKey(t){return this.values.has(t)}getKeys(){return Array.from(this.values.keys())}removeKey(t){return this.values.delete(t)}clear(){this.values.clear()}};var le=require("obsidian"),R=class{static getFilePathWithNewExtension(t,e){var n;return(0,le.normalizePath)(`${(n=t.parent)==null?void 0:n.path}/${t.basename}.${e}`)}static getFilePathExcludingExtension(t){var e;return(0,le.normalizePath)(`${(e=t.parent)==null?void 0:e.path}/${t.basename}`)}};var o=class o{static init(t){o.vaultFileAdapter=t}static setExternalFilePaths(t){o.externalFilePaths=t}static setActive(t){o.isActive=t,o.isActive||this.clear()}static setAutoExpire(t){o.baseMinutesToExpire=t!=null?t:0,o.updateExpiryTime()}static getLevel(){return o.level}static setLevel(t){if(o.level!=t){if(o.allLevels.contains(t)){o.level=t;return}o.level=o.LevelFilename,this.clear()}}static updateExpiryTime(){o.baseMinutesToExpire==0||o.baseMinutesToExpire==null?o.expiryTime=null:o.expiryTime=Date.now()+o.baseMinutesToExpire*1e3*60}static putByFile(t,e){if(!o.isActive)return;let n=o.getFileCacheKey(e);this.putByKey(n,t),o.updateExpiryTime()}static async getByFile(t){if(!o.isActive)return o.blankPasswordAndHint;this.clearIfExpired(),o.updateExpiryTime();let e=o.getFileCacheKey(t);return await this.getByKeyAsync(e,o.blankPasswordAndHint)}static putByPath(t,e){if(!o.isActive)return;let n=o.getPathCacheKey(e);this.putByKey(n,t),o.updateExpiryTime()}static getByPath(t){if(!o.isActive)return o.blankPasswordAndHint;this.clearIfExpired(),o.updateExpiryTime();let e=o.getPathCacheKey(t);return this.getByKey(e,o.blankPasswordAndHint)}static async getByPathAsync(t){if(!o.isActive)return o.blankPasswordAndHint;this.clearIfExpired(),o.updateExpiryTime();let e=o.getPathCacheKey(t);return await this.getByKeyAsync(e,o.blankPasswordAndHint)}static getPathCacheKey(t){return o.level==o.LevelExternalFile||o.level==o.LevelVault?"$"+o.level:o.level==o.LevelParentPath?t.split("/").slice(0,-1).join("/"):t}static getFileCacheKey(t){return o.level==o.LevelExternalFile||o.level==o.LevelVault?"$"+o.level:o.level==o.LevelParentPath?t.parent.path:R.getFilePathExcludingExtension(t)}static clearIfExpired(){o.expiryTime!=null&&(Date.now()<o.expiryTime||this.clear())}static clearForFile(t){let e=o.getFileCacheKey(t);this.cache.removeKey(e)}static clear(){let t=this.cache.getKeys().length;return this.cache.clear(),t}static putByKey(t,e){o.level!=o.LevelExternalFile&&this.cache.put(t,e)}static getByKey(t,e){return console.debug("SessionPasswordService.getByKey",{level:o.level,key:t,defaultValue:e}),this.cache.get(t,e)}static async getByKeyAsync(t,e){if(o.level==o.LevelExternalFile){for(let n=0;n<this.externalFilePaths.length;n++){let s=this.externalFilePaths[n];try{return{password:await this.fetchFileContents(s),hint:""}}catch(i){console.error(i,{relFilePath:s})}}return new Pe.Notice("External password file not found",1e4),e}return this.cache.get(t,e)}static async canFetchContents(t){if(o.vaultFileAdapter==null)return!1;try{let e=await this.fetchFileContents(t);return!0}catch(e){return!1}}static async fetchFileContents(t){if(o.vaultFileAdapter==null)throw new Error("SessionPasswordService.vaultFileAdapter == null");let e=o.vaultFileAdapter.getResourcePath(t),s=awai
`)).onChange(async a=>{this.settings.rememberPasswordExternalFilePaths=a.trim().split(`
`),await this.plugin.saveSettings(),p.setExternalFilePaths(this.settings.rememberPasswordExternalFilePaths)}),r.inputEl.placeholder="Enter one relative path per line",r.inputEl.style.whiteSpace="pre",r.inputEl.style.width="100%",r.inputEl.rows=4}).addButton(r=>{r.setIcon("check").setTooltip("Check Paths").onClick(async()=>{let a=this.settings.rememberPasswordExternalFilePaths;for(let l of a)await p.canFetchContents(l)?new I.Notice(`\u2714\uFE0F ${l}`):new I.Notice(`\u274C ${l}`)})});i.controlEl.style.width="80%",e(),this.features.forEach(r=>{r.buildSettingsUi(t,async()=>await this.plugin.saveSettings())})}buildRememberPasswordDescription(){let t=new DocumentFragment,e=t.createEl("table").createTBody(),n=e.createEl("tr");return n.createEl("th",{text:"Vault:",attr:{align:"right"}}),n.createEl("td",{text:"Typically, you'll use the same password every time."}),n=e.createEl("tr"),n.createEl("th",{text:"Folder:",attr:{align:"right"}}),n.createEl("td",{text:"Typically, you'll use the same password for each note within a folder."}),n=e.createEl("tr"),n.createEl("th",{text:"File:",attr:{align:"right"}}),n.createEl("td",{text:"Typically, each note will have a unique password."}),n=e.createEl("tr"),n.createEl("th",{text:"External File:",attr:{align:"right",style:"width:12em;"}}),n.createEl("td",{text:"When needed the password/key is read from one of these filepaths."}),t}};var x=require("obsidian");var M=require("obsidian"),V=class extends M.Modal{constructor(e,n,s=""){super(e);this.decryptInPlace=!1;this.save=!1;this.canDecryptInPlace=!0;this.titleEl.setText(n),this.text=s}onOpen(){var r;let{contentEl:e}=this;e.empty(),e.classList.add("meld-encrypt-decrypt-modal");let n;(r=new M.Setting(e).addTextArea(a=>{n=a,a.setValue(this.text),a.inputEl.setSelectionRange(0,0),a.inputEl.rows=10}).settingEl.querySelector(".setting-item-info"))==null||r.remove();let i=new M.Setting(e);i.addButton(a=>{a.setButtonText("Save").onClick(l=>{this.save=!0,this.text=n.getValue(),this.close()})}),i.addButton(a=>{a.setButtonText("Copy").onClick(l=>{navigator.clipboard.writeText(n.getValue()),new M.Notice("Copied!")})}),this.canDecryptInPlace&&i.addButton(a=>{a.setWarning().setButtonText("Decrypt in-place").onClick(l=>{this.decryptInPlace=!0,this.text=n.getValue(),this.close()})})}};var E=require("obsidian");var X=require("obsidian"),A=class{static isSettingsModalOpen(){return document.querySelector(".mod-settings")!==null}static buildPasswordSetting({container:t,name:e,desc:n="",autoFocus:s=!1,placeholder:i="",initialValue:r="",onChangeCallback:a,onEnterCallback:l}){let c=new X.Setting(t).setName(e).setDesc(n).addButton(h=>{h.setIcon("reading-glasses").onClick(y=>{let w=c.components.find((f,d,u)=>f instanceof X.TextComponent);w instanceof X.TextComponent&&(w.inputEl.type=w.inputEl.type=="password"?"text":"password")})}).addText(h=>{h.setPlaceholder(i),h.setValue(r),h.inputEl.type="password",a!=null&&h.onChange(a),l!=null&&(h.inputEl.onkeydown=y=>{y.key==="Enter"&&(y.preventDefault(),l(h.getValue()))}),s&&setTimeout(()=>h.inputEl.focus(),0)});return c}};var H=class extends E.Modal{constructor(e,n,s,i,r=null,a=null,l=!1){super(e);this.defaultPassword=null;this.resultConfirmed=!1;this.resultPassword=null;this.resultShowInReadingView=null;this.resultTextToEncrypt=null;this.defaultPassword=r,this.confirmPassword=s,this.showInReadingView=i,this.isEncrypting=n,this.defaultHint=a!=null?a:"",this.showTextToEncrypt=l}onOpen(){var f;let{contentEl:e}=this;e.empty(),e.classList.add("meld-encrypt-password-modal"),this.invalidate();let n=(f=this.defaultPassword)!=null?f:"",s="",i=this.defaultHint,r=this.showInReadingView,a="";new E.Setting(e).setHeading().setName(this.isEncrypting?"Encrypting":"Decrypting"),A.buildPasswordSetting({container:e,name:"Password:",placeholder:this.isEncrypting||i.length==0?"":`Hint: ${i}`,initialValue:n,autoFocus:!0,onChangeCallback:d=>{n=d,this.invalidate()},onEnterCallback:d=>{if(n=d,this.invalidate(),n.length>0)if(l.settingEl.isShown()){let u=l.components.find(m=>m instanceof E.TextComponent);u instanceof E.TextComponent&&u.inputEl.focus(
2 years ago
3 days ago
/* nosourcemap */