livemark 0.28.1 → 0.28.3

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.
@@ -1,14 +1,6 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
1
  import { existsSync } from "node:fs";
10
2
  import { dirname, resolve } from "node:path";
11
- import { pathToFileURL } from "node:url";
3
+ import { runnerImport } from "vite";
12
4
  import { resolveBase } from "../../helpers/resolve-base.js";
13
5
  import { defineConfig } from "./define.js";
14
6
  /** Map livemark CLI verbs to the Vite-equivalent `command` string used by
@@ -43,11 +35,14 @@ export async function loadConfig(path) {
43
35
  const explicit = path ?? cliPath;
44
36
  const resolved = resolve(explicit ?? "livemark.config.ts");
45
37
  let input = {};
38
+ let configDependencies = [];
46
39
  if (existsSync(resolved)) {
47
- // Cache-bust the ESM import so dev-server restart reloads edits on disk.
48
- const url = `${pathToFileURL(resolved).href}?t=${Date.now()}`;
49
- const module = await import(__rewriteRelativeImportExtension(url));
50
- input = module.default ?? {};
40
+ // Not `import()`: Node caches the files a config imports for the process lifetime,
41
+ // so a dev-server restart would keep their old contents.
42
+ const result = await runnerImport(resolved);
43
+ input = result.module.default ?? {};
44
+ // Vite ids use `/` even on Windows, where the watcher reports `\` paths.
45
+ configDependencies = result.dependencies.map(dependency => resolve(dependency));
51
46
  }
52
47
  else if (explicit) {
53
48
  throw new Error(`Config file not found: ${resolved}`);
@@ -57,6 +52,12 @@ export async function loadConfig(path) {
57
52
  // CLI verb. Downstream consumers (Vite plugin, content-collections,
58
53
  // runtime) get a plain string|undefined and never see the function.
59
54
  const base = resolveBase(validated.base, detectCommand());
60
- return { ...validated, base, root: dirname(resolved), configPath: resolved };
55
+ return {
56
+ ...validated,
57
+ base,
58
+ root: dirname(resolved),
59
+ configPath: resolved,
60
+ configDependencies,
61
+ };
61
62
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTFDOzs7NkVBRzZFO0FBQzdFLE1BQU0sZUFBZSxHQUFzQztJQUN6RCxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQTtBQUVELFNBQVMsYUFBYTtJQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsSUFBSSxHQUFHLElBQUksZUFBZTtZQUFFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBRSxDQUFBO0lBQzFELENBQUM7SUFDRCxPQUFPLE9BQWdCLENBQUE7QUFDekIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLElBQWE7SUFDNUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQTtJQUMvRSxNQUFNLE9BQU8sR0FBRyxXQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDOUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLE9BQU8sQ0FBQTtJQUNoQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLG9CQUFvQixDQUFDLENBQUE7SUFDMUQsSUFBSSxLQUFLLEdBQWUsRUFBRSxDQUFBO0lBQzFCLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekIseUVBQXlFO1FBQ3pFLE1BQU0sR0FBRyxHQUFHLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQTtRQUM3RCxNQUFNLE1BQU0sR0FBNEIsTUFBTSxNQUFNLGtDQUFDLEdBQUcsRUFBQyxDQUFBO1FBQ3pELEtBQUssR0FBSSxNQUFNLENBQUMsT0FBc0IsSUFBSSxFQUFFLENBQUE7SUFDOUMsQ0FBQztTQUFNLElBQUksUUFBUSxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLHFFQUFxRTtJQUNyRSxvRUFBb0U7SUFDcEUsb0VBQW9FO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDekQsT0FBTyxFQUFFLEdBQUcsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tIFwibm9kZTp1cmxcIlxuaW1wb3J0IHR5cGUgeyBDb25maWcsIFVzZXJDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbmZpZy50c1wiXG5pbXBvcnQgeyByZXNvbHZlQmFzZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3Jlc29sdmUtYmFzZS50c1wiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiLi9kZWZpbmUudHNcIlxuXG4vKiogTWFwIGxpdmVtYXJrIENMSSB2ZXJicyB0byB0aGUgVml0ZS1lcXVpdmFsZW50IGBjb21tYW5kYCBzdHJpbmcgdXNlZCBieVxuICogIGByZXNvbHZlQmFzZSgpYC4gYHByZXZpZXdgIHNlcnZlcyB0aGUgcHJvZHVjdGlvbiBidWlsZCdzIGFydGlmYWN0cyBzb1xuICogIGl0IHVzZXMgdGhlIGJ1aWxkLW1vZGUgYmFzZS4gRGVmYXVsdCB0byBgXCJidWlsZFwiYCBmb3Igc2FmZXR5IHdoZW4gbm9cbiAqICByZWNvZ25pc2VkIHZlcmIgaXMgaW4gYXJndiAodGhlIGNvbW1vbiBwYXRoIGlzIGBsaXZlbWFyayA8dmVyYj4gLi4uYCkuICovXG5jb25zdCBDT01NQU5EX0JZX1ZFUkI6IFJlY29yZDxzdHJpbmcsIFwiYnVpbGRcIiB8IFwic2VydmVcIj4gPSB7XG4gIHN0YXJ0OiBcInNlcnZlXCIsXG4gIGJ1aWxkOiBcImJ1aWxkXCIsXG4gIHByZXZpZXc6IFwiYnVpbGRcIixcbn1cblxuZnVuY3Rpb24gZGV0ZWN0Q29tbWFuZCgpIHtcbiAgZm9yIChjb25zdCBhcmcgb2YgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpKSB7XG4gICAgaWYgKGFyZyBpbiBDT01NQU5EX0JZX1ZFUkIpIHJldHVybiBDT01NQU5EX0JZX1ZFUkJbYXJnXSFcbiAgfVxuICByZXR1cm4gXCJidWlsZFwiIGFzIGNvbnN0XG59XG5cbi8qKlxuICogTG9hZCBhbmQgdmFsaWRhdGUgYSBjb25maWcgZmlsZSwgY2hlY2tpbmcgLS1jb25maWcvLWMgQ0xJIGFyZywgdGhlbiBjd2QuXG4gKlxuICogSWYgYSBwYXRoIGlzIHByb3ZpZGVkIGV4cGxpY2l0bHkgKGFyZyBvciBgLS1jb25maWdgL2AtY2ApIGFuZCB0aGVcbiAqIGZpbGUgaXMgbWlzc2luZywgdGhyb3dzIOKAlCB0aGUgdXNlciBhc2tlZCBmb3IgYSBzcGVjaWZpYyBjb25maWcgYW5kXG4gKiBpdCBpc24ndCB0aGVyZS4gSWYgbm8gcGF0aCBpcyBwcm92aWRlZCBhbmQgbm8gYGxpdmVtYXJrLmNvbmZpZy50c2BcbiAqIGV4aXN0cyBpbiBjd2QsIGZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgY29uZmlnIHdpdGggYSBzeW50aGVzaXplZFxuICogYGNvbmZpZ1BhdGggPSA8Y3dkPi9saXZlbWFyay5jb25maWcudHNgIHNvIGRvd25zdHJlYW0gY29kZSAodGFyZ2V0XG4gKiBoYXNoLCB3YXRjaGVyKSBzdGlsbCBoYXMgYSBzdGFibGUgcGVyLXByb2plY3Qga2V5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZENvbmZpZyhwYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb25maWc+IHtcbiAgY29uc3QgY29uZmlnSW5kZXggPSBwcm9jZXNzLmFyZ3YuZmluZEluZGV4KGEgPT4gYSA9PT0gXCItY1wiIHx8IGEgPT09IFwiLS1jb25maWdcIilcbiAgY29uc3QgY2xpUGF0aCA9IGNvbmZpZ0luZGV4ICE9PSAtMSA/IHByb2Nlc3MuYXJndltjb25maWdJbmRleCArIDFdIDogdW5kZWZpbmVkXG4gIGNvbnN0IGV4cGxpY2l0ID0gcGF0aCA/PyBjbGlQYXRoXG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShleHBsaWNpdCA/PyBcImxpdmVtYXJrLmNvbmZpZy50c1wiKVxuICBsZXQgaW5wdXQ6IFVzZXJDb25maWcgPSB7fVxuICBpZiAoZXhpc3RzU3luYyhyZXNvbHZlZCkpIHtcbiAgICAvLyBDYWNoZS1idXN0IHRoZSBFU00gaW1wb3J0IHNvIGRldi1zZXJ2ZXIgcmVzdGFydCByZWxvYWRzIGVkaXRzIG9uIGRpc2suXG4gICAgY29uc3QgdXJsID0gYCR7cGF0aFRvRmlsZVVSTChyZXNvbHZlZCkuaHJlZn0/dD0ke0RhdGUubm93KCl9YFxuICAgIGNvbnN0IG1vZHVsZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBhd2FpdCBpbXBvcnQodXJsKVxuICAgIGlucHV0ID0gKG1vZHVsZS5kZWZhdWx0IGFzIFVzZXJDb25maWcpID8/IHt9XG4gIH0gZWxzZSBpZiAoZXhwbGljaXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlIG5vdCBmb3VuZDogJHtyZXNvbHZlZH1gKVxuICB9XG4gIGNvbnN0IHZhbGlkYXRlZCA9IGRlZmluZUNvbmZpZyhpbnB1dClcbiAgLy8gUmVzb2x2ZSB0aGUgZnVuY3Rpb24gZm9ybSBvZiBgYmFzZWAgb25jZSwgaGVyZSwgdXNpbmcgdGhlIGxpdmVtYXJrXG4gIC8vIENMSSB2ZXJiLiBEb3duc3RyZWFtIGNvbnN1bWVycyAoVml0ZSBwbHVnaW4sIGNvbnRlbnQtY29sbGVjdGlvbnMsXG4gIC8vIHJ1bnRpbWUpIGdldCBhIHBsYWluIHN0cmluZ3x1bmRlZmluZWQgYW5kIG5ldmVyIHNlZSB0aGUgZnVuY3Rpb24uXG4gIGNvbnN0IGJhc2UgPSByZXNvbHZlQmFzZSh2YWxpZGF0ZWQuYmFzZSwgZGV0ZWN0Q29tbWFuZCgpKVxuICByZXR1cm4geyAuLi52YWxpZGF0ZWQsIGJhc2UsIHJvb3Q6IGRpcm5hbWUocmVzb2x2ZWQpLCBjb25maWdQYXRoOiByZXNvbHZlZCB9XG59XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUxQzs7OzZFQUc2RTtBQUM3RSxNQUFNLGVBQWUsR0FBc0M7SUFDekQsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUE7QUFFRCxTQUFTLGFBQWE7SUFDcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hDLElBQUksR0FBRyxJQUFJLGVBQWU7WUFBRSxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUUsQ0FBQTtJQUMxRCxDQUFDO0lBQ0QsT0FBTyxPQUFnQixDQUFBO0FBQ3pCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxJQUFhO0lBQzVDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUE7SUFDL0UsTUFBTSxPQUFPLEdBQUcsV0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlFLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxPQUFPLENBQUE7SUFDaEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyxDQUFBO0lBQzFELElBQUksS0FBSyxHQUFlLEVBQUUsQ0FBQTtJQUMxQixJQUFJLGtCQUFrQixHQUFhLEVBQUUsQ0FBQTtJQUNyQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pCLG1GQUFtRjtRQUNuRix5REFBeUQ7UUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQTJCLFFBQVEsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUE7UUFDbkMseUVBQXlFO1FBQ3pFLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDakYsQ0FBQztTQUFNLElBQUksUUFBUSxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLHFFQUFxRTtJQUNyRSxvRUFBb0U7SUFDcEUsb0VBQW9FO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDekQsT0FBTztRQUNMLEdBQUcsU0FBUztRQUNaLElBQUk7UUFDSixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN2QixVQUFVLEVBQUUsUUFBUTtRQUNwQixrQkFBa0I7S0FDbkIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgZGlybmFtZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgcnVubmVySW1wb3J0IH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IHR5cGUgeyBDb25maWcsIFVzZXJDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbmZpZy50c1wiXG5pbXBvcnQgeyByZXNvbHZlQmFzZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3Jlc29sdmUtYmFzZS50c1wiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiLi9kZWZpbmUudHNcIlxuXG4vKiogTWFwIGxpdmVtYXJrIENMSSB2ZXJicyB0byB0aGUgVml0ZS1lcXVpdmFsZW50IGBjb21tYW5kYCBzdHJpbmcgdXNlZCBieVxuICogIGByZXNvbHZlQmFzZSgpYC4gYHByZXZpZXdgIHNlcnZlcyB0aGUgcHJvZHVjdGlvbiBidWlsZCdzIGFydGlmYWN0cyBzb1xuICogIGl0IHVzZXMgdGhlIGJ1aWxkLW1vZGUgYmFzZS4gRGVmYXVsdCB0byBgXCJidWlsZFwiYCBmb3Igc2FmZXR5IHdoZW4gbm9cbiAqICByZWNvZ25pc2VkIHZlcmIgaXMgaW4gYXJndiAodGhlIGNvbW1vbiBwYXRoIGlzIGBsaXZlbWFyayA8dmVyYj4gLi4uYCkuICovXG5jb25zdCBDT01NQU5EX0JZX1ZFUkI6IFJlY29yZDxzdHJpbmcsIFwiYnVpbGRcIiB8IFwic2VydmVcIj4gPSB7XG4gIHN0YXJ0OiBcInNlcnZlXCIsXG4gIGJ1aWxkOiBcImJ1aWxkXCIsXG4gIHByZXZpZXc6IFwiYnVpbGRcIixcbn1cblxuZnVuY3Rpb24gZGV0ZWN0Q29tbWFuZCgpIHtcbiAgZm9yIChjb25zdCBhcmcgb2YgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpKSB7XG4gICAgaWYgKGFyZyBpbiBDT01NQU5EX0JZX1ZFUkIpIHJldHVybiBDT01NQU5EX0JZX1ZFUkJbYXJnXSFcbiAgfVxuICByZXR1cm4gXCJidWlsZFwiIGFzIGNvbnN0XG59XG5cbi8qKlxuICogTG9hZCBhbmQgdmFsaWRhdGUgYSBjb25maWcgZmlsZSwgY2hlY2tpbmcgLS1jb25maWcvLWMgQ0xJIGFyZywgdGhlbiBjd2QuXG4gKlxuICogSWYgYSBwYXRoIGlzIHByb3ZpZGVkIGV4cGxpY2l0bHkgKGFyZyBvciBgLS1jb25maWdgL2AtY2ApIGFuZCB0aGVcbiAqIGZpbGUgaXMgbWlzc2luZywgdGhyb3dzIOKAlCB0aGUgdXNlciBhc2tlZCBmb3IgYSBzcGVjaWZpYyBjb25maWcgYW5kXG4gKiBpdCBpc24ndCB0aGVyZS4gSWYgbm8gcGF0aCBpcyBwcm92aWRlZCBhbmQgbm8gYGxpdmVtYXJrLmNvbmZpZy50c2BcbiAqIGV4aXN0cyBpbiBjd2QsIGZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgY29uZmlnIHdpdGggYSBzeW50aGVzaXplZFxuICogYGNvbmZpZ1BhdGggPSA8Y3dkPi9saXZlbWFyay5jb25maWcudHNgIHNvIGRvd25zdHJlYW0gY29kZSAodGFyZ2V0XG4gKiBoYXNoLCB3YXRjaGVyKSBzdGlsbCBoYXMgYSBzdGFibGUgcGVyLXByb2plY3Qga2V5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZENvbmZpZyhwYXRoPzogc3RyaW5nKTogUHJvbWlzZTxDb25maWc+IHtcbiAgY29uc3QgY29uZmlnSW5kZXggPSBwcm9jZXNzLmFyZ3YuZmluZEluZGV4KGEgPT4gYSA9PT0gXCItY1wiIHx8IGEgPT09IFwiLS1jb25maWdcIilcbiAgY29uc3QgY2xpUGF0aCA9IGNvbmZpZ0luZGV4ICE9PSAtMSA/IHByb2Nlc3MuYXJndltjb25maWdJbmRleCArIDFdIDogdW5kZWZpbmVkXG4gIGNvbnN0IGV4cGxpY2l0ID0gcGF0aCA/PyBjbGlQYXRoXG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShleHBsaWNpdCA/PyBcImxpdmVtYXJrLmNvbmZpZy50c1wiKVxuICBsZXQgaW5wdXQ6IFVzZXJDb25maWcgPSB7fVxuICBsZXQgY29uZmlnRGVwZW5kZW5jaWVzOiBzdHJpbmdbXSA9IFtdXG4gIGlmIChleGlzdHNTeW5jKHJlc29sdmVkKSkge1xuICAgIC8vIE5vdCBgaW1wb3J0KClgOiBOb2RlIGNhY2hlcyB0aGUgZmlsZXMgYSBjb25maWcgaW1wb3J0cyBmb3IgdGhlIHByb2Nlc3MgbGlmZXRpbWUsXG4gICAgLy8gc28gYSBkZXYtc2VydmVyIHJlc3RhcnQgd291bGQga2VlcCB0aGVpciBvbGQgY29udGVudHMuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnVubmVySW1wb3J0PHsgZGVmYXVsdD86IFVzZXJDb25maWcgfT4ocmVzb2x2ZWQpXG4gICAgaW5wdXQgPSByZXN1bHQubW9kdWxlLmRlZmF1bHQgPz8ge31cbiAgICAvLyBWaXRlIGlkcyB1c2UgYC9gIGV2ZW4gb24gV2luZG93cywgd2hlcmUgdGhlIHdhdGNoZXIgcmVwb3J0cyBgXFxgIHBhdGhzLlxuICAgIGNvbmZpZ0RlcGVuZGVuY2llcyA9IHJlc3VsdC5kZXBlbmRlbmNpZXMubWFwKGRlcGVuZGVuY3kgPT4gcmVzb2x2ZShkZXBlbmRlbmN5KSlcbiAgfSBlbHNlIGlmIChleHBsaWNpdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29uZmlnIGZpbGUgbm90IGZvdW5kOiAke3Jlc29sdmVkfWApXG4gIH1cbiAgY29uc3QgdmFsaWRhdGVkID0gZGVmaW5lQ29uZmlnKGlucHV0KVxuICAvLyBSZXNvbHZlIHRoZSBmdW5jdGlvbiBmb3JtIG9mIGBiYXNlYCBvbmNlLCBoZXJlLCB1c2luZyB0aGUgbGl2ZW1hcmtcbiAgLy8gQ0xJIHZlcmIuIERvd25zdHJlYW0gY29uc3VtZXJzIChWaXRlIHBsdWdpbiwgY29udGVudC1jb2xsZWN0aW9ucyxcbiAgLy8gcnVudGltZSkgZ2V0IGEgcGxhaW4gc3RyaW5nfHVuZGVmaW5lZCBhbmQgbmV2ZXIgc2VlIHRoZSBmdW5jdGlvbi5cbiAgY29uc3QgYmFzZSA9IHJlc29sdmVCYXNlKHZhbGlkYXRlZC5iYXNlLCBkZXRlY3RDb21tYW5kKCkpXG4gIHJldHVybiB7XG4gICAgLi4udmFsaWRhdGVkLFxuICAgIGJhc2UsXG4gICAgcm9vdDogZGlybmFtZShyZXNvbHZlZCksXG4gICAgY29uZmlnUGF0aDogcmVzb2x2ZWQsXG4gICAgY29uZmlnRGVwZW5kZW5jaWVzLFxuICB9XG59XG4iXX0=
@@ -35,5 +35,17 @@ describe("loadConfig", () => {
35
35
  expect(config.include).toBe("**/*.md");
36
36
  expect(config.title).toBe("Livemark");
37
37
  }));
38
+ it("should reload the files a config imports and list them as dependencies", () => temporaryDirectoryTask(async (tmpDir) => {
39
+ const configPath = join(tmpDir, "livemark.config.ts");
40
+ const titlePath = join(tmpDir, "title.ts");
41
+ fs.writeFileSync(configPath, 'import { title } from "./title.ts"\nexport default { title }\n');
42
+ fs.writeFileSync(titlePath, 'export const title = "First"\n');
43
+ const first = await loadConfig(configPath);
44
+ fs.writeFileSync(titlePath, 'export const title = "Second"\n');
45
+ const second = await loadConfig(configPath);
46
+ expect(first.title).toBe("First");
47
+ expect(second.title).toBe("Second");
48
+ expect(second.configDependencies).toContain(titlePath);
49
+ }));
38
50
  });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL2FjdGlvbnMvY29uZmlnL2xvYWQudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMsNkRBQTZELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0UsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2pGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRSxDQUM1RSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7UUFDcEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ3pCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQTtZQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtRQUNwRSxDQUFDO2dCQUFTLENBQUM7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3BCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRUwsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRSxDQUMvQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3JELEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLG1EQUFtRCxDQUFDLENBQUE7UUFDakYsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRUwsRUFBRSxDQUFDLCtDQUErQyxFQUFFLEdBQUcsRUFBRSxDQUN2RCxzQkFBc0IsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3JELEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNQLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IHRlbXBvcmFyeURpcmVjdG9yeVRhc2sgfSBmcm9tIFwidGVtcHlcIlxuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZS1wbHVzL3Rlc3RcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2xvYWQudHNcIlxuXG5kZXNjcmliZShcImxvYWRDb25maWdcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCB0aHJvdyB3aGVuIGFuIGV4cGxpY2l0IHBhdGggcG9pbnRzIGF0IGEgbWlzc2luZyBmaWxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBleHBlY3QobG9hZENvbmZpZyhcIi9ub25leGlzdGVudC9jb25maWcudHNcIikpLnJlamVjdHMudG9UaHJvdygvbm90IGZvdW5kLylcbiAgfSlcblxuICBpdChcInNob3VsZCByZXR1cm4gZGVmYXVsdHMgd2hlbiBubyBwYXRoIGlzIGdpdmVuIGFuZCBjd2QgaGFzIG5vIGNvbmZpZ1wiLCAoKSA9PlxuICAgIHRlbXBvcmFyeURpcmVjdG9yeVRhc2soYXN5bmMgdG1wRGlyID0+IHtcbiAgICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgICAgIHRyeSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIodG1wRGlyKVxuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcbiAgICAgICAgZXhwZWN0KGNvbmZpZy50aXRsZSkudG9CZShcIkxpdmVtYXJrXCIpXG4gICAgICAgIGV4cGVjdChjb25maWcuaW5jbHVkZSkudG9CZShcIioqLyoubWRcIilcbiAgICAgICAgZXhwZWN0KGNvbmZpZy5yb290KS50b0JlKHRtcERpcilcbiAgICAgICAgZXhwZWN0KGNvbmZpZy5jb25maWdQYXRoKS50b0JlKGpvaW4odG1wRGlyLCBcImxpdmVtYXJrLmNvbmZpZy50c1wiKSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIoY3dkKVxuICAgICAgfVxuICAgIH0pKVxuXG4gIGl0KFwic2hvdWxkIGxvYWQgY29uZmlnIGZyb20gZXhwbGljaXQgcGF0aFwiLCAoKSA9PlxuICAgIHRlbXBvcmFyeURpcmVjdG9yeVRhc2soYXN5bmMgdG1wRGlyID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBqb2luKHRtcERpciwgXCJsaXZlbWFyay5jb25maWcudHNcIilcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoY29uZmlnUGF0aCwgJ2V4cG9ydCBkZWZhdWx0IHsgaW5jbHVkZTogXCJhcnRpY2xlcy8qKi8qLm1keFwiIH1cXG4nKVxuICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhjb25maWdQYXRoKVxuICAgICAgZXhwZWN0KGNvbmZpZy5pbmNsdWRlKS50b0JlKFwiYXJ0aWNsZXMvKiovKi5tZHhcIilcbiAgICAgIGV4cGVjdChjb25maWcucm9vdCkudG9CZSh0bXBEaXIpXG4gICAgfSkpXG5cbiAgaXQoXCJzaG91bGQgYXBwbHkgZGVmYXVsdHMgd2hlbiBmaWVsZHMgYXJlIG9taXR0ZWRcIiwgKCkgPT5cbiAgICB0ZW1wb3JhcnlEaXJlY3RvcnlUYXNrKGFzeW5jIHRtcERpciA9PiB7XG4gICAgICBjb25zdCBjb25maWdQYXRoID0gam9pbih0bXBEaXIsIFwibGl2ZW1hcmsuY29uZmlnLnRzXCIpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGNvbmZpZ1BhdGgsIFwiZXhwb3J0IGRlZmF1bHQge31cXG5cIilcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoY29uZmlnUGF0aClcbiAgICAgIGV4cGVjdChjb25maWcuaW5jbHVkZSkudG9CZShcIioqLyoubWRcIilcbiAgICAgIGV4cGVjdChjb25maWcudGl0bGUpLnRvQmUoXCJMaXZlbWFya1wiKVxuICAgIH0pKVxufSlcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL2FjdGlvbnMvY29uZmlnL2xvYWQudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixFQUFFLENBQUMsNkRBQTZELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0UsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2pGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRSxDQUM1RSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7UUFDcEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ3pCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQTtZQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN0QyxN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bmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IHRlbXBvcmFyeURpcmVjdG9yeVRhc2sgfSBmcm9tIFwidGVtcHlcIlxuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZS1wbHVzL3Rlc3RcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2xvYWQudHNcIlxuXG5kZXNjcmliZShcImxvYWRDb25maWdcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCB0aHJvdyB3aGVuIGFuIGV4cGxpY2l0IHBhdGggcG9pbnRzIGF0IGEgbWlzc2luZyBmaWxlXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBleHBlY3QobG9hZENvbmZpZyhcIi9ub25leGlzdGVudC9jb25maWcudHNcIikpLnJlamVjdHMudG9UaHJvdygvbm90IGZvdW5kLylcbiAgfSlcblxuICBpdChcInNob3VsZCByZXR1cm4gZGVmYXVsdHMgd2hlbiBubyBwYXRoIGlzIGdpdmVuIGFuZCBjd2QgaGFzIG5vIGNvbmZpZ1wiLCAoKSA9PlxuICAgIHRlbXBvcmFyeURpcmVjdG9yeVRhc2soYXN5bmMgdG1wRGlyID0+IHtcbiAgICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgICAgIHRyeSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIodG1wRGlyKVxuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcbiAgICAgICAgZXhwZWN0KGNvbmZpZy50aXRsZSkudG9CZShcIkxpdmVtYXJrXCIpXG4gICAgICAgIGV4cGVjdChjb25maWcuaW5jbHVkZSkudG9CZShcIioqLyoubWRcIilcbiAgICAgICAgZXhwZWN0KGNvbmZpZy5yb290KS50b0JlKHRtcERpcilcbiAgICAgICAgZXhwZWN0KGNvbmZpZy5jb25maWdQYXRoKS50b0JlKGpvaW4odG1wRGlyLCBcImxpdmVtYXJrLmNvbmZpZy50c1wiKSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHByb2Nlc3MuY2hkaXIoY3dkKVxuICAgICAgfVxuICAgIH0pKVxuXG4gIGl0KFwic2hvdWxkIGxvYWQgY29uZmlnIGZyb20gZXhwbGljaXQgcGF0aFwiLCAoKSA9PlxuICAgIHRlbXBvcmFyeURpcmVjdG9yeVRhc2soYXN5bmMgdG1wRGlyID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBqb2luKHRtcERpciwgXCJsaXZlbWFyay5jb25maWcudHNcIilcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoY29uZmlnUGF0aCwgJ2V4cG9ydCBkZWZhdWx0IHsgaW5jbHVkZTogXCJhcnRpY2xlcy8qKi8qLm1keFwiIH1cXG4nKVxuICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhjb25maWdQYXRoKVxuICAgICAgZXhwZWN0KGNvbmZpZy5pbmNsdWRlKS50b0JlKFwiYXJ0aWNsZXMvKiovKi5tZHhcIilcbiAgICAgIGV4cGVjdChjb25maWcucm9vdCkudG9CZSh0bXBEaXIpXG4gICAgfSkpXG5cbiAgaXQoXCJzaG91bGQgYXBwbHkgZGVmYXVsdHMgd2hlbiBmaWVsZHMgYXJlIG9taXR0ZWRcIiwgKCkgPT5cbiAgICB0ZW1wb3JhcnlEaXJlY3RvcnlUYXNrKGFzeW5jIHRtcERpciA9PiB7XG4gICAgICBjb25zdCBjb25maWdQYXRoID0gam9pbih0bXBEaXIsIFwibGl2ZW1hcmsuY29uZmlnLnRzXCIpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGNvbmZpZ1BhdGgsIFwiZXhwb3J0IGRlZmF1bHQge31cXG5cIilcbiAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoY29uZmlnUGF0aClcbiAgICAgIGV4cGVjdChjb25maWcuaW5jbHVkZSkudG9CZShcIioqLyoubWRcIilcbiAgICAgIGV4cGVjdChjb25maWcudGl0bGUpLnRvQmUoXCJMaXZlbWFya1wiKVxuICAgIH0pKVxuXG4gIGl0KFwic2hvdWxkIHJlbG9hZCB0aGUgZmlsZXMgYSBjb25maWcgaW1wb3J0cyBhbmQgbGlzdCB0aGVtIGFzIGRlcGVuZGVuY2llc1wiLCAoKSA9PlxuICAgIHRlbXBvcmFyeURpcmVjdG9yeVRhc2soYXN5bmMgdG1wRGlyID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBqb2luKHRtcERpciwgXCJsaXZlbWFyay5jb25maWcudHNcIilcbiAgICAgIGNvbnN0IHRpdGxlUGF0aCA9IGpvaW4odG1wRGlyLCBcInRpdGxlLnRzXCIpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICBjb25maWdQYXRoLFxuICAgICAgICAnaW1wb3J0IHsgdGl0bGUgfSBmcm9tIFwiLi90aXRsZS50c1wiXFxuZXhwb3J0IGRlZmF1bHQgeyB0aXRsZSB9XFxuJyxcbiAgICAgIClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmModGl0bGVQYXRoLCAnZXhwb3J0IGNvbnN0IHRpdGxlID0gXCJGaXJzdFwiXFxuJylcbiAgICAgIGNvbnN0IGZpcnN0ID0gYXdhaXQgbG9hZENvbmZpZyhjb25maWdQYXRoKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyh0aXRsZVBhdGgsICdleHBvcnQgY29uc3QgdGl0bGUgPSBcIlNlY29uZFwiXFxuJylcbiAgICAgIGNvbnN0IHNlY29uZCA9IGF3YWl0IGxvYWRDb25maWcoY29uZmlnUGF0aClcbiAgICAgIGV4cGVjdChmaXJzdC50aXRsZSkudG9CZShcIkZpcnN0XCIpXG4gICAgICBleHBlY3Qoc2Vjb25kLnRpdGxlKS50b0JlKFwiU2Vjb25kXCIpXG4gICAgICBleHBlY3Qoc2Vjb25kLmNvbmZpZ0RlcGVuZGVuY2llcykudG9Db250YWluKHRpdGxlUGF0aClcbiAgICB9KSlcbn0pXG4iXX0=
@@ -1,19 +1,42 @@
1
+ import { watch } from "node:fs";
1
2
  import { join } from "node:path";
2
3
  import { Command } from "commander";
3
4
  import { createServer } from "vite";
4
5
  const configFile = join(import.meta.dirname, "..", "..", "source", "vite.config.ts");
6
+ const IGNORED_DIRS = /(^|[/\\])(node_modules|\.git|\.livemark)([/\\]|$)/;
5
7
  /**
6
8
  * Start a development server.
7
9
  */
8
10
  export const start = new Command("start")
9
11
  .description("Start a live server")
10
12
  .action(async () => {
11
- const server = await createServer({
12
- configFile,
13
- server: { port: 8000, host: true },
14
- });
15
- await server.listen();
16
- server.printUrls();
17
- server.bindCLIShortcuts({ print: true });
13
+ await startServer();
18
14
  });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tbWFuZHMvc3RhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFbkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXBGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztLQUN0QyxXQUFXLENBQUMscUJBQXFCLENBQUM7S0FDbEMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDO1FBQ2hDLFVBQVU7UUFDVixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7S0FDbkMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDckIsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2xCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQzFDLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIlxuaW1wb3J0IHsgY3JlYXRlU2VydmVyIH0gZnJvbSBcInZpdGVcIlxuXG5jb25zdCBjb25maWdGaWxlID0gam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJzb3VyY2VcIiwgXCJ2aXRlLmNvbmZpZy50c1wiKVxuXG4vKipcbiAqIFN0YXJ0IGEgZGV2ZWxvcG1lbnQgc2VydmVyLlxuICovXG5leHBvcnQgY29uc3Qgc3RhcnQgPSBuZXcgQ29tbWFuZChcInN0YXJ0XCIpXG4gIC5kZXNjcmlwdGlvbihcIlN0YXJ0IGEgbGl2ZSBzZXJ2ZXJcIilcbiAgLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2VydmVyID0gYXdhaXQgY3JlYXRlU2VydmVyKHtcbiAgICAgIGNvbmZpZ0ZpbGUsXG4gICAgICBzZXJ2ZXI6IHsgcG9ydDogODAwMCwgaG9zdDogdHJ1ZSB9LFxuICAgIH0pXG4gICAgYXdhaXQgc2VydmVyLmxpc3RlbigpXG4gICAgc2VydmVyLnByaW50VXJscygpXG4gICAgc2VydmVyLmJpbmRDTElTaG9ydGN1dHMoeyBwcmludDogdHJ1ZSB9KVxuICB9KVxuIl19
15
+ // A broken config fails `createServer` before Vite's watcher exists, so without this
16
+ // the process exits and the fix has nobody to pick it up.
17
+ async function startServer() {
18
+ try {
19
+ const server = await createServer({
20
+ configFile,
21
+ server: { port: 8000, host: true },
22
+ });
23
+ await server.listen();
24
+ server.printUrls();
25
+ server.bindCLIShortcuts({ print: true });
26
+ }
27
+ catch (error) {
28
+ console.error(error);
29
+ console.error("\nWaiting for a file change to retry…");
30
+ await waitForChange(process.cwd());
31
+ await startServer();
32
+ }
33
+ }
34
+ function waitForChange(dir) {
35
+ return new Promise(resolve => {
36
+ const watcher = watch(dir, { recursive: true, ignore: IGNORED_DIRS }, () => {
37
+ watcher.close();
38
+ resolve();
39
+ });
40
+ });
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tbWFuZHMvc3RhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUVuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUE7QUFDcEYsTUFBTSxZQUFZLEdBQUcsbURBQW1ELENBQUE7QUFFeEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ3RDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztLQUNsQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDakIsTUFBTSxXQUFXLEVBQUUsQ0FBQTtBQUNyQixDQUFDLENBQUMsQ0FBQTtBQUVKLHFGQUFxRjtBQUNyRiwwREFBMEQ7QUFDMUQsS0FBSyxVQUFVLFdBQVc7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUM7WUFDaEMsVUFBVTtZQUNWLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtTQUNuQyxDQUFDLENBQUE7UUFDRixNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNyQixNQUFNLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDbEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtRQUN0RCxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUNsQyxNQUFNLFdBQVcsRUFBRSxDQUFBO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsR0FBVztJQUNoQyxPQUFPLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUU7WUFDekUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ2YsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhdGNoIH0gZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIlxuaW1wb3J0IHsgY3JlYXRlU2VydmVyIH0gZnJvbSBcInZpdGVcIlxuXG5jb25zdCBjb25maWdGaWxlID0gam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJzb3VyY2VcIiwgXCJ2aXRlLmNvbmZpZy50c1wiKVxuY29uc3QgSUdOT1JFRF9ESVJTID0gLyhefFsvXFxcXF0pKG5vZGVfbW9kdWxlc3xcXC5naXR8XFwubGl2ZW1hcmspKFsvXFxcXF18JCkvXG5cbi8qKlxuICogU3RhcnQgYSBkZXZlbG9wbWVudCBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzdGFydCA9IG5ldyBDb21tYW5kKFwic3RhcnRcIilcbiAgLmRlc2NyaXB0aW9uKFwiU3RhcnQgYSBsaXZlIHNlcnZlclwiKVxuICAuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzdGFydFNlcnZlcigpXG4gIH0pXG5cbi8vIEEgYnJva2VuIGNvbmZpZyBmYWlscyBgY3JlYXRlU2VydmVyYCBiZWZvcmUgVml0ZSdzIHdhdGNoZXIgZXhpc3RzLCBzbyB3aXRob3V0IHRoaXNcbi8vIHRoZSBwcm9jZXNzIGV4aXRzIGFuZCB0aGUgZml4IGhhcyBub2JvZHkgdG8gcGljayBpdCB1cC5cbmFzeW5jIGZ1bmN0aW9uIHN0YXJ0U2VydmVyKCkge1xuICB0cnkge1xuICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgICBjb25maWdGaWxlLFxuICAgICAgc2VydmVyOiB7IHBvcnQ6IDgwMDAsIGhvc3Q6IHRydWUgfSxcbiAgICB9KVxuICAgIGF3YWl0IHNlcnZlci5saXN0ZW4oKVxuICAgIHNlcnZlci5wcmludFVybHMoKVxuICAgIHNlcnZlci5iaW5kQ0xJU2hvcnRjdXRzKHsgcHJpbnQ6IHRydWUgfSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgIGNvbnNvbGUuZXJyb3IoXCJcXG5XYWl0aW5nIGZvciBhIGZpbGUgY2hhbmdlIHRvIHJldHJ54oCmXCIpXG4gICAgYXdhaXQgd2FpdEZvckNoYW5nZShwcm9jZXNzLmN3ZCgpKVxuICAgIGF3YWl0IHN0YXJ0U2VydmVyKClcbiAgfVxufVxuXG5mdW5jdGlvbiB3YWl0Rm9yQ2hhbmdlKGRpcjogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICBjb25zdCB3YXRjaGVyID0gd2F0Y2goZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgaWdub3JlOiBJR05PUkVEX0RJUlMgfSwgKCkgPT4ge1xuICAgICAgd2F0Y2hlci5jbG9zZSgpXG4gICAgICByZXNvbHZlKClcbiAgICB9KVxuICB9KVxufVxuIl19
@@ -217,7 +217,7 @@ const articles = defineCollection({
217
217
  rehypeTaskListA11y,
218
218
  ],
219
219
  });
220
- const tocItems = extractToc(content);
220
+ const tocItems = extractToc(bodyContent);
221
221
  const searchText = extractSearchText(content);
222
222
  const lastUpdated = lastUpdatedByFile.get(doc._meta.filePath);
223
223
  const image = doc.image
@@ -241,4 +241,4 @@ export default defineConfig({
241
241
  // @ts-expect-error tsgo picks wrong overload when rehype-slug augments unified types
242
242
  content: [articles],
243
243
  });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxPQUFPLE1BQU0sdUJBQXVCLENBQUE7QUFDM0MsT0FB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QVMsQ0FBQTtRQUNiLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVc7WUFDWCxLQUFLO1lBQ0wsS0FBSztZQUNMLElBQUk7WUFDSixJQUFJO1lBQ0osUUFBUTtZQUNSLFVBQVU7WUFDVixHQUFHO1NBQ0osQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLFlBQVksQ0FBQztJQUMxQixxRkFBcUY7SUFDckYsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQ3BCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGJhc2VuYW1lLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgREVGQVVMVF9FWENMVURFUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGRlZmluZUNvbGxlY3Rpb24sIGRlZmluZUNvbmZpZyB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9jb3JlXCJcbmltcG9ydCB7IGNvbXBpbGVNRFggfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvbWR4XCJcbmltcG9ydCByZWh5cGVTaGlraSBmcm9tIFwiQHNoaWtpanMvcmVoeXBlXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVyVHdvc2xhc2ggfSBmcm9tIFwiQHNoaWtpanMvdHdvc2xhc2hcIlxuaW1wb3J0IHJlaHlwZUthdGV4IGZyb20gXCJyZWh5cGUta2F0ZXhcIlxuaW1wb3J0IHJlaHlwZVNsdWcgZnJvbSBcInJlaHlwZS1zbHVnXCJcbmltcG9ydCByZW1hcmtEZWZpbml0aW9uTGlzdCBmcm9tIFwicmVtYXJrLWRlZmluaXRpb24tbGlzdFwiXG5pbXBvcnQgcmVtYXJrRGlyZWN0aXZlIGZyb20gXCJyZW1hcmstZGlyZWN0aXZlXCJcbmltcG9ydCByZW1hcmtHZW1vamkgZnJvbSBcInJlbWFyay1nZW1vamlcIlxuaW1wb3J0IHJlbWFya0dmbSBmcm9tIFwicmVtYXJrLWdmbVwiXG5pbXBvcnQgcmVtYXJrTWF0aCBmcm9tIFwicmVtYXJrLW1hdGhcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgYnVpbGRDaGFuZ2Vsb2csIGNhY2hlSW5jbHVkZUdsb2IgfSBmcm9tIFwiLi9hY3Rpb25zL2NoYW5nZWxvZy9idWlsZC50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHNsdWdpZnkgZnJvbSBcIkBzaW5kcmVzb3JodXMvc2x1Z2lmeVwiXG5pbXBvcnQgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkIGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWN1c3RvbS1oZWFkaW5nLWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYWxsb3V0LnRzXCJcbmltcG9ydCB7IHJlbWFya0NhcmQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYXJkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvbHVtbnMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jb2x1bW5zLnRzXCJcbmltcG9ydCB7IHJlbWFya1RhYiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRhYi50c1wiXG5pbXBvcnQgeyByZW1hcmtCYWRnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJhZGdlLnRzXCJcbmltcG9ydCB7IHJlbWFya0J1dHRvbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJ1dHRvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtBYmJyIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstYWJici50c1wiXG5pbXBvcnQgeyByZW1hcmtEZWZsaXN0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGVmbGlzdC50c1wiXG5pbXBvcnQgeyByZW1hcmtEZXRhaWxzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGV0YWlscy50c1wiXG5pbXBvcnQgeyByZW1hcmtGaWxldHJlZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWZpbGV0cmVlLnRzXCJcbmltcG9ydCB7IHJlbWFya0ljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pY29uLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvZGVUYWJzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29kZS10YWJzLnRzXCJcbmltcG9ydCB7IHJlbWFya0dpdGh1YkNhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1naXRodWItY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtJbWFnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWltYWdlLnRzXCJcbmltcG9ydCB7IHJlbWFya01lZGlhIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstbWVkaWEudHNcIlxuaW1wb3J0IHsgcmVtYXJrQW5zaSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFuc2kudHNcIlxuaW1wb3J0IHsgcmVtYXJrTWVybWFpZCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lcm1haWQudHNcIlxuaW1wb3J0IHsgcmVtYXJrVG9jIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstdG9jLnRzXCJcbmltcG9ydCB7IHJlbWFya05wbSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW5wbS50c1wiXG5pbXBvcnQgeyByZW1hcmtTdGVwcyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXN0ZXBzLnRzXCJcbmltcG9ydCB7IHJlbWFya1Bhc3N0aHJvdWdoRGlyZWN0aXZlIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstcGFzc3Rocm91Z2gtZGlyZWN0aXZlLnRzXCJcbmltcG9ydCB7XG4gIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCxcbiAgdHJhbnNmb3JtZXJOb3RhdGlvbnMsXG59IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktbGluZS1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgcmVoeXBlSW5saW5lQ29kZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzXCJcbmltcG9ydCB7IHJlaHlwZVRhc2tMaXN0QTExeSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVySWNvbiB9IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktaWNvbi50c1wiXG5pbXBvcnQgeyByZXNvbHZlQXNzZXRQYXRoIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUluY2x1ZGVzIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWluY2x1ZGVzLnRzXCJcbmltcG9ydCB7IGNvbGxlY3RGZW5jZUxhbmd1YWdlcyB9IGZyb20gXCIuL2hlbHBlcnMvZmVuY2UtbGFuZ3VhZ2VzLnRzXCJcbmltcG9ydCB7IGV4dHJhY3RTZWFyY2hUZXh0IH0gZnJvbSBcIi4vaGVscGVycy9zZWFyY2gtdGV4dC50c1wiXG5pbXBvcnQgeyBzdHJpcExlYWRpbmdIMSB9IGZyb20gXCIuL2hlbHBlcnMvbGxtcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vaGVscGVycy90b2MudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcblxuY29uc3QgY2hhbmdlbG9nU2VjdGlvbnMgPSBjb25maWcuc2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIikgPz8gW11cbmZvciAoY29uc3Qgc2VjdGlvbiBvZiBjaGFuZ2Vsb2dTZWN0aW9ucykge1xuICBhd2FpdCBidWlsZENoYW5nZWxvZyhzZWN0aW9uLCBjb25maWcpXG59XG5cbmNvbnN0IGNvbmZpZ0luY2x1ZGUgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pbmNsdWRlKSA/IGNvbmZpZy5pbmNsdWRlIDogW2NvbmZpZy5pbmNsdWRlXVxuY29uc3QgaW5jbHVkZSA9IFtcbiAgLi4uY29uZmlnSW5jbHVkZSxcbiAgLi4uY2hhbmdlbG9nU2VjdGlvbnMubWFwKHNlY3Rpb24gPT4gY2FjaGVJbmNsdWRlR2xvYihzZWN0aW9uLCBjb25maWcpKSxcbl1cblxuY29uc3QgdXNlckV4Y2x1ZGUgPSBjb25maWcuZXhjbHVkZVxuICA/IEFycmF5LmlzQXJyYXkoY29uZmlnLmV4Y2x1ZGUpXG4gICAgPyBjb25maWcuZXhjbHVkZVxuICAgIDogW2NvbmZpZy5leGNsdWRlXVxuICA6IFtdXG4vLyBXaGVuIHRoZSBjb25zdW1lciBkb2Vzbid0IGhhdmUgYSAuZ2l0aWdub3JlLCBmYWxsIGJhY2sgdG8gYSBzZW5zaWJsZVxuLy8gZmxvb3Igc28gYCoqLyoubWRgIGRvZXNuJ3Qgc3dlZXAgdXAgZXZlcnkgUkVBRE1FLm1kIHVuZGVyIG5vZGVfbW9kdWxlcyxcbi8vIGJ1aWxkIG91dHB1dHMsIGV0Yy4gV2l0aCBhIC5naXRpZ25vcmUgcHJlc2VudCB3ZSB0cnVzdCB0aGUgdXNlci5cbmNvbnN0IGhhc0dpdGlnbm9yZSA9IGV4aXN0c1N5bmMocmVzb2x2ZShjb25maWcucm9vdCwgXCIuZ2l0aWdub3JlXCIpKVxuY29uc3QgZGVmYXVsdEV4Y2x1ZGUgPSBoYXNHaXRpZ25vcmUgPyBbXSA6IFsuLi5ERUZBVUxUX0VYQ0xVREVTXVxuY29uc3QgZXhjbHVkZSA9IFsuLi5kZWZhdWx0RXhjbHVkZSwgLi4udXNlckV4Y2x1ZGVdXG5cbi8vIGNvbnRlbnQtY29sbGVjdGlvbnMgY29tcGlsZXMgdGhpcyBmaWxlIHRvIC5jb250ZW50LWNvbGxlY3Rpb25zL2NhY2hlLztcbi8vIGdvaW5nIHVwIDIgbGV2ZWxzIHJlY29uc3RydWN0cyB0aGUgYmFzZURpcmVjdG9yeSBpdCB1c2VzIGZvciBwYXRoIHJlc29sdXRpb25cbmNvbnN0IGJhc2VEaXIgPSByZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLi5cIilcbmNvbnN0IGRpcmVjdG9yeSA9IHJlbGF0aXZlKGJhc2VEaXIsIGNvbmZpZy5yb290KSB8fCBcIi5cIlxuXG5mdW5jdGlvbiB0b1BhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpLnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIilcbiAgcmV0dXJuIHNsdWdpZnkobmFtZSlcbn1cblxuY29uc3QgbGFzdFVwZGF0ZWRCeUZpbGUgPSByZWFkTGFzdFVwZGF0ZWREYXRlcygpXG5cbi8vIE9uZSBgZ2l0IGxvZ2AgZm9yIGV2ZXJ5IGZpbGU6IGEgc3Bhd24gcGVyIGFydGljbGUgYmxvY2tzIHRoZSBidWlsZCB+MzAgbXMgZWFjaCwgYW5kXG4vLyBpc24ndCBjYWNoZWQgYWNyb3NzIGJ1aWxkcyBsaWtlIHRoZSBNRFggaXMuXG5mdW5jdGlvbiByZWFkTGFzdFVwZGF0ZWREYXRlcygpIHtcbiAgY29uc3QgZGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpXG4gIHRyeSB7XG4gICAgY29uc3QgbG9nID0gZXhlY0ZpbGVTeW5jKFxuICAgICAgXCJnaXRcIixcbiAgICAgIFtcbiAgICAgICAgXCItY1wiLFxuICAgICAgICBcImNvcmUucXVvdGVQYXRoPWZhbHNlXCIsXG4gICAgICAgIFwibG9nXCIsXG4gICAgICAgIFwiLS1mb3JtYXQ9JXgwMCVjSVwiLFxuICAgICAgICBcIi0tbmFtZS1vbmx5XCIsXG4gICAgICAgIFwiLS1yZWxhdGl2ZVwiLFxuICAgICAgXSxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBjb25maWcucm9vdCxcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgbWF4QnVmZmVyOiAyNTYgKiAxMDI0ICogMTAyNCxcbiAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJpZ25vcmVcIl0sXG4gICAgICB9LFxuICAgIClcbiAgICBsZXQgZGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxvZy5zcGxpdChcIlxcblwiKSkge1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcIlxcMFwiKSkgZGF0ZSA9IGxpbmUuc2xpY2UoMSlcbiAgICAgIGVsc2UgaWYgKGxpbmUgJiYgZGF0ZSAmJiAhZGF0ZXMuaGFzKGxpbmUpKSBkYXRlcy5zZXQobGluZSwgZGF0ZSlcbiAgICB9XG4gICAgcmV0dXJuIGRhdGVzXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBkYXRlc1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUaXRsZShjb250ZW50OiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eI1xccysoLispJC9tLmV4ZWMoY29udGVudClcbiAgaWYgKG1hdGNoKSByZXR1cm4gbWF0Y2hbMV0hXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgLnBvcCgpXG4gICAgICA/LnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIikgPz8gcGF0aFxuICApXG59XG5cbmNvbnN0IGFydGljbGVzID0gZGVmaW5lQ29sbGVjdGlvbih7XG4gIG5hbWU6IFwiYXJ0aWNsZXNcIixcbiAgZGlyZWN0b3J5LFxuICBpbmNsdWRlLFxuICBleGNsdWRlLFxuICBzY2hlbWE6IEFydGljbGUsXG4gIHRyYW5zZm9ybTogYXN5bmMgKGRvY3VtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcGF0Y2ggPSBjb25maWcucGF0Y2hlcz8uZmluZChwID0+IHAuZmlsZSA9PT0gZG9jdW1lbnQuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgZG9jID0gcGF0Y2ggPyB7IC4uLmRvY3VtZW50LCAuLi5wYXRjaC5hcnRpY2xlIH0gOiBkb2N1bWVudFxuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZXNvbHZlSW5jbHVkZXMoZG9jLmNvbnRlbnQsIGZpbGVQYXRoKVxuICAgIGNvbnN0IHRpdGxlID0gZG9jLnRpdGxlID8/IGV4dHJhY3RUaXRsZShjb250ZW50LCBkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBpY29uID0gZG9jLmljb25cbiAgICBjb25zdCBwYXRoID0gZG9jLnBhdGggPz8gdG9QYXRoKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICAvLyBUaGUgYXJ0aWNsZSdzIGgxIGlzIHJlbmRlcmVkIGZyb20gYHRpdGxlYCBieSB0aGUgbGF5b3V0LCBzbyBzdHJpcCBhbnlcbiAgICAvLyBsZWFkaW5nIGgxIGluIHRoZSBib2R5IHRvIGF2b2lkIHR3byBoMXMgc2lkZS1ieS1zaWRlIChlc3BlY2lhbGx5IHdoZW5cbiAgICAvLyBhIGNvbnRlbnQgcGF0Y2ggb3ZlcnJpZGVzIHRoZSB0aXRsZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlXG4gICAgLy8gYm9keSdzIG93biBoZWFkaW5nKS5cbiAgICBjb25zdCBib2R5Q29udGVudCA9IHN0cmlwTGVhZGluZ0gxKGNvbnRlbnQpXG4gICAgY29uc3QgbWR4ID0gYXdhaXQgY29tcGlsZU1EWChcbiAgICAgIGNvbnRleHQsXG4gICAgICB7IC4uLmRvYywgY29udGVudDogYm9keUNvbnRlbnQgfSxcbiAgICAgIHtcbiAgICAgICAgcmVtYXJrUGx1Z2luczogW1xuICAgICAgICAgIHJlbWFya0dmbSxcbiAgICAgICAgICByZW1hcmtHZW1vamksXG4gICAgICAgICAgcmVtYXJrRGVmaW5pdGlvbkxpc3QsXG4gICAgICAgICAgcmVtYXJrRGVmbGlzdCxcbiAgICAgICAgICByZW1hcmtNYXRoLFxuICAgICAgICAgIHJlbWFya0RpcmVjdGl2ZSxcbiAgICAgICAgICByZW1hcmtDYWxsb3V0LFxuICAgICAgICAgIHJlbWFya0NhcmQsXG4gICAgICAgICAgcmVtYXJrQ29sdW1ucyxcbiAgICAgICAgICByZW1hcmtUYWIsXG4gICAgICAgICAgcmVtYXJrRGV0YWlscyxcbiAgICAgICAgICByZW1hcmtGaWxldHJlZSxcbiAgICAgICAgICByZW1hcmtJY29uLFxuICAgICAgICAgIHJlbWFya0JhZGdlLFxuICAgICAgICAgIHJlbWFya0J1dHRvbixcbiAgICAgICAgICByZW1hcmtBYmJyLFxuICAgICAgICAgIHJlbWFya0dpdGh1YkNhbGxvdXQsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVtYXJrSW1hZ2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGVQYXRoOiByZXNvbHZlKGNvbmZpZy5yb290LCBkb2MuX21ldGEuZmlsZVBhdGgpLFxuICAgICAgICAgICAgICByb290OiBjb25maWcucm9vdCxcbiAgICAgICAgICAgICAgYmFzZTogY29uZmlnLmJhc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVtYXJrQW5zaSxcbiAgICAgICAgICByZW1hcmtNZXJtYWlkLFxuICAgICAgICAgIHJlbWFya01lZGlhLFxuICAgICAgICAgIHJlbWFya1RvYyxcbiAgICAgICAgICByZW1hcmtOcG0sXG4gICAgICAgICAgcmVtYXJrQ29kZVRhYnMsXG4gICAgICAgICAgcmVtYXJrU3RlcHMsXG4gICAgICAgICAgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkLFxuICAgICAgICAgIC8vIFJ1biBsYXN0OiBhbnl0aGluZyBzdGlsbCB0eXBlZCBhcyBhIGRpcmVjdGl2ZSBhZnRlciBldmVyeSBoYW5kbGVyXG4gICAgICAgICAgLy8gYWJvdmUgaXMgdW5pbnRlbmRlZCAoZS5nLiBgMy4yOjFgLCBgcG9ydDo4MDgwYCkg4oCUIHBhc3N0aHJvdWdoIGFzXG4gICAgICAgICAgLy8gcGxhaW4gdGV4dCBzbyBpdCBkb2Vzbid0IHJlbmRlciBhcyBhbiBlbXB0eSBzcGFuL2Rpdi5cbiAgICAgICAgICByZW1hcmtQYXNzdGhyb3VnaERpcmVjdGl2ZSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVoeXBlUGx1Z2luczogW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlaHlwZVNoaWtpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aGVtZXM6IHtcbiAgICAgICAgICAgICAgICBsaWdodDogY29uZmlnLmNvZGVUaGVtZUxpZ2h0LFxuICAgICAgICAgICAgICAgIGRhcms6IGNvbmZpZy5jb2RlVGhlbWVEYXJrLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBBIGZlbmNlIHdpdGggbm8gb3IgYW4gdW5rbm93biBsYW5nIGlzIG90aGVyd2lzZSBza2lwcGVkIGJ5IFNoaWtpIGFuZFxuICAgICAgICAgICAgICAvLyByZW5kZXJzIHdpdGhvdXQgbGluZSBwYWRkaW5nLCB0aGVtZSBjb2xvdXJzIG9yIHRyYW5zZm9ybWVycy5cbiAgICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgZmFsbGJhY2tMYW5ndWFnZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgIC8vIFdpdGhvdXQgYGxhbmdzYCwgU2hpa2kgY29tcGlsZXMgYWxsIH4zNjAgYnVuZGxlZCBncmFtbWFycyB1cCBmcm9udCAofjQgcykuXG4gICAgICAgICAgICAgIC8vIGBsYXp5YCBjb3ZlcnMgZmVuY2VzIGEgcmVtYXJrIHBsdWdpbiBnZW5lcmF0ZXMsIHdoaWNoIHRoZSBzY2FuIGNhbm5vdCBzZWUuXG4gICAgICAgICAgICAgIGxhbmdzOiBhd2FpdCBjb2xsZWN0RmVuY2VMYW5ndWFnZXMoYm9keUNvbnRlbnQpLFxuICAgICAgICAgICAgICBsYXp5OiB0cnVlLFxuICAgICAgICAgICAgICAvLyBEYXJrZW4gY2F0cHB1Y2Npbi1sYXR0ZSdzIGdyZWVuICh0aGUgY29sb3VyIHVzZWQgZm9yIHN0cmluZ3MgYW5kXG4gICAgICAgICAgICAgIC8vIHNvbWUgY29tbWVudHMpIOKAlCB0aGUgdGhlbWUgZGVmYXVsdCAjNDBBMDJCIGxhbmRzIGF0IDMuMjoxIG9uIHRoZVxuICAgICAgICAgICAgICAvLyBjb2RlLWJsb2NrIGJhY2tncm91bmQsIGJlbG93IHRoZSBXQ0FHIEFBIDQuNToxIHRocmVzaG9sZC5cbiAgICAgICAgICAgICAgY29sb3JSZXBsYWNlbWVudHM6IHtcbiAgICAgICAgICAgICAgICBcImNhdHBwdWNjaW4tbGF0dGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCIjNDBhMDJiXCI6IFwiIzJhN2UxNlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyVHdvc2xhc2goeyBleHBsaWNpdFRyaWdnZXI6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJJY29uKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJOb3RhdGlvbnMoKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQoKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyc2VNZXRhU3RyaW5nOiAobWV0YTogc3RyaW5nKSA9PiAoeyBcImRhdGEtbWV0YVwiOiBtZXRhIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlaHlwZUlubGluZUNvZGUsXG4gICAgICAgICAgcmVoeXBlU2x1ZyxcbiAgICAgICAgICByZWh5cGVLYXRleCxcbiAgICAgICAgICByZWh5cGVUYXNrTGlzdEExMXksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIClcbiAgICBjb25zdCB0b2NJdGVtcyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXh0cmFjdFNlYXJjaFRleHQoY29udGVudClcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IGxhc3RVcGRhdGVkQnlGaWxlLmdldChkb2MuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgaW1hZ2UgPSBkb2MuaW1hZ2VcbiAgICAgID8gcmVzb2x2ZUFzc2V0UGF0aChkb2MuaW1hZ2UsIGZpbGVQYXRoLCBjb25maWcucm9vdCwgY29uZmlnLmJhc2UpXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICAuLi5kb2MsXG4gICAgICBmaWxlOiBkb2MuX21ldGEuZmlsZVBhdGgsXG4gICAgICBsYXN0VXBkYXRlZCxcbiAgICAgIGltYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBpY29uLFxuICAgICAgcGF0aCxcbiAgICAgIHRvY0l0ZW1zLFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIG1keCxcbiAgICB9XG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRzZ28gcGlja3Mgd3Jvbmcgb3ZlcmxvYWQgd2hlbiByZWh5cGUtc2x1ZyBhdWdtZW50cyB1bmlmaWVkIHR5cGVzXG4gIGNvbnRlbnQ6IFthcnRpY2xlc10sXG59KVxuIl19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxPQUFPLE1BQU0sdUJBQXVCLENBQUE7QUFDM0MsT0FB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QVMsQ0FBQTtRQUNiLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVc7WUFDWCxLQUFLO1lBQ0wsS0FBSztZQUNMLElBQUk7WUFDSixJQUFJO1lBQ0osUUFBUTtZQUNSLFVBQVU7WUFDVixHQUFHO1NBQ0osQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLFlBQVksQ0FBQztJQUMxQixxRkFBcUY7SUFDckYsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQ3BCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGJhc2VuYW1lLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgREVGQVVMVF9FWENMVURFUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGRlZmluZUNvbGxlY3Rpb24sIGRlZmluZUNvbmZpZyB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9jb3JlXCJcbmltcG9ydCB7IGNvbXBpbGVNRFggfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvbWR4XCJcbmltcG9ydCByZWh5cGVTaGlraSBmcm9tIFwiQHNoaWtpanMvcmVoeXBlXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVyVHdvc2xhc2ggfSBmcm9tIFwiQHNoaWtpanMvdHdvc2xhc2hcIlxuaW1wb3J0IHJlaHlwZUthdGV4IGZyb20gXCJyZWh5cGUta2F0ZXhcIlxuaW1wb3J0IHJlaHlwZVNsdWcgZnJvbSBcInJlaHlwZS1zbHVnXCJcbmltcG9ydCByZW1hcmtEZWZpbml0aW9uTGlzdCBmcm9tIFwicmVtYXJrLWRlZmluaXRpb24tbGlzdFwiXG5pbXBvcnQgcmVtYXJrRGlyZWN0aXZlIGZyb20gXCJyZW1hcmstZGlyZWN0aXZlXCJcbmltcG9ydCByZW1hcmtHZW1vamkgZnJvbSBcInJlbWFyay1nZW1vamlcIlxuaW1wb3J0IHJlbWFya0dmbSBmcm9tIFwicmVtYXJrLWdmbVwiXG5pbXBvcnQgcmVtYXJrTWF0aCBmcm9tIFwicmVtYXJrLW1hdGhcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgYnVpbGRDaGFuZ2Vsb2csIGNhY2hlSW5jbHVkZUdsb2IgfSBmcm9tIFwiLi9hY3Rpb25zL2NoYW5nZWxvZy9idWlsZC50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHNsdWdpZnkgZnJvbSBcIkBzaW5kcmVzb3JodXMvc2x1Z2lmeVwiXG5pbXBvcnQgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkIGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWN1c3RvbS1oZWFkaW5nLWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYWxsb3V0LnRzXCJcbmltcG9ydCB7IHJlbWFya0NhcmQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYXJkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvbHVtbnMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jb2x1bW5zLnRzXCJcbmltcG9ydCB7IHJlbWFya1RhYiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRhYi50c1wiXG5pbXBvcnQgeyByZW1hcmtCYWRnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJhZGdlLnRzXCJcbmltcG9ydCB7IHJlbWFya0J1dHRvbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJ1dHRvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtBYmJyIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstYWJici50c1wiXG5pbXBvcnQgeyByZW1hcmtEZWZsaXN0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGVmbGlzdC50c1wiXG5pbXBvcnQgeyByZW1hcmtEZXRhaWxzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGV0YWlscy50c1wiXG5pbXBvcnQgeyByZW1hcmtGaWxldHJlZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWZpbGV0cmVlLnRzXCJcbmltcG9ydCB7IHJlbWFya0ljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pY29uLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvZGVUYWJzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29kZS10YWJzLnRzXCJcbmltcG9ydCB7IHJlbWFya0dpdGh1YkNhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1naXRodWItY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtJbWFnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWltYWdlLnRzXCJcbmltcG9ydCB7IHJlbWFya01lZGlhIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstbWVkaWEudHNcIlxuaW1wb3J0IHsgcmVtYXJrQW5zaSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFuc2kudHNcIlxuaW1wb3J0IHsgcmVtYXJrTWVybWFpZCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lcm1haWQudHNcIlxuaW1wb3J0IHsgcmVtYXJrVG9jIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstdG9jLnRzXCJcbmltcG9ydCB7IHJlbWFya05wbSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW5wbS50c1wiXG5pbXBvcnQgeyByZW1hcmtTdGVwcyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXN0ZXBzLnRzXCJcbmltcG9ydCB7IHJlbWFya1Bhc3N0aHJvdWdoRGlyZWN0aXZlIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstcGFzc3Rocm91Z2gtZGlyZWN0aXZlLnRzXCJcbmltcG9ydCB7XG4gIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCxcbiAgdHJhbnNmb3JtZXJOb3RhdGlvbnMsXG59IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktbGluZS1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgcmVoeXBlSW5saW5lQ29kZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzXCJcbmltcG9ydCB7IHJlaHlwZVRhc2tMaXN0QTExeSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVySWNvbiB9IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktaWNvbi50c1wiXG5pbXBvcnQgeyByZXNvbHZlQXNzZXRQYXRoIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUluY2x1ZGVzIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWluY2x1ZGVzLnRzXCJcbmltcG9ydCB7IGNvbGxlY3RGZW5jZUxhbmd1YWdlcyB9IGZyb20gXCIuL2hlbHBlcnMvZmVuY2UtbGFuZ3VhZ2VzLnRzXCJcbmltcG9ydCB7IGV4dHJhY3RTZWFyY2hUZXh0IH0gZnJvbSBcIi4vaGVscGVycy9zZWFyY2gtdGV4dC50c1wiXG5pbXBvcnQgeyBzdHJpcExlYWRpbmdIMSB9IGZyb20gXCIuL2hlbHBlcnMvbGxtcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vaGVscGVycy90b2MudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcblxuY29uc3QgY2hhbmdlbG9nU2VjdGlvbnMgPSBjb25maWcuc2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIikgPz8gW11cbmZvciAoY29uc3Qgc2VjdGlvbiBvZiBjaGFuZ2Vsb2dTZWN0aW9ucykge1xuICBhd2FpdCBidWlsZENoYW5nZWxvZyhzZWN0aW9uLCBjb25maWcpXG59XG5cbmNvbnN0IGNvbmZpZ0luY2x1ZGUgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pbmNsdWRlKSA/IGNvbmZpZy5pbmNsdWRlIDogW2NvbmZpZy5pbmNsdWRlXVxuY29uc3QgaW5jbHVkZSA9IFtcbiAgLi4uY29uZmlnSW5jbHVkZSxcbiAgLi4uY2hhbmdlbG9nU2VjdGlvbnMubWFwKHNlY3Rpb24gPT4gY2FjaGVJbmNsdWRlR2xvYihzZWN0aW9uLCBjb25maWcpKSxcbl1cblxuY29uc3QgdXNlckV4Y2x1ZGUgPSBjb25maWcuZXhjbHVkZVxuICA/IEFycmF5LmlzQXJyYXkoY29uZmlnLmV4Y2x1ZGUpXG4gICAgPyBjb25maWcuZXhjbHVkZVxuICAgIDogW2NvbmZpZy5leGNsdWRlXVxuICA6IFtdXG4vLyBXaGVuIHRoZSBjb25zdW1lciBkb2Vzbid0IGhhdmUgYSAuZ2l0aWdub3JlLCBmYWxsIGJhY2sgdG8gYSBzZW5zaWJsZVxuLy8gZmxvb3Igc28gYCoqLyoubWRgIGRvZXNuJ3Qgc3dlZXAgdXAgZXZlcnkgUkVBRE1FLm1kIHVuZGVyIG5vZGVfbW9kdWxlcyxcbi8vIGJ1aWxkIG91dHB1dHMsIGV0Yy4gV2l0aCBhIC5naXRpZ25vcmUgcHJlc2VudCB3ZSB0cnVzdCB0aGUgdXNlci5cbmNvbnN0IGhhc0dpdGlnbm9yZSA9IGV4aXN0c1N5bmMocmVzb2x2ZShjb25maWcucm9vdCwgXCIuZ2l0aWdub3JlXCIpKVxuY29uc3QgZGVmYXVsdEV4Y2x1ZGUgPSBoYXNHaXRpZ25vcmUgPyBbXSA6IFsuLi5ERUZBVUxUX0VYQ0xVREVTXVxuY29uc3QgZXhjbHVkZSA9IFsuLi5kZWZhdWx0RXhjbHVkZSwgLi4udXNlckV4Y2x1ZGVdXG5cbi8vIGNvbnRlbnQtY29sbGVjdGlvbnMgY29tcGlsZXMgdGhpcyBmaWxlIHRvIC5jb250ZW50LWNvbGxlY3Rpb25zL2NhY2hlLztcbi8vIGdvaW5nIHVwIDIgbGV2ZWxzIHJlY29uc3RydWN0cyB0aGUgYmFzZURpcmVjdG9yeSBpdCB1c2VzIGZvciBwYXRoIHJlc29sdXRpb25cbmNvbnN0IGJhc2VEaXIgPSByZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLi5cIilcbmNvbnN0IGRpcmVjdG9yeSA9IHJlbGF0aXZlKGJhc2VEaXIsIGNvbmZpZy5yb290KSB8fCBcIi5cIlxuXG5mdW5jdGlvbiB0b1BhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICBjb25zdCBuYW1lID0gYmFzZW5hbWUoZmlsZVBhdGgpLnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIilcbiAgcmV0dXJuIHNsdWdpZnkobmFtZSlcbn1cblxuY29uc3QgbGFzdFVwZGF0ZWRCeUZpbGUgPSByZWFkTGFzdFVwZGF0ZWREYXRlcygpXG5cbi8vIE9uZSBgZ2l0IGxvZ2AgZm9yIGV2ZXJ5IGZpbGU6IGEgc3Bhd24gcGVyIGFydGljbGUgYmxvY2tzIHRoZSBidWlsZCB+MzAgbXMgZWFjaCwgYW5kXG4vLyBpc24ndCBjYWNoZWQgYWNyb3NzIGJ1aWxkcyBsaWtlIHRoZSBNRFggaXMuXG5mdW5jdGlvbiByZWFkTGFzdFVwZGF0ZWREYXRlcygpIHtcbiAgY29uc3QgZGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpXG4gIHRyeSB7XG4gICAgY29uc3QgbG9nID0gZXhlY0ZpbGVTeW5jKFxuICAgICAgXCJnaXRcIixcbiAgICAgIFtcbiAgICAgICAgXCItY1wiLFxuICAgICAgICBcImNvcmUucXVvdGVQYXRoPWZhbHNlXCIsXG4gICAgICAgIFwibG9nXCIsXG4gICAgICAgIFwiLS1mb3JtYXQ9JXgwMCVjSVwiLFxuICAgICAgICBcIi0tbmFtZS1vbmx5XCIsXG4gICAgICAgIFwiLS1yZWxhdGl2ZVwiLFxuICAgICAgXSxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBjb25maWcucm9vdCxcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgbWF4QnVmZmVyOiAyNTYgKiAxMDI0ICogMTAyNCxcbiAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJpZ25vcmVcIl0sXG4gICAgICB9LFxuICAgIClcbiAgICBsZXQgZGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxvZy5zcGxpdChcIlxcblwiKSkge1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChcIlxcMFwiKSkgZGF0ZSA9IGxpbmUuc2xpY2UoMSlcbiAgICAgIGVsc2UgaWYgKGxpbmUgJiYgZGF0ZSAmJiAhZGF0ZXMuaGFzKGxpbmUpKSBkYXRlcy5zZXQobGluZSwgZGF0ZSlcbiAgICB9XG4gICAgcmV0dXJuIGRhdGVzXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBkYXRlc1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUaXRsZShjb250ZW50OiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eI1xccysoLispJC9tLmV4ZWMoY29udGVudClcbiAgaWYgKG1hdGNoKSByZXR1cm4gbWF0Y2hbMV0hXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgLnBvcCgpXG4gICAgICA/LnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIikgPz8gcGF0aFxuICApXG59XG5cbmNvbnN0IGFydGljbGVzID0gZGVmaW5lQ29sbGVjdGlvbih7XG4gIG5hbWU6IFwiYXJ0aWNsZXNcIixcbiAgZGlyZWN0b3J5LFxuICBpbmNsdWRlLFxuICBleGNsdWRlLFxuICBzY2hlbWE6IEFydGljbGUsXG4gIHRyYW5zZm9ybTogYXN5bmMgKGRvY3VtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcGF0Y2ggPSBjb25maWcucGF0Y2hlcz8uZmluZChwID0+IHAuZmlsZSA9PT0gZG9jdW1lbnQuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgZG9jID0gcGF0Y2ggPyB7IC4uLmRvY3VtZW50LCAuLi5wYXRjaC5hcnRpY2xlIH0gOiBkb2N1bWVudFxuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZXNvbHZlSW5jbHVkZXMoZG9jLmNvbnRlbnQsIGZpbGVQYXRoKVxuICAgIGNvbnN0IHRpdGxlID0gZG9jLnRpdGxlID8/IGV4dHJhY3RUaXRsZShjb250ZW50LCBkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBpY29uID0gZG9jLmljb25cbiAgICBjb25zdCBwYXRoID0gZG9jLnBhdGggPz8gdG9QYXRoKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICAvLyBUaGUgYXJ0aWNsZSdzIGgxIGlzIHJlbmRlcmVkIGZyb20gYHRpdGxlYCBieSB0aGUgbGF5b3V0LCBzbyBzdHJpcCBhbnlcbiAgICAvLyBsZWFkaW5nIGgxIGluIHRoZSBib2R5IHRvIGF2b2lkIHR3byBoMXMgc2lkZS1ieS1zaWRlIChlc3BlY2lhbGx5IHdoZW5cbiAgICAvLyBhIGNvbnRlbnQgcGF0Y2ggb3ZlcnJpZGVzIHRoZSB0aXRsZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlXG4gICAgLy8gYm9keSdzIG93biBoZWFkaW5nKS5cbiAgICBjb25zdCBib2R5Q29udGVudCA9IHN0cmlwTGVhZGluZ0gxKGNvbnRlbnQpXG4gICAgY29uc3QgbWR4ID0gYXdhaXQgY29tcGlsZU1EWChcbiAgICAgIGNvbnRleHQsXG4gICAgICB7IC4uLmRvYywgY29udGVudDogYm9keUNvbnRlbnQgfSxcbiAgICAgIHtcbiAgICAgICAgcmVtYXJrUGx1Z2luczogW1xuICAgICAgICAgIHJlbWFya0dmbSxcbiAgICAgICAgICByZW1hcmtHZW1vamksXG4gICAgICAgICAgcmVtYXJrRGVmaW5pdGlvbkxpc3QsXG4gICAgICAgICAgcmVtYXJrRGVmbGlzdCxcbiAgICAgICAgICByZW1hcmtNYXRoLFxuICAgICAgICAgIHJlbWFya0RpcmVjdGl2ZSxcbiAgICAgICAgICByZW1hcmtDYWxsb3V0LFxuICAgICAgICAgIHJlbWFya0NhcmQsXG4gICAgICAgICAgcmVtYXJrQ29sdW1ucyxcbiAgICAgICAgICByZW1hcmtUYWIsXG4gICAgICAgICAgcmVtYXJrRGV0YWlscyxcbiAgICAgICAgICByZW1hcmtGaWxldHJlZSxcbiAgICAgICAgICByZW1hcmtJY29uLFxuICAgICAgICAgIHJlbWFya0JhZGdlLFxuICAgICAgICAgIHJlbWFya0J1dHRvbixcbiAgICAgICAgICByZW1hcmtBYmJyLFxuICAgICAgICAgIHJlbWFya0dpdGh1YkNhbGxvdXQsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVtYXJrSW1hZ2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGVQYXRoOiByZXNvbHZlKGNvbmZpZy5yb290LCBkb2MuX21ldGEuZmlsZVBhdGgpLFxuICAgICAgICAgICAgICByb290OiBjb25maWcucm9vdCxcbiAgICAgICAgICAgICAgYmFzZTogY29uZmlnLmJhc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVtYXJrQW5zaSxcbiAgICAgICAgICByZW1hcmtNZXJtYWlkLFxuICAgICAgICAgIHJlbWFya01lZGlhLFxuICAgICAgICAgIHJlbWFya1RvYyxcbiAgICAgICAgICByZW1hcmtOcG0sXG4gICAgICAgICAgcmVtYXJrQ29kZVRhYnMsXG4gICAgICAgICAgcmVtYXJrU3RlcHMsXG4gICAgICAgICAgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkLFxuICAgICAgICAgIC8vIFJ1biBsYXN0OiBhbnl0aGluZyBzdGlsbCB0eXBlZCBhcyBhIGRpcmVjdGl2ZSBhZnRlciBldmVyeSBoYW5kbGVyXG4gICAgICAgICAgLy8gYWJvdmUgaXMgdW5pbnRlbmRlZCAoZS5nLiBgMy4yOjFgLCBgcG9ydDo4MDgwYCkg4oCUIHBhc3N0aHJvdWdoIGFzXG4gICAgICAgICAgLy8gcGxhaW4gdGV4dCBzbyBpdCBkb2Vzbid0IHJlbmRlciBhcyBhbiBlbXB0eSBzcGFuL2Rpdi5cbiAgICAgICAgICByZW1hcmtQYXNzdGhyb3VnaERpcmVjdGl2ZSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVoeXBlUGx1Z2luczogW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlaHlwZVNoaWtpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aGVtZXM6IHtcbiAgICAgICAgICAgICAgICBsaWdodDogY29uZmlnLmNvZGVUaGVtZUxpZ2h0LFxuICAgICAgICAgICAgICAgIGRhcms6IGNvbmZpZy5jb2RlVGhlbWVEYXJrLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBBIGZlbmNlIHdpdGggbm8gb3IgYW4gdW5rbm93biBsYW5nIGlzIG90aGVyd2lzZSBza2lwcGVkIGJ5IFNoaWtpIGFuZFxuICAgICAgICAgICAgICAvLyByZW5kZXJzIHdpdGhvdXQgbGluZSBwYWRkaW5nLCB0aGVtZSBjb2xvdXJzIG9yIHRyYW5zZm9ybWVycy5cbiAgICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgZmFsbGJhY2tMYW5ndWFnZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgIC8vIFdpdGhvdXQgYGxhbmdzYCwgU2hpa2kgY29tcGlsZXMgYWxsIH4zNjAgYnVuZGxlZCBncmFtbWFycyB1cCBmcm9udCAofjQgcykuXG4gICAgICAgICAgICAgIC8vIGBsYXp5YCBjb3ZlcnMgZmVuY2VzIGEgcmVtYXJrIHBsdWdpbiBnZW5lcmF0ZXMsIHdoaWNoIHRoZSBzY2FuIGNhbm5vdCBzZWUuXG4gICAgICAgICAgICAgIGxhbmdzOiBhd2FpdCBjb2xsZWN0RmVuY2VMYW5ndWFnZXMoYm9keUNvbnRlbnQpLFxuICAgICAgICAgICAgICBsYXp5OiB0cnVlLFxuICAgICAgICAgICAgICAvLyBEYXJrZW4gY2F0cHB1Y2Npbi1sYXR0ZSdzIGdyZWVuICh0aGUgY29sb3VyIHVzZWQgZm9yIHN0cmluZ3MgYW5kXG4gICAgICAgICAgICAgIC8vIHNvbWUgY29tbWVudHMpIOKAlCB0aGUgdGhlbWUgZGVmYXVsdCAjNDBBMDJCIGxhbmRzIGF0IDMuMjoxIG9uIHRoZVxuICAgICAgICAgICAgICAvLyBjb2RlLWJsb2NrIGJhY2tncm91bmQsIGJlbG93IHRoZSBXQ0FHIEFBIDQuNToxIHRocmVzaG9sZC5cbiAgICAgICAgICAgICAgY29sb3JSZXBsYWNlbWVudHM6IHtcbiAgICAgICAgICAgICAgICBcImNhdHBwdWNjaW4tbGF0dGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCIjNDBhMDJiXCI6IFwiIzJhN2UxNlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyVHdvc2xhc2goeyBleHBsaWNpdFRyaWdnZXI6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJJY29uKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJOb3RhdGlvbnMoKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQoKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyc2VNZXRhU3RyaW5nOiAobWV0YTogc3RyaW5nKSA9PiAoeyBcImRhdGEtbWV0YVwiOiBtZXRhIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlaHlwZUlubGluZUNvZGUsXG4gICAgICAgICAgcmVoeXBlU2x1ZyxcbiAgICAgICAgICByZWh5cGVLYXRleCxcbiAgICAgICAgICByZWh5cGVUYXNrTGlzdEExMXksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIClcbiAgICBjb25zdCB0b2NJdGVtcyA9IGV4dHJhY3RUb2MoYm9keUNvbnRlbnQpXG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IGV4dHJhY3RTZWFyY2hUZXh0KGNvbnRlbnQpXG4gICAgY29uc3QgbGFzdFVwZGF0ZWQgPSBsYXN0VXBkYXRlZEJ5RmlsZS5nZXQoZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGltYWdlID0gZG9jLmltYWdlXG4gICAgICA/IHJlc29sdmVBc3NldFBhdGgoZG9jLmltYWdlLCBmaWxlUGF0aCwgY29uZmlnLnJvb3QsIGNvbmZpZy5iYXNlKVxuICAgICAgOiB1bmRlZmluZWRcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZG9jLFxuICAgICAgZmlsZTogZG9jLl9tZXRhLmZpbGVQYXRoLFxuICAgICAgbGFzdFVwZGF0ZWQsXG4gICAgICBpbWFnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgaWNvbixcbiAgICAgIHBhdGgsXG4gICAgICB0b2NJdGVtcyxcbiAgICAgIHNlYXJjaFRleHQsXG4gICAgICBtZHgsXG4gICAgfVxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciB0c2dvIHBpY2tzIHdyb25nIG92ZXJsb2FkIHdoZW4gcmVoeXBlLXNsdWcgYXVnbWVudHMgdW5pZmllZCB0eXBlc1xuICBjb250ZW50OiBbYXJ0aWNsZXNdLFxufSlcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ /** The module and every file it reaches through relative imports, as absolute paths. */
2
+ export declare function collectLocalImports(entry: string): string[];
@@ -0,0 +1,20 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ // Enough for this repo's own source, which always imports by full relative path.
4
+ const RELATIVE_IMPORT = /(?:from|import)\s*["'](\.{1,2}\/[^"']+)["']/g;
5
+ /** The module and every file it reaches through relative imports, as absolute paths. */
6
+ export function collectLocalImports(entry) {
7
+ const seen = new Set();
8
+ const queue = [resolve(entry)];
9
+ for (const file of queue) {
10
+ if (seen.has(file) || !existsSync(file))
11
+ continue;
12
+ seen.add(file);
13
+ for (const [, specifier] of readFileSync(file, "utf8").matchAll(RELATIVE_IMPORT)) {
14
+ if (specifier)
15
+ queue.push(resolve(dirname(file), specifier));
16
+ }
17
+ }
18
+ return [...seen];
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL2xvY2FsLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFNUMsaUZBQWlGO0FBQ2pGLE1BQU0sZUFBZSxHQUFHLDhDQUE4QyxDQUFBO0FBRXRFLHdGQUF3RjtBQUN4RixNQUFNLFVBQVUsbUJBQW1CLENBQUMsS0FBYTtJQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQzlCLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDOUIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQUUsU0FBUTtRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2QsS0FBSyxNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ2pGLElBQUksU0FBUztnQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBkaXJuYW1lLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5cbi8vIEVub3VnaCBmb3IgdGhpcyByZXBvJ3Mgb3duIHNvdXJjZSwgd2hpY2ggYWx3YXlzIGltcG9ydHMgYnkgZnVsbCByZWxhdGl2ZSBwYXRoLlxuY29uc3QgUkVMQVRJVkVfSU1QT1JUID0gLyg/OmZyb218aW1wb3J0KVxccypbXCInXShcXC57MSwyfVxcL1teXCInXSspW1wiJ10vZ1xuXG4vKiogVGhlIG1vZHVsZSBhbmQgZXZlcnkgZmlsZSBpdCByZWFjaGVzIHRocm91Z2ggcmVsYXRpdmUgaW1wb3J0cywgYXMgYWJzb2x1dGUgcGF0aHMuICovXG5leHBvcnQgZnVuY3Rpb24gY29sbGVjdExvY2FsSW1wb3J0cyhlbnRyeTogc3RyaW5nKSB7XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKVxuICBjb25zdCBxdWV1ZSA9IFtyZXNvbHZlKGVudHJ5KV1cbiAgZm9yIChjb25zdCBmaWxlIG9mIHF1ZXVlKSB7XG4gICAgaWYgKHNlZW4uaGFzKGZpbGUpIHx8ICFleGlzdHNTeW5jKGZpbGUpKSBjb250aW51ZVxuICAgIHNlZW4uYWRkKGZpbGUpXG4gICAgZm9yIChjb25zdCBbLCBzcGVjaWZpZXJdIG9mIHJlYWRGaWxlU3luYyhmaWxlLCBcInV0ZjhcIikubWF0Y2hBbGwoUkVMQVRJVkVfSU1QT1JUKSkge1xuICAgICAgaWYgKHNwZWNpZmllcikgcXVldWUucHVzaChyZXNvbHZlKGRpcm5hbWUoZmlsZSksIHNwZWNpZmllcikpXG4gICAgfVxuICB9XG4gIHJldHVybiBbLi4uc2Vlbl1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ import fs from "node:fs";
2
+ import { join } from "node:path";
3
+ import { temporaryDirectoryTask } from "tempy";
4
+ import { describe, expect, it } from "vite-plus/test";
5
+ import { collectLocalImports } from "./local-imports.js";
6
+ describe("collectLocalImports", () => {
7
+ it("should follow relative imports transitively and skip packages", () => temporaryDirectoryTask(tmpDir => {
8
+ fs.mkdirSync(join(tmpDir, "lib"));
9
+ fs.writeFileSync(join(tmpDir, "entry.ts"), 'import { a } from "./lib/a.ts"\nimport { z } from "zod"\n');
10
+ fs.writeFileSync(join(tmpDir, "lib", "a.ts"), 'import "../b.ts"\nexport const a = 1\n');
11
+ fs.writeFileSync(join(tmpDir, "b.ts"), 'export * from "./entry.ts"\n');
12
+ expect(collectLocalImports(join(tmpDir, "entry.ts")).sort()).toEqual([
13
+ join(tmpDir, "b.ts"),
14
+ join(tmpDir, "entry.ts"),
15
+ join(tmpDir, "lib", "a.ts"),
16
+ ].sort());
17
+ }));
18
+ it("should skip imports that do not resolve to a file", () => temporaryDirectoryTask(tmpDir => {
19
+ fs.writeFileSync(join(tmpDir, "entry.ts"), 'import "./missing.ts"\n');
20
+ expect(collectLocalImports(join(tmpDir, "entry.ts"))).toEqual([
21
+ join(tmpDir, "entry.ts"),
22
+ ]);
23
+ }));
24
+ });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtaW1wb3J0cy51bml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvbG9jYWwtaW1wb3J0cy51bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV4RCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQ25DLEVBQUUsQ0FBQywrREFBK0QsRUFBRSxHQUFHLEVBQUUsQ0FDdkUsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDakMsRUFBRSxDQUFDLGFBQWEsQ0FDZCxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUN4QiwyREFBMkQsQ0FDNUQsQ0FBQTtRQUNELEVBQUUsQ0FBQyxhQUFhLENBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQzNCLHdDQUF3QyxDQUN6QyxDQUFBO1FBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLDhCQUE4QixDQUFDLENBQUE7UUFDdEUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FDbEU7WUFDRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7U0FDNUIsQ0FBQyxJQUFJLEVBQUUsQ0FDVCxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUVMLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUUsQ0FDM0Qsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDOUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLHlCQUF5QixDQUFDLENBQUE7UUFDckUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUM1RCxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztTQUN6QixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ1AsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgdGVtcG9yYXJ5RGlyZWN0b3J5VGFzayB9IGZyb20gXCJ0ZW1weVwiXG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgeyBjb2xsZWN0TG9jYWxJbXBvcnRzIH0gZnJvbSBcIi4vbG9jYWwtaW1wb3J0cy50c1wiXG5cbmRlc2NyaWJlKFwiY29sbGVjdExvY2FsSW1wb3J0c1wiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGZvbGxvdyByZWxhdGl2ZSBpbXBvcnRzIHRyYW5zaXRpdmVseSBhbmQgc2tpcCBwYWNrYWdlc1wiLCAoKSA9PlxuICAgIHRlbXBvcmFyeURpcmVjdG9yeVRhc2sodG1wRGlyID0+IHtcbiAgICAgIGZzLm1rZGlyU3luYyhqb2luKHRtcERpciwgXCJsaWJcIikpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICBqb2luKHRtcERpciwgXCJlbnRyeS50c1wiKSxcbiAgICAgICAgJ2ltcG9ydCB7IGEgfSBmcm9tIFwiLi9saWIvYS50c1wiXFxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxcbicsXG4gICAgICApXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICBqb2luKHRtcERpciwgXCJsaWJcIiwgXCJhLnRzXCIpLFxuICAgICAgICAnaW1wb3J0IFwiLi4vYi50c1wiXFxuZXhwb3J0IGNvbnN0IGEgPSAxXFxuJyxcbiAgICAgIClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoam9pbih0bXBEaXIsIFwiYi50c1wiKSwgJ2V4cG9ydCAqIGZyb20gXCIuL2VudHJ5LnRzXCJcXG4nKVxuICAgICAgZXhwZWN0KGNvbGxlY3RMb2NhbEltcG9ydHMoam9pbih0bXBEaXIsIFwiZW50cnkudHNcIikpLnNvcnQoKSkudG9FcXVhbChcbiAgICAgICAgW1xuICAgICAgICAgIGpvaW4odG1wRGlyLCBcImIudHNcIiksXG4gICAgICAgICAgam9pbih0bXBEaXIsIFwiZW50cnkudHNcIiksXG4gICAgICAgICAgam9pbih0bXBEaXIsIFwibGliXCIsIFwiYS50c1wiKSxcbiAgICAgICAgXS5zb3J0KCksXG4gICAgICApXG4gICAgfSkpXG5cbiAgaXQoXCJzaG91bGQgc2tpcCBpbXBvcnRzIHRoYXQgZG8gbm90IHJlc29sdmUgdG8gYSBmaWxlXCIsICgpID0+XG4gICAgdGVtcG9yYXJ5RGlyZWN0b3J5VGFzayh0bXBEaXIgPT4ge1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhqb2luKHRtcERpciwgXCJlbnRyeS50c1wiKSwgJ2ltcG9ydCBcIi4vbWlzc2luZy50c1wiXFxuJylcbiAgICAgIGV4cGVjdChjb2xsZWN0TG9jYWxJbXBvcnRzKGpvaW4odG1wRGlyLCBcImVudHJ5LnRzXCIpKSkudG9FcXVhbChbXG4gICAgICAgIGpvaW4odG1wRGlyLCBcImVudHJ5LnRzXCIpLFxuICAgICAgXSlcbiAgICB9KSlcbn0pXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import type { TocItem } from "../models/toc.ts";
2
- /** Extract TOC headings from raw markdown content */
2
+ /** Extract TOC headings from markdown content, with ids matching the rendered headings */
3
3
  export declare function extractToc(content: string): TocItem[];
@@ -1,41 +1,39 @@
1
- import GithubSlugger from "github-slugger";
1
+ import GithubSlugger, { slug as slugOnce } from "github-slugger";
2
+ import { toString } from "mdast-util-to-string";
3
+ import remarkGfm from "remark-gfm";
4
+ import remarkParse from "remark-parse";
5
+ import { unified } from "unified";
6
+ import { visit } from "unist-util-visit";
2
7
  const CUSTOM_ID_PATTERN = /\s*\[#([^\]]+)\]\s*$/;
3
8
  const TOC_HIDDEN_PATTERN = /\s*\[!toc\]\s*$/;
4
9
  const TOC_ONLY_PATTERN = /\s*\[toc\]\s*$/;
5
10
  const STEP_PATTERN = /\s*\[step\]\s*$/;
6
- /** Extract TOC headings from raw markdown content */
11
+ /** Extract TOC headings from markdown content, with ids matching the rendered headings */
7
12
  export function extractToc(content) {
13
+ const tree = unified().use(remarkParse).use(remarkGfm).parse(content);
8
14
  const slugger = new GithubSlugger();
9
15
  const items = [];
10
- const headingRegex = /^(#{2,4})\s+(.+)$/;
11
- const lines = content.split("\n");
12
- let inCodeBlock = false;
13
- for (const line of lines) {
14
- if (line.startsWith("```") || line.startsWith("````")) {
15
- inCodeBlock = !inCodeBlock;
16
- continue;
16
+ // rehype-slug numbers duplicates across every rendered heading, so hidden, step and
17
+ // out-of-range headings advance the slugger; `[toc]` ones are never rendered, so do not
18
+ visit(tree, "heading", node => {
19
+ const lastChild = node.children.at(-1);
20
+ const marker = lastChild?.type === "text" ? lastChild.value : "";
21
+ const isTocOnly = TOC_ONLY_PATTERN.test(marker);
22
+ const isHidden = TOC_HIDDEN_PATTERN.test(marker) || STEP_PATTERN.test(marker);
23
+ const customId = CUSTOM_ID_PATTERN.exec(marker)?.[1];
24
+ if (lastChild?.type === "text") {
25
+ lastChild.value = marker
26
+ .replace(CUSTOM_ID_PATTERN, "")
27
+ .replace(TOC_ONLY_PATTERN, "")
28
+ .replace(TOC_HIDDEN_PATTERN, "")
29
+ .replace(STEP_PATTERN, "");
17
30
  }
18
- if (inCodeBlock)
19
- continue;
20
- const match = headingRegex.exec(line);
21
- if (!match)
22
- continue;
23
- const depth = match[1].length;
24
- const rawTitle = match[2];
25
- if (TOC_HIDDEN_PATTERN.test(rawTitle))
26
- continue;
27
- if (STEP_PATTERN.test(rawTitle))
28
- continue;
29
- const idMatch = CUSTOM_ID_PATTERN.exec(rawTitle);
30
- const title = rawTitle
31
- .replace(CUSTOM_ID_PATTERN, "")
32
- .replace(TOC_ONLY_PATTERN, "")
33
- .replace(STEP_PATTERN, "")
34
- .replace(/\*\*(.+?)\*\*/g, "$1")
35
- .replace(/`(.+?)`/g, "$1");
36
- const slug = idMatch?.[1] ?? slugger.slug(title);
37
- items.push({ url: `#${slug}`, title, depth });
38
- }
31
+ const title = toString(node).trim();
32
+ const slug = customId ?? (isTocOnly ? slugOnce(title) : slugger.slug(title));
33
+ if (isHidden || node.depth < 2 || node.depth > 4)
34
+ return;
35
+ items.push({ url: `#${slug}`, title, depth: node.depth });
36
+ });
39
37
  return items;
40
38
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvdG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSxNQUFNLGdCQUFnQixDQUFBO0FBRzFDLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQUE7QUFDaEQsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQTtBQUM1QyxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFBO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFBO0FBRXRDLHFEQUFxRDtBQUNyRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWU7SUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQTtJQUNuQyxNQUFNLEtBQUssR0FBYyxFQUFFLENBQUE7SUFDM0IsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUE7SUFDeEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNqQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUE7SUFFdkIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RELFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQTtZQUMxQixTQUFRO1FBQ1YsQ0FBQztRQUNELElBQUksV0FBVztZQUFFLFNBQVE7UUFFekIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsS0FBSztZQUFFLFNBQVE7UUFFcEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBRSxDQUFDLE1BQU0sQ0FBQTtRQUM5QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUE7UUFFMUIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQUUsU0FBUTtRQUMvQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQUUsU0FBUTtRQUV6QyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDaEQsTUFBTSxLQUFLLEdBQUcsUUFBUTthQUNuQixPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7YUFDN0IsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7YUFDekIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQzthQUMvQixPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQzVCLE1BQU0sSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFaEQsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2l0aHViU2x1Z2dlciBmcm9tIFwiZ2l0aHViLXNsdWdnZXJcIlxuaW1wb3J0IHR5cGUgeyBUb2NJdGVtIH0gZnJvbSBcIi4uL21vZGVscy90b2MudHNcIlxuXG5jb25zdCBDVVNUT01fSURfUEFUVEVSTiA9IC9cXHMqXFxbIyhbXlxcXV0rKVxcXVxccyokL1xuY29uc3QgVE9DX0hJRERFTl9QQVRURVJOID0gL1xccypcXFshdG9jXFxdXFxzKiQvXG5jb25zdCBUT0NfT05MWV9QQVRURVJOID0gL1xccypcXFt0b2NcXF1cXHMqJC9cbmNvbnN0IFNURVBfUEFUVEVSTiA9IC9cXHMqXFxbc3RlcFxcXVxccyokL1xuXG4vKiogRXh0cmFjdCBUT0MgaGVhZGluZ3MgZnJvbSByYXcgbWFya2Rvd24gY29udGVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RUb2MoY29udGVudDogc3RyaW5nKTogVG9jSXRlbVtdIHtcbiAgY29uc3Qgc2x1Z2dlciA9IG5ldyBHaXRodWJTbHVnZ2VyKClcbiAgY29uc3QgaXRlbXM6IFRvY0l0ZW1bXSA9IFtdXG4gIGNvbnN0IGhlYWRpbmdSZWdleCA9IC9eKCN7Miw0fSlcXHMrKC4rKSQvXG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChcIlxcblwiKVxuICBsZXQgaW5Db2RlQmxvY2sgPSBmYWxzZVxuXG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCJgYGBcIikgfHwgbGluZS5zdGFydHNXaXRoKFwiYGBgYFwiKSkge1xuICAgICAgaW5Db2RlQmxvY2sgPSAhaW5Db2RlQmxvY2tcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChpbkNvZGVCbG9jaykgY29udGludWVcblxuICAgIGNvbnN0IG1hdGNoID0gaGVhZGluZ1JlZ2V4LmV4ZWMobGluZSlcbiAgICBpZiAoIW1hdGNoKSBjb250aW51ZVxuXG4gICAgY29uc3QgZGVwdGggPSBtYXRjaFsxXSEubGVuZ3RoXG4gICAgY29uc3QgcmF3VGl0bGUgPSBtYXRjaFsyXSFcblxuICAgIGlmIChUT0NfSElEREVOX1BBVFRFUk4udGVzdChyYXdUaXRsZSkpIGNvbnRpbnVlXG4gICAgaWYgKFNURVBfUEFUVEVSTi50ZXN0KHJhd1RpdGxlKSkgY29udGludWVcblxuICAgIGNvbnN0IGlkTWF0Y2ggPSBDVVNUT01fSURfUEFUVEVSTi5leGVjKHJhd1RpdGxlKVxuICAgIGNvbnN0IHRpdGxlID0gcmF3VGl0bGVcbiAgICAgIC5yZXBsYWNlKENVU1RPTV9JRF9QQVRURVJOLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoVE9DX09OTFlfUEFUVEVSTiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFNURVBfUEFUVEVSTiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKC9cXCpcXCooLis/KVxcKlxcKi9nLCBcIiQxXCIpXG4gICAgICAucmVwbGFjZSgvYCguKz8pYC9nLCBcIiQxXCIpXG4gICAgY29uc3Qgc2x1ZyA9IGlkTWF0Y2g/LlsxXSA/PyBzbHVnZ2VyLnNsdWcodGl0bGUpXG5cbiAgICBpdGVtcy5wdXNoKHsgdXJsOiBgIyR7c2x1Z31gLCB0aXRsZSwgZGVwdGggfSlcbiAgfVxuXG4gIHJldHVybiBpdGVtc1xufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2hlbHBlcnMvdG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSxFQUFFLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBR3hDLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQUE7QUFDaEQsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQTtBQUM1QyxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFBO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFBO0FBRXRDLDBGQUEwRjtBQUMxRixNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWU7SUFDeEMsTUFBTSxJQUFJLEdBQVMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQTtJQUNuQyxNQUFNLEtBQUssR0FBYyxFQUFFLENBQUE7SUFFM0Isb0ZBQW9GO0lBQ3BGLHdGQUF3RjtJQUN4RixLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDaEUsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQy9DLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzdFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXBELElBQUksU0FBUyxFQUFFLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMvQixTQUFTLENBQUMsS0FBSyxHQUFHLE1BQU07aUJBQ3JCLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7aUJBQzlCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7aUJBQzdCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7aUJBQy9CLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNuQyxNQUFNLElBQUksR0FBRyxRQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBRTVFLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztZQUFFLE9BQU07UUFDeEQsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDM0QsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2l0aHViU2x1Z2dlciwgeyBzbHVnIGFzIHNsdWdPbmNlIH0gZnJvbSBcImdpdGh1Yi1zbHVnZ2VyXCJcbmltcG9ydCB0eXBlIHsgUm9vdCB9IGZyb20gXCJtZGFzdFwiXG5pbXBvcnQgeyB0b1N0cmluZyB9IGZyb20gXCJtZGFzdC11dGlsLXRvLXN0cmluZ1wiXG5pbXBvcnQgcmVtYXJrR2ZtIGZyb20gXCJyZW1hcmstZ2ZtXCJcbmltcG9ydCByZW1hcmtQYXJzZSBmcm9tIFwicmVtYXJrLXBhcnNlXCJcbmltcG9ydCB7IHVuaWZpZWQgfSBmcm9tIFwidW5pZmllZFwiXG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gXCJ1bmlzdC11dGlsLXZpc2l0XCJcbmltcG9ydCB0eXBlIHsgVG9jSXRlbSB9IGZyb20gXCIuLi9tb2RlbHMvdG9jLnRzXCJcblxuY29uc3QgQ1VTVE9NX0lEX1BBVFRFUk4gPSAvXFxzKlxcWyMoW15cXF1dKylcXF1cXHMqJC9cbmNvbnN0IFRPQ19ISURERU5fUEFUVEVSTiA9IC9cXHMqXFxbIXRvY1xcXVxccyokL1xuY29uc3QgVE9DX09OTFlfUEFUVEVSTiA9IC9cXHMqXFxbdG9jXFxdXFxzKiQvXG5jb25zdCBTVEVQX1BBVFRFUk4gPSAvXFxzKlxcW3N0ZXBcXF1cXHMqJC9cblxuLyoqIEV4dHJhY3QgVE9DIGhlYWRpbmdzIGZyb20gbWFya2Rvd24gY29udGVudCwgd2l0aCBpZHMgbWF0Y2hpbmcgdGhlIHJlbmRlcmVkIGhlYWRpbmdzICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRvYyhjb250ZW50OiBzdHJpbmcpOiBUb2NJdGVtW10ge1xuICBjb25zdCB0cmVlOiBSb290ID0gdW5pZmllZCgpLnVzZShyZW1hcmtQYXJzZSkudXNlKHJlbWFya0dmbSkucGFyc2UoY29udGVudClcbiAgY29uc3Qgc2x1Z2dlciA9IG5ldyBHaXRodWJTbHVnZ2VyKClcbiAgY29uc3QgaXRlbXM6IFRvY0l0ZW1bXSA9IFtdXG5cbiAgLy8gcmVoeXBlLXNsdWcgbnVtYmVycyBkdXBsaWNhdGVzIGFjcm9zcyBldmVyeSByZW5kZXJlZCBoZWFkaW5nLCBzbyBoaWRkZW4sIHN0ZXAgYW5kXG4gIC8vIG91dC1vZi1yYW5nZSBoZWFkaW5ncyBhZHZhbmNlIHRoZSBzbHVnZ2VyOyBgW3RvY11gIG9uZXMgYXJlIG5ldmVyIHJlbmRlcmVkLCBzbyBkbyBub3RcbiAgdmlzaXQodHJlZSwgXCJoZWFkaW5nXCIsIG5vZGUgPT4ge1xuICAgIGNvbnN0IGxhc3RDaGlsZCA9IG5vZGUuY2hpbGRyZW4uYXQoLTEpXG4gICAgY29uc3QgbWFya2VyID0gbGFzdENoaWxkPy50eXBlID09PSBcInRleHRcIiA/IGxhc3RDaGlsZC52YWx1ZSA6IFwiXCJcbiAgICBjb25zdCBpc1RvY09ubHkgPSBUT0NfT05MWV9QQVRURVJOLnRlc3QobWFya2VyKVxuICAgIGNvbnN0IGlzSGlkZGVuID0gVE9DX0hJRERFTl9QQVRURVJOLnRlc3QobWFya2VyKSB8fCBTVEVQX1BBVFRFUk4udGVzdChtYXJrZXIpXG4gICAgY29uc3QgY3VzdG9tSWQgPSBDVVNUT01fSURfUEFUVEVSTi5leGVjKG1hcmtlcik/LlsxXVxuXG4gICAgaWYgKGxhc3RDaGlsZD8udHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgIGxhc3RDaGlsZC52YWx1ZSA9IG1hcmtlclxuICAgICAgICAucmVwbGFjZShDVVNUT01fSURfUEFUVEVSTiwgXCJcIilcbiAgICAgICAgLnJlcGxhY2UoVE9DX09OTFlfUEFUVEVSTiwgXCJcIilcbiAgICAgICAgLnJlcGxhY2UoVE9DX0hJRERFTl9QQVRURVJOLCBcIlwiKVxuICAgICAgICAucmVwbGFjZShTVEVQX1BBVFRFUk4sIFwiXCIpXG4gICAgfVxuXG4gICAgY29uc3QgdGl0bGUgPSB0b1N0cmluZyhub2RlKS50cmltKClcbiAgICBjb25zdCBzbHVnID0gY3VzdG9tSWQgPz8gKGlzVG9jT25seSA/IHNsdWdPbmNlKHRpdGxlKSA6IHNsdWdnZXIuc2x1Zyh0aXRsZSkpXG5cbiAgICBpZiAoaXNIaWRkZW4gfHwgbm9kZS5kZXB0aCA8IDIgfHwgbm9kZS5kZXB0aCA+IDQpIHJldHVyblxuICAgIGl0ZW1zLnB1c2goeyB1cmw6IGAjJHtzbHVnfWAsIHRpdGxlLCBkZXB0aDogbm9kZS5kZXB0aCB9KVxuICB9KVxuXG4gIHJldHVybiBpdGVtc1xufVxuIl19
@@ -50,6 +50,28 @@ describe("extractToc", () => {
50
50
  { url: "#also-visible", title: "Also Visible", depth: 2 },
51
51
  ]);
52
52
  });
53
+ it("should render link and emphasis headings as plain text", () => {
54
+ const content = "## [0.6.0](https://github.com/o/r/compare/v0.5.0...v0.6.0) (2026-10-20)\n\n" +
55
+ "### *Bug* ~~Fixes~~";
56
+ const toc = extractToc(content);
57
+ expect(toc).toEqual([
58
+ { url: "#060-2026-10-20", title: "0.6.0 (2026-10-20)", depth: 2 },
59
+ { url: "#bug-fixes", title: "Bug Fixes", depth: 3 },
60
+ ]);
61
+ });
62
+ it("should number duplicate slugs counting hidden and h1 headings", () => {
63
+ const content = "# Features\n\n## Features [!toc]\n\n## Features\n\n### Features [step]\n\n## Features";
64
+ const toc = extractToc(content);
65
+ expect(toc).toEqual([
66
+ { url: "#features-2", title: "Features", depth: 2 },
67
+ { url: "#features-4", title: "Features", depth: 2 },
68
+ ]);
69
+ });
70
+ it("should ignore headings inside code fences", () => {
71
+ const content = "## Real\n\n```md\n## Fake\n```";
72
+ const toc = extractToc(content);
73
+ expect(toc).toEqual([{ url: "#real", title: "Real", depth: 2 }]);
74
+ });
53
75
  it("should include [toc] headings with annotation stripped from title", () => {
54
76
  const content = "## Regular\n\n## TOC Only [toc]\n\n## Another";
55
77
  const toc = extractToc(content);
@@ -60,4 +82,4 @@ describe("extractToc", () => {
60
82
  ]);
61
83
  });
62
84
  });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLnVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy90b2MudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXJDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7UUFDM0QsTUFBTSxPQUFPLEdBQUcsd0NBQXdDLENBQUE7UUFDeEQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUN6RCxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUNoRSxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwREFBMEQsRUFBRSxHQUFHLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsK0NBQStDLENBQUE7UUFDL0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNwRCxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1NB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QTtRQUMvQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2xCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDL0MsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNqRCxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1NBQ2hELENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vdG9jLnRzXCJcblxuZGVzY3JpYmUoXCJleHRyYWN0VG9jXCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgZXh0cmFjdCBoZWFkaW5ncyB3aXRoIGF1dG8tZ2VuZXJhdGVkIHNsdWdzXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIyBJbnRyb2R1Y3Rpb25cXG5cXG4jIyMgR2V0dGluZyBTdGFydGVkXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbXG4gICAgICB7IHVybDogXCIjaW50cm9kdWN0aW9uXCIsIHRpdGxlOiBcIkludHJvZHVjdGlvblwiLCBkZXB0aDogMiB9LFxuICAgICAgeyB1cmw6IFwiI2dldHRpbmctc3RhcnRlZFwiLCB0aXRsZTogXCJHZXR0aW5nIFN0YXJ0ZWRcIiwgZGVwdGg6IDMgfSxcbiAgICBdKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHVzZSBjdXN0b20gaWQgd2hlbiBbI2N1c3RvbS1pZF0gc3ludGF4IGlzIHByZXNlbnRcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBcIiMjIE15IFNlY3Rpb24gWyNjdXN0b20taWRdXFxuXFxuIyMjIFN1YiBTZWN0aW9uXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbXG4gICAgICB7IHVybDogXCIjY3VzdG9tLWlkXCIsIHRpdGxlOiBcIk15IFNlY3Rpb25cIiwgZGVwdGg6IDIgfSxcbiAgICAgIHsgdXJsOiBcIiNzdWItc2VjdGlvblwiLCB0aXRsZTogXCJTdWIgU2VjdGlvblwiLCBkZXB0aDogMyB9LFxuICAgIF0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgc3RyaXAgWyNpZF0gZnJvbSB0aGUgZGlzcGxheWVkIHRpdGxlXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIyBJbnN0YWxsYXRpb24gWyNpbnN0YWxsXVwiXG4gICAgY29uc3QgdG9jID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGV4cGVjdCh0b2MpLnRvRXF1YWwoW3sgdXJsOiBcIiNpbnN0YWxsXCIsIHRpdGxlOiBcIkluc3RhbGxhdGlvblwiLCBkZXB0aDogMiB9XSlcbiAgfSlcblxuICBpdChcInNob3VsZCBoYW5kbGUgaW5saW5lIGZvcm1hdHRpbmcgd2l0aCBjdXN0b20gaWRzXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIyAqKkJvbGQqKiBUaXRsZSBbI2JvbGQtdGl0bGVdXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbeyB1cmw6IFwiI2JvbGQtdGl0bGVcIiwgdGl0bGU6IFwiQm9sZCBUaXRsZVwiLCBkZXB0aDogMiB9XSlcbiAgfSlcblxuICBpdChcInNob3VsZCBoYW5kbGUgY29kZSBmb3JtYXR0aW5nIHdpdGggY3VzdG9tIGlkc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IFwiIyMgYGNvbmZpZ2AgT3B0aW9ucyBbI2NvbmZpZy1vcHRzXVwiXG4gICAgY29uc3QgdG9jID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGV4cGVjdCh0b2MpLnRvRXF1YWwoW3sgdXJsOiBcIiNjb25maWctb3B0c1wiLCB0aXRsZTogXCJjb25maWcgT3B0aW9uc1wiLCBkZXB0aDogMiB9XSlcbiAgfSlcblxuICBpdChcInNob3VsZCBza2lwIGgxIGhlYWRpbmdzXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIFRpdGxlXFxuXFxuIyMgU2VjdGlvblwiXG4gICAgY29uc3QgdG9jID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGV4cGVjdCh0b2MpLnRvRXF1YWwoW3sgdXJsOiBcIiNzZWN0aW9uXCIsIHRpdGxlOiBcIlNlY3Rpb25cIiwgZGVwdGg6IDIgfV0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgZXhjbHVkZSBbc3RlcF0gaGVhZGluZ3MgZnJvbSBUT0NcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPVxuICAgICAgXCIjIyBPdmVydmlld1xcblxcbiMjIyBJbnN0YWxsIERlcGVuZGVuY2llcyBbc3RlcF1cXG5cXG4jIyMgQ29uZmlndXJlIFByb2plY3QgW3N0ZXBdXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbeyB1cmw6IFwiI292ZXJ2aWV3XCIsIHRpdGxlOiBcIk92ZXJ2aWV3XCIsIGRlcHRoOiAyIH1dKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHNraXAgaGVhZGluZ3Mgd2l0aCBbIXRvY10gYW5ub3RhdGlvblwiLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IFwiIyMgVmlzaWJsZVxcblxcbiMjIEhpZGRlbiBGcm9tIFRPQyBbIXRvY11cXG5cXG4jIyBBbHNvIFZpc2libGVcIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFtcbiAgICAgIHsgdXJsOiBcIiN2aXNpYmxlXCIsIHRpdGxlOiBcIlZpc2libGVcIiwgZGVwdGg6IDIgfSxcbiAgICAgIHsgdXJsOiBcIiNhbHNvLXZpc2libGVcIiwgdGl0bGU6IFwiQWxzbyBWaXNpYmxlXCIsIGRlcHRoOiAyIH0sXG4gICAgXSlcbiAgfSlcblxuICBpdChcInNob3VsZCBpbmNsdWRlIFt0b2NdIGhlYWRpbmdzIHdpdGggYW5ub3RhdGlvbiBzdHJpcHBlZCBmcm9tIHRpdGxlXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIyBSZWd1bGFyXFxuXFxuIyMgVE9DIE9ubHkgW3RvY11cXG5cXG4jIyBBbm90aGVyXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbXG4gICAgICB7IHVybDogXCIjcmVndWxhclwiLCB0aXRsZTogXCJSZWd1bGFyXCIsIGRlcHRoOiAyIH0sXG4gICAgICB7IHVybDogXCIjdG9jLW9ubHlcIiwgdGl0bGU6IFwiVE9DIE9ubHlcIiwgZGVwdGg6IDIgfSxcbiAgICAgIHsgdXJsOiBcIiNhbm90aGVyXCIsIHRpdGxlOiBcIkFub3RoZXJcIiwgZGVwdGg6IDIgfSxcbiAgICBdKVxuICB9KVxufSlcbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLnVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy90b2MudW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXJDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7UUFDM0QsTUFBTSxPQUFPLEdBQUcsd0NBQXdDLENBQUE7UUFDeEQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUN6RCxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUNoRSxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwREFBMEQsRUFBRSxHQUFHLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsK0NBQStDLENBQUE7UUFDL0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNwRCxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1NB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LENBQUE7UUFDL0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUMvQyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ2pELEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7U0FDaEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGUtcGx1cy90ZXN0XCJcbmltcG9ydCB7IGV4dHJhY3RUb2MgfSBmcm9tIFwiLi90b2MudHNcIlxuXG5kZXNjcmliZShcImV4dHJhY3RUb2NcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBleHRyYWN0IGhlYWRpbmdzIHdpdGggYXV0by1nZW5lcmF0ZWQgc2x1Z3NcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBcIiMjIEludHJvZHVjdGlvblxcblxcbiMjIyBHZXR0aW5nIFN0YXJ0ZWRcIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFtcbiAgICAgIHsgdXJsOiBcIiNpbnRyb2R1Y3Rpb25cIiwgdGl0bGU6IFwiSW50cm9kdWN0aW9uXCIsIGRlcHRoOiAyIH0sXG4gICAgICB7IHVybDogXCIjZ2V0dGluZy1zdGFydGVkXCIsIHRpdGxlOiBcIkdldHRpbmcgU3RhcnRlZFwiLCBkZXB0aDogMyB9LFxuICAgIF0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgdXNlIGN1c3RvbSBpZCB3aGVuIFsjY3VzdG9tLWlkXSBzeW50YXggaXMgcHJlc2VudFwiLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IFwiIyMgTXkgU2VjdGlvbiBbI2N1c3RvbS1pZF1cXG5cXG4jIyMgU3ViIFNlY3Rpb25cIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFtcbiAgICAgIHsgdXJsOiBcIiNjdXN0b20taWRcIiwgdGl0bGU6IFwiTXkgU2VjdGlvblwiLCBkZXB0aDogMiB9LFxuICAgICAgeyB1cmw6IFwiI3N1Yi1zZWN0aW9uXCIsIHRpdGxlOiBcIlN1YiBTZWN0aW9uXCIsIGRlcHRoOiAzIH0sXG4gICAgXSlcbiAgfSlcblxuICBpdChcInNob3VsZCBzdHJpcCBbI2lkXSBmcm9tIHRoZSBkaXNwbGF5ZWQgdGl0bGVcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBcIiMjIEluc3RhbGxhdGlvbiBbI2luc3RhbGxdXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbeyB1cmw6IFwiI2luc3RhbGxcIiwgdGl0bGU6IFwiSW5zdGFsbGF0aW9uXCIsIGRlcHRoOiAyIH1dKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGhhbmRsZSBpbmxpbmUgZm9ybWF0dGluZyB3aXRoIGN1c3RvbSBpZHNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBcIiMjICoqQm9sZCoqIFRpdGxlIFsjYm9sZC10aXRsZV1cIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFt7IHVybDogXCIjYm9sZC10aXRsZVwiLCB0aXRsZTogXCJCb2xkIFRpdGxlXCIsIGRlcHRoOiAyIH1dKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIGhhbmRsZSBjb2RlIGZvcm1hdHRpbmcgd2l0aCBjdXN0b20gaWRzXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIyBgY29uZmlnYCBPcHRpb25zIFsjY29uZmlnLW9wdHNdXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbeyB1cmw6IFwiI2NvbmZpZy1vcHRzXCIsIHRpdGxlOiBcImNvbmZpZyBPcHRpb25zXCIsIGRlcHRoOiAyIH1dKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHNraXAgaDEgaGVhZGluZ3NcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBcIiMgVGl0bGVcXG5cXG4jIyBTZWN0aW9uXCJcbiAgICBjb25zdCB0b2MgPSBleHRyYWN0VG9jKGNvbnRlbnQpXG4gICAgZXhwZWN0KHRvYykudG9FcXVhbChbeyB1cmw6IFwiI3NlY3Rpb25cIiwgdGl0bGU6IFwiU2VjdGlvblwiLCBkZXB0aDogMiB9XSlcbiAgfSlcblxuICBpdChcInNob3VsZCBleGNsdWRlIFtzdGVwXSBoZWFkaW5ncyBmcm9tIFRPQ1wiLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9XG4gICAgICBcIiMjIE92ZXJ2aWV3XFxuXFxuIyMjIEluc3RhbGwgRGVwZW5kZW5jaWVzIFtzdGVwXVxcblxcbiMjIyBDb25maWd1cmUgUHJvamVjdCBbc3RlcF1cIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFt7IHVybDogXCIjb3ZlcnZpZXdcIiwgdGl0bGU6IFwiT3ZlcnZpZXdcIiwgZGVwdGg6IDIgfV0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgc2tpcCBoZWFkaW5ncyB3aXRoIFshdG9jXSBhbm5vdGF0aW9uXCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gXCIjIyBWaXNpYmxlXFxuXFxuIyMgSGlkZGVuIEZyb20gVE9DIFshdG9jXVxcblxcbiMjIEFsc28gVmlzaWJsZVwiXG4gICAgY29uc3QgdG9jID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGV4cGVjdCh0b2MpLnRvRXF1YWwoW1xuICAgICAgeyB1cmw6IFwiI3Zpc2libGVcIiwgdGl0bGU6IFwiVmlzaWJsZVwiLCBkZXB0aDogMiB9LFxuICAgICAgeyB1cmw6IFwiI2Fsc28tdmlzaWJsZVwiLCB0aXRsZTogXCJBbHNvIFZpc2libGVcIiwgZGVwdGg6IDIgfSxcbiAgICBdKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHJlbmRlciBsaW5rIGFuZCBlbXBoYXNpcyBoZWFkaW5ncyBhcyBwbGFpbiB0ZXh0XCIsICgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID1cbiAgICAgIFwiIyMgWzAuNi4wXShodHRwczovL2dpdGh1Yi5jb20vby9yL2NvbXBhcmUvdjAuNS4wLi4udjAuNi4wKSAoMjAyNi0xMC0yMClcXG5cXG5cIiArXG4gICAgICBcIiMjIyAqQnVnKiB+fkZpeGVzfn5cIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFtcbiAgICAgIHsgdXJsOiBcIiMwNjAtMjAyNi0xMC0yMFwiLCB0aXRsZTogXCIwLjYuMCAoMjAyNi0xMC0yMClcIiwgZGVwdGg6IDIgfSxcbiAgICAgIHsgdXJsOiBcIiNidWctZml4ZXNcIiwgdGl0bGU6IFwiQnVnIEZpeGVzXCIsIGRlcHRoOiAzIH0sXG4gICAgXSlcbiAgfSlcblxuICBpdChcInNob3VsZCBudW1iZXIgZHVwbGljYXRlIHNsdWdzIGNvdW50aW5nIGhpZGRlbiBhbmQgaDEgaGVhZGluZ3NcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPVxuICAgICAgXCIjIEZlYXR1cmVzXFxuXFxuIyMgRmVhdHVyZXMgWyF0b2NdXFxuXFxuIyMgRmVhdHVyZXNcXG5cXG4jIyMgRmVhdHVyZXMgW3N0ZXBdXFxuXFxuIyMgRmVhdHVyZXNcIlxuICAgIGNvbnN0IHRvYyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBleHBlY3QodG9jKS50b0VxdWFsKFtcbiAgICAgIHsgdXJsOiBcIiNmZWF0dXJlcy0yXCIsIHRpdGxlOiBcIkZlYXR1cmVzXCIsIGRlcHRoOiAyIH0sXG4gICAgICB7IHVybDogXCIjZmVhdHVyZXMtNFwiLCB0aXRsZTogXCJGZWF0dXJlc1wiLCBkZXB0aDogMiB9LFxuICAgIF0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgaWdub3JlIGhlYWRpbmdzIGluc2lkZSBjb2RlIGZlbmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IFwiIyMgUmVhbFxcblxcbmBgYG1kXFxuIyMgRmFrZVxcbmBgYFwiXG4gICAgY29uc3QgdG9jID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGV4cGVjdCh0b2MpLnRvRXF1YWwoW3sgdXJsOiBcIiNyZWFsXCIsIHRpdGxlOiBcIlJlYWxcIiwgZGVwdGg6IDIgfV0pXG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgaW5jbHVkZSBbdG9jXSBoZWFkaW5ncyB3aXRoIGFubm90YXRpb24gc3RyaXBwZWQgZnJvbSB0aXRsZVwiLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IFwiIyMgUmVndWxhclxcblxcbiMjIFRPQyBPbmx5IFt0b2NdXFxuXFxuIyMgQW5vdGhlclwiXG4gICAgY29uc3QgdG9jID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGV4cGVjdCh0b2MpLnRvRXF1YWwoW1xuICAgICAgeyB1cmw6IFwiI3JlZ3VsYXJcIiwgdGl0bGU6IFwiUmVndWxhclwiLCBkZXB0aDogMiB9LFxuICAgICAgeyB1cmw6IFwiI3RvYy1vbmx5XCIsIHRpdGxlOiBcIlRPQyBPbmx5XCIsIGRlcHRoOiAyIH0sXG4gICAgICB7IHVybDogXCIjYW5vdGhlclwiLCB0aXRsZTogXCJBbm90aGVyXCIsIGRlcHRoOiAyIH0sXG4gICAgXSlcbiAgfSlcbn0pXG4iXX0=
package/build/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="livemark/env" preserve="true" />
1
2
  export { defineConfig } from "./actions/config/define.ts";
2
3
  export type { RootHead } from "./helpers/head.ts";
package/build/index.js CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="livemark/env" preserve="true" />
1
2
  export { defineConfig } from "./actions/config/define.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vYWN0aW9ucy9jb25maWcvZGVmaW5lLnRzXCJcbmV4cG9ydCB0eXBlIHsgUm9vdEhlYWQgfSBmcm9tIFwiLi9oZWxwZXJzL2hlYWQudHNcIlxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibGl2ZW1hcmsvZW52XCIgcHJlc2VydmU9XCJ0cnVlXCIgLz5cbmV4cG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2RlZmluZS50c1wiXG5leHBvcnQgdHlwZSB7IFJvb3RIZWFkIH0gZnJvbSBcIi4vaGVscGVycy9oZWFkLnRzXCJcbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { describe, expect, it } from "vite-plus/test";
4
+ import packageJson from "../package.json" with { type: "json" };
5
+ const ROOT = join(import.meta.dirname, "..");
6
+ describe("consumer types", () => {
7
+ it("load livemark:virtual through the public entry", () => {
8
+ const index = readFileSync(join(ROOT, "source/index.ts"), "utf8");
9
+ expect(index).toContain('/// <reference types="livemark/env" preserve="true" />');
10
+ });
11
+ it("export the ambient declarations", () => {
12
+ expect(packageJson.exports["./env"]).toBe("./source/env.d.ts");
13
+ expect(existsSync(join(ROOT, packageJson.exports["./env"]))).toBe(true);
14
+ });
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9pbmRleC51bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDaEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUE7QUFFL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUU1QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNqRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLHdEQUF3RCxDQUFDLENBQUE7SUFDbkYsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDOUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pFLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlLXBsdXMvdGVzdFwiXG5pbXBvcnQgcGFja2FnZUpzb24gZnJvbSBcIi4uL3BhY2thZ2UuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9XG5cbmNvbnN0IFJPT1QgPSBqb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi5cIilcblxuZGVzY3JpYmUoXCJjb25zdW1lciB0eXBlc1wiLCAoKSA9PiB7XG4gIGl0KFwibG9hZCBsaXZlbWFyazp2aXJ0dWFsIHRocm91Z2ggdGhlIHB1YmxpYyBlbnRyeVwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSByZWFkRmlsZVN5bmMoam9pbihST09ULCBcInNvdXJjZS9pbmRleC50c1wiKSwgXCJ1dGY4XCIpXG4gICAgZXhwZWN0KGluZGV4KS50b0NvbnRhaW4oJy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibGl2ZW1hcmsvZW52XCIgcHJlc2VydmU9XCJ0cnVlXCIgLz4nKVxuICB9KVxuXG4gIGl0KFwiZXhwb3J0IHRoZSBhbWJpZW50IGRlY2xhcmF0aW9uc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHBhY2thZ2VKc29uLmV4cG9ydHNbXCIuL2VudlwiXSkudG9CZShcIi4vc291cmNlL2Vudi5kLnRzXCIpXG4gICAgZXhwZWN0KGV4aXN0c1N5bmMoam9pbihST09ULCBwYWNrYWdlSnNvbi5leHBvcnRzW1wiLi9lbnZcIl0pKSkudG9CZSh0cnVlKVxuICB9KVxufSlcbiJdfQ==
@@ -302,6 +302,7 @@ export type SystemConfig = z.infer<typeof SystemConfig>;
302
302
  export declare const SystemConfig: z.ZodObject<{
303
303
  root: z.ZodString;
304
304
  configPath: z.ZodString;
305
+ configDependencies: z.ZodDefault<z.ZodArray<z.ZodString>>;
305
306
  }, z.core.$strip>;
306
307
  /**
307
308
  * Fully resolved Livemark configuration.
@@ -491,4 +492,5 @@ export declare const Config: z.ZodObject<{
491
492
  vite: z.ZodOptional<z.ZodUnknown>;
492
493
  root: z.ZodString;
493
494
  configPath: z.ZodString;
495
+ configDependencies: z.ZodDefault<z.ZodArray<z.ZodString>>;
494
496
  }, z.core.$strip>;