obsidian-dev-utils 53.1.3 → 54.0.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/lib/cjs/library.cjs +1 -1
  3. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +5 -5
  4. package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +4 -4
  5. package/dist/lib/cjs/obsidian/i18n/locales/index.d.cts +1 -1
  6. package/dist/lib/cjs/obsidian/i18n/locales/{translationsMap.cjs → translations-map.cjs} +4 -4
  7. package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +3 -3
  8. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{changeExtensionPlugin.cjs → change-extension-plugin.cjs} +4 -4
  9. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +204 -0
  10. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{customEsbuildOptionsPlugin.cjs → custom-esbuild-options-plugin.cjs} +4 -4
  11. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +3 -3
  12. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{fixEsmPlugin.cjs → fix-esm-plugin.cjs} +4 -4
  13. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +172 -0
  14. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +25 -25
  15. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.d.cts +8 -8
  16. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +15 -15
  17. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +298 -0
  18. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{renameCssPlugin.cjs → rename-css-plugin.cjs} +4 -4
  19. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{svelteWrapperPlugin.cjs → svelte-wrapper-plugin.cjs} +4 -4
  20. package/dist/lib/esm/library.mjs +1 -1
  21. package/dist/lib/esm/obsidian/i18n/i18n.mjs +2 -2
  22. package/dist/lib/esm/obsidian/i18n/locales/index.d.mts +1 -1
  23. package/dist/lib/esm/obsidian/i18n/locales/index.mjs +3 -3
  24. package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +32 -0
  25. package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +2 -2
  26. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +58 -0
  27. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +106 -0
  28. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +33 -0
  29. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +2 -2
  30. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +39 -0
  31. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +69 -0
  32. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.d.mts +8 -8
  33. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.mjs +17 -17
  34. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +8 -8
  35. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +185 -0
  36. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +43 -0
  37. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +56 -0
  38. package/obsidian/i18n/locales/{translationsMap → translations-map}/package.json +3 -3
  39. package/package.json +2 -2
  40. package/script-utils/bundlers/esbuild-impl/change-extension-plugin/package.json +6 -0
  41. package/script-utils/bundlers/esbuild-impl/{copyToObsidianPluginsFolderPlugin → copy-to-obsidian-plugins-folder-plugin}/package.json +3 -3
  42. package/script-utils/bundlers/esbuild-impl/{customEsbuildOptionsPlugin → custom-esbuild-options-plugin}/package.json +3 -3
  43. package/script-utils/bundlers/esbuild-impl/{fixEsmPlugin → fix-esm-plugin}/package.json +3 -3
  44. package/script-utils/bundlers/esbuild-impl/{fixSourceMapsPlugin → fix-source-maps-plugin}/package.json +3 -3
  45. package/script-utils/bundlers/esbuild-impl/{renameCssPlugin → preprocess-plugin}/package.json +3 -3
  46. package/script-utils/bundlers/esbuild-impl/{preprocessPlugin → rename-css-plugin}/package.json +3 -3
  47. package/script-utils/bundlers/esbuild-impl/{changeExtensionPlugin → svelte-wrapper-plugin}/package.json +3 -3
  48. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.cjs +0 -204
  49. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fixSourceMapsPlugin.cjs +0 -172
  50. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocessPlugin.cjs +0 -298
  51. package/dist/lib/esm/obsidian/i18n/locales/translationsMap.mjs +0 -32
  52. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/changeExtensionPlugin.mjs +0 -58
  53. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.mjs +0 -106
  54. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/customEsbuildOptionsPlugin.mjs +0 -33
  55. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fixEsmPlugin.mjs +0 -39
  56. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fixSourceMapsPlugin.mjs +0 -69
  57. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocessPlugin.mjs +0 -185
  58. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/renameCssPlugin.mjs +0 -43
  59. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelteWrapperPlugin.mjs +0 -56
  60. package/script-utils/bundlers/esbuild-impl/svelteWrapperPlugin/package.json +0 -6
  61. /package/dist/lib/cjs/obsidian/i18n/locales/{translationsMap.d.cts → translations-map.d.cts} +0 -0
  62. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{changeExtensionPlugin.d.cts → change-extension-plugin.d.cts} +0 -0
  63. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{copyToObsidianPluginsFolderPlugin.d.cts → copy-to-obsidian-plugins-folder-plugin.d.cts} +0 -0
  64. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{customEsbuildOptionsPlugin.d.cts → custom-esbuild-options-plugin.d.cts} +0 -0
  65. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{fixEsmPlugin.d.cts → fix-esm-plugin.d.cts} +0 -0
  66. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{fixSourceMapsPlugin.d.cts → fix-source-maps-plugin.d.cts} +0 -0
  67. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{preprocessPlugin.d.cts → preprocess-plugin.d.cts} +0 -0
  68. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{renameCssPlugin.d.cts → rename-css-plugin.d.cts} +0 -0
  69. /package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/{svelteWrapperPlugin.d.cts → svelte-wrapper-plugin.d.cts} +0 -0
  70. /package/dist/lib/esm/obsidian/i18n/locales/{translationsMap.d.mts → translations-map.d.mts} +0 -0
  71. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{changeExtensionPlugin.d.mts → change-extension-plugin.d.mts} +0 -0
  72. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{copyToObsidianPluginsFolderPlugin.d.mts → copy-to-obsidian-plugins-folder-plugin.d.mts} +0 -0
  73. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{customEsbuildOptionsPlugin.d.mts → custom-esbuild-options-plugin.d.mts} +0 -0
  74. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{fixEsmPlugin.d.mts → fix-esm-plugin.d.mts} +0 -0
  75. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{fixSourceMapsPlugin.d.mts → fix-source-maps-plugin.d.mts} +0 -0
  76. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{preprocessPlugin.d.mts → preprocess-plugin.d.mts} +0 -0
  77. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{renameCssPlugin.d.mts → rename-css-plugin.d.mts} +0 -0
  78. /package/dist/lib/esm/script-utils/bundlers/esbuild-impl/{svelteWrapperPlugin.d.mts → svelte-wrapper-plugin.d.mts} +0 -0
@@ -1,204 +0,0 @@
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 initCjs() {
7
- const globalThisRecord = globalThis;
8
- globalThisRecord['__name'] ??= name;
9
- const originalRequire = require;
10
- if (originalRequire && !originalRequire.__isPatched) {
11
- // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
- require = Object.assign(
13
- (id) => requirePatched(id),
14
- originalRequire,
15
- {
16
- __isPatched: true
17
- }
18
- );
19
- }
20
-
21
- const newFuncs = {
22
- __extractDefault() {
23
- return extractDefault;
24
- },
25
- process() {
26
- const browserProcess = {
27
- browser: true,
28
- cwd() {
29
- return '/';
30
- },
31
- env: {},
32
- platform: 'android'
33
- };
34
- return browserProcess;
35
- }
36
- };
37
-
38
- for (const key of Object.keys(newFuncs)) {
39
- globalThisRecord[key] ??= newFuncs[key]?.();
40
- }
41
-
42
- function name(obj) {
43
- return obj;
44
- }
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
- 'obsidian',
52
- '@codemirror/autocomplete',
53
- '@codemirror/collab',
54
- '@codemirror/commands',
55
- '@codemirror/language',
56
- '@codemirror/lint',
57
- '@codemirror/search',
58
- '@codemirror/state',
59
- '@codemirror/text',
60
- '@codemirror/view',
61
- '@lezer/common',
62
- '@lezer/lr',
63
- '@lezer/highlight'];
64
-
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip'];
79
-
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
- if (globalThis?.app?.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
- return globalThis.process;
91
- }
92
- } else {
93
- const module = originalRequire?.(id);
94
- if (module) {
95
- return extractDefault(module);
96
- }
97
- }
98
-
99
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
- return {};
101
- }
102
- })();
103
-
104
- "use strict";
105
- var __defProp = Object.defineProperty;
106
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
- var __getOwnPropNames = Object.getOwnPropertyNames;
108
- var __hasOwnProp = Object.prototype.hasOwnProperty;
109
- var __export = (target, all) => {
110
- for (var name in all)
111
- __defProp(target, name, { get: all[name], enumerable: true });
112
- };
113
- var __copyProps = (to, from, except, desc) => {
114
- if (from && typeof from === "object" || typeof from === "function") {
115
- for (let key of __getOwnPropNames(from))
116
- if (!__hasOwnProp.call(to, key) && key !== except)
117
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
- }
119
- return to;
120
- };
121
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
- var copyToObsidianPluginsFolderPlugin_exports = {};
123
- __export(copyToObsidianPluginsFolderPlugin_exports, {
124
- copyToObsidianPluginsFolderPlugin: () => copyToObsidianPluginsFolderPlugin
125
- });
126
- module.exports = __toCommonJS(copyToObsidianPluginsFolderPlugin_exports);
127
- var import_node_fs = require('node:fs');
128
- var import_promises = require('node:fs/promises');
129
- var import_obsidian_integration_testing = require('obsidian-integration-testing');
130
- var import_debug = require('../../../debug.cjs');
131
- var import_path = require('../../../path.cjs');
132
- function copyToObsidianPluginsFolderPlugin(isProductionBuild, distFolder, obsidianConfigFolder, pluginName) {
133
- return {
134
- name: "copy-to-obsidian-plugins-folder",
135
- setup(build) {
136
- build.onEnd(async () => {
137
- if (isProductionBuild) {
138
- return;
139
- }
140
- if (!obsidianConfigFolder) {
141
- (0, import_debug.getLibDebugger)("copyToObsidianPluginsFolderPlugin")(
142
- "No Obsidian config folder configured. `OBSIDIAN_CONFIG_FOLDER` environment variable is not set in system or in `.env` file. The compiled plugin will not be copied into Obsidian plugins folder."
143
- );
144
- return;
145
- }
146
- obsidianConfigFolder = (0, import_path.toPosixPath)(obsidianConfigFolder);
147
- const pluginFolder = (0, import_path.join)(obsidianConfigFolder, "plugins", pluginName);
148
- if (!(0, import_node_fs.existsSync)(pluginFolder)) {
149
- await (0, import_promises.mkdir)(pluginFolder, { recursive: true });
150
- }
151
- await (0, import_promises.cp)(distFolder, pluginFolder, { recursive: true });
152
- const hotReloadFolder = (0, import_path.join)(obsidianConfigFolder, "plugins/hot-reload");
153
- if (!(0, import_node_fs.existsSync)(hotReloadFolder)) {
154
- await (0, import_promises.mkdir)(hotReloadFolder, { recursive: true });
155
- const hotReloadRepoUrl = "https://raw.githubusercontent.com/pjeby/hot-reload/master/";
156
- for (const fileName of ["main.js", "manifest.json"]) {
157
- const fileUrl = hotReloadRepoUrl + fileName;
158
- const response = await fetch(fileUrl);
159
- const text = await response.text();
160
- await (0, import_promises.writeFile)((0, import_path.join)(hotReloadFolder, fileName), text);
161
- }
162
- }
163
- await enableCommunityPlugin(obsidianConfigFolder, "hot-reload");
164
- await enableCommunityPlugin(obsidianConfigFolder, pluginName);
165
- });
166
- }
167
- };
168
- }
169
- async function enableCommunityPlugin(obsidianConfigFolder, pluginId) {
170
- const communityPluginsPath = (0, import_path.join)(obsidianConfigFolder, "community-plugins.json");
171
- let plugins = [];
172
- if ((0, import_node_fs.existsSync)(communityPluginsPath)) {
173
- const content = await (0, import_promises.readFile)(communityPluginsPath, "utf-8");
174
- plugins = JSON.parse(content);
175
- }
176
- if (!plugins.includes(pluginId)) {
177
- plugins.push(pluginId);
178
- const JSON_INDENT = 2;
179
- await (0, import_promises.writeFile)(communityPluginsPath, JSON.stringify(plugins, null, JSON_INDENT), "utf-8");
180
- }
181
- try {
182
- await (0, import_obsidian_integration_testing.evalInObsidian)({
183
- args: { pluginId },
184
- // eslint-disable-next-line no-shadow -- No actual shadowing as the function is executed externally.
185
- async fn({ app, pluginId: pluginId2 }) {
186
- await app.plugins.enablePluginAndSave(pluginId2);
187
- },
188
- vaultPath: obsidianConfigFolder
189
- });
190
- } catch (e) {
191
- const errorMessage = e instanceof Error ? e.message : String(e);
192
- const isNotFound = errorMessage.includes("ENOENT") || errorMessage.includes("not found") || errorMessage.includes("not recognized");
193
- if (isNotFound) {
194
- console.error(`Obsidian CLI is not installed. Plugin '${pluginId}' will be enabled on next vault open. See https://help.obsidian.md/cli`);
195
- } else {
196
- console.error(`Failed to enable plugin '${pluginId}' via Obsidian CLI.`, e);
197
- }
198
- }
199
- }
200
- // Annotate the CommonJS export names for ESM import in node:
201
- 0 && (module.exports = {
202
- copyToObsidianPluginsFolderPlugin
203
- });
204
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBhdXRvbWF0aWNhbGx5IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0XG4gKiB0byB0aGUgT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIgZHVyaW5nIGRldmVsb3BtZW50LiBUaGlzIHBsdWdpbiBoZWxwcyBzdHJlYW1saW5lXG4gKiB0aGUgZGV2ZWxvcG1lbnQgd29ya2Zsb3cgYnkgZW5zdXJpbmcgdGhhdCB0aGUgbGF0ZXN0IGJ1aWxkIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAqIGluIHRoZSBjb3JyZWN0IE9ic2lkaWFuIGZvbGRlciBmb3IgdGVzdGluZyBhbmQgdXNlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyBidWlsZCBvdXRwdXQgdG8gT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXI7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBta2RpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vZGVidWcudHMnO1xuaW1wb3J0IHtcbiAgam9pbixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnLi4vLi4vLi4vcGF0aC50cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0IHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gaXNQcm9kdWN0aW9uQnVpbGQgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuXG4gKiBAcGFyYW0gZGlzdEZvbGRlciAtIFRoZSBmb2xkZXIgd2hlcmUgdGhlIGJ1aWx0IGZpbGVzIGFyZSBsb2NhdGVkLlxuICogQHBhcmFtIG9ic2lkaWFuQ29uZmlnRm9sZGVyIC0gVGhlIGZvbGRlciBvZiB0aGUgT2JzaWRpYW4gY29uZmlndXJhdGlvbi4gSWYgbm90IHByb3ZpZGVkLCB0aGUgcGx1Z2luIHdpbGwgbm90IGNvcHkgZmlsZXMuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbihcbiAgaXNQcm9kdWN0aW9uQnVpbGQ6IGJvb2xlYW4sXG4gIGRpc3RGb2xkZXI6IHN0cmluZyxcbiAgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZyxcbiAgcGx1Z2luTmFtZTogc3RyaW5nXG4pOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdjb3B5LXRvLW9ic2lkaWFuLXBsdWdpbnMtZm9sZGVyJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9ic2lkaWFuQ29uZmlnRm9sZGVyKSB7XG4gICAgICAgICAgZ2V0TGliRGVidWdnZXIoJ2NvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbicpKFxuICAgICAgICAgICAgJ05vIE9ic2lkaWFuIGNvbmZpZyBmb2xkZXIgY29uZmlndXJlZC4gYE9CU0lESUFOX0NPTkZJR19GT0xERVJgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgaW4gc3lzdGVtIG9yIGluIGAuZW52YCBmaWxlLiBUaGUgY29tcGlsZWQgcGx1Z2luIHdpbGwgbm90IGJlIGNvcGllZCBpbnRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyLidcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyID0gdG9Qb3NpeFBhdGgob2JzaWRpYW5Db25maWdGb2xkZXIpO1xuXG4gICAgICAgIGNvbnN0IHBsdWdpbkZvbGRlciA9IGpvaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdwbHVnaW5zJywgcGx1Z2luTmFtZSk7XG5cbiAgICAgICAgaWYgKCFleGlzdHNTeW5jKHBsdWdpbkZvbGRlcikpIHtcbiAgICAgICAgICBhd2FpdCBta2RpcihwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgY3AoZGlzdEZvbGRlciwgcGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBob3RSZWxvYWRGb2xkZXIgPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAncGx1Z2lucy9ob3QtcmVsb2FkJyk7XG4gICAgICAgIGlmICghZXhpc3RzU3luYyhob3RSZWxvYWRGb2xkZXIpKSB7XG4gICAgICAgICAgYXdhaXQgbWtkaXIoaG90UmVsb2FkRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICBjb25zdCBob3RSZWxvYWRSZXBvVXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9wamVieS9ob3QtcmVsb2FkL21hc3Rlci8nO1xuICAgICAgICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2YgWydtYWluLmpzJywgJ21hbmlmZXN0Lmpzb24nXSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVVybCA9IGhvdFJlbG9hZFJlcG9VcmwgKyBmaWxlTmFtZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmlsZVVybCk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oaG90UmVsb2FkRm9sZGVyLCBmaWxlTmFtZSksIHRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ2hvdC1yZWxvYWQnKTtcbiAgICAgICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCBwbHVnaW5OYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5hYmxlQ29tbXVuaXR5UGx1Z2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmcsIHBsdWdpbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29tbXVuaXR5UGx1Z2luc1BhdGggPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAnY29tbXVuaXR5LXBsdWdpbnMuanNvbicpO1xuICBsZXQgcGx1Z2luczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGV4aXN0c1N5bmMoY29tbXVuaXR5UGx1Z2luc1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNvbW11bml0eVBsdWdpbnNQYXRoLCAndXRmLTgnKTtcbiAgICBwbHVnaW5zID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIGlmICghcGx1Z2lucy5pbmNsdWRlcyhwbHVnaW5JZCkpIHtcbiAgICBwbHVnaW5zLnB1c2gocGx1Z2luSWQpO1xuICAgIGNvbnN0IEpTT05fSU5ERU5UID0gMjtcbiAgICBhd2FpdCB3cml0ZUZpbGUoY29tbXVuaXR5UGx1Z2luc1BhdGgsIEpTT04uc3RyaW5naWZ5KHBsdWdpbnMsIG51bGwsIEpTT05fSU5ERU5UKSwgJ3V0Zi04Jyk7XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IGV2YWxJbk9ic2lkaWFuKHtcbiAgICAgIGFyZ3M6IHsgcGx1Z2luSWQgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3cgLS0gTm8gYWN0dWFsIHNoYWRvd2luZyBhcyB0aGUgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgZXh0ZXJuYWxseS5cbiAgICAgIGFzeW5jIGZuKHsgYXBwLCBwbHVnaW5JZCB9KSB7XG4gICAgICAgIGF3YWl0IGFwcC5wbHVnaW5zLmVuYWJsZVBsdWdpbkFuZFNhdmUocGx1Z2luSWQpO1xuICAgICAgfSxcbiAgICAgIHZhdWx0UGF0aDogb2JzaWRpYW5Db25maWdGb2xkZXJcbiAgICB9KTtcbiAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKTtcbiAgICBjb25zdCBpc05vdEZvdW5kID0gZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdFTk9FTlQnKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ25vdCBmb3VuZCcpIHx8IGVycm9yTWVzc2FnZS5pbmNsdWRlcygnbm90IHJlY29nbml6ZWQnKTtcbiAgICBpZiAoaXNOb3RGb3VuZCkge1xuICAgICAgY29uc29sZS5lcnJvcihgT2JzaWRpYW4gQ0xJIGlzIG5vdCBpbnN0YWxsZWQuIFBsdWdpbiAnJHtwbHVnaW5JZH0nIHdpbGwgYmUgZW5hYmxlZCBvbiBuZXh0IHZhdWx0IG9wZW4uIFNlZSBodHRwczovL2hlbHAub2JzaWRpYW4ubWQvY2xpYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBlbmFibGUgcGx1Z2luICcke3BsdWdpbklkfScgdmlhIE9ic2lkaWFuIENMSS5gLCBlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUEscUJBQTJCO0FBQzNCLHNCQUtPO0FBQ1AsMENBQStCO0FBRS9CLG1CQUErQjtBQUMvQixrQkFHTztBQVdBLFNBQVMsa0NBQ2QsbUJBQ0EsWUFDQSxzQkFDQSxZQUNRO0FBQ1IsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLFlBQU0sTUFBTSxZQUFZO0FBQ3RCLFlBQUksbUJBQW1CO0FBQ3JCO0FBQUEsUUFDRjtBQUVBLFlBQUksQ0FBQyxzQkFBc0I7QUFDekIsMkNBQWUsbUNBQW1DO0FBQUEsWUFDaEQ7QUFBQSxVQUNGO0FBQ0E7QUFBQSxRQUNGO0FBRUEsbUNBQXVCLHlCQUFZLG9CQUFvQjtBQUV2RCxjQUFNLG1CQUFlLGtCQUFLLHNCQUFzQixXQUFXLFVBQVU7QUFFckUsWUFBSSxLQUFDLDJCQUFXLFlBQVksR0FBRztBQUM3QixvQkFBTSx1QkFBTSxjQUFjLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFBQSxRQUMvQztBQUVBLGtCQUFNLG9CQUFHLFlBQVksY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRXRELGNBQU0sc0JBQWtCLGtCQUFLLHNCQUFzQixvQkFBb0I7QUFDdkUsWUFBSSxLQUFDLDJCQUFXLGVBQWUsR0FBRztBQUNoQyxvQkFBTSx1QkFBTSxpQkFBaUIsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUNoRCxnQkFBTSxtQkFBbUI7QUFDekIscUJBQVcsWUFBWSxDQUFDLFdBQVcsZUFBZSxHQUFHO0FBQ25ELGtCQUFNLFVBQVUsbUJBQW1CO0FBRW5DLGtCQUFNLFdBQVcsTUFBTSxNQUFNLE9BQU87QUFDcEMsa0JBQU0sT0FBTyxNQUFNLFNBQVMsS0FBSztBQUNqQyxzQkFBTSwrQkFBVSxrQkFBSyxpQkFBaUIsUUFBUSxHQUFHLElBQUk7QUFBQSxVQUN2RDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLHNCQUFzQixzQkFBc0IsWUFBWTtBQUM5RCxjQUFNLHNCQUFzQixzQkFBc0IsVUFBVTtBQUFBLE1BQzlELENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGO0FBRUEsZUFBZSxzQkFBc0Isc0JBQThCLFVBQWlDO0FBQ2xHLFFBQU0sMkJBQXVCLGtCQUFLLHNCQUFzQix3QkFBd0I7QUFDaEYsTUFBSSxVQUFvQixDQUFDO0FBQ3pCLFVBQUksMkJBQVcsb0JBQW9CLEdBQUc7QUFDcEMsVUFBTSxVQUFVLFVBQU0sMEJBQVMsc0JBQXNCLE9BQU87QUFDNUQsY0FBVSxLQUFLLE1BQU0sT0FBTztBQUFBLEVBQzlCO0FBRUEsTUFBSSxDQUFDLFFBQVEsU0FBUyxRQUFRLEdBQUc7QUFDL0IsWUFBUSxLQUFLLFFBQVE7QUFDckIsVUFBTSxjQUFjO0FBQ3BCLGNBQU0sMkJBQVUsc0JBQXNCLEtBQUssVUFBVSxTQUFTLE1BQU0sV0FBVyxHQUFHLE9BQU87QUFBQSxFQUMzRjtBQUVBLE1BQUk7QUFDRixjQUFNLG9EQUFlO0FBQUEsTUFDbkIsTUFBTSxFQUFFLFNBQVM7QUFBQTtBQUFBLE1BRWpCLE1BQU0sR0FBRyxFQUFFLEtBQUssVUFBQUEsVUFBUyxHQUFHO0FBQzFCLGNBQU0sSUFBSSxRQUFRLG9CQUFvQkEsU0FBUTtBQUFBLE1BQ2hEO0FBQUEsTUFDQSxXQUFXO0FBQUEsSUFDYixDQUFDO0FBQUEsRUFDSCxTQUFTLEdBQVk7QUFDbkIsVUFBTSxlQUFlLGFBQWEsUUFBUSxFQUFFLFVBQVUsT0FBTyxDQUFDO0FBQzlELFVBQU0sYUFBYSxhQUFhLFNBQVMsUUFBUSxLQUFLLGFBQWEsU0FBUyxXQUFXLEtBQUssYUFBYSxTQUFTLGdCQUFnQjtBQUNsSSxRQUFJLFlBQVk7QUFDZCxjQUFRLE1BQU0sMENBQTBDLFFBQVEsd0VBQXdFO0FBQUEsSUFDMUksT0FBTztBQUNMLGNBQVEsTUFBTSw0QkFBNEIsUUFBUSx1QkFBdUIsQ0FBQztBQUFBLElBQzVFO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogWyJwbHVnaW5JZCJdCn0K
@@ -1,172 +0,0 @@
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 initCjs() {
7
- const globalThisRecord = globalThis;
8
- globalThisRecord['__name'] ??= name;
9
- const originalRequire = require;
10
- if (originalRequire && !originalRequire.__isPatched) {
11
- // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
- require = Object.assign(
13
- (id) => requirePatched(id),
14
- originalRequire,
15
- {
16
- __isPatched: true
17
- }
18
- );
19
- }
20
-
21
- const newFuncs = {
22
- __extractDefault() {
23
- return extractDefault;
24
- },
25
- process() {
26
- const browserProcess = {
27
- browser: true,
28
- cwd() {
29
- return '/';
30
- },
31
- env: {},
32
- platform: 'android'
33
- };
34
- return browserProcess;
35
- }
36
- };
37
-
38
- for (const key of Object.keys(newFuncs)) {
39
- globalThisRecord[key] ??= newFuncs[key]?.();
40
- }
41
-
42
- function name(obj) {
43
- return obj;
44
- }
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
- 'obsidian',
52
- '@codemirror/autocomplete',
53
- '@codemirror/collab',
54
- '@codemirror/commands',
55
- '@codemirror/language',
56
- '@codemirror/lint',
57
- '@codemirror/search',
58
- '@codemirror/state',
59
- '@codemirror/text',
60
- '@codemirror/view',
61
- '@lezer/common',
62
- '@lezer/lr',
63
- '@lezer/highlight'];
64
-
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip'];
79
-
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
- if (globalThis?.app?.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
- return globalThis.process;
91
- }
92
- } else {
93
- const module = originalRequire?.(id);
94
- if (module) {
95
- return extractDefault(module);
96
- }
97
- }
98
-
99
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
- return {};
101
- }
102
- })();
103
-
104
- "use strict";
105
- var __defProp = Object.defineProperty;
106
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
- var __getOwnPropNames = Object.getOwnPropertyNames;
108
- var __hasOwnProp = Object.prototype.hasOwnProperty;
109
- var __export = (target, all) => {
110
- for (var name in all)
111
- __defProp(target, name, { get: all[name], enumerable: true });
112
- };
113
- var __copyProps = (to, from, except, desc) => {
114
- if (from && typeof from === "object" || typeof from === "function") {
115
- for (let key of __getOwnPropNames(from))
116
- if (!__hasOwnProp.call(to, key) && key !== except)
117
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
- }
119
- return to;
120
- };
121
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
- var fixSourceMapsPlugin_exports = {};
123
- __export(fixSourceMapsPlugin_exports, {
124
- fixSourceMapsPlugin: () => fixSourceMapsPlugin
125
- });
126
- module.exports = __toCommonJS(fixSourceMapsPlugin_exports);
127
- var import_node_fs = require('node:fs');
128
- var import_promises = require('node:fs/promises');
129
- var import_path = require('../../../path.cjs');
130
- var import_string = require('../../../string.cjs');
131
- function fixSourceMapsPlugin(isProductionBuild, distPaths, pluginName) {
132
- return {
133
- name: "fix-source-maps",
134
- setup(build) {
135
- build.onEnd(async () => {
136
- if (isProductionBuild) {
137
- return;
138
- }
139
- for (const distPath of distPaths) {
140
- if (!(0, import_node_fs.existsSync)(distPath)) {
141
- continue;
142
- }
143
- const content = await (0, import_promises.readFile)(distPath, "utf-8");
144
- const newContent = (0, import_string.replaceAll)(
145
- content,
146
- /(?<Prefix>\n(?:\/\/|\/\*)# sourceMappingURL=data:application\/json;base64,)(?<SourceMapBase64>.+?)(?<Suffix>$|\n| \*\/)(?:.|\n)*/g,
147
- (_, prefix, sourceMapBase64, suffix) => `${prefix + fixSourceMap(sourceMapBase64, pluginName) + suffix.trim()}
148
- /* nosourcemap */`
149
- );
150
- if (content !== newContent) {
151
- await (0, import_promises.writeFile)(distPath, newContent);
152
- }
153
- }
154
- });
155
- }
156
- };
157
- }
158
- function convertPathToObsidianUrl(path, pluginName) {
159
- const convertedPath = (0, import_string.replaceAll)((0, import_path.toPosixPath)(path), /^(?:\.\.\/)+/g, "");
160
- return `app://obsidian.md/plugin:${pluginName}/${convertedPath}`;
161
- }
162
- function fixSourceMap(sourceMapBase64, pluginName) {
163
- const sourceMapJson = Buffer.from(sourceMapBase64, "base64").toString("utf-8");
164
- const sourceMap = JSON.parse(sourceMapJson);
165
- sourceMap.sources = (sourceMap.sources ?? []).map((path) => convertPathToObsidianUrl(path, pluginName));
166
- return Buffer.from(JSON.stringify(sourceMap)).toString("base64");
167
- }
168
- // Annotate the CommonJS export names for ESM import in node:
169
- 0 && (module.exports = {
170
- fixSourceMapsPlugin
171
- });
172
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4U291cmNlTWFwc1BsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgc291cmNlIG1hcHMgZ2VuZXJhdGVkIGR1cmluZyBkZXZlbG9wbWVudC5cbiAqIEl0IGFkanVzdHMgdGhlIHBhdGhzIGluIHRoZSBzb3VyY2UgbWFwcyB0byBiZSBjb21wYXRpYmxlIHdpdGggT2JzaWRpYW4ncyBpbnRlcm5hbCBVUkwgc2NoZW1lLlxuICogQSBwbHVnaW4gaXMgb25seSBhY3RpdmUgZHVyaW5nIGRldmVsb3BtZW50IGJ1aWxkcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCByZXdyaXRlcyBzb3VyY2UgbWFwcyBmb3IgT2JzaWRpYW4gVVJMIHNjaGVtZTsgcmVxdWlyZXMgYSBsaXZlIGVzYnVpbGQgY29udGV4dC4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgdG9Qb3NpeFBhdGggfSBmcm9tICcuLi8uLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuXG5pbnRlcmZhY2UgU291cmNlTWFwIHtcbiAgc291cmNlczogc3RyaW5nW107XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGZpeGVzIHNvdXJjZSBtYXBzIGJ5IGFkanVzdGluZyB0aGUgcGF0aHMgdG8gYmUgY29tcGF0aWJsZVxuICogd2l0aCBPYnNpZGlhbidzIGludGVybmFsIFVSTCBzY2hlbWUuXG4gKlxuICogQHBhcmFtIGlzUHJvZHVjdGlvbkJ1aWxkIC0gQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgYnVpbGQgaXMgYSBwcm9kdWN0aW9uIGJ1aWxkLiBUaGUgcGx1Z2luIG9ubHkgcnVucyBpbiBub24tcHJvZHVjdGlvbiBidWlsZHMuXG4gKiBAcGFyYW0gZGlzdFBhdGhzIC0gVGhlIHBhdGhzIHRvIHRoZSBvdXRwdXQgZmlsZXMgY29udGFpbmluZyB0aGUgc291cmNlIG1hcHMuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4sIHVzZWQgdG8gY29uc3RydWN0IHRoZSBPYnNpZGlhbi1zcGVjaWZpYyBVUkxzLlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBmaXhlcyBzb3VyY2UgbWFwcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpeFNvdXJjZU1hcHNQbHVnaW4oaXNQcm9kdWN0aW9uQnVpbGQ6IGJvb2xlYW4sIGRpc3RQYXRoczogc3RyaW5nW10sIHBsdWdpbk5hbWU6IHN0cmluZyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2ZpeC1zb3VyY2UtbWFwcycsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBkaXN0UGF0aCBvZiBkaXN0UGF0aHMpIHtcbiAgICAgICAgICBpZiAoIWV4aXN0c1N5bmMoZGlzdFBhdGgpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZGlzdFBhdGgsICd1dGYtOCcpO1xuICAgICAgICAgIGNvbnN0IG5ld0NvbnRlbnQgPSByZXBsYWNlQWxsKFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIC8oPzxQcmVmaXg+XFxuKD86XFwvXFwvfFxcL1xcKikjIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvblxcL2pzb247YmFzZTY0LCkoPzxTb3VyY2VNYXBCYXNlNjQ+Lis/KSg/PFN1ZmZpeD4kfFxcbnwgXFwqXFwvKSg/Oi58XFxuKSovZyxcbiAgICAgICAgICAgIChfLCBwcmVmaXgsIHNvdXJjZU1hcEJhc2U2NCwgc3VmZml4KTogc3RyaW5nID0+IGAke3ByZWZpeCArIGZpeFNvdXJjZU1hcChzb3VyY2VNYXBCYXNlNjQsIHBsdWdpbk5hbWUpICsgc3VmZml4LnRyaW0oKX1cXG4vKiBub3NvdXJjZW1hcCAqL2BcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG5ld0NvbnRlbnQpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShkaXN0UGF0aCwgbmV3Q29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBnaXZlbiBmaWxlIHBhdGggdG8gYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIG9yaWdpbmFsIGZpbGUgcGF0aC5cbiAqIEBwYXJhbSBwbHVnaW5OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbi5cbiAqIEByZXR1cm5zIFRoZSBjb252ZXJ0ZWQgcGF0aCBhcyBhbiBPYnNpZGlhbi1zcGVjaWZpYyBVUkwuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRQYXRoVG9PYnNpZGlhblVybChwYXRoOiBzdHJpbmcsIHBsdWdpbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGNvbnZlcnRlZFBhdGggPSByZXBsYWNlQWxsKHRvUG9zaXhQYXRoKHBhdGgpLCAvXig/OlxcLlxcLlxcLykrL2csICcnKTtcbiAgcmV0dXJuIGBhcHA6Ly9vYnNpZGlhbi5tZC9wbHVnaW46JHtwbHVnaW5OYW1lfS8ke2NvbnZlcnRlZFBhdGh9YDtcbn1cblxuLyoqXG4gKiBBZGp1c3RzIHRoZSBwYXRocyBpbiB0aGUgYmFzZTY0LWVuY29kZWQgc291cmNlIG1hcCB0byBiZSBjb21wYXRpYmxlIHdpdGggT2JzaWRpYW4ncyBVUkwgc2NoZW1lLlxuICpcbiAqIEBwYXJhbSBzb3VyY2VNYXBCYXNlNjQgLSBUaGUgYmFzZTY0LWVuY29kZWQgc291cmNlIG1hcCBjb250ZW50LlxuICogQHBhcmFtIHBsdWdpbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgT2JzaWRpYW4gcGx1Z2luLCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgT2JzaWRpYW4tc3BlY2lmaWMgVVJMcy5cbiAqIEByZXR1cm5zIEEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHdpdGggdGhlIGFkanVzdGVkIHNvdXJjZSBtYXAuXG4gKi9cbmZ1bmN0aW9uIGZpeFNvdXJjZU1hcChzb3VyY2VNYXBCYXNlNjQ6IHN0cmluZywgcGx1Z2luTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgc291cmNlTWFwSnNvbiA9IEJ1ZmZlci5mcm9tKHNvdXJjZU1hcEJhc2U2NCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICBjb25zdCBzb3VyY2VNYXAgPSBKU09OLnBhcnNlKHNvdXJjZU1hcEpzb24pIGFzIFBhcnRpYWw8U291cmNlTWFwPjtcbiAgc291cmNlTWFwLnNvdXJjZXMgPSAoc291cmNlTWFwLnNvdXJjZXMgPz8gW10pLm1hcCgocGF0aCkgPT4gY29udmVydFBhdGhUb09ic2lkaWFuVXJsKHBhdGgsIHBsdWdpbk5hbWUpKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEscUJBQTJCO0FBQzNCLHNCQUdPO0FBRVAsa0JBQTRCO0FBQzVCLG9CQUEyQjtBQWVwQixTQUFTLG9CQUFvQixtQkFBNEIsV0FBcUIsWUFBNEI7QUFDL0csU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLFlBQU0sTUFBTSxZQUFZO0FBQ3RCLFlBQUksbUJBQW1CO0FBQ3JCO0FBQUEsUUFDRjtBQUVBLG1CQUFXLFlBQVksV0FBVztBQUNoQyxjQUFJLEtBQUMsMkJBQVcsUUFBUSxHQUFHO0FBQ3pCO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsVUFBTSwwQkFBUyxVQUFVLE9BQU87QUFDaEQsZ0JBQU0saUJBQWE7QUFBQSxZQUNqQjtBQUFBLFlBQ0E7QUFBQSxZQUNBLENBQUMsR0FBRyxRQUFRLGlCQUFpQixXQUFtQixHQUFHLFNBQVMsYUFBYSxpQkFBaUIsVUFBVSxJQUFJLE9BQU8sS0FBSyxDQUFDO0FBQUE7QUFBQSxVQUN2SDtBQUVBLGNBQUksWUFBWSxZQUFZO0FBQzFCLHNCQUFNLDJCQUFVLFVBQVUsVUFBVTtBQUFBLFVBQ3RDO0FBQUEsUUFDRjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0Y7QUFTQSxTQUFTLHlCQUF5QixNQUFjLFlBQTRCO0FBQzFFLFFBQU0sb0JBQWdCLDhCQUFXLHlCQUFZLElBQUksR0FBRyxpQkFBaUIsRUFBRTtBQUN2RSxTQUFPLDRCQUE0QixVQUFVLElBQUksYUFBYTtBQUNoRTtBQVNBLFNBQVMsYUFBYSxpQkFBeUIsWUFBNEI7QUFDekUsUUFBTSxnQkFBZ0IsT0FBTyxLQUFLLGlCQUFpQixRQUFRLEVBQUUsU0FBUyxPQUFPO0FBQzdFLFFBQU0sWUFBWSxLQUFLLE1BQU0sYUFBYTtBQUMxQyxZQUFVLFdBQVcsVUFBVSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyx5QkFBeUIsTUFBTSxVQUFVLENBQUM7QUFDdEcsU0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLFNBQVMsUUFBUTtBQUNqRTsiLAogICJuYW1lcyI6IFtdCn0K