obsidian-dev-utils 70.1.0 → 70.2.1
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 +23 -5
- package/dist/dev/main.js +138 -67
- package/dist/dprint.json +1 -1
- package/dist/lib/cjs/abort-controller.cjs +1 -1
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/library.d.cts +1 -1
- package/dist/lib/cjs/object-utils.cjs +1 -1
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +17 -10
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +13 -2
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +9 -1
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +6 -0
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +77 -25
- package/dist/lib/cjs/obsidian/link.cjs +2 -4
- package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +2 -4
- package/dist/lib/cjs/obsidian/markdown.cjs +80 -28
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +2 -0
- package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +1 -1
- package/dist/lib/cjs/script-utils/build.cjs +22 -1
- package/dist/lib/cjs/script-utils/build.d.cts +6 -0
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +2 -2
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +1 -1
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +2 -2
- package/dist/lib/cjs/script-utils/check-project-types.cjs +209 -0
- package/dist/lib/cjs/script-utils/check-project-types.d.cts +76 -0
- package/dist/lib/cjs/script-utils/exec.cjs +1 -1
- package/dist/lib/cjs/script-utils/index.cjs +7 -1
- package/dist/lib/cjs/script-utils/index.d.cts +2 -0
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +38 -1
- package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +1 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +1 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +1 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +3 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +4 -0
- package/dist/lib/cjs/script-utils/validate-declarations.cjs +203 -0
- package/dist/lib/cjs/script-utils/validate-declarations.d.cts +24 -0
- package/dist/lib/cjs/type.cjs +1 -1
- package/dist/lib/esm/abort-controller.mjs +1 -1
- package/dist/lib/esm/library.d.mts +1 -1
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/object-utils.mjs +1 -1
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +13 -2
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +17 -10
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +6 -0
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +9 -1
- package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +1 -1
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +1 -1
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +77 -25
- package/dist/lib/esm/obsidian/link.mjs +2 -4
- package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +2 -4
- package/dist/lib/esm/obsidian/markdown.mjs +80 -28
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +2 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
- package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +1 -1
- package/dist/lib/esm/script-utils/build.d.mts +6 -0
- package/dist/lib/esm/script-utils/build.mjs +27 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +2 -2
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +1 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +2 -2
- package/dist/lib/esm/script-utils/check-project-types.d.mts +76 -0
- package/dist/lib/esm/script-utils/check-project-types.mjs +98 -0
- package/dist/lib/esm/script-utils/exec.mjs +1 -1
- package/dist/lib/esm/script-utils/index.d.mts +2 -0
- package/dist/lib/esm/script-utils/index.mjs +5 -1
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +38 -1
- package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +1 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +1 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +1 -1
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +4 -0
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
- package/dist/lib/esm/script-utils/validate-declarations.d.mts +24 -0
- package/dist/lib/esm/script-utils/validate-declarations.mjs +106 -0
- package/dist/lib/esm/type.mjs +1 -1
- package/package.json +9 -9
- package/script-utils/check-project-types/package.json +6 -0
- package/script-utils/validate-declarations/package.json +6 -0
- package/scripts/postinstall.mjs +0 -29
|
@@ -170,7 +170,7 @@ async function getDependenciesToBundle() {
|
|
|
170
170
|
extractDependenciesToBundlePlugin(dependenciesToSkip, dependenciesToBundle)
|
|
171
171
|
],
|
|
172
172
|
sourcemap: "inline",
|
|
173
|
-
target: "
|
|
173
|
+
target: "ES2022",
|
|
174
174
|
treeShaking: true,
|
|
175
175
|
write: false
|
|
176
176
|
};
|
|
@@ -221,4 +221,4 @@ function extractDependenciesToBundlePlugin(dependenciesToSkip, dependenciesToBun
|
|
|
221
221
|
getDependenciesToBundle,
|
|
222
222
|
getDependenciesToSkip
|
|
223
223
|
});
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZGVwZW5kZW5jeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpID0+
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZGVwZW5kZW5jeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG9jYWxSZXF1aXJlID0gcmVxdWlyZTtcbiAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHVybC5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpLmhyZWY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBhY3RpdmVXaW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIH1cblxuICAgICAgLy8gRmFsbGJhY2sgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duXG4gICAgICByZXR1cm4gJyc7XG4gICAgfSkoKTtcbi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMgZm9yIG1hbmFnaW5nIGRlcGVuZGVuY2llcyBkdXJpbmcgdGhlIGVzYnVpbGQgcHJvY2Vzcy5cbiAqIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBkZXRlcm1pbmUgd2hpY2ggZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBza2lwcGVkIGFuZCB3aGljaFxuICogc2hvdWxkIGJlIGJ1bmRsZWQsIGFzIHdlbGwgYXMgYW4gZXNidWlsZCBwbHVnaW4gZm9yIGV4dHJhY3RpbmcgZGVwZW5kZW5jaWVzIHRvIGJ1bmRsZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCByZXNvbHZlcyBkZXBlbmRlbmNpZXMgYXQgYnVpbGQgdGltZTsgcmVxdWlyZXMgYSBsaXZlIGVzYnVpbGQgY29udGV4dC4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBCdWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHtcbiAgYnVpbHRpbk1vZHVsZXMsXG4gIGNyZWF0ZVJlcXVpcmVcbn0gZnJvbSAnbm9kZTptb2R1bGUnO1xuXG5pbXBvcnQge1xuICBnZXRGb2xkZXJOYW1lLFxuICBqb2luXG59IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgdHJpbVN0YXJ0IH0gZnJvbSAnLi4vLi4vLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi4vLi4vbnBtLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBiYW5uZXIsXG4gIGludm9rZUVzYnVpbGRcbn0gZnJvbSAnLi9vYnNpZGlhbi1wbHVnaW4tYnVpbGRlci50cyc7XG5pbXBvcnQgeyBwcmVwcm9jZXNzUGx1Z2luIH0gZnJvbSAnLi9wcmVwcm9jZXNzLXBsdWdpbi50cyc7XG5cbmNvbnN0IGVzbVJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbmludGVyZmFjZSBNb2R1bGVXaXRoRGVmYXVsdEV4cG9ydCB7XG4gIGRlZmF1bHQ6IHVua25vd247XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGJ1bmRsZWQgYnkgZXNidWlsZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIGRlcGVuZGVuY3kgbmFtZXMgdG8gYnVuZGxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzVG9CdW5kbGUoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBkZXBlbmRlbmNpZXNUb1NraXAgPSBhd2FpdCBnZXREZXBlbmRlbmNpZXNUb1NraXAoKTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzVG9CdW5kbGUgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBlbnRyeVBvaW50czogW2pvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TcmMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5BbnlUcyldLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgICBvdXRkaXI6ICdub3RoaW5nLXdpbGwtYmUtd3JpdHRlbi1vbi1kaXNrLXNvLXRoaXMtZG9lcy1ub3QtbWF0dGVyJyxcbiAgICBwbGF0Zm9ybTogJ25vZGUnLFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIHByZXByb2Nlc3NQbHVnaW4oKSxcbiAgICAgIGV4dHJhY3REZXBlbmRlbmNpZXNUb0J1bmRsZVBsdWdpbihkZXBlbmRlbmNpZXNUb1NraXAsIGRlcGVuZGVuY2llc1RvQnVuZGxlKVxuICAgIF0sXG4gICAgc291cmNlbWFwOiAnaW5saW5lJyxcbiAgICB0YXJnZXQ6ICdFUzIwMjInLFxuICAgIHRyZWVTaGFraW5nOiB0cnVlLFxuICAgIHdyaXRlOiBmYWxzZVxuICB9O1xuXG4gIGNvbnN0IGJ1aWxkQ29udGV4dCA9IGF3YWl0IGNvbnRleHQoYnVpbGRPcHRpb25zKTtcbiAgYXdhaXQgaW52b2tlRXNidWlsZChidWlsZENvbnRleHQsIHRydWUpO1xuICByZXR1cm4gQXJyYXkuZnJvbShkZXBlbmRlbmNpZXNUb0J1bmRsZSkuc29ydCgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgdGhhdCBzaG91bGQgYmUgc2tpcHBlZCBkdXJpbmcgdGhlIGJ1bmRsaW5nIHByb2Nlc3MuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIHtAbGluayBTZXR9IG9mIGRlcGVuZGVuY3kgbmFtZXMgdG8gc2tpcC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlcGVuZGVuY2llc1RvU2tpcCgpOiBQcm9taXNlPFNldDxzdHJpbmc+PiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKGdldEZvbGRlck5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1RvU2tpcCA9IG5ldyBTZXQ8c3RyaW5nPihbLi4uYnVpbHRpbk1vZHVsZXMsIC4uLk9iamVjdC5rZXlzKHBhY2thZ2VKc29uLmRlcGVuZGVuY2llcyA/PyB7fSkuZmlsdGVyKGNhblNraXBGcm9tQnVuZGxpbmcpXSk7XG4gIHJldHVybiBkZXBlbmRlbmNpZXNUb1NraXA7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbW9kdWxlIGNhbiBiZSBza2lwcGVkIGZyb20gYnVuZGxpbmcuXG4gKlxuICogQHBhcmFtIG1vZHVsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgbW9kdWxlIGNhbiBiZSBza2lwcGVkIGZyb20gYnVuZGxpbmcuXG4gKi9cbmZ1bmN0aW9uIGNhblNraXBGcm9tQnVuZGxpbmcobW9kdWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChtb2R1bGVOYW1lLnN0YXJ0c1dpdGgoJ0B0eXBlcy8nKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aCgnb2JzaWRpYW4nKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKG1vZHVsZU5hbWUgPT09ICdlc2J1aWxkJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBtb2R1bGUgPSBlc21SZXF1aXJlKG1vZHVsZU5hbWUpIGFzIE1vZHVsZVdpdGhEZWZhdWx0RXhwb3J0O1xuICAgIHJldHVybiAhbW9kdWxlLmRlZmF1bHQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBpZGVudGlmaWVzIHdoaWNoIGRlcGVuZGVuY2llcyBzaG91bGQgYmUgYnVuZGxlZC5cbiAqXG4gKiBAcGFyYW0gZGVwZW5kZW5jaWVzVG9Ta2lwIC0gQSBzZXQgb2YgZGVwZW5kZW5jeSBuYW1lcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkIGR1cmluZyBidW5kbGluZy5cbiAqIEBwYXJhbSBkZXBlbmRlbmNpZXNUb0J1bmRsZSAtIEEgc2V0IHdoZXJlIHRoZSBuYW1lcyBvZiBkZXBlbmRlbmNpZXMgdG8gYmUgYnVuZGxlZCB3aWxsIGJlIGFkZGVkLlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBleHRyYWN0cyBkZXBlbmRlbmNpZXMgdG8gYnVuZGxlLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVwZW5kZW5jaWVzVG9CdW5kbGVQbHVnaW4oZGVwZW5kZW5jaWVzVG9Ta2lwOiBTZXQ8c3RyaW5nPiwgZGVwZW5kZW5jaWVzVG9CdW5kbGU6IFNldDxzdHJpbmc+KTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAndGVzdCcsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uUmVzb2x2ZSh7IGZpbHRlcjogL15bXi4vXS8gfSwgKGFyZ3MpID0+IHtcbiAgICAgICAgaWYgKCFhcmdzLmltcG9ydGVyLmVuZHNXaXRoKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRHRzRXh0ZW5zaW9uKSkge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0cmltU3RhcnQoZW5zdXJlTm9uTnVsbGFibGUoYXJncy5wYXRoLnNwbGl0KCcvJylbMF0sICdXcm9uZyBwYXRoJyksICdub2RlOicpO1xuICAgICAgICAgIGlmICghZGVwZW5kZW5jaWVzVG9Ta2lwLmhhcyhhcmdzLnBhdGgpICYmICFkZXBlbmRlbmNpZXNUb1NraXAuaGFzKG1vZHVsZU5hbWUpKSB7XG4gICAgICAgICAgICBkZXBlbmRlbmNpZXNUb0J1bmRsZS5hZGQoYXJncy5wYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZXh0ZXJuYWw6IHRydWUsIHBhdGg6IGFyZ3MucGF0aCB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUErQkEscUJBQXdCO0FBQ3hCLHlCQUdPO0FBRVAsa0JBR087QUFDUCxvQkFBMEI7QUFDMUIseUJBQWtDO0FBQ2xDLGlCQUFnQztBQUNoQywyQ0FBMEM7QUFDMUMscUNBR087QUFDUCwrQkFBaUM7QUFqRGpD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
|
|
@@ -173,4 +173,4 @@ function fixSourceMap(sourceMapBase64, pluginName) {
|
|
|
173
173
|
0 && (module.exports = {
|
|
174
174
|
fixSourceMapsPlugin
|
|
175
175
|
});
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4LXNvdXJjZS1tYXBzLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyBzb3VyY2UgbWFwcyBnZW5lcmF0ZWQgZHVyaW5nIGRldmVsb3BtZW50LlxuICogSXQgYWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIHNvdXJjZSBtYXBzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBPYnNpZGlhbidzIGludGVybmFsIFVSTCBzY2hlbWUuXG4gKiBBIHBsdWdpbiBpcyBvbmx5IGFjdGl2ZSBkdXJpbmcgZGV2ZWxvcG1lbnQgYnVpbGRzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHJld3JpdGVzIHNvdXJjZSBtYXBzIGZvciBPYnNpZGlhbiBVUkwgc2NoZW1lOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICByZWFkRmlsZSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyB0b1Bvc2l4UGF0aCB9IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uLy4uLy4uL3N0cmluZy50cyc7XG5cbmludGVyZmFjZSBTb3VyY2VNYXAge1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgc291cmNlIG1hcHMgYnkgYWRqdXN0aW5nIHRoZSBwYXRocyB0byBiZSBjb21wYXRpYmxlXG4gKiB3aXRoIE9ic2lkaWFuJ3MgaW50ZXJuYWwgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gaXNQcm9kdWN0aW9uQnVpbGQgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuIFRoZSBwbHVnaW4gb25seSBydW5zIGluIG5vbi1wcm9kdWN0aW9uIGJ1aWxkcy5cbiAqIEBwYXJhbSBkaXN0UGF0aHMgLSBUaGUgcGF0aHMgdG8gdGhlIG91dHB1dCBmaWxlcyBjb250YWluaW5nIHRoZSBzb3VyY2UgbWFwcy5cbiAqIEBwYXJhbSBwbHVnaW5OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbiwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIE9ic2lkaWFuLXNwZWNpZmljIFVSTHMuXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGZpeGVzIHNvdXJjZSBtYXBzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZml4U291cmNlTWFwc1BsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbiwgZGlzdFBhdGhzOiBzdHJpbmdbXSwgcGx1Z2luTmFtZTogc3RyaW5nKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZml4LXNvdXJjZS1tYXBzJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGRpc3RQYXRoIG9mIGRpc3RQYXRocykge1xuICAgICAgICAgIGlmICghZXhpc3RzU3luYyhkaXN0UGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShkaXN0UGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlcGxhY2VBbGwoXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgLyg/PFByZWZpeD5cXG4oPzpcXC9cXC98XFwvXFwqKSMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uXFwvanNvbjtiYXNlNjQsKSg/
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvZml4LXNvdXJjZS1tYXBzLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyBzb3VyY2UgbWFwcyBnZW5lcmF0ZWQgZHVyaW5nIGRldmVsb3BtZW50LlxuICogSXQgYWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIHNvdXJjZSBtYXBzIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBPYnNpZGlhbidzIGludGVybmFsIFVSTCBzY2hlbWUuXG4gKiBBIHBsdWdpbiBpcyBvbmx5IGFjdGl2ZSBkdXJpbmcgZGV2ZWxvcG1lbnQgYnVpbGRzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IHJld3JpdGVzIHNvdXJjZSBtYXBzIGZvciBPYnNpZGlhbiBVUkwgc2NoZW1lOyByZXF1aXJlcyBhIGxpdmUgZXNidWlsZCBjb250ZXh0LiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICByZWFkRmlsZSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyB0b1Bvc2l4UGF0aCB9IGZyb20gJy4uLy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJy4uLy4uLy4uL3N0cmluZy50cyc7XG5cbmludGVyZmFjZSBTb3VyY2VNYXAge1xuICBzb3VyY2VzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgZml4ZXMgc291cmNlIG1hcHMgYnkgYWRqdXN0aW5nIHRoZSBwYXRocyB0byBiZSBjb21wYXRpYmxlXG4gKiB3aXRoIE9ic2lkaWFuJ3MgaW50ZXJuYWwgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gaXNQcm9kdWN0aW9uQnVpbGQgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuIFRoZSBwbHVnaW4gb25seSBydW5zIGluIG5vbi1wcm9kdWN0aW9uIGJ1aWxkcy5cbiAqIEBwYXJhbSBkaXN0UGF0aHMgLSBUaGUgcGF0aHMgdG8gdGhlIG91dHB1dCBmaWxlcyBjb250YWluaW5nIHRoZSBzb3VyY2UgbWFwcy5cbiAqIEBwYXJhbSBwbHVnaW5OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbiwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIE9ic2lkaWFuLXNwZWNpZmljIFVSTHMuXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdCB0aGF0IGZpeGVzIHNvdXJjZSBtYXBzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZml4U291cmNlTWFwc1BsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZDogYm9vbGVhbiwgZGlzdFBhdGhzOiBzdHJpbmdbXSwgcGx1Z2luTmFtZTogc3RyaW5nKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZml4LXNvdXJjZS1tYXBzJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGRpc3RQYXRoIG9mIGRpc3RQYXRocykge1xuICAgICAgICAgIGlmICghZXhpc3RzU3luYyhkaXN0UGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShkaXN0UGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlcGxhY2VBbGwoXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgLyg/PFByZWZpeD5cXG4oPzpcXC9cXC98XFwvXFwqKSMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uXFwvanNvbjtiYXNlNjQsKSg/PFNvdXJjZU1hcEJhc2U2ND4uKz8pKD88U3VmZml4PiR8XFxufCBcXCpcXC8pKD86LnxcXG4pKi9nLFxuICAgICAgICAgICAgKHsgY2FwdHVyZWRHcm91cEFyZ3M6IFtwcmVmaXggPSAnJywgc291cmNlTWFwQmFzZTY0ID0gJycsIHN1ZmZpeCA9ICcnXSB9KSA9PiBgJHtwcmVmaXggKyBmaXhTb3VyY2VNYXAoc291cmNlTWFwQmFzZTY0LCBwbHVnaW5OYW1lKSArIHN1ZmZpeC50cmltKCl9XFxuLyogbm9zb3VyY2VtYXAgKi9gXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChjb250ZW50ICE9PSBuZXdDb250ZW50KSB7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZGlzdFBhdGgsIG5ld0NvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgZ2l2ZW4gZmlsZSBwYXRoIHRvIGFuIE9ic2lkaWFuLXNwZWNpZmljIFVSTC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBvcmlnaW5hbCBmaWxlIHBhdGguXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIHBhdGggYXMgYW4gT2JzaWRpYW4tc3BlY2lmaWMgVVJMLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0UGF0aFRvT2JzaWRpYW5VcmwocGF0aDogc3RyaW5nLCBwbHVnaW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb252ZXJ0ZWRQYXRoID0gcmVwbGFjZUFsbCh0b1Bvc2l4UGF0aChwYXRoKSwgL14oPzpcXC5cXC5cXC8pKy9nLCAnJyk7XG4gIHJldHVybiBgYXBwOi8vb2JzaWRpYW4ubWQvcGx1Z2luOiR7cGx1Z2luTmFtZX0vJHtjb252ZXJ0ZWRQYXRofWA7XG59XG5cbi8qKlxuICogQWRqdXN0cyB0aGUgcGF0aHMgaW4gdGhlIGJhc2U2NC1lbmNvZGVkIHNvdXJjZSBtYXAgdG8gYmUgY29tcGF0aWJsZSB3aXRoIE9ic2lkaWFuJ3MgVVJMIHNjaGVtZS5cbiAqXG4gKiBAcGFyYW0gc291cmNlTWFwQmFzZTY0IC0gVGhlIGJhc2U2NC1lbmNvZGVkIHNvdXJjZSBtYXAgY29udGVudC5cbiAqIEBwYXJhbSBwbHVnaW5OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHBsdWdpbiwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIE9ic2lkaWFuLXNwZWNpZmljIFVSTHMuXG4gKiBAcmV0dXJucyBBIGJhc2U2NC1lbmNvZGVkIHN0cmluZyB3aXRoIHRoZSBhZGp1c3RlZCBzb3VyY2UgbWFwLlxuICovXG5mdW5jdGlvbiBmaXhTb3VyY2VNYXAoc291cmNlTWFwQmFzZTY0OiBzdHJpbmcsIHBsdWdpbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNvdXJjZU1hcEpzb24gPSBCdWZmZXIuZnJvbShzb3VyY2VNYXBCYXNlNjQsICdiYXNlNjQnKS50b1N0cmluZygndXRmLTgnKTtcbiAgY29uc3Qgc291cmNlTWFwID0gSlNPTi5wYXJzZShzb3VyY2VNYXBKc29uKSBhcyBQYXJ0aWFsPFNvdXJjZU1hcD47XG4gIHNvdXJjZU1hcC5zb3VyY2VzID0gKHNvdXJjZU1hcC5zb3VyY2VzID8/IFtdKS5tYXAoKHBhdGgpID0+IGNvbnZlcnRQYXRoVG9PYnNpZGlhblVybChwYXRoLCBwbHVnaW5OYW1lKSk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxxQkFBMkI7QUFDM0Isc0JBR087QUFFUCxrQkFBNEI7QUFDNUIsb0JBQTJCO0FBZXBCLFNBQVMsb0JBQW9CLG1CQUE0QixXQUFxQixZQUE0QjtBQUMvRyxTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxNQUFNLFlBQVk7QUFDdEIsWUFBSSxtQkFBbUI7QUFDckI7QUFBQSxRQUNGO0FBRUEsbUJBQVcsWUFBWSxXQUFXO0FBQ2hDLGNBQUksS0FBQywyQkFBVyxRQUFRLEdBQUc7QUFDekI7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sVUFBVSxVQUFNLDBCQUFTLFVBQVUsT0FBTztBQUNoRCxnQkFBTSxpQkFBYTtBQUFBLFlBQ2pCO0FBQUEsWUFDQTtBQUFBLFlBQ0EsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsSUFBSSxrQkFBa0IsSUFBSSxTQUFTLEVBQUUsRUFBRSxNQUFNLEdBQUcsU0FBUyxhQUFhLGlCQUFpQixVQUFVLElBQUksT0FBTyxLQUFLLENBQUM7QUFBQTtBQUFBLFVBQ3BKO0FBRUEsY0FBSSxZQUFZLFlBQVk7QUFDMUIsc0JBQU0sMkJBQVUsVUFBVSxVQUFVO0FBQUEsVUFDdEM7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQVNBLFNBQVMseUJBQXlCLE1BQWMsWUFBNEI7QUFDMUUsUUFBTSxvQkFBZ0IsOEJBQVcseUJBQVksSUFBSSxHQUFHLGlCQUFpQixFQUFFO0FBQ3ZFLFNBQU8sNEJBQTRCLFVBQVUsSUFBSSxhQUFhO0FBQ2hFO0FBU0EsU0FBUyxhQUFhLGlCQUF5QixZQUE0QjtBQUN6RSxRQUFNLGdCQUFnQixPQUFPLEtBQUssaUJBQWlCLFFBQVEsRUFBRSxTQUFTLE9BQU87QUFDN0UsUUFBTSxZQUFZLEtBQUssTUFBTSxhQUFhO0FBQzFDLFlBQVUsV0FBVyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLHlCQUF5QixNQUFNLFVBQVUsQ0FBQztBQUN0RyxTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsU0FBUyxDQUFDLEVBQUUsU0FBUyxRQUFRO0FBQ2pFOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -263,7 +263,7 @@ async function buildObsidianPlugin(params) {
|
|
|
263
263
|
(0, import_copy_to_obsidian_plugins_folder_plugin.copyToObsidianPluginsFolderPlugin)(isProductionBuild, distFolder, obsidianConfigFolder, pluginName)
|
|
264
264
|
],
|
|
265
265
|
sourcemap: isProductionBuild ? false : "inline",
|
|
266
|
-
target: "
|
|
266
|
+
target: "ES2022",
|
|
267
267
|
treeShaking: true
|
|
268
268
|
};
|
|
269
269
|
const buildContext = await (0, import_esbuild.context)(buildOptions);
|
|
@@ -290,4 +290,4 @@ async function invokeEsbuild(buildContext, isProductionBuild) {
|
|
|
290
290
|
dev,
|
|
291
291
|
invokeEsbuild
|
|
292
292
|
});
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvb2JzaWRpYW4tcGx1Z2luLWJ1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIGFuZCBidW5kbGUgYW4gT2JzaWRpYW4gcGx1Z2luIHVzaW5nIGVzYnVpbGQuXG4gKiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGJhc2VkIG9uIGRpZmZlcmVudCBidWlsZCBtb2RlcyAoZGV2ZWxvcG1lbnQgb3IgcHJvZHVjdGlvbiksXG4gKiBhbmQgaXQgc2V0cyB1cCB2YXJpb3VzIGVzYnVpbGQgcGx1Z2lucyB0byBwcmVwcm9jZXNzLCBsaW50LCBmaXggc291cmNlIG1hcHMsIGFuZCBjb3B5IGZpbGVzIHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZC1iYXNlZCBidWlsZCBwaXBlbGluZSB3aXRoIHNhc3Mvc3ZlbHRlIHBsdWdpbnMgYW5kIGZpbGUgd2F0Y2hlcnM7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb250ZXh0LFxuICBCdWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFdlIG5lZWQgYSB0ZW1wIHZhcmlhYmxlIHRvIGFwcGx5IGBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AoKWAgZml4IGJlbG93LlxuaW1wb3J0IHNhc3NQbHVnaW5fIGZyb20gJ2VzYnVpbGQtc2Fzcy1wbHVnaW4nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIG1rZGlyLFxuICBybSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgYnVpbHRpbk1vZHVsZXMgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgcHJvY2VzcywgeyBsb2FkRW52RmlsZSB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCB9IGZyb20gJy4uLy4uLy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IENsaVRhc2tSZXN1bHQgfSBmcm9tICcuLi8uLi9jbGktdXRpbHMudHMnO1xuaW1wb3J0IHsgbnBtUnVuIH0gZnJvbSAnLi4vLi4vbnBtLXJ1bi50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdCB9IGZyb20gJy4uLy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luIH0gZnJvbSAnLi9jb3B5LXRvLW9ic2lkaWFuLXBsdWdpbnMtZm9sZGVyLXBsdWdpbi50cyc7XG5pbXBvcnQgeyBjdXN0b21Fc2J1aWxkT3B0aW9uc1BsdWdpbiB9IGZyb20gJy4vY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMnO1xuaW1wb3J0IHsgZml4RXNtUGx1Z2luIH0gZnJvbSAnLi9maXgtZXNtLXBsdWdpbi50cyc7XG5pbXBvcnQgeyBmaXhTb3VyY2VNYXBzUGx1Z2luIH0gZnJvbSAnLi9maXgtc291cmNlLW1hcHMtcGx1Z2luLnRzJztcbmltcG9ydCB7IHByZXByb2Nlc3NQbHVnaW4gfSBmcm9tICcuL3ByZXByb2Nlc3MtcGx1Z2luLnRzJztcbmltcG9ydCB7IHJlbmFtZUNzc1BsdWdpbiB9IGZyb20gJy4vcmVuYW1lLWNzcy1wbHVnaW4udHMnO1xuaW1wb3J0IHsgc3ZlbHRlV3JhcHBlclBsdWdpbiB9IGZyb20gJy4vc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzJztcblxuY29uc3Qgc2Fzc1BsdWdpbiA9IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcChzYXNzUGx1Z2luXyk7XG5cbi8qKlxuICogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBidWlsZCBtb2Rlcy5cbiAqL1xuZXhwb3J0IGVudW0gQnVpbGRNb2RlIHtcbiAgLyoqIERldmVsb3BtZW50IG1vZGUgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW4gKi9cbiAgRGV2ZWxvcG1lbnQsXG4gIC8qKiBQcm9kdWN0aW9uIG1vZGUgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW4gKi9cbiAgUHJvZHVjdGlvblxufVxuXG4vKipcbiAqIEJhbm5lciB0ZXh0IHRvIGJlIGluY2x1ZGVkIGF0IHRoZSB0b3Agb2YgdGhlIGdlbmVyYXRlZCBmaWxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGJhbm5lciA9IGAvKlxuVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgRVNCVUlMRFxuaWYgeW91IHdhbnQgdG8gdmlldyB0aGUgc291cmNlLCBwbGVhc2UgdmlzaXQgdGhlIGdpdGh1YiByZXBvc2l0b3J5IG9mIHRoaXMgcGx1Z2luXG4qL1xuYDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgYnVpbGRPYnNpZGlhblBsdWdpbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRPYnNpZGlhblBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBDdXN0b20gZXNidWlsZCBwbHVnaW5zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXNidWlsZFBsdWdpbnM/OiBQbHVnaW5bXTtcblxuICAvKipcbiAgICogQ3VzdG9taXplcyB0aGUgYGVzYnVpbGRgIG9wdGlvbnMuXG4gICAqL1xuICBjdXN0b21pemVFc2J1aWxkT3B0aW9ucz8ob3B0aW9uczogQnVpbGRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQSBidWlsZCBtb2RlLCBlaXRoZXIgYERldmVsb3BtZW50YCBvciBgUHJvZHVjdGlvbmBcbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IEJ1aWxkTW9kZTtcblxuICAvKipcbiAgICogQSBmb2xkZXIgZm9yIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIHRoZSBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhbkNvbmZpZ0ZvbGRlcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZCBwYXJhbWV0ZXJzIHdpdGhvdXQgdGhlIG1vZGUgZmllbGQsIGZvciB1c2Ugd2l0aCB7QGxpbmsgYnVpbGR9IGFuZCB7QGxpbmsgZGV2fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZFBhcmFtcyB7XG4gIC8qKlxuICAgKiBDdXN0b20gZXNidWlsZCBwbHVnaW5zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXNidWlsZFBsdWdpbnM/OiBQbHVnaW5bXTtcblxuICAvKipcbiAgICogQ3VzdG9taXplcyB0aGUgYGVzYnVpbGRgIG9wdGlvbnMuXG4gICAqL1xuICBjdXN0b21pemVFc2J1aWxkT3B0aW9ucz8ob3B0aW9uczogQnVpbGRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQSBmb2xkZXIgZm9yIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIHRoZSBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhbkNvbmZpZ0ZvbGRlcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE9ic2lkaWFuUGx1Z2luQnVpbGRlckVudiB7XG4gIE9CU0lESUFOX0NPTkZJR19GT0xERVI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIE9ic2lkaWFuIHBsdWdpbiBpbiBwcm9kdWN0aW9uIG1vZGUgdXNpbmcgZXNidWlsZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gT3B0aW9uYWwgYnVpbGQgcGFyYW1ldGVycyAobW9kZSBpcyBzZXQgdG8gUHJvZHVjdGlvbiBhdXRvbWF0aWNhbGx5KS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYnVpbGQgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZChwYXJhbXM/OiBCdWlsZFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBidWlsZE9ic2lkaWFuUGx1Z2luKHsgLi4ucGFyYW1zLCBtb2RlOiBCdWlsZE1vZGUuUHJvZHVjdGlvbiB9KTtcbiAgcmVzdWx0LnRocm93T25GYWlsdXJlKCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBPYnNpZGlhbiBwbHVnaW4gYmFzZWQgb24gdGhlIHNwZWNpZmllZCBtb2RlIGFuZCBjb25maWd1cmF0aW9uIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IGluZGljYXRpbmcgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZiB0aGUgYnVpbGQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZE9ic2lkaWFuUGx1Z2luKHBhcmFtczogQnVpbGRPYnNpZGlhblBsdWdpblBhcmFtcyk6IFByb21pc2U8Q2xpVGFza1Jlc3VsdD4ge1xuICBhd2FpdCBucG1SdW4oJ2J1aWxkOmNvbXBpbGUnKTtcbiAgY29uc3QgZW52UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3QoJy5lbnYnKTtcbiAgaWYgKGVudlBhdGggJiYgZXhpc3RzU3luYyhlbnZQYXRoKSkge1xuICAgIGxvYWRFbnZGaWxlKGVudlBhdGgpO1xuICB9XG4gIGNvbnN0IG9ic2lkaWFuUGx1Z2luQnVpbGRlckVudiA9IHByb2Nlc3MuZW52IGFzIFBhcnRpYWw8T2JzaWRpYW5QbHVnaW5CdWlsZGVyRW52PjtcblxuICBjb25zdCBvYnNpZGlhbkNvbmZpZ0ZvbGRlciA9IHBhcmFtcy5vYnNpZGlhbkNvbmZpZ0ZvbGRlciA/PyBvYnNpZGlhblBsdWdpbkJ1aWxkZXJFbnYuT0JTSURJQU5fQ09ORklHX0ZPTERFUiA/PyAnJztcbiAgY29uc3QgaXNQcm9kdWN0aW9uQnVpbGQgPSBwYXJhbXMubW9kZSA9PT0gQnVpbGRNb2RlLlByb2R1Y3Rpb247XG5cbiAgY29uc3QgZGlzdEZvbGRlciA9IGVuc3VyZU5vbk51bGxhYmxlKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3QoaXNQcm9kdWN0aW9uQnVpbGQgPyBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQgOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0RGV2KSxcbiAgICAnQ291bGQgbm90IGRldGVybWluZSB0aGUgZGlzdCBmb2xkZXInXG4gICk7XG5cbiAgaWYgKGV4aXN0c1N5bmMoZGlzdEZvbGRlcikpIHtcbiAgICBhd2FpdCBybShkaXN0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuICBhd2FpdCBta2RpcihkaXN0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBkaXN0RmlsZU5hbWVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvblxuICBdO1xuICBpZiAoIWlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuSG90UmVsb2FkKSwgJycsICd1dGYtOCcpO1xuICB9XG5cbiAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBkaXN0RmlsZU5hbWVzKSB7XG4gICAgY29uc3QgbG9jYWxGaWxlID0gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChmaWxlTmFtZSksIGBDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBsb2NhbCBmaWxlIGZvciAke2ZpbGVOYW1lfWApO1xuICAgIGNvbnN0IGRpc3RGaWxlID0gam9pbihkaXN0Rm9sZGVyLCBmaWxlTmFtZSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhsb2NhbEZpbGUpKSB7XG4gICAgICBhd2FpdCBjcChsb2NhbEZpbGUsIGRpc3RGaWxlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXN0UGF0aCA9IGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpbkpzKTtcbiAgY29uc3QgY3NzUGF0aCA9IGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3R5bGVzQ3NzKTtcblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBjb25zdCBwbHVnaW5OYW1lID0gcGFja2FnZUpzb24ubmFtZSA/PyAnKHVua25vd24pJztcblxuICBjb25zdCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBjb25kaXRpb25zOiBbJ2Jyb3dzZXInXSxcbiAgICBlbnRyeVBvaW50czogW1xuICAgICAgZW5zdXJlTm9uTnVsbGFibGUoXG4gICAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3Qoam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5UcykpLFxuICAgICAgICAnQ291bGQgbm90IGRldGVybWluZSB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBwbHVnaW4nXG4gICAgICApXG4gICAgXSxcbiAgICBleHRlcm5hbDogW1xuICAgICAgJ29ic2lkaWFuJyxcbiAgICAgICdlbGVjdHJvbicsXG4gICAgICAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJyxcbiAgICAgICdAY29kZW1pcnJvci9jb2xsYWInLFxuICAgICAgJ0Bjb2RlbWlycm9yL2NvbW1hbmRzJyxcbiAgICAgICdAY29kZW1pcnJvci9sYW5ndWFnZScsXG4gICAgICAnQGNvZGVtaXJyb3IvbGludCcsXG4gICAgICAnQGNvZGVtaXJyb3Ivc2VhcmNoJyxcbiAgICAgICdAY29kZW1pcnJvci9zdGF0ZScsXG4gICAgICAnQGNvZGVtaXJyb3IvdmlldycsXG4gICAgICAnQGxlemVyL2NvbW1vbicsXG4gICAgICAnQGxlemVyL2hpZ2hsaWdodCcsXG4gICAgICAnQGxlemVyL2xyJyxcbiAgICAgICdlc2J1aWxkJyxcbiAgICAgICdlc2xpbnQnLFxuICAgICAgLi4uYnVpbHRpbk1vZHVsZXNcbiAgICBdLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAga2VlcE5hbWVzOiB0cnVlLFxuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgbWluaWZ5OiBpc1Byb2R1Y3Rpb25CdWlsZCxcbiAgICBvdXRmaWxlOiBkaXN0UGF0aCxcbiAgICBwbGF0Zm9ybTogJ25vZGUnLFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIGN1c3RvbUVzYnVpbGRPcHRpb25zUGx1Z2luKHBhcmFtcy5jdXN0b21pemVFc2J1aWxkT3B0aW9ucz8uYmluZChwYXJhbXMpKSxcbiAgICAgIHN2ZWx0ZVdyYXBwZXJQbHVnaW4oaXNQcm9kdWN0aW9uQnVpbGQpLFxuICAgICAgc2Fzc1BsdWdpbih7XG4gICAgICAgIHNvdXJjZU1hcDogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgICB9KSxcbiAgICAgIHJlbmFtZUNzc1BsdWdpbihkaXN0Rm9sZGVyKSxcbiAgICAgIHByZXByb2Nlc3NQbHVnaW4oKSxcbiAgICAgIGZpeEVzbVBsdWdpbigpLFxuICAgICAgZml4U291cmNlTWFwc1BsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCwgW2Rpc3RQYXRoLCBjc3NQYXRoXSwgcGx1Z2luTmFtZSksXG4gICAgICAuLi5wYXJhbXMuY3VzdG9tRXNidWlsZFBsdWdpbnMgPz8gW10sXG4gICAgICBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4oaXNQcm9kdWN0aW9uQnVpbGQsIGRpc3RGb2xkZXIsIG9ic2lkaWFuQ29uZmlnRm9sZGVyLCBwbHVnaW5OYW1lKVxuICAgIF0sXG4gICAgc291cmNlbWFwOiBpc1Byb2R1Y3Rpb25CdWlsZCA/IGZhbHNlIDogJ2lubGluZScsXG4gICAgdGFyZ2V0OiAnZXNuZXh0JyxcbiAgICB0cmVlU2hha2luZzogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGJ1aWxkQ29udGV4dCA9IGF3YWl0IGNvbnRleHQoYnVpbGRPcHRpb25zKTtcbiAgcmV0dXJuIGF3YWl0IGludm9rZUVzYnVpbGQoYnVpbGRDb250ZXh0LCBpc1Byb2R1Y3Rpb25CdWlsZCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBPYnNpZGlhbiBwbHVnaW4gaW4gZGV2ZWxvcG1lbnQgbW9kZSB1c2luZyBlc2J1aWxkIHdpdGggd2F0Y2guXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIGJ1aWxkIHBhcmFtZXRlcnMgKG1vZGUgaXMgc2V0IHRvIERldmVsb3BtZW50IGF1dG9tYXRpY2FsbHkpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBpbmRpY2F0aW5nIHRoZSBidWlsZCByZXN1bHQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBCdWlsZFBhcmFtcyB3aXRoIGJ1aWxkKCkuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV2KHBhcmFtcz86IEJ1aWxkUGFyYW1zKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIHJldHVybiBhd2FpdCBidWlsZE9ic2lkaWFuUGx1Z2luKHsgLi4ucGFyYW1zLCBtb2RlOiBCdWlsZE1vZGUuRGV2ZWxvcG1lbnQgfSk7XG59XG5cbi8qKlxuICogSW52b2tlcyB0aGUgYnVpbGQgcHJvY2VzcyB3aXRoIHRoZSBwcm92aWRlZCBidWlsZCBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBidWlsZENvbnRleHQgLSBUaGUgYnVpbGQgY29udGV4dCBnZW5lcmF0ZWQgYnkgZXNidWlsZC5cbiAqIEBwYXJhbSBpc1Byb2R1Y3Rpb25CdWlsZCAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJ1aWxkIGlzIGEgcHJvZHVjdGlvbiBidWlsZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaW5kaWNhdGluZyB0aGUgc3VjY2VzcyBvciBmYWlsdXJlIG9mIHRoZSBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGludm9rZUVzYnVpbGQoYnVpbGRDb250ZXh0OiBCdWlsZENvbnRleHQsIGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJ1aWxkQ29udGV4dC5yZWJ1aWxkKCk7XG4gICAgY29uc3QgaXNTdWNjZXNzID0gcmVzdWx0LmVycm9ycy5sZW5ndGggPT09IDAgJiYgcmVzdWx0Lndhcm5pbmdzLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKGlzU3VjY2Vzcyk7XG4gIH1cbiAgYXdhaXQgYnVpbGRDb250ZXh0LndhdGNoKCk7XG4gIHJldHVybiBDbGlUYXNrUmVzdWx0LkRvTm90RXhpdCgpO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEscUJBQXdCO0FBRXhCLGlDQUF3QjtBQUN4QixxQkFBMkI7QUFDM0Isc0JBS087QUFDUCx5QkFBK0I7QUFDL0IsMEJBQXFDO0FBRXJDLDBCQUE0QztBQUM1Qyx3Q0FBd0M7QUFDeEMsa0JBQXFCO0FBQ3JCLHlCQUFrQztBQUNsQyx1QkFBOEI7QUFDOUIscUJBQXVCO0FBQ3ZCLGlCQUFnQztBQUNoQyxrQkFBb0M7QUFDcEMsb0RBQWtEO0FBQ2xELDJDQUEyQztBQUMzQyw0QkFBNkI7QUFDN0Isb0NBQW9DO0FBQ3BDLCtCQUFpQztBQUNqQywrQkFBZ0M7QUFDaEMsbUNBQW9DO0FBRXBDLE1BQU0saUJBQWEsaURBQTRCLDJCQUFBQSxPQUFXO0FBS25ELElBQUssWUFBTCxrQkFBS0MsZUFBTDtBQUVMLEVBQUFBLHNCQUFBO0FBRUEsRUFBQUEsc0JBQUE7QUFKVSxTQUFBQTtBQUFBLEdBQUE7QUFVTCxNQUFNLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZEdEIsZUFBc0Is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O0FBQUEsSUFDQSxXQUFXLG9CQUFvQixRQUFRO0FBQUEsSUFDdkMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFFQSxRQUFNLGVBQWUsVUFBTSx3QkFBUSxZQUFZO0FBQy9DLFNBQU8sTUFBTSxjQUFjLGNBQWMsaUJBQWlCO0FBQzVEO0FBU0EsZUFBc0IsSUFBSSxRQUE4QztBQUN0RSxTQUFPLE1BQU0sb0JBQW9CLEVBQUUsR0FBRyxRQUFRLE1BQU0sb0JBQXNCLENBQUM7QUFDN0U7QUFTQSxlQUFzQixjQUFjLGNBQTRCLG1CQUFvRDtBQUNsSCxNQUFJLG1CQUFtQjtBQUNyQixVQUFNLFNBQVMsTUFBTSxhQUFhLFFBQVE7QUFDMUMsVUFBTSxZQUFZLE9BQU8sT0FBTyxXQUFXLEtBQUssT0FBTyxTQUFTLFdBQVc7QUFDM0UsV0FBTywrQkFBYyxRQUFRLFNBQVM7QUFBQSxFQUN4QztBQUNBLFFBQU0sYUFBYSxNQUFNO0FBQ3pCLFNBQU8sK0JBQWMsVUFBVTtBQUNqQzsiLAogICJuYW1lcyI6IFsic2Fzc1BsdWdpbl8iLCAiQnVpbGRNb2RlIiwgInByb2Nlc3MiXQp9Cg==
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvb2JzaWRpYW4tcGx1Z2luLWJ1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIGFuZCBidW5kbGUgYW4gT2JzaWRpYW4gcGx1Z2luIHVzaW5nIGVzYnVpbGQuXG4gKiBJdCBpbmNsdWRlcyBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGJhc2VkIG9uIGRpZmZlcmVudCBidWlsZCBtb2RlcyAoZGV2ZWxvcG1lbnQgb3IgcHJvZHVjdGlvbiksXG4gKiBhbmQgaXQgc2V0cyB1cCB2YXJpb3VzIGVzYnVpbGQgcGx1Z2lucyB0byBwcmVwcm9jZXNzLCBsaW50LCBmaXggc291cmNlIG1hcHMsIGFuZCBjb3B5IGZpbGVzIHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZC1iYXNlZCBidWlsZCBwaXBlbGluZSB3aXRoIHNhc3Mvc3ZlbHRlIHBsdWdpbnMgYW5kIGZpbGUgd2F0Y2hlcnM7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb250ZXh0LFxuICBCdWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgY29udGV4dCB9IGZyb20gJ2VzYnVpbGQnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFdlIG5lZWQgYSB0ZW1wIHZhcmlhYmxlIHRvIGFwcGx5IGBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AoKWAgZml4IGJlbG93LlxuaW1wb3J0IHNhc3NQbHVnaW5fIGZyb20gJ2VzYnVpbGQtc2Fzcy1wbHVnaW4nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIG1rZGlyLFxuICBybSxcbiAgd3JpdGVGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgYnVpbHRpbk1vZHVsZXMgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgcHJvY2VzcywgeyBsb2FkRW52RmlsZSB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcCB9IGZyb20gJy4uLy4uLy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IENsaVRhc2tSZXN1bHQgfSBmcm9tICcuLi8uLi9jbGktdXRpbHMudHMnO1xuaW1wb3J0IHsgbnBtUnVuIH0gZnJvbSAnLi4vLi4vbnBtLXJ1bi50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi8uLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdCB9IGZyb20gJy4uLy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luIH0gZnJvbSAnLi9jb3B5LXRvLW9ic2lkaWFuLXBsdWdpbnMtZm9sZGVyLXBsdWdpbi50cyc7XG5pbXBvcnQgeyBjdXN0b21Fc2J1aWxkT3B0aW9uc1BsdWdpbiB9IGZyb20gJy4vY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMnO1xuaW1wb3J0IHsgZml4RXNtUGx1Z2luIH0gZnJvbSAnLi9maXgtZXNtLXBsdWdpbi50cyc7XG5pbXBvcnQgeyBmaXhTb3VyY2VNYXBzUGx1Z2luIH0gZnJvbSAnLi9maXgtc291cmNlLW1hcHMtcGx1Z2luLnRzJztcbmltcG9ydCB7IHByZXByb2Nlc3NQbHVnaW4gfSBmcm9tICcuL3ByZXByb2Nlc3MtcGx1Z2luLnRzJztcbmltcG9ydCB7IHJlbmFtZUNzc1BsdWdpbiB9IGZyb20gJy4vcmVuYW1lLWNzcy1wbHVnaW4udHMnO1xuaW1wb3J0IHsgc3ZlbHRlV3JhcHBlclBsdWdpbiB9IGZyb20gJy4vc3ZlbHRlLXdyYXBwZXItcGx1Z2luLnRzJztcblxuY29uc3Qgc2Fzc1BsdWdpbiA9IGV4dHJhY3REZWZhdWx0RXhwb3J0SW50ZXJvcChzYXNzUGx1Z2luXyk7XG5cbi8qKlxuICogRW51bWVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBidWlsZCBtb2Rlcy5cbiAqL1xuZXhwb3J0IGVudW0gQnVpbGRNb2RlIHtcbiAgLyoqIERldmVsb3BtZW50IG1vZGUgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW4gKi9cbiAgRGV2ZWxvcG1lbnQsXG4gIC8qKiBQcm9kdWN0aW9uIG1vZGUgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW4gKi9cbiAgUHJvZHVjdGlvblxufVxuXG4vKipcbiAqIEJhbm5lciB0ZXh0IHRvIGJlIGluY2x1ZGVkIGF0IHRoZSB0b3Agb2YgdGhlIGdlbmVyYXRlZCBmaWxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGJhbm5lciA9IGAvKlxuVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgRVNCVUlMRFxuaWYgeW91IHdhbnQgdG8gdmlldyB0aGUgc291cmNlLCBwbGVhc2UgdmlzaXQgdGhlIGdpdGh1YiByZXBvc2l0b3J5IG9mIHRoaXMgcGx1Z2luXG4qL1xuYDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgYnVpbGRPYnNpZGlhblBsdWdpbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRPYnNpZGlhblBsdWdpblBhcmFtcyB7XG4gIC8qKlxuICAgKiBDdXN0b20gZXNidWlsZCBwbHVnaW5zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXNidWlsZFBsdWdpbnM/OiBQbHVnaW5bXTtcblxuICAvKipcbiAgICogQ3VzdG9taXplcyB0aGUgYGVzYnVpbGRgIG9wdGlvbnMuXG4gICAqL1xuICBjdXN0b21pemVFc2J1aWxkT3B0aW9ucz8ob3B0aW9uczogQnVpbGRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQSBidWlsZCBtb2RlLCBlaXRoZXIgYERldmVsb3BtZW50YCBvciBgUHJvZHVjdGlvbmBcbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IEJ1aWxkTW9kZTtcblxuICAvKipcbiAgICogQSBmb2xkZXIgZm9yIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIHRoZSBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhbkNvbmZpZ0ZvbGRlcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZCBwYXJhbWV0ZXJzIHdpdGhvdXQgdGhlIG1vZGUgZmllbGQsIGZvciB1c2Ugd2l0aCB7QGxpbmsgYnVpbGR9IGFuZCB7QGxpbmsgZGV2fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZFBhcmFtcyB7XG4gIC8qKlxuICAgKiBDdXN0b20gZXNidWlsZCBwbHVnaW5zIHRvIGJlIHVzZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXNidWlsZFBsdWdpbnM/OiBQbHVnaW5bXTtcblxuICAvKipcbiAgICogQ3VzdG9taXplcyB0aGUgYGVzYnVpbGRgIG9wdGlvbnMuXG4gICAqL1xuICBjdXN0b21pemVFc2J1aWxkT3B0aW9ucz8ob3B0aW9uczogQnVpbGRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQSBmb2xkZXIgZm9yIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIHRoZSBgT0JTSURJQU5fQ09ORklHX0ZPTERFUmAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhbkNvbmZpZ0ZvbGRlcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE9ic2lkaWFuUGx1Z2luQnVpbGRlckVudiB7XG4gIE9CU0lESUFOX0NPTkZJR19GT0xERVI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIE9ic2lkaWFuIHBsdWdpbiBpbiBwcm9kdWN0aW9uIG1vZGUgdXNpbmcgZXNidWlsZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gT3B0aW9uYWwgYnVpbGQgcGFyYW1ldGVycyAobW9kZSBpcyBzZXQgdG8gUHJvZHVjdGlvbiBhdXRvbWF0aWNhbGx5KS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYnVpbGQgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZChwYXJhbXM/OiBCdWlsZFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBidWlsZE9ic2lkaWFuUGx1Z2luKHsgLi4ucGFyYW1zLCBtb2RlOiBCdWlsZE1vZGUuUHJvZHVjdGlvbiB9KTtcbiAgcmVzdWx0LnRocm93T25GYWlsdXJlKCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBPYnNpZGlhbiBwbHVnaW4gYmFzZWQgb24gdGhlIHNwZWNpZmllZCBtb2RlIGFuZCBjb25maWd1cmF0aW9uIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGJ1aWxkaW5nIHRoZSBwbHVnaW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IGluZGljYXRpbmcgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZiB0aGUgYnVpbGQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZE9ic2lkaWFuUGx1Z2luKHBhcmFtczogQnVpbGRPYnNpZGlhblBsdWdpblBhcmFtcyk6IFByb21pc2U8Q2xpVGFza1Jlc3VsdD4ge1xuICBhd2FpdCBucG1SdW4oJ2J1aWxkOmNvbXBpbGUnKTtcbiAgY29uc3QgZW52UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3QoJy5lbnYnKTtcbiAgaWYgKGVudlBhdGggJiYgZXhpc3RzU3luYyhlbnZQYXRoKSkge1xuICAgIGxvYWRFbnZGaWxlKGVudlBhdGgpO1xuICB9XG4gIGNvbnN0IG9ic2lkaWFuUGx1Z2luQnVpbGRlckVudiA9IHByb2Nlc3MuZW52IGFzIFBhcnRpYWw8T2JzaWRpYW5QbHVnaW5CdWlsZGVyRW52PjtcblxuICBjb25zdCBvYnNpZGlhbkNvbmZpZ0ZvbGRlciA9IHBhcmFtcy5vYnNpZGlhbkNvbmZpZ0ZvbGRlciA/PyBvYnNpZGlhblBsdWdpbkJ1aWxkZXJFbnYuT0JTSURJQU5fQ09ORklHX0ZPTERFUiA/PyAnJztcbiAgY29uc3QgaXNQcm9kdWN0aW9uQnVpbGQgPSBwYXJhbXMubW9kZSA9PT0gQnVpbGRNb2RlLlByb2R1Y3Rpb247XG5cbiAgY29uc3QgZGlzdEZvbGRlciA9IGVuc3VyZU5vbk51bGxhYmxlKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3QoaXNQcm9kdWN0aW9uQnVpbGQgPyBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQgOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0RGV2KSxcbiAgICAnQ291bGQgbm90IGRldGVybWluZSB0aGUgZGlzdCBmb2xkZXInXG4gICk7XG5cbiAgaWYgKGV4aXN0c1N5bmMoZGlzdEZvbGRlcikpIHtcbiAgICBhd2FpdCBybShkaXN0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuICBhd2FpdCBta2RpcihkaXN0Rm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBkaXN0RmlsZU5hbWVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvblxuICBdO1xuICBpZiAoIWlzUHJvZHVjdGlvbkJ1aWxkKSB7XG4gICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuSG90UmVsb2FkKSwgJycsICd1dGYtOCcpO1xuICB9XG5cbiAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBkaXN0RmlsZU5hbWVzKSB7XG4gICAgY29uc3QgbG9jYWxGaWxlID0gZW5zdXJlTm9uTnVsbGFibGUocmVzb2x2ZVBhdGhGcm9tUm9vdChmaWxlTmFtZSksIGBDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBsb2NhbCBmaWxlIGZvciAke2ZpbGVOYW1lfWApO1xuICAgIGNvbnN0IGRpc3RGaWxlID0gam9pbihkaXN0Rm9sZGVyLCBmaWxlTmFtZSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhsb2NhbEZpbGUpKSB7XG4gICAgICBhd2FpdCBjcChsb2NhbEZpbGUsIGRpc3RGaWxlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXN0UGF0aCA9IGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpbkpzKTtcbiAgY29uc3QgY3NzUGF0aCA9IGpvaW4oZGlzdEZvbGRlciwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3R5bGVzQ3NzKTtcblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBjb25zdCBwbHVnaW5OYW1lID0gcGFja2FnZUpzb24ubmFtZSA/PyAnKHVua25vd24pJztcblxuICBjb25zdCBidWlsZE9wdGlvbnM6IEJ1aWxkT3B0aW9ucyA9IHtcbiAgICBiYW5uZXI6IHtcbiAgICAgIGpzOiBiYW5uZXJcbiAgICB9LFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBjb25kaXRpb25zOiBbJ2Jyb3dzZXInXSxcbiAgICBlbnRyeVBvaW50czogW1xuICAgICAgZW5zdXJlTm9uTnVsbGFibGUoXG4gICAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3Qoam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5UcykpLFxuICAgICAgICAnQ291bGQgbm90IGRldGVybWluZSB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBwbHVnaW4nXG4gICAgICApXG4gICAgXSxcbiAgICBleHRlcm5hbDogW1xuICAgICAgJ29ic2lkaWFuJyxcbiAgICAgICdlbGVjdHJvbicsXG4gICAgICAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJyxcbiAgICAgICdAY29kZW1pcnJvci9jb2xsYWInLFxuICAgICAgJ0Bjb2RlbWlycm9yL2NvbW1hbmRzJyxcbiAgICAgICdAY29kZW1pcnJvci9sYW5ndWFnZScsXG4gICAgICAnQGNvZGVtaXJyb3IvbGludCcsXG4gICAgICAnQGNvZGVtaXJyb3Ivc2VhcmNoJyxcbiAgICAgICdAY29kZW1pcnJvci9zdGF0ZScsXG4gICAgICAnQGNvZGVtaXJyb3IvdmlldycsXG4gICAgICAnQGxlemVyL2NvbW1vbicsXG4gICAgICAnQGxlemVyL2hpZ2hsaWdodCcsXG4gICAgICAnQGxlemVyL2xyJyxcbiAgICAgICdlc2J1aWxkJyxcbiAgICAgICdlc2xpbnQnLFxuICAgICAgLi4uYnVpbHRpbk1vZHVsZXNcbiAgICBdLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAga2VlcE5hbWVzOiB0cnVlLFxuICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgbWluaWZ5OiBpc1Byb2R1Y3Rpb25CdWlsZCxcbiAgICBvdXRmaWxlOiBkaXN0UGF0aCxcbiAgICBwbGF0Zm9ybTogJ25vZGUnLFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIGN1c3RvbUVzYnVpbGRPcHRpb25zUGx1Z2luKHBhcmFtcy5jdXN0b21pemVFc2J1aWxkT3B0aW9ucz8uYmluZChwYXJhbXMpKSxcbiAgICAgIHN2ZWx0ZVdyYXBwZXJQbHVnaW4oaXNQcm9kdWN0aW9uQnVpbGQpLFxuICAgICAgc2Fzc1BsdWdpbih7XG4gICAgICAgIHNvdXJjZU1hcDogIWlzUHJvZHVjdGlvbkJ1aWxkXG4gICAgICB9KSxcbiAgICAgIHJlbmFtZUNzc1BsdWdpbihkaXN0Rm9sZGVyKSxcbiAgICAgIHByZXByb2Nlc3NQbHVnaW4oKSxcbiAgICAgIGZpeEVzbVBsdWdpbigpLFxuICAgICAgZml4U291cmNlTWFwc1BsdWdpbihpc1Byb2R1Y3Rpb25CdWlsZCwgW2Rpc3RQYXRoLCBjc3NQYXRoXSwgcGx1Z2luTmFtZSksXG4gICAgICAuLi5wYXJhbXMuY3VzdG9tRXNidWlsZFBsdWdpbnMgPz8gW10sXG4gICAgICBjb3B5VG9PYnNpZGlhblBsdWdpbnNGb2xkZXJQbHVnaW4oaXNQcm9kdWN0aW9uQnVpbGQsIGRpc3RGb2xkZXIsIG9ic2lkaWFuQ29uZmlnRm9sZGVyLCBwbHVnaW5OYW1lKVxuICAgIF0sXG4gICAgc291cmNlbWFwOiBpc1Byb2R1Y3Rpb25CdWlsZCA/IGZhbHNlIDogJ2lubGluZScsXG4gICAgdGFyZ2V0OiAnRVMyMDIyJyxcbiAgICB0cmVlU2hha2luZzogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGJ1aWxkQ29udGV4dCA9IGF3YWl0IGNvbnRleHQoYnVpbGRPcHRpb25zKTtcbiAgcmV0dXJuIGF3YWl0IGludm9rZUVzYnVpbGQoYnVpbGRDb250ZXh0LCBpc1Byb2R1Y3Rpb25CdWlsZCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBPYnNpZGlhbiBwbHVnaW4gaW4gZGV2ZWxvcG1lbnQgbW9kZSB1c2luZyBlc2J1aWxkIHdpdGggd2F0Y2guXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIGJ1aWxkIHBhcmFtZXRlcnMgKG1vZGUgaXMgc2V0IHRvIERldmVsb3BtZW50IGF1dG9tYXRpY2FsbHkpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBpbmRpY2F0aW5nIHRoZSBidWlsZCByZXN1bHQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBJbnRlbnRpb25hbGx5IHNoYXJlcyBCdWlsZFBhcmFtcyB3aXRoIGJ1aWxkKCkuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV2KHBhcmFtcz86IEJ1aWxkUGFyYW1zKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIHJldHVybiBhd2FpdCBidWlsZE9ic2lkaWFuUGx1Z2luKHsgLi4ucGFyYW1zLCBtb2RlOiBCdWlsZE1vZGUuRGV2ZWxvcG1lbnQgfSk7XG59XG5cbi8qKlxuICogSW52b2tlcyB0aGUgYnVpbGQgcHJvY2VzcyB3aXRoIHRoZSBwcm92aWRlZCBidWlsZCBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBidWlsZENvbnRleHQgLSBUaGUgYnVpbGQgY29udGV4dCBnZW5lcmF0ZWQgYnkgZXNidWlsZC5cbiAqIEBwYXJhbSBpc1Byb2R1Y3Rpb25CdWlsZCAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJ1aWxkIGlzIGEgcHJvZHVjdGlvbiBidWlsZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaW5kaWNhdGluZyB0aGUgc3VjY2VzcyBvciBmYWlsdXJlIG9mIHRoZSBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGludm9rZUVzYnVpbGQoYnVpbGRDb250ZXh0OiBCdWlsZENvbnRleHQsIGlzUHJvZHVjdGlvbkJ1aWxkOiBib29sZWFuKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIGlmIChpc1Byb2R1Y3Rpb25CdWlsZCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJ1aWxkQ29udGV4dC5yZWJ1aWxkKCk7XG4gICAgY29uc3QgaXNTdWNjZXNzID0gcmVzdWx0LmVycm9ycy5sZW5ndGggPT09IDAgJiYgcmVzdWx0Lndhcm5pbmdzLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKGlzU3VjY2Vzcyk7XG4gIH1cbiAgYXdhaXQgYnVpbGRDb250ZXh0LndhdGNoKCk7XG4gIHJldHVybiBDbGlUYXNrUmVzdWx0LkRvTm90RXhpdCgpO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEscUJBQXdCO0FBRXhCLGlDQUF3QjtBQUN4QixxQkFBMkI7QUFDM0Isc0JBS087QUFDUCx5QkFBK0I7QUFDL0IsMEJBQXFDO0FBRXJDLDBCQUE0QztBQUM1Qyx3Q0FBd0M7QUFDeEMsa0JBQXFCO0FBQ3JCLHlCQUFrQztBQUNsQyx1QkFBOEI7QUFDOUIscUJBQXVCO0FBQ3ZCLGlCQUFnQztBQUNoQyxrQkFBb0M7QUFDcEMsb0RBQWtEO0FBQ2xELDJDQUEyQztBQUMzQyw0QkFBNkI7QUFDN0Isb0NBQW9DO0FBQ3BDLCtCQUFpQztBQUNqQywrQkFBZ0M7QUFDaEMsbUNBQW9DO0FBRXBDLE1BQU0saUJBQWEsaURBQTRCLDJCQUFBQSxPQUFXO0FBS25ELElBQUssWUFBTCxrQkFBS0MsZUFBTDtBQUVMLEVBQUFBLHNCQUFBO0FBRUEsRUFBQUEsc0JBQUE7QUFKVSxTQUFBQTtBQUFBLEdBQUE7QUFVTCxNQUFNLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZEdEIsZUFBc0Is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O0FBQUEsSUFDQSxXQUFXLG9CQUFvQixRQUFRO0FBQUEsSUFDdkMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFFQSxRQUFNLGVBQWUsVUFBTSx3QkFBUSxZQUFZO0FBQy9DLFNBQU8sTUFBTSxjQUFjLGNBQWMsaUJBQWlCO0FBQzVEO0FBU0EsZUFBc0IsSUFBSSxRQUE4QztBQUN0RSxTQUFPLE1BQU0sb0JBQW9CLEVBQUUsR0FBRyxRQUFRLE1BQU0sb0JBQXNCLENBQUM7QUFDN0U7QUFTQSxlQUFzQixjQUFjLGNBQTRCLG1CQUFvRDtBQUNsSCxNQUFJLG1CQUFtQjtBQUNyQixVQUFNLFNBQVMsTUFBTSxhQUFhLFFBQVE7QUFDMUMsVUFBTSxZQUFZLE9BQU8sT0FBTyxXQUFXLEtBQUssT0FBTyxTQUFTLFdBQVc7QUFDM0UsV0FBTywrQkFBYyxRQUFRLFNBQVM7QUFBQSxFQUN4QztBQUNBLFFBQU0sYUFBYSxNQUFNO0FBQ3pCLFNBQU8sK0JBQWMsVUFBVTtBQUNqQzsiLAogICJuYW1lcyI6IFsic2Fzc1BsdWdpbl8iLCAiQnVpbGRNb2RlIiwgInByb2Nlc3MiXQp9Cg==
|
|
@@ -0,0 +1,209 @@
|
|
|
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
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
8
|
+
const globalThisRecord = globalThis;
|
|
9
|
+
globalThisRecord['__name'] ??= name;
|
|
10
|
+
const originalRequire = require;
|
|
11
|
+
if (originalRequire && !originalRequire.__isPatched) {
|
|
12
|
+
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
13
|
+
require = Object.assign(
|
|
14
|
+
(id) => requirePatched(id),
|
|
15
|
+
originalRequire,
|
|
16
|
+
{
|
|
17
|
+
__isPatched: true
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const newFuncs = {
|
|
23
|
+
__extractDefault() {
|
|
24
|
+
return extractDefault;
|
|
25
|
+
},
|
|
26
|
+
process() {
|
|
27
|
+
const browserProcess = {
|
|
28
|
+
browser: true,
|
|
29
|
+
cwd() {
|
|
30
|
+
return '/';
|
|
31
|
+
},
|
|
32
|
+
env: {},
|
|
33
|
+
platform: 'android'
|
|
34
|
+
};
|
|
35
|
+
return browserProcess;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
for (const key of Object.keys(newFuncs)) {
|
|
40
|
+
globalThisRecord[key] ??= newFuncs[key]?.();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function name(obj) {
|
|
44
|
+
return obj;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function extractDefault(module) {
|
|
48
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
52
|
+
'obsidian',
|
|
53
|
+
'@codemirror/autocomplete',
|
|
54
|
+
'@codemirror/collab',
|
|
55
|
+
'@codemirror/commands',
|
|
56
|
+
'@codemirror/language',
|
|
57
|
+
'@codemirror/lint',
|
|
58
|
+
'@codemirror/search',
|
|
59
|
+
'@codemirror/state',
|
|
60
|
+
'@codemirror/text',
|
|
61
|
+
'@codemirror/view',
|
|
62
|
+
'@lezer/common',
|
|
63
|
+
'@lezer/lr',
|
|
64
|
+
'@lezer/highlight'];
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
68
|
+
'@codemirror/closebrackets',
|
|
69
|
+
'@codemirror/comment',
|
|
70
|
+
'@codemirror/fold',
|
|
71
|
+
'@codemirror/gutter',
|
|
72
|
+
'@codemirror/highlight',
|
|
73
|
+
'@codemirror/history',
|
|
74
|
+
'@codemirror/matchbrackets',
|
|
75
|
+
'@codemirror/panel',
|
|
76
|
+
'@codemirror/rangeset',
|
|
77
|
+
'@codemirror/rectangular-selection',
|
|
78
|
+
'@codemirror/stream-parser',
|
|
79
|
+
'@codemirror/tooltip'];
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
function requirePatched(id) {
|
|
83
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
|
|
84
|
+
return originalRequire?.(id);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
88
|
+
if (globalThis.app.isMobile) {
|
|
89
|
+
if (id === 'process' || id === 'node:process') {
|
|
90
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
91
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
92
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
93
|
+
return globalThis.process;
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
const module = originalRequire?.(id);
|
|
97
|
+
if (module) {
|
|
98
|
+
return extractDefault(module);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
103
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
104
|
+
return {};
|
|
105
|
+
}
|
|
106
|
+
})();
|
|
107
|
+
|
|
108
|
+
"use strict";
|
|
109
|
+
var __create = Object.create;
|
|
110
|
+
var __defProp = Object.defineProperty;
|
|
111
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
112
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
113
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
114
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
115
|
+
var __export = (target, all) => {
|
|
116
|
+
for (var name in all)
|
|
117
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
118
|
+
};
|
|
119
|
+
var __copyProps = (to, from, except, desc) => {
|
|
120
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
121
|
+
for (let key of __getOwnPropNames(from))
|
|
122
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
123
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
124
|
+
}
|
|
125
|
+
return to;
|
|
126
|
+
};
|
|
127
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
128
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
129
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
130
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
131
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
132
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
133
|
+
mod
|
|
134
|
+
));
|
|
135
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
136
|
+
var check_project_types_exports = {};
|
|
137
|
+
__export(check_project_types_exports, {
|
|
138
|
+
checkProjectTypes: () => checkProjectTypes,
|
|
139
|
+
parseTsConfig: () => parseTsConfig,
|
|
140
|
+
toCanonical: () => toCanonical
|
|
141
|
+
});
|
|
142
|
+
module.exports = __toCommonJS(check_project_types_exports);
|
|
143
|
+
var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
|
|
144
|
+
var import_typescript = require('typescript');
|
|
145
|
+
const FORMAT_HOST = {
|
|
146
|
+
getCanonicalFileName: (fileName) => fileName,
|
|
147
|
+
getCurrentDirectory: () => import_typescript.sys.getCurrentDirectory(),
|
|
148
|
+
getNewLine: () => import_typescript.sys.newLine
|
|
149
|
+
};
|
|
150
|
+
function checkProjectTypes(params) {
|
|
151
|
+
const options = {
|
|
152
|
+
...params.options,
|
|
153
|
+
skipLibCheck: false
|
|
154
|
+
};
|
|
155
|
+
const program = (0, import_typescript.createProgram)({
|
|
156
|
+
options,
|
|
157
|
+
rootNames: [...params.rootNames]
|
|
158
|
+
});
|
|
159
|
+
const allDiagnostics = (0, import_typescript.getPreEmitDiagnostics)(program);
|
|
160
|
+
const keptDiagnostics = allDiagnostics.filter((diagnostic) => shouldKeepDiagnosticByFile(diagnostic, params.shouldKeepFile) && (params.shouldKeepDiagnostic?.(diagnostic) ?? true));
|
|
161
|
+
const ignoredCount = allDiagnostics.length - keptDiagnostics.length;
|
|
162
|
+
if (keptDiagnostics.length > 0) {
|
|
163
|
+
import_node_process.default.stdout.write((0, import_typescript.formatDiagnosticsWithColorAndContext)(keptDiagnostics, FORMAT_HOST));
|
|
164
|
+
}
|
|
165
|
+
import_node_process.default.stdout.write(`Ignored ${String(ignoredCount)} diagnostic(s) outside the validated set.
|
|
166
|
+
`);
|
|
167
|
+
return !keptDiagnostics.some((diagnostic) => diagnostic.category === import_typescript.DiagnosticCategory.Error);
|
|
168
|
+
}
|
|
169
|
+
function parseTsConfig(tsConfigPath) {
|
|
170
|
+
const host = {
|
|
171
|
+
fileExists: (path) => import_typescript.sys.fileExists(path),
|
|
172
|
+
getCurrentDirectory: () => import_typescript.sys.getCurrentDirectory(),
|
|
173
|
+
onUnRecoverableConfigFileDiagnostic: (diagnostic) => {
|
|
174
|
+
throw new Error((0, import_typescript.formatDiagnostic)(diagnostic, FORMAT_HOST));
|
|
175
|
+
},
|
|
176
|
+
readDirectory: (rootDir, extensions, excludes, includes, depth) => import_typescript.sys.readDirectory(rootDir, extensions, excludes, includes, depth),
|
|
177
|
+
readFile: (path) => import_typescript.sys.readFile(path),
|
|
178
|
+
useCaseSensitiveFileNames: import_typescript.sys.useCaseSensitiveFileNames
|
|
179
|
+
};
|
|
180
|
+
const parsed = (0, import_typescript.getParsedCommandLineOfConfigFile)(tsConfigPath, void 0, host);
|
|
181
|
+
if (!parsed) {
|
|
182
|
+
throw new Error(`Failed to parse TypeScript config: ${tsConfigPath}`);
|
|
183
|
+
}
|
|
184
|
+
if (parsed.errors.length > 0) {
|
|
185
|
+
throw new Error(`Errors while parsing TypeScript config ${tsConfigPath}:
|
|
186
|
+
${(0, import_typescript.formatDiagnostics)(parsed.errors, FORMAT_HOST)}`);
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
fileNames: parsed.fileNames,
|
|
190
|
+
options: parsed.options
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
function toCanonical(fileName) {
|
|
194
|
+
const normalized = fileName.replaceAll("\\", "/");
|
|
195
|
+
return import_typescript.sys.useCaseSensitiveFileNames ? normalized : normalized.toLowerCase();
|
|
196
|
+
}
|
|
197
|
+
function shouldKeepDiagnosticByFile(diagnostic, shouldKeepFile) {
|
|
198
|
+
if (!diagnostic.file) {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
return shouldKeepFile(toCanonical(diagnostic.file.fileName));
|
|
202
|
+
}
|
|
203
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
204
|
+
0 && (module.exports = {
|
|
205
|
+
checkProjectTypes,
|
|
206
|
+
parseTsConfig,
|
|
207
|
+
toCanonical
|
|
208
|
+
});
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9jaGVjay1wcm9qZWN0LXR5cGVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVHlwZS1jaGVja3MgYSBzZXQgb2YgVHlwZVNjcmlwdCBmaWxlcyB3aXRoIGBza2lwTGliQ2hlY2tgIGRpc2FibGVkLCBidXQgcmVwb3J0cyBvbmx5IHRoZVxuICogZGlhZ25vc3RpY3Mgd2hvc2Ugc291cmNlIGZpbGUgd2Ugb3duLiBUaGlzIGxldHMgdGhlIGdlbmVyYWwgYnVpbGQgcnVuIHdpdGggYHNraXBMaWJDaGVjazogdHJ1ZWBcbiAqIChzbyBpdCBkb2VzIG5vdCBmYWlsIG9uIGJyb2tlbiB1cHN0cmVhbSBgLmQudHNgIGZpbGVzIHdlIGRvIG5vdCBjb250cm9sLCBzdWNoIGFzIGEgZ2l2ZW5cbiAqIHZlcnNpb24ncyBgb2JzaWRpYW4uZC50c2ApIHdoaWxlIHN0aWxsIGZ1bGx5IHZhbGlkYXRpbmcgdGhlIGRlY2xhcmF0aW9ucyB3ZSBhdXRob3IuXG4gKlxuICogV2hlbiB1cHN0cmVhbSB0eXBlcyBhcmUgZml4ZWQsIHRoZSBgSWdub3JlZCBOIGRpYWdub3N0aWMocylgIGNvdW50IGRyb3BzIHRvIGAwYCwgc2lnbmFsbGluZyB0aGVcbiAqIHdvcmthcm91bmQgaXMgbm8gbG9uZ2VyIGRvaW5nIGFueXRoaW5nLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcGlsZXJPcHRpb25zLFxuICBEaWFnbm9zdGljLFxuICBGb3JtYXREaWFnbm9zdGljc0hvc3QsXG4gIFBhcnNlQ29uZmlnRmlsZUhvc3Rcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge1xuICBjcmVhdGVQcm9ncmFtLFxuICBEaWFnbm9zdGljQ2F0ZWdvcnksXG4gIGZvcm1hdERpYWdub3N0aWMsXG4gIGZvcm1hdERpYWdub3N0aWNzLFxuICBmb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQsXG4gIGdldFBhcnNlZENvbW1hbmRMaW5lT2ZDb25maWdGaWxlLFxuICBnZXRQcmVFbWl0RGlhZ25vc3RpY3MsXG4gIHN5c1xufSBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY2hlY2tQcm9qZWN0VHlwZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrUHJvamVjdFR5cGVzUGFyYW1zIHtcbiAgLyoqIENvbXBpbGVyIG9wdGlvbnMgZm9yIHRoZSBwcm9ncmFtLiBgc2tpcExpYkNoZWNrYCBpcyBhbHdheXMgZm9yY2VkIHRvIGBmYWxzZWAuICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucztcblxuICAvKiogVGhlIHJvb3QgZmlsZXMgdG8gdHlwZS1jaGVjay4gKi9cbiAgcmVhZG9ubHkgcm9vdE5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGVjaWRlcyB3aGV0aGVyIGEgZGlhZ25vc3RpYyBzaG91bGQgYmUgcmVwb3J0ZWQsIGJhc2VkIG9uIHRoZSBkaWFnbm9zdGljIGl0c2VsZiByYXRoZXIgdGhhbiBpdHNcbiAgICogc291cmNlIGZpbGUuIFJ1bnMgaW4gYWRkaXRpb24gdG8ge0BsaW5rIENoZWNrUHJvamVjdFR5cGVzUGFyYW1zLnNob3VsZEtlZXBGaWxlfSBcdTIwMTQgYSBkaWFnbm9zdGljIGlzXG4gICAqIHJlcG9ydGVkIG9ubHkgd2hlbiBib3RoIHByZWRpY2F0ZXMga2VlcCBpdC4gVXNlIHRoaXMgdG8gZHJvcCBkaWFnbm9zdGljcyB0aGF0IGFyZSByZXBvcnRlZCBpbiBhXG4gICAqIGZpbGUgd2Ugb3duIGJ1dCBhcmUgY2F1c2VkIGJ5IHNvbWV0aGluZyB3ZSBkbyBub3QgY29udHJvbCAoZS5nLiBhIGNyb3NzLW1vZHVsZS1mb3JtYXQgaW50ZXJvcFxuICAgKiBjb21wbGFpbnQgYWJvdXQgYSB0aGlyZC1wYXJ0eSBpbXBvcnQpLiBXaGVuIG9taXR0ZWQsIG5vIGRpYWdub3N0aWMgaXMgZHJvcHBlZCBvbiB0aGlzIGJhc2lzLlxuICAgKlxuICAgKiBAcGFyYW0gZGlhZ25vc3RpYyAtIFRoZSBkaWFnbm9zdGljIHRvIGV2YWx1YXRlLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgdG8gcmVwb3J0IHRoZSBkaWFnbm9zdGljLCBgZmFsc2VgIHRvIGlnbm9yZSBpdC5cbiAgICovXG4gIHNob3VsZEtlZXBEaWFnbm9zdGljPyh0aGlzOiB2b2lkLCBkaWFnbm9zdGljOiBEaWFnbm9zdGljKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVjaWRlcyB3aGV0aGVyIGEgZGlhZ25vc3RpYydzIHNvdXJjZSBmaWxlIGlzIG9uZSB3ZSBjYXJlIGFib3V0LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZU5hbWUgLSBUaGUgZGlhZ25vc3RpYydzIHNvdXJjZSBmaWxlLCBhbHJlYWR5IHBhc3NlZCB0aHJvdWdoIHtAbGluayB0b0Nhbm9uaWNhbH0uXG4gICAqIEByZXR1cm5zIGB0cnVlYCB0byByZXBvcnQgdGhlIGRpYWdub3N0aWMsIGBmYWxzZWAgdG8gaWdub3JlIGl0LlxuICAgKi9cbiAgc2hvdWxkS2VlcEZpbGUodGhpczogdm9pZCwgZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIHJlc29sdmVkIHJlc3VsdCBvZiB7QGxpbmsgcGFyc2VUc0NvbmZpZ30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVHNDb25maWcge1xuICAvKiogVGhlIHJlc29sdmVkIGxpc3Qgb2YgZmlsZXMgdGhlIGNvbmZpZyBpbmNsdWRlcyAoYWJzb2x1dGUgcGF0aHMpLiAqL1xuICByZWFkb25seSBmaWxlTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKiBUaGUgcmVzb2x2ZWQgY29tcGlsZXIgb3B0aW9ucyAod2l0aCBgZXh0ZW5kc2AgYXBwbGllZCkuICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucztcbn1cblxuY29uc3QgRk9STUFUX0hPU1Q6IEZvcm1hdERpYWdub3N0aWNzSG9zdCA9IHtcbiAgZ2V0Q2Fub25pY2FsRmlsZU5hbWU6IChmaWxlTmFtZSkgPT4gZmlsZU5hbWUsXG4gIGdldEN1cnJlbnREaXJlY3Rvcnk6ICgpID0+IHN5cy5nZXRDdXJyZW50RGlyZWN0b3J5KCksXG4gIGdldE5ld0xpbmU6ICgpID0+IHN5cy5uZXdMaW5lXG59O1xuXG4vKipcbiAqIFR5cGUtY2hlY2tzIGEgc2V0IG9mIGZpbGVzIHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCBidXQgcmVwb3J0cyBvbmx5IHRoZSBkaWFnbm9zdGljcyB3aG9zZVxuICogc291cmNlIGZpbGUgcGFzc2VzIGBzaG91bGRLZWVwRmlsZWAuIERpYWdub3N0aWNzIGZyb20gZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wgKGUuZy4gYnJva2VuXG4gKiB0aGlyZC1wYXJ0eSBgLmQudHNgIHB1bGxlZCBpbiB0cmFuc2l0aXZlbHkpIGFyZSBkcm9wcGVkLCB3aGlsZSBzdGlsbCBiZWluZyBjb3VudGVkIGZvclxuICogdmlzaWJpbGl0eS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHByb2dyYW0gaW5wdXRzIGFuZCB0aGUga2VlcCBwcmVkaWNhdGUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBubyByZXBvcnRlZCBkaWFnbm9zdGljIGlzIGFuIGVycm9yLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUHJvamVjdFR5cGVzKHBhcmFtczogQ2hlY2tQcm9qZWN0VHlwZXNQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3Qgb3B0aW9uczogQ29tcGlsZXJPcHRpb25zID0ge1xuICAgIC4uLnBhcmFtcy5vcHRpb25zLFxuICAgIHNraXBMaWJDaGVjazogZmFsc2VcbiAgfTtcblxuICBjb25zdCBwcm9ncmFtID0gY3JlYXRlUHJvZ3JhbSh7XG4gICAgb3B0aW9ucyxcbiAgICByb290TmFtZXM6IFsuLi5wYXJhbXMucm9vdE5hbWVzXVxuICB9KTtcblxuICBjb25zdCBhbGxEaWFnbm9zdGljcyA9IGdldFByZUVtaXREaWFnbm9zdGljcyhwcm9ncmFtKTtcbiAgY29uc3Qga2VwdERpYWdub3N0aWNzID0gYWxsRGlhZ25vc3RpY3MuZmlsdGVyKChkaWFnbm9zdGljKSA9PiBzaG91bGRLZWVwRGlhZ25vc3RpY0J5RmlsZShkaWFnbm9zdGljLCBwYXJhbXMuc2hvdWxkS2VlcEZpbGUpICYmIChwYXJhbXMuc2hvdWxkS2VlcERpYWdub3N0aWM/LihkaWFnbm9zdGljKSA/PyB0cnVlKSk7XG4gIGNvbnN0IGlnbm9yZWRDb3VudCA9IGFsbERpYWdub3N0aWNzLmxlbmd0aCAtIGtlcHREaWFnbm9zdGljcy5sZW5ndGg7XG5cbiAgaWYgKGtlcHREaWFnbm9zdGljcy5sZW5ndGggPiAwKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZm9ybWF0RGlhZ25vc3RpY3NXaXRoQ29sb3JBbmRDb250ZXh0KGtlcHREaWFnbm9zdGljcywgRk9STUFUX0hPU1QpKTtcbiAgfVxuXG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBJZ25vcmVkICR7U3RyaW5nKGlnbm9yZWRDb3VudCl9IGRpYWdub3N0aWMocykgb3V0c2lkZSB0aGUgdmFsaWRhdGVkIHNldC5cXG5gKTtcblxuICByZXR1cm4gIWtlcHREaWFnbm9zdGljcy5zb21lKChkaWFnbm9zdGljKSA9PiBkaWFnbm9zdGljLmNhdGVnb3J5ID09PSBEaWFnbm9zdGljQ2F0ZWdvcnkuRXJyb3IpO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIGB0c2NvbmZpZy5qc29uYCAocmVzb2x2aW5nIGBleHRlbmRzYCwgYGluY2x1ZGVgLCBgZXhjbHVkZWApIGludG8gdGhlIHJlc29sdmVkIGZpbGUgbGlzdFxuICogYW5kIGNvbXBpbGVyIG9wdGlvbnMuXG4gKlxuICogQHBhcmFtIHRzQ29uZmlnUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGNvbmZpZyBmaWxlLlxuICogQHJldHVybnMgVGhlIHJlc29sdmVkIGZpbGUgbmFtZXMgYW5kIG9wdGlvbnMuXG4gKiBAdGhyb3dzIElmIHRoZSBjb25maWcgY2Fubm90IGJlIHBhcnNlZCBvciBjb250YWlucyBlcnJvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRzQ29uZmlnKHRzQ29uZmlnUGF0aDogc3RyaW5nKTogUGFyc2VkVHNDb25maWcge1xuICBjb25zdCBob3N0OiBQYXJzZUNvbmZpZ0ZpbGVIb3N0ID0ge1xuICAgIGZpbGVFeGlzdHM6IChwYXRoKSA9PiBzeXMuZmlsZUV4aXN0cyhwYXRoKSxcbiAgICBnZXRDdXJyZW50RGlyZWN0b3J5OiAoKSA9PiBzeXMuZ2V0Q3VycmVudERpcmVjdG9yeSgpLFxuICAgIG9uVW5SZWNvdmVyYWJsZUNvbmZpZ0ZpbGVEaWFnbm9zdGljOiAoZGlhZ25vc3RpYykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdERpYWdub3N0aWMoZGlhZ25vc3RpYywgRk9STUFUX0hPU1QpKTtcbiAgICB9LFxuICAgIHJlYWREaXJlY3Rvcnk6IChyb290RGlyLCBleHRlbnNpb25zLCBleGNsdWRlcywgaW5jbHVkZXMsIGRlcHRoKSA9PiBzeXMucmVhZERpcmVjdG9yeShyb290RGlyLCBleHRlbnNpb25zLCBleGNsdWRlcywgaW5jbHVkZXMsIGRlcHRoKSxcbiAgICByZWFkRmlsZTogKHBhdGgpID0+IHN5cy5yZWFkRmlsZShwYXRoKSxcbiAgICB1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzOiBzeXMudXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lc1xuICB9O1xuXG4gIGNvbnN0IHBhcnNlZCA9IGdldFBhcnNlZENvbW1hbmRMaW5lT2ZDb25maWdGaWxlKHRzQ29uZmlnUGF0aCwgdW5kZWZpbmVkLCBob3N0KTtcblxuICBpZiAoIXBhcnNlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlIFR5cGVTY3JpcHQgY29uZmlnOiAke3RzQ29uZmlnUGF0aH1gKTtcbiAgfVxuXG4gIGlmIChwYXJzZWQuZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9ycyB3aGlsZSBwYXJzaW5nIFR5cGVTY3JpcHQgY29uZmlnICR7dHNDb25maWdQYXRofTpcXG4ke2Zvcm1hdERpYWdub3N0aWNzKHBhcnNlZC5lcnJvcnMsIEZPUk1BVF9IT1NUKX1gKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmlsZU5hbWVzOiBwYXJzZWQuZmlsZU5hbWVzLFxuICAgIG9wdGlvbnM6IHBhcnNlZC5vcHRpb25zXG4gIH07XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIGZpbGUgcGF0aCBmb3IgY29tcGFyaXNvbjogZm9yd2FyZCBzbGFzaGVzIGV2ZXJ5d2hlcmUsIGxvd2VyLWNhc2VkIG9uIGFcbiAqIGNhc2UtaW5zZW5zaXRpdmUgZmlsZSBzeXN0ZW0uXG4gKlxuICogQHBhcmFtIGZpbGVOYW1lIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIGNhbm9uaWNhbCBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9DYW5vbmljYWwoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBmaWxlTmFtZS5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKTtcbiAgcmV0dXJuIHN5cy51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzID8gbm9ybWFsaXplZCA6IG5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkS2VlcERpYWdub3N0aWNCeUZpbGUoZGlhZ25vc3RpYzogRGlhZ25vc3RpYywgc2hvdWxkS2VlcEZpbGU6IChmaWxlTmFtZTogc3RyaW5nKSA9PiBib29sZWFuKTogYm9vbGVhbiB7XG4gIGlmICghZGlhZ25vc3RpYy5maWxlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gc2hvdWxkS2VlcEZpbGUodG9DYW5vbmlj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
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/// <reference path="../library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Type-checks a set of TypeScript files with `skipLibCheck` disabled, but reports only the
|
|
6
|
+
* diagnostics whose source file we own. This lets the general build run with `skipLibCheck: true`
|
|
7
|
+
* (so it does not fail on broken upstream `.d.ts` files we do not control, such as a given
|
|
8
|
+
* version's `obsidian.d.ts`) while still fully validating the declarations we author.
|
|
9
|
+
*
|
|
10
|
+
* When upstream types are fixed, the `Ignored N diagnostic(s)` count drops to `0`, signalling the
|
|
11
|
+
* workaround is no longer doing anything.
|
|
12
|
+
*/
|
|
13
|
+
import type { CompilerOptions, Diagnostic } from 'typescript';
|
|
14
|
+
/**
|
|
15
|
+
* Parameters for {@link checkProjectTypes}.
|
|
16
|
+
*/
|
|
17
|
+
export interface CheckProjectTypesParams {
|
|
18
|
+
/** Compiler options for the program. `skipLibCheck` is always forced to `false`. */
|
|
19
|
+
readonly options: CompilerOptions;
|
|
20
|
+
/** The root files to type-check. */
|
|
21
|
+
readonly rootNames: readonly string[];
|
|
22
|
+
/**
|
|
23
|
+
* Decides whether a diagnostic should be reported, based on the diagnostic itself rather than its
|
|
24
|
+
* source file. Runs in addition to {@link CheckProjectTypesParams.shouldKeepFile} — a diagnostic is
|
|
25
|
+
* reported only when both predicates keep it. Use this to drop diagnostics that are reported in a
|
|
26
|
+
* file we own but are caused by something we do not control (e.g. a cross-module-format interop
|
|
27
|
+
* complaint about a third-party import). When omitted, no diagnostic is dropped on this basis.
|
|
28
|
+
*
|
|
29
|
+
* @param diagnostic - The diagnostic to evaluate.
|
|
30
|
+
* @returns `true` to report the diagnostic, `false` to ignore it.
|
|
31
|
+
*/
|
|
32
|
+
shouldKeepDiagnostic?(this: void, diagnostic: Diagnostic): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Decides whether a diagnostic's source file is one we care about.
|
|
35
|
+
*
|
|
36
|
+
* @param fileName - The diagnostic's source file, already passed through {@link toCanonical}.
|
|
37
|
+
* @returns `true` to report the diagnostic, `false` to ignore it.
|
|
38
|
+
*/
|
|
39
|
+
shouldKeepFile(this: void, fileName: string): boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The resolved result of {@link parseTsConfig}.
|
|
43
|
+
*/
|
|
44
|
+
export interface ParsedTsConfig {
|
|
45
|
+
/** The resolved list of files the config includes (absolute paths). */
|
|
46
|
+
readonly fileNames: readonly string[];
|
|
47
|
+
/** The resolved compiler options (with `extends` applied). */
|
|
48
|
+
readonly options: CompilerOptions;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Type-checks a set of files with `skipLibCheck: false`, but reports only the diagnostics whose
|
|
52
|
+
* source file passes `shouldKeepFile`. Diagnostics from files we do not control (e.g. broken
|
|
53
|
+
* third-party `.d.ts` pulled in transitively) are dropped, while still being counted for
|
|
54
|
+
* visibility.
|
|
55
|
+
*
|
|
56
|
+
* @param params - The program inputs and the keep predicate.
|
|
57
|
+
* @returns `true` when no reported diagnostic is an error, `false` otherwise.
|
|
58
|
+
*/
|
|
59
|
+
export declare function checkProjectTypes(params: CheckProjectTypesParams): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Parses a `tsconfig.json` (resolving `extends`, `include`, `exclude`) into the resolved file list
|
|
62
|
+
* and compiler options.
|
|
63
|
+
*
|
|
64
|
+
* @param tsConfigPath - Absolute path to the config file.
|
|
65
|
+
* @returns The resolved file names and options.
|
|
66
|
+
* @throws If the config cannot be parsed or contains errors.
|
|
67
|
+
*/
|
|
68
|
+
export declare function parseTsConfig(tsConfigPath: string): ParsedTsConfig;
|
|
69
|
+
/**
|
|
70
|
+
* Normalizes a file path for comparison: forward slashes everywhere, lower-cased on a
|
|
71
|
+
* case-insensitive file system.
|
|
72
|
+
*
|
|
73
|
+
* @param fileName - The path to normalize.
|
|
74
|
+
* @returns The canonical path.
|
|
75
|
+
*/
|
|
76
|
+
export declare function toCanonical(fileName: string): string;
|
|
@@ -331,4 +331,4 @@ function spawnViaShell(command, cwd, rawArgs) {
|
|
|
331
331
|
0 && (module.exports = {
|
|
332
332
|
exec
|
|
333
333
|
});
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9leGVjLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2Vzc1dpdGhvdXROdWxsU3RyZWFtcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgdHJpbUVuZCB9IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7XG4gIGNtZEVzY2FwZUNvbW1hbmRMaW5lLFxuICB0b0NvbW1hbmRMaW5lXG59IGZyb20gJy4vY2xpLXV0aWxzLnRzJztcblxuLyoqXG4gKiBBIGNvbW1hbmQgcGFydDogZWl0aGVyIGEgcGxhaW4gc3RyaW5nIG9yIGFuIHtAbGluayBFeGVjQXJnfSB3aXRoIGJhdGNoZWQgYXJndW1lbnRzLlxuICovXG5leHBvcnQgdHlwZSBDb21tYW5kUGFydCA9IEV4ZWNBcmcgfCBzdHJpbmc7XG5cbi8qKlxuICogQSBjb21tYW5kIGFyZ3VtZW50IHRoYXQgY29udGFpbnMgYSBsaXN0IG9mIGFyZ3MgdG8gYmUgYmF0Y2hlZC5cbiAqIElmIHRoZSBleHBhbmRlZCBjb21tYW5kIGV4Y2VlZHMgdGhlIHBsYXRmb3JtJ3MgbWF4IGNvbW1hbmQgbGVuZ3RoLFxuICogdGhlIGJhdGNoZWQgYXJncyBhcmUgc3BsaXQgaW50byBzZXF1ZW50aWFsIGV4ZWN1dGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY0FyZyB7XG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIGJhdGNoLlxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hlZEFyZ3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBleGVjfSB0aGF0IHJldHVybiBkZXRhaWxlZCByZXN1bHRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNEZXRhaWxlZE9wdGlvbnMgZXh0ZW5kcyBFeGVjT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNdXN0IGJlIGB0cnVlYCB0byByZWNlaXZlIGRldGFpbGVkIHJlc3VsdHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRJbmNsdWRlRGV0YWlsczogdHJ1ZTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBleGVjdXRpbmcgYSBjb21tYW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgY3VycmVudCB3b3JraW5nIGZvbGRlciBmb3IgdGhlIGNvbW1hbmQgZXhlY3V0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHN1cHByZXNzZXMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzUXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgY29tbWFuZCBmYWlscy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZhaWxJZkNhbGxlZEZyb21PdXRzaWRlUm9vdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgaWdub3JlcyB0aGUgZXhpdCBjb2RlIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSWdub3JlRXhpdENvZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgZmFsc2VgLCBvbmx5IHJldHVybnMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEluY2x1ZGVEZXRhaWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gaW5wdXQgdG8gYmUgcGFzc2VkIHRvIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RkaW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSByZXN1bHQgb2Yge0BsaW5rIGV4ZWN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNSZXN1bHQge1xuICAvKipcbiAgICogQW4gZXhpdCBjb2RlIG9mIHRoZSBjb21tYW5kLiBBIHZhbHVlIG9mIGBudWxsYCBpbmRpY2F0ZXMgdGhhdCB0aGUgcHJvY2VzcyBkaWQgbm90IGV4aXQgbm9ybWFsbHkuXG4gICAqL1xuICByZWFkb25seSBleGl0Q29kZTogbnVsbCB8IG51bWJlcjtcblxuICAvKipcbiAgICogQSBzaWduYWwgdGhhdCBjYXVzZWQgdGhlIHByb2Nlc3MgdG8gYmUgdGVybWluYXRlZC4gQSB2YWx1ZSBvZiBgbnVsbGAgaW5kaWNhdGVzIHRoYXQgbm8gc2lnbmFsIHdhcyByZWNlaXZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXRTaWduYWw6IE5vZGVKUy5TaWduYWxzIHwgbnVsbDtcblxuICAvKipcbiAgICogQSBzdGFuZGFyZCBlcnJvciBvdXRwdXQgZnJvbSB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZGVycjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIG91dHB1dCBmcm9tIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgc3Rkb3V0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGV4ZWN9IHRoYXQgcmV0dXJuIG9ubHkgc3Rkb3V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNTaW1wbGVPcHRpb25zIGV4dGVuZHMgRXhlY09wdGlvbnMge1xuICAvKipcbiAgICogTXVzdCBiZSBgZmFsc2VgIG9yIG9taXR0ZWQgdG8gcmVjZWl2ZSBvbmx5IHN0ZG91dC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEluY2x1ZGVEZXRhaWxzPzogZmFsc2U7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWMoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9ucz86IEV4ZWNTaW1wbGVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjRGV0YWlsZWRPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0Pjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgb3IgYW4gRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbW1hbmQpKSB7XG4gICAgY29uc3QgYmF0Y2hSZXN1bHQgPSBoYW5kbGVCYXRjaGVkQ29tbWFuZChjb21tYW5kLCBvcHRpb25zKTtcbiAgICBpZiAoYmF0Y2hSZXN1bHQpIHtcbiAgICAgIHJldHVybiBiYXRjaFJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgYXJncyA9IGNvbW1hbmQuZmlsdGVyKChwYXJ0KTogcGFydCBpcyBzdHJpbmcgPT4gdHlwZW9mIHBhcnQgPT09ICdzdHJpbmcnKTtcbiAgICBjb25zdCBjb21tYW5kTGluZSA9IHRvQ29tbWFuZExpbmUoYXJncyk7XG5cbiAgICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuICAgIGlmIChjb21tYW5kTGluZS5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgQ29tbWFuZCBsaW5lIGlzIHRvbyBsb25nICgke1N0cmluZyhjb21tYW5kTGluZS5sZW5ndGgpfSBjaGFycywgbWF4ICR7XG4gICAgICAgICAgICBTdHJpbmcobWF4Q29tbWFuZExlbmd0aClcbiAgICAgICAgICB9IG9uICR7cHJvY2Vzcy5wbGF0Zm9ybX0pLiBDb25zaWRlciBzcGxpdHRpbmcgaW50byBzbWFsbGVyIGJhdGNoZXMgb3IgdXNlIEV4ZWNBcmcuYFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBleGVjU3RyaW5nKGNvbW1hbmRMaW5lLCBvcHRpb25zLCBhcmdzKTtcbiAgfVxuXG4gIGNvbnN0IG1heENvbW1hbmRMZW5ndGggPSBnZXRNYXhDb21tYW5kTGVuZ3RoKCk7XG4gIGlmIChjb21tYW5kLmxlbmd0aCA+IG1heENvbW1hbmRMZW5ndGgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIGBDb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgKCR7U3RyaW5nKGNvbW1hbmQubGVuZ3RoKX0gY2hhcnMsIG1heCAke1xuICAgICAgICAgIFN0cmluZyhtYXhDb21tYW5kTGVuZ3RoKVxuICAgICAgICB9IG9uICR7cHJvY2Vzcy5wbGF0Zm9ybX0pLiBDb25zaWRlciBzcGxpdHRpbmcgaW50byBzbWFsbGVyIGJhdGNoZXMgb3IgdXNlIEV4ZWNBcmcuYFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZXhlY1N0cmluZyhjb21tYW5kLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNpbmdsZSBzdHJpbmcgY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHN0cmluZy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGV4ZWMgb3B0aW9ucy5cbiAqIEBwYXJhbSByYXdBcmdzIC0gVGhlIG9yaWdpbmFsIGFyZ3VtZW50IGFycmF5IChpZiBhdmFpbGFibGUpLCB1c2VkIGJ5IHRoZSBQb3dlclNoZWxsXG4gKiAgIGZhbGxiYWNrIHBhdGggdG8gcXVvdGUgYXJndW1lbnRzIHdpdGggUG93ZXJTaGVsbC1uYXRpdmUgc2luZ2xlIHF1b3Rlcy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gZXhlY1N0cmluZyhjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNPcHRpb25zID0ge30sIHJhd0FyZ3M/OiBzdHJpbmdbXSk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgY3dkID0gcHJvY2Vzcy5jd2QoKSxcbiAgICBpc1F1aWV0OiBxdWlldCA9IGZhbHNlLFxuICAgIHNob3VsZElnbm9yZUV4aXRDb2RlOiBpZ25vcmVFeGl0Q29kZSA9IGZhbHNlLFxuICAgIHNob3VsZEluY2x1ZGVEZXRhaWxzID0gZmFsc2UsXG4gICAgc3RkaW4gPSAnJ1xuICB9ID0gb3B0aW9ucztcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGdldExpYkRlYnVnZ2VyKCdFeGVjJykoYEV4ZWN1dGluZyBjb21tYW5kOiAke2NvbW1hbmR9YCk7XG5cbiAgICBjb25zdCBjaGlsZCA9IHNwYXduVmlhU2hlbGwoY29tbWFuZCwgY3dkLCByYXdBcmdzKTtcblxuICAgIGxldCBzdGRvdXQgPSAnJztcbiAgICBsZXQgc3RkZXJyID0gJyc7XG5cbiAgICBjaGlsZC5zdGRpbi53cml0ZShzdGRpbik7XG4gICAgY2hpbGQuc3RkaW4uZW5kKCk7XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGRhdGEpO1xuICAgICAgfVxuICAgICAgc3Rkb3V0ICs9IGRhdGEudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHN0ZG91dCA9IHRyaW1FbmQoc3Rkb3V0LCAnXFxuJyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGRhdGEpO1xuICAgICAgfVxuICAgICAgc3RkZXJyICs9IGRhdGEudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHN0ZGVyciA9IHRyaW1FbmQoc3RkZXJyLCAnXFxuJyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5vbignY2xvc2UnLCAoZXhpdENvZGUsIGV4aXRTaWduYWwpID0+IHtcbiAgICAgIGlmIChleGl0Q29kZSAhPT0gMCAmJiAhaWdub3JlRXhpdENvZGUpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgQ29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJHtleGl0Q29kZSA/IFN0cmluZyhleGl0Q29kZSkgOiAnKG51bGwpJ31cXG4ke3N0ZGVycn1gKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgICAgICByZXNvbHZlKHN0ZG91dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoe1xuICAgICAgICBleGl0Q29kZSxcbiAgICAgICAgZXhpdFNpZ25hbCxcbiAgICAgICAgc3RkZXJyLFxuICAgICAgICBzdGRvdXRcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgaWYgKCFpZ25vcmVFeGl0Q29kZSkge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXNob3VsZEluY2x1ZGVEZXRhaWxzKSB7XG4gICAgICAgIHJlc29sdmUoc3Rkb3V0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgZXhpdENvZGU6IG51bGwsXG4gICAgICAgIGV4aXRTaWduYWw6IG51bGwsXG4gICAgICAgIHN0ZGVycixcbiAgICAgICAgc3Rkb3V0XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFzc2VkIHRvIGNoaWxkIHByb2Nlc3Nlcy5cbiAqL1xuY29uc3QgQ0hJTERfRU5WID0ge1xuICBERUJVR19DT0xPUlM6ICcxJyxcbiAgLi4ucHJvY2Vzcy5lbnZcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYmF0Y2hlZCBjb21tYW5kcyBzZXF1ZW50aWFsbHkgYW5kIGNvbmNhdGVuYXRlcyBzdGRvdXQuXG4gKlxuICogQHBhcmFtIGJhc2VDb21tYW5kIC0gVGhlIGJhc2UgY29tbWFuZCB3aXRob3V0IGJhdGNoZWQgYXJncy5cbiAqIEBwYXJhbSBiYXRjaGVzIC0gVGhlIGJhdGNoZXMgb2YgYXJncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGV4ZWMgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbmNhdGVuYXRlZCByZXN1bHQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVCYXRjaGVzKGJhc2VDb21tYW5kOiBzdHJpbmcsIGJhdGNoZXM6IHN0cmluZ1tdW10sIG9wdGlvbnM6IEV4ZWNPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBiYXRjaCBvZiBiYXRjaGVzKSB7XG4gICAgY29uc3QgYmF0Y2hDb21tYW5kID0gYCR7YmFzZUNvbW1hbmR9ICR7YmF0Y2guam9pbignICcpfWA7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlY1N0cmluZyhiYXRjaENvbW1hbmQsIG9wdGlvbnMpO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2hvdWxkSW5jbHVkZURldGFpbHMpIHtcbiAgICByZXR1cm4geyBleGl0Q29kZTogMCwgZXhpdFNpZ25hbDogbnVsbCwgc3RkZXJyOiAnJywgc3Rkb3V0OiByZXN1bHRzLmpvaW4oJ1xcbicpIH07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cy5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBtYXggY29tbWFuZCBsaW5lIGxlbmd0aC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbWF4IGNvbW1hbmQgbGVuZ3RoIGluIGNoYXJhY3RlcnMuXG4gKi9cbmZ1bmN0aW9uIGdldE1heENvbW1hbmRMZW5ndGgoKTogbnVtYmVyIHtcbiAgY29uc3QgV0lORE9XU19NQVhfQ09NTUFORF9MRU5HVEggPSA4MTkxO1xuICBjb25zdCBVTklYX01BWF9DT01NQU5EX0xFTkdUSCA9IDEzMTA3MjtcbiAgcmV0dXJuIHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyBXSU5ET1dTX01BWF9DT01NQU5EX0xFTkdUSCA6IFVOSVhfTUFYX0NPTU1BTkRfTEVOR1RIO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgYSBjb21tYW5kIGFycmF5IHRoYXQgbWF5IGNvbnRhaW4gYW4ge0BsaW5rIEV4ZWNBcmd9LlxuICogUmV0dXJucyBhIFByb21pc2UgaWYgYmF0Y2hpbmcgaXMgbmVlZGVkLCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgY29tbWFuZFxuICogaGFzIG5vIEV4ZWNBcmcgYW5kIHNob3VsZCBiZSBwcm9jZXNzZWQgbm9ybWFsbHkuXG4gKlxuICogQHBhcmFtIHBhcnRzIC0gVGhlIGNvbW1hbmQgcGFydHMuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBleGVjIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgaWYgYmF0Y2hpbmcgaXMgaGFuZGxlZCwgb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGhhbmRsZUJhdGNoZWRDb21tYW5kKHBhcnRzOiBDb21tYW5kUGFydFtdLCBvcHRpb25zOiBFeGVjT3B0aW9ucyk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4gfCB1bmRlZmluZWQge1xuICBjb25zdCBleGVjQXJncyA9IHBhcnRzLmZpbHRlcihpc0V4ZWNBcmcpO1xuICBpZiAoZXhlY0FyZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoZXhlY0FyZ3MubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ09ubHkgb25lIEV4ZWNBcmcgd2l0aCBiYXRjaGVkQXJncyBpcyBhbGxvd2VkIHBlciBjb21tYW5kJykpO1xuICB9XG5cbiAgY29uc3QgZXhlY0FyZyA9IGV4ZWNBcmdzWzBdO1xuICBhc3NlcnROb25OdWxsYWJsZShleGVjQXJnKTtcbiAgY29uc3Qgc3RhdGljUGFydHMgPSBwYXJ0cy5maWx0ZXIoKHBhcnQpOiBwYXJ0IGlzIHN0cmluZyA9PiB0eXBlb2YgcGFydCA9PT0gJ3N0cmluZycpO1xuICBjb25zdCBiYXNlQ29tbWFuZCA9IHRvQ29tbWFuZExpbmUoc3RhdGljUGFydHMpO1xuICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuXG4gIC8vIFRyeSBleHBhbmRpbmcgYWxsIGFyZ3MgaW5saW5lXG4gIGNvbnN0IGZ1bGxDb21tYW5kID0gYCR7YmFzZUNvbW1hbmR9ICR7ZXhlY0FyZy5iYXRjaGVkQXJncy5qb2luKCcgJyl9YDtcbiAgaWYgKGZ1bGxDb21tYW5kLmxlbmd0aCA8PSBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgcmV0dXJuIGV4ZWNTdHJpbmcoZnVsbENvbW1hbmQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gU3BsaXQgaW50byBiYXRjaGVzXG4gIGNvbnN0IGJhdGNoZXM6IHN0cmluZ1tdW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRCYXRjaDogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGFyZyBvZiBleGVjQXJnLmJhdGNoZWRBcmdzKSB7XG4gICAgY29uc3QgdGVudGF0aXZlID0gYCR7YmFzZUNvbW1hbmR9ICR7Wy4uLmN1cnJlbnRCYXRjaCwgYXJnXS5qb2luKCcgJyl9YDtcbiAgICBpZiAodGVudGF0aXZlLmxlbmd0aCA+IG1heENvbW1hbmRMZW5ndGgpIHtcbiAgICAgIGlmIChjdXJyZW50QmF0Y2gubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQ2Fubm90IHNwbGl0IGNvbW1hbmQgaW50byBiYXRjaGVzOiBhIHNpbmdsZSBhcmd1bWVudCAoJHtTdHJpbmcoYXJnLmxlbmd0aCl9IGNoYXJzKSBwbHVzIHRoZSBiYXNlIGNvbW1hbmQgKCR7XG4gICAgICAgICAgICAgIFN0cmluZyhiYXNlQ29tbWFuZC5sZW5ndGgpXG4gICAgICAgICAgICB9IGNoYXJzKSBleGNlZWRzIHRoZSBtYXggY29tbWFuZCBsZW5ndGggKCR7U3RyaW5nKG1heENvbW1hbmRMZW5ndGgpfSkuYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGJhdGNoZXMucHVzaChjdXJyZW50QmF0Y2gpO1xuICAgICAgY3VycmVudEJhdGNoID0gW2FyZ107XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRCYXRjaC5wdXNoKGFyZyk7XG4gICAgfVxuICB9XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBBbHdheXMgdHJ1ZSBhZnRlciB0aGUgbG9vcDsgYmF0Y2hlZEFyZ3MgaXMgbm9uLWVtcHR5IGF0IHRoaXMgcG9pbnQuICovXG4gIGlmIChjdXJyZW50QmF0Y2gubGVuZ3RoID4gMCkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgYmF0Y2hlcy5wdXNoKGN1cnJlbnRCYXRjaCk7XG4gIH1cblxuICByZXR1cm4gZXhlY3V0ZUJhdGNoZXMoYmFzZUNvbW1hbmQsIGJhdGNoZXMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGNvbW1hbmQgcGFydCBpcyBhbiB7QGxpbmsgRXhlY0FyZ30uXG4gKlxuICogQHBhcmFtIHBhcnQgLSBUaGUgY29tbWFuZCBwYXJ0IHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcGFydCBpcyBhbiBFeGVjQXJnLlxuICovXG5mdW5jdGlvbiBpc0V4ZWNBcmcocGFydDogQ29tbWFuZFBhcnQpOiBwYXJ0IGlzIEV4ZWNBcmcge1xuICByZXR1cm4gdHlwZW9mIHBhcnQgPT09ICdvYmplY3QnICYmICdiYXRjaGVkQXJncycgaW4gcGFydDtcbn1cblxuLyoqXG4gKiBTcGF3bnMgYSBjaGlsZCBwcm9jZXNzIHZpYSB0aGUgYXBwcm9wcmlhdGUgc2hlbGwuXG4gKlxuICogT24gV2luZG93cywgaWYgdGhlIGNvbW1hbmQgY29udGFpbnMgbmV3bGluZXMgKHdoaWNoIGBjbWQuZXhlYCBjYW5ub3QgaGFuZGxlKVxuICogYW5kIHRoZSByYXcgYXJncyBhcnJheSBpcyBhdmFpbGFibGUsIHNwYXducyB0aGUgcHJvY2VzcyBkaXJlY3RseSB3aXRob3V0XG4gKiBhbnkgc2hlbGwgXHUyMDE0IHBhc3NpbmcgYXJncyB2aWEgYENyZWF0ZVByb2Nlc3NgLCB3aGljaCBhdm9pZHMgYWxsIHF1b3RpbmcgaXNzdWVzLlxuICpcbiAqIE9uIFdpbmRvd3MgKGNtZC5leGUgcGF0aCksIGFwcGxpZXMgYF5gLWVzY2FwaW5nIGZvciBjbWQgbWV0YWNoYXJhY3RlcnMuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCBzdHJpbmcgdG8gZXhlY3V0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBAcGFyYW0gcmF3QXJncyAtIFRoZSBvcmlnaW5hbCBhcmd1bWVudCBhcnJheSAoaWYgYXZhaWxhYmxlKS5cbiAqIEByZXR1cm5zIFRoZSBzcGF3bmVkIGNoaWxkIHByb2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIHNwYXduVmlhU2hlbGwoY29tbWFuZDogc3RyaW5nLCBjd2Q6IHN0cmluZywgcmF3QXJncz86IHN0cmluZ1tdKTogQ2hpbGRQcm9jZXNzV2l0aG91dE51bGxTdHJlYW1zIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgJiYgY29tbWFuZC5pbmNsdWRlcygnXFxuJykpIHtcbiAgICBpZiAoIXJhd0FyZ3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29tbWFuZHMgY29udGFpbmluZyBuZXdsaW5lcyBjYW5ub3QgYmUgZXhlY3V0ZWQgdGhyb3VnaCBjbWQuZXhlIG9uIFdpbmRvd3MuIFBhc3MgYW4gYXJndW1lbnQgYXJyYXkgaW5zdGVhZCBvZiBhIHN0cmluZy4nKTtcbiAgICB9XG4gICAgY29uc3QgW3Byb2dyYW0sIC4uLmFyZ3NdID0gcmF3QXJncztcbiAgICBhc3NlcnROb25OdWxsYWJsZShwcm9ncmFtLCAnQ29tbWFuZCBhcnJheSBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICAgIHJldHVybiBzcGF3bihwcm9ncmFtLCBhcmdzLCB7XG4gICAgICBjd2QsXG4gICAgICBlbnY6IENISUxEX0VOVixcbiAgICAgIHN0ZGlvOiAncGlwZSdcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHNoZWxsQ29tbWFuZCA9IHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyBjbWRFc2NhcGVDb21tYW5kTGluZShjb21tYW5kKSA6IGNvbW1hbmQ7XG4gIHJldHVybiBzcGF3bihzaGVsbENvbW1hbmQsIFtdLCB7XG4gICAgY3dkLFxuICAgIGVudjogQ0hJTERfRU5WLFxuICAgIHNoZWxsOiB0cnVlLFxuICAgIHN0ZGlvOiAncGlwZSdcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsZ0NBQXNCO0FBQ3RCLDBCQUFvQjtBQUVwQixtQkFBK0I7QUFDL0Isb0JBQXdCO0FBQ3hCLHlCQUFrQztBQUNsQyx1QkFHTztBQXdJQSxTQUFTLEtBQUssU0FBaUMsVUFBdUIsQ0FBQyxHQUFpQztBQUM3RyxNQUFJLE1BQU0sUUFBUSxPQUFPLEdBQUc7QUFDMUIsVUFBTSxjQUFjLHFCQUFxQixTQUFTLE9BQU87QUFDekQsUUFBSSxhQUFhO0FBQ2YsYUFBTztBQUFBLElBQ1Q7QUFDQSxVQUFNLE9BQU8sUUFBUSxPQUFPLENBQUMsU0FBeUIsT0FBTyxTQUFTLFFBQVE7QUFDOUUsVUFBTSxrQkFBYyxnQ0FBYyxJQUFJO0FBRXRDLFVBQU1BLG9CQUFtQixvQkFBb0I7QUFDN0MsUUFBSSxZQUFZLFNBQVNBLG1CQUFrQjtBQUN6QyxhQUFPLFFBQVE7QUFBQSxRQUNiLElBQUk7QUFBQSxVQUNGLDZCQUE2QixPQUFPLFlBQVksTUFBTSxDQUFDLGVBQ3JELE9BQU9BLGlCQUFnQixDQUN6QixPQUFPLG9CQUFBQyxRQUFRLFFBQVE7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsV0FBTyxXQUFXLGFBQWEsU0FBUyxJQUFJO0FBQUEsRUFDOUM7QUFFQSxRQUFNLG1CQUFtQixvQkFBb0I7QUFDN0MsTUFBSSxRQUFRLFNBQVMsa0JBQWtCO0FBQ3JDLFdBQU8sUUFBUTtBQUFBLE1BQ2IsSUFBSTtBQUFBLFFBQ0Ys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
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9leGVjLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGV4ZWN1dGluZyBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2Vzc1dpdGhvdXROdWxsU3RyZWFtcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgdHJpbUVuZCB9IGZyb20gJy4uL3N0cmluZy50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7XG4gIGNtZEVzY2FwZUNvbW1hbmRMaW5lLFxuICB0b0NvbW1hbmRMaW5lXG59IGZyb20gJy4vY2xpLXV0aWxzLnRzJztcblxuLyoqXG4gKiBBIGNvbW1hbmQgcGFydDogZWl0aGVyIGEgcGxhaW4gc3RyaW5nIG9yIGFuIHtAbGluayBFeGVjQXJnfSB3aXRoIGJhdGNoZWQgYXJndW1lbnRzLlxuICovXG5leHBvcnQgdHlwZSBDb21tYW5kUGFydCA9IEV4ZWNBcmcgfCBzdHJpbmc7XG5cbi8qKlxuICogQSBjb21tYW5kIGFyZ3VtZW50IHRoYXQgY29udGFpbnMgYSBsaXN0IG9mIGFyZ3MgdG8gYmUgYmF0Y2hlZC5cbiAqIElmIHRoZSBleHBhbmRlZCBjb21tYW5kIGV4Y2VlZHMgdGhlIHBsYXRmb3JtJ3MgbWF4IGNvbW1hbmQgbGVuZ3RoLFxuICogdGhlIGJhdGNoZWQgYXJncyBhcmUgc3BsaXQgaW50byBzZXF1ZW50aWFsIGV4ZWN1dGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY0FyZyB7XG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIGJhdGNoLlxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hlZEFyZ3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBleGVjfSB0aGF0IHJldHVybiBkZXRhaWxlZCByZXN1bHRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNEZXRhaWxlZE9wdGlvbnMgZXh0ZW5kcyBFeGVjT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNdXN0IGJlIGB0cnVlYCB0byByZWNlaXZlIGRldGFpbGVkIHJlc3VsdHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRJbmNsdWRlRGV0YWlsczogdHJ1ZTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBleGVjdXRpbmcgYSBjb21tYW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgY3VycmVudCB3b3JraW5nIGZvbGRlciBmb3IgdGhlIGNvbW1hbmQgZXhlY3V0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHN1cHByZXNzZXMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzUXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgY29tbWFuZCBmYWlscy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZhaWxJZkNhbGxlZEZyb21PdXRzaWRlUm9vdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgaWdub3JlcyB0aGUgZXhpdCBjb2RlIG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSWdub3JlRXhpdENvZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBgZmFsc2VgLCBvbmx5IHJldHVybnMgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEluY2x1ZGVEZXRhaWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gaW5wdXQgdG8gYmUgcGFzc2VkIHRvIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RkaW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSByZXN1bHQgb2Yge0BsaW5rIGV4ZWN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNSZXN1bHQge1xuICAvKipcbiAgICogQW4gZXhpdCBjb2RlIG9mIHRoZSBjb21tYW5kLiBBIHZhbHVlIG9mIGBudWxsYCBpbmRpY2F0ZXMgdGhhdCB0aGUgcHJvY2VzcyBkaWQgbm90IGV4aXQgbm9ybWFsbHkuXG4gICAqL1xuICByZWFkb25seSBleGl0Q29kZTogbnVsbCB8IG51bWJlcjtcblxuICAvKipcbiAgICogQSBzaWduYWwgdGhhdCBjYXVzZWQgdGhlIHByb2Nlc3MgdG8gYmUgdGVybWluYXRlZC4gQSB2YWx1ZSBvZiBgbnVsbGAgaW5kaWNhdGVzIHRoYXQgbm8gc2lnbmFsIHdhcyByZWNlaXZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXRTaWduYWw6IE5vZGVKUy5TaWduYWxzIHwgbnVsbDtcblxuICAvKipcbiAgICogQSBzdGFuZGFyZCBlcnJvciBvdXRwdXQgZnJvbSB0aGUgY29tbWFuZC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZGVycjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIG91dHB1dCBmcm9tIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgc3Rkb3V0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGV4ZWN9IHRoYXQgcmV0dXJuIG9ubHkgc3Rkb3V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNTaW1wbGVPcHRpb25zIGV4dGVuZHMgRXhlY09wdGlvbnMge1xuICAvKipcbiAgICogTXVzdCBiZSBgZmFsc2VgIG9yIG9taXR0ZWQgdG8gcmVjZWl2ZSBvbmx5IHN0ZG91dC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEluY2x1ZGVEZXRhaWxzPzogZmFsc2U7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWMoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9ucz86IEV4ZWNTaW1wbGVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjRGV0YWlsZWRPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0Pjtcbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgb3IgYW4gRXhlY1Jlc3VsdCBvYmplY3QuXG4gKiAgICAgICAgICBUaGUgRXhlY1Jlc3VsdCBvYmplY3QgY29udGFpbnMgdGhlIGV4aXQgY29kZSwgZXhpdCBzaWduYWwsIHN0ZGVyciwgYW5kIHN0ZG91dC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgYGZhbHNlYC5cbiAqICAgICAgICAgVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4aXQgY29kZSBhbmQgc3RkZXJyLlxuICogICAgICAgICBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24gYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGB0cnVlYCxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbW1hbmQpKSB7XG4gICAgY29uc3QgYmF0Y2hSZXN1bHQgPSBoYW5kbGVCYXRjaGVkQ29tbWFuZChjb21tYW5kLCBvcHRpb25zKTtcbiAgICBpZiAoYmF0Y2hSZXN1bHQpIHtcbiAgICAgIHJldHVybiBiYXRjaFJlc3VsdDtcbiAgICB9XG4gICAgY29uc3QgYXJncyA9IGNvbW1hbmQuZmlsdGVyKChwYXJ0KTogcGFydCBpcyBzdHJpbmcgPT4gdHlwZW9mIHBhcnQgPT09ICdzdHJpbmcnKTtcbiAgICBjb25zdCBjb21tYW5kTGluZSA9IHRvQ29tbWFuZExpbmUoYXJncyk7XG5cbiAgICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuICAgIGlmIChjb21tYW5kTGluZS5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgQ29tbWFuZCBsaW5lIGlzIHRvbyBsb25nICgke1N0cmluZyhjb21tYW5kTGluZS5sZW5ndGgpfSBjaGFycywgbWF4ICR7U3RyaW5nKG1heENvbW1hbmRMZW5ndGgpfSBvbiAke3Byb2Nlc3MucGxhdGZvcm19KS4gQ29uc2lkZXIgc3BsaXR0aW5nIGludG8gc21hbGxlciBiYXRjaGVzIG9yIHVzZSBFeGVjQXJnLmBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXhlY1N0cmluZyhjb21tYW5kTGluZSwgb3B0aW9ucywgYXJncyk7XG4gIH1cblxuICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuICBpZiAoY29tbWFuZC5sZW5ndGggPiBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgbmV3IEVycm9yKFxuICAgICAgICBgQ29tbWFuZCBsaW5lIGlzIHRvbyBsb25nICgke1N0cmluZyhjb21tYW5kLmxlbmd0aCl9IGNoYXJzLCBtYXggJHtTdHJpbmcobWF4Q29tbWFuZExlbmd0aCl9IG9uICR7cHJvY2Vzcy5wbGF0Zm9ybX0pLiBDb25zaWRlciBzcGxpdHRpbmcgaW50byBzbWFsbGVyIGJhdGNoZXMgb3IgdXNlIEV4ZWNBcmcuYFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZXhlY1N0cmluZyhjb21tYW5kLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNpbmdsZSBzdHJpbmcgY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHN0cmluZy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGV4ZWMgb3B0aW9ucy5cbiAqIEBwYXJhbSByYXdBcmdzIC0gVGhlIG9yaWdpbmFsIGFyZ3VtZW50IGFycmF5IChpZiBhdmFpbGFibGUpLCB1c2VkIGJ5IHRoZSBQb3dlclNoZWxsXG4gKiAgIGZhbGxiYWNrIHBhdGggdG8gcXVvdGUgYXJndW1lbnRzIHdpdGggUG93ZXJTaGVsbC1uYXRpdmUgc2luZ2xlIHF1b3Rlcy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlc3VsdC5cbiAqL1xuZnVuY3Rpb24gZXhlY1N0cmluZyhjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM6IEV4ZWNPcHRpb25zID0ge30sIHJhd0FyZ3M/OiBzdHJpbmdbXSk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgY3dkID0gcHJvY2Vzcy5jd2QoKSxcbiAgICBpc1F1aWV0OiBxdWlldCA9IGZhbHNlLFxuICAgIHNob3VsZElnbm9yZUV4aXRDb2RlOiBpZ25vcmVFeGl0Q29kZSA9IGZhbHNlLFxuICAgIHNob3VsZEluY2x1ZGVEZXRhaWxzID0gZmFsc2UsXG4gICAgc3RkaW4gPSAnJ1xuICB9ID0gb3B0aW9ucztcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGdldExpYkRlYnVnZ2VyKCdFeGVjJykoYEV4ZWN1dGluZyBjb21tYW5kOiAke2NvbW1hbmR9YCk7XG5cbiAgICBjb25zdCBjaGlsZCA9IHNwYXduVmlhU2hlbGwoY29tbWFuZCwgY3dkLCByYXdBcmdzKTtcblxuICAgIGxldCBzdGRvdXQgPSAnJztcbiAgICBsZXQgc3RkZXJyID0gJyc7XG5cbiAgICBjaGlsZC5zdGRpbi53cml0ZShzdGRpbik7XG4gICAgY2hpbGQuc3RkaW4uZW5kKCk7XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGRhdGEpO1xuICAgICAgfVxuICAgICAgc3Rkb3V0ICs9IGRhdGEudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRvdXQub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHN0ZG91dCA9IHRyaW1FbmQoc3Rkb3V0LCAnXFxuJyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGRhdGEpO1xuICAgICAgfVxuICAgICAgc3RkZXJyICs9IGRhdGEudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHN0ZGVyciA9IHRyaW1FbmQoc3RkZXJyLCAnXFxuJyk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5vbignY2xvc2UnLCAoZXhpdENvZGUsIGV4aXRTaWduYWwpID0+IHtcbiAgICAgIGlmIChleGl0Q29kZSAhPT0gMCAmJiAhaWdub3JlRXhpdENvZGUpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgQ29tbWFuZCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJHtleGl0Q29kZSA/IFN0cmluZyhleGl0Q29kZSkgOiAnKG51bGwpJ31cXG4ke3N0ZGVycn1gKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzaG91bGRJbmNsdWRlRGV0YWlscykge1xuICAgICAgICByZXNvbHZlKHN0ZG91dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoe1xuICAgICAgICBleGl0Q29kZSxcbiAgICAgICAgZXhpdFNpZ25hbCxcbiAgICAgICAgc3RkZXJyLFxuICAgICAgICBzdGRvdXRcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgaWYgKCFpZ25vcmVFeGl0Q29kZSkge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXNob3VsZEluY2x1ZGVEZXRhaWxzKSB7XG4gICAgICAgIHJlc29sdmUoc3Rkb3V0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHtcbiAgICAgICAgZXhpdENvZGU6IG51bGwsXG4gICAgICAgIGV4aXRTaWduYWw6IG51bGwsXG4gICAgICAgIHN0ZGVycixcbiAgICAgICAgc3Rkb3V0XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogRGVmYXVsdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFzc2VkIHRvIGNoaWxkIHByb2Nlc3Nlcy5cbiAqL1xuY29uc3QgQ0hJTERfRU5WID0ge1xuICBERUJVR19DT0xPUlM6ICcxJyxcbiAgLi4ucHJvY2Vzcy5lbnZcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYmF0Y2hlZCBjb21tYW5kcyBzZXF1ZW50aWFsbHkgYW5kIGNvbmNhdGVuYXRlcyBzdGRvdXQuXG4gKlxuICogQHBhcmFtIGJhc2VDb21tYW5kIC0gVGhlIGJhc2UgY29tbWFuZCB3aXRob3V0IGJhdGNoZWQgYXJncy5cbiAqIEBwYXJhbSBiYXRjaGVzIC0gVGhlIGJhdGNoZXMgb2YgYXJncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGV4ZWMgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNvbmNhdGVuYXRlZCByZXN1bHQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVCYXRjaGVzKGJhc2VDb21tYW5kOiBzdHJpbmcsIGJhdGNoZXM6IHN0cmluZ1tdW10sIG9wdGlvbnM6IEV4ZWNPcHRpb25zKTogUHJvbWlzZTxFeGVjUmVzdWx0IHwgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBiYXRjaCBvZiBiYXRjaGVzKSB7XG4gICAgY29uc3QgYmF0Y2hDb21tYW5kID0gYCR7YmFzZUNvbW1hbmR9ICR7YmF0Y2guam9pbignICcpfWA7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlY1N0cmluZyhiYXRjaENvbW1hbmQsIG9wdGlvbnMpO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2hvdWxkSW5jbHVkZURldGFpbHMpIHtcbiAgICByZXR1cm4geyBleGl0Q29kZTogMCwgZXhpdFNpZ25hbDogbnVsbCwgc3RkZXJyOiAnJywgc3Rkb3V0OiByZXN1bHRzLmpvaW4oJ1xcbicpIH07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cy5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBtYXggY29tbWFuZCBsaW5lIGxlbmd0aC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbWF4IGNvbW1hbmQgbGVuZ3RoIGluIGNoYXJhY3RlcnMuXG4gKi9cbmZ1bmN0aW9uIGdldE1heENvbW1hbmRMZW5ndGgoKTogbnVtYmVyIHtcbiAgY29uc3QgV0lORE9XU19NQVhfQ09NTUFORF9MRU5HVEggPSA4MTkxO1xuICBjb25zdCBVTklYX01BWF9DT01NQU5EX0xFTkdUSCA9IDEzMTA3MjtcbiAgcmV0dXJuIHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyBXSU5ET1dTX01BWF9DT01NQU5EX0xFTkdUSCA6IFVOSVhfTUFYX0NPTU1BTkRfTEVOR1RIO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgYSBjb21tYW5kIGFycmF5IHRoYXQgbWF5IGNvbnRhaW4gYW4ge0BsaW5rIEV4ZWNBcmd9LlxuICogUmV0dXJucyBhIFByb21pc2UgaWYgYmF0Y2hpbmcgaXMgbmVlZGVkLCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgY29tbWFuZFxuICogaGFzIG5vIEV4ZWNBcmcgYW5kIHNob3VsZCBiZSBwcm9jZXNzZWQgbm9ybWFsbHkuXG4gKlxuICogQHBhcmFtIHBhcnRzIC0gVGhlIGNvbW1hbmQgcGFydHMuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBleGVjIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgaWYgYmF0Y2hpbmcgaXMgaGFuZGxlZCwgb3IgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGhhbmRsZUJhdGNoZWRDb21tYW5kKHBhcnRzOiBDb21tYW5kUGFydFtdLCBvcHRpb25zOiBFeGVjT3B0aW9ucyk6IFByb21pc2U8RXhlY1Jlc3VsdCB8IHN0cmluZz4gfCB1bmRlZmluZWQge1xuICBjb25zdCBleGVjQXJncyA9IHBhcnRzLmZpbHRlcihpc0V4ZWNBcmcpO1xuICBpZiAoZXhlY0FyZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoZXhlY0FyZ3MubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ09ubHkgb25lIEV4ZWNBcmcgd2l0aCBiYXRjaGVkQXJncyBpcyBhbGxvd2VkIHBlciBjb21tYW5kJykpO1xuICB9XG5cbiAgY29uc3QgZXhlY0FyZyA9IGV4ZWNBcmdzWzBdO1xuICBhc3NlcnROb25OdWxsYWJsZShleGVjQXJnKTtcbiAgY29uc3Qgc3RhdGljUGFydHMgPSBwYXJ0cy5maWx0ZXIoKHBhcnQpOiBwYXJ0IGlzIHN0cmluZyA9PiB0eXBlb2YgcGFydCA9PT0gJ3N0cmluZycpO1xuICBjb25zdCBiYXNlQ29tbWFuZCA9IHRvQ29tbWFuZExpbmUoc3RhdGljUGFydHMpO1xuICBjb25zdCBtYXhDb21tYW5kTGVuZ3RoID0gZ2V0TWF4Q29tbWFuZExlbmd0aCgpO1xuXG4gIC8vIFRyeSBleHBhbmRpbmcgYWxsIGFyZ3MgaW5saW5lXG4gIGNvbnN0IGZ1bGxDb21tYW5kID0gYCR7YmFzZUNvbW1hbmR9ICR7ZXhlY0FyZy5iYXRjaGVkQXJncy5qb2luKCcgJyl9YDtcbiAgaWYgKGZ1bGxDb21tYW5kLmxlbmd0aCA8PSBtYXhDb21tYW5kTGVuZ3RoKSB7XG4gICAgcmV0dXJuIGV4ZWNTdHJpbmcoZnVsbENvbW1hbmQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gU3BsaXQgaW50byBiYXRjaGVzXG4gIGNvbnN0IGJhdGNoZXM6IHN0cmluZ1tdW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRCYXRjaDogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGFyZyBvZiBleGVjQXJnLmJhdGNoZWRBcmdzKSB7XG4gICAgY29uc3QgdGVudGF0aXZlID0gYCR7YmFzZUNvbW1hbmR9ICR7Wy4uLmN1cnJlbnRCYXRjaCwgYXJnXS5qb2luKCcgJyl9YDtcbiAgICBpZiAodGVudGF0aXZlLmxlbmd0aCA+IG1heENvbW1hbmRMZW5ndGgpIHtcbiAgICAgIGlmIChjdXJyZW50QmF0Y2gubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQ2Fubm90IHNwbGl0IGNvbW1hbmQgaW50byBiYXRjaGVzOiBhIHNpbmdsZSBhcmd1bWVudCAoJHtTdHJpbmcoYXJnLmxlbmd0aCl9IGNoYXJzKSBwbHVzIHRoZSBiYXNlIGNvbW1hbmQgKCR7U3RyaW5nKGJhc2VDb21tYW5kLmxlbmd0aCl9IGNoYXJzKSBleGNlZWRzIHRoZSBtYXggY29tbWFuZCBsZW5ndGggKCR7U3RyaW5nKG1heENvbW1hbmRMZW5ndGgpfSkuYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGJhdGNoZXMucHVzaChjdXJyZW50QmF0Y2gpO1xuICAgICAgY3VycmVudEJhdGNoID0gW2FyZ107XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRCYXRjaC5wdXNoKGFyZyk7XG4gICAgfVxuICB9XG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBBbHdheXMgdHJ1ZSBhZnRlciB0aGUgbG9vcDsgYmF0Y2hlZEFyZ3MgaXMgbm9uLWVtcHR5IGF0IHRoaXMgcG9pbnQuICovXG4gIGlmIChjdXJyZW50QmF0Y2gubGVuZ3RoID4gMCkge1xuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgYmF0Y2hlcy5wdXNoKGN1cnJlbnRCYXRjaCk7XG4gIH1cblxuICByZXR1cm4gZXhlY3V0ZUJhdGNoZXMoYmFzZUNvbW1hbmQsIGJhdGNoZXMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGNvbW1hbmQgcGFydCBpcyBhbiB7QGxpbmsgRXhlY0FyZ30uXG4gKlxuICogQHBhcmFtIHBhcnQgLSBUaGUgY29tbWFuZCBwYXJ0IHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcGFydCBpcyBhbiBFeGVjQXJnLlxuICovXG5mdW5jdGlvbiBpc0V4ZWNBcmcocGFydDogQ29tbWFuZFBhcnQpOiBwYXJ0IGlzIEV4ZWNBcmcge1xuICByZXR1cm4gdHlwZW9mIHBhcnQgPT09ICdvYmplY3QnICYmICdiYXRjaGVkQXJncycgaW4gcGFydDtcbn1cblxuLyoqXG4gKiBTcGF3bnMgYSBjaGlsZCBwcm9jZXNzIHZpYSB0aGUgYXBwcm9wcmlhdGUgc2hlbGwuXG4gKlxuICogT24gV2luZG93cywgaWYgdGhlIGNvbW1hbmQgY29udGFpbnMgbmV3bGluZXMgKHdoaWNoIGBjbWQuZXhlYCBjYW5ub3QgaGFuZGxlKVxuICogYW5kIHRoZSByYXcgYXJncyBhcnJheSBpcyBhdmFpbGFibGUsIHNwYXducyB0aGUgcHJvY2VzcyBkaXJlY3RseSB3aXRob3V0XG4gKiBhbnkgc2hlbGwgXHUyMDE0IHBhc3NpbmcgYXJncyB2aWEgYENyZWF0ZVByb2Nlc3NgLCB3aGljaCBhdm9pZHMgYWxsIHF1b3RpbmcgaXNzdWVzLlxuICpcbiAqIE9uIFdpbmRvd3MgKGNtZC5leGUgcGF0aCksIGFwcGxpZXMgYF5gLWVzY2FwaW5nIGZvciBjbWQgbWV0YWNoYXJhY3RlcnMuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCBzdHJpbmcgdG8gZXhlY3V0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBAcGFyYW0gcmF3QXJncyAtIFRoZSBvcmlnaW5hbCBhcmd1bWVudCBhcnJheSAoaWYgYXZhaWxhYmxlKS5cbiAqIEByZXR1cm5zIFRoZSBzcGF3bmVkIGNoaWxkIHByb2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIHNwYXduVmlhU2hlbGwoY29tbWFuZDogc3RyaW5nLCBjd2Q6IHN0cmluZywgcmF3QXJncz86IHN0cmluZ1tdKTogQ2hpbGRQcm9jZXNzV2l0aG91dE51bGxTdHJlYW1zIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgJiYgY29tbWFuZC5pbmNsdWRlcygnXFxuJykpIHtcbiAgICBpZiAoIXJhd0FyZ3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29tbWFuZHMgY29udGFpbmluZyBuZXdsaW5lcyBjYW5ub3QgYmUgZXhlY3V0ZWQgdGhyb3VnaCBjbWQuZXhlIG9uIFdpbmRvd3MuIFBhc3MgYW4gYXJndW1lbnQgYXJyYXkgaW5zdGVhZCBvZiBhIHN0cmluZy4nKTtcbiAgICB9XG4gICAgY29uc3QgW3Byb2dyYW0sIC4uLmFyZ3NdID0gcmF3QXJncztcbiAgICBhc3NlcnROb25OdWxsYWJsZShwcm9ncmFtLCAnQ29tbWFuZCBhcnJheSBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICAgIHJldHVybiBzcGF3bihwcm9ncmFtLCBhcmdzLCB7XG4gICAgICBjd2QsXG4gICAgICBlbnY6IENISUxEX0VOVixcbiAgICAgIHN0ZGlvOiAncGlwZSdcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHNoZWxsQ29tbWFuZCA9IHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyBjbWRFc2NhcGVDb21tYW5kTGluZShjb21tYW5kKSA6IGNvbW1hbmQ7XG4gIHJldHVybiBzcGF3bihzaGVsbENvbW1hbmQsIFtdLCB7XG4gICAgY3dkLFxuICAgIGVudjogQ0hJTERfRU5WLFxuICAgIHNoZWxsOiB0cnVlLFxuICAgIHN0ZGlvOiAncGlw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
|