import { encrypt } from "npm:octagonal-wheels@0.1.11/encryption/encryption.js"; const noun = [ "waterfall", "river", "breeze", "moon", "rain", "wind", "sea", "morning", "snow", "lake", "sunset", "pine", "shadow", "leaf", "dawn", "glitter", "forest", "hill", "cloud", "meadow", "sun", "glade", "bird", "brook", "butterfly", "bush", "dew", "dust", "field", "fire", "flower", "firefly", "feather", "grass", "haze", "mountain", "night", "pond", "darkness", "snowflake", "silence", "sound", "sky", "shape", "surf", "thunder", "violet", "water", "wildflower", "wave", "water", "resonance", "sun", "log", "dream", "cherry", "tree", "fog", "frost", "voice", "paper", "frog", "smoke", "star", ]; const adjectives = [ "autumn", "hidden", "bitter", "misty", "silent", "empty", "dry", "dark", "summer", "icy", "delicate", "quiet", "white", "cool", "spring", "winter", "patient", "twilight", "dawn", "crimson", "wispy", "weathered", "blue", "billowing", "broken", "cold", "damp", "falling", "frosty", "green", "long", "late", "lingering", "bold", "little", "morning", "muddy", "old", "red", "rough", "still", "small", "sparkling", "thrumming", "shy", "wandering", "withered", "wild", "black", "young", "holy", "solitary", "fragrant", "aged", "snowy", "proud", "floral", "restless", "divine", "polished", "ancient", "purple", "lively", "nameless", ]; function friendlyString() { return `${adjectives[Math.floor(Math.random() * adjectives.length)]}-${noun[Math.floor(Math.random() * noun.length)]}`; } const uri_passphrase = `${Deno.env.get("uri_passphrase") ?? friendlyString()}`; const URIBASE = "obsidian://setuplivesync?settings="; async function main() { // We need re-format this const conf = { "couchDB_URI": `${Deno.env.get("hostname")}`, "couchDB_USER": `${Deno.env.get("username")}`, "couchDB_PASSWORD": `${Deno.env.get("password")}`, "couchDB_DBNAME": `${Deno.env.get("database")}`, "syncOnStart": true, "gcDelay": 0, "periodicReplication": true, "syncOnFileOpen": true, "encrypt": true, "passphrase": `${Deno.env.get("passphrase")}`, "usePathObfuscation": true, "batchSave": true, "batch_size": 50, "batches_limit": 50, "useHistory": true, "disableRequestURI": true, "customChunkSize": 50, "syncAfterMerge": false, "concurrencyOfReadChunksOnline": 100, "minimumIntervalOfReadChunksOnline": 100, "handleFilenameCaseSensitive": false, "doNotUseFixedRevisionForChunks": false, "settingVersion": 10, "notifyThresholdOfRemoteStorageSize": 800 } const encryptedConf = encodeURIComponent(await encrypt(JSON.stringify(conf), uri_passphrase, false)); const theURI = `${URIBASE}${encryptedConf}`; console.log("\nYour passphrase of Setup-URI is: ", uri_passphrase); console.log("This passphrase is never shown again, so please note it in a safe place."); console.log(theURI); } await main();