obsidian-dev-utils 3.39.0 → 3.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 3.41.0
4
+
5
+ - Handle broken canvas
6
+
7
+ ## 3.40.0
8
+
9
+ - Add fix for unhandled `sourcemaps`
10
+ - Add support for `FrontmatterLinkCache`
11
+
3
12
  ## 3.39.0
4
13
 
5
14
  - Avoid unnecessary renames
@@ -26,8 +26,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
26
26
  var Object_exports = {};
27
27
  __export(Object_exports, {
28
28
  deepEqual: () => deepEqual,
29
+ getNestedPropertyValue: () => getNestedPropertyValue,
29
30
  getPrototypeOf: () => getPrototypeOf,
30
31
  nameof: () => nameof,
32
+ setNestedPropertyValue: () => setNestedPropertyValue,
31
33
  toJson: () => toJson
32
34
  });
33
35
  module.exports = __toCommonJS(Object_exports);
@@ -85,11 +87,40 @@ function toJson(value, options = {}) {
85
87
  json = json.replaceAll(/"__FUNCTION_(\d+)"/g, (_, indexStr) => functionTexts[parseInt(indexStr)] ?? (0, import_Error.throwExpression)(new Error(`Function with index ${indexStr} not found`)));
86
88
  return json;
87
89
  }
90
+ function getNestedPropertyValue(obj, path) {
91
+ let node = obj;
92
+ const keys = path.split(".");
93
+ for (const key of keys) {
94
+ if (node === void 0) {
95
+ return void 0;
96
+ }
97
+ node = node[key];
98
+ }
99
+ return node;
100
+ }
101
+ function setNestedPropertyValue(obj, path, value) {
102
+ const error = new Error(`Property path ${path} not found`);
103
+ let node = obj;
104
+ const keys = path.split(".");
105
+ for (const key of keys.slice(0, -1)) {
106
+ if (node === void 0) {
107
+ throw error;
108
+ }
109
+ node = node[key];
110
+ }
111
+ const lastKey = keys.at(-1);
112
+ if (node === void 0 || lastKey === void 0) {
113
+ throw error;
114
+ }
115
+ node[lastKey] = value;
116
+ }
88
117
  // Annotate the CommonJS export names for ESM import in node:
89
118
  0 && (module.exports = {
90
119
  deepEqual,
120
+ getNestedPropertyValue,
91
121
  getPrototypeOf,
92
122
  nameof,
123
+ setNestedPropertyValue,
93
124
  toJson
94
125
  });
95
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL09iamVjdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbJ3Byb2Nlc3MnXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBPYmplY3RcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBPYmplY3RzLlxuICovXG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIENvbXBhcmVzIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGRlZXBseSBlcXVhbC5cbiAqXG4gKiBAcGFyYW0gYSAtIFRoZSBmaXJzdCB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIGIgLSBUaGUgc2Vjb25kIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbChhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIGEgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBiICE9PSAnb2JqZWN0JyB8fCBhID09PSBudWxsIHx8IGIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xuICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGFSZWNvcmQgPSBhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCBiUmVjb3JkID0gYiBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzQSkge1xuICAgIGlmICgha2V5c0IuaW5jbHVkZXMoa2V5KSB8fCAhZGVlcEVxdWFsKGFSZWNvcmRba2V5XSwgYlJlY29yZFtrZXldKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIGEgZ2l2ZW4gdHlwZSBgVGAuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGFzIGEgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZW9mPFQ+KG5hbWU6IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPik6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHByb3RvdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0LlxuICogQHBhcmFtIGluc3RhbmNlIC0gVGhlIG9iamVjdCBpbnN0YW5jZSB0byByZXRyaWV2ZSB0aGUgcHJvdG90eXBlIG9mLlxuICogQHJldHVybnMgVGhlIHByb3RvdHlwZSBvZiB0aGUgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdG90eXBlT2Y8VD4oaW5zdGFuY2U6IFQpOiBUIHtcbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSkgYXMgVDtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb252ZXJ0aW5nIGFuIG9iamVjdCB0byBKU09OLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvSnNvbk9wdGlvbnMge1xuICAvKipcbiAgICogSWYgYHRydWVgLCBmdW5jdGlvbnMgd2l0aGluIHRoZSB2YWx1ZSB3aWxsIGJlIGhhbmRsZWQgYW5kIGluY2x1ZGVkIGluIHRoZSBKU09OIHN0cmluZy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHNob3VsZEhhbmRsZUZ1bmN0aW9ucz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluZGVudGF0aW9uIG9mIHRoZSBKU09OIG91dHB1dC4gVGhpcyBjYW4gYmUgYSBudW1iZXIgb2Ygc3BhY2VzIG9yIGEgc3RyaW5nLiBEZWZhdWx0cyB0byBgMmAuXG4gICAqL1xuICBzcGFjZT86IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGdpdmVuIHZhbHVlIHRvIGEgSlNPTiBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZCB0byBKU09OLiBUaGlzIGNhbiBiZSBvZiBhbnkgdHlwZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIEpTT04gY29udmVyc2lvbiBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnB1dCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbih2YWx1ZTogdW5rbm93biwgb3B0aW9uczogVG9Kc29uT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIHNob3VsZEhhbmRsZUZ1bmN0aW9ucyA9IGZhbHNlLFxuICAgIHNwYWNlID0gMlxuICB9ID0gb3B0aW9ucztcbiAgaWYgKCFzaG91bGRIYW5kbGVGdW5jdGlvbnMpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIHNwYWNlKTtcbiAgfVxuXG4gIGNvbnN0IGZ1bmN0aW9uVGV4dHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgcmVwbGFjZXIgPSAoXzogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHVua25vd24gPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZnVuY3Rpb25UZXh0cy5sZW5ndGg7XG4gICAgICBmdW5jdGlvblRleHRzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICByZXR1cm4gYF9fRlVOQ1RJT05fJHtpbmRleC50b1N0cmluZygpfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIGxldCBqc29uID0gSlNPTi5zdHJpbmdpZnkodmFsdWUsIHJlcGxhY2VyLCBzcGFjZSk7XG4gIGpzb24gPSBqc29uLnJlcGxhY2VBbGwoL1wiX19GVU5DVElPTl8oXFxkKylcIi9nLCAoXywgaW5kZXhTdHI6IHN0cmluZykgPT4gZnVuY3Rpb25UZXh0c1twYXJzZUludChpbmRleFN0cildID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoYEZ1bmN0aW9uIHdpdGggaW5kZXggJHtpbmRleFN0cn0gbm90IGZvdW5kYCkpKTtcbiAgcmV0dXJuIGpzb247XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBLG1CQUFnQztBQVZoQyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBZU8sU0FBUyxVQUFVLEdBQVksR0FBcUI7QUFDekQsTUFBSSxNQUFNLEdBQUc7QUFDWCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksT0FBTyxNQUFNLFlBQVksT0FBTyxNQUFNLFlBQVksTUFBTSxRQUFRLE1BQU0sTUFBTTtBQUM5RSxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sUUFBUSxPQUFPLEtBQUssQ0FBQztBQUMzQixRQUFNLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFFM0IsTUFBSSxNQUFNLFdBQVcsTUFBTSxRQUFRO0FBQ2pDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxVQUFVO0FBQ2hCLFFBQU0sVUFBVTtBQUVoQixhQUFXLE9BQU8sT0FBTztBQUN2QixRQUFJLENBQUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFVBQVUsUUFBUSxHQUFHLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRztBQUNsRSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFTTyxTQUFTLE9BQVUsTUFBd0M7QUFDaEUsU0FBTztBQUNUO0FBU08sU0FBUyxlQUFrQixVQUFnQjtBQUNoRCxTQUFPLE9BQU8sZUFBZSxRQUFRO0FBQ3ZDO0FBdUJPLFNBQVMsT0FBTyxPQUFnQixVQUF5QixDQUFDLEdBQVc7QUFDMUUsUUFBTTtBQUFBLElBQ0osd0JBQXdCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLEVBQ1YsSUFBSTtBQUNKLE1BQUksQ0FBQyx1QkFBdUI7QUFDMUIsV0FBTyxLQUFLLFVBQVUsT0FBTyxNQUFNLEtBQUs7QUFBQSxFQUMxQztBQUVBLFFBQU0sZ0JBQTBCLENBQUM7QUFFakMsUUFBTSxXQUFXLENBQUMsR0FBV0EsV0FBNEI7QUFDdkQsUUFBSSxPQUFPQSxXQUFVLFlBQVk7QUFDL0IsWUFBTSxRQUFRLGNBQWM7QUFDNUIsb0JBQWMsS0FBS0EsT0FBTSxTQUFTLENBQUM7QUFDbkMsYUFBTyxjQUFjLE1BQU0sU0FBUyxDQUFDO0FBQUEsSUFDdkM7QUFFQSxXQUFPQTtBQUFBLEVBQ1Q7QUFFQSxNQUFJLE9BQU8sS0FBSyxVQUFVLE9BQU8sVUFBVSxLQUFLO0FBQ2hELFNBQU8sS0FBSyxXQUFXLHVCQUF1QixDQUFDLEdBQUcsYUFBcUIsY0FBYyxTQUFTLFFBQVEsQ0FBQyxTQUFLLDhCQUFnQixJQUFJLE1BQU0sdUJBQXVCLFFBQVEsWUFBWSxDQUFDLENBQUM7QUFDbkwsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJ2YWx1ZSJdCn0K
126
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL09iamVjdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbJ3Byb2Nlc3MnXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBPYmplY3RcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBPYmplY3RzLlxuICovXG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIENvbXBhcmVzIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGRlZXBseSBlcXVhbC5cbiAqXG4gKiBAcGFyYW0gYSAtIFRoZSBmaXJzdCB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIGIgLSBUaGUgc2Vjb25kIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBFcXVhbChhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIGEgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBiICE9PSAnb2JqZWN0JyB8fCBhID09PSBudWxsIHx8IGIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xuICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGFSZWNvcmQgPSBhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCBiUmVjb3JkID0gYiBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzQSkge1xuICAgIGlmICgha2V5c0IuaW5jbHVkZXMoa2V5KSB8fCAhZGVlcEVxdWFsKGFSZWNvcmRba2V5XSwgYlJlY29yZFtrZXldKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIGEgZ2l2ZW4gdHlwZSBgVGAuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZSBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGFzIGEgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZW9mPFQ+KG5hbWU6IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPik6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHByb3RvdHlwZSBvZiB0aGUgc3BlY2lmaWVkIG9iamVjdC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0LlxuICogQHBhcmFtIGluc3RhbmNlIC0gVGhlIG9iamVjdCBpbnN0YW5jZSB0byByZXRyaWV2ZSB0aGUgcHJvdG90eXBlIG9mLlxuICogQHJldHVybnMgVGhlIHByb3RvdHlwZSBvZiB0aGUgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdG90eXBlT2Y8VD4oaW5zdGFuY2U6IFQpOiBUIHtcbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSkgYXMgVDtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb252ZXJ0aW5nIGFuIG9iamVjdCB0byBKU09OLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvSnNvbk9wdGlvbnMge1xuICAvKipcbiAgICogSWYgYHRydWVgLCBmdW5jdGlvbnMgd2l0aGluIHRoZSB2YWx1ZSB3aWxsIGJlIGhhbmRsZWQgYW5kIGluY2x1ZGVkIGluIHRoZSBKU09OIHN0cmluZy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHNob3VsZEhhbmRsZUZ1bmN0aW9ucz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluZGVudGF0aW9uIG9mIHRoZSBKU09OIG91dHB1dC4gVGhpcyBjYW4gYmUgYSBudW1iZXIgb2Ygc3BhY2VzIG9yIGEgc3RyaW5nLiBEZWZhdWx0cyB0byBgMmAuXG4gICAqL1xuICBzcGFjZT86IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGdpdmVuIHZhbHVlIHRvIGEgSlNPTiBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZCB0byBKU09OLiBUaGlzIGNhbiBiZSBvZiBhbnkgdHlwZS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIEpTT04gY29udmVyc2lvbiBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIEpTT04gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnB1dCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbih2YWx1ZTogdW5rbm93biwgb3B0aW9uczogVG9Kc29uT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIHNob3VsZEhhbmRsZUZ1bmN0aW9ucyA9IGZhbHNlLFxuICAgIHNwYWNlID0gMlxuICB9ID0gb3B0aW9ucztcbiAgaWYgKCFzaG91bGRIYW5kbGVGdW5jdGlvbnMpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIHNwYWNlKTtcbiAgfVxuXG4gIGNvbnN0IGZ1bmN0aW9uVGV4dHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgcmVwbGFjZXIgPSAoXzogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHVua25vd24gPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZnVuY3Rpb25UZXh0cy5sZW5ndGg7XG4gICAgICBmdW5jdGlvblRleHRzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICByZXR1cm4gYF9fRlVOQ1RJT05fJHtpbmRleC50b1N0cmluZygpfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIGxldCBqc29uID0gSlNPTi5zdHJpbmdpZnkodmFsdWUsIHJlcGxhY2VyLCBzcGFjZSk7XG4gIGpzb24gPSBqc29uLnJlcGxhY2VBbGwoL1wiX19GVU5DVElPTl8oXFxkKylcIi9nLCAoXywgaW5kZXhTdHI6IHN0cmluZykgPT4gZnVuY3Rpb25UZXh0c1twYXJzZUludChpbmRleFN0cildID8/IHRocm93RXhwcmVzc2lvbihuZXcgRXJyb3IoYEZ1bmN0aW9uIHdpdGggaW5kZXggJHtpbmRleFN0cn0gbm90IGZvdW5kYCkpKTtcbiAgcmV0dXJuIGpzb247XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsdWUgb2YgYSBuZXN0ZWQgcHJvcGVydHkgZnJvbSBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgdG8gZ2V0IHRoZSBuZXN0ZWQgcHJvcGVydHkgdmFsdWUgZnJvbS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIG5lc3RlZCBwcm9wZXJ0eS5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgbmVzdGVkIHByb3BlcnR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBwYXRoOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgbGV0IG5vZGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0gb2JqO1xuICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgbm9kZSA9IG5vZGVba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIHZhbHVlIG9mIGEgbmVzdGVkIHByb3BlcnR5IGluIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBzZXQgdGhlIG5lc3RlZCBwcm9wZXJ0eSB2YWx1ZSBpbi5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIG5lc3RlZCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHBhdGg6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYFByb3BlcnR5IHBhdGggJHtwYXRofSBub3QgZm91bmRgKTtcbiAgbGV0IG5vZGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0gb2JqO1xuICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzLnNsaWNlKDAsIC0xKSkge1xuICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBub2RlID0gbm9kZVtrZXldIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgbGFzdEtleSA9IGtleXMuYXQoLTEpO1xuICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkIHx8IGxhc3RLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgbm9kZVtsYXN0S2V5XSA9IHZhbHVlO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEsbUJBQWdDO0FBVmhDLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUFlTyxTQUFTLFVBQVUsR0FBWSxHQUFxQjtBQUN6RCxNQUFJLE1BQU0sR0FBRztBQUNYLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxPQUFPLE1BQU0sWUFBWSxPQUFPLE1BQU0sWUFBWSxNQUFNLFFBQVEsTUFBTSxNQUFNO0FBQzlFLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxRQUFRLE9BQU8sS0FBSyxDQUFDO0FBQzNCLFFBQU0sUUFBUSxPQUFPLEtBQUssQ0FBQztBQUUzQixNQUFJLE1BQU0sV0FBVyxNQUFNLFFBQVE7QUFDakMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFVBQVU7QUFDaEIsUUFBTSxVQUFVO0FBRWhCLGFBQVcsT0FBTyxPQUFPO0FBQ3ZCLFFBQUksQ0FBQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsVUFBVSxRQUFRLEdBQUcsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHO0FBQ2xFLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDtBQVNPLFNBQVMsT0FBVSxNQUF3QztBQUNoRSxTQUFPO0FBQ1Q7QUFTTyxTQUFTLGVBQWtCLFVBQWdCO0FBQ2hELFNBQU8sT0FBTyxlQUFlLFFBQVE7QUFDdkM7QUF1Qk8sU0FBUyxPQUFPLE9BQWdCLFVBQXlCLENBQUMsR0FBVztBQUMxRSxRQUFNO0FBQUEsSUFDSix3QkFBd0I7QUFBQSxJQUN4QixRQUFRO0FBQUEsRUFDVixJQUFJO0FBQ0osTUFBSSxDQUFDLHVCQUF1QjtBQUMxQixXQUFPLEtBQUssVUFBVSxPQUFPLE1BQU0sS0FBSztBQUFBLEVBQzFDO0FBRUEsUUFBTSxnQkFBMEIsQ0FBQztBQUVqQyxRQUFNLFdBQVcsQ0FBQyxHQUFXQSxXQUE0QjtBQUN2RCxRQUFJLE9BQU9BLFdBQVUsWUFBWTtBQUMvQixZQUFNLFFBQVEsY0FBYztBQUM1QixvQkFBYyxLQUFLQSxPQUFNLFNBQVMsQ0FBQztBQUNuQyxhQUFPLGNBQWMsTUFBTSxTQUFTLENBQUM7QUFBQSxJQUN2QztBQUVBLFdBQU9BO0FBQUEsRUFDVDtBQUVBLE1BQUksT0FBTyxLQUFLLFVBQVUsT0FBTyxVQUFVLEtBQUs7QUFDaEQsU0FBTyxLQUFLLFdBQVcsdUJBQXVCLENBQUMsR0FBRyxhQUFxQixjQUFjLFNBQVMsUUFBUSxDQUFDLFNBQUssOEJBQWdCLElBQUksTUFBTSx1QkFBdUIsUUFBUSxZQUFZLENBQUMsQ0FBQztBQUNuTCxTQUFPO0FBQ1Q7QUFTTyxTQUFTLHVCQUF1QixLQUE4QixNQUF1QjtBQUMxRixNQUFJLE9BQTRDO0FBQ2hELFFBQU0sT0FBTyxLQUFLLE1BQU0sR0FBRztBQUMzQixhQUFXLE9BQU8sTUFBTTtBQUN0QixRQUFJLFNBQVMsUUFBVztBQUN0QixhQUFPO0FBQUEsSUFDVDtBQUNBLFdBQU8sS0FBSyxHQUFHO0FBQUEsRUFDakI7QUFFQSxTQUFPO0FBQ1Q7QUFTTyxTQUFTLHVCQUF1QixLQUE4QixNQUFjLE9BQXNCO0FBQ3ZHLFFBQU0sUUFBUSxJQUFJLE1BQU0saUJBQWlCLElBQUksWUFBWTtBQUN6RCxNQUFJLE9BQTRDO0FBQ2hELFFBQU0sT0FBTyxLQUFLLE1BQU0sR0FBRztBQUMzQixhQUFXLE9BQU8sS0FBSyxNQUFNLEdBQUcsRUFBRSxHQUFHO0FBQ25DLFFBQUksU0FBUyxRQUFXO0FBQ3RCLFlBQU07QUFBQSxJQUNSO0FBQ0EsV0FBTyxLQUFLLEdBQUc7QUFBQSxFQUNqQjtBQUVBLFFBQU0sVUFBVSxLQUFLLEdBQUcsRUFBRTtBQUMxQixNQUFJLFNBQVMsVUFBYSxZQUFZLFFBQVc7QUFDL0MsVUFBTTtBQUFBLEVBQ1I7QUFFQSxPQUFLLE9BQU8sSUFBSTtBQUNsQjsiLAogICJuYW1lcyI6IFsidmFsdWUiXQp9Cg==
@@ -47,3 +47,19 @@ export interface ToJsonOptions {
47
47
  * @returns The JSON string representation of the input value.
48
48
  */
49
49
  export declare function toJson(value: unknown, options?: ToJsonOptions): string;
50
+ /**
51
+ * Gets the value of a nested property from an object.
52
+ *
53
+ * @param obj - The object to get the nested property value from.
54
+ * @param path - The path to the nested property.
55
+ * @returns The value of the nested property.
56
+ */
57
+ export declare function getNestedPropertyValue(obj: Record<string, unknown>, path: string): unknown;
58
+ /**
59
+ * Sets the value of a nested property in an object.
60
+ *
61
+ * @param obj - The object to set the nested property value in.
62
+ * @param path - The path to the nested property.
63
+ * @param value - The value to set.
64
+ */
65
+ export declare function setNestedPropertyValue(obj: Record<string, unknown>, path: string, value: unknown): void;
@@ -0,0 +1,142 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id);return module.__esModule&&module.default?module.default:module},__require)})()
7
+
8
+ "use strict";
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var FileChange_exports = {};
27
+ __export(FileChange_exports, {
28
+ applyFileChanges: () => applyFileChanges,
29
+ isContentChange: () => isContentChange,
30
+ isFrontmatterChange: () => isFrontmatterChange
31
+ });
32
+ module.exports = __toCommonJS(FileChange_exports);
33
+ var import_Object = require('../Object.cjs');
34
+ var import_ValueProvider = require('../ValueProvider.cjs');
35
+ var import_FileSystem = require('./FileSystem.cjs');
36
+ var import_FrontMatter = require('./FrontMatter.cjs');
37
+ var import_Vault = require('./Vault.cjs');
38
+ var __process = globalThis["process"] ?? {
39
+ "cwd": () => "/",
40
+ "env": {},
41
+ "platform": "android"
42
+ };
43
+ function isContentChange(fileChange) {
44
+ return fileChange.startIndex !== void 0;
45
+ }
46
+ function isFrontmatterChange(fileChange) {
47
+ return fileChange.frontMatterKey !== void 0;
48
+ }
49
+ async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions = {}) {
50
+ const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
51
+ const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
52
+ await (0, import_Vault.process)(app, pathOrFile, async (content) => {
53
+ let changes = await (0, import_ValueProvider.resolveValue)(changesProvider);
54
+ const frontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
55
+ for (const change of changes) {
56
+ if (isContentChange(change)) {
57
+ const actualContent = content.slice(change.startIndex, change.endIndex);
58
+ if (actualContent !== change.oldContent) {
59
+ console.warn("Content mismatch", {
60
+ startIndex: change.startIndex,
61
+ endIndex: change.endIndex,
62
+ path: (0, import_FileSystem.getPath)(pathOrFile),
63
+ expectedContent: change.oldContent,
64
+ actualContent
65
+ });
66
+ return null;
67
+ }
68
+ } else if (isFrontmatterChange(change)) {
69
+ const actualContent = (0, import_Object.getNestedPropertyValue)(frontMatter, change.frontMatterKey);
70
+ if (actualContent !== change.oldContent) {
71
+ console.warn("Content mismatch", {
72
+ path: (0, import_FileSystem.getPath)(pathOrFile),
73
+ expectedContent: change.oldContent,
74
+ actualContent,
75
+ frontMatterKey: change.frontMatterKey
76
+ });
77
+ return null;
78
+ }
79
+ }
80
+ }
81
+ changes.sort((a, b) => {
82
+ if (isContentChange(a) && isContentChange(b)) {
83
+ return a.startIndex - b.startIndex;
84
+ }
85
+ if (isFrontmatterChange(a) && isFrontmatterChange(b)) {
86
+ return a.frontMatterKey.localeCompare(b.frontMatterKey);
87
+ }
88
+ return isContentChange(a) ? -1 : 1;
89
+ });
90
+ changes = changes.filter((change, index) => {
91
+ if (change.oldContent === change.newContent) {
92
+ return false;
93
+ }
94
+ if (index === 0) {
95
+ return true;
96
+ }
97
+ return !(0, import_Object.deepEqual)(change, changes[index - 1]);
98
+ });
99
+ for (let i = 1; i < changes.length; i++) {
100
+ const change = changes[i];
101
+ if (!change) {
102
+ continue;
103
+ }
104
+ const previousChange = changes[i - 1];
105
+ if (!previousChange) {
106
+ continue;
107
+ }
108
+ if (isContentChange(previousChange) && isContentChange(change) && previousChange.endIndex && change.startIndex && previousChange.endIndex > change.startIndex) {
109
+ console.warn("Overlapping changes", {
110
+ previousChange,
111
+ change
112
+ });
113
+ return null;
114
+ }
115
+ }
116
+ let newContent = "";
117
+ let lastIndex = 0;
118
+ let frontMatterChanged = false;
119
+ for (const change of changes) {
120
+ if (isContentChange(change)) {
121
+ newContent += content.slice(lastIndex, change.startIndex);
122
+ newContent += change.newContent;
123
+ lastIndex = change.endIndex;
124
+ } else if (isFrontmatterChange(change)) {
125
+ (0, import_Object.setNestedPropertyValue)(frontMatter, change.frontMatterKey, change.newContent);
126
+ frontMatterChanged = true;
127
+ }
128
+ }
129
+ newContent += content.slice(lastIndex);
130
+ if (frontMatterChanged) {
131
+ newContent = (0, import_FrontMatter.setFrontMatter)(newContent, frontMatter);
132
+ }
133
+ return newContent;
134
+ }, overriddenOptions);
135
+ }
136
+ // Annotate the CommonJS export names for ESM import in node:
137
+ 0 && (module.exports = {
138
+ applyFileChanges,
139
+ isContentChange,
140
+ isFrontmatterChange
141
+ });
142
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uL0FzeW5jLnRzJztcclxuaW1wb3J0IHtcclxuICBkZWVwRXF1YWwsXHJcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcclxuICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlXHJcbn0gZnJvbSAnLi4vT2JqZWN0LnRzJztcclxuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vVmFsdWVQcm92aWRlci50cyc7XHJcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xyXG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xyXG5pbXBvcnQgeyBnZXRQYXRoIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcclxuaW1wb3J0IHtcclxuICBwYXJzZUZyb250TWF0dGVyLFxyXG4gIHNldEZyb250TWF0dGVyXHJcbn0gZnJvbSAnLi9Gcm9udE1hdHRlci50cyc7XHJcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL1ZhdWx0LnRzJztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgZmlsZSBjaGFuZ2UgaW4gdGhlIFZhdWx0LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBGaWxlQ2hhbmdlIHtcclxuICAvKipcclxuICAgKiBUaGUgb2xkIGNvbnRlbnQgdGhhdCB3aWxsIGJlIHJlcGxhY2VkLlxyXG4gICAqL1xyXG4gIG9sZENvbnRlbnQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG5ldyBjb250ZW50IHRvIHJlcGxhY2UgdGhlIG9sZCBjb250ZW50LlxyXG4gICAqL1xyXG4gIG5ld0NvbnRlbnQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBmcm9udG1hdHRlciBjaGFuZ2UgaW4gdGhlIFZhdWx0LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBGcm9udG1hdHRlckNoYW5nZSBleHRlbmRzIEZpbGVDaGFuZ2Uge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBrZXkgaW4gdGhlIGZyb250bWF0dGVyIHRvIHVzZSBmb3IgdGhlIGxpbmsuXHJcbiAgICovXHJcbiAgZnJvbnRNYXR0ZXJLZXk6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBjb250ZW50IGJvZHkgY2hhbmdlIGluIHRoZSBWYXVsdC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudENoYW5nZSBleHRlbmRzIEZpbGVDaGFuZ2Uge1xyXG4gIC8qKlxyXG4gICAgICogVGhlIHN0YXJ0IGluZGV4IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGZpbGUgY29udGVudC5cclxuICAgICAqL1xyXG4gIHN0YXJ0SW5kZXg6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICAgKiBUaGUgZW5kIGluZGV4IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGZpbGUgY29udGVudC5cclxuICAgICAqL1xyXG4gIGVuZEluZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYSBmaWxlIGNoYW5nZSBpcyBhIGNvbnRlbnQgY2hhbmdlLlxyXG4gKlxyXG4gKiBAcGFyYW0gZmlsZUNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cclxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBjb250ZW50IGNoYW5nZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRDaGFuZ2UoZmlsZUNoYW5nZTogRmlsZUNoYW5nZSk6IGZpbGVDaGFuZ2UgaXMgQ29udGVudENoYW5nZSB7XHJcbiAgcmV0dXJuIChmaWxlQ2hhbmdlIGFzIFBhcnRpYWw8Q29udGVudENoYW5nZT4pLnN0YXJ0SW5kZXggIT09IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlLlxyXG4gKlxyXG4gKiBAcGFyYW0gZmlsZUNoYW5nZSAtIFRoZSBmaWxlIGNoYW5nZSB0byBjaGVjay5cclxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNGcm9udG1hdHRlckNoYW5nZShmaWxlQ2hhbmdlOiBGaWxlQ2hhbmdlKTogZmlsZUNoYW5nZSBpcyBGcm9udG1hdHRlckNoYW5nZSB7XHJcbiAgcmV0dXJuIChmaWxlQ2hhbmdlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJDaGFuZ2U+KS5mcm9udE1hdHRlcktleSAhPT0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIHNlcmllcyBvZiBmaWxlIGNoYW5nZXMgdG8gdGhlIHNwZWNpZmllZCBmaWxlIG9yIHBhdGggd2l0aGluIHRoZSBhcHBsaWNhdGlvbi5cclxuICpcclxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSB3aGVyZSB0aGUgZmlsZSBjaGFuZ2VzIHdpbGwgYmUgYXBwbGllZC5cclxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIHdoaWNoIHRoZSBjaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkLlxyXG4gKiBAcGFyYW0gY2hhbmdlc1Byb3ZpZGVyIC0gQSBwcm92aWRlciB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2YgZmlsZSBjaGFuZ2VzIHRvIGFwcGx5LlxyXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgc2V0dGluZ3MgdGhhdCBkZXRlcm1pbmUgaG93IHRoZSBvcGVyYXRpb24gc2hvdWxkIHJldHJ5IG9uIGZhaWx1cmUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgY2hhbmdlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFwcGxpZWQuXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlGaWxlQ2hhbmdlcyhhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgY2hhbmdlc1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPEZpbGVDaGFuZ2VbXT4sIHJldHJ5T3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcclxuICBjb25zdCBERUZBVUxUX1JFVFJZX09QVElPTlM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgdGltZW91dEluTWlsbGlzZWNvbmRzOiA2MDAwMCB9O1xyXG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XHJcbiAgYXdhaXQgcHJvY2VzcyhhcHAsIHBhdGhPckZpbGUsIGFzeW5jIChjb250ZW50KSA9PiB7XHJcbiAgICBsZXQgY2hhbmdlcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjaGFuZ2VzUHJvdmlkZXIpO1xyXG4gICAgY29uc3QgZnJvbnRNYXR0ZXIgPSBwYXJzZUZyb250TWF0dGVyKGNvbnRlbnQpO1xyXG5cclxuICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcclxuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XHJcbiAgICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGNvbnRlbnQuc2xpY2UoY2hhbmdlLnN0YXJ0SW5kZXgsIGNoYW5nZS5lbmRJbmRleCk7XHJcbiAgICAgICAgaWYgKGFjdHVhbENvbnRlbnQgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XHJcbiAgICAgICAgICAgIHN0YXJ0SW5kZXg6IGNoYW5nZS5zdGFydEluZGV4LFxyXG4gICAgICAgICAgICBlbmRJbmRleDogY2hhbmdlLmVuZEluZGV4LFxyXG4gICAgICAgICAgICBwYXRoOiBnZXRQYXRoKHBhdGhPckZpbGUpLFxyXG4gICAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IGNoYW5nZS5vbGRDb250ZW50LFxyXG4gICAgICAgICAgICBhY3R1YWxDb250ZW50XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNGcm9udG1hdHRlckNoYW5nZShjaGFuZ2UpKSB7XHJcbiAgICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGdldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRNYXR0ZXIsIGNoYW5nZS5mcm9udE1hdHRlcktleSk7XHJcbiAgICAgICAgaWYgKGFjdHVhbENvbnRlbnQgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XHJcbiAgICAgICAgICAgIHBhdGg6IGdldFBhdGgocGF0aE9yRmlsZSksXHJcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXHJcbiAgICAgICAgICAgIGFjdHVhbENvbnRlbnQsXHJcbiAgICAgICAgICAgIGZyb250TWF0dGVyS2V5OiBjaGFuZ2UuZnJvbnRNYXR0ZXJLZXlcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBpZiAoaXNDb250ZW50Q2hhbmdlKGEpICYmIGlzQ29udGVudENoYW5nZShiKSkge1xyXG4gICAgICAgIHJldHVybiBhLnN0YXJ0SW5kZXggLSBiLnN0YXJ0SW5kZXg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGEpICYmIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoYikpIHtcclxuICAgICAgICByZXR1cm4gYS5mcm9udE1hdHRlcktleS5sb2NhbGVDb21wYXJlKGIuZnJvbnRNYXR0ZXJLZXkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXNDb250ZW50Q2hhbmdlKGEpID8gLTEgOiAxO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQlVHOiBodHRwczovL2ZvcnVtLm9ic2lkaWFuLm1kL3QvYnVnLWR1cGxpY2F0ZWQtbGlua3MtaW4tbWV0YWRhdGFjYWNoZS1pbnNpZGUtZm9vdG5vdGVzLzg1NTUxXHJcbiAgICBjaGFuZ2VzID0gY2hhbmdlcy5maWx0ZXIoKGNoYW5nZSwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGNoYW5nZS5vbGRDb250ZW50ID09PSBjaGFuZ2UubmV3Q29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gIWRlZXBFcXVhbChjaGFuZ2UsIGNoYW5nZXNbaW5kZXggLSAxXSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1tpXTtcclxuICAgICAgaWYgKCFjaGFuZ2UpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwcmV2aW91c0NoYW5nZSA9IGNoYW5nZXNbaSAtIDFdO1xyXG4gICAgICBpZiAoIXByZXZpb3VzQ2hhbmdlKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UocHJldmlvdXNDaGFuZ2UpICYmIGlzQ29udGVudENoYW5nZShjaGFuZ2UpICYmIHByZXZpb3VzQ2hhbmdlLmVuZEluZGV4ICYmIGNoYW5nZS5zdGFydEluZGV4ICYmIHByZXZpb3VzQ2hhbmdlLmVuZEluZGV4ID4gY2hhbmdlLnN0YXJ0SW5kZXgpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ092ZXJsYXBwaW5nIGNoYW5nZXMnLCB7XHJcbiAgICAgICAgICBwcmV2aW91c0NoYW5nZSxcclxuICAgICAgICAgIGNoYW5nZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG5ld0NvbnRlbnQgPSAnJztcclxuICAgIGxldCBsYXN0SW5kZXggPSAwO1xyXG4gICAgbGV0IGZyb250TWF0dGVyQ2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcclxuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XHJcbiAgICAgICAgbmV3Q29udGVudCArPSBjb250ZW50LnNsaWNlKGxhc3RJbmRleCwgY2hhbmdlLnN0YXJ0SW5kZXgpO1xyXG4gICAgICAgIG5ld0NvbnRlbnQgKz0gY2hhbmdlLm5ld0NvbnRlbnQ7XHJcbiAgICAgICAgbGFzdEluZGV4ID0gY2hhbmdlLmVuZEluZGV4O1xyXG4gICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xyXG4gICAgICAgIHNldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRNYXR0ZXIsIGNoYW5nZS5mcm9udE1hdHRlcktleSwgY2hhbmdlLm5ld0NvbnRlbnQpO1xyXG4gICAgICAgIGZyb250TWF0dGVyQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZXdDb250ZW50ICs9IGNvbnRlbnQuc2xpY2UobGFzdEluZGV4KTtcclxuICAgIGlmIChmcm9udE1hdHRlckNoYW5nZWQpIHtcclxuICAgICAgbmV3Q29udGVudCA9IHNldEZyb250TWF0dGVyKG5ld0NvbnRlbnQsIGZyb250TWF0dGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdDb250ZW50O1xyXG4gIH0sIG92ZXJyaWRkZW5PcHRpb25zKTtcclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxvQkFJTztBQUVQLDJCQUE2QjtBQUU3Qix3QkFBd0I7QUFDeEIseUJBR087QUFDUCxtQkFBd0I7QUFyQnhCLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUFpRU8sU0FBUyxnQkFBZ0IsWUFBcUQ7QUFDbkYsU0FBUSxXQUFzQyxlQUFlO0FBQy9EO0FBUU8sU0FBUyxvQkFBb0IsWUFBeUQ7QUFDM0YsU0FBUSxXQUEwQyxtQkFBbUI7QUFDdkU7QUFZQSxlQUFzQixpQkFBaUIsS0FBVSxZQUF3QixpQkFBOEMsZUFBc0MsQ0FBQyxHQUFrQjtBQUM5SyxRQUFNLHdCQUErQyxFQUFFLHVCQUF1QixJQUFNO0FBQ3BGLFFBQU0sb0JBQTJDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBQzdGLFlBQU0sc0JBQVEsS0FBSyxZQUFZLE9BQU8sWUFBWTtBQUNoRCxRQUFJLFVBQVUsVUFBTSxtQ0FBYSxlQUFlO0FBQ2hELFVBQU0sa0JBQWMscUNBQWlCLE9BQU87QUFFNUMsZUFBVyxVQUFVLFNBQVM7QUFDNUIsVUFBSSxnQkFBZ0IsTUFBTSxHQUFHO0FBQzNCLGNBQU0sZ0JBQWdCLFFBQVEsTUFBTSxPQUFPLFlBQVksT0FBTyxRQUFRO0FBQ3RFLFlBQUksa0JBQWtCLE9BQU8sWUFBWTtBQUN2QyxrQkFBUSxLQUFLLG9CQUFvQjtBQUFBLFlBQy9CLFlBQVksT0FBTztBQUFBLFlBQ25CLFVBQVUsT0FBTztBQUFBLFlBQ2pCLFVBQU0sMkJBQVEsVUFBVTtBQUFBLFlBQ3hCLGlCQUFpQixPQUFPO0FBQUEsWUFDeEI7QUFBQSxVQUNGLENBQUM7QUFFRCxpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGLFdBQVcsb0JBQW9CLE1BQU0sR0FBRztBQUN0QyxjQUFNLG9CQUFnQixzQ0FBdUIsYUFBYSxPQUFPLGNBQWM7QUFDL0UsWUFBSSxrQkFBa0IsT0FBTyxZQUFZO0FBQ3ZDLGtCQUFRLEtBQUssb0JBQW9CO0FBQUEsWUFDL0IsVUFBTSwyQkFBUSxVQUFVO0FBQUEsWUFDeEIsaUJBQWlCLE9BQU87QUFBQSxZQUN4QjtBQUFBLFlBQ0EsZ0JBQWdCLE9BQU87QUFBQSxVQUN6QixDQUFDO0FBRUQsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxZQUFRLEtBQUssQ0FBQyxHQUFHLE1BQU07QUFDckIsVUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLEdBQUc7QUFDNUMsZUFBTyxFQUFFLGFBQWEsRUFBRTtBQUFBLE1BQzFCO0FBRUEsVUFBSSxvQkFBb0IsQ0FBQyxLQUFLLG9CQUFvQixDQUFDLEdBQUc7QUFDcEQsZUFBTyxFQUFFLGVBQWUsY0FBYyxFQUFFLGNBQWM7QUFBQSxNQUN4RDtBQUVBLGFBQU8sZ0JBQWdCLENBQUMsSUFBSSxLQUFLO0FBQUEsSUFDbkMsQ0FBQztBQUdELGNBQVUsUUFBUSxPQUFPLENBQUMsUUFBUSxVQUFVO0FBQzFDLFVBQUksT0FBTyxlQUFlLE9BQU8sWUFBWTtBQUMzQyxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksVUFBVSxHQUFHO0FBQ2YsZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPLEtBQUMseUJBQVUsUUFBUSxRQUFRLFFBQVEsQ0FBQyxDQUFDO0FBQUEsSUFDOUMsQ0FBQztBQUVELGFBQVMsSUFBSSxHQUFHLElBQUksUUFBUSxRQUFRLEtBQUs7QUFDdkMsWUFBTSxTQUFTLFFBQVEsQ0FBQztBQUN4QixVQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsTUFDRjtBQUNBLFlBQU0saUJBQWlCLFFBQVEsSUFBSSxDQUFDO0FBQ3BDLFVBQUksQ0FBQyxnQkFBZ0I7QUFDbkI7QUFBQSxNQUNGO0FBRUEsVUFBSSxnQkFBZ0IsY0FBYyxLQUFLLGdCQUFnQixNQUFNLEtBQUssZUFBZSxZQUFZLE9BQU8sY0FBYyxlQUFlLFdBQVcsT0FBTyxZQUFZO0FBQzdKLGdCQUFRLEtBQUssdUJBQXVCO0FBQUEsVUFDbEM7QUFBQSxVQUNBO0FBQUEsUUFDRixDQUFDO0FBQ0QsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsUUFBSSxhQUFhO0FBQ2pCLFFBQUksWUFBWTtBQUNoQixRQUFJLHFCQUFxQjtBQUV6QixlQUFXLFVBQVUsU0FBUztBQUM1QixVQUFJLGdCQUFnQixNQUFNLEdBQUc7QUFDM0Isc0JBQWMsUUFBUSxNQUFNLFdBQVcsT0FBTyxVQUFVO0FBQ3hELHNCQUFjLE9BQU87QUFDckIsb0JBQVksT0FBTztBQUFBLE1BQ3JCLFdBQVcsb0JBQW9CLE1BQU0sR0FBRztBQUN0QyxrREFBdUIsYUFBYSxPQUFPLGdCQUFnQixPQUFPLFVBQVU7QUFDNUUsNkJBQXFCO0FBQUEsTUFDdkI7QUFBQSxJQUNGO0FBRUEsa0JBQWMsUUFBUSxNQUFNLFNBQVM7QUFDckMsUUFBSSxvQkFBb0I7QUFDdEIsdUJBQWEsbUNBQWUsWUFBWSxXQUFXO0FBQUEsSUFDckQ7QUFDQSxXQUFPO0FBQUEsRUFDVCxHQUFHLGlCQUFpQjtBQUN0QjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,64 @@
1
+ import type { App } from 'obsidian';
2
+ import type { RetryOptions } from '../Async.ts';
3
+ import type { ValueProvider } from '../ValueProvider.ts';
4
+ import type { PathOrFile } from './FileSystem.ts';
5
+ /**
6
+ * Represents a file change in the Vault.
7
+ */
8
+ export interface FileChange {
9
+ /**
10
+ * The old content that will be replaced.
11
+ */
12
+ oldContent: string;
13
+ /**
14
+ * The new content to replace the old content.
15
+ */
16
+ newContent: string;
17
+ }
18
+ /**
19
+ * Represents a frontmatter change in the Vault.
20
+ */
21
+ export interface FrontmatterChange extends FileChange {
22
+ /**
23
+ * The key in the frontmatter to use for the link.
24
+ */
25
+ frontMatterKey: string;
26
+ }
27
+ /**
28
+ * Represents a content body change in the Vault.
29
+ */
30
+ export interface ContentChange extends FileChange {
31
+ /**
32
+ * The start index of the change in the file content.
33
+ */
34
+ startIndex: number;
35
+ /**
36
+ * The end index of the change in the file content.
37
+ */
38
+ endIndex: number;
39
+ }
40
+ /**
41
+ * Checks if a file change is a content change.
42
+ *
43
+ * @param fileChange - The file change to check.
44
+ * @returns A boolean indicating whether the file change is a content change.
45
+ */
46
+ export declare function isContentChange(fileChange: FileChange): fileChange is ContentChange;
47
+ /**
48
+ * Checks if a file change is a frontmatter change.
49
+ *
50
+ * @param fileChange - The file change to check.
51
+ * @returns A boolean indicating whether the file change is a frontmatter change.
52
+ */
53
+ export declare function isFrontmatterChange(fileChange: FileChange): fileChange is FrontmatterChange;
54
+ /**
55
+ * Applies a series of file changes to the specified file or path within the application.
56
+ *
57
+ * @param app - The application instance where the file changes will be applied.
58
+ * @param pathOrFile - The path or file to which the changes should be applied.
59
+ * @param changesProvider - A provider that returns an array of file changes to apply.
60
+ * @param retryOptions - Optional settings that determine how the operation should retry on failure.
61
+ *
62
+ * @returns A promise that resolves when the file changes have been successfully applied.
63
+ */
64
+ export declare function applyFileChanges(app: App, pathOrFile: PathOrFile, changesProvider: ValueProvider<FileChange[]>, retryOptions?: Partial<RetryOptions>): Promise<void>;
@@ -0,0 +1,96 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id);return module.__esModule&&module.default?module.default:module},__require)})()
7
+
8
+ "use strict";
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var FileManager_exports = {};
27
+ __export(FileManager_exports, {
28
+ addAlias: () => addAlias,
29
+ deleteAlias: () => deleteAlias,
30
+ processFrontMatter: () => processFrontMatter
31
+ });
32
+ module.exports = __toCommonJS(FileManager_exports);
33
+ var import_Object = require('../Object.cjs');
34
+ var import_FileSystem = require('./FileSystem.cjs');
35
+ var import_FrontMatter = require('./FrontMatter.cjs');
36
+ var import_Vault = require('./Vault.cjs');
37
+ var __process = globalThis["process"] ?? {
38
+ "cwd": () => "/",
39
+ "env": {},
40
+ "platform": "android"
41
+ };
42
+ async function processFrontMatter(app, pathOrFile, frontMatterFn, retryOptions = {}) {
43
+ const file = (0, import_FileSystem.getFile)(app, pathOrFile);
44
+ const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
45
+ const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
46
+ await (0, import_Vault.process)(app, file, async (content) => {
47
+ const oldFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
48
+ const newFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
49
+ const result = await frontMatterFn(newFrontMatter);
50
+ if (result === null) {
51
+ return null;
52
+ }
53
+ if ((0, import_Object.deepEqual)(oldFrontMatter, newFrontMatter)) {
54
+ return content;
55
+ }
56
+ return (0, import_FrontMatter.setFrontMatter)(content, newFrontMatter);
57
+ }, overriddenOptions);
58
+ }
59
+ async function addAlias(app, pathOrFile, alias) {
60
+ if (!alias) {
61
+ return;
62
+ }
63
+ const file = (0, import_FileSystem.getFile)(app, pathOrFile);
64
+ if (alias === file.basename) {
65
+ return;
66
+ }
67
+ await processFrontMatter(app, pathOrFile, (frontMatter) => {
68
+ if (!frontMatter.aliases) {
69
+ frontMatter.aliases = [];
70
+ }
71
+ if (!frontMatter.aliases.includes(alias)) {
72
+ frontMatter.aliases.push(alias);
73
+ }
74
+ });
75
+ }
76
+ async function deleteAlias(app, pathOrFile, alias) {
77
+ if (!alias) {
78
+ return;
79
+ }
80
+ await processFrontMatter(app, pathOrFile, (frontMatter) => {
81
+ if (!frontMatter.aliases) {
82
+ return;
83
+ }
84
+ frontMatter.aliases = frontMatter.aliases.filter((a) => a != alias);
85
+ if (frontMatter.aliases.length === 0) {
86
+ delete frontMatter.aliases;
87
+ }
88
+ });
89
+ }
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ addAlias,
93
+ deleteAlias,
94
+ processFrontMatter
95
+ });
96
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVNYW5hZ2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuaW1wb3J0IHR5cGUge1xuICBNYXliZVByb21pc2UsXG4gIFJldHJ5T3B0aW9uc1xufSBmcm9tICcuLi9Bc3luYy50cyc7XHJcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJy4uL09iamVjdC50cyc7XHJcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XHJcbmltcG9ydCB7IGdldEZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xyXG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRNYXR0ZXIgfSBmcm9tICcuL0Zyb250TWF0dGVyLnRzJztcclxuaW1wb3J0IHtcbiAgcGFyc2VGcm9udE1hdHRlcixcbiAgc2V0RnJvbnRNYXR0ZXJcbn0gZnJvbSAnLi9Gcm9udE1hdHRlci50cyc7XHJcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL1ZhdWx0LnRzJztcclxuXHJcbi8qKlxyXG4gKiBQcm9jZXNzZXMgdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUsIGFsbG93aW5nIG1vZGlmaWNhdGlvbnMgdmlhIGEgcHJvdmlkZWQgZnVuY3Rpb24uXHJcbiAqXHJcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRNYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxyXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxyXG4gKiBAcGFyYW0gZnJvbnRNYXR0ZXJGbiAtIEEgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyB0aGUgZnJvbnQgbWF0dGVyLlxyXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwuIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgcmV0cnlpbmcgdGhlIHByb2Nlc3MuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCBvcHRpb25zIHdpbGwgYmUgdXNlZC5cclxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnJvbnQgbWF0dGVyIGhhcyBiZWVuIHByb2Nlc3NlZCBhbmQgc2F2ZWQuXHJcbiAqL1xyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXIgPSB1bmtub3duPihhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgZnJvbnRNYXR0ZXJGbjogKGZyb250TWF0dGVyOiBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPikgPT4gTWF5YmVQcm9taXNlPHZvaWQgfCBudWxsPiwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8dm9pZD4ge1xyXG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XHJcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcclxuICBjb25zdCBvdmVycmlkZGVuT3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyAuLi5ERUZBVUxUX1JFVFJZX09QVElPTlMsIC4uLnJldHJ5T3B0aW9ucyB9O1xyXG5cclxuICBhd2FpdCBwcm9jZXNzKGFwcCwgZmlsZSwgYXN5bmMgKGNvbnRlbnQpID0+IHtcclxuICAgIGNvbnN0IG9sZEZyb250TWF0dGVyID0gcGFyc2VGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj4oY29udGVudCk7XHJcbiAgICBjb25zdCBuZXdGcm9udE1hdHRlciA9IHBhcnNlRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+KGNvbnRlbnQpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZnJvbnRNYXR0ZXJGbihuZXdGcm9udE1hdHRlcik7XHJcbiAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkZWVwRXF1YWwob2xkRnJvbnRNYXR0ZXIsIG5ld0Zyb250TWF0dGVyKSkge1xyXG4gICAgICByZXR1cm4gY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2V0RnJvbnRNYXR0ZXIoY29udGVudCwgbmV3RnJvbnRNYXR0ZXIpO1xyXG4gIH0sIG92ZXJyaWRkZW5PcHRpb25zKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHMgYW4gYWxpYXMgdG8gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC5cclxuICpcclxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXHJcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgVEZpbGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbm90ZS5cclxuICogQHBhcmFtIGFsaWFzIC0gVGhlIGFsaWFzIHRvIGFkZC5cclxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYWxpYXMgaGFzIGJlZW4gYWRkZWQuXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQWxpYXMoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGFsaWFzPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgaWYgKCFhbGlhcykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcclxuICBpZiAoYWxpYXMgPT09IGZpbGUuYmFzZW5hbWUpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGF3YWl0IHByb2Nlc3NGcm9udE1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udE1hdHRlcikgPT4ge1xyXG4gICAgaWYgKCFmcm9udE1hdHRlci5hbGlhc2VzKSB7XHJcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWZyb250TWF0dGVyLmFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XHJcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMucHVzaChhbGlhcyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWxldGVzIGFuIGFsaWFzIGZyb20gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZXhpc3RzLlxyXG4gKlxyXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxyXG4gKiBAcGFyYW0gYWxpYXMgLSBUaGUgYWxpYXMgdG8gZGVsZXRlLlxyXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhbGlhcyBoYXMgYmVlbiBkZWxldGVkLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFsaWFzKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBhbGlhcz86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gIGlmICghYWxpYXMpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGF3YWl0IHByb2Nlc3NGcm9udE1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udE1hdHRlcikgPT4ge1xyXG4gICAgaWYgKCFmcm9udE1hdHRlci5hbGlhc2VzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmcm9udE1hdHRlci5hbGlhc2VzID0gZnJvbnRNYXR0ZXIuYWxpYXNlcy5maWx0ZXIoKGEpID0+IGEgIT0gYWxpYXMpO1xyXG5cclxuICAgIGlmIChmcm9udE1hdHRlci5hbGlhc2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBkZWxldGUgZnJvbnRNYXR0ZXIuYWxpYXNlcztcclxuICAgIH1cclxuICB9KTtcclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSxvQkFBMEI7QUFFMUIsd0JBQXdCO0FBRXhCLHlCQUdPO0FBQ1AsbUJBQXdCO0FBbkJ4QixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBNEJBLGVBQXNCLG1CQUFnRCxLQUFVLFlBQXdCLGVBQW1HLGVBQXNDLENBQUMsR0FBa0I7QUFDbFEsUUFBTSxXQUFPLDJCQUFRLEtBQUssVUFBVTtBQUNwQyxRQUFNLHdCQUErQyxFQUFFLHVCQUF1QixJQUFNO0FBQ3BGLFFBQU0sb0JBQTJDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBRTdGLFlBQU0sc0JBQVEsS0FBSyxNQUFNLE9BQU8sWUFBWTtBQUMxQyxVQUFNLHFCQUFpQixxQ0FBb0MsT0FBTztBQUNsRSxVQUFNLHFCQUFpQixxQ0FBb0MsT0FBTztBQUNsRSxVQUFNLFNBQVMsTUFBTSxjQUFjLGNBQWM7QUFDakQsUUFBSSxXQUFXLE1BQU07QUFDbkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxZQUFJLHlCQUFVLGdCQUFnQixjQUFjLEdBQUc7QUFDN0MsYUFBTztBQUFBLElBQ1Q7QUFFQSxlQUFPLG1DQUFlLFNBQVMsY0FBYztBQUFBLEVBQy9DLEdBQUcsaUJBQWlCO0FBQ3RCO0FBVUEsZUFBc0IsU0FBUyxLQUFVLFlBQXdCLE9BQStCO0FBQzlGLE1BQUksQ0FBQyxPQUFPO0FBQ1Y7QUFBQSxFQUNGO0FBRUEsUUFBTSxXQUFPLDJCQUFRLEtBQUssVUFBVTtBQUNwQyxNQUFJLFVBQVUsS0FBSyxVQUFVO0FBQzNCO0FBQUEsRUFDRjtBQUVBLFFBQU0sbUJBQW1CLEtBQUssWUFBWSxDQUFDLGdCQUFnQjtBQUN6RCxRQUFJLENBQUMsWUFBWSxTQUFTO0FBQ3hCLGtCQUFZLFVBQVUsQ0FBQztBQUFBLElBQ3pCO0FBRUEsUUFBSSxDQUFDLFlBQVksUUFBUSxTQUFTLEtBQUssR0FBRztBQUN4QyxrQkFBWSxRQUFRLEtBQUssS0FBSztBQUFBLElBQ2hDO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFVQSxlQUFzQixZQUFZLEtBQVUsWUFBd0IsT0FBK0I7QUFDakcsTUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG1CQUFtQixLQUFLLFlBQVksQ0FBQyxnQkFBZ0I7QUFDekQsUUFBSSxDQUFDLFlBQVksU0FBUztBQUN4QjtBQUFBLElBQ0Y7QUFFQSxnQkFBWSxVQUFVLFlBQVksUUFBUSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUs7QUFFbEUsUUFBSSxZQUFZLFFBQVEsV0FBVyxHQUFHO0FBQ3BDLGFBQU8sWUFBWTtBQUFBLElBQ3JCO0FBQUEsRUFDRixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,33 @@
1
+ import type { App } from 'obsidian';
2
+ import type { MaybePromise, RetryOptions } from '../Async.ts';
3
+ import type { PathOrFile } from './FileSystem.ts';
4
+ import type { CombinedFrontMatter } from './FrontMatter.ts';
5
+ /**
6
+ * Processes the front matter of a given file, allowing modifications via a provided function.
7
+ *
8
+ * @typeParam CustomFrontMatter - The type of custom front matter.
9
+ * @param app - The Obsidian app instance.
10
+ * @param pathOrFile - The path or TFile object representing the note.
11
+ * @param frontMatterFn - A function that modifies the front matter.
12
+ * @param retryOptions - Optional. Configuration options for retrying the process. If not provided, default options will be used.
13
+ * @returns A promise that resolves when the front matter has been processed and saved.
14
+ */
15
+ export declare function processFrontMatter<CustomFrontMatter = unknown>(app: App, pathOrFile: PathOrFile, frontMatterFn: (frontMatter: CombinedFrontMatter<CustomFrontMatter>) => MaybePromise<void | null>, retryOptions?: Partial<RetryOptions>): Promise<void>;
16
+ /**
17
+ * Adds an alias to the front matter of a given file if it does not already exist.
18
+ *
19
+ * @param app - The Obsidian app instance.
20
+ * @param pathOrFile - The path or TFile object representing the note.
21
+ * @param alias - The alias to add.
22
+ * @returns A promise that resolves when the alias has been added.
23
+ */
24
+ export declare function addAlias(app: App, pathOrFile: PathOrFile, alias?: string): Promise<void>;
25
+ /**
26
+ * Deletes an alias from the front matter of a given file if it exists.
27
+ *
28
+ * @param app - The Obsidian app instance.
29
+ * @param pathOrFile - The path or TFile object representing the note.
30
+ * @param alias - The alias to delete.
31
+ * @returns A promise that resolves when the alias has been deleted.
32
+ */
33
+ export declare function deleteAlias(app: App, pathOrFile: PathOrFile, alias?: string): Promise<void>;
@@ -25,77 +25,31 @@ var __copyProps = (to, from, except, desc) => {
25
25
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
26
  var FrontMatter_exports = {};
27
27
  __export(FrontMatter_exports, {
28
- addAlias: () => addAlias,
29
- deleteAlias: () => deleteAlias,
30
- processFrontMatter: () => processFrontMatter
28
+ parseFrontMatter: () => parseFrontMatter,
29
+ setFrontMatter: () => setFrontMatter
31
30
  });
32
31
  module.exports = __toCommonJS(FrontMatter_exports);
33
32
  var import_obsidian = require('obsidian');
34
- var import_Object = require('../Object.cjs');
35
- var import_FileSystem = require('./FileSystem.cjs');
36
- var import_Vault = require('./Vault.cjs');
37
33
  var __process = globalThis["process"] ?? {
38
34
  "cwd": () => "/",
39
35
  "env": {},
40
36
  "platform": "android"
41
37
  };
42
- async function processFrontMatter(app, pathOrFile, frontMatterFn, retryOptions = {}) {
43
- const file = (0, import_FileSystem.getFile)(app, pathOrFile);
44
- const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
45
- const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
46
- await (0, import_Vault.process)(app, file, async (content) => {
47
- const frontMatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
48
- const oldFrontMatter = (0, import_obsidian.parseYaml)(frontMatterInfo.frontmatter) ?? {};
49
- const newFrontMatter = (0, import_obsidian.parseYaml)(frontMatterInfo.frontmatter) ?? {};
50
- const result = await frontMatterFn(newFrontMatter);
51
- if (result === null) {
52
- return null;
53
- }
54
- if ((0, import_Object.deepEqual)(oldFrontMatter, newFrontMatter)) {
55
- return content;
56
- }
57
- if (Object.keys(newFrontMatter).length === 0) {
58
- return content.slice(frontMatterInfo.contentStart);
59
- }
60
- const newFrontMatterStr = (0, import_obsidian.stringifyYaml)(newFrontMatter);
61
- return frontMatterInfo.exists ? content.slice(0, frontMatterInfo.from) + newFrontMatterStr + content.slice(frontMatterInfo.to) : "---\n" + newFrontMatterStr + "---\n" + content;
62
- }, overriddenOptions);
38
+ function parseFrontMatter(content) {
39
+ const frontMatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
40
+ return (0, import_obsidian.parseYaml)(frontMatterInfo.frontmatter) ?? {};
63
41
  }
64
- async function addAlias(app, pathOrFile, alias) {
65
- if (!alias) {
66
- return;
42
+ function setFrontMatter(content, newFrontMatter) {
43
+ const frontMatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
44
+ if (Object.keys(newFrontMatter).length === 0) {
45
+ return content.slice(frontMatterInfo.contentStart);
67
46
  }
68
- const file = (0, import_FileSystem.getFile)(app, pathOrFile);
69
- if (alias === file.basename) {
70
- return;
71
- }
72
- await processFrontMatter(app, pathOrFile, (frontMatter) => {
73
- if (!frontMatter.aliases) {
74
- frontMatter.aliases = [];
75
- }
76
- if (!frontMatter.aliases.includes(alias)) {
77
- frontMatter.aliases.push(alias);
78
- }
79
- });
80
- }
81
- async function deleteAlias(app, pathOrFile, alias) {
82
- if (!alias) {
83
- return;
84
- }
85
- await processFrontMatter(app, pathOrFile, (frontMatter) => {
86
- if (!frontMatter.aliases) {
87
- return;
88
- }
89
- frontMatter.aliases = frontMatter.aliases.filter((a) => a != alias);
90
- if (frontMatter.aliases.length === 0) {
91
- delete frontMatter.aliases;
92
- }
93
- });
47
+ const newFrontMatterStr = (0, import_obsidian.stringifyYaml)(newFrontMatter);
48
+ return frontMatterInfo.exists ? content.slice(0, frontMatterInfo.from) + newFrontMatterStr + content.slice(frontMatterInfo.to) : "---\n" + newFrontMatterStr + "---\n" + content;
94
49
  }
95
50
  // Annotate the CommonJS export names for ESM import in node:
96
51
  0 && (module.exports = {
97
- addAlias,
98
- deleteAlias,
99
- processFrontMatter
52
+ parseFrontMatter,
53
+ setFrontMatter
100
54
  });
101
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0Zyb250TWF0dGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZyb250TWF0dGVyXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBhbmQgbWFuYWdpbmcgWUFNTCBmcm9udCBtYXR0ZXIgaW4gT2JzaWRpYW4gbm90ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBwLFxuICBnZXRGcm9udE1hdHRlckluZm8sXG4gIHBhcnNlWWFtbCxcbiAgc3RyaW5naWZ5WWFtbFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgTWF5YmVQcm9taXNlLFxuICBSZXRyeU9wdGlvbnNcbn0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyBnZXRGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL1ZhdWx0LnRzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBmcm9udCBtYXR0ZXIgb2YgYW4gT2JzaWRpYW4gZmlsZS5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaGVscC5vYnNpZGlhbi5tZC9FZGl0aW5nK2FuZCtmb3JtYXR0aW5nL1Byb3BlcnRpZXMjRGVmYXVsdCtwcm9wZXJ0aWVzfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuRnJvbnRNYXR0ZXIge1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYWxpYXNlcyBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBhbGlhc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBub3RlLlxuICAgKi9cbiAgY3NzY2xhc3Nlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiB0YWdzIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBmcm9udCBtYXR0ZXIgZm9yIHB1Ymxpc2hpbmcgaW4gT2JzaWRpYW4uXG4gKiBAc2VlIHtAbGluayBodHRwczovL2hlbHAub2JzaWRpYW4ubWQvRWRpdGluZythbmQrZm9ybWF0dGluZy9Qcm9wZXJ0aWVzI1Byb3BlcnRpZXMrZm9yK09ic2lkaWFuK1B1Ymxpc2h9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5QdWJsaXNoRnJvbnRNYXR0ZXIge1xuICAvKipcbiAgICogVGhlIGNvdmVyIGltYWdlIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGNvdmVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBpbWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcm1hbmVudCBsaW5rIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIHBlcm1hbGluaz86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbm90ZSBpcyBwdWJsaXNoZWQuXG4gICAqL1xuICBwdWJsaXNoPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb21iaW5lZCBmcm9udCBtYXR0ZXIgb2YgYSBkb2N1bWVudC5cbiAqIEl0IGlzIGEgdW5pb24gb2YgY3VzdG9tIGZyb250IG1hdHRlciwgT2JzaWRpYW4gZnJvbnQgbWF0dGVyLCBhbmQgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udE1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+ID0gQ3VzdG9tRnJvbnRNYXR0ZXIgJiBPYnNpZGlhbkZyb250TWF0dGVyICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBmaWxlLCBhbGxvd2luZyBtb2RpZmljYXRpb25zIHZpYSBhIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRNYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXG4gKiBAcGFyYW0gZnJvbnRNYXR0ZXJGbiAtIEEgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyB0aGUgZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsLiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHJldHJ5aW5nIHRoZSBwcm9jZXNzLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHQgb3B0aW9ucyB3aWxsIGJlIHVzZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmcm9udCBtYXR0ZXIgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZCBzYXZlZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+KGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBmcm9udE1hdHRlckZuOiAoZnJvbnRNYXR0ZXI6IENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+KSA9PiBNYXliZVByb21pc2U8dm9pZCB8IG51bGw+LCByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDYwMDAwIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG5cbiAgYXdhaXQgcHJvY2VzcyhhcHAsIGZpbGUsIGFzeW5jIChjb250ZW50KSA9PiB7XG4gICAgY29uc3QgZnJvbnRNYXR0ZXJJbmZvID0gZ2V0RnJvbnRNYXR0ZXJJbmZvKGNvbnRlbnQpO1xuXG4gICAgY29uc3Qgb2xkRnJvbnRNYXR0ZXIgPSAocGFyc2VZYW1sKGZyb250TWF0dGVySW5mby5mcm9udG1hdHRlcikgPz8ge30pIGFzIENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+O1xuICAgIGNvbnN0IG5ld0Zyb250TWF0dGVyID0gKHBhcnNlWWFtbChmcm9udE1hdHRlckluZm8uZnJvbnRtYXR0ZXIpID8/IHt9KSBhcyBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPjtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmcm9udE1hdHRlckZuKG5ld0Zyb250TWF0dGVyKTtcbiAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGVlcEVxdWFsKG9sZEZyb250TWF0dGVyLCBuZXdGcm9udE1hdHRlcikpIHtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhuZXdGcm9udE1hdHRlcikubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gY29udGVudC5zbGljZShmcm9udE1hdHRlckluZm8uY29udGVudFN0YXJ0KTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdGcm9udE1hdHRlclN0ciA9IHN0cmluZ2lmeVlhbWwobmV3RnJvbnRNYXR0ZXIpO1xuXG4gICAgcmV0dXJuIGZyb250TWF0dGVySW5mby5leGlzdHNcbiAgICAgID8gY29udGVudC5zbGljZSgwLCBmcm9udE1hdHRlckluZm8uZnJvbSkgKyBuZXdGcm9udE1hdHRlclN0ciArIGNvbnRlbnQuc2xpY2UoZnJvbnRNYXR0ZXJJbmZvLnRvKVxuICAgICAgOiAnLS0tXFxuJyArIG5ld0Zyb250TWF0dGVyU3RyICsgJy0tLVxcbicgKyBjb250ZW50O1xuICB9LCBvdmVycmlkZGVuT3B0aW9ucyk7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhbGlhcyB0byB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxuICogQHBhcmFtIGFsaWFzIC0gVGhlIGFsaWFzIHRvIGFkZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFsaWFzIGhhcyBiZWVuIGFkZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQWxpYXMoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGFsaWFzPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYWxpYXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIHBhdGhPckZpbGUpO1xuICBpZiAoYWxpYXMgPT09IGZpbGUuYmFzZW5hbWUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBwcm9jZXNzRnJvbnRNYXR0ZXIoYXBwLCBwYXRoT3JGaWxlLCAoZnJvbnRNYXR0ZXIpID0+IHtcbiAgICBpZiAoIWZyb250TWF0dGVyLmFsaWFzZXMpIHtcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMgPSBbXTtcbiAgICB9XG5cbiAgICBpZiAoIWZyb250TWF0dGVyLmFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XG4gICAgICBmcm9udE1hdHRlci5hbGlhc2VzLnB1c2goYWxpYXMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlcyBhbiBhbGlhcyBmcm9tIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBmaWxlIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgVEZpbGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbm90ZS5cbiAqIEBwYXJhbSBhbGlhcyAtIFRoZSBhbGlhcyB0byBkZWxldGUuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhbGlhcyBoYXMgYmVlbiBkZWxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlQWxpYXMoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGFsaWFzPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghYWxpYXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBwcm9jZXNzRnJvbnRNYXR0ZXIoYXBwLCBwYXRoT3JGaWxlLCAoZnJvbnRNYXR0ZXIpID0+IHtcbiAgICBpZiAoIWZyb250TWF0dGVyLmFsaWFzZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmcm9udE1hdHRlci5hbGlhc2VzID0gZnJvbnRNYXR0ZXIuYWxpYXNlcy5maWx0ZXIoKGEpID0+IGEgIT0gYWxpYXMpO1xuXG4gICAgaWYgKGZyb250TWF0dGVyLmFsaWFzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZnJvbnRNYXR0ZXIuYWxpYXNlcztcbiAgICB9XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEsc0JBS087QUFNUCxvQkFBMEI7QUFFMUIsd0JBQXdCO0FBQ3hCLG1CQUF3QjtBQXhCeEIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQTRGQSxlQUFzQixtQkFBZ0QsS0FBVSxZQUF3QixlQUFtRyxlQUFzQyxDQUFDLEdBQWtCO0FBQ2xRLFFBQU0sV0FBTywyQkFBUSxLQUFLLFVBQVU7QUFDcEMsUUFBTSx3QkFBK0MsRUFBRSx1QkFBdUIsSUFBTTtBQUNwRixRQUFNLG9CQUEyQyxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsYUFBYTtBQUU3RixZQUFNLHNCQUFRLEtBQUssTUFBTSxPQUFPLFlBQVk7QUFDMUMsVUFBTSxzQkFBa0Isb0NBQW1CLE9BQU87QUFFbEQsVUFBTSxxQkFBa0IsMkJBQVUsZ0JBQWdCLFdBQVcsS0FBSyxDQUFDO0FBQ25FLFVBQU0scUJBQWtCLDJCQUFVLGdCQUFnQixXQUFXLEtBQUssQ0FBQztBQUNuRSxVQUFNLFNBQVMsTUFBTSxjQUFjLGNBQWM7QUFDakQsUUFBSSxXQUFXLE1BQU07QUFDbkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxZQUFJLHlCQUFVLGdCQUFnQixjQUFjLEdBQUc7QUFDN0MsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFJLE9BQU8sS0FBSyxjQUFjLEVBQUUsV0FBVyxHQUFHO0FBQzVDLGFBQU8sUUFBUSxNQUFNLGdCQUFnQixZQUFZO0FBQUEsSUFDbkQ7QUFFQSxVQUFNLHdCQUFvQiwrQkFBYyxjQUFjO0FBRXRELFdBQU8sZ0JBQWdCLFNBQ25CLFFBQVEsTUFBTSxHQUFHLGdCQUFnQixJQUFJLElBQUksb0JBQW9CLFFBQVEsTUFBTSxnQkFBZ0IsRUFBRSxJQUM3RixVQUFVLG9CQUFvQixVQUFVO0FBQUEsRUFDOUMsR0FBRyxpQkFBaUI7QUFDdEI7QUFVQSxlQUFzQixTQUFTLEtBQVUsWUFBd0IsT0FBK0I7QUFDOUYsTUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFdBQU8sMkJBQVEsS0FBSyxVQUFVO0FBQ3BDLE1BQUksVUFBVSxLQUFLLFVBQVU7QUFDM0I7QUFBQSxFQUNGO0FBRUEsUUFBTSxtQkFBbUIsS0FBSyxZQUFZLENBQUMsZ0JBQWdCO0FBQ3pELFFBQUksQ0FBQyxZQUFZLFNBQVM7QUFDeEIsa0JBQVksVUFBVSxDQUFDO0FBQUEsSUFDekI7QUFFQSxRQUFJLENBQUMsWUFBWSxRQUFRLFNBQVMsS0FBSyxHQUFHO0FBQ3hDLGtCQUFZLFFBQVEsS0FBSyxLQUFLO0FBQUEsSUFDaEM7QUFBQSxFQUNGLENBQUM7QUFDSDtBQVVBLGVBQXNCLFlBQVksS0FBVSxZQUF3QixPQUErQjtBQUNqRyxNQUFJLENBQUMsT0FBTztBQUNWO0FBQUEsRUFDRjtBQUVBLFFBQU0sbUJBQW1CLEtBQUssWUFBWSxDQUFDLGdCQUFnQjtBQUN6RCxRQUFJLENBQUMsWUFBWSxTQUFTO0FBQ3hCO0FBQUEsSUFDRjtBQUVBLGdCQUFZLFVBQVUsWUFBWSxRQUFRLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSztBQUVsRSxRQUFJLFlBQVksUUFBUSxXQUFXLEdBQUc7QUFDcEMsYUFBTyxZQUFZO0FBQUEsSUFDckI7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
55
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0Zyb250TWF0dGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZyb250TWF0dGVyXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBhbmQgbWFuYWdpbmcgWUFNTCBmcm9udCBtYXR0ZXIgaW4gT2JzaWRpYW4gbm90ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgZ2V0RnJvbnRNYXR0ZXJJbmZvLFxuICBwYXJzZVlhbWwsXG4gIHN0cmluZ2lmeVlhbWxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBvZiBhbiBPYnNpZGlhbiBmaWxlLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL0VkaXRpbmcrYW5kK2Zvcm1hdHRpbmcvUHJvcGVydGllcyNEZWZhdWx0K3Byb3BlcnRpZXN9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Gcm9udE1hdHRlciB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhbGlhc2VzIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGFsaWFzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIG5vdGUuXG4gICAqL1xuICBjc3NjbGFzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHRhZ3MgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgdGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBmb3IgcHVibGlzaGluZyBpbiBPYnNpZGlhbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaGVscC5vYnNpZGlhbi5tZC9FZGl0aW5nK2FuZCtmb3JtYXR0aW5nL1Byb3BlcnRpZXMjUHJvcGVydGllcytmb3IrT2JzaWRpYW4rUHVibGlzaH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblB1Ymxpc2hGcm9udE1hdHRlciB7XG4gIC8qKlxuICAgKiBUaGUgY292ZXIgaW1hZ2UgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgY292ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltYWdlIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWFuZW50IGxpbmsgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgcGVybWFsaW5rPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBub3RlIGlzIHB1Ymxpc2hlZC5cbiAgICovXG4gIHB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbWJpbmVkIGZyb250IG1hdHRlciBvZiBhIGRvY3VtZW50LlxuICogSXQgaXMgYSB1bmlvbiBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLCBPYnNpZGlhbiBmcm9udCBtYXR0ZXIsIGFuZCBhZGRpdGlvbmFsIHByb3BlcnRpZXMuXG4gKiBAdHlwZVBhcmFtIEN1c3RvbUZyb250TWF0dGVyIC0gVGhlIHR5cGUgb2YgY3VzdG9tIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj4gPSBDdXN0b21Gcm9udE1hdHRlciAmIE9ic2lkaWFuRnJvbnRNYXR0ZXIgJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLyoqXG4gKiBQYXJzZXMgdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGNvbnRlbnQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQgc3RyaW5nIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBmcm9udCBtYXR0ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyID0gdW5rbm93bj4oY29udGVudDogc3RyaW5nKTogQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj4ge1xuICBjb25zdCBmcm9udE1hdHRlckluZm8gPSBnZXRGcm9udE1hdHRlckluZm8oY29udGVudCk7XG4gIHJldHVybiAocGFyc2VZYW1sKGZyb250TWF0dGVySW5mby5mcm9udG1hdHRlcikgPz8ge30pIGFzIENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+O1xufVxuXG4vKipcbiAqIFNldHMgdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGNvbnRlbnQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQgc3RyaW5nIHRvIHNldCB0aGUgZnJvbnQgbWF0dGVyIGluLlxuICogQHBhcmFtIG5ld0Zyb250TWF0dGVyIC0gVGhlIG5ldyBmcm9udCBtYXR0ZXIgdG8gc2V0LlxuICogQHJldHVybnMgVGhlIG5ldyBjb250ZW50IHN0cmluZyB3aXRoIHRoZSBmcm9udCBtYXR0ZXIgc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RnJvbnRNYXR0ZXIoY29udGVudDogc3RyaW5nLCBuZXdGcm9udE1hdHRlcjogb2JqZWN0KTogc3RyaW5nIHtcbiAgY29uc3QgZnJvbnRNYXR0ZXJJbmZvID0gZ2V0RnJvbnRNYXR0ZXJJbmZvKGNvbnRlbnQpO1xuICBpZiAoT2JqZWN0LmtleXMobmV3RnJvbnRNYXR0ZXIpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBjb250ZW50LnNsaWNlKGZyb250TWF0dGVySW5mby5jb250ZW50U3RhcnQpO1xuICB9XG5cbiAgY29uc3QgbmV3RnJvbnRNYXR0ZXJTdHIgPSBzdHJpbmdpZnlZYW1sKG5ld0Zyb250TWF0dGVyKTtcblxuICByZXR1cm4gZnJvbnRNYXR0ZXJJbmZvLmV4aXN0c1xuICAgID8gY29udGVudC5zbGljZSgwLCBmcm9udE1hdHRlckluZm8uZnJvbSkgKyBuZXdGcm9udE1hdHRlclN0ciArIGNvbnRlbnQuc2xpY2UoZnJvbnRNYXR0ZXJJbmZvLnRvKVxuICAgIDogJy0tLVxcbicgKyBuZXdGcm9udE1hdHRlclN0ciArICctLS1cXG4nICsgY29udGVudDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSxzQkFJTztBQWRQLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUE2RU8sU0FBUyxpQkFBOEMsU0FBeUQ7QUFDckgsUUFBTSxzQkFBa0Isb0NBQW1CLE9BQU87QUFDbEQsYUFBUSwyQkFBVSxnQkFBZ0IsV0FBVyxLQUFLLENBQUM7QUFDckQ7QUFTTyxTQUFTLGVBQWUsU0FBaUIsZ0JBQWdDO0FBQzlFLFFBQU0sc0JBQWtCLG9DQUFtQixPQUFPO0FBQ2xELE1BQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxXQUFXLEdBQUc7QUFDNUMsV0FBTyxRQUFRLE1BQU0sZ0JBQWdCLFlBQVk7QUFBQSxFQUNuRDtBQUVBLFFBQU0sd0JBQW9CLCtCQUFjLGNBQWM7QUFFdEQsU0FBTyxnQkFBZ0IsU0FDbkIsUUFBUSxNQUFNLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxvQkFBb0IsUUFBUSxNQUFNLGdCQUFnQixFQUFFLElBQzdGLFVBQVUsb0JBQW9CLFVBQVU7QUFDOUM7IiwKICAibmFtZXMiOiBbXQp9Cg==