@mnaoumov/obsidian-lib 6.0.4 → 6.2.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.
@@ -123,6 +123,7 @@ var import_abort_controller = require('@mnaoumov/typescript-lib/abort-controller
123
123
  var import_debug = require('@mnaoumov/typescript-lib/debug');
124
124
  var import_library = require('@mnaoumov/typescript-lib/library');
125
125
  var import_css_class = require('../css-class.cjs');
126
+ var import_debug2 = require('../debug.cjs');
126
127
  var import_generated_during_build = require('../generated-during-build.cjs');
127
128
  var import_library_styles = require('../library-styles.cjs');
128
129
  var import_library2 = require('../library.cjs');
@@ -154,7 +155,7 @@ function initPluginContext(pluginId) {
154
155
  debugPrefixNamespace: `${pluginId}:`,
155
156
  shouldPrintStackTrace: true
156
157
  });
157
- (0, import_debug.showInitialDebugMessage)(pluginId);
158
+ (0, import_debug2.showInitialDebugMessage)(pluginId);
158
159
  (0, import_abort_controller.getSharedAbortController)();
159
160
  (0, import_library_styles.injectLibraryStyles)({
160
161
  doc: document,
@@ -168,4 +169,4 @@ function initPluginContext(pluginId) {
168
169
  initDebugController,
169
170
  initPluginContext
170
171
  });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVidWdDb250cm9sbGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLWNvbnRyb2xsZXInO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldFNoYXJlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCB7XG4gIGdldERlYnVnQ29udHJvbGxlcixcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvbGlicmFyeSc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vY3NzLWNsYXNzLnRzJztcbmltcG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi4vZ2VuZXJhdGVkLWR1cmluZy1idWlsZC50cyc7XG5pbXBvcnQgeyBpbmplY3RMaWJyYXJ5U3R5bGVzIH0gZnJvbSAnLi4vbGlicmFyeS1zdHlsZXMudHMnO1xuaW1wb3J0IHtcbiAgT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICBPYnNpZGlhbkxpYnJhcnlcbn0gZnJvbSAnLi4vbGlicmFyeS50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5Db250ZXh0V2luZG93IHtcbiAgREVCVUc6IERlYnVnQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgREVCVUdfR1VJREVfVVJMID0gJ2h0dHBzOi8vbW5hb3Vtb3YuZGV2L29ic2lkaWFuLWxpYi9ndWlkZXMvZGVidWdnaW5nLyc7XG5cbi8qKlxuICogU2V0cyB0aGUgQ1NTIGNsYXNzIG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBzZXQgdGhlIENTUyBjbGFzcyBvZi5cbiAqIEBwYXJhbSBjc3NDbGFzc2VzIC0gVGhlIENTUyBjbGFzc2VzIHRvIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBsdWdpbkNzc0NsYXNzZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNzc0NsYXNzZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBjb25zdCBleHRyYUNzc0NsYXNzZXMgPSB0eXBlb2YgY3NzQ2xhc3NlcyA9PT0gJ3N0cmluZycgPyBbY3NzQ2xhc3Nlc10gOiBjc3NDbGFzc2VzID8/IFtdO1xuICBlbGVtZW50LmFkZENsYXNzKFxuICAgIENzc0NsYXNzLkxpYnJhcnlOYW1lLFxuICAgIC8vIFRoZSBzY29wZSBpcyBlbXB0eSB1bnRpbCB0aGUgcGx1Z2luIGNvbnRleHQgaXMgaW5pdGlhbGl6ZWQ7IHNraXAgaXQgc28gd2UgbmV2ZXIgYWRkIGFuIGVtcHR5IGNsYXNzLlxuICAgIC4uLihPYnNpZGlhbkxpYnJhcnkuY3NzQ2xhc3NTY29wZSA/IFtPYnNpZGlhbkxpYnJhcnkuY3NzQ2xhc3NTY29wZV0gOiBbXSksXG4gICAgLi4uZXh0cmFDc3NDbGFzc2VzXG4gICk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gKlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdG8gaW5pdGlhbGl6ZSB0aGUgZGVidWcgY29udHJvbGxlciBmb3IuXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byByZWdpc3RlciBjbGVhbnVwIG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdERlYnVnQ29udHJvbGxlcih3aW46IFdpbmRvdywgY29tcG9uZW50OiBDb21wb25lbnQpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luQ29udGV4dFdpbmRvdyA9IHdpbiBhcyBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+O1xuICBjb25zdCBvbGREZWJ1ZyA9IHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUc7XG4gIGNvbnN0IG5ld0RlYnVnID0gZ2V0RGVidWdDb250cm9sbGVyKCk7XG4gIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBuZXdEZWJ1ZztcblxuICBjb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIGlmIChwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID09PSBuZXdEZWJ1Zykge1xuICAgICAgcGx1Z2luQ29udGV4dFdpbmRvdy5ERUJVRyA9IG9sZERlYnVnO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gSUQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0UGx1Z2luQ29udGV4dChwbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIE9ic2lkaWFuTGlicmFyeS5pbml0KHsgY3NzQ2xhc3NTY29wZTogcGx1Z2luSWQgfSk7XG4gIExpYnJhcnkuaW5pdCh7XG4gICAgZGVidWdHdWlkZVVybDogREVCVUdfR1VJREVfVVJMLFxuICAgIGRlYnVnTmFtZXNwYWNlOiBPQlNJRElBTl9MSUJSQVJZX05BTUUsXG4gICAgZGVidWdQcmVmaXhOYW1lc3BhY2U6IGAke3BsdWdpbklkfTpgLFxuICAgIHNob3VsZFByaW50U3RhY2tUcmFjZTogdHJ1ZVxuICB9KTtcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQpO1xuXG4gIC8vIE5vdGhpbmcgZWxzZSBpbiB0aGUgbGlicmFyeSByZWFjaGVzIGZvciB0aGUgc2hhcmVkIGFib3J0IGNvbnRyb2xsZXIgLS0gb25seSBjb25zdW1lciBwbHVnaW5zIGRvLiBDcmVhdGVcbiAgLy8gaXQgaGVyZSBzbyB0aGUgZGV2dG9vbHMgY29uc29sZSByZWNpcGUgaW4gdGhlIGRlYnVnZ2luZyBndWlkZSBhbHdheXMgcmVzb2x2ZXMsIGluc3RlYWQgb2YgdGhyb3dpbmcgdW50aWwgc29tZVxuICAvLyBwbHVnaW4gaGFwcGVucyB0byBzdGFydCBhbiBhYm9ydGFibGUgb3BlcmF0aW9uLlxuICBnZXRTaGFyZWRBYm9ydENvbnRyb2xsZXIoKTtcblxuICBpbmplY3RMaWJyYXJ5U3R5bGVzKHtcbiAgICBkb2M6IGRvY3VtZW50LFxuICAgIGxpYnJhcnlTdHlsZXM6IExJQlJBUllfU1RZTEVTLFxuICAgIGxpYnJhcnlWZXJzaW9uOiBMSUJSQVJZX1ZFUlNJT05cbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0EsOEJBQXlDO0FBQ3pDLG1CQUdPO0FBQ1AscUJBQXdCO0FBRXhCLHVCQUF5QjtBQUN6QixvQ0FHTztBQUNQLDRCQUFvQztBQUNwQyxJQUFBQSxrQkFHTztBQU1QLE1BQU0sa0JBQWtCO0FBUWpCLFNBQVMsb0JBQW9CLFNBQXNCLFlBQXNDO0FBQzlGLFFBQU0sa0JBQWtCLE9BQU8sZUFBZSxXQUFXLENBQUMsVUFBVSxJQUFJLGNBQWMsQ0FBQztBQUN2RixVQUFRO0FBQUEsSUFDTiwwQkFBUztBQUFBLElBRVQsR0FBSSxnQ0FBZ0IsZ0JBQWdCLENBQUMsZ0NBQWdCLGFBQWEsSUFBSSxDQUFDO0FBQUEsSUFDdkUsR0FBRztBQUFBLEVBQ0w7QUFDRjtBQVFPLFNBQVMsb0JBQW9CLEtBQWEsV0FBNEI7QUFDM0UsUUFBTSxzQkFBc0I7QUFDNUIsUUFBTSxXQUFXLG9CQUFvQjtBQUNyQyxRQUFNLGVBQVcsaUNBQW1CO0FBQ3BDLHNCQUFvQixRQUFRO0FBRTVCLFlBQVUsU0FBUyxNQUFNO0FBQ3ZCLFFBQUksb0JBQW9CLFVBQVUsVUFBVTtBQUMxQywwQkFBb0IsUUFBUTtBQUFBLElBQzlCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPTyxTQUFTLGtCQUFrQixVQUF3QjtBQUN4RCxrQ0FBZ0IsS0FBSyxFQUFFLGVBQWUsU0FBUyxDQUFDO0FBQ2hELHlCQUFRLEtBQUs7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLHNCQUFzQixHQUFHLFFBQVE7QUFBQSxJQUNqQyx1QkFBdUI7QUFBQSxFQUN6QixDQUFDO0FBQ0QsNENBQXdCLFFBQVE7QUFLaEMsd0RBQXlCO0FBRXpCLGlEQUFvQjtBQUFBLElBQ2xCLEtBQUs7QUFBQSxJQUNMLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLEVBQ2xCLENBQUM7QUFDSDsiLCJuYW1lcyI6WyJpbXBvcnRfbGlicmFyeSJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVidWdDb250cm9sbGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLWNvbnRyb2xsZXInO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldFNoYXJlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCB7IGdldERlYnVnQ29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5pbXBvcnQgeyBMaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBzaG93SW5pdGlhbERlYnVnTWVzc2FnZSB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi4vZ2VuZXJhdGVkLWR1cmluZy1idWlsZC50cyc7XG5pbXBvcnQgeyBpbmplY3RMaWJyYXJ5U3R5bGVzIH0gZnJvbSAnLi4vbGlicmFyeS1zdHlsZXMudHMnO1xuaW1wb3J0IHtcbiAgT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICBPYnNpZGlhbkxpYnJhcnlcbn0gZnJvbSAnLi4vbGlicmFyeS50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5Db250ZXh0V2luZG93IHtcbiAgREVCVUc6IERlYnVnQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgREVCVUdfR1VJREVfVVJMID0gJ2h0dHBzOi8vbW5hb3Vtb3YuZGV2L29ic2lkaWFuLWxpYi9ndWlkZXMvZGVidWdnaW5nLyc7XG5cbi8qKlxuICogU2V0cyB0aGUgQ1NTIGNsYXNzIG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBzZXQgdGhlIENTUyBjbGFzcyBvZi5cbiAqIEBwYXJhbSBjc3NDbGFzc2VzIC0gVGhlIENTUyBjbGFzc2VzIHRvIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBsdWdpbkNzc0NsYXNzZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNzc0NsYXNzZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBjb25zdCBleHRyYUNzc0NsYXNzZXMgPSB0eXBlb2YgY3NzQ2xhc3NlcyA9PT0gJ3N0cmluZycgPyBbY3NzQ2xhc3Nlc10gOiBjc3NDbGFzc2VzID8/IFtdO1xuICBlbGVtZW50LmFkZENsYXNzKFxuICAgIENzc0NsYXNzLkxpYnJhcnlOYW1lLFxuICAgIC8vIFRoZSBzY29wZSBpcyBlbXB0eSB1bnRpbCB0aGUgcGx1Z2luIGNvbnRleHQgaXMgaW5pdGlhbGl6ZWQ7IHNraXAgaXQgc28gd2UgbmV2ZXIgYWRkIGFuIGVtcHR5IGNsYXNzLlxuICAgIC4uLihPYnNpZGlhbkxpYnJhcnkuY3NzQ2xhc3NTY29wZSA/IFtPYnNpZGlhbkxpYnJhcnkuY3NzQ2xhc3NTY29wZV0gOiBbXSksXG4gICAgLi4uZXh0cmFDc3NDbGFzc2VzXG4gICk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gKlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdG8gaW5pdGlhbGl6ZSB0aGUgZGVidWcgY29udHJvbGxlciBmb3IuXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byByZWdpc3RlciBjbGVhbnVwIG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdERlYnVnQ29udHJvbGxlcih3aW46IFdpbmRvdywgY29tcG9uZW50OiBDb21wb25lbnQpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luQ29udGV4dFdpbmRvdyA9IHdpbiBhcyBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+O1xuICBjb25zdCBvbGREZWJ1ZyA9IHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUc7XG4gIGNvbnN0IG5ld0RlYnVnID0gZ2V0RGVidWdDb250cm9sbGVyKCk7XG4gIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBuZXdEZWJ1ZztcblxuICBjb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIGlmIChwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID09PSBuZXdEZWJ1Zykge1xuICAgICAgcGx1Z2luQ29udGV4dFdpbmRvdy5ERUJVRyA9IG9sZERlYnVnO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gSUQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0UGx1Z2luQ29udGV4dChwbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIE9ic2lkaWFuTGlicmFyeS5pbml0KHsgY3NzQ2xhc3NTY29wZTogcGx1Z2luSWQgfSk7XG4gIExpYnJhcnkuaW5pdCh7XG4gICAgZGVidWdHdWlkZVVybDogREVCVUdfR1VJREVfVVJMLFxuICAgIGRlYnVnTmFtZXNwYWNlOiBPQlNJRElBTl9MSUJSQVJZX05BTUUsXG4gICAgZGVidWdQcmVmaXhOYW1lc3BhY2U6IGAke3BsdWdpbklkfTpgLFxuICAgIHNob3VsZFByaW50U3RhY2tUcmFjZTogdHJ1ZVxuICB9KTtcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQpO1xuXG4gIC8vIE5vdGhpbmcgZWxzZSBpbiB0aGUgbGlicmFyeSByZWFjaGVzIGZvciB0aGUgc2hhcmVkIGFib3J0IGNvbnRyb2xsZXIgLS0gb25seSBjb25zdW1lciBwbHVnaW5zIGRvLiBDcmVhdGVcbiAgLy8gaXQgaGVyZSBzbyB0aGUgZGV2dG9vbHMgY29uc29sZSByZWNpcGUgaW4gdGhlIGRlYnVnZ2luZyBndWlkZSBhbHdheXMgcmVzb2x2ZXMsIGluc3RlYWQgb2YgdGhyb3dpbmcgdW50aWwgc29tZVxuICAvLyBwbHVnaW4gaGFwcGVucyB0byBzdGFydCBhbiBhYm9ydGFibGUgb3BlcmF0aW9uLlxuICBnZXRTaGFyZWRBYm9ydENvbnRyb2xsZXIoKTtcblxuICBpbmplY3RMaWJyYXJ5U3R5bGVzKHtcbiAgICBkb2M6IGRvY3VtZW50LFxuICAgIGxpYnJhcnlTdHlsZXM6IExJQlJBUllfU1RZTEVTLFxuICAgIGxpYnJhcnlWZXJzaW9uOiBMSUJSQVJZX1ZFUlNJT05cbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0EsOEJBQXlDO0FBQ3pDLG1CQUFtQztBQUNuQyxxQkFBd0I7QUFFeEIsdUJBQXlCO0FBQ3pCLElBQUFBLGdCQUF3QztBQUN4QyxvQ0FHTztBQUNQLDRCQUFvQztBQUNwQyxJQUFBQyxrQkFHTztBQU1QLE1BQU0sa0JBQWtCO0FBUWpCLFNBQVMsb0JBQW9CLFNBQXNCLFlBQXNDO0FBQzlGLFFBQU0sa0JBQWtCLE9BQU8sZUFBZSxXQUFXLENBQUMsVUFBVSxJQUFJLGNBQWMsQ0FBQztBQUN2RixVQUFRO0FBQUEsSUFDTiwwQkFBUztBQUFBLElBRVQsR0FBSSxnQ0FBZ0IsZ0JBQWdCLENBQUMsZ0NBQWdCLGFBQWEsSUFBSSxDQUFDO0FBQUEsSUFDdkUsR0FBRztBQUFBLEVBQ0w7QUFDRjtBQVFPLFNBQVMsb0JBQW9CLEtBQWEsV0FBNEI7QUFDM0UsUUFBTSxzQkFBc0I7QUFDNUIsUUFBTSxXQUFXLG9CQUFvQjtBQUNyQyxRQUFNLGVBQVcsaUNBQW1CO0FBQ3BDLHNCQUFvQixRQUFRO0FBRTVCLFlBQVUsU0FBUyxNQUFNO0FBQ3ZCLFFBQUksb0JBQW9CLFVBQVUsVUFBVTtBQUMxQywwQkFBb0IsUUFBUTtBQUFBLElBQzlCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPTyxTQUFTLGtCQUFrQixVQUF3QjtBQUN4RCxrQ0FBZ0IsS0FBSyxFQUFFLGVBQWUsU0FBUyxDQUFDO0FBQ2hELHlCQUFRLEtBQUs7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLHNCQUFzQixHQUFHLFFBQVE7QUFBQSxJQUNqQyx1QkFBdUI7QUFBQSxFQUN6QixDQUFDO0FBQ0QsNkNBQXdCLFFBQVE7QUFLaEMsd0RBQXlCO0FBRXpCLGlEQUFvQjtBQUFBLElBQ2xCLEtBQUs7QUFBQSxJQUNMLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLEVBQ2xCLENBQUM7QUFDSDsiLCJuYW1lcyI6WyJpbXBvcnRfZGVidWciLCJpbXBvcnRfbGlicmFyeSJdfQ==
@@ -114,11 +114,14 @@ var __copyProps = (to, from, except, desc) => {
114
114
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
115
115
  var validation_exports = {};
116
116
  __export(validation_exports, {
117
+ ANDROID_UNSAFE_PATH_CHARS: () => ANDROID_UNSAFE_PATH_CHARS,
117
118
  OBSIDIAN_UNSAFE_FILENAME_CHARS: () => OBSIDIAN_UNSAFE_FILENAME_CHARS,
118
119
  UNIX_UNSAFE_PATH_CHARS: () => UNIX_UNSAFE_PATH_CHARS,
119
120
  WINDOWS_UNSAFE_PATH_CHARS: () => WINDOWS_UNSAFE_PATH_CHARS,
121
+ getFileNameValidationMessage: () => getFileNameValidationMessage,
120
122
  getOsAndObsidianUnsafePathCharsRegExp: () => getOsAndObsidianUnsafePathCharsRegExp,
121
123
  getOsUnsafePathCharsRegExp: () => getOsUnsafePathCharsRegExp,
124
+ getPathValidationMessage: () => getPathValidationMessage,
122
125
  hasWindowsTrailingChars: () => hasWindowsTrailingChars,
123
126
  isValidationMessageHolder: () => isValidationMessageHolder,
124
127
  isWindowsReservedName: () => isWindowsReservedName,
@@ -128,23 +131,49 @@ module.exports = __toCommonJS(validation_exports);
128
131
  var import_path = require('@mnaoumov/typescript-lib/path');
129
132
  var import_reg_exp = require('@mnaoumov/typescript-lib/reg-exp');
130
133
  var import_obsidian = require('obsidian');
134
+ var import_i18n = require('./i18n/i18n.cjs');
131
135
  function isValidationMessageHolder(value) {
132
136
  return value.validationMessage !== void 0;
133
137
  }
134
138
  const OBSIDIAN_UNSAFE_FILENAME_CHARS = /[#^[\]|]/g;
135
139
  const WINDOWS_UNSAFE_PATH_CHARS = /[*\\/<>:|?"]/g;
136
- const UNIX_UNSAFE_PATH_CHARS = /[\0/]/g;
140
+ const UNIX_UNSAFE_PATH_CHARS = /[\0\\/:]/g;
141
+ const ANDROID_UNSAFE_PATH_CHARS = /[\0*\\/<>:?"]/g;
137
142
  const WINDOWS_RESERVED_NAME_REG_EXP = /^(?:AUX|COM[1-9]|CON|LPT[1-9]|NUL|PRN)$/i;
138
143
  const WINDOWS_TRAILING_CHARS_REG_EXP = /[ .]+$/;
139
- function getOsAndObsidianUnsafePathCharsRegExp(isWindows) {
144
+ const FIRST_NON_CONTROL_CHAR = " ";
145
+ function getFileNameValidationMessage(name, isWindows, isAndroid) {
146
+ if (name === "") {
147
+ return (0, import_i18n.t)(($) => $.obsidianLib.validation.emptyName);
148
+ }
149
+ if (hasControlChars(name)) {
150
+ return (0, import_i18n.t)(($) => $.obsidianLib.validation.controlCharacter, { name });
151
+ }
152
+ const unsafeChars = new Set(name.match(getOsAndObsidianUnsafePathCharsRegExp(isWindows, isAndroid)));
153
+ if (unsafeChars.size > 0) {
154
+ return (0, import_i18n.t)(($) => $.obsidianLib.validation.unsafeCharacters, { characters: [...unsafeChars].join(" "), name });
155
+ }
156
+ if (hasWindowsTrailingChars(name)) {
157
+ return (0, import_i18n.t)(($) => $.obsidianLib.validation.trailingCharacters, { name });
158
+ }
159
+ return isWindowsReservedName(name) ? (0, import_i18n.t)(($) => $.obsidianLib.validation.windowsReservedName, { name }) : "";
160
+ }
161
+ function getOsAndObsidianUnsafePathCharsRegExp(isWindows, isAndroid) {
140
162
  return (0, import_reg_exp.oneOf)([
141
- getOsUnsafePathCharsRegExp(isWindows),
163
+ getOsUnsafePathCharsRegExp(isWindows, isAndroid),
142
164
  OBSIDIAN_UNSAFE_FILENAME_CHARS
143
165
  ]);
144
166
  }
145
- function getOsUnsafePathCharsRegExp(isWindows) {
167
+ function getOsUnsafePathCharsRegExp(isWindows, isAndroid) {
146
168
  isWindows ??= import_obsidian.Platform.isWin;
147
- return isWindows ? WINDOWS_UNSAFE_PATH_CHARS : UNIX_UNSAFE_PATH_CHARS;
169
+ if (isWindows) {
170
+ return WINDOWS_UNSAFE_PATH_CHARS;
171
+ }
172
+ isAndroid ??= import_obsidian.Platform.isAndroidApp;
173
+ return isAndroid ? ANDROID_UNSAFE_PATH_CHARS : UNIX_UNSAFE_PATH_CHARS;
174
+ }
175
+ function getPathValidationMessage(path, isWindows, isAndroid) {
176
+ return path.split("/").map((segment) => getFileNameValidationMessage(segment, isWindows, isAndroid)).find(Boolean) ?? "";
148
177
  }
149
178
  function hasWindowsTrailingChars(name) {
150
179
  return WINDOWS_TRAILING_CHARS_REG_EXP.test(name);
@@ -156,16 +185,27 @@ function isWindowsReservedName(name) {
156
185
  function trimWindowsTrailingChars(name) {
157
186
  return name.replace(WINDOWS_TRAILING_CHARS_REG_EXP, "");
158
187
  }
188
+ function hasControlChars(name) {
189
+ for (const char of name) {
190
+ if (char < FIRST_NON_CONTROL_CHAR) {
191
+ return true;
192
+ }
193
+ }
194
+ return false;
195
+ }
159
196
  // Annotate the CommonJS export names for ESM import in node:
160
197
  0 && (module.exports = {
198
+ ANDROID_UNSAFE_PATH_CHARS,
161
199
  OBSIDIAN_UNSAFE_FILENAME_CHARS,
162
200
  UNIX_UNSAFE_PATH_CHARS,
163
201
  WINDOWS_UNSAFE_PATH_CHARS,
202
+ getFileNameValidationMessage,
164
203
  getOsAndObsidianUnsafePathCharsRegExp,
165
204
  getOsUnsafePathCharsRegExp,
205
+ getPathValidationMessage,
166
206
  hasWindowsTrailingChars,
167
207
  isValidationMessageHolder,
168
208
  isWindowsReservedName,
169
209
  trimWindowsTrailingChars
170
210
  });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBXaW5kb3dzLXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBVbml4LXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwL10vZztcblxuLyoqXG4gKiBUaGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHN0aWxsIHJlZnVzZXMgYXMgYSBmaWxlIG5hbWUsIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogYENPTklOJGAgLyBgQ09OT1VUJGAgYW5kIHRoZSBzdXBlcnNjcmlwdCBgQ09NwrJgIGZvcm1zIGFyZSBkZWxpYmVyYXRlbHkgYWJzZW50OiB0aGV5IGFyZSBhY2NlcHRlZCBieVxuICogZXZlcnkgV2luZG93cyB2ZXJzaW9uIHRoYXQgcnVucyBPYnNpZGlhbiwgYW5kIG1hdGNoaW5nIHRoZW0gd291bGQgcmVuYW1lIGZpbGVzIHRoYXQgd29yay5cbiAqXG4gKiBVbmxpa2UgdGhlIGV4cG9ydGVkIGNoYXJhY3RlciBzZXRzIGFib3ZlLCB0aGlzIGNhcnJpZXMgbm8gYGdgIGZsYWcsIHNvIGB0ZXN0YCBtYXkgYmUgY2FsbGVkIG9uIGl0XG4gKiByZXBlYXRlZGx5IOKAlCBhIGBnYC1mbGFnZ2VkIHJlZ2V4cCBhZHZhbmNlcyBgbGFzdEluZGV4YCBhbmQgYW5zd2VycyBkaWZmZXJlbnRseSBvbiBjb25zZWN1dGl2ZSBjYWxscy5cbiAqL1xuY29uc3QgV0lORE9XU19SRVNFUlZFRF9OQU1FX1JFR19FWFAgPSAvXig/OkFVWHxDT01bMS05XXxDT058TFBUWzEtOV18TlVMfFBSTikkL2k7XG5cbi8qKlxuICogVGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHN0cmlwcyBmcm9tIGEgbmFtZSBiZWZvcmUgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHdpdGggaXQuXG4gKi9cbmNvbnN0IFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCA9IC9bIC5dKyQvO1xuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCBPUy1zcGVjaWZpYyByZXN0cmljdGlvbnMgYW5kIE9ic2lkaWFuLXNwZWNpZmljIG9uZXMuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBXaW5kb3dzLXNwZWNpZmljIHJlc3RyaWN0aW9ucy4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgcmVnZXhwIG1hdGNoaW5nIGFsbCB1bnNhZmUgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVzL3BhdGhzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cChpc1dpbmRvd3M/OiBib29sZWFuKTogUmVnRXhwIHtcbiAgcmV0dXJuIG9uZU9mKFtcbiAgICBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cChpc1dpbmRvd3MpLFxuICAgIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU1xuICBdKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVnZXhwIG1hdGNoaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHNhZmUgdG8gdXNlIGluIGZpbGUgbmFtZXMvcGF0aHMgYXQgdGhlIE9TIGxldmVsLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgV2luZG93cy1zcGVjaWZpYyByZXN0cmljdGlvbnMuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzL3BhdGhzIGF0IHRoZSBPUyBsZXZlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICByZXR1cm4gaXNXaW5kb3dzID8gV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA6IFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlM7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGVuZHMgd2l0aCB0aGUgZG90cyBvciBzcGFjZXMgV2luZG93cyByZWZ1c2VzLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIG5vdCBhIHBhdGguXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5hbWUgZW5kcyB3aXRoIGEgZG90IG9yIGEgc3BhY2UsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAudGVzdChuYW1lKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaXMgb25lIG9mIHRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBUd28gc3RlcHMgdGhlIGNhbGxlciB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBrbm93IGFib3V0IGhhcHBlbiBoZXJlOiB0cmFpbGluZyBkb3RzIGFuZCBzcGFjZXMgYXJlXG4gKiB0cmltbWVkIEJFRk9SRSB0aGUgdGVzdCwgYmVjYXVzZSBXaW5kb3dzIHN0cmlwcyB0aGVtIGJlZm9yZSBkZWNpZGluZyBhbmQgYENPTiBgIGlzIHRoZXJlZm9yZSBhc1xuICogcmVzZXJ2ZWQgYXMgYENPTmA7IGFuZCB0aGUgZXh0ZW5zaW9uIGlzIGRyb3BwZWQsIGJlY2F1c2UgYENPTi5tZGAgaXMgcmVzZXJ2ZWQgdG9vLlxuICpcbiAqIGBDT05JTiRgIC8gYENPTk9VVCRgIGFuZCB0aGUgc3VwZXJzY3JpcHQgYENPTcKyYCBmb3JtcyBhcmUgZGVsaWJlcmF0ZWx5IE5PVCByZXNlcnZlZDogdGhleSBhcmUgYWNjZXB0ZWRcbiAqIGJ5IGV2ZXJ5IFdpbmRvd3MgdmVyc2lvbiB0aGF0IHJ1bnMgT2JzaWRpYW4sIGFuZCBtYXRjaGluZyB0aGVtIHdvdWxkIHJlbmFtZSBmaWxlcyB0aGF0IHdvcmsuXG4gKlxuICogQW5zd2VycyBmb3IgV2luZG93cyByZWdhcmRsZXNzIG9mIHRoZSBwbGF0Zm9ybSBpbiB1c2U6IGEgdmF1bHQgaXMgc3luY2VkLCBzbyB0aGUgcnVsZXMgdGhhdCBtYXR0ZXIgYXJlXG4gKiBub3QgbmVjZXNzYXJpbHkgdGhvc2Ugb2YgdGhlIG1hY2hpbmUgYXNraW5nLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gY2hlY2suIEEgc2luZ2xlIHBhdGggc2VnbWVudCwgd2l0aCBvciB3aXRob3V0IGl0cyBleHRlbnNpb24uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5hbWUgaXMgcmVzZXJ2ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkTmFtZSA9IHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKTtcbiAgcmV0dXJuIFdJTkRPV1NfUkVTRVJWRURfTkFNRV9SRUdfRVhQLnRlc3QoYmFzZW5hbWUodHJpbW1lZE5hbWUsIGV4dG5hbWUodHJpbW1lZE5hbWUpKSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3MgcmVmdXNlcyBmcm9tIHRoZSBlbmQgb2YgYSBuYW1lLlxuICpcbiAqIFRyaW0gYmVmb3JlIHRlc3RpbmcgZm9yIGEgcmVzZXJ2ZWQgbmFtZSwgbmV2ZXIgYWZ0ZXI6IHRyaW1taW5nIGFmdGVyd2FyZHMgdHVybnMgYW4gYWNjZXB0ZWQgYENPTiBgIGludG9cbiAqIGEgcmVqZWN0ZWQgYENPTmAuIHtAbGluayBpc1dpbmRvd3NSZXNlcnZlZE5hbWV9IGFscmVhZHkgZG9lcyB0aGlzIGludGVybmFsbHkuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB0cmltLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIG5vdCBhIHBhdGguXG4gKiBAcmV0dXJucyBUaGUgbmFtZSB3aXRob3V0IGl0cyB0cmFpbGluZyBkb3RzIGFuZCBzcGFjZXMsIHdoaWNoIG1heSBiZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCwgJycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLGtCQUdPO0FBQ1AscUJBQXNCO0FBQ3RCLHNCQUF5QjtBQWtCbEIsU0FBUywwQkFBMEIsT0FBa0Q7QUFDMUYsU0FBUSxNQUEyQyxzQkFBc0I7QUFDM0U7QUFLTyxNQUFNLGlDQUFpQztBQUt2QyxNQUFNLDRCQUE0QjtBQUtsQyxNQUFNLHlCQUF5QjtBQVd0QyxNQUFNLGdDQUFnQztBQUt0QyxNQUFNLGlDQUFpQztBQVVoQyxTQUFTLHNDQUFzQyxXQUE2QjtBQUNqRixhQUFPLHNCQUFNO0FBQUEsSUFDWCwyQkFBMkIsU0FBUztBQUFBLElBQ3BDO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFRTyxTQUFTLDJCQUEyQixXQUE2QjtBQUN0RSxnQkFBYyx5QkFBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBV08sU0FBUyx3QkFBd0IsTUFBdUI7QUFDN0QsU0FBTywrQkFBK0IsS0FBSyxJQUFJO0FBQ2pEO0FBa0JPLFNBQVMsc0JBQXNCLE1BQXVCO0FBQzNELFFBQU0sY0FBYyx5QkFBeUIsSUFBSTtBQUNqRCxTQUFPLDhCQUE4QixTQUFLLHNCQUFTLGlCQUFhLHFCQUFRLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZGO0FBV08sU0FBUyx5QkFBeUIsTUFBc0I7QUFDN0QsU0FBTyxLQUFLLFFBQVEsZ0NBQWdDLEVBQUU7QUFDeEQ7IiwibmFtZXMiOltdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIFdpbmRvd3MuXG4gKlxuICogUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLCB3aG9zZSBuYW1lIGNoZWNrIHRocm93cyBvbiB0aGlzIHNldCBmcm9tIGBhcHAudmF1bHQuY3JlYXRlYCwgYVxuICogcmVuYW1lIGFuZCBTeW5jIGFsaWtlLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIG1hY09TLCBMaW51eCBhbmQgaU9TLCBwbHVzIHRoZSBOVUwgbm8gZmlsZSBzeXN0ZW0gc3RvcmVzLlxuICpcbiAqIFRoaXMgaXMgT2JzaWRpYW4ncyByZWZ1c2FsIHNldCwgbm90IHRoZSBmaWxlIHN5c3RlbSdzOiBtYWNPUyBhbmQgTGludXggc3RvcmUgYFxcYCBhbmQgYDpgLCBidXQgT2JzaWRpYW5cbiAqIHJlZnVzZXMgYm90aCwgc28gYSBuYW1lIGhvbGRpbmcgZWl0aGVyIGNhbm5vdCBiZSBjcmVhdGVkIHRocm91Z2ggdGhlIHZhdWx0IHRoZXJlLiBSZWFkIGZyb20gT2JzaWRpYW5cbiAqIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwXFxcXC86XS9nO1xuXG4vKipcbiAqIFRoZSBjaGFyYWN0ZXJzIE9ic2lkaWFuIHJlZnVzZXMgaW4gYSBmaWxlIG5hbWUgb24gQW5kcm9pZCwgcGx1cyB0aGUgTlVMIG5vIGZpbGUgc3lzdGVtIHN0b3Jlcy5cbiAqXG4gKiBPYnNpZGlhbiBhZGRzIGAqID8gPCA+IFwiYCB0byB0aGUge0BsaW5rIFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlN9IHNldCB0aGVyZSwgYmVjYXVzZSBBbmRyb2lkJ3Mgc2hhcmVkXG4gKiBzdG9yYWdlIHJlZnVzZXMgdGhlbS4gUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwKlxcXFwvPD46P1wiXS9nO1xuXG4vKipcbiAqIFRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3Mgc3RpbGwgcmVmdXNlcyBhcyBhIGZpbGUgbmFtZSwgd2l0aCBvciB3aXRob3V0IGFuIGV4dGVuc2lvbi5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBhYnNlbnQ6IHRoZXkgYXJlIGFjY2VwdGVkIGJ5XG4gKiBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIFVubGlrZSB0aGUgZXhwb3J0ZWQgY2hhcmFjdGVyIHNldHMgYWJvdmUsIHRoaXMgY2FycmllcyBubyBgZ2AgZmxhZywgc28gYHRlc3RgIG1heSBiZSBjYWxsZWQgb24gaXRcbiAqIHJlcGVhdGVkbHkg4oCUIGEgYGdgLWZsYWdnZWQgcmVnZXhwIGFkdmFuY2VzIGBsYXN0SW5kZXhgIGFuZCBhbnN3ZXJzIGRpZmZlcmVudGx5IG9uIGNvbnNlY3V0aXZlIGNhbGxzLlxuICovXG5jb25zdCBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUCA9IC9eKD86QVVYfENPTVsxLTldfENPTnxMUFRbMS05XXxOVUx8UFJOKSQvaTtcblxuLyoqXG4gKiBUaGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3Mgc3RyaXBzIGZyb20gYSBuYW1lIGJlZm9yZSBpdCBkb2VzIGFueXRoaW5nIGVsc2Ugd2l0aCBpdC5cbiAqL1xuY29uc3QgV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQID0gL1sgLl0rJC87XG5cbi8qKlxuICogVGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgQzAgY29udHJvbCByYW5nZSwgVSswMDAwIHRvIFUrMDAxRiwgd2hpY2ggV2luZG93cyByZWZ1c2VzIGluIGEgbmFtZS5cbiAqL1xuY29uc3QgRklSU1RfTk9OX0NPTlRST0xfQ0hBUiA9ICcgJztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBzaW5nbGUgZmlsZSBvciBmb2xkZXIgbmFtZSBhZ2FpbnN0IGV2ZXJ5IG5hbWluZyBydWxlIHRoaXMgbW9kdWxlIG93bnMuXG4gKlxuICogVGhlIHJ1bGVzLCBjaGVja2VkIGluIHRoaXMgb3JkZXIsIGFuZCB0aGUgZmlyc3Qgb25lIGJyb2tlbiBuYW1lcyB0aGUgbWVzc2FnZTpcbiAqXG4gKiAxLiBUaGUgbmFtZSBpcyBub3QgZW1wdHkuXG4gKiAyLiBJdCBob2xkcyBubyBjb250cm9sIGNoYXJhY3RlciAoVSswMDAwIHRvIFUrMDAxRikuXG4gKiAzLiBJdCBob2xkcyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIHtAbGluayBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwfSBtYXRjaGVzLlxuICogNC4gSXQgZG9lcyBub3QgZW5kIHdpdGggYSBkb3Qgb3IgYSBzcGFjZSAoe0BsaW5rIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzfSkuXG4gKiA1LiBJdCBpcyBub3QgYW4gTVMtRE9TIGRldmljZSBuYW1lICh7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSksIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogT25seSBydWxlIDMgZGVwZW5kcyBvbiB0aGUgcGxhdGZvcm0uIFJ1bGVzIDIsIDQgYW5kIDUgYXBwbHkgb24gZXZlcnkgcGxhdGZvcm0sIGJlY2F1c2UgYSB2YXVsdCBpcyBzeW5jZWQsXG4gKiBhbmQgYSBuYW1lIGNyZWF0ZWQgb24gbWFjT1Mgb3IgTGludXggdGhhdCBXaW5kb3dzIHJlZnVzZXMgYnJlYWtzIHRoZSB2YXVsdCB0aGVyZS4gVGhlIGNoYXJhY3RlciBzZXQgZm9sbG93c1xuICogdGhlIHBsYXRmb3JtIGJlY2F1c2UgaXQgaXMgT2JzaWRpYW4ncyBvd24gcmVmdXNhbCBzZXQsIHdoaWNoIGRpZmZlcnMgcGVyIHBsYXRmb3JtOiBhIG5hbWUgc3VjaCBhcyBgYT9iYCBpc1xuICogYWNjZXB0ZWQgb24gbWFjT1MsIHdoZXJlIE9ic2lkaWFuIGNyZWF0ZXMgaXQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCB3aXRoIG9yIHdpdGhvdXQgaXRzIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSBtZXNzYWdlIGRlc2NyaWJpbmcgdGhlIGZpcnN0IGJyb2tlbiBydWxlLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIG5hbWUgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlKG5hbWU6IHN0cmluZywgaXNXaW5kb3dzPzogYm9vbGVhbiwgaXNBbmRyb2lkPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChuYW1lID09PSAnJykge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24uZW1wdHlOYW1lKTtcbiAgfVxuXG4gIGlmIChoYXNDb250cm9sQ2hhcnMobmFtZSkpIHtcbiAgICByZXR1cm4gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLmNvbnRyb2xDaGFyYWN0ZXIsIHsgbmFtZSB9KTtcbiAgfVxuXG4gIGNvbnN0IHVuc2FmZUNoYXJzID0gbmV3IFNldChuYW1lLm1hdGNoKGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAoaXNXaW5kb3dzLCBpc0FuZHJvaWQpKSk7XG4gIGlmICh1bnNhZmVDaGFycy5zaXplID4gMCkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udW5zYWZlQ2hhcmFjdGVycywgeyBjaGFyYWN0ZXJzOiBbLi4udW5zYWZlQ2hhcnNdLmpvaW4oJyAnKSwgbmFtZSB9KTtcbiAgfVxuXG4gIGlmIChoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKSkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udHJhaWxpbmdDaGFyYWN0ZXJzLCB7IG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWUpID8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLndpbmRvd3NSZXNlcnZlZE5hbWUsIHsgbmFtZSB9KSA6ICcnO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCB0aGUgcGxhdGZvcm0ncyByZWZ1c2VkIGNoYXJhY3RlcnMgKHtAbGluayBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cH0pIGFuZCB0aGUgb25lcyB0aGF0IGJyZWFrXG4gKiBsaW5rcyAoe0BsaW5rIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU30pLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICByZXR1cm4gb25lT2YoW1xuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cywgaXNBbmRyb2lkKSxcbiAgICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlNcbiAgXSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqXG4gKiBUaGF0IGlzIHtAbGluayBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTfSBvbiBXaW5kb3dzLCB7QGxpbmsgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSU30gb24gQW5kcm9pZCBhbmRcbiAqIHtAbGluayBVTklYX1VOU0FGRV9QQVRIX0NIQVJTfSBldmVyeXdoZXJlIGVsc2UuIEl0IGlzIE9ic2lkaWFuJ3Mgc2V0IHJhdGhlciB0aGFuIHRoZSBmaWxlIHN5c3RlbSdzLCBzbyBhXG4gKiBuYW1lIGl0IGFjY2VwdHMgY2FuIGJlIGNyZWF0ZWQgdGhyb3VnaCB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICBpZiAoaXNXaW5kb3dzKSB7XG4gICAgcmV0dXJuIFdJTkRPV1NfVU5TQUZFX1BBVEhfQ0hBUlM7XG4gIH1cblxuICBpc0FuZHJvaWQgPz89IFBsYXRmb3JtLmlzQW5kcm9pZEFwcDtcbiAgcmV0dXJuIGlzQW5kcm9pZCA/IEFORFJPSURfVU5TQUZFX1BBVEhfQ0hBUlMgOiBVTklYX1VOU0FGRV9QQVRIX0NIQVJTO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBldmVyeSBzZWdtZW50IG9mIGEgdmF1bHQgcGF0aCB3aXRoIHtAbGluayBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlfS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRoIHRvIHZhbGlkYXRlLCB3aXRoIGAvYCBhcyB0aGUgc2VwYXJhdG9yLlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSBmb3IgdGhlIGZpcnN0IGludmFsaWQgc2VnbWVudCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIGV2ZXJ5IHNlZ21lbnQgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoVmFsaWRhdGlvbk1lc3NhZ2UocGF0aDogc3RyaW5nLCBpc1dpbmRvd3M/OiBib29sZWFuLCBpc0FuZHJvaWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5tYXAoKHNlZ21lbnQpID0+IGdldEZpbGVOYW1lVmFsaWRhdGlvbk1lc3NhZ2Uoc2VnbWVudCwgaXNXaW5kb3dzLCBpc0FuZHJvaWQpKS5maW5kKEJvb2xlYW4pID8/ICcnO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbmFtZSBlbmRzIHdpdGggdGhlIGRvdHMgb3Igc3BhY2VzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBBbnN3ZXJzIGZvciBXaW5kb3dzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIGluIHVzZTogYSB2YXVsdCBpcyBzeW5jZWQsIHNvIHRoZSBydWxlcyB0aGF0IG1hdHRlciBhcmVcbiAqIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgbWFjaGluZSBhc2tpbmcuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBjaGVjay4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQLnRlc3QobmFtZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGlzIG9uZSBvZiB0aGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHJlZnVzZXMuXG4gKlxuICogVHdvIHN0ZXBzIHRoZSBjYWxsZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8ga25vdyBhYm91dCBoYXBwZW4gaGVyZTogdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZVxuICogdHJpbW1lZCBCRUZPUkUgdGhlIHRlc3QsIGJlY2F1c2UgV2luZG93cyBzdHJpcHMgdGhlbSBiZWZvcmUgZGVjaWRpbmcgYW5kIGBDT04gYCBpcyB0aGVyZWZvcmUgYXNcbiAqIHJlc2VydmVkIGFzIGBDT05gOyBhbmQgdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLCBiZWNhdXNlIGBDT04ubWRgIGlzIHJlc2VydmVkIHRvby5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBOT1QgcmVzZXJ2ZWQ6IHRoZXkgYXJlIGFjY2VwdGVkXG4gKiBieSBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIHdpdGggb3Igd2l0aG91dCBpdHMgZXh0ZW5zaW9uLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGlzIHJlc2VydmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93c1Jlc2VydmVkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZE5hbWUgPSB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSk7XG4gIHJldHVybiBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUC50ZXN0KGJhc2VuYW1lKHRyaW1tZWROYW1lLCBleHRuYW1lKHRyaW1tZWROYW1lKSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHJlZnVzZXMgZnJvbSB0aGUgZW5kIG9mIGEgbmFtZS5cbiAqXG4gKiBUcmltIGJlZm9yZSB0ZXN0aW5nIGZvciBhIHJlc2VydmVkIG5hbWUsIG5ldmVyIGFmdGVyOiB0cmltbWluZyBhZnRlcndhcmRzIHR1cm5zIGFuIGFjY2VwdGVkIGBDT04gYCBpbnRvXG4gKiBhIHJlamVjdGVkIGBDT05gLiB7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSBhbHJlYWR5IGRvZXMgdGhpcyBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdHJpbS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWUgd2l0aG91dCBpdHMgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzLCB3aGljaCBtYXkgYmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAsICcnKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaG9sZHMgYSBjb250cm9sIGNoYXJhY3RlciwgVSswMDAwIHRvIFUrMDAxRi5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGhvbGRzIGEgY29udHJvbCBjaGFyYWN0ZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBoYXNDb250cm9sQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgY2hhciBvZiBuYW1lKSB7XG4gICAgaWYgKGNoYXIgPCBGSVJTVF9OT05fQ09OVFJPTF9DSEFSKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsa0JBR087QUFDUCxxQkFBc0I7QUFDdEIsc0JBQXlCO0FBRXpCLGtCQUFrQjtBQWtCWCxTQUFTLDBCQUEwQixPQUFrRDtBQUMxRixTQUFRLE1BQTJDLHNCQUFzQjtBQUMzRTtBQUtPLE1BQU0saUNBQWlDO0FBUXZDLE1BQU0sNEJBQTRCO0FBU2xDLE1BQU0seUJBQXlCO0FBUS9CLE1BQU0sNEJBQTRCO0FBV3pDLE1BQU0sZ0NBQWdDO0FBS3RDLE1BQU0saUNBQWlDO0FBS3ZDLE1BQU0seUJBQXlCO0FBd0J4QixTQUFTLDZCQUE2QixNQUFjLFdBQXFCLFdBQTZCO0FBQzNHLE1BQUksU0FBUyxJQUFJO0FBQ2YsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxTQUFTO0FBQUEsRUFDcEQ7QUFFQSxNQUFJLGdCQUFnQixJQUFJLEdBQUc7QUFDekIsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUNyRTtBQUVBLFFBQU0sY0FBYyxJQUFJLElBQUksS0FBSyxNQUFNLHNDQUFzQyxXQUFXLFNBQVMsQ0FBQyxDQUFDO0FBQ25HLE1BQUksWUFBWSxPQUFPLEdBQUc7QUFDeEIsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQUEsRUFDN0c7QUFFQSxNQUFJLHdCQUF3QixJQUFJLEdBQUc7QUFDakMsZUFBTyxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxvQkFBb0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUN2RTtBQUVBLFNBQU8sc0JBQXNCLElBQUksUUFBSSxlQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsSUFBSTtBQUMxRztBQWFPLFNBQVMsc0NBQXNDLFdBQXFCLFdBQTZCO0FBQ3RHLGFBQU8sc0JBQU07QUFBQSxJQUNYLDJCQUEyQixXQUFXLFNBQVM7QUFBQSxJQUMvQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBY08sU0FBUywyQkFBMkIsV0FBcUIsV0FBNkI7QUFDM0YsZ0JBQWMseUJBQVM7QUFDdkIsTUFBSSxXQUFXO0FBQ2IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxnQkFBYyx5QkFBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBV08sU0FBUyx5QkFBeUIsTUFBYyxXQUFxQixXQUE2QjtBQUN2RyxTQUFPLEtBQUssTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksNkJBQTZCLFNBQVMsV0FBVyxTQUFTLENBQUMsRUFBRSxLQUFLLE9BQU8sS0FBSztBQUN4SDtBQVdPLFNBQVMsd0JBQXdCLE1BQXVCO0FBQzdELFNBQU8sK0JBQStCLEtBQUssSUFBSTtBQUNqRDtBQWtCTyxTQUFTLHNCQUFzQixNQUF1QjtBQUMzRCxRQUFNLGNBQWMseUJBQXlCLElBQUk7QUFDakQsU0FBTyw4QkFBOEIsU0FBSyxzQkFBUyxpQkFBYSxxQkFBUSxXQUFXLENBQUMsQ0FBQztBQUN2RjtBQVdPLFNBQVMseUJBQXlCLE1BQXNCO0FBQzdELFNBQU8sS0FBSyxRQUFRLGdDQUFnQyxFQUFFO0FBQ3hEO0FBUUEsU0FBUyxnQkFBZ0IsTUFBdUI7QUFDOUMsYUFBVyxRQUFRLE1BQU07QUFDdkIsUUFBSSxPQUFPLHdCQUF3QjtBQUNqQyxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7IiwibmFtZXMiOltdfQ==
@@ -25,29 +25,85 @@ export declare function isValidationMessageHolder(value: unknown): value is Vali
25
25
  */
26
26
  export declare const OBSIDIAN_UNSAFE_FILENAME_CHARS: RegExp;
27
27
  /**
28
- * Windows-specific unsafe file name path characters.
28
+ * The characters Obsidian refuses in a file name on Windows.
29
+ *
30
+ * Read from Obsidian 1.15.0's `app.js`, whose name check throws on this set from `app.vault.create`, a
31
+ * rename and Sync alike.
29
32
  */
30
33
  export declare const WINDOWS_UNSAFE_PATH_CHARS: RegExp;
31
34
  /**
32
- * Unix-specific unsafe file name path characters.
35
+ * The characters Obsidian refuses in a file name on macOS, Linux and iOS, plus the NUL no file system stores.
36
+ *
37
+ * This is Obsidian's refusal set, not the file system's: macOS and Linux store `\` and `:`, but Obsidian
38
+ * refuses both, so a name holding either cannot be created through the vault there. Read from Obsidian
39
+ * 1.15.0's `app.js`.
33
40
  */
34
41
  export declare const UNIX_UNSAFE_PATH_CHARS: RegExp;
42
+ /**
43
+ * The characters Obsidian refuses in a file name on Android, plus the NUL no file system stores.
44
+ *
45
+ * Obsidian adds `* ? < > "` to the {@link UNIX_UNSAFE_PATH_CHARS} set there, because Android's shared
46
+ * storage refuses them. Read from Obsidian 1.15.0's `app.js`.
47
+ */
48
+ export declare const ANDROID_UNSAFE_PATH_CHARS: RegExp;
49
+ /**
50
+ * Validates a single file or folder name against every naming rule this module owns.
51
+ *
52
+ * The rules, checked in this order, and the first one broken names the message:
53
+ *
54
+ * 1. The name is not empty.
55
+ * 2. It holds no control character (U+0000 to U+001F).
56
+ * 3. It holds none of the characters {@link getOsAndObsidianUnsafePathCharsRegExp} matches.
57
+ * 4. It does not end with a dot or a space ({@link hasWindowsTrailingChars}).
58
+ * 5. It is not an MS-DOS device name ({@link isWindowsReservedName}), with or without an extension.
59
+ *
60
+ * Only rule 3 depends on the platform. Rules 2, 4 and 5 apply on every platform, because a vault is synced,
61
+ * and a name created on macOS or Linux that Windows refuses breaks the vault there. The character set follows
62
+ * the platform because it is Obsidian's own refusal set, which differs per platform: a name such as `a?b` is
63
+ * accepted on macOS, where Obsidian creates it.
64
+ *
65
+ * @param name - The name to validate. A single path segment, with or without its extension.
66
+ * @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
67
+ * @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
68
+ * `Platform.isAndroidApp`.
69
+ * @returns A message describing the first broken rule, or an empty string if the name is valid.
70
+ */
71
+ export declare function getFileNameValidationMessage(name: string, isWindows?: boolean, isAndroid?: boolean): string;
35
72
  /**
36
73
  * Returns a regexp matching all unsafe characters in file names/paths.
37
74
  *
38
- * Includes both OS-specific restrictions and Obsidian-specific ones.
75
+ * Includes both the platform's refused characters ({@link getOsUnsafePathCharsRegExp}) and the ones that break
76
+ * links ({@link OBSIDIAN_UNSAFE_FILENAME_CHARS}).
39
77
  *
40
- * @param isWindows - Whether to include Windows-specific restrictions. Defaults to `Platform.isWin`.
78
+ * @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
79
+ * @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
80
+ * `Platform.isAndroidApp`.
41
81
  * @returns A regexp matching all unsafe characters in file names/paths.
42
82
  */
43
- export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolean): RegExp;
83
+ export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolean, isAndroid?: boolean): RegExp;
84
+ /**
85
+ * Returns a regexp matching the characters Obsidian refuses in a file name on the given platform.
86
+ *
87
+ * That is {@link WINDOWS_UNSAFE_PATH_CHARS} on Windows, {@link ANDROID_UNSAFE_PATH_CHARS} on Android and
88
+ * {@link UNIX_UNSAFE_PATH_CHARS} everywhere else. It is Obsidian's set rather than the file system's, so a
89
+ * name it accepts can be created through the vault.
90
+ *
91
+ * @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
92
+ * @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
93
+ * `Platform.isAndroidApp`.
94
+ * @returns A regexp matching the characters Obsidian refuses in a file name on the given platform.
95
+ */
96
+ export declare function getOsUnsafePathCharsRegExp(isWindows?: boolean, isAndroid?: boolean): RegExp;
44
97
  /**
45
- * Returns a regexp matching characters that are not safe to use in file names/paths at the OS level.
98
+ * Validates every segment of a vault path with {@link getFileNameValidationMessage}.
46
99
  *
47
- * @param isWindows - Whether to include Windows-specific restrictions. Defaults to `Platform.isWin`.
48
- * @returns A regexp matching characters that are not safe to use in file names/paths at the OS level.
100
+ * @param path - The vault-relative path to validate, with `/` as the separator.
101
+ * @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
102
+ * @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
103
+ * `Platform.isAndroidApp`.
104
+ * @returns The message for the first invalid segment, or an empty string if every segment is valid.
49
105
  */
50
- export declare function getOsUnsafePathCharsRegExp(isWindows?: boolean): RegExp;
106
+ export declare function getPathValidationMessage(path: string, isWindows?: boolean, isAndroid?: boolean): string;
51
107
  /**
52
108
  * Checks whether a name ends with the dots or spaces Windows refuses.
53
109
  *
@@ -57,7 +57,7 @@ export { CssClass } from './css-class.mjs';
57
57
  export { PluginDataHandler } from './data-handler.mjs';
58
58
  export { fixTitle, makeLinkWithPath } from './dataview-link.mjs';
59
59
  export { getRenderedContainer, insertCodeBlock, reloadCurrentFileCache, renderIframe, renderPaginatedList, renderPaginatedTable } from './dataview.mjs';
60
- export { getObsidianLibDebugger } from './debug.mjs';
60
+ export { getObsidianLibDebugger, showInitialDebugMessage } from './debug.mjs';
61
61
  export { bootstrapDemoVault } from './demo-vault-helper.mjs';
62
62
  export { getDemoVaultArchiveFileName, getDemoVaultFolderName } from './demo-vault-naming.mjs';
63
63
  export { openDemoVault } from './desktop-demo-vault-opener.mjs';
@@ -160,7 +160,7 @@ export { PluginStatusBarItemRegistrar } from './status-bar-item-registrar.mjs';
160
160
  export { getTemplaterFunctions, getTemplaterRenderTargetFile, parseTemplate, requireTemplaterApi, resolveTemplaterApi, TEMPLATER_PLUGIN_ID, TemplaterActiveFileProvider, TemplaterRunMode, TemplaterUnavailabilityReason, TemplaterUnavailableError } from './templater.mjs';
161
161
  export { DurationTransformer } from './transformers/duration-transformer.mjs';
162
162
  export { clickElement, clickMouse, hoverElement, moveMouse, pressKey, typeIntoEditor, unhoverElement } from './trusted-input.mjs';
163
- export { getOsAndObsidianUnsafePathCharsRegExp, getOsUnsafePathCharsRegExp, hasWindowsTrailingChars, isValidationMessageHolder, isWindowsReservedName, OBSIDIAN_UNSAFE_FILENAME_CHARS, trimWindowsTrailingChars, UNIX_UNSAFE_PATH_CHARS, WINDOWS_UNSAFE_PATH_CHARS } from './validation.mjs';
163
+ export { ANDROID_UNSAFE_PATH_CHARS, getFileNameValidationMessage, getOsAndObsidianUnsafePathCharsRegExp, getOsUnsafePathCharsRegExp, getPathValidationMessage, hasWindowsTrailingChars, isValidationMessageHolder, isWindowsReservedName, OBSIDIAN_UNSAFE_FILENAME_CHARS, trimWindowsTrailingChars, UNIX_UNSAFE_PATH_CHARS, WINDOWS_UNSAFE_PATH_CHARS } from './validation.mjs';
164
164
  export { deleteIfNotUsed, DeleteIfNotUsedResult } from './vault-delete.mjs';
165
165
  export { VaultTransaction } from './vault-transaction.mjs';
166
166
  export { cleanupEmptyFolders, copySafe, createFolderSafe, CreateFolderSafeResult, createTemporaryFile, createTemporaryFolder, deleteEmptyFolder, deleteEmptyFolderHierarchy, getAbstractFilePathSafe, getAvailablePath, getFilePathSafe, getFolderPathSafe, getMarkdownFilesSorted, getNoteFilesSorted, getOrCreateAbstractFileSafe, getOrCreateFileSafe, getOrCreateFolderSafe, getSafeRenamePath, InvokeFileActionSafeResult, invokeWithFileSystemLock, isChild, isChildOrSelf, isEmptyFolder, listSafe, process, readSafe, renameSafe, saveNote, trashSafe } from './vault.mjs';
@@ -178,7 +178,7 @@ export { ASYNC_OPERATION_HOOK_KEY, ASYNC_OPERATION_HOOK_VERSION, getAsyncOperati
178
178
  export { Beeper } from '@mnaoumov/typescript-lib/beeper';
179
179
  export { blobToArrayBuffer, blobToDataUrl, blobToJpegArrayBuffer, dataUrlToArrayBuffer, isImageFile } from '@mnaoumov/typescript-lib/blob';
180
180
  export { formatBytes } from '@mnaoumov/typescript-lib/bytes';
181
- export { enableLibraryDebuggers, getDebugController, getDebugger, getLibDebugger, printWithStackTrace, showInitialDebugMessage } from '@mnaoumov/typescript-lib/debug';
181
+ export { enableLibraryDebuggers, formatDebugGuideReference, getDebugController, getDebugger, getLibDebugger, isDebugNamespaceEnabled, printWithStackTrace } from '@mnaoumov/typescript-lib/debug';
182
182
  export { getDebugSwitch, getDebugSwitches, getTerminateOnTimeoutDebugSwitch, onDebugSwitchChanged, registerDebugSwitch, setDebugSwitch } from '@mnaoumov/typescript-lib/debug-switches';
183
183
  export { extractZipArchive } from '@mnaoumov/typescript-lib/desktop-zip-extractor';
184
184
  export { AsyncCallbackDisposable, AsyncDisposableBase, CallbackDisposable, CombineAsyncDisposable, CombineDisposable, DisposableBase, dispose, disposeAsync, DisposeErrorBehavior, DisposeOrder, isAsyncDisposable, isAsyncDisposableEx, isDisposable, isDisposableEx, MultipleDisposeBehavior, toAsyncDisposableEx, toDisposableEx } from '@mnaoumov/typescript-lib/disposable';