obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
249 lines (235 loc) • 13 kB
JavaScript
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
(function initCjs() {
const globalThisRecord = globalThis;
globalThisRecord['__name'] ??= name;
const originalRequire = require;
if (originalRequire && !originalRequire.__isPatched) {
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
require = Object.assign(
(id) => requirePatched(id),
originalRequire,
{
__isPatched: true
}
);
}
const newFuncs = {
__extractDefault() {
return extractDefault;
},
process() {
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
return browserProcess;
}
};
for (const key of Object.keys(newFuncs)) {
globalThisRecord[key] ??= newFuncs[key]?.();
}
function name(obj) {
return obj;
}
function extractDefault(module) {
return module && module.__esModule && 'default' in module ? module.default : module;
}
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'obsidian',
'@codemirror/autocomplete',
'@codemirror/collab',
'@codemirror/commands',
'@codemirror/language',
'@codemirror/lint',
'@codemirror/search',
'@codemirror/state',
'@codemirror/text',
'@codemirror/view',
'@lezer/common',
'@lezer/lr',
'@lezer/highlight'];
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
'@codemirror/closebrackets',
'@codemirror/comment',
'@codemirror/fold',
'@codemirror/gutter',
'@codemirror/highlight',
'@codemirror/history',
'@codemirror/matchbrackets',
'@codemirror/panel',
'@codemirror/rangeset',
'@codemirror/rectangular-selection',
'@codemirror/stream-parser',
'@codemirror/tooltip'];
function requirePatched(id) {
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
return originalRequire?.(id);
}
// eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
if (globalThis?.app?.isMobile) {
if (id === 'process' || id === 'node:process') {
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
return globalThis.process;
}
} else {
const module = originalRequire?.(id);
if (module) {
return extractDefault(module);
}
}
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
return {};
}
})();
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var TwoWayMap_exports = {};
__export(TwoWayMap_exports, {
TwoWayMap: () => TwoWayMap
});
module.exports = __toCommonJS(TwoWayMap_exports);
class TwoWayMap {
keyValueMap = /* @__PURE__ */ new Map();
valueKeyMap = /* @__PURE__ */ new Map();
/**
* Creates a new two-way map.
*
* @param entries - Entries to initialize the map with.
*/
constructor(entries = []) {
for (const [key, value] of entries) {
this.set(key, value);
}
}
/**
* Clears the map.
*/
clear() {
this.keyValueMap.clear();
this.valueKeyMap.clear();
}
/**
* Deletes a key from the map.
*
* @param key - The key.
*/
deleteKey(key) {
const value = this.getValue(key);
if (value !== void 0) {
this.valueKeyMap.delete(value);
}
this.keyValueMap.delete(key);
}
/**
* Deletes a value from the map.
*
* @param value - The value.
*/
deleteValue(value) {
const key = this.getKey(value);
if (key !== void 0) {
this.keyValueMap.delete(key);
}
this.valueKeyMap.delete(value);
}
/**
* Gets all entries in the map.
*
* @returns An iterator over all entries in the map.
*/
entries() {
return this.keyValueMap.entries();
}
/**
* Gets a key by its value.
*
* @param value - The value.
* @returns The key.
*/
getKey(value) {
return this.valueKeyMap.get(value);
}
/**
* Gets a value by its key.
*
* @param key - The key.
* @returns The value.
*/
getValue(key) {
return this.keyValueMap.get(key);
}
/**
* Checks if the map has a key.
*
* @param key - The key.
* @returns `true` if the map has the key, `false` otherwise.
*/
hasKey(key) {
return this.keyValueMap.has(key);
}
/**
* Checks if the map has a value.
*
* @param value - The value.
* @returns `true` if the map has the value, `false` otherwise.
*/
hasValue(value) {
return this.valueKeyMap.has(value);
}
/**
* Gets all keys in the map.
*
* @returns An iterator over all keys in the map.
*/
keys() {
return this.keyValueMap.keys();
}
/**
* Sets a key-value pair in the map.
*
* @param key - The key.
* @param value - The value.
*/
set(key, value) {
this.deleteKey(key);
this.deleteValue(value);
this.keyValueMap.set(key, value);
this.valueKeyMap.set(value, key);
}
/**
* Gets all values in the map.
*
* @returns An iterator over all values in the map.
*/
values() {
return this.valueKeyMap.keys();
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
TwoWayMap
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1R3b1dheU1hcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUd28td2F5IG1hcC5cbiAqL1xuXG4vKipcbiAqIEEgbWFwIHRoYXQgYWxsb3dzIHlvdSB0byBsb29rIHVwIGEgdmFsdWUgYnkgaXRzIGtleSBhbmQgdmljZSB2ZXJzYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IG1hcCA9IG5ldyBUd29XYXlNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gKiBtYXAuc2V0KCdmb28nLCA0Mik7XG4gKiBtYXAuZ2V0VmFsdWUoJ2ZvbycpOyAvLyA0MlxuICogbWFwLmdldEtleSg0Mik7IC8vICdmb28nXG4gKiBtYXAuZGVsZXRlS2V5KCdmb28nKTtcbiAqIG1hcC5kZWxldGVWYWx1ZSg0Mik7XG4gKiBtYXAuY2xlYXIoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgVHdvV2F5TWFwPEtleSwgVmFsdWU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBrZXlWYWx1ZU1hcCA9IG5ldyBNYXA8S2V5LCBWYWx1ZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZUtleU1hcCA9IG5ldyBNYXA8VmFsdWUsIEtleT4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyB0d28td2F5IG1hcC5cbiAgICpcbiAgICogQHBhcmFtIGVudHJpZXMgLSBFbnRyaWVzIHRvIGluaXRpYWxpemUgdGhlIG1hcCB3aXRoLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGVudHJpZXM6IChyZWFkb25seSBba2V5OiBLZXksIHZhbHVlOiBWYWx1ZV0pW10gPSBbXSkge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICAgIHRoaXMuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIG1hcC5cbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmtleVZhbHVlTWFwLmNsZWFyKCk7XG4gICAgdGhpcy52YWx1ZUtleU1hcC5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSBrZXkgZnJvbSB0aGUgbWFwLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleS5cbiAgICovXG4gIHB1YmxpYyBkZWxldGVLZXkoa2V5OiBLZXkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KTtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52YWx1ZUtleU1hcC5kZWxldGUodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmtleVZhbHVlTWFwLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSB2YWx1ZSBmcm9tIHRoZSBtYXAuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBkZWxldGVWYWx1ZSh2YWx1ZTogVmFsdWUpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldEtleSh2YWx1ZSk7XG4gICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmtleVZhbHVlTWFwLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlS2V5TWFwLmRlbGV0ZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgZW50cmllcyBpbiB0aGUgbWFwLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBpdGVyYXRvciBvdmVyIGFsbCBlbnRyaWVzIGluIHRoZSBtYXAuXG4gICAqL1xuICBwdWJsaWMgZW50cmllcygpOiBJdGVyYWJsZUl0ZXJhdG9yPHJlYWRvbmx5IFtrZXk6IEtleSwgdmFsdWU6IFZhbHVlXT4ge1xuICAgIHJldHVybiB0aGlzLmtleVZhbHVlTWFwLmVudHJpZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEga2V5IGJ5IGl0cyB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUga2V5LlxuICAgKi9cbiAgcHVibGljIGdldEtleSh2YWx1ZTogVmFsdWUpOiBLZXkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlS2V5TWFwLmdldCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHZhbHVlIGJ5IGl0cyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsdWUoa2V5OiBLZXkpOiB1bmRlZmluZWQgfCBWYWx1ZSB7XG4gICAgcmV0dXJuIHRoaXMua2V5VmFsdWVNYXAuZ2V0KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBtYXAgaGFzIGEga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleS5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBtYXAgaGFzIHRoZSBrZXksIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGhhc0tleShrZXk6IEtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmtleVZhbHVlTWFwLmhhcyhrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgbWFwIGhhcyBhIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWFwIGhhcyB0aGUgdmFsdWUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGhhc1ZhbHVlKHZhbHVlOiBWYWx1ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlS2V5TWFwLmhhcyh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwga2V5cyBpbiB0aGUgbWFwLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBpdGVyYXRvciBvdmVyIGFsbCBrZXlzIGluIHRoZSBtYXAuXG4gICAqL1xuICBwdWJsaWMga2V5cygpOiBJdGVyYWJsZUl0ZXJhdG9yPEtleT4ge1xuICAgIHJldHVybiB0aGlzLmtleVZhbHVlTWFwLmtleXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIG1hcC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBzZXQoa2V5OiBLZXksIHZhbHVlOiBWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlS2V5KGtleSk7XG4gICAgdGhpcy5kZWxldGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICB0aGlzLmtleVZhbHVlTWFwLnNldChrZXksIHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlS2V5TWFwLnNldCh2YWx1ZSwga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCB2YWx1ZXMgaW4gdGhlIG1hcC5cbiAgICpcbiAgICogQHJldHVybnMgQW4gaXRlcmF0b3Igb3ZlciBhbGwgdmFsdWVzIGluIHRoZSBtYXAuXG4gICAqL1xuICBwdWJsaWMgdmFsdWVzKCk6IEl0ZXJhYmxlSXRlcmF0b3I8VmFsdWU+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUtleU1hcC5rZXlzKCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JPLE1BQU0sVUFBc0I7QUFBQSxFQUNoQixjQUFjLG9CQUFJLElBQWdCO0FBQUEsRUFDbEMsY0FBYyxvQkFBSSxJQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU81QyxZQUFZLFVBQWlELENBQUMsR0FBRztBQUN0RSxlQUFXLENBQUMsS0FBSyxLQUFLLEtBQUssU0FBUztBQUNsQyxXQUFLLElBQUksS0FBSyxLQUFLO0FBQUEsSUFDckI7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxRQUFjO0FBQ25CLFNBQUssWUFBWSxNQUFNO0FBQ3ZCLFNBQUssWUFBWSxNQUFNO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxVQUFVLEtBQWdCO0FBQy9CLFVBQU0sUUFBUSxLQUFLLFNBQVMsR0FBRztBQUMvQixRQUFJLFVBQVUsUUFBVztBQUN2QixXQUFLLFlBQVksT0FBTyxLQUFLO0FBQUEsSUFDL0I7QUFDQSxTQUFLLFlBQVksT0FBTyxHQUFHO0FBQUEsRUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxZQUFZLE9BQW9CO0FBQ3JDLFVBQU0sTUFBTSxLQUFLLE9BQU8sS0FBSztBQUM3QixRQUFJLFFBQVEsUUFBVztBQUNyQixXQUFLLFlBQVksT0FBTyxHQUFHO0FBQUEsSUFDN0I7QUFDQSxTQUFLLFlBQVksT0FBTyxLQUFLO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxVQUErRDtBQUNwRSxXQUFPLEtBQUssWUFBWSxRQUFRO0FBQUEsRUFDbEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLE9BQU8sT0FBK0I7QUFDM0MsV0FBTyxLQUFLLFlBQVksSUFBSSxLQUFLO0FBQUEsRUFDbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsS0FBNkI7QUFDM0MsV0FBTyxLQUFLLFlBQVksSUFBSSxHQUFHO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLE9BQU8sS0FBbUI7QUFDL0IsV0FBTyxLQUFLLFlBQVksSUFBSSxHQUFHO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLFNBQVMsT0FBdUI7QUFDckMsV0FBTyxLQUFLLFlBQVksSUFBSSxLQUFLO0FBQUEsRUFDbkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxPQUE4QjtBQUNuQyxXQUFPLEtBQUssWUFBWSxLQUFLO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLElBQUksS0FBVSxPQUFvQjtBQUN2QyxTQUFLLFVBQVUsR0FBRztBQUNsQixTQUFLLFlBQVksS0FBSztBQUV0QixTQUFLLFlBQVksSUFBSSxLQUFLLEtBQUs7QUFDL0IsU0FBSyxZQUFZLElBQUksT0FBTyxHQUFHO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFrQztBQUN2QyxXQUFPLEtBQUssWUFBWSxLQUFLO0FBQUEsRUFDL0I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K