/* THIS IS A GENERATED/BUNDLED FILE BY ROLLUP if you want to view the source visit the plugins github repository */ 'use strict'; var obsidian = require('obsidian'); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } // This file replaces `index.js` in bundlers like webpack or Rollup, if (process.env.NODE_ENV !== 'production') { // All bundlers will remove this block in the production bundle. if ( typeof navigator !== 'undefined' && navigator.product === 'ReactNative' && typeof crypto === 'undefined' ) { throw new Error( 'React Native does not have a built-in secure random generator. ' + 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' + 'For secure IDs, import `react-native-get-random-values` ' + 'before Nano ID.' ) } if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') { throw new Error( 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' + ' before importing Nano ID to fix IE 11 support' ) } if (typeof crypto === 'undefined') { throw new Error( 'Your browser does not have secure random generator. ' + 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.' ) } } let nanoid = (size = 21) => { let id = ''; let bytes = crypto.getRandomValues(new Uint8Array(size)); // A compact alternative for `for (var i = 0; i < step; i++)`. while (size--) { // It is incorrect to use bytes exceeding the alphabet size. // The following mask reduces the random byte in the 0-255 value // range to the 0-63 value range. Therefore, adding hacks, such // as empty string fallback or magic numbers, is unneccessary because // the bitmask trims bytes down to the alphabet size. let byte = bytes[size] & 63; if (byte < 36) { // `0-9a-z` id += byte.toString(36); } else if (byte < 62) { // `A-Z` id += (byte - 26).toString(36).toUpperCase(); } else if (byte < 63) { id += '_'; } else { id += '-'; } } return id }; const pluginName = "obsidian-gist"; const obsidianAppOrigin = 'app://obsidian.md'; class GistProcessor { constructor() { this.messageEventHandler = (messageEvent) => { if (messageEvent.origin !== 'null') { // a message received from the iFrame with `srcdoc` attribute, the `origin` will be `null`. return; } const sender = messageEvent.data.sender; // only process message coming from this plugin if (sender === pluginName) { const gistUUID = messageEvent.data.gistUUID; const contentHeight = messageEvent.data.contentHeight; const gistContainer = document.querySelector('iframe#' + gistUUID); gistContainer.setAttribute('height', contentHeight); } }; this.processor = (sourceString, el) => __awaiter(this, void 0, void 0, function* () { const gists = sourceString.trim().split("\n"); return Promise.all(gists.map((gist) => __awaiter(this, void 0, void 0, function* () { return this._processGist(el, gist); }))); }); } // private _processGist(el, gistString) { return __awaiter(this, void 0, void 0, function* () { const pattern = /(?https?:\/\/)?(?gist\.github\.com\/)?((?\w+)\/)?(?\w+)(\#(?.+))?/; const matchResult = gistString.match(pattern).groups; const gistID = matchResult.gistID; if (gistID === undefined) { return this._showError(el, gistString, `Could not found a valid Gist ID, please make sure your content and format is correct.`); } let gistURL = `https://gist.github.com/${gistID}.json`; if (matchResult.filename !== undefined) { gistURL = `${gistURL}?file=${matchResult.filename}`; } try { const response = yield fetch(gistURL); if (response.ok) { const gistJSON = yield response.json(); return this._insertGistElement(el, gistID, gistJSON); } else { return this._showError(el, gistString, `Could not fetch the Gist info from GitHub server. (Code: ${response.status})`); } } catch (error) { return this._showError(el, gistString, `Could not fetch the Gist from GitHub server. (Error: ${error})`); } }); } _insertGistElement(el, gistID, gistJSON) { return __awaiter(this, void 0, void 0, function* () { // generate an uuid for each gist element const gistUUID = `${pluginName}-${gistID}-${nanoid()}`; // container const container = document.createElement('iframe'); container.id = gistUUID; container.classList.add(`${pluginName}-container`); container.setAttribute('sandbox', 'allow-scripts allow-top-navigation-by-user-activation'); container.setAttribute('loading', 'lazy'); // reset the default things on HTML const resetStylesheet = ` `; // height adjustment script const heightAdjustmentScript = ` `; // build stylesheet link const stylesheetLink = document.createElement('link'); stylesheetLink.rel = "stylesheet"; stylesheetLink.href = gistJSON.stylesheet; // hack to make links open in the parent const parentLinkHack = document.createElement('base'); parentLinkHack.target = "_parent"; // Inject content into the iframe container.srcdoc = ` ${resetStylesheet} ${parentLinkHack.outerHTML} ${heightAdjustmentScript} ${stylesheetLink.outerHTML} ${gistJSON.div} `; // insert container into the DOM el.appendChild(container); }); } _showError(el, gistIDAndFilename, errorMessage = '') { return __awaiter(this, void 0, void 0, function* () { const errorText = ` Failed to load the Gist (${gistIDAndFilename}). Error: ${errorMessage} `.trim(); el.createEl('pre', { text: errorText }); }); } } class GistPlugin extends obsidian.Plugin { onload() { return __awaiter(this, void 0, void 0, function* () { const gistProcessor = new GistProcessor(); this.registerDomEvent(window, "message", gistProcessor.messageEventHandler); this.registerMarkdownCodeBlockProcessor("gist", gistProcessor.processor); }); } } module.exports = GistPlugin; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguYnJvd3Nlci5qcyIsInNyYy9naXN0X3Byb2Nlc3Nvci50cyIsInNyYy9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpudWxsLCJuYW1lcyI6WyJQbHVnaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF1REE7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMs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