@mnaoumov/typescript-dev-toolkit 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/bundlers/esbuild-impl/svelte-preprocessor/package.json +6 -0
  2. package/dist/lib/cjs/bulk-concurrency.cjs +49 -0
  3. package/dist/lib/cjs/bulk-concurrency.d.cts +14 -0
  4. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +4 -1
  5. package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +1 -0
  6. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-preprocessor.cjs +152 -0
  7. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-preprocessor.d.cts +95 -0
  8. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +4 -3
  9. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -1
  10. package/dist/lib/cjs/docs-site/docs-links.cjs +3 -2
  11. package/dist/lib/cjs/docs-site/og-images.cjs +3 -2
  12. package/dist/lib/cjs/index.cjs +4 -1
  13. package/dist/lib/cjs/index.d.cts +1 -0
  14. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +5 -1
  15. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +3 -1
  16. package/dist/lib/cjs/linters/eslint-rules/index.cjs +4 -1
  17. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +1 -0
  18. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +80 -3
  19. package/dist/lib/cjs/linters/eslint-rules/readonly-member-arrays.cjs +130 -0
  20. package/dist/lib/cjs/linters/eslint-rules/readonly-member-arrays.d.cts +6 -0
  21. package/dist/lib/cjs/linters/markdownlint.cjs +8 -2
  22. package/dist/lib/cjs/linters/over-exposure.cjs +14 -3
  23. package/dist/lib/cjs/linters/over-exposure.d.cts +3 -1
  24. package/dist/lib/cjs/nano-staged-config.cjs +24 -3
  25. package/dist/lib/cjs/nano-staged-config.d.cts +4 -0
  26. package/dist/lib/cjs/test-runners/auto.cjs +1 -1
  27. package/dist/lib/cjs/test-runners/auto.d.cts +5 -0
  28. package/dist/lib/cjs/test-runners/forwarded-arguments.cjs +50 -0
  29. package/dist/lib/cjs/test-runners/forwarded-arguments.d.cts +49 -0
  30. package/dist/lib/cjs/test-runners/index.cjs +4 -1
  31. package/dist/lib/cjs/test-runners/index.d.cts +1 -0
  32. package/dist/lib/cjs/test-runners/jest.cjs +16 -3
  33. package/dist/lib/cjs/test-runners/jest.d.cts +5 -0
  34. package/dist/lib/cjs/test-runners/vitest.cjs +111 -5
  35. package/dist/lib/cjs/test-runners/vitest.d.cts +5 -0
  36. package/dist/lib/esm/bulk-concurrency.d.mts +14 -0
  37. package/dist/lib/esm/bulk-concurrency.mjs +15 -0
  38. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +1 -0
  39. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +3 -1
  40. package/dist/lib/esm/bundlers/esbuild-impl/svelte-preprocessor.d.mts +95 -0
  41. package/dist/lib/esm/bundlers/esbuild-impl/svelte-preprocessor.mjs +126 -0
  42. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +1 -1
  43. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +4 -3
  44. package/dist/lib/esm/docs-site/docs-links.mjs +3 -2
  45. package/dist/lib/esm/docs-site/og-images.mjs +3 -2
  46. package/dist/lib/esm/index.d.mts +1 -0
  47. package/dist/lib/esm/index.mjs +3 -1
  48. package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +5 -1
  49. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +3 -1
  50. package/dist/lib/esm/linters/eslint-rules/index.d.mts +1 -0
  51. package/dist/lib/esm/linters/eslint-rules/index.mjs +3 -1
  52. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +80 -3
  53. package/dist/lib/esm/linters/eslint-rules/readonly-member-arrays.d.mts +6 -0
  54. package/dist/lib/esm/linters/eslint-rules/readonly-member-arrays.mjs +106 -0
  55. package/dist/lib/esm/linters/markdownlint.mjs +8 -2
  56. package/dist/lib/esm/linters/over-exposure.d.mts +3 -1
  57. package/dist/lib/esm/linters/over-exposure.mjs +16 -3
  58. package/dist/lib/esm/nano-staged-config.d.mts +4 -0
  59. package/dist/lib/esm/nano-staged-config.mjs +24 -3
  60. package/dist/lib/esm/test-runners/auto.d.mts +5 -0
  61. package/dist/lib/esm/test-runners/auto.mjs +1 -1
  62. package/dist/lib/esm/test-runners/forwarded-arguments.d.mts +49 -0
  63. package/dist/lib/esm/test-runners/forwarded-arguments.mjs +26 -0
  64. package/dist/lib/esm/test-runners/index.d.mts +1 -0
  65. package/dist/lib/esm/test-runners/index.mjs +3 -1
  66. package/dist/lib/esm/test-runners/jest.d.mts +5 -0
  67. package/dist/lib/esm/test-runners/jest.mjs +16 -3
  68. package/dist/lib/esm/test-runners/vitest.d.mts +5 -0
  69. package/dist/lib/esm/test-runners/vitest.mjs +105 -6
  70. package/linters/eslint-rules/readonly-member-arrays/package.json +6 -0
  71. package/package.json +5 -2
  72. package/test-runners/forwarded-arguments/package.json +6 -0
@@ -8,6 +8,7 @@ import {
8
8
  readFile
9
9
  } from "node:fs/promises";
10
10
  import { resolve } from "node:path";
11
+ import { getBulkConcurrency } from "../bulk-concurrency.mjs";
11
12
  import {
12
13
  collectBrokenExternalLinks,
13
14
  collectBrokenLinks,
@@ -41,7 +42,7 @@ ${formatUnrenderedAlerts(unrenderedAlerts)}`
41
42
  }
42
43
  const internalBrokenLinks = collectBrokenLinks(pages, createFileSystem({ allFiles, outputDirectory, pages }), options.siteBaseUrl);
43
44
  const externalTargets = collectExternalTargets(pages, options.siteBaseUrl);
44
- const externalBrokenLinks = await collectBrokenExternalLinks(externalTargets, fetchUrlStatus, EXTERNAL_LINK_CONCURRENCY);
45
+ const externalBrokenLinks = await collectBrokenExternalLinks(externalTargets, fetchUrlStatus, getBulkConcurrency(EXTERNAL_LINK_CONCURRENCY));
45
46
  const brokenLinks = [...internalBrokenLinks, ...externalBrokenLinks];
46
47
  if (brokenLinks.length > 0) {
47
48
  throw new Error(`Detected ${String(brokenLinks.length)} broken documentation link(s):
@@ -119,4 +120,4 @@ function toCheckableUrl(url) {
119
120
  export {
120
121
  assertDocsLinksResolve
121
122
  };
122
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9kb2NzLWxpbmtzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVmFsaWRhdGVzIHRoZSBsaW5rcyBlbWl0dGVkIGJ5IGEgYnVpbHQgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICpcbiAqIEludGVybmFsIGxpbmtzIGFyZSByZXNvbHZlZCBvZmZsaW5lIGFnYWluc3QgdGhlIGJ1aWxkIG91dHB1dDsgZXh0ZXJuYWwgbGlua3MgYXJlIHZhbGlkYXRlZCBvdmVyIHRoZSBuZXR3b3JrLFxuICogZGVkdXBsaWNhdGVkIHNvIGVhY2ggdW5pcXVlIFVSTCBpcyBmZXRjaGVkIGF0IG1vc3Qgb25jZS4gU2VlIHtAbGluayAuL2xpbmstY2hlY2sudHN9IGZvciB0aGUgZGVjaXNpb24gbG9naWMuXG4gKlxuICogSXQgYWxzbyBmYWlscyBvbiBhIEdpdEh1YiBhbGVydCB0aGF0IHJlYWNoZWQgYSBwYWdlIGFzIGEgcGxhaW4gYmxvY2txdW90ZSAoc2VlIHtAbGluayAuL3VucmVuZGVyZWQtYWxlcnRzLnRzfSksXG4gKiBzaW5jZSBub3RoaW5nIGVsc2Ugbm90aWNlcyB3aGVuIHRoZSBjb252ZXJzaW9uIHN0b3BzLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRG9jdW1lbnRhdGlvblBhZ2UsXG4gIEV4dGVybmFsTGlua1Byb2JlUmVzdWx0LFxuICBMaW5rQ2hlY2tGaWxlU3lzdGVtXG59IGZyb20gJy4vbGluay1jaGVjay50cyc7XG5cbmltcG9ydCB7XG4gIGNvbGxlY3RCcm9rZW5FeHRlcm5hbExpbmtzLFxuICBjb2xsZWN0QnJva2VuTGlua3MsXG4gIGNvbGxlY3RFeHRlcm5hbFRhcmdldHMsXG4gIGV4dHJhY3RJZHMsXG4gIGZvcm1hdEJyb2tlbkxpbmtzLFxuICBORVRXT1JLX0ZBSUxVUkVfU1RBVFVTLFxuICBwYXJzZVJldHJ5QWZ0ZXJJbk1pbGxpc2Vjb25kcyxcbiAgcmVzb2x2ZVdpdGhpblJvb3Rcbn0gZnJvbSAnLi9saW5rLWNoZWNrLnRzJztcbmltcG9ydCB7XG4gIGNvbGxlY3RVbnJlbmRlcmVkQWxlcnRzLFxuICBmb3JtYXRVbnJlbmRlcmVkQWxlcnRzXG59IGZyb20gJy4vdW5yZW5kZXJlZC1hbGVydHMudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBhc3NlcnREb2NzTGlua3NSZXNvbHZlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlcnREb2NzTGlua3NSZXNvbHZlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBidWlsZCBvdXRwdXQgZm9sZGVyLCBub3JtYWxseSBgPGRvY3M+L2Rpc3RgLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhYnNvbHV0ZSBVUkwgdGhlIHNpdGUgaXMgc2VydmVkIGZyb20sIHdpdGggYSB0cmFpbGluZyBzbGFzaCwgZS5nLiBgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvdHlwZXNjcmlwdC1saWIvYC5cbiAgICovXG4gIHJlYWRvbmx5IHNpdGVCYXNlVXJsOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVYVEVSTkFMX0xJTktfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSAxMF8wMDA7XG5jb25zdCBFWFRFUk5BTF9MSU5LX0NPTkNVUlJFTkNZID0gMjA7XG5jb25zdCBIVE1MX0ZJTEVfRVhURU5TSU9OID0gJy5odG1sJztcbmNvbnN0IE5QTV9QQUNLQUdFX1VSTF9QUkVGSVggPSAnaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvJztcbmNvbnN0IE5QTV9SRUdJU1RSWV9VUkxfUFJFRklYID0gJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyc7XG5cbi8vIFRoZSBob3N0IHNlcnZlcyB0aGlzIHBhZ2UgYXMgdGhlIGZhbGxiYWNrIGZvciBhbnkgbWlzc2luZyBwYXRoICh3aXRoIGEgNDA0IHN0YXR1cyksIHNvIGl0IGlzIG5vdCBhXG4vLyByZWFsIG5hdmlnYWJsZSByb3V0ZTogU3RhcmxpZ2h0IGdpdmVzIGl0IGEgc2VsZi1gcmVsPVwiY2Fub25pY2FsXCJgIG9mIGAvNDA0L2AgdGhhdCBpbmhlcmVudGx5IGNhbm5vdFxuLy8gcmVzb2x2ZSwgYW5kIGl0cyBib2R5IGxpbmtzIChuYXYsIGxvZ28pIGFyZSBpZGVudGljYWwgdG8gZXZlcnkgcmVhbCBwYWdlIHdlIGFscmVhZHkgdmFsaWRhdGUuXG5jb25zdCBGQUxMQkFDS19QQUdFX1JFTEFUSVZFX1BBVEggPSAnNDA0Lmh0bWwnO1xuXG5pbnRlcmZhY2UgQ3JlYXRlRmlsZVN5c3RlbVBhcmFtcyB7XG4gIHJlYWRvbmx5IGFsbEZpbGVzOiBTZXQ8c3RyaW5nPjtcbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhZ2VzOiBEb2N1bWVudGF0aW9uUGFnZVtdO1xufVxuXG4vKipcbiAqIENoZWNrcyBldmVyeSBsaW5rIG9mIHRoZSBidWlsdCBzaXRlLCBhbmQgdGhhdCBldmVyeSBHaXRIdWIgYWxlcnQgcmVuZGVyZWQgYXMgYW4gYXNpZGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucy5cbiAqIEB0aHJvd3MgSWYgYW4gYWxlcnQgcmVuZGVyZWQgYXMgYSBwbGFpbiBibG9ja3F1b3RlLCBvciBhIGxpbmsgZG9lcyBub3QgcmVzb2x2ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VydERvY3NMaW5rc1Jlc29sdmUob3B0aW9uczogQXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZVBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBvdXRwdXREaXJlY3RvcnkgPSByZXNvbHZlKG9wdGlvbnMub3V0cHV0RGlyZWN0b3J5KS5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKTtcbiAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCBnZXRBbGxGaWxlcyhvdXRwdXREaXJlY3RvcnkpO1xuICBjb25zdCBwYWdlcyA9IGF3YWl0IHJlYWRQYWdlcyhvdXRwdXREaXJlY3RvcnksIGFsbEZpbGVzKTtcblxuICAvLyBPZmZsaW5lIGFuZCBpbnN0YW50LCBzbyBpdCBydW5zIGJlZm9yZSB0aGUgbmV0d29yayBoYWxmIGFuZCBmYWlscyBmaXJzdC5cbiAgY29uc3QgdW5yZW5kZXJlZEFsZXJ0cyA9IGNvbGxlY3RVbnJlbmRlcmVkQWxlcnRzKHBhZ2VzKTtcbiAgaWYgKHVucmVuZGVyZWRBbGVydHMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBEZXRlY3RlZCAke1N0cmluZyh1bnJlbmRlcmVkQWxlcnRzLmxlbmd0aCl9IEdpdEh1YiBhbGVydChzKSByZW5kZXJlZCBhcyBhIHBsYWluIGJsb2NrcXVvdGUgaW5zdGVhZCBvZiBhbiBhc2lkZTpcXG4ke2Zvcm1hdFVucmVuZGVyZWRBbGVydHModW5yZW5kZXJlZEFsZXJ0cyl9YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbnRlcm5hbEJyb2tlbkxpbmtzID0gY29sbGVjdEJyb2tlbkxpbmtzKHBhZ2VzLCBjcmVhdGVGaWxlU3lzdGVtKHsgYWxsRmlsZXMsIG91dHB1dERpcmVjdG9yeSwgcGFnZXMgfSksIG9wdGlvbnMuc2l0ZUJhc2VVcmwpO1xuXG4gIGNvbnN0IGV4dGVybmFsVGFyZ2V0cyA9IGNvbGxlY3RFeHRlcm5hbFRhcmdldHMocGFnZXMsIG9wdGlvbnMuc2l0ZUJhc2VVcmwpO1xuICBjb25zdCBleHRlcm5hbEJyb2tlbkxpbmtzID0gYXdhaXQgY29sbGVjdEJyb2tlbkV4dGVybmFsTGlua3MoZXh0ZXJuYWxUYXJnZXRzLCBmZXRjaFVybFN0YXR1cywgRVhURVJOQUxfTElOS19DT05DVVJSRU5DWSk7XG5cbiAgY29uc3QgYnJva2VuTGlua3MgPSBbLi4uaW50ZXJuYWxCcm9rZW5MaW5rcywgLi4uZXh0ZXJuYWxCcm9rZW5MaW5rc107XG4gIGlmIChicm9rZW5MaW5rcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEZXRlY3RlZCAke1N0cmluZyhicm9rZW5MaW5rcy5sZW5ndGgpfSBicm9rZW4gZG9jdW1lbnRhdGlvbiBsaW5rKHMpOlxcbiR7Zm9ybWF0QnJva2VuTGlua3MoYnJva2VuTGlua3MpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpbGVTeXN0ZW0ocGFyYW1zOiBDcmVhdGVGaWxlU3lzdGVtUGFyYW1zKTogTGlua0NoZWNrRmlsZVN5c3RlbSB7XG4gIGNvbnN0IHsgYWxsRmlsZXMsIG91dHB1dERpcmVjdG9yeSwgcGFnZXMgfSA9IHBhcmFtcztcbiAgY29uc3QgaHRtbEJ5UmVsYXRpdmVQYXRoID0gbmV3IE1hcChwYWdlcy5tYXAoKHBhZ2UpID0+IFtwYWdlLnJlbGF0aXZlUGF0aCwgcGFnZS5odG1sXSkpO1xuICBjb25zdCBpZHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKTtcblxuICByZXR1cm4ge1xuICAgIHJlYWRJZHM6IChwYWdlS2V5KTogU2V0PHN0cmluZz4gPT4ge1xuICAgICAgbGV0IGlkcyA9IGlkc0NhY2hlLmdldChwYWdlS2V5KTtcbiAgICAgIGlmIChpZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBodG1sID0gaHRtbEJ5UmVsYXRpdmVQYXRoLmdldChwYWdlS2V5KTtcbiAgICAgICAgaWRzID0gaHRtbCA9PT0gdW5kZWZpbmVkID8gbmV3IFNldDxzdHJpbmc+KCkgOiBleHRyYWN0SWRzKGh0bWwpO1xuICAgICAgICBpZHNDYWNoZS5zZXQocGFnZUtleSwgaWRzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlkcztcbiAgICB9LFxuICAgIHJlc29sdmVFeGlzdGluZ1BhZ2U6IChvdXRwdXRSZWxhdGl2ZVBhdGgpOiBudWxsIHwgc3RyaW5nID0+IHtcbiAgICAgIGlmIChyZXNvbHZlV2l0aGluUm9vdChvdXRwdXREaXJlY3RvcnksIG91dHB1dFJlbGF0aXZlUGF0aCkgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyaW1tZWQgPSBvdXRwdXRSZWxhdGl2ZVBhdGgucmVwbGFjZSgvXFwvJC91LCAnJyk7XG4gICAgICBjb25zdCBjYW5kaWRhdGVzID0gdHJpbW1lZCA9PT0gJycgPyBbJ2luZGV4Lmh0bWwnXSA6IFt0cmltbWVkLCBgJHt0cmltbWVkfS9pbmRleC5odG1sYF07XG4gICAgICByZXR1cm4gY2FuZGlkYXRlcy5maW5kKChjYW5kaWRhdGUpID0+IGFsbEZpbGVzLmhhcyhjYW5kaWRhdGUpKSA/PyBudWxsO1xuICAgIH1cbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hVcmxTdGF0dXModXJsOiBzdHJpbmcpOiBQcm9taXNlPEV4dGVybmFsTGlua1Byb2JlUmVzdWx0PiB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGNvbnN0IHRpbWVvdXRJZCA9IGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgY29udHJvbGxlci5hYm9ydCgpO1xuICB9LCBFWFRFUk5BTF9MSU5LX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTKTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godG9DaGVja2FibGVVcmwodXJsKSwgeyBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsIH0pO1xuICAgIC8vIENhbmNlbCB0aGUgdW5yZWFkIGJvZHkgc28gdW5kaWNpIHJlbGVhc2VzIHRoZSBjb25uZWN0aW9uIGltbWVkaWF0ZWx5LlxuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgcGVyLWhvc3QgY29ubmVjdGlvbiBwb29sIHN0YWxscyBhbmQgc2FtZS1ob3N0IHJlcXVlc3RzXG4gICAgLy8gc2VyaWFsaXplLCB0dXJuaW5nIGEgfjNzIHJ1biBpbnRvIG1pbnV0ZXMuXG4gICAgYXdhaXQgcmVzcG9uc2UuYm9keT8uY2FuY2VsKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJldHJ5QWZ0ZXJJbk1pbGxpc2Vjb25kczogcGFyc2VSZXRyeUFmdGVySW5NaWxsaXNlY29uZHMocmVzcG9uc2UuaGVhZGVycy5nZXQoJ3JldHJ5LWFmdGVyJyksIERhdGUubm93KCkpLFxuICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXNcbiAgICB9O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4geyBzdGF0dXM6IE5FVFdPUktfRkFJTFVSRV9TVEFUVVMgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBnbG9iYWxUaGlzLmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbEZpbGVzKG91dHB1dFJvb3RQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFNldDxzdHJpbmc+PiB7XG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCByZWFkZGlyKG91dHB1dFJvb3RQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgY29uc3QgZmlsZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgaWYgKCFlbnRyeS5pc0ZpbGUoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcmVzb2x2ZShlbnRyeS5wYXJlbnRQYXRoLCBlbnRyeS5uYW1lKS5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKTtcbiAgICBmaWxlcy5hZGQoYWJzb2x1dGVQYXRoLnNsaWNlKGAke291dHB1dFJvb3RQYXRofS9gLmxlbmd0aCkpO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVzO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkUGFnZXMob3V0cHV0Um9vdFBhdGg6IHN0cmluZywgYWxsRmlsZXM6IFNldDxzdHJpbmc+KTogUHJvbWlzZTxEb2N1bWVudGF0aW9uUGFnZVtdPiB7XG4gIGNvbnN0IHBhZ2VzOiBEb2N1bWVudGF0aW9uUGFnZVtdID0gW107XG4gIGZvciAoY29uc3QgcmVsYXRpdmVQYXRoIG9mIGFsbEZpbGVzKSB7XG4gICAgaWYgKCFyZWxhdGl2ZVBhdGguZW5kc1dpdGgoSFRNTF9GSUxFX0VYVEVOU0lPTikgfHwgcmVsYXRpdmVQYXRoID09PSBGQUxMQkFDS19QQUdFX1JFTEFUSVZFX1BBVEgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGh0bWwgPSBhd2FpdCByZWFkRmlsZShyZXNvbHZlKG91dHB1dFJvb3RQYXRoLCByZWxhdGl2ZVBhdGgpLCAndXRmLTgnKTtcbiAgICBwYWdlcy5wdXNoKHsgaHRtbCwgcmVsYXRpdmVQYXRoIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBhZ2VzO1xufVxuXG4vLyBUaGUgbnBtanMgc2l0ZSBhbnN3ZXJzIGFuIHVuYXR0ZW5kZWQgYGZldGNoYCBvZiBhIHBhY2thZ2UgcGFnZSB3aXRoIDQwMywgc28gdGhlIHBhY2thZ2UgaXMgcHJvYmVkIG9uIHRoZSByZWdpc3RyeVxuLy8gaW5zdGVhZCwgdGhlIHJld3JpdGUgdGhlIG1hcmtkb3duIGxpbmsgY2hlY2sgZ2l2ZXMgbGlua2luYXRvci5cbmZ1bmN0aW9uIHRvQ2hlY2thYmxlVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHVybC5zdGFydHNXaXRoKE5QTV9QQUNLQUdFX1VSTF9QUkVGSVgpID8gTlBNX1JFR0lTVFJZX1VSTF9QUkVGSVggKyB1cmwuc2xpY2UoTlBNX1BBQ0tBR0VfVVJMX1BSRUZJWC5sZW5ndGgpIDogdXJsO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFZQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZUFBZTtBQVF4QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFB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
123
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9kb2NzLWxpbmtzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVmFsaWRhdGVzIHRoZSBsaW5rcyBlbWl0dGVkIGJ5IGEgYnVpbHQgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICpcbiAqIEludGVybmFsIGxpbmtzIGFyZSByZXNvbHZlZCBvZmZsaW5lIGFnYWluc3QgdGhlIGJ1aWxkIG91dHB1dDsgZXh0ZXJuYWwgbGlua3MgYXJlIHZhbGlkYXRlZCBvdmVyIHRoZSBuZXR3b3JrLFxuICogZGVkdXBsaWNhdGVkIHNvIGVhY2ggdW5pcXVlIFVSTCBpcyBmZXRjaGVkIGF0IG1vc3Qgb25jZS4gU2VlIHtAbGluayAuL2xpbmstY2hlY2sudHN9IGZvciB0aGUgZGVjaXNpb24gbG9naWMuXG4gKlxuICogSXQgYWxzbyBmYWlscyBvbiBhIEdpdEh1YiBhbGVydCB0aGF0IHJlYWNoZWQgYSBwYWdlIGFzIGEgcGxhaW4gYmxvY2txdW90ZSAoc2VlIHtAbGluayAuL3VucmVuZGVyZWQtYWxlcnRzLnRzfSksXG4gKiBzaW5jZSBub3RoaW5nIGVsc2Ugbm90aWNlcyB3aGVuIHRoZSBjb252ZXJzaW9uIHN0b3BzLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRG9jdW1lbnRhdGlvblBhZ2UsXG4gIEV4dGVybmFsTGlua1Byb2JlUmVzdWx0LFxuICBMaW5rQ2hlY2tGaWxlU3lzdGVtXG59IGZyb20gJy4vbGluay1jaGVjay50cyc7XG5cbmltcG9ydCB7IGdldEJ1bGtDb25jdXJyZW5jeSB9IGZyb20gJy4uL2J1bGstY29uY3VycmVuY3kudHMnO1xuaW1wb3J0IHtcbiAgY29sbGVjdEJyb2tlbkV4dGVybmFsTGlua3MsXG4gIGNvbGxlY3RCcm9rZW5MaW5rcyxcbiAgY29sbGVjdEV4dGVybmFsVGFyZ2V0cyxcbiAgZXh0cmFjdElkcyxcbiAgZm9ybWF0QnJva2VuTGlua3MsXG4gIE5FVFdPUktfRkFJTFVSRV9TVEFUVVMsXG4gIHBhcnNlUmV0cnlBZnRlckluTWlsbGlzZWNvbmRzLFxuICByZXNvbHZlV2l0aGluUm9vdFxufSBmcm9tICcuL2xpbmstY2hlY2sudHMnO1xuaW1wb3J0IHtcbiAgY29sbGVjdFVucmVuZGVyZWRBbGVydHMsXG4gIGZvcm1hdFVucmVuZGVyZWRBbGVydHNcbn0gZnJvbSAnLi91bnJlbmRlcmVkLWFsZXJ0cy50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGFzc2VydERvY3NMaW5rc1Jlc29sdmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VydERvY3NMaW5rc1Jlc29sdmVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIsIG5vcm1hbGx5IGA8ZG9jcz4vZGlzdGAuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFic29sdXRlIFVSTCB0aGUgc2l0ZSBpcyBzZXJ2ZWQgZnJvbSwgd2l0aCBhIHRyYWlsaW5nIHNsYXNoLCBlLmcuIGBodHRwczovL21uYW91bW92LmRldi90eXBlc2NyaXB0LWxpYi9gLlxuICAgKi9cbiAgcmVhZG9ubHkgc2l0ZUJhc2VVcmw6IHN0cmluZztcbn1cblxuY29uc3QgRVhURVJOQUxfTElOS19USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEwXzAwMDtcbmNvbnN0IEVYVEVSTkFMX0xJTktfQ09OQ1VSUkVOQ1kgPSAyMDtcbmNvbnN0IEhUTUxfRklMRV9FWFRFTlNJT04gPSAnLmh0bWwnO1xuY29uc3QgTlBNX1BBQ0tBR0VfVVJMX1BSRUZJWCA9ICdodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS8nO1xuY29uc3QgTlBNX1JFR0lTVFJZX1VSTF9QUkVGSVggPSAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJztcblxuLy8gVGhlIGhvc3Qgc2VydmVzIHRoaXMgcGFnZSBhcyB0aGUgZmFsbGJhY2sgZm9yIGFueSBtaXNzaW5nIHBhdGggKHdpdGggYSA0MDQgc3RhdHVzKSwgc28gaXQgaXMgbm90IGFcbi8vIHJlYWwgbmF2aWdhYmxlIHJvdXRlOiBTdGFybGlnaHQgZ2l2ZXMgaXQgYSBzZWxmLWByZWw9XCJjYW5vbmljYWxcImAgb2YgYC80MDQvYCB0aGF0IGluaGVyZW50bHkgY2Fubm90XG4vLyByZXNvbHZlLCBhbmQgaXRzIGJvZHkgbGlua3MgKG5hdiwgbG9nbykgYXJlIGlkZW50aWNhbCB0byBldmVyeSByZWFsIHBhZ2Ugd2UgYWxyZWFkeSB2YWxpZGF0ZS5cbmNvbnN0IEZBTExCQUNLX1BBR0VfUkVMQVRJVkVfUEFUSCA9ICc0MDQuaHRtbCc7XG5cbmludGVyZmFjZSBDcmVhdGVGaWxlU3lzdGVtUGFyYW1zIHtcbiAgcmVhZG9ubHkgYWxsRmlsZXM6IFNldDxzdHJpbmc+O1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFnZXM6IERvY3VtZW50YXRpb25QYWdlW107XG59XG5cbi8qKlxuICogQ2hlY2tzIGV2ZXJ5IGxpbmsgb2YgdGhlIGJ1aWx0IHNpdGUsIGFuZCB0aGF0IGV2ZXJ5IEdpdEh1YiBhbGVydCByZW5kZXJlZCBhcyBhbiBhc2lkZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zLlxuICogQHRocm93cyBJZiBhbiBhbGVydCByZW5kZXJlZCBhcyBhIHBsYWluIGJsb2NrcXVvdGUsIG9yIGEgbGluayBkb2VzIG5vdCByZXNvbHZlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0RG9jc0xpbmtzUmVzb2x2ZShvcHRpb25zOiBBc3NlcnREb2NzTGlua3NSZXNvbHZlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG91dHB1dERpcmVjdG9yeSA9IHJlc29sdmUob3B0aW9ucy5vdXRwdXREaXJlY3RvcnkpLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuICBjb25zdCBhbGxGaWxlcyA9IGF3YWl0IGdldEFsbEZpbGVzKG91dHB1dERpcmVjdG9yeSk7XG4gIGNvbnN0IHBhZ2VzID0gYXdhaXQgcmVhZFBhZ2VzKG91dHB1dERpcmVjdG9yeSwgYWxsRmlsZXMpO1xuXG4gIC8vIE9mZmxpbmUgYW5kIGluc3RhbnQsIHNvIGl0IHJ1bnMgYmVmb3JlIHRoZSBuZXR3b3JrIGhhbGYgYW5kIGZhaWxzIGZpcnN0LlxuICBjb25zdCB1bnJlbmRlcmVkQWxlcnRzID0gY29sbGVjdFVucmVuZGVyZWRBbGVydHMocGFnZXMpO1xuICBpZiAodW5yZW5kZXJlZEFsZXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYERldGVjdGVkICR7U3RyaW5nKHVucmVuZGVyZWRBbGVydHMubGVuZ3RoKX0gR2l0SHViIGFsZXJ0KHMpIHJlbmRlcmVkIGFzIGEgcGxhaW4gYmxvY2txdW90ZSBpbnN0ZWFkIG9mIGFuIGFzaWRlOlxcbiR7Zm9ybWF0VW5yZW5kZXJlZEFsZXJ0cyh1bnJlbmRlcmVkQWxlcnRzKX1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGludGVybmFsQnJva2VuTGlua3MgPSBjb2xsZWN0QnJva2VuTGlua3MocGFnZXMsIGNyZWF0ZUZpbGVTeXN0ZW0oeyBhbGxGaWxlcywgb3V0cHV0RGlyZWN0b3J5LCBwYWdlcyB9KSwgb3B0aW9ucy5zaXRlQmFzZVVybCk7XG5cbiAgY29uc3QgZXh0ZXJuYWxUYXJnZXRzID0gY29sbGVjdEV4dGVybmFsVGFyZ2V0cyhwYWdlcywgb3B0aW9ucy5zaXRlQmFzZVVybCk7XG4gIGNvbnN0IGV4dGVybmFsQnJva2VuTGlua3MgPSBhd2FpdCBjb2xsZWN0QnJva2VuRXh0ZXJuYWxMaW5rcyhleHRlcm5hbFRhcmdldHMsIGZldGNoVXJsU3RhdHVzLCBnZXRCdWxrQ29uY3VycmVuY3koRVhURVJOQUxfTElOS19DT05DVVJSRU5DWSkpO1xuXG4gIGNvbnN0IGJyb2tlbkxpbmtzID0gWy4uLmludGVybmFsQnJva2VuTGlua3MsIC4uLmV4dGVybmFsQnJva2VuTGlua3NdO1xuICBpZiAoYnJva2VuTGlua3MubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRGV0ZWN0ZWQgJHtTdHJpbmcoYnJva2VuTGlua3MubGVuZ3RoKX0gYnJva2VuIGRvY3VtZW50YXRpb24gbGluayhzKTpcXG4ke2Zvcm1hdEJyb2tlbkxpbmtzKGJyb2tlbkxpbmtzKX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlU3lzdGVtKHBhcmFtczogQ3JlYXRlRmlsZVN5c3RlbVBhcmFtcyk6IExpbmtDaGVja0ZpbGVTeXN0ZW0ge1xuICBjb25zdCB7IGFsbEZpbGVzLCBvdXRwdXREaXJlY3RvcnksIHBhZ2VzIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGh0bWxCeVJlbGF0aXZlUGF0aCA9IG5ldyBNYXAocGFnZXMubWFwKChwYWdlKSA9PiBbcGFnZS5yZWxhdGl2ZVBhdGgsIHBhZ2UuaHRtbF0pKTtcbiAgY29uc3QgaWRzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWFkSWRzOiAocGFnZUtleSk6IFNldDxzdHJpbmc+ID0+IHtcbiAgICAgIGxldCBpZHMgPSBpZHNDYWNoZS5nZXQocGFnZUtleSk7XG4gICAgICBpZiAoaWRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgaHRtbCA9IGh0bWxCeVJlbGF0aXZlUGF0aC5nZXQocGFnZUtleSk7XG4gICAgICAgIGlkcyA9IGh0bWwgPT09IHVuZGVmaW5lZCA/IG5ldyBTZXQ8c3RyaW5nPigpIDogZXh0cmFjdElkcyhodG1sKTtcbiAgICAgICAgaWRzQ2FjaGUuc2V0KHBhZ2VLZXksIGlkcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpZHM7XG4gICAgfSxcbiAgICByZXNvbHZlRXhpc3RpbmdQYWdlOiAob3V0cHV0UmVsYXRpdmVQYXRoKTogbnVsbCB8IHN0cmluZyA9PiB7XG4gICAgICBpZiAocmVzb2x2ZVdpdGhpblJvb3Qob3V0cHV0RGlyZWN0b3J5LCBvdXRwdXRSZWxhdGl2ZVBhdGgpID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0cmltbWVkID0gb3V0cHV0UmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLyQvdSwgJycpO1xuICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IHRyaW1tZWQgPT09ICcnID8gWydpbmRleC5odG1sJ10gOiBbdHJpbW1lZCwgYCR7dHJpbW1lZH0vaW5kZXguaHRtbGBdO1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBhbGxGaWxlcy5oYXMoY2FuZGlkYXRlKSkgPz8gbnVsbDtcbiAgICB9XG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVXJsU3RhdHVzKHVybDogc3RyaW5nKTogUHJvbWlzZTxFeHRlcm5hbExpbmtQcm9iZVJlc3VsdD4ge1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCB0aW1lb3V0SWQgPSBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGNvbnRyb2xsZXIuYWJvcnQoKTtcbiAgfSwgRVhURVJOQUxfTElOS19USU1FT1VUX0lOX01JTExJU0VDT05EUyk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRvQ2hlY2thYmxlVXJsKHVybCksIHsgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCB9KTtcbiAgICAvLyBDYW5jZWwgdGhlIHVucmVhZCBib2R5IHNvIHVuZGljaSByZWxlYXNlcyB0aGUgY29ubmVjdGlvbiBpbW1lZGlhdGVseS5cbiAgICAvLyBXaXRob3V0IHRoaXMgdGhlIHBlci1ob3N0IGNvbm5lY3Rpb24gcG9vbCBzdGFsbHMgYW5kIHNhbWUtaG9zdCByZXF1ZXN0c1xuICAgIC8vIHNlcmlhbGl6ZSwgdHVybmluZyBhIH4zcyBydW4gaW50byBtaW51dGVzLlxuICAgIGF3YWl0IHJlc3BvbnNlLmJvZHk/LmNhbmNlbCgpO1xuICAgIHJldHVybiB7XG4gICAgICByZXRyeUFmdGVySW5NaWxsaXNlY29uZHM6IHBhcnNlUmV0cnlBZnRlckluTWlsbGlzZWNvbmRzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdyZXRyeS1hZnRlcicpLCBEYXRlLm5vdygpKSxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzXG4gICAgfTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBORVRXT1JLX0ZBSUxVUkVfU1RBVFVTIH07XG4gIH0gZmluYWxseSB7XG4gICAgZ2xvYmFsVGhpcy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxGaWxlcyhvdXRwdXRSb290UGF0aDogc3RyaW5nKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4ge1xuICBjb25zdCBlbnRyaWVzID0gYXdhaXQgcmVhZGRpcihvdXRwdXRSb290UGF0aCwgeyByZWN1cnNpdmU6IHRydWUsIHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gIGNvbnN0IGZpbGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGlmICghZW50cnkuaXNGaWxlKCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHJlc29sdmUoZW50cnkucGFyZW50UGF0aCwgZW50cnkubmFtZSkucmVwbGFjZUFsbCgnXFxcXCcsICcvJyk7XG4gICAgZmlsZXMuYWRkKGFic29sdXRlUGF0aC5zbGljZShgJHtvdXRwdXRSb290UGF0aH0vYC5sZW5ndGgpKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFBhZ2VzKG91dHB1dFJvb3RQYXRoOiBzdHJpbmcsIGFsbEZpbGVzOiBTZXQ8c3RyaW5nPik6IFByb21pc2U8RG9jdW1lbnRhdGlvblBhZ2VbXT4ge1xuICBjb25zdCBwYWdlczogRG9jdW1lbnRhdGlvblBhZ2VbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHJlbGF0aXZlUGF0aCBvZiBhbGxGaWxlcykge1xuICAgIGlmICghcmVsYXRpdmVQYXRoLmVuZHNXaXRoKEhUTUxfRklMRV9FWFRFTlNJT04pIHx8IHJlbGF0aXZlUGF0aCA9PT0gRkFMTEJBQ0tfUEFHRV9SRUxBVElWRV9QQVRIKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBodG1sID0gYXdhaXQgcmVhZEZpbGUocmVzb2x2ZShvdXRwdXRSb290UGF0aCwgcmVsYXRpdmVQYXRoKSwgJ3V0Zi04Jyk7XG4gICAgcGFnZXMucHVzaCh7IGh0bWwsIHJlbGF0aXZlUGF0aCB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWdlcztcbn1cblxuLy8gVGhlIG5wbWpzIHNpdGUgYW5zd2VycyBhbiB1bmF0dGVuZGVkIGBmZXRjaGAgb2YgYSBwYWNrYWdlIHBhZ2Ugd2l0aCA0MDMsIHNvIHRoZSBwYWNrYWdlIGlzIHByb2JlZCBvbiB0aGUgcmVnaXN0cnlcbi8vIGluc3RlYWQsIHRoZSByZXdyaXRlIHRoZSBtYXJrZG93biBsaW5rIGNoZWNrIGdpdmVzIGxpbmtpbmF0b3IuXG5mdW5jdGlvbiB0b0NoZWNrYWJsZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB1cmwuc3RhcnRzV2l0aChOUE1fUEFDS0FHRV9VUkxfUFJFRklYKSA/IE5QTV9SRUdJU1RSWV9VUkxfUFJFRklYICsgdXJsLnNsaWNlKE5QTV9QQUNLQUdFX1VSTF9QUkVGSVgubGVuZ3RoKSA6IHVybDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBWUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGVB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
@@ -46,6 +46,7 @@ import {
46
46
  } from "node:fs/promises";
47
47
  import { dirname } from "node:path/posix";
48
48
  import { parse as parseYaml } from "yaml";
49
+ import { getBulkConcurrency } from "../bulk-concurrency.mjs";
49
50
  import { getOgImagePageSlug } from "./og-image-page.mjs";
50
51
  import {
51
52
  computeOgHash,
@@ -110,7 +111,7 @@ async function generateImagesWithPool(options) {
110
111
  }
111
112
  }
112
113
  }
113
- await Promise.all(Array.from({ length: CONCURRENCY }, async () => {
114
+ await Promise.all(Array.from({ length: getBulkConcurrency(CONCURRENCY) }, async () => {
114
115
  await processNext();
115
116
  }));
116
117
  }
@@ -164,4 +165,4 @@ async function walkDirectory(directory, contentDocsDirectory, pages) {
164
165
  export {
165
166
  generateOgImages
166
167
  };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvb2ctaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbiBHcmFwaCBjYXJkIGZvciBldmVyeSBkb2N1bWVudGF0aW9uIHBhZ2UsIHJldXNpbmcgdGhlIGNhcmRzIHdob3NlIGlucHV0cyBkaWQgbm90IGNoYW5nZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZvbnQgfSBmcm9tICdzYXRvcmknO1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgbWtkaXIsXG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAnbm9kZTpwYXRoL3Bvc2l4JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlWWFtbCB9IGZyb20gJ3lhbWwnO1xuXG5pbXBvcnQgdHlwZSB7IE9nQ2FyZENvbnRlbnQgfSBmcm9tICcuL29nLWltYWdlLnRzJztcblxuaW1wb3J0IHsgZ2V0T2dJbWFnZVBhZ2VTbHVnIH0gZnJvbSAnLi9vZy1pbWFnZS1wYWdlLnRzJztcbmltcG9ydCB7XG4gIGNvbXB1dGVPZ0hhc2gsXG4gIGxvYWRGb250cyxcbiAgbG9hZExvZ29EYXRhVXJpLFxuICByZW5kZXJPZ0ltYWdlXG59IGZyb20gJy4vb2ctaW1hZ2UudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZW5lcmF0ZU9nSW1hZ2VzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU9nSW1hZ2VzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IGV2ZXJ5IGNhcmQncyBmb290ZXIgY2Fycmllcywgbm9ybWFsbHkgdGhlIHBhY2thZ2UncyBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmRUZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb2N1bWVudGF0aW9uIGNvbnRlbnQgcm9vdCwgbm9ybWFsbHkgYDxkb2NzPi9zcmMvY29udGVudC9kb2NzYC4gRXZlcnkgYC5tZGAgLyBgLm1keGAgcGFnZSB1bmRlciBpdCB3aXRoIGFcbiAgICogYHRpdGxlYCBnZXRzIGEgY2FyZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTVkcgbG9nbyBkcmF3biBvbiBldmVyeSBjYXJkLiBBIG1pc3NpbmcgZmlsZSByZW5kZXJzIHRoZSBjYXJkcyB3aXRob3V0IG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdmljb25QYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgaG9sZGluZyB0aGUgZm9udHMgdGhlIGNhcmRzIGFyZSByZW5kZXJlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9udHNEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvbGRlciB0aGUgY2FyZHMgYXJlIHdyaXR0ZW4gdG8sIG5vcm1hbGx5IGA8ZG9jcz4vcHVibGljL29nYCwgc2VydmVkIGF0IGA8YmFzZT4vb2cvPHNsdWc+LnBuZ2AuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhY2hlTWFuaWZlc3Qge1xuICAvLyBFYWNoIHBhZ2UncyBjb250ZW50IGhhc2gsIGJ5IHNsdWcuXG4gIHJlYWRvbmx5IGNhcmRzOiBDYXJkSGFzaGVzO1xuICAvLyBUaGUgaGFzaCBvZiB0aGUgbG9nbyBldmVyeSBjYXJkIGNhcnJpZXMuIFRoZSBwYWdlIGhhc2hlcyBjYW5ub3Qgc2VlIGl0LCBzbyBhIGRpZmZlcmVudCBsb2dvIGRyb3BzIHRoZW0gYWxsLlxuICByZWFkb25seSBsb2dvSGFzaDogc3RyaW5nO1xufVxuXG50eXBlIENhcmRIYXNoZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuXG5pbnRlcmZhY2UgR2VuZXJhdGVJbWFnZXNXaXRoUG9vbE9wdGlvbnMge1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2FyZHM6IENhcmRIYXNoZXM7XG4gIHJlYWRvbmx5IGNoYW5nZWRQYWdlczogUGFnZUVudHJ5W107XG4gIHJlYWRvbmx5IGZvbnRzOiBGb250W107XG4gIHJlYWRvbmx5IGxvZ29EYXRhVXJpOiBudWxsIHwgc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBhZ2VFbnRyeSB7XG4gIHJlYWRvbmx5IGhhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyYW1zOiBPZ0NhcmRDb250ZW50O1xuICByZWFkb25seSBzbHVnOiBzdHJpbmc7XG59XG5cbmNvbnN0IENPTkNVUlJFTkNZID0gMTA7XG5jb25zdCBQUk9HUkVTU19MT0dfSU5URVJWQUwgPSAxMDA7XG5jb25zdCBNQU5JRkVTVF9JTkRFTlQgPSAyO1xuXG4vLyBGcm9udG1hdHRlciBpcyBwYXJzZWQgaGVyZSByYXRoZXIgdGhhbiB3aXRoIGBncmF5LW1hdHRlcmAuIEl0cyBgbGliL2VuZ2luZXMuanNgIGJpbmRzIGpzLXlhbWwnc1xuLy8gYHNhZmVMb2FkYC9gc2FmZUR1bXBgIGF0IE1PRFVMRS1MT0FEIHRpbWUsIGFuZCBib3RoIHdlcmUgcmVtb3ZlZCBpbiBqcy15YW1sIHY0IOKAlCBzbyBtZXJlbHlcbi8vIElNUE9SVElORyBgZ3JheS1tYXR0ZXJgIHRocm93cyBgQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQgKHJlYWRpbmcgJ2JpbmQnKWAsIGJlZm9yZSBhblxuLy8gYGVuZ2luZXNgIG9wdGlvbiBjb3VsZCBvdmVycmlkZSB0aGUgZGVmYXVsdC4gT25seSB0aGUgZnJvbnRtYXR0ZXIgb2JqZWN0IGlzIG5lZWRlZCBoZXJlLlxuY29uc3QgRlJPTlRfTUFUVEVSX1JFR19FWFAgPSAvXi0tLVxccj9cXG4oPzxGcm9udE1hdHRlcj5bXFxzXFxTXSo/KVxccj9cXG4tLS0oPzpcXHI/XFxufCQpLztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIE9wZW4gR3JhcGggY2FyZHMuXG4gKlxuICogQSBjYXJkIGlzIHJlLXJlbmRlcmVkIG9ubHkgd2hlbiBpdHMgdGl0bGUsIGRlc2NyaXB0aW9uLCBzaWduYXR1cmUgb3IgYmFkZ2UgY2hhbmdlZCwgdHJhY2tlZCBieSBhIGhhc2ggbWFuaWZlc3RcbiAqIGJlc2lkZSB0aGUgY2FyZHMuIEEgZGlmZmVyZW50IGxvZ28gZmlsZSByZS1yZW5kZXJzIGV2ZXJ5IGNhcmQuIE1pc3NpbmcgY29udGVudCBvciBmb250cyBza2lwIHRoZSBzdGVwIHdpdGggYSB3YXJuaW5nIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIGJ1aWxkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU9nSW1hZ2VzKG9wdGlvbnM6IEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBicmFuZFRleHQsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBmYXZpY29uUGF0aCwgZm9udHNEaXJlY3RvcnksIG91dHB1dERpcmVjdG9yeSB9ID0gb3B0aW9ucztcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gYCR7b3V0cHV0RGlyZWN0b3J5fS8uY2FjaGUtbWFuaWZlc3QuanNvbmA7XG5cbiAgaWYgKCFleGlzdHNTeW5jKGNvbnRlbnREb2NzRGlyZWN0b3J5KSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBjb250ZW50IGRpciBub3QgZm91bmQgKCR7Y29udGVudERvY3NEaXJlY3Rvcnl9KTsgc2tpcHBpbmcuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTG9hZCBmb250cyBmaXJzdCDigJQgc2F0b3JpIGNhbm5vdCByZW5kZXIgd2l0aG91dCB0aGVtLlxuICBjb25zdCBmb250cyA9IGF3YWl0IGxvYWRGb250cyhmb250c0RpcmVjdG9yeSk7XG4gIGlmICghZm9udHMpIHtcbiAgICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogbm8gZm9udHMgYXZhaWxhYmxlIGluICR7Zm9udHNEaXJlY3Rvcnl9OyBza2lwcGluZyBPRyBpbWFnZSBnZW5lcmF0aW9uLmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhZ2VzOiBQYWdlRW50cnlbXSA9IFtdO1xuICBhd2FpdCB3YWxrRGlyZWN0b3J5KGNvbnRlbnREb2NzRGlyZWN0b3J5LCBjb250ZW50RG9jc0RpcmVjdG9yeSwgcGFnZXMpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogZm91bmQgJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gcGFnZXNgKTtcblxuICBjb25zdCBsb2dvSGFzaCA9IGF3YWl0IGNvbXB1dGVMb2dvSGFzaChmYXZpY29uUGF0aCk7XG4gIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoKTtcbiAgY29uc3QgY2FyZHMgPSBtYW5pZmVzdD8ubG9nb0hhc2ggPT09IGxvZ29IYXNoID8geyAuLi5tYW5pZmVzdC5jYXJkcyB9IDoge307XG4gIGNvbnN0IGNoYW5nZWRQYWdlcyA9IHBhZ2VzLmZpbHRlcigocGFnZSkgPT4gY2FyZHNbcGFnZS5zbHVnXSAhPT0gcGFnZS5oYXNoKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6ICR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBjaGFuZ2VkIC8gJHtTdHJpbmcocGFnZXMubGVuZ3RoKX0gdG90YWxgKTtcblxuICBpZiAoY2hhbmdlZFBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUud2FybignQWxsIE9HIGltYWdlcyB1cCB0byBkYXRlLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFJhc3Rlcml6ZSB0aGUgc2l0ZSBsb2dvIG9uY2UgKHNoYXJlZCBhY3Jvc3MgZXZlcnkgY2FyZCk7IGRlZ3JhZGUgZ3JhY2VmdWxseSBpZiBhYnNlbnQuXG4gIGNvbnN0IGxvZ29EYXRhVXJpID0gYXdhaXQgbG9hZExvZ29EYXRhVXJpKGZhdmljb25QYXRoKTtcbiAgaWYgKCFsb2dvRGF0YVVyaSkge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBmYXZpY29uIG5vdCBmb3VuZCAoJHtmYXZpY29uUGF0aH0pOyByZW5kZXJpbmcgY2FyZHMgd2l0aG91dCBhIGxvZ28uYCk7XG4gIH1cblxuICBhd2FpdCBnZW5lcmF0ZUltYWdlc1dpdGhQb29sKHsgYnJhbmRUZXh0LCBjYXJkcywgY2hhbmdlZFBhZ2VzLCBmb250cywgbG9nb0RhdGFVcmksIG91dHB1dERpcmVjdG9yeSB9KTtcblxuICBjb25zdCBuZXdNYW5pZmVzdDogQ2FjaGVNYW5pZmVzdCA9IHsgY2FyZHMsIGxvZ29IYXNoIH07XG4gIGF3YWl0IG1rZGlyKGRpcm5hbWUobWFuaWZlc3RQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IHdyaXRlRmlsZShtYW5pZmVzdFBhdGgsIEpTT04uc3RyaW5naWZ5KG5ld01hbmlmZXN0LCBudWxsLCBNQU5JRkVTVF9JTkRFTlQpKTtcbiAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6IGRvbmUuIEdlbmVyYXRlZCAke1N0cmluZyhjaGFuZ2VkUGFnZXMubGVuZ3RoKX0gaW1hZ2VzLmApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb21wdXRlTG9nb0hhc2goZmF2aWNvblBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBleGlzdHNTeW5jKGZhdmljb25QYXRoKSA/IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShhd2FpdCByZWFkRmlsZShmYXZpY29uUGF0aCkpLmRpZ2VzdCgnaGV4JykgOiAnJztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVJbWFnZXNXaXRoUG9vbChvcHRpb25zOiBHZW5lcmF0ZUltYWdlc1dpdGhQb29sT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGJyYW5kVGV4dCwgY2FyZHMsIGNoYW5nZWRQYWdlcywgZm9udHMsIGxvZ29EYXRhVXJpLCBvdXRwdXREaXJlY3RvcnkgfSA9IG9wdGlvbnM7XG4gIGxldCBjb21wbGV0ZWQgPSAwO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOZXh0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAobGV0IHBhZ2UgPSBjaGFuZ2VkUGFnZXNbaW5kZXgrK107IHBhZ2UgIT09IHVuZGVmaW5lZDsgcGFnZSA9IGNoYW5nZWRQYWdlc1tpbmRleCsrXSkge1xuICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IGAke291dHB1dERpcmVjdG9yeX0vJHtwYWdlLnNsdWd9LnBuZ2A7XG4gICAgICBhd2FpdCBta2RpcihkaXJuYW1lKG91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGF3YWl0IHdyaXRlRmlsZShvdXRwdXRQYXRoLCBhd2FpdCByZW5kZXJPZ0ltYWdlKHBhZ2UucGFyYW1zLCB7IGJyYW5kVGV4dCwgZm9udHMsIGxvZ29EYXRhVXJpIH0pKTtcbiAgICAgIGNhcmRzW3BhZ2Uuc2x1Z10gPSBwYWdlLmhhc2g7XG4gICAgICBjb21wbGV0ZWQrKztcbiAgICAgIGlmIChjb21wbGV0ZWQgJSBQUk9HUkVTU19MT0dfSU5URVJWQUwgPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGAgICR7U3RyaW5nKGNvbXBsZXRlZCl9LyR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBpbWFnZXMgZ2VuZXJhdGVkLi4uYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh7IGxlbmd0aDogQ09OQ1VSUkVOQ1kgfSwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHByb2Nlc3NOZXh0KCk7XG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhY2hlTWFuaWZlc3QobWFuaWZlc3RQYXRoOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTWFuaWZlc3QgfCBudWxsPiB7XG4gIGlmICghZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQSBtYW5pZmVzdCB3cml0dGVuIGJlZm9yZSB0aGUgbG9nbyB3YXMgdHJhY2tlZCBpcyBhIGZsYXQgc2x1Zy10by1oYXNoIG1hcDogaXQgaGFzIG5vIGBsb2dvSGFzaGAsIHNvIGV2ZXJ5IGNhcmRcbiAgLy8gcmUtcmVuZGVycyBvbmNlLlxuICBjb25zdCBtYW5pZmVzdCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUobWFuaWZlc3RQYXRoLCAndXRmLTgnKSkgYXMgUGFydGlhbDxDYWNoZU1hbmlmZXN0PjtcbiAgcmV0dXJuIHR5cGVvZiBtYW5pZmVzdC5sb2dvSGFzaCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG1hbmlmZXN0LmNhcmRzID09PSAnb2JqZWN0J1xuICAgID8geyBjYXJkczogbWFuaWZlc3QuY2FyZHMsIGxvZ29IYXNoOiBtYW5pZmVzdC5sb2dvSGFzaCB9XG4gICAgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZUZyb250TWF0dGVyKGNvbnRlbnQ6IHN0cmluZyk6IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgZnJvbnRNYXR0ZXIgPSBGUk9OVF9NQVRURVJfUkVHX0VYUC5leGVjKGNvbnRlbnQpPy5ncm91cHM/LlsnRnJvbnRNYXR0ZXInXTtcbiAgcmV0dXJuIGZyb250TWF0dGVyID09PSB1bmRlZmluZWQgPyB7fSA6IChwYXJzZVlhbWwoZnJvbnRNYXR0ZXIpIGFzIG51bGwgfCBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PikgPz8ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlUGFnZShmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50RG9jc0RpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxudWxsIHwgUGFnZUVudHJ5PiB7XG4gIGNvbnN0IGRhdGEgPSBwYXJzZUZyb250TWF0dGVyKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCAndXRmLTgnKSk7XG5cbiAgY29uc3QgdGl0bGUgPSB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ3RpdGxlJ10pO1xuICBpZiAoIXRpdGxlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBiYWRnZSA9IGRhdGFbJ3NpZGViYXInXSBhcyBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+Pj4gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHBhcmFtczogT2dDYXJkQ29udGVudCA9IHtcbiAgICBiYWRnZTogdG9PcHRpb25hbFN0cmluZyhiYWRnZT8uWydiYWRnZSddPy5bJ3RleHQnXSksXG4gICAgZGVzY3JpcHRpb246IHRvT3B0aW9uYWxTdHJpbmcoZGF0YVsnZGVzY3JpcHRpb24nXSkgPz8gJycsXG4gICAgc2lnbmF0dXJlOiB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ3NpZ25hdHVyZSddKSA/PyAnJyxcbiAgICB0aXRsZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgaGFzaDogY29tcHV0ZU9nSGFzaChwYXJhbXMpLFxuICAgIHBhcmFtcyxcbiAgICBzbHVnOiBnZXRPZ0ltYWdlUGFnZVNsdWcoZGF0YSwgZmlsZVBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5KVxuICB9O1xufVxuXG5mdW5jdGlvbiB0b09wdGlvbmFsU3RyaW5nKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2Fsa0RpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZywgcGFnZXM6IFBhZ2VFbnRyeVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudHJpZXMgPSBhd2FpdCByZWFkZGlyKGRpcmVjdG9yeSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGAke2RpcmVjdG9yeX0vJHtlbnRyeS5uYW1lfWA7XG4gICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGF3YWl0IHdhbGtEaXJlY3RvcnkoZnVsbFBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBwYWdlcyk7XG4gICAgfSBlbHNlIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKCcubWQnKSB8fCBlbnRyeS5uYW1lLmVuZHNXaXRoKCcubWR4JykpIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBwYXJzZVBhZ2UoZnVsbFBhdGgsIGNvbnRlbnREb2NzRGlyZWN0b3J5KTtcbiAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgIHBhZ2VzLnB1c2gocGFnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZUFBZTtBQUN4QixTQUFTLFNBQVMsaUJBQWlCO0FBSW5DLFNBQVMsMEJBQTBCO0FBQ25DO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUF5RFAsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sd0JBQXdCO0FBQzlCLE1BQU0sa0JBQWtCO0FBTXhCLE1BQU0sdUJBQXVCO0FBVTdCLGVBQXNCLGlCQUFpQixTQUFnRDtBQUNyRixRQUFNLEVBQUUsV0FBVyxzQkFB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
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvb2ctaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbiBHcmFwaCBjYXJkIGZvciBldmVyeSBkb2N1bWVudGF0aW9uIHBhZ2UsIHJldXNpbmcgdGhlIGNhcmRzIHdob3NlIGlucHV0cyBkaWQgbm90IGNoYW5nZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZvbnQgfSBmcm9tICdzYXRvcmknO1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgbWtkaXIsXG4gIHJlYWRkaXIsXG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAnbm9kZTpwYXRoL3Bvc2l4JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlWWFtbCB9IGZyb20gJ3lhbWwnO1xuXG5pbXBvcnQgdHlwZSB7IE9nQ2FyZENvbnRlbnQgfSBmcm9tICcuL29nLWltYWdlLnRzJztcblxuaW1wb3J0IHsgZ2V0QnVsa0NvbmN1cnJlbmN5IH0gZnJvbSAnLi4vYnVsay1jb25jdXJyZW5jeS50cyc7XG5pbXBvcnQgeyBnZXRPZ0ltYWdlUGFnZVNsdWcgfSBmcm9tICcuL29nLWltYWdlLXBhZ2UudHMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZU9nSGFzaCxcbiAgbG9hZEZvbnRzLFxuICBsb2FkTG9nb0RhdGFVcmksXG4gIHJlbmRlck9nSW1hZ2Vcbn0gZnJvbSAnLi9vZy1pbWFnZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdlbmVyYXRlT2dJbWFnZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlT2dJbWFnZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHRleHQgZXZlcnkgY2FyZCdzIGZvb3RlciBjYXJyaWVzLCBub3JtYWxseSB0aGUgcGFja2FnZSdzIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBicmFuZFRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvY3VtZW50YXRpb24gY29udGVudCByb290LCBub3JtYWxseSBgPGRvY3M+L3NyYy9jb250ZW50L2RvY3NgLiBFdmVyeSBgLm1kYCAvIGAubWR4YCBwYWdlIHVuZGVyIGl0IHdpdGggYVxuICAgKiBgdGl0bGVgIGdldHMgYSBjYXJkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNWRyBsb2dvIGRyYXduIG9uIGV2ZXJ5IGNhcmQuIEEgbWlzc2luZyBmaWxlIHJlbmRlcnMgdGhlIGNhcmRzIHdpdGhvdXQgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmF2aWNvblBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvbGRlciBob2xkaW5nIHRoZSBmb250cyB0aGUgY2FyZHMgYXJlIHJlbmRlcmVkIHdpdGguXG4gICAqL1xuICByZWFkb25seSBmb250c0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHRoZSBjYXJkcyBhcmUgd3JpdHRlbiB0bywgbm9ybWFsbHkgYDxkb2NzPi9wdWJsaWMvb2dgLCBzZXJ2ZWQgYXQgYDxiYXNlPi9vZy88c2x1Zz4ucG5nYC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ2FjaGVNYW5pZmVzdCB7XG4gIC8vIEVhY2ggcGFnZSdzIGNvbnRlbnQgaGFzaCwgYnkgc2x1Zy5cbiAgcmVhZG9ubHkgY2FyZHM6IENhcmRIYXNoZXM7XG4gIC8vIFRoZSBoYXNoIG9mIHRoZSBsb2dvIGV2ZXJ5IGNhcmQgY2Fycmllcy4gVGhlIHBhZ2UgaGFzaGVzIGNhbm5vdCBzZWUgaXQsIHNvIGEgZGlmZmVyZW50IGxvZ28gZHJvcHMgdGhlbSBhbGwuXG4gIHJlYWRvbmx5IGxvZ29IYXNoOiBzdHJpbmc7XG59XG5cbnR5cGUgQ2FyZEhhc2hlcyA9IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbmludGVyZmFjZSBHZW5lcmF0ZUltYWdlc1dpdGhQb29sT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGJyYW5kVGV4dDogc3RyaW5nO1xuICByZWFkb25seSBjYXJkczogQ2FyZEhhc2hlcztcbiAgcmVhZG9ubHkgY2hhbmdlZFBhZ2VzOiBQYWdlRW50cnlbXTtcbiAgcmVhZG9ubHkgZm9udHM6IEZvbnRbXTtcbiAgcmVhZG9ubHkgbG9nb0RhdGFVcmk6IG51bGwgfCBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dHB1dERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFnZUVudHJ5IHtcbiAgcmVhZG9ubHkgaGFzaDogc3RyaW5nO1xuICByZWFkb25seSBwYXJhbXM6IE9nQ2FyZENvbnRlbnQ7XG4gIHJlYWRvbmx5IHNsdWc6IHN0cmluZztcbn1cblxuY29uc3QgQ09OQ1VSUkVOQ1kgPSAxMDtcbmNvbnN0IFBST0dSRVNTX0xPR19JTlRFUlZBTCA9IDEwMDtcbmNvbnN0IE1BTklGRVNUX0lOREVOVCA9IDI7XG5cbi8vIEZyb250bWF0dGVyIGlzIHBhcnNlZCBoZXJlIHJhdGhlciB0aGFuIHdpdGggYGdyYXktbWF0dGVyYC4gSXRzIGBsaWIvZW5naW5lcy5qc2AgYmluZHMganMteWFtbCdzXG4vLyBgc2FmZUxvYWRgL2BzYWZlRHVtcGAgYXQgTU9EVUxFLUxPQUQgdGltZSwgYW5kIGJvdGggd2VyZSByZW1vdmVkIGluIGpzLXlhbWwgdjQg4oCUIHNvIG1lcmVseVxuLy8gSU1QT1JUSU5HIGBncmF5LW1hdHRlcmAgdGhyb3dzIGBDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mIHVuZGVmaW5lZCAocmVhZGluZyAnYmluZCcpYCwgYmVmb3JlIGFuXG4vLyBgZW5naW5lc2Agb3B0aW9uIGNvdWxkIG92ZXJyaWRlIHRoZSBkZWZhdWx0LiBPbmx5IHRoZSBmcm9udG1hdHRlciBvYmplY3QgaXMgbmVlZGVkIGhlcmUuXG5jb25zdCBGUk9OVF9NQVRURVJfUkVHX0VYUCA9IC9eLS0tXFxyP1xcbig/PEZyb250TWF0dGVyPltcXHNcXFNdKj8pXFxyP1xcbi0tLSg/Olxccj9cXG58JCkvO1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgT3BlbiBHcmFwaCBjYXJkcy5cbiAqXG4gKiBBIGNhcmQgaXMgcmUtcmVuZGVyZWQgb25seSB3aGVuIGl0cyB0aXRsZSwgZGVzY3JpcHRpb24sIHNpZ25hdHVyZSBvciBiYWRnZSBjaGFuZ2VkLCB0cmFja2VkIGJ5IGEgaGFzaCBtYW5pZmVzdFxuICogYmVzaWRlIHRoZSBjYXJkcy4gQSBkaWZmZXJlbnQgbG9nbyBmaWxlIHJlLXJlbmRlcnMgZXZlcnkgY2FyZC4gTWlzc2luZyBjb250ZW50IG9yIGZvbnRzIHNraXAgdGhlIHN0ZXAgd2l0aCBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gZmFpbGluZyB0aGUgYnVpbGQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlT2dJbWFnZXMob3B0aW9uczogR2VuZXJhdGVPZ0ltYWdlc1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGJyYW5kVGV4dCwgY29udGVudERvY3NEaXJlY3RvcnksIGZhdmljb25QYXRoLCBmb250c0RpcmVjdG9yeSwgb3V0cHV0RGlyZWN0b3J5IH0gPSBvcHRpb25zO1xuICBjb25zdCBtYW5pZmVzdFBhdGggPSBgJHtvdXRwdXREaXJlY3Rvcnl9Ly5jYWNoZS1tYW5pZmVzdC5qc29uYDtcblxuICBpZiAoIWV4aXN0c1N5bmMoY29udGVudERvY3NEaXJlY3RvcnkpKSB7XG4gICAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6IGNvbnRlbnQgZGlyIG5vdCBmb3VuZCAoJHtjb250ZW50RG9jc0RpcmVjdG9yeX0pOyBza2lwcGluZy5gKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBMb2FkIGZvbnRzIGZpcnN0IOKAlCBzYXRvcmkgY2Fubm90IHJlbmRlciB3aXRob3V0IHRoZW0uXG4gIGNvbnN0IGZvbnRzID0gYXdhaXQgbG9hZEZvbnRzKGZvbnRzRGlyZWN0b3J5KTtcbiAgaWYgKCFmb250cykge1xuICAgIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBubyBmb250cyBhdmFpbGFibGUgaW4gJHtmb250c0RpcmVjdG9yeX07IHNraXBwaW5nIE9HIGltYWdlIGdlbmVyYXRpb24uYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGFnZXM6IFBhZ2VFbnRyeVtdID0gW107XG4gIGF3YWl0IHdhbGtEaXJlY3RvcnkoY29udGVudERvY3NEaXJlY3RvcnksIGNvbnRlbnREb2NzRGlyZWN0b3J5LCBwYWdlcyk7XG4gIGNvbnNvbGUud2FybihgT0cgaW1hZ2VzOiBmb3VuZCAke1N0cmluZyhwYWdlcy5sZW5ndGgpfSBwYWdlc2ApO1xuXG4gIGNvbnN0IGxvZ29IYXNoID0gYXdhaXQgY29tcHV0ZUxvZ29IYXNoKGZhdmljb25QYXRoKTtcbiAgY29uc3QgbWFuaWZlc3QgPSBhd2FpdCBsb2FkQ2FjaGVNYW5pZmVzdChtYW5pZmVzdFBhdGgpO1xuICBjb25zdCBjYXJkcyA9IG1hbmlmZXN0Py5sb2dvSGFzaCA9PT0gbG9nb0hhc2ggPyB7IC4uLm1hbmlmZXN0LmNhcmRzIH0gOiB7fTtcbiAgY29uc3QgY2hhbmdlZFBhZ2VzID0gcGFnZXMuZmlsdGVyKChwYWdlKSA9PiBjYXJkc1twYWdlLnNsdWddICE9PSBwYWdlLmhhc2gpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogJHtTdHJpbmcoY2hhbmdlZFBhZ2VzLmxlbmd0aCl9IGNoYW5nZWQgLyAke1N0cmluZyhwYWdlcy5sZW5ndGgpfSB0b3RhbGApO1xuXG4gIGlmIChjaGFuZ2VkUGFnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc29sZS53YXJuKCdBbGwgT0cgaW1hZ2VzIHVwIHRvIGRhdGUuJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gUmFzdGVyaXplIHRoZSBzaXRlIGxvZ28gb25jZSAoc2hhcmVkIGFjcm9zcyBldmVyeSBjYXJkKTsgZGVncmFkZSBncmFjZWZ1bGx5IGlmIGFic2VudC5cbiAgY29uc3QgbG9nb0RhdGFVcmkgPSBhd2FpdCBsb2FkTG9nb0RhdGFVcmkoZmF2aWNvblBhdGgpO1xuICBpZiAoIWxvZ29EYXRhVXJpKSB7XG4gICAgY29uc29sZS53YXJuKGBPRyBpbWFnZXM6IGZhdmljb24gbm90IGZvdW5kICgke2Zhdmljb25QYXRofSk7IHJlbmRlcmluZyBjYXJkcyB3aXRob3V0IGEgbG9nby5gKTtcbiAgfVxuXG4gIGF3YWl0IGdlbmVyYXRlSW1hZ2VzV2l0aFBvb2woeyBicmFuZFRleHQsIGNhcmRzLCBjaGFuZ2VkUGFnZXMsIGZvbnRzLCBsb2dvRGF0YVVyaSwgb3V0cHV0RGlyZWN0b3J5IH0pO1xuXG4gIGNvbnN0IG5ld01hbmlmZXN0OiBDYWNoZU1hbmlmZXN0ID0geyBjYXJkcywgbG9nb0hhc2ggfTtcbiAgYXdhaXQgbWtkaXIoZGlybmFtZShtYW5pZmVzdFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgYXdhaXQgd3JpdGVGaWxlKG1hbmlmZXN0UGF0aCwgSlNPTi5zdHJpbmdpZnkobmV3TWFuaWZlc3QsIG51bGwsIE1BTklGRVNUX0lOREVOVCkpO1xuICBjb25zb2xlLndhcm4oYE9HIGltYWdlczogZG9uZS4gR2VuZXJhdGVkICR7U3RyaW5nKGNoYW5nZWRQYWdlcy5sZW5ndGgpfSBpbWFnZXMuYCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbXB1dGVMb2dvSGFzaChmYXZpY29uUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIGV4aXN0c1N5bmMoZmF2aWNvblBhdGgpID8gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGF3YWl0IHJlYWRGaWxlKGZhdmljb25QYXRoKSkuZGlnZXN0KCdoZXgnKSA6ICcnO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUltYWdlc1dpdGhQb29sKG9wdGlvbnM6IEdlbmVyYXRlSW1hZ2VzV2l0aFBvb2xPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgYnJhbmRUZXh0LCBjYXJkcywgY2hhbmdlZFBhZ2VzLCBmb250cywgbG9nb0RhdGFVcmksIG91dHB1dERpcmVjdG9yeSB9ID0gb3B0aW9ucztcbiAgbGV0IGNvbXBsZXRlZCA9IDA7XG4gIGxldCBpbmRleCA9IDA7XG5cbiAgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05leHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChsZXQgcGFnZSA9IGNoYW5nZWRQYWdlc1tpbmRleCsrXTsgcGFnZSAhPT0gdW5kZWZpbmVkOyBwYWdlID0gY2hhbmdlZFBhZ2VzW2luZGV4KytdKSB7XG4gICAgICBjb25zdCBvdXRwdXRQYXRoID0gYCR7b3V0cHV0RGlyZWN0b3J5fS8ke3BhZ2Uuc2x1Z30ucG5nYDtcbiAgICAgIGF3YWl0IG1rZGlyKGRpcm5hbWUob3V0cHV0UGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgYXdhaXQgd3JpdGVGaWxlKG91dHB1dFBhdGgsIGF3YWl0IHJlbmRlck9nSW1hZ2UocGFnZS5wYXJhbXMsIHsgYnJhbmRUZXh0LCBmb250cywgbG9nb0RhdGFVcmkgfSkpO1xuICAgICAgY2FyZHNbcGFnZS5zbHVnXSA9IHBhZ2UuaGFzaDtcbiAgICAgIGNvbXBsZXRlZCsrO1xuICAgICAgaWYgKGNvbXBsZXRlZCAlIFBST0dSRVNTX0xPR19JTlRFUlZBTCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYCAgJHtTdHJpbmcoY29tcGxldGVkKX0vJHtTdHJpbmcoY2hhbmdlZFBhZ2VzLmxlbmd0aCl9IGltYWdlcyBnZW5lcmF0ZWQuLi5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHsgbGVuZ3RoOiBnZXRCdWxrQ29uY3VycmVuY3koQ09OQ1VSUkVOQ1kpIH0sIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBwcm9jZXNzTmV4dCgpO1xuICB9KSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDYWNoZU1hbmlmZXN0KG1hbmlmZXN0UGF0aDogc3RyaW5nKTogUHJvbWlzZTxDYWNoZU1hbmlmZXN0IHwgbnVsbD4ge1xuICBpZiAoIWV4aXN0c1N5bmMobWFuaWZlc3RQYXRoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIEEgbWFuaWZlc3Qgd3JpdHRlbiBiZWZvcmUgdGhlIGxvZ28gd2FzIHRyYWNrZWQgaXMgYSBmbGF0IHNsdWctdG8taGFzaCBtYXA6IGl0IGhhcyBubyBgbG9nb0hhc2hgLCBzbyBldmVyeSBjYXJkXG4gIC8vIHJlLXJlbmRlcnMgb25jZS5cbiAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKG1hbmlmZXN0UGF0aCwgJ3V0Zi04JykpIGFzIFBhcnRpYWw8Q2FjaGVNYW5pZmVzdD47XG4gIHJldHVybiB0eXBlb2YgbWFuaWZlc3QubG9nb0hhc2ggPT09ICdzdHJpbmcnICYmIHR5cGVvZiBtYW5pZmVzdC5jYXJkcyA9PT0gJ29iamVjdCdcbiAgICA/IHsgY2FyZHM6IG1hbmlmZXN0LmNhcmRzLCBsb2dvSGFzaDogbWFuaWZlc3QubG9nb0hhc2ggfVxuICAgIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gcGFyc2VGcm9udE1hdHRlcihjb250ZW50OiBzdHJpbmcpOiBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IGZyb250TWF0dGVyID0gRlJPTlRfTUFUVEVSX1JFR19FWFAuZXhlYyhjb250ZW50KT8uZ3JvdXBzPy5bJ0Zyb250TWF0dGVyJ107XG4gIHJldHVybiBmcm9udE1hdHRlciA9PT0gdW5kZWZpbmVkID8ge30gOiAocGFyc2VZYW1sKGZyb250TWF0dGVyKSBhcyBudWxsIHwgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4pID8/IHt9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJzZVBhZ2UoZmlsZVBhdGg6IHN0cmluZywgY29udGVudERvY3NEaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8bnVsbCB8IFBhZ2VFbnRyeT4ge1xuICBjb25zdCBkYXRhID0gcGFyc2VGcm9udE1hdHRlcihhd2FpdCByZWFkRmlsZShmaWxlUGF0aCwgJ3V0Zi04JykpO1xuXG4gIGNvbnN0IHRpdGxlID0gdG9PcHRpb25hbFN0cmluZyhkYXRhWyd0aXRsZSddKTtcbiAgaWYgKCF0aXRsZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYmFkZ2UgPSBkYXRhWydzaWRlYmFyJ10gYXMgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pj4+IHwgdW5kZWZpbmVkO1xuICBjb25zdCBwYXJhbXM6IE9nQ2FyZENvbnRlbnQgPSB7XG4gICAgYmFkZ2U6IHRvT3B0aW9uYWxTdHJpbmcoYmFkZ2U/LlsnYmFkZ2UnXT8uWyd0ZXh0J10pLFxuICAgIGRlc2NyaXB0aW9uOiB0b09wdGlvbmFsU3RyaW5nKGRhdGFbJ2Rlc2NyaXB0aW9uJ10pID8/ICcnLFxuICAgIHNpZ25hdHVyZTogdG9PcHRpb25hbFN0cmluZyhkYXRhWydzaWduYXR1cmUnXSkgPz8gJycsXG4gICAgdGl0bGVcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGhhc2g6IGNvbXB1dGVPZ0hhc2gocGFyYW1zKSxcbiAgICBwYXJhbXMsXG4gICAgc2x1ZzogZ2V0T2dJbWFnZVBhZ2VTbHVnKGRhdGEsIGZpbGVQYXRoLCBjb250ZW50RG9jc0RpcmVjdG9yeSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gdG9PcHRpb25hbFN0cmluZyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhbGtEaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIGNvbnRlbnREb2NzRGlyZWN0b3J5OiBzdHJpbmcsIHBhZ2VzOiBQYWdlRW50cnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBlbnRyaWVzID0gYXdhaXQgcmVhZGRpcihkaXJlY3RvcnksIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBgJHtkaXJlY3Rvcnl9LyR7ZW50cnkubmFtZX1gO1xuICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBhd2FpdCB3YWxrRGlyZWN0b3J5KGZ1bGxQYXRoLCBjb250ZW50RG9jc0RpcmVjdG9yeSwgcGFnZXMpO1xuICAgIH0gZWxzZSBpZiAoZW50cnkubmFtZS5lbmRzV2l0aCgnLm1kJykgfHwgZW50cnkubmFtZS5lbmRzV2l0aCgnLm1keCcpKSB7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgcGFyc2VQYWdlKGZ1bGxQYXRoLCBjb250ZW50RG9jc0RpcmVjdG9yeSk7XG4gICAgICBpZiAocGFnZSkge1xuICAgICAgICBwYWdlcy5wdXNoKHBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGVBQWU7QUFDeEIsU0FBUyxTQUFTLGlCQUFpQjtBQUluQyxTQUFTLDBCQUEwQjtBQUNuQyxTQUFTLDBCQUEwQjtBQUNuQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBeURQLE1BQU0sY0FBYztBQUNwQixNQUFNLHdCQUF3QjtBQUM5QixNQUFNLGtCQUFrQjtBQU14QixNQUFNLHVCQUF1QjtBQVU3QixlQUFzQixpQkFBaUIsU0FBZ0Q7QUFDckYsUUFBTSxFQUFFLFdBQVcsc0JBQXNCLGFBQWEsZ0JBQWdCLGdCQUFnQixJQUFJO0FBQzFGLFFBQU0sZUFBZSxHQUFHLGVBQWU7QUFFdkMsTUFBSSxDQUFDLFdBQVcsb0JBQW9CLEdBQUc7QUFDckMsWUFBUSxLQUFLLHFDQUFxQyxvQkFBb0IsY0FBYztBQUNwRjtBQUFBLEVBQ0Y7QUFHQSxRQUFNLFFBQVEsTUFBTSxVQUFVLGNBQWM7QUFDNUMsTUFBSSxDQUFDLE9BQU87QUFDVixZQUFRLEtBQUssb0NBQW9DLGNBQWMsaUNBQWlDO0FBQ2hHO0FBQUEsRUFDRjtBQUVBLFFBQU0sUUFBcUIsQ0FBQztBQUM1QixRQUFNLGNBQWMsc0JBQXNCLHNCQUFzQixLQUFLO0FBQ3JFLFVBQVEsS0FBSyxvQkFBb0IsT0FBTyxNQUFNLE1BQU0sQ0FBQyxRQUFRO0FBRTdELFFBQU0sV0FBVyxNQUFNLGdCQUFnQixXQUFXO0FBQ2xELFFBQU0sV0FBVyxNQUFNLGtCQUFrQixZQUFZO0FBQ3JELFFBQU0sUUFBUSxVQUFVLGFBQWEsV0FBVyxFQUFFLEdBQUcsU0FBUyxNQUFNLElBQUksQ0FBQztBQUN6RSxRQUFNLGVBQWUsTUFBTSxPQUFPLENBQUMsU0FBUyxNQUFNLEtBQUssSUFBSSxNQUFNLEtBQUssSUFBSTtBQUMxRSxVQUFRLEtBQUssY0FBYyxPQUFPLGFBQWEsTUFBTSxDQUFDLGNBQWMsT0FBTyxNQUFNLE1BQU0sQ0FBQyxRQUFRO0FBRWhHLE1BQUksYUFBYSxXQUFXLEdBQUc7QUFDN0IsWUFBUSxLQUFLLDJCQUEyQjtBQUN4QztBQUFBLEVBQ0Y7QUFHQSxRQUFNLGNBQWMsTUFBTSxnQkFBZ0IsV0FBVztBQUNyRCxNQUFJLENBQUMsYUFBYTtBQUNoQixZQUFRLEtBQUssaUNBQWlDLFdBQVcsb0NBQW9DO0FBQUEsRUFDL0Y7QUFFQSxRQUFNLHVCQUF1QixFQUFFLFdBQVcsT0FBTyxjQUFjLE9BQU8sYUFBYSxnQkFBZ0IsQ0FBQztBQUVwRyxRQUFNLGNBQTZCLEVBQUUsT0FBTyxTQUFTO0FBQ3JELFFBQU0sTUFBTSxRQUFRLFlBQVksR0FBRyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ3RELFFBQU0sVUFBVSxjQUFjLEtBQUssVUFBVSxhQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLFVBQVEsS0FBSyw4QkFBOEIsT0FBTyxhQUFhLE1BQU0sQ0FBQyxVQUFVO0FBQ2xGO0FBRUEsZUFBZSxnQkFBZ0IsYUFBc0M7QUFDbkUsU0FBTyxXQUFXLFdBQVcsSUFBSSxXQUFXLFFBQVEsRUFBRSxPQUFPLE1BQU0sU0FBUyxXQUFXLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSTtBQUM1RztBQUVBLGVBQWUsdUJBQXVCLFNBQXVEO0FBQzNGLFFBQU0sRUFBRSxXQUFXLE9BQU8sY0FBYyxPQUFPLGFBQWEsZ0JBQWdCLElBQUk7QUFDaEYsTUFBSSxZQUFZO0FBQ2hCLE1BQUksUUFBUTtBQUVaLGlCQUFlLGNBQTZCO0FBQzFDLGFBQVMsT0FBTyxhQUFhLE9BQU8sR0FBRyxTQUFTLFFBQVcsT0FBTyxhQUFhLE9BQU8sR0FBRztBQUN2RixZQUFNLGFBQWEsR0FBRyxlQUFlLElBQUksS0FBSyxJQUFJO0FBQ2xELFlBQU0sTUFBTSxRQUFRLFVBQVUsR0FBRyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ3BELFlBQU0sVUFBVSxZQUFZLE1BQU0sY0FBYyxLQUFLLFFBQVEsRUFBRSxXQUFXLE9BQU8sWUFBWSxDQUFDLENBQUM7QUFDL0YsWUFBTSxLQUFLLElBQUksSUFBSSxLQUFLO0FBQ3hCO0FBQ0EsVUFBSSxZQUFZLDBCQUEwQixHQUFHO0FBQzNDLGdCQUFRLEtBQUssS0FBSyxPQUFPLFNBQVMsQ0FBQyxJQUFJLE9BQU8sYUFBYSxNQUFNLENBQUMsc0JBQXNCO0FBQUEsTUFDMUY7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLFFBQU0sUUFBUSxJQUFJLE1BQU0sS0FBSyxFQUFFLFFBQVEsbUJBQW1CLFdBQVcsRUFBRSxHQUFHLFlBQVk7QUFDcEYsVUFBTSxZQUFZO0FBQUEsRUFDcEIsQ0FBQyxDQUFDO0FBQ0o7QUFFQSxlQUFlLGtCQUFrQixjQUFxRDtBQUNwRixNQUFJLENBQUMsV0FBVyxZQUFZLEdBQUc7QUFDN0IsV0FBTztBQUFBLEVBQ1Q7QUFHQSxRQUFNLFdBQVcsS0FBSyxNQUFNLE1BQU0sU0FBUyxjQUFjLE9BQU8sQ0FBQztBQUNqRSxTQUFPLE9BQU8sU0FBUyxhQUFhLFlBQVksT0FBTyxTQUFTLFVBQVUsV0FDdEUsRUFBRSxPQUFPLFNBQVMsT0FBTyxVQUFVLFNBQVMsU0FBUyxJQUNyRDtBQUNOO0FBRUEsU0FBUyxpQkFBaUIsU0FBbUQ7QUFDM0UsUUFBTSxjQUFjLHFCQUFxQixLQUFLLE9BQU8sR0FBRyxTQUFTLGFBQWE7QUFDOUUsU0FBTyxnQkFBZ0IsU0FBWSxDQUFDLElBQUssVUFBVSxXQUFXLEtBQWlELENBQUM7QUFDbEg7QUFFQSxlQUFlLFVBQVUsVUFBa0Isc0JBQXlEO0FBQ2xHLFFBQU0sT0FBTyxpQkFBaUIsTUFBTSxTQUFTLFVBQVUsT0FBTyxDQUFDO0FBRS9ELFFBQU0sUUFBUSxpQkFBaUIsS0FBSyxPQUFPLENBQUM7QUFDNUMsTUFBSSxDQUFDLE9BQU87QUFDVixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sUUFBUSxLQUFLLFNBQVM7QUFDNUIsUUFBTSxTQUF3QjtBQUFBLElBQzVCLE9BQU8saUJBQWlCLFFBQVEsT0FBTyxJQUFJLE1BQU0sQ0FBQztBQUFBLElBQ2xELGFBQWEsaUJBQWlCLEtBQUssYUFBYSxDQUFDLEtBQUs7QUFBQSxJQUN0RCxXQUFXLGlCQUFpQixLQUFLLFdBQVcsQ0FBQyxLQUFLO0FBQUEsSUFDbEQ7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUFBLElBQ0wsTUFBTSxjQUFjLE1BQU07QUFBQSxJQUMxQjtBQUFBLElBQ0EsTUFBTSxtQkFBbUIsTUFBTSxVQUFVLG9CQUFvQjtBQUFBLEVBQy9EO0FBQ0Y7QUFFQSxTQUFTLGlCQUFpQixPQUFvQztBQUM1RCxTQUFPLE9BQU8sVUFBVSxXQUFXLFFBQVE7QUFDN0M7QUFFQSxlQUFlLGNBQWMsV0FBbUIsc0JBQThCLE9BQW1DO0FBQy9HLFFBQU0sVUFBVSxNQUFNLFFBQVEsV0FBVyxFQUFFLGVBQWUsS0FBSyxDQUFDO0FBQ2hFLGFBQVcsU0FBUyxTQUFTO0FBQzNCLFVBQU0sV0FBVyxHQUFHLFNBQVMsSUFBSSxNQUFNLElBQUk7QUFDM0MsUUFBSSxNQUFNLFlBQVksR0FBRztBQUN2QixZQUFNLGNBQWMsVUFBVSxzQkFBc0IsS0FBSztBQUFBLElBQzNELFdBQVcsTUFBTSxLQUFLLFNBQVMsS0FBSyxLQUFLLE1BQU0sS0FBSyxTQUFTLE1BQU0sR0FBRztBQUNwRSxZQUFNLE9BQU8sTUFBTSxVQUFVLFVBQVUsb0JBQW9CO0FBQzNELFVBQUksTUFBTTtBQUNSLGNBQU0sS0FBSyxJQUFJO0FBQUEsTUFDakI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGOyIsIm5hbWVzIjpbXX0=
@@ -4,6 +4,7 @@
4
4
  /// <reference lib="esnext.disposable" />
5
5
  /// <reference types="node" />
6
6
  export * as 'build' from './build.mjs';
7
+ export * as 'bulk-concurrency' from './bulk-concurrency.mjs';
7
8
  export * as 'bundlers' from './bundlers/index.mjs';
8
9
  export * as 'check-project-types' from './check-project-types.mjs';
9
10
  export * as 'cli-utils' from './cli-utils.mjs';
@@ -4,6 +4,7 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  import * as build from "./build.mjs";
7
+ import * as bulk_concurrency from "./bulk-concurrency.mjs";
7
8
  import * as bundlers from "./bundlers/index.mjs";
8
9
  import * as check_project_types from "./check-project-types.mjs";
9
10
  import * as cli_utils from "./cli-utils.mjs";
@@ -41,6 +42,7 @@ import * as validate_dependencies from "./validate-dependencies.mjs";
41
42
  import * as version from "./version.mjs";
42
43
  export {
43
44
  build,
45
+ bulk_concurrency as "bulk-concurrency",
44
46
  bundlers,
45
47
  check_project_types as "check-project-types",
46
48
  cli_utils as "cli-utils",
@@ -77,4 +79,4 @@ export {
77
79
  validate_dependencies as "validate-dependencies",
78
80
  version
79
81
  };
80
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LWxpbnQtbWQtaGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtbGludC1tZC1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXInIGZyb20gJy4vY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlci50cyc7XG5leHBvcnQgKiBhcyAnZG9jcy1zaXRlJyBmcm9tICcuL2RvY3Mtc2l0ZS9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZW52LXRvZ2dsZScgZnJvbSAnLi9lbnYtdG9nZ2xlLnRzJztcbmV4cG9ydCAqIGFzICdleGVjJyBmcm9tICcuL2V4ZWMudHMnO1xuZXhwb3J0ICogYXMgJ2ZvcmJpZGRlbi1wYXR0ZXJucycgZnJvbSAnLi9mb3JiaWRkZW4tcGF0dGVybnMudHMnO1xuZXhwb3J0ICogYXMgJ2Zvcm1hdHRlcnMnIGZyb20gJy4vZm9ybWF0dGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnZnMnIGZyb20gJy4vZnMudHMnO1xuZXhwb3J0ICogYXMgJ2dhdGUnIGZyb20gJy4vZ2F0ZS50cyc7XG5leHBvcnQgKiBhcyAnZ2l0JyBmcm9tICcuL2dpdC50cyc7XG5leHBvcnQgKiBhcyAnanNvbicgZnJvbSAnLi9qc29uLnRzJztcbmV4cG9ydCAqIGFzICdsaWJyYXJ5LWJ1aWxkJyBmcm9tICcuL2xpYnJhcnktYnVpbGQudHMnO1xuZXhwb3J0ICogYXMgJ2xpbnRlcnMnIGZyb20gJy4vbGludGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbmFuby1zdGFnZWQtY29uZmlnJyBmcm9tICcuL25hbm8tc3RhZ2VkLWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnbnBtLXB1Ymxpc2gnIGZyb20gJy4vbnBtLXB1Ymxpc2gudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1ydW4nIGZyb20gJy4vbnBtLXJ1bi50cyc7XG5leHBvcnQgKiBhcyAnbnBtJyBmcm9tICcuL25wbS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1sb2NrLWludGVncml0eScgZnJvbSAnLi9wYWNrYWdlLWxvY2staW50ZWdyaXR5LnRzJztcbmV4cG9ydCAqIGFzICdwYWNrYWdlLW1hbmFnZXInIGZyb20gJy4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdyZWxlYXNlZC1pc3N1ZXMnIGZyb20gJy4vcmVsZWFzZWQtaXNzdWVzLnRzJztcbmV4cG9ydCAqIGFzICdyZXBvLXBhdGhzJyBmcm9tICcuL3JlcG8tcGF0aHMudHMnO1xuZXhwb3J0ICogYXMgJ3Jvb3QnIGZyb20gJy4vcm9vdC50cyc7XG5leHBvcnQgKiBhcyAnc2hhcmVkLWNvbmZpZy1maWxlcycgZnJvbSAnLi9zaGFyZWQtY29uZmlnLWZpbGVzLnRzJztcbmV4cG9ydCAqIGFzICd0ZXN0LXJ1bm5lcnMnIGZyb20gJy4vdGVzdC1ydW5uZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICd1cHN0cmVhbS1zeW5jLWNsaScgZnJvbSAnLi91cHN0cmVhbS1zeW5jLWNsaS50cyc7XG5leHBvcnQgKiBhcyAndXBzdHJlYW0tc3luYycgZnJvbSAnLi91cHN0cmVhbS1zeW5jLnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0ZS1kZWNsYXJhdGlvbnMnIGZyb20gJy4vdmFsaWRhdGUtZGVjbGFyYXRpb25zLnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0ZS1kZXBlbmRlbmNpZXMnIGZyb20gJy4vdmFsaWRhdGUtZGVwZW5kZW5jaWVzLnRzJztcbmV4cG9ydCAqIGFzICd2ZXJzaW9uJyBmcm9tICcuL3ZlcnNpb24udHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZLFdBQWE7QUFDekIsWUFBWSxjQUFnQjtBQUM1QixZQUFZQSx5QkFBMkI7QUFDdkMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZLGdCQUFrQjtBQUM5QixZQUFZLFFBQVU7QUFDdEIsWUFBWSxVQUFZO0FBQ3hCLFlBQVksU0FBVztBQUN2QixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksYUFBZTtBQUMzQixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGFBQWU7QUFDM0IsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyxxQkFBdUI7QUFDbkMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZLFVBQVk7QUFDeEIsWUFBWUMseUJBQTJCO0FBQ3ZDLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWSxhQUFlOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJjb21taXRsaW50LWZvcmJpZGRlbi1wYXR0ZXJucyIsICJjb21taXRsaW50LWxpbnQtbWQtaGVhZGVyIiwgImNvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIiLCAiZG9jcy1zaXRlIiwgImVudi10b2dnbGUiLCAiZm9yYmlkZGVuLXBhdHRlcm5zIiwgImxpYnJhcnktYnVpbGQiLCAibmFuby1zdGFnZWQtY29uZmlnIiwgIm5wbS1wdWJsaXNoIiwgIm5wbS1ydW4iLCAicGFja2FnZS1sb2NrLWludGVncml0eSIsICJwYWNrYWdlLW1hbmFnZXIiLCAicmVsZWFzZWQtaXNzdWVzIiwgInJlcG8tcGF0aHMiLCAic2hhcmVkLWNvbmZpZy1maWxlcyIsICJ0ZXN0LXJ1bm5lcnMiLCAidXBzdHJlYW0tc3luYy1jbGkiLCAidXBzdHJlYW0tc3luYyIsICJ2YWxpZGF0ZS1kZWNsYXJhdGlvbnMiLCAidmFsaWRhdGUtZGVwZW5kZW5jaWVzIl0KfQo=
82
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidWxrLWNvbmN1cnJlbmN5JyBmcm9tICcuL2J1bGstY29uY3VycmVuY3kudHMnO1xuZXhwb3J0ICogYXMgJ2J1bmRsZXJzJyBmcm9tICcuL2J1bmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjaGVjay1wcm9qZWN0LXR5cGVzJyBmcm9tICcuL2NoZWNrLXByb2plY3QtdHlwZXMudHMnO1xuZXhwb3J0ICogYXMgJ2NsaS11dGlscycgZnJvbSAnLi9jbGktdXRpbHMudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtZ2VuZXJhdG9yJyBmcm9tICcuL2NvZGUtZ2VuZXJhdG9yLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LWNvbmZpZycgZnJvbSAnLi9jb21taXRsaW50LWNvbmZpZy50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1mb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vY29tbWl0bGludC1mb3JiaWRkZW4tcGF0dGVybnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtbGludC1tZC1oZWFkZXInIGZyb20gJy4vY29tbWl0bGludC1saW50LW1kLWhlYWRlci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlcicgZnJvbSAnLi9jb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyLnRzJztcbmV4cG9ydCAqIGFzICdkb2NzLXNpdGUnIGZyb20gJy4vZG9jcy1zaXRlL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdlbnYtdG9nZ2xlJyBmcm9tICcuL2Vudi10b2dnbGUudHMnO1xuZXhwb3J0ICogYXMgJ2V4ZWMnIGZyb20gJy4vZXhlYy50cyc7XG5leHBvcnQgKiBhcyAnZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2ZvcmJpZGRlbi1wYXR0ZXJucy50cyc7XG5leHBvcnQgKiBhcyAnZm9ybWF0dGVycycgZnJvbSAnLi9mb3JtYXR0ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdmcycgZnJvbSAnLi9mcy50cyc7XG5leHBvcnQgKiBhcyAnZ2F0ZScgZnJvbSAnLi9nYXRlLnRzJztcbmV4cG9ydCAqIGFzICdnaXQnIGZyb20gJy4vZ2l0LnRzJztcbmV4cG9ydCAqIGFzICdqc29uJyBmcm9tICcuL2pzb24udHMnO1xuZXhwb3J0ICogYXMgJ2xpYnJhcnktYnVpbGQnIGZyb20gJy4vbGlicmFyeS1idWlsZC50cyc7XG5leHBvcnQgKiBhcyAnbGludGVycycgZnJvbSAnLi9saW50ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICduYW5vLXN0YWdlZC1jb25maWcnIGZyb20gJy4vbmFuby1zdGFnZWQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICducG0tcHVibGlzaCcgZnJvbSAnLi9ucG0tcHVibGlzaC50cyc7XG5leHBvcnQgKiBhcyAnbnBtLXJ1bicgZnJvbSAnLi9ucG0tcnVuLnRzJztcbmV4cG9ydCAqIGFzICducG0nIGZyb20gJy4vbnBtLnRzJztcbmV4cG9ydCAqIGFzICdwYWNrYWdlLWxvY2staW50ZWdyaXR5JyBmcm9tICcuL3BhY2thZ2UtbG9jay1pbnRlZ3JpdHkudHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbWFuYWdlcicgZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ3JlbGVhc2VkLWlzc3VlcycgZnJvbSAnLi9yZWxlYXNlZC1pc3N1ZXMudHMnO1xuZXhwb3J0ICogYXMgJ3JlcG8tcGF0aHMnIGZyb20gJy4vcmVwby1wYXRocy50cyc7XG5leHBvcnQgKiBhcyAncm9vdCcgZnJvbSAnLi9yb290LnRzJztcbmV4cG9ydCAqIGFzICdzaGFyZWQtY29uZmlnLWZpbGVzJyBmcm9tICcuL3NoYXJlZC1jb25maWctZmlsZXMudHMnO1xuZXhwb3J0ICogYXMgJ3Rlc3QtcnVubmVycycgZnJvbSAnLi90ZXN0LXJ1bm5lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3Vwc3RyZWFtLXN5bmMtY2xpJyBmcm9tICcuL3Vwc3RyZWFtLXN5bmMtY2xpLnRzJztcbmV4cG9ydCAqIGFzICd1cHN0cmVhbS1zeW5jJyBmcm9tICcuL3Vwc3RyZWFtLXN5bmMudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRlLWRlY2xhcmF0aW9ucycgZnJvbSAnLi92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRlLWRlcGVuZGVuY2llcycgZnJvbSAnLi92YWxpZGF0ZS1kZXBlbmRlbmNpZXMudHMnO1xuZXhwb3J0ICogYXMgJ3ZlcnNpb24nIGZyb20gJy4vdmVyc2lvbi50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVksV0FBYTtBQUN6QixZQUFZQSxzQkFBd0I7QUFDcEMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQyx5QkFBMkI7QUFDdkMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZLGdCQUFrQjtBQUM5QixZQUFZLFFBQVU7QUFDdEIsWUFBWSxVQUFZO0FBQ3hCLFlBQVksU0FBVztBQUN2QixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksYUFBZTtBQUMzQixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGFBQWU7QUFDM0IsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyxxQkFBdUI7QUFDbkMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLGdCQUFrQjtBQUM5QixZQUFZLFVBQVk7QUFDeEIsWUFBWUMseUJBQTJCO0FBQ3ZDLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWSxhQUFlOyIsCiAgIm5hbWVzIjogWyJidWxrLWNvbmN1cnJlbmN5IiwgImNoZWNrLXByb2plY3QtdHlwZXMiLCAiY2xpLXV0aWxzIiwgImNvZGUtZ2VuZXJhdG9yIiwgImNvbW1pdGxpbnQtY29uZmlnIiwgImNvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zIiwgImNvbW1pdGxpbnQtbGludC1tZC1oZWFkZXIiLCAiY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlciIsICJkb2NzLXNpdGUiLCAiZW52LXRvZ2dsZSIsICJmb3JiaWRkZW4tcGF0dGVybnMiLCAibGlicmFyeS1idWlsZCIsICJuYW5vLXN0YWdlZC1jb25maWciLCAibnBtLXB1Ymxpc2giLCAibnBtLXJ1biIsICJwYWNrYWdlLWxvY2staW50ZWdyaXR5IiwgInBhY2thZ2UtbWFuYWdlciIsICJyZWxlYXNlZC1pc3N1ZXMiLCAicmVwby1wYXRocyIsICJzaGFyZWQtY29uZmlnLWZpbGVzIiwgInRlc3QtcnVubmVycyIsICJ1cHN0cmVhbS1zeW5jLWNsaSIsICJ1cHN0cmVhbS1zeW5jIiwgInZhbGlkYXRlLWRlY2xhcmF0aW9ucyIsICJ2YWxpZGF0ZS1kZXBlbmRlbmNpZXMiXQp9Cg==
@@ -4,6 +4,10 @@ if you want to view the source, please visit the github repository of this plugi
4
4
  */
5
5
 
6
6
  const noRestrictedSyntaxRuleEntries = [
7
+ {
8
+ message: "Destructure originalArguments (or originalArgs) into named parameters from the patched signature instead of indexing positionally.",
9
+ selector: 'Property[key.name="patchHandler"] MemberExpression[computed=true]:matches([property.value=/^[0-9]+$/], [property.raw=/^[0-9]/]):matches([object.type="Identifier"][object.name=/^original(Arguments|Args)$/], [object.type="MemberExpression"][object.property.name=/^original(Arguments|Args)$/], [object.type="MemberExpression"][object.property.value=/^original(Arguments|Args)$/])'
10
+ },
7
11
  {
8
12
  message: "Do not use definite assignment assertions (!). Initialize the field or make it optional.",
9
13
  selector: "PropertyDefinition[definite=true]"
@@ -48,4 +52,4 @@ const noRestrictedSyntaxRuleEntries = [
48
52
  export {
49
53
  noRestrictedSyntaxRuleEntries
50
54
  };
51
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LW5vLXJlc3RyaWN0ZWQtc3ludGF4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBydWxlIGVudHJpZXMgZm9yIHRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZy5cbiAqXG4gKiBFeHBvcnRlZCBhcyBhIHN0YW5kYWxvbmUgY29uc3RhbnQgc28gZWFjaCBzZWxlY3RvciBjYW4gYmUgdW5pdC10ZXN0ZWRcbiAqIGluZGVwZW5kZW50bHkgb2YgdGhlIGxhcmdlciBkZWNsYXJhdGl2ZSBjb25maWcuXG4gKi9cblxuLyoqXG4gKiBBIHNpbmdsZSBgbm8tcmVzdHJpY3RlZC1zeW50YXhgIGVudHJ5IHBhaXJpbmcgYW4gRVNMaW50IEFTVCBzZWxlY3RvciB3aXRoIGFcbiAqIGh1bWFuLXJlYWRhYmxlIG1lc3NhZ2UgZXhwbGFpbmluZyB3aHkgdGhlIHBhdHRlcm4gaXMgYmFubmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyeSB7XG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBtZXNzYWdlIHNob3duIHdoZW4gdGhlIHNlbGVjdG9yIG1hdGNoZXMuXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVTTGludCBBU1Qgc2VsZWN0b3IgaWRlbnRpZnlpbmcgdGhlIGJhbm5lZCBwYXR0ZXJuLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0b3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN0cmljdGVkLXN5bnRheCBlbnRyaWVzIGVuZm9yY2VkIGJ5IHRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZy5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzOiByZWFkb25seSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnlbXSA9IFtcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRlZmluaXRlIGFzc2lnbm1lbnQgYXNzZXJ0aW9ucyAoISkuIEluaXRpYWxpemUgdGhlIGZpZWxkIG9yIG1ha2UgaXQgb3B0aW9uYWwuJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgYHR5cGVgIGFsaWFzIGluc3RlYWQuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUxpdGVyYWw6bm90KFRTVHlwZUFsaWFzRGVjbGFyYXRpb24gPiBUU1R5cGVMaXRlcmFsKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgbWFwcGVkIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBgdHlwZWAgYWxpYXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNNYXBwZWRUeXBlOm5vdChUU1R5cGVBbGlhc0RlY2xhcmF0aW9uID4gVFNNYXBwZWRUeXBlKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGBkZWNsYXJlYCBvbiBjbGFzcyBwcm9wZXJ0aWVzLiBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvciB1c2UgYSByZWd1bGFyIHR5cGUgYW5ub3RhdGlvbi4nLFxuICAgIHNlbGVjdG9yOiAnUHJvcGVydHlEZWZpbml0aW9uW2RlY2xhcmU9dHJ1ZV0nXG4gIH1cbl07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQTRCTyxNQUFNLGdDQUF3RTtBQUFBLEVBQ25GO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
55
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LW5vLXJlc3RyaWN0ZWQtc3ludGF4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBydWxlIGVudHJpZXMgZm9yIHRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZy5cbiAqXG4gKiBFeHBvcnRlZCBhcyBhIHN0YW5kYWxvbmUgY29uc3RhbnQgc28gZWFjaCBzZWxlY3RvciBjYW4gYmUgdW5pdC10ZXN0ZWRcbiAqIGluZGVwZW5kZW50bHkgb2YgdGhlIGxhcmdlciBkZWNsYXJhdGl2ZSBjb25maWcuXG4gKi9cblxuLyoqXG4gKiBBIHNpbmdsZSBgbm8tcmVzdHJpY3RlZC1zeW50YXhgIGVudHJ5IHBhaXJpbmcgYW4gRVNMaW50IEFTVCBzZWxlY3RvciB3aXRoIGFcbiAqIGh1bWFuLXJlYWRhYmxlIG1lc3NhZ2UgZXhwbGFpbmluZyB3aHkgdGhlIHBhdHRlcm4gaXMgYmFubmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyeSB7XG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBtZXNzYWdlIHNob3duIHdoZW4gdGhlIHNlbGVjdG9yIG1hdGNoZXMuXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVTTGludCBBU1Qgc2VsZWN0b3IgaWRlbnRpZnlpbmcgdGhlIGJhbm5lZCBwYXR0ZXJuLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0b3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN0cmljdGVkLXN5bnRheCBlbnRyaWVzIGVuZm9yY2VkIGJ5IHRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZy5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzOiByZWFkb25seSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnlbXSA9IFtcbiAge1xuICAgIG1lc3NhZ2U6ICdEZXN0cnVjdHVyZSBvcmlnaW5hbEFyZ3VtZW50cyAob3Igb3JpZ2luYWxBcmdzKSBpbnRvIG5hbWVkIHBhcmFtZXRlcnMgZnJvbSB0aGUgcGF0Y2hlZCBzaWduYXR1cmUgaW5zdGVhZCBvZiBpbmRleGluZyBwb3NpdGlvbmFsbHkuJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5W2tleS5uYW1lPVwicGF0Y2hIYW5kbGVyXCJdIE1lbWJlckV4cHJlc3Npb25bY29tcHV0ZWQ9dHJ1ZV06bWF0Y2hlcyhbcHJvcGVydHkudmFsdWU9L15bMC05XSskL10sIFtwcm9wZXJ0eS5yYXc9L15bMC05XS9dKTptYXRjaGVzKFtvYmplY3QudHlwZT1cIklkZW50aWZpZXJcIl1bb2JqZWN0Lm5hbWU9L15vcmlnaW5hbChBcmd1bWVudHN8QXJncykkL10sIFtvYmplY3QudHlwZT1cIk1lbWJlckV4cHJlc3Npb25cIl1bb2JqZWN0LnByb3BlcnR5Lm5hbWU9L15vcmlnaW5hbChBcmd1bWVudHN8QXJncykkL10sIFtvYmplY3QudHlwZT1cIk1lbWJlckV4cHJlc3Npb25cIl1bb2JqZWN0LnByb3BlcnR5LnZhbHVlPS9eb3JpZ2luYWwoQXJndW1lbnRzfEFyZ3MpJC9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRlZmluaXRlIGFzc2lnbm1lbnQgYXNzZXJ0aW9ucyAoISkuIEluaXRpYWxpemUgdGhlIGZpZWxkIG9yIG1ha2UgaXQgb3B0aW9uYWwuJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgYHR5cGVgIGFsaWFzIGluc3RlYWQuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUxpdGVyYWw6bm90KFRTVHlwZUFsaWFzRGVjbGFyYXRpb24gPiBUU1R5cGVMaXRlcmFsKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgbWFwcGVkIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBgdHlwZWAgYWxpYXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNNYXBwZWRUeXBlOm5vdChUU1R5cGVBbGlhc0RlY2xhcmF0aW9uID4gVFNNYXBwZWRUeXBlKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGBkZWNsYXJlYCBvbiBjbGFzcyBwcm9wZXJ0aWVzLiBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvciB1c2UgYSByZWd1bGFyIHR5cGUgYW5ub3RhdGlvbi4nLFxuICAgIHNlbGVjdG9yOiAnUHJvcGVydHlEZWZpbml0aW9uW2RlY2xhcmU9dHJ1ZV0nXG4gIH1cbl07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQTRCTyxNQUFNLGdDQUF3RTtBQUFBLEVBQ25GO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -12,6 +12,7 @@ import { paramsOptionsNameMatch } from "./params-options-name-match.mjs";
12
12
  import { preferLogicalOperatorOverTernary } from "./prefer-logical-operator-over-ternary.mjs";
13
13
  import { preferNoopAsync } from "./prefer-noop-async.mjs";
14
14
  import { readonlyInterfaceMembers } from "./readonly-interface-members.mjs";
15
+ import { readonlyMemberArrays } from "./readonly-member-arrays.mjs";
15
16
  import { requireMethodTemplate } from "./require-method-template.mjs";
16
17
  import { requireSuperCall } from "./require-super-call.mjs";
17
18
  const IN_HOUSE_ESLINT_PLUGIN_NAME = "typescript-dev-toolkit";
@@ -25,6 +26,7 @@ const genericInHouseEslintRules = {
25
26
  "prefer-logical-operator-over-ternary": preferLogicalOperatorOverTernary,
26
27
  "prefer-noop-async": preferNoopAsync,
27
28
  "readonly-interface-members": readonlyInterfaceMembers,
29
+ "readonly-member-arrays": readonlyMemberArrays,
28
30
  "require-method-template": requireMethodTemplate,
29
31
  "require-super-call": requireSuperCall
30
32
  };
@@ -36,4 +38,4 @@ export {
36
38
  genericInHouseEslintRules,
37
39
  inHouseEslintPlugin
38
40
  };
39
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luLWhvdXNlLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBnZW5lcmljIGluLWhvdXNlIEVTTGludCBydWxlcywgYW5kIHRoZSBwbHVnaW4gdGhhdCByZWdpc3RlcnMgdGhlbS5cbiAqXG4gKiBUaGUgZ2VuZXJpYyBydWxlcyBhcmUgcmVnaXN0ZXJlZCB1bmRlciB7QGxpbmsgSU5fSE9VU0VfRVNMSU5UX1BMVUdJTl9OQU1FfSwgdGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgdGhhdCBkZWZpbmVzXG4gKiB0aGVtLiBBIHBhY2thZ2UgYWRkaW5nIHJ1bGVzIG9mIGl0cyBvd24gcmVnaXN0ZXJzIHRoZW0gdW5kZXIgaXRzIG93biBuYW1lLCBhcyBhIHBsdWdpbiBvZiBpdHMgb3duIGJlc2lkZVxuICoge0BsaW5rIGluSG91c2VFc2xpbnRQbHVnaW59LlxuICovXG5cbmltcG9ydCB0eXBlIHsgRVNMaW50IH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4gfSBmcm9tICcuL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4udHMnO1xuaW1wb3J0IHsgbm9LZXl3b3JkSWRlbnRpZmllcnMgfSBmcm9tICcuL25vLWtleXdvcmQtaWRlbnRpZmllcnMudHMnO1xuaW1wb3J0IHsgbm9VbnJlc29sdmVkSnNkb2NMaW5rIH0gZnJvbSAnLi9uby11bnJlc29sdmVkLWpzZG9jLWxpbmsudHMnO1xuaW1wb3J0IHsgbm9VbnVzZWRQYXJhbXNNZW1iZXJzIH0gZnJvbSAnLi9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyB9IGZyb20gJy4vbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcy50cyc7XG5pbXBvcnQgeyBwYXJhbXNPcHRpb25zTmFtZU1hdGNoIH0gZnJvbSAnLi9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoLnRzJztcbmltcG9ydCB7IHByZWZlckxvZ2ljYWxPcGVyYXRvck92ZXJUZXJuYXJ5IH0gZnJvbSAnLi9wcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnkudHMnO1xuaW1wb3J0IHsgcHJlZmVyTm9vcEFzeW5jIH0gZnJvbSAnLi9wcmVmZXItbm9vcC1hc3luYy50cyc7XG5pbXBvcnQgeyByZWFkb25seUludGVyZmFjZU1lbWJlcnMgfSBmcm9tICcuL3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzLnRzJztcbmltcG9ydCB7IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSB9IGZyb20gJy4vcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUudHMnO1xuaW1wb3J0IHsgcmVxdWlyZVN1cGVyQ2FsbCB9IGZyb20gJy4vcmVxdWlyZS1zdXBlci1jYWxsLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIHRoZSBnZW5lcmljIGluLWhvdXNlIHJ1bGVzIGFyZSByZWdpc3RlcmVkIHVuZGVyOiB0aGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0aGF0IGRlZmluZXMgdGhlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IElOX0hPVVNFX0VTTElOVF9QTFVHSU5fTkFNRSA9ICd0eXBlc2NyaXB0LWRldi10b29sa2l0JztcblxuLyoqXG4gKiBUaGUgZ2VuZXJpYyBpbi1ob3VzZSBydWxlcywga2V5ZWQgYnkgdGhlaXIgbmFtZSBpbnNpZGUge0BsaW5rIElOX0hPVVNFX0VTTElOVF9QTFVHSU5fTkFNRX0uXG4gKi9cbmV4cG9ydCBjb25zdCBnZW5lcmljSW5Ib3VzZUVzbGludFJ1bGVzOiBOb25OdWxsYWJsZTxFU0xpbnQuUGx1Z2luWydydWxlcyddPiA9IHtcbiAgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybixcbiAgJ25vLWtleXdvcmQtaWRlbnRpZmllcnMnOiBub0tleXdvcmRJZGVudGlmaWVycyxcbiAgJ25vLXVucmVzb2x2ZWQtanNkb2MtbGluayc6IG5vVW5yZXNvbHZlZEpzZG9jTGluayxcbiAgJ25vLXVudXNlZC1wYXJhbXMtbWVtYmVycyc6IG5vVW51c2VkUGFyYW1zTWVtYmVycyxcbiAgJ25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMnOiBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzLFxuICAncGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCc6IHBhcmFtc09wdGlvbnNOYW1lTWF0Y2gsXG4gICdwcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnknOiBwcmVmZXJMb2dpY2FsT3BlcmF0b3JPdmVyVGVybmFyeSxcbiAgJ3ByZWZlci1ub29wLWFzeW5jJzogcHJlZmVyTm9vcEFzeW5jLFxuICAncmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMnOiByZWFkb25seUludGVyZmFjZU1lbWJlcnMsXG4gICdyZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSxcbiAgJ3JlcXVpcmUtc3VwZXItY2FsbCc6IHJlcXVpcmVTdXBlckNhbGxcbn07XG5cbi8qKlxuICogVGhlIEVTTGludCBwbHVnaW4gcmVnaXN0ZXJpbmcgdGhlIGdlbmVyaWMgaW4taG91c2UgcnVsZXMgYWxvbmUsIGZvciBhIHByb2plY3QgdGhhdCBhZGRzIG5vbmUgb2YgaXRzIG93bi5cbiAqL1xuZXhwb3J0IGNvbnN0IGluSG91c2VFc2xpbnRQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiBnZW5lcmljSW5Ib3VzZUVzbGludFJ1bGVzXG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFZQSxTQUFTLHFDQUFxQztBQUM5QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGlDQUFpQztBQUMxQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLHdDQUF3QztBQUNqRCxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGdDQUFnQztBQUN6QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHdCQUF3QjtBQUsxQixNQUFNLDhCQUE4QjtBQUtwQyxNQUFNLDRCQUFpRTtBQUFBLEVBQzVFLHNDQUFzQztBQUFBLEVBQ3RDLDBCQUEwQjtBQUFBLEVBQzFCLDRCQUE0QjtBQUFBLEVBQzVCLDRCQUE0QjtBQUFBLEVBQzVCLGdDQUFnQztBQUFBLEVBQ2hDLDZCQUE2QjtBQUFBLEVBQzdCLHdDQUF3QztBQUFBLEVBQ3hDLHFCQUFxQjtBQUFBLEVBQ3JCLDhCQUE4QjtBQUFBLEVBQzlCLDJCQUEyQjtBQUFBLEVBQzNCLHNCQUFzQjtBQUN4QjtBQUtPLE1BQU0sc0JBQXFDO0FBQUEsRUFDaEQsT0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
41
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luLWhvdXNlLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBnZW5lcmljIGluLWhvdXNlIEVTTGludCBydWxlcywgYW5kIHRoZSBwbHVnaW4gdGhhdCByZWdpc3RlcnMgdGhlbS5cbiAqXG4gKiBUaGUgZ2VuZXJpYyBydWxlcyBhcmUgcmVnaXN0ZXJlZCB1bmRlciB7QGxpbmsgSU5fSE9VU0VfRVNMSU5UX1BMVUdJTl9OQU1FfSwgdGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgdGhhdCBkZWZpbmVzXG4gKiB0aGVtLiBBIHBhY2thZ2UgYWRkaW5nIHJ1bGVzIG9mIGl0cyBvd24gcmVnaXN0ZXJzIHRoZW0gdW5kZXIgaXRzIG93biBuYW1lLCBhcyBhIHBsdWdpbiBvZiBpdHMgb3duIGJlc2lkZVxuICoge0BsaW5rIGluSG91c2VFc2xpbnRQbHVnaW59LlxuICovXG5cbmltcG9ydCB0eXBlIHsgRVNMaW50IH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4gfSBmcm9tICcuL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4udHMnO1xuaW1wb3J0IHsgbm9LZXl3b3JkSWRlbnRpZmllcnMgfSBmcm9tICcuL25vLWtleXdvcmQtaWRlbnRpZmllcnMudHMnO1xuaW1wb3J0IHsgbm9VbnJlc29sdmVkSnNkb2NMaW5rIH0gZnJvbSAnLi9uby11bnJlc29sdmVkLWpzZG9jLWxpbmsudHMnO1xuaW1wb3J0IHsgbm9VbnVzZWRQYXJhbXNNZW1iZXJzIH0gZnJvbSAnLi9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyB9IGZyb20gJy4vbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcy50cyc7XG5pbXBvcnQgeyBwYXJhbXNPcHRpb25zTmFtZU1hdGNoIH0gZnJvbSAnLi9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoLnRzJztcbmltcG9ydCB7IHByZWZlckxvZ2ljYWxPcGVyYXRvck92ZXJUZXJuYXJ5IH0gZnJvbSAnLi9wcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnkudHMnO1xuaW1wb3J0IHsgcHJlZmVyTm9vcEFzeW5jIH0gZnJvbSAnLi9wcmVmZXItbm9vcC1hc3luYy50cyc7XG5pbXBvcnQgeyByZWFkb25seUludGVyZmFjZU1lbWJlcnMgfSBmcm9tICcuL3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzLnRzJztcbmltcG9ydCB7IHJlYWRvbmx5TWVtYmVyQXJyYXlzIH0gZnJvbSAnLi9yZWFkb25seS1tZW1iZXItYXJyYXlzLnRzJztcbmltcG9ydCB7IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSB9IGZyb20gJy4vcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUudHMnO1xuaW1wb3J0IHsgcmVxdWlyZVN1cGVyQ2FsbCB9IGZyb20gJy4vcmVxdWlyZS1zdXBlci1jYWxsLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIHRoZSBnZW5lcmljIGluLWhvdXNlIHJ1bGVzIGFyZSByZWdpc3RlcmVkIHVuZGVyOiB0aGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0aGF0IGRlZmluZXMgdGhlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IElOX0hPVVNFX0VTTElOVF9QTFVHSU5fTkFNRSA9ICd0eXBlc2NyaXB0LWRldi10b29sa2l0JztcblxuLyoqXG4gKiBUaGUgZ2VuZXJpYyBpbi1ob3VzZSBydWxlcywga2V5ZWQgYnkgdGhlaXIgbmFtZSBpbnNpZGUge0BsaW5rIElOX0hPVVNFX0VTTElOVF9QTFVHSU5fTkFNRX0uXG4gKi9cbmV4cG9ydCBjb25zdCBnZW5lcmljSW5Ib3VzZUVzbGludFJ1bGVzOiBOb25OdWxsYWJsZTxFU0xpbnQuUGx1Z2luWydydWxlcyddPiA9IHtcbiAgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybixcbiAgJ25vLWtleXdvcmQtaWRlbnRpZmllcnMnOiBub0tleXdvcmRJZGVudGlmaWVycyxcbiAgJ25vLXVucmVzb2x2ZWQtanNkb2MtbGluayc6IG5vVW5yZXNvbHZlZEpzZG9jTGluayxcbiAgJ25vLXVudXNlZC1wYXJhbXMtbWVtYmVycyc6IG5vVW51c2VkUGFyYW1zTWVtYmVycyxcbiAgJ25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMnOiBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzLFxuICAncGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCc6IHBhcmFtc09wdGlvbnNOYW1lTWF0Y2gsXG4gICdwcmVmZXItbG9naWNhbC1vcGVyYXRvci1vdmVyLXRlcm5hcnknOiBwcmVmZXJMb2dpY2FsT3BlcmF0b3JPdmVyVGVybmFyeSxcbiAgJ3ByZWZlci1ub29wLWFzeW5jJzogcHJlZmVyTm9vcEFzeW5jLFxuICAncmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMnOiByZWFkb25seUludGVyZmFjZU1lbWJlcnMsXG4gICdyZWFkb25seS1tZW1iZXItYXJyYXlzJzogcmVhZG9ubHlNZW1iZXJBcnJheXMsXG4gICdyZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSxcbiAgJ3JlcXVpcmUtc3VwZXItY2FsbCc6IHJlcXVpcmVTdXBlckNhbGxcbn07XG5cbi8qKlxuICogVGhlIEVTTGludCBwbHVnaW4gcmVnaXN0ZXJpbmcgdGhlIGdlbmVyaWMgaW4taG91c2UgcnVsZXMgYWxvbmUsIGZvciBhIHByb2plY3QgdGhhdCBhZGRzIG5vbmUgb2YgaXRzIG93bi5cbiAqL1xuZXhwb3J0IGNvbnN0IGluSG91c2VFc2xpbnRQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiBnZW5lcmljSW5Ib3VzZUVzbGludFJ1bGVzXG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFZQSxTQUFTLHFDQUFxQztBQUM5QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGlDQUFpQztBQUMxQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLHdDQUF3QztBQUNqRCxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGdDQUFnQztBQUN6QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHdCQUF3QjtBQUsxQixNQUFNLDhCQUE4QjtBQUtwQyxNQUFNLDRCQUFpRTtBQUFBLEVBQzVFLHNDQUFzQztBQUFBLEVBQ3RDLDBCQUEwQjtBQUFBLEVBQzFCLDRCQUE0QjtBQUFBLEVBQzVCLDRCQUE0QjtBQUFBLEVBQzVCLGdDQUFnQztBQUFBLEVBQ2hDLDZCQUE2QjtBQUFBLEVBQzdCLHdDQUF3QztBQUFBLEVBQ3hDLHFCQUFxQjtBQUFBLEVBQ3JCLDhCQUE4QjtBQUFBLEVBQzlCLDBCQUEwQjtBQUFBLEVBQzFCLDJCQUEyQjtBQUFBLEVBQzNCLHNCQUFzQjtBQUN4QjtBQUtPLE1BQU0sc0JBQXFDO0FBQUEsRUFDaEQsT0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -9,6 +9,7 @@ export * as 'params-options-name-match' from './params-options-name-match.mjs';
9
9
  export * as 'prefer-logical-operator-over-ternary' from './prefer-logical-operator-over-ternary.mjs';
10
10
  export * as 'prefer-noop-async' from './prefer-noop-async.mjs';
11
11
  export * as 'readonly-interface-members' from './readonly-interface-members.mjs';
12
+ export * as 'readonly-member-arrays' from './readonly-member-arrays.mjs';
12
13
  export * as 'require-method-template' from './require-method-template.mjs';
13
14
  export * as 'require-super-call' from './require-super-call.mjs';
14
15
  export * as 'rule-tester-helper' from './rule-tester-helper.mjs';
@@ -13,6 +13,7 @@ import * as params_options_name_match from "./params-options-name-match.mjs";
13
13
  import * as prefer_logical_operator_over_ternary from "./prefer-logical-operator-over-ternary.mjs";
14
14
  import * as prefer_noop_async from "./prefer-noop-async.mjs";
15
15
  import * as readonly_interface_members from "./readonly-interface-members.mjs";
16
+ import * as readonly_member_arrays from "./readonly-member-arrays.mjs";
16
17
  import * as require_method_template from "./require-method-template.mjs";
17
18
  import * as require_super_call from "./require-super-call.mjs";
18
19
  import * as rule_tester_helper from "./rule-tester-helper.mjs";
@@ -28,9 +29,10 @@ export {
28
29
  prefer_logical_operator_over_ternary as "prefer-logical-operator-over-ternary",
29
30
  prefer_noop_async as "prefer-noop-async",
30
31
  readonly_interface_members as "readonly-interface-members",
32
+ readonly_member_arrays as "readonly-member-arrays",
31
33
  require_method_template as "require-method-template",
32
34
  require_super_call as "require-super-call",
33
35
  rule_tester_helper as "rule-tester-helper",
34
36
  ts_estree_node as "ts-estree-node"
35
37
  };
36
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2luLWhvdXNlLXBsdWdpbicgZnJvbSAnLi9pbi1ob3VzZS1wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nIGZyb20gJy4vbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybi50cyc7XG5leHBvcnQgKiBhcyAnbm8ta2V5d29yZC1pZGVudGlmaWVycycgZnJvbSAnLi9uby1rZXl3b3JkLWlkZW50aWZpZXJzLnRzJztcbmV4cG9ydCAqIGFzICduby11bnJlc29sdmVkLWpzZG9jLWxpbmsnIGZyb20gJy4vbm8tdW5yZXNvbHZlZC1qc2RvYy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICduby11bnVzZWQtcGFyYW1zLW1lbWJlcnMnIGZyb20gJy4vbm8tdW51c2VkLXBhcmFtcy1tZW1iZXJzLnRzJztcbmV4cG9ydCAqIGFzICduby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJyBmcm9tICcuL25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMudHMnO1xuZXhwb3J0ICogYXMgJ3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gnIGZyb20gJy4vcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaC50cyc7XG5leHBvcnQgKiBhcyAncHJlZmVyLWxvZ2ljYWwtb3BlcmF0b3Itb3Zlci10ZXJuYXJ5JyBmcm9tICcuL3ByZWZlci1sb2dpY2FsLW9wZXJhdG9yLW92ZXItdGVybmFyeS50cyc7XG5leHBvcnQgKiBhcyAncHJlZmVyLW5vb3AtYXN5bmMnIGZyb20gJy4vcHJlZmVyLW5vb3AtYXN5bmMudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzJyBmcm9tICcuL3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzLnRzJztcbmV4cG9ydCAqIGFzICdyZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZScgZnJvbSAnLi9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZS50cyc7XG5leHBvcnQgKiBhcyAncmVxdWlyZS1zdXBlci1jYWxsJyBmcm9tICcuL3JlcXVpcmUtc3VwZXItY2FsbC50cyc7XG5leHBvcnQgKiBhcyAncnVsZS10ZXN0ZXItaGVscGVyJyBmcm9tICcuL3J1bGUtdGVzdGVyLWhlbHBlci50cyc7XG5leHBvcnQgKiBhcyAndHMtZXN0cmVlLW5vZGUnIGZyb20gJy4vdHMtZXN0cmVlLW5vZGUudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFFQSxZQUFZQSxxQkFBdUI7QUFDbkMsWUFBWUMsd0NBQTBDO0FBQ3RELFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsMENBQTRDO0FBQ3hELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxnQ0FBa0M7QUFDOUMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsb0JBQXNCOyIsCiAgIm5hbWVzIjogWyJpbi1ob3VzZS1wbHVnaW4iLCAibm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybiIsICJuby1rZXl3b3JkLWlkZW50aWZpZXJzIiwgIm5vLXVucmVzb2x2ZWQtanNkb2MtbGluayIsICJuby11bnVzZWQtcGFyYW1zLW1lbWJlcnMiLCAibm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyIsICJwYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIiwgInByZWZlci1sb2dpY2FsLW9wZXJhdG9yLW92ZXItdGVybmFyeSIsICJwcmVmZXItbm9vcC1hc3luYyIsICJyZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyIsICJyZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSIsICJyZXF1aXJlLXN1cGVyLWNhbGwiLCAicnVsZS10ZXN0ZXItaGVscGVyIiwgInRzLWVzdHJlZS1ub2RlIl0KfQo=
38
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2luLWhvdXNlLXBsdWdpbicgZnJvbSAnLi9pbi1ob3VzZS1wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nIGZyb20gJy4vbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybi50cyc7XG5leHBvcnQgKiBhcyAnbm8ta2V5d29yZC1pZGVudGlmaWVycycgZnJvbSAnLi9uby1rZXl3b3JkLWlkZW50aWZpZXJzLnRzJztcbmV4cG9ydCAqIGFzICduby11bnJlc29sdmVkLWpzZG9jLWxpbmsnIGZyb20gJy4vbm8tdW5yZXNvbHZlZC1qc2RvYy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICduby11bnVzZWQtcGFyYW1zLW1lbWJlcnMnIGZyb20gJy4vbm8tdW51c2VkLXBhcmFtcy1tZW1iZXJzLnRzJztcbmV4cG9ydCAqIGFzICduby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJyBmcm9tICcuL25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMudHMnO1xuZXhwb3J0ICogYXMgJ3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gnIGZyb20gJy4vcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaC50cyc7XG5leHBvcnQgKiBhcyAncHJlZmVyLWxvZ2ljYWwtb3BlcmF0b3Itb3Zlci10ZXJuYXJ5JyBmcm9tICcuL3ByZWZlci1sb2dpY2FsLW9wZXJhdG9yLW92ZXItdGVybmFyeS50cyc7XG5leHBvcnQgKiBhcyAncHJlZmVyLW5vb3AtYXN5bmMnIGZyb20gJy4vcHJlZmVyLW5vb3AtYXN5bmMudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzJyBmcm9tICcuL3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzLnRzJztcbmV4cG9ydCAqIGFzICdyZWFkb25seS1tZW1iZXItYXJyYXlzJyBmcm9tICcuL3JlYWRvbmx5LW1lbWJlci1hcnJheXMudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtbWV0aG9kLXRlbXBsYXRlJyBmcm9tICcuL3JlcXVpcmUtbWV0aG9kLXRlbXBsYXRlLnRzJztcbmV4cG9ydCAqIGFzICdyZXF1aXJlLXN1cGVyLWNhbGwnIGZyb20gJy4vcmVxdWlyZS1zdXBlci1jYWxsLnRzJztcbmV4cG9ydCAqIGFzICdydWxlLXRlc3Rlci1oZWxwZXInIGZyb20gJy4vcnVsZS10ZXN0ZXItaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICd0cy1lc3RyZWUtbm9kZScgZnJvbSAnLi90cy1lc3RyZWUtbm9kZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUVBLFlBQVlBLHFCQUF1QjtBQUNuQyxZQUFZQyx3Q0FBMEM7QUFDdEQsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsa0NBQW9DO0FBQ2hELFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQywwQ0FBNEM7QUFDeEQsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsb0JBQXNCOyIsCiAgIm5hbWVzIjogWyJpbi1ob3VzZS1wbHVnaW4iLCAibm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybiIsICJuby1rZXl3b3JkLWlkZW50aWZpZXJzIiwgIm5vLXVucmVzb2x2ZWQtanNkb2MtbGluayIsICJuby11bnVzZWQtcGFyYW1zLW1lbWJlcnMiLCAibm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyIsICJwYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIiwgInByZWZlci1sb2dpY2FsLW9wZXJhdG9yLW92ZXItdGVybmFyeSIsICJwcmVmZXItbm9vcC1hc3luYyIsICJyZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyIsICJyZWFkb25seS1tZW1iZXItYXJyYXlzIiwgInJlcXVpcmUtbWV0aG9kLXRlbXBsYXRlIiwgInJlcXVpcmUtc3VwZXItY2FsbCIsICJydWxlLXRlc3Rlci1oZWxwZXIiLCAidHMtZXN0cmVlLW5vZGUiXQp9Cg==
@@ -2,20 +2,92 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return '/';
11
+ },
12
+ env: {},
13
+ platform: 'android'
14
+ };
15
+
16
+ const existingProcess = globalThis.process;
17
+
18
+ if (!existingProcess) {
19
+ globalThis.process = browserProcess;
20
+ return;
21
+ }
22
+
23
+ if (existingProcess.versions?.node) {
24
+ return;
25
+ }
26
+
27
+ const existingProcessRecord = existingProcess;
5
28
 
29
+ for (const [key, value] of Object.entries(browserProcess)) {
30
+ existingProcessRecord[key] ??= value;
31
+ }
32
+
33
+ existingProcessRecord['browser'] = true;
34
+ }
35
+
36
+ ensureBrowserProcess();
37
+ })();
38
+
39
+ import { ensureNonNullable } from "@mnaoumov/typescript-lib/type-guards";
40
+ import { AST_NODE_TYPES } from "@typescript-eslint/utils";
6
41
  import { toTSESTreeNode } from "./ts-estree-node.mjs";
42
+ const FUNCTION_MODULE = "@mnaoumov/typescript-lib/function";
7
43
  const MESSAGE_ID = "preferNoopAsync";
8
44
  const preferNoopAsync = {
9
45
  create(context) {
10
46
  return {
11
47
  "CallExpression"(node) {
12
48
  const callNode = toTSESTreeNode(node);
13
- if (!isPromiseResolveWithNoArguments(callNode)) {
49
+ if (!isPromiseResolveWithNoArguments(callNode) || isLocallyBoundPromise(context.sourceCode.getScope(node), callNode)) {
14
50
  return;
15
51
  }
16
52
  context.report({
17
53
  fix(fixer) {
18
- return fixer.replaceText(node, "noopAsync()");
54
+ const sourceCode = context.sourceCode;
55
+ const seen = /* @__PURE__ */ new Set();
56
+ for (let scope = sourceCode.getScope(node); scope; scope = scope.upper) {
57
+ for (const variable of scope.variables) {
58
+ if (seen.has(variable.name)) {
59
+ continue;
60
+ }
61
+ seen.add(variable.name);
62
+ for (const definition of variable.defs) {
63
+ if (definition.type !== "ImportBinding") {
64
+ continue;
65
+ }
66
+ const specifier = toTSESTreeNode(definition.node);
67
+ const declaration = toTSESTreeNode(definition.parent);
68
+ if (specifier.type === AST_NODE_TYPES.ImportSpecifier && specifier.importKind !== "type" && declaration.importKind !== "type" && declaration.source.value === FUNCTION_MODULE && specifier.imported.type === AST_NODE_TYPES.Identifier && specifier.imported.name === "noopAsync") {
69
+ return fixer.replaceText(node, `${variable.name}()`);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ if (sourceCode.ast.sourceType !== "module") {
75
+ return null;
76
+ }
77
+ const names = new Set(sourceCode.getTokens(sourceCode.ast).map((token) => token.value));
78
+ let name = "noopAsync";
79
+ let suffix = 0;
80
+ while (names.has(name)) {
81
+ name = `noopAsync${String(++suffix)}`;
82
+ }
83
+ const binding = name === "noopAsync" ? name : `noopAsync as ${name}`;
84
+ const firstStatement = ensureNonNullable(sourceCode.ast.body.find((statement) => !("directive" in statement && typeof statement.directive === "string")));
85
+ const firstToken = sourceCode.getFirstToken(firstStatement);
86
+ return [
87
+ fixer.insertTextBefore(firstToken, `import { ${binding} } from '${FUNCTION_MODULE}';
88
+ `),
89
+ fixer.replaceText(node, `${name}()`)
90
+ ];
19
91
  },
20
92
  messageId: MESSAGE_ID,
21
93
  node
@@ -35,6 +107,11 @@ const preferNoopAsync = {
35
107
  type: "suggestion"
36
108
  }
37
109
  };
110
+ function isLocallyBoundPromise(scope, node) {
111
+ const callee = node.callee;
112
+ const reference = ensureNonNullable(scope.references.find((candidate) => toTSESTreeNode(candidate.identifier) === callee.object));
113
+ return (reference.resolved?.defs.length ?? 0) > 0;
114
+ }
38
115
  function isPromiseResolveWithNoArguments(node) {
39
116
  const callee = node.callee;
40
117
  return node.arguments.length === 0 && callee.type === "MemberExpression" && callee.object.type === "Identifier" && callee.object.name === "Promise" && callee.property.type === "Identifier" && callee.property.name === "resolve";
@@ -43,4 +120,4 @@ export {
43
120
  MESSAGE_ID,
44
121
  preferNoopAsync
45
122
  };
46
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL3ByZWZlci1ub29wLWFzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IHByZWZlci1ub29wLWFzeW5jXG4gKlxuICogUmVwb3J0cyBgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKClgIGFuZCBzdWdnZXN0cyByZXBsYWNpbmcgaXQgd2l0aFxuICogYGF3YWl0IG5vb3BBc3luYygpYCBmb3IgY29uc2lzdGVuY3kgYW5kIHJlYWRhYmlsaXR5LlxuICpcbiAqIGBub29wQXN5bmMoKWAgZnJvbSB0aGUgcHJvamVjdCdzIGBmdW5jdGlvbi50c2AgbW9kdWxlIGlzIHRoZSBjb252ZW50aW9uYWxcbiAqIHdheSB0byBleHByZXNzIGFuIGludGVudGlvbmFsIGFzeW5jIG5vLW9wLlxuICovXG5pbXBvcnQgdHlwZSB7IFRTRVNUcmVlIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbmltcG9ydCB7IHRvVFNFU1RyZWVOb2RlIH0gZnJvbSAnLi90cy1lc3RyZWUtbm9kZS50cyc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGBQcm9taXNlLnJlc29sdmUoKWAgaXMgdXNlZCBmb3IgYW4gYXN5bmMgbm8tb3AgaW5zdGVhZCBvZiBgbm9vcEFzeW5jKClgLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdwcmVmZXJOb29wQXN5bmMnO1xuXG4vKipcbiAqIEVTTGludCBydWxlIHByZWZlcnJpbmcgYG5vb3BBc3luYygpYCBvdmVyIGBQcm9taXNlLnJlc29sdmUoKWAgZm9yIGFuIGFzeW5jIG5vLW9wLlxuICovXG5leHBvcnQgY29uc3QgcHJlZmVyTm9vcEFzeW5jOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDYWxsRXhwcmVzc2lvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxOb2RlID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XG5cbiAgICAgICAgaWYgKCFpc1Byb21pc2VSZXNvbHZlV2l0aE5vQXJndW1lbnRzKGNhbGxOb2RlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBmaXgoZml4ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmaXhlci5yZXBsYWNlVGV4dChub2RlLCAnbm9vcEFzeW5jKCknKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ByZWZlciBgbm9vcEFzeW5jKClgIG92ZXIgYFByb21pc2UucmVzb2x2ZSgpYCdcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnVXNlIGBub29wQXN5bmMoKWAgaW5zdGVhZCBvZiBgUHJvbWlzZS5yZXNvbHZlKClgIGZvciBhc3luYyBuby1vcHMuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbidcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgZXhwcmVzc2lvbiBpcyBgUHJvbWlzZS5yZXNvbHZlKClgIHdpdGggbm8gYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGNhbGwgZXhwcmVzc2lvbiBub2RlLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGBQcm9taXNlLnJlc29sdmUoKWAgd2l0aCBubyBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvbWlzZVJlc29sdmVXaXRoTm9Bcmd1bWVudHMobm9kZTogVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWU7XG5cbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLiAqL1xuICByZXR1cm4gbm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAwXG4gICAgJiYgY2FsbGVlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIGNhbGxlZS5vYmplY3QudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmIGNhbGxlZS5vYmplY3QubmFtZSA9PT0gJ1Byb21pc2UnXG4gICAgJiYgY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJyAmJiBjYWxsZWUucHJvcGVydHkubmFtZSA9PT0gJ3Jlc29sdmUnO1xuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIEFTVCBub2RlIHR5cGUgc3RyaW5nIGxpdGVyYWxzIG1hdGNoIHRoZSBUU0VTVHJlZSBlbnVtIHZhbHVlcy4gKi9cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBY0EsU0FBUyxzQkFBc0I7QUFLeEIsTUFBTSxhQUFhO0FBS25CLE1BQU0sa0JBQW1DO0FBQUEsRUFDOUMsT0FBTyxTQUFTO0FBQ2QsV0FBTztBQUFBLE1BQ0wsaUJBQWlCLE1BQXVCO0FBQ3RDLGNBQU0sV0FBVyxlQUFlLElBQUk7QUFFcEMsWUFBSSxDQUFDLGdDQUFnQyxRQUFRLEdBQUc7QUFDOUM7QUFBQSxRQUNGO0FBRUEsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsSUFBSSxPQUFPO0FBQ1QsbUJBQU8sTUFBTSxZQUFZLE1BQU0sYUFBYTtBQUFBLFVBQzlDO0FBQUEsVUFDQSxXQUFXO0FBQUEsVUFDWDtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxNQUNSLENBQUMsVUFBVSxHQUFHO0FBQUEsSUFDaEI7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFDRjtBQVFBLFNBQVMsZ0NBQWdDLE1BQXdDO0FBQy9FLFFBQU0sU0FBUyxLQUFLO0FBR3BCLFNBQU8sS0FBSyxVQUFVLFdBQVcsS0FDNUIsT0FBTyxTQUFTLHNCQUNoQixPQUFPLE9BQU8sU0FBUyxnQkFBZ0IsT0FBTyxPQUFPLFNBQVMsYUFDOUQsT0FBTyxTQUFTLFNBQVMsZ0JBQWdCLE9BQU8sU0FBUyxTQUFTO0FBRXpFOyIsCiAgIm5hbWVzIjogW10KfQo=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9wcmVmZXItbm9vcC1hc3luYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IHByZWZlci1ub29wLWFzeW5jXG4gKlxuICogUmVwb3J0cyBgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKClgIGFuZCBzdWdnZXN0cyByZXBsYWNpbmcgaXQgd2l0aFxuICogYGF3YWl0IG5vb3BBc3luYygpYCBmb3IgY29uc2lzdGVuY3kgYW5kIHJlYWRhYmlsaXR5LlxuICpcbiAqIFRoZSBmaXggcmV1c2VzIGEgdmlzaWJsZSB2YWx1ZSBpbXBvcnQgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Z1bmN0aW9uYCxcbiAqIG9yIGFkZHMgYSBjb2xsaXNpb24tZnJlZSBpbXBvcnQuIFNjcmlwdHMgd2l0aG91dCBvbmUgcmV0YWluIHRoZSBkaWFnbm9zdGljIG9ubHkuXG4gKi9cbmltcG9ydCB0eXBlIHsgVFNFU1RyZWUgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUge1xuICBSdWxlLFxuICBTY29wZVxufSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBBU1RfTk9ERV9UWVBFUyB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5cbmltcG9ydCB7IHRvVFNFU1RyZWVOb2RlIH0gZnJvbSAnLi90cy1lc3RyZWUtbm9kZS50cyc7XG5cbmNvbnN0IEZVTkNUSU9OX01PRFVMRSA9ICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYFByb21pc2UucmVzb2x2ZSgpYCBpcyB1c2VkIGZvciBhbiBhc3luYyBuby1vcCBpbnN0ZWFkIG9mIGBub29wQXN5bmMoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEID0gJ3ByZWZlck5vb3BBc3luYyc7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcHJlZmVycmluZyBgbm9vcEFzeW5jKClgIG92ZXIgYFByb21pc2UucmVzb2x2ZSgpYCBmb3IgYW4gYXN5bmMgbm8tb3AuXG4gKi9cbmV4cG9ydCBjb25zdCBwcmVmZXJOb29wQXN5bmM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ0NhbGxFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcblxuICAgICAgICBpZiAoIWlzUHJvbWlzZVJlc29sdmVXaXRoTm9Bcmd1bWVudHMoY2FsbE5vZGUpIHx8IGlzTG9jYWxseUJvdW5kUHJvbWlzZShjb250ZXh0LnNvdXJjZUNvZGUuZ2V0U2NvcGUobm9kZSksIGNhbGxOb2RlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBmaXgoZml4ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBjb250ZXh0LnNvdXJjZUNvZGU7XG4gICAgICAgICAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgICAgICBmb3IgKGxldCBzY29wZTogbnVsbCB8IFNjb3BlLlNjb3BlID0gc291cmNlQ29kZS5nZXRTY29wZShub2RlKTsgc2NvcGU7IHNjb3BlID0gc2NvcGUudXBwZXIpIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiBzY29wZS52YXJpYWJsZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFyaWFibGUubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZWVuLmFkZCh2YXJpYWJsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRlZmluaXRpb24gb2YgdmFyaWFibGUuZGVmcykge1xuICAgICAgICAgICAgICAgICAgaWYgKGRlZmluaXRpb24udHlwZSAhPT0gJ0ltcG9ydEJpbmRpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3Qgc3BlY2lmaWVyID0gdG9UU0VTVHJlZU5vZGUoZGVmaW5pdGlvbi5ub2RlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gdG9UU0VTVHJlZU5vZGUoZGVmaW5pdGlvbi5wYXJlbnQpIGFzIFRTRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZXIudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSW1wb3J0U3BlY2lmaWVyXG4gICAgICAgICAgICAgICAgICAgICYmIHNwZWNpZmllci5pbXBvcnRLaW5kICE9PSAndHlwZScgJiYgZGVjbGFyYXRpb24uaW1wb3J0S2luZCAhPT0gJ3R5cGUnXG4gICAgICAgICAgICAgICAgICAgICYmIGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSA9PT0gRlVOQ1RJT05fTU9EVUxFXG4gICAgICAgICAgICAgICAgICAgICYmIHNwZWNpZmllci5pbXBvcnRlZC50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmIHNwZWNpZmllci5pbXBvcnRlZC5uYW1lID09PSAnbm9vcEFzeW5jJ1xuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlci5yZXBsYWNlVGV4dChub2RlLCBgJHt2YXJpYWJsZS5uYW1lfSgpYCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEEgc2NyaXB0IGNhbm5vdCBhY2NlcHQgYW4gRVNNIGltcG9ydC4gTGVhdmUgaXRzIGRpYWdub3N0aWMgZm9yIGEgbWFudWFsIGVkaXQuXG4gICAgICAgICAgICBpZiAoc291cmNlQ29kZS5hc3Quc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJbmNsdWRlIHJlZmVyZW5jZXMgYXMgd2VsbCBhcyBkZWNsYXJhdGlvbnMsIHNvIGFuIGltcG9ydCBuZXZlciBjYXB0dXJlcyBhbiBleGlzdGluZyBmcmVlIHJlYWQuXG4gICAgICAgICAgICBjb25zdCBuYW1lcyA9IG5ldyBTZXQoc291cmNlQ29kZS5nZXRUb2tlbnMoc291cmNlQ29kZS5hc3QpLm1hcCgodG9rZW4pID0+IHRva2VuLnZhbHVlKSk7XG4gICAgICAgICAgICBsZXQgbmFtZSA9ICdub29wQXN5bmMnO1xuICAgICAgICAgICAgbGV0IHN1ZmZpeCA9IDA7XG4gICAgICAgICAgICB3aGlsZSAobmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgIG5hbWUgPSBgbm9vcEFzeW5jJHtTdHJpbmcoKytzdWZmaXgpfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBiaW5kaW5nID0gbmFtZSA9PT0gJ25vb3BBc3luYycgPyBuYW1lIDogYG5vb3BBc3luYyBhcyAke25hbWV9YDtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0U3RhdGVtZW50ID0gZW5zdXJlTm9uTnVsbGFibGUoc291cmNlQ29kZS5hc3QuYm9keS5maW5kKChzdGF0ZW1lbnQpID0+ICEoJ2RpcmVjdGl2ZScgaW4gc3RhdGVtZW50ICYmIHR5cGVvZiBzdGF0ZW1lbnQuZGlyZWN0aXZlID09PSAnc3RyaW5nJykpKTtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBzb3VyY2VDb2RlLmdldEZpcnN0VG9rZW4oZmlyc3RTdGF0ZW1lbnQpO1xuICAgICAgICAgICAgLy8gVGhlIHJlcG9ydGVkIGNhbGwgZ3VhcmFudGVlcyBhIG5vbi1lbXB0eSBwcm9ncmFtLCBpbmNsdWRpbmcgd2hlbiBhIGhhc2hiYW5nIHByZWNlZGVzIGl0LlxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEJlZm9yZShmaXJzdFRva2VuLCBgaW1wb3J0IHsgJHtiaW5kaW5nfSB9IGZyb20gJyR7RlVOQ1RJT05fTU9EVUxFfSc7XFxuYCksXG4gICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0KG5vZGUsIGAke25hbWV9KClgKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ByZWZlciBgbm9vcEFzeW5jKClgIG92ZXIgYFByb21pc2UucmVzb2x2ZSgpYCdcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnVXNlIGBub29wQXN5bmMoKWAgaW5zdGVhZCBvZiBgUHJvbWlzZS5yZXNvbHZlKClgIGZvciBhc3luYyBuby1vcHMuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbidcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYFByb21pc2VgIG9mIGEgYFByb21pc2UucmVzb2x2ZSgpYCBjYWxsIHJlc29sdmVzIHRvIGEgYmluZGluZyB0aGUgY29kZSBkZWNsYXJlcyBpdHNlbGYsXG4gKiBzdWNoIGFzIGEgbG9jYWwgdmFyaWFibGUsIGEgcGFyYW1ldGVyIG9yIGFuIGltcG9ydCwgcmF0aGVyIHRoYW4gdGhlIGdsb2JhbC5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgZW5jbG9zaW5nIHRoZSBjYWxsLlxuICogQHBhcmFtIG5vZGUgLSBUaGUgYFByb21pc2UucmVzb2x2ZSgpYCBjYWxsIGV4cHJlc3Npb24uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYFByb21pc2VgIGlzIGJvdW5kIGJ5IGEgZGVjbGFyYXRpb24gaW4gdGhlIGNvZGUuXG4gKi9cbmZ1bmN0aW9uIGlzTG9jYWxseUJvdW5kUHJvbWlzZShzY29wZTogU2NvcGUuU2NvcGUsIG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNhbGxlZSA9IG5vZGUuY2FsbGVlIGFzIFRTRVNUcmVlLk1lbWJlckV4cHJlc3Npb247XG4gIGNvbnN0IHJlZmVyZW5jZSA9IGVuc3VyZU5vbk51bGxhYmxlKHNjb3BlLnJlZmVyZW5jZXMuZmluZCgoY2FuZGlkYXRlKSA9PiB0b1RTRVNUcmVlTm9kZShjYW5kaWRhdGUuaWRlbnRpZmllcikgPT09IGNhbGxlZS5vYmplY3QpKTtcbiAgLy8gQSBnbG9iYWwgYFByb21pc2VgIHJlc29sdmVzIHRvIGEgdmFyaWFibGUgd2l0aG91dCBkZWZpbml0aW9ucywgb3IgdG8gbm90aGluZyB3aGVuIG5vIGdsb2JhbHMgYXJlIGNvbmZpZ3VyZWQuXG4gIHJldHVybiAocmVmZXJlbmNlLnJlc29sdmVkPy5kZWZzLmxlbmd0aCA/PyAwKSA+IDA7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIGV4cHJlc3Npb24gaXMgYFByb21pc2UucmVzb2x2ZSgpYCB3aXRoIG5vIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBjYWxsIGV4cHJlc3Npb24gbm9kZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSBpcyBgUHJvbWlzZS5yZXNvbHZlKClgIHdpdGggbm8gYXJndW1lbnRzLlxuICovXG5mdW5jdGlvbiBpc1Byb21pc2VSZXNvbHZlV2l0aE5vQXJndW1lbnRzKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNhbGxlZSA9IG5vZGUuY2FsbGVlO1xuXG4gIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIEFTVCBub2RlIHR5cGUgc3RyaW5nIGxpdGVyYWxzIG1hdGNoIHRoZSBUU0VTVHJlZSBlbnVtIHZhbHVlcy4gKi9cbiAgcmV0dXJuIG5vZGUuYXJndW1lbnRzLmxlbmd0aCA9PT0gMFxuICAgICYmIGNhbGxlZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbidcbiAgICAmJiBjYWxsZWUub2JqZWN0LnR5cGUgPT09ICdJZGVudGlmaWVyJyAmJiBjYWxsZWUub2JqZWN0Lm5hbWUgPT09ICdQcm9taXNlJ1xuICAgICYmIGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcicgJiYgY2FsbGVlLnByb3BlcnR5Lm5hbWUgPT09ICdyZXNvbHZlJztcbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuICovXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsc0JBQXNCO0FBRS9CLFNBQVMsc0JBQXNCO0FBRS9CLE1BQU0sa0JBQWtCO0FBSWpCLE1BQU0sYUFBYTtBQUtuQixNQUFNLGtCQUFtQztBQUFBLEVBQzlDLE9BQU8sU0FBUztBQUNkLFdBQU87QUFBQSxNQUNMLGlC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
@@ -0,0 +1,6 @@
1
+ /// <reference path="../../library-references.d.mts" />
2
+ import type { Rule } from 'eslint';
3
+ /**
4
+ * Opt-in array immutability policy, independent of readonly property references.
5
+ */
6
+ export declare const readonlyMemberArrays: Rule.RuleModule;
@@ -0,0 +1,106 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return '/';
11
+ },
12
+ env: {},
13
+ platform: 'android'
14
+ };
15
+
16
+ const existingProcess = globalThis.process;
17
+
18
+ if (!existingProcess) {
19
+ globalThis.process = browserProcess;
20
+ return;
21
+ }
22
+
23
+ if (existingProcess.versions?.node) {
24
+ return;
25
+ }
26
+
27
+ const existingProcessRecord = existingProcess;
28
+
29
+ for (const [key, value] of Object.entries(browserProcess)) {
30
+ existingProcessRecord[key] ??= value;
31
+ }
32
+
33
+ existingProcessRecord['browser'] = true;
34
+ }
35
+
36
+ ensureBrowserProcess();
37
+ })();
38
+
39
+ import { AST_NODE_TYPES } from "@typescript-eslint/utils";
40
+ import { toTSESTreeNode } from "./ts-estree-node.mjs";
41
+ const readonlyMemberArrays = {
42
+ create(context) {
43
+ function check(node, property) {
44
+ if (node.type === AST_NODE_TYPES.TSUnionType || node.type === AST_NODE_TYPES.TSIntersectionType) {
45
+ for (const member of node.types) {
46
+ check(member, property);
47
+ }
48
+ return;
49
+ }
50
+ if (node.type === AST_NODE_TYPES.TSArrayType) {
51
+ context.report({
52
+ messageId: "readonly",
53
+ node,
54
+ suggest: [{ fix: (fixer) => fixer.insertTextBefore(node, "readonly "), messageId: "review" }]
55
+ });
56
+ return;
57
+ }
58
+ if (node.type !== AST_NODE_TYPES.TSTypeReference || node.typeName.type !== AST_NODE_TYPES.Identifier || node.typeName.name !== "Array" || node.typeArguments?.params.length !== 1) {
59
+ return;
60
+ }
61
+ let scope = context.sourceCode.getScope(property);
62
+ let canSuggest = true;
63
+ while (scope) {
64
+ if (scope.set.get("Array")?.defs.length) {
65
+ return;
66
+ }
67
+ if (scope.set.get("ReadonlyArray")?.defs.length) {
68
+ canSuggest = false;
69
+ }
70
+ scope = scope.upper;
71
+ }
72
+ context.report({
73
+ messageId: "readonly",
74
+ node,
75
+ suggest: canSuggest ? [{
76
+ fix: (fixer) => fixer.replaceTextRange(node.typeName.range, "ReadonlyArray"),
77
+ messageId: "review"
78
+ }] : []
79
+ });
80
+ }
81
+ function visitProperty(node) {
82
+ const property = toTSESTreeNode(node);
83
+ if (property.typeAnnotation) {
84
+ check(property.typeAnnotation.typeAnnotation, node);
85
+ }
86
+ }
87
+ return {
88
+ "TSInterfaceDeclaration TSPropertySignature": visitProperty,
89
+ "TSTypeAliasDeclaration TSPropertySignature": visitProperty
90
+ };
91
+ },
92
+ meta: {
93
+ docs: { description: "Require readonly member arrays as an explicit collection immutability policy" },
94
+ hasSuggestions: true,
95
+ messages: {
96
+ readonly: "Use a readonly member array, or disable this rule with a reason for mutation.",
97
+ review: "Make this array readonly after reviewing mutations and assignability."
98
+ },
99
+ schema: [],
100
+ type: "suggestion"
101
+ }
102
+ };
103
+ export {
104
+ readonlyMemberArrays
105
+ };
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9yZWFkb25seS1tZW1iZXItYXJyYXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXF1aXJlcyByZWFkb25seSBhcnJheSB0eXBlcyBvbiBpbnRlcmZhY2UgYW5kIG9iamVjdCB0eXBlIGFsaWFzIHByb3BlcnRpZXMuXG4gKi9cbmltcG9ydCB0eXBlIHsgVFNFU1RyZWUgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgQVNUX05PREVfVFlQRVMgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuXG5pbXBvcnQgeyB0b1RTRVNUcmVlTm9kZSB9IGZyb20gJy4vdHMtZXN0cmVlLW5vZGUudHMnO1xuXG4vKipcbiAqIE9wdC1pbiBhcnJheSBpbW11dGFiaWxpdHkgcG9saWN5LCBpbmRlcGVuZGVudCBvZiByZWFkb25seSBwcm9wZXJ0eSByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY29uc3QgcmVhZG9ubHlNZW1iZXJBcnJheXM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiBjaGVjayhub2RlOiBUU0VTVHJlZS5UeXBlTm9kZSwgcHJvcGVydHk6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuVFNVbmlvblR5cGUgfHwgbm9kZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5UU0ludGVyc2VjdGlvblR5cGUpIHtcbiAgICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2Ygbm9kZS50eXBlcykge1xuICAgICAgICAgIGNoZWNrKG1lbWJlciwgcHJvcGVydHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLlRTQXJyYXlUeXBlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBtZXNzYWdlSWQ6ICdyZWFkb25seScsXG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBzdWdnZXN0OiBbeyBmaXg6IChmaXhlcik6IFJ1bGUuRml4ID0+IGZpeGVyLmluc2VydFRleHRCZWZvcmUobm9kZSwgJ3JlYWRvbmx5ICcpLCBtZXNzYWdlSWQ6ICdyZXZpZXcnIH1dXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuVFNUeXBlUmVmZXJlbmNlXG4gICAgICAgIHx8IG5vZGUudHlwZU5hbWUudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllclxuICAgICAgICB8fCBub2RlLnR5cGVOYW1lLm5hbWUgIT09ICdBcnJheSdcbiAgICAgICAgfHwgbm9kZS50eXBlQXJndW1lbnRzPy5wYXJhbXMubGVuZ3RoICE9PSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHNjb3BlOiBudWxsIHwgUmV0dXJuVHlwZTx0eXBlb2YgY29udGV4dC5zb3VyY2VDb2RlLmdldFNjb3BlPiA9IGNvbnRleHQuc291cmNlQ29kZS5nZXRTY29wZShwcm9wZXJ0eSk7XG4gICAgICBsZXQgY2FuU3VnZ2VzdCA9IHRydWU7XG4gICAgICB3aGlsZSAoc2NvcGUpIHtcbiAgICAgICAgaWYgKHNjb3BlLnNldC5nZXQoJ0FycmF5Jyk/LmRlZnMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzY29wZS5zZXQuZ2V0KCdSZWFkb25seUFycmF5Jyk/LmRlZnMubGVuZ3RoKSB7XG4gICAgICAgICAgY2FuU3VnZ2VzdCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHNjb3BlID0gc2NvcGUudXBwZXI7XG4gICAgICB9XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG1lc3NhZ2VJZDogJ3JlYWRvbmx5JyxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgc3VnZ2VzdDogY2FuU3VnZ2VzdFxuICAgICAgICAgID8gW3tcbiAgICAgICAgICAgIGZpeDogKGZpeGVyKTogUnVsZS5GaXggPT4gZml4ZXIucmVwbGFjZVRleHRSYW5nZShub2RlLnR5cGVOYW1lLnJhbmdlLCAnUmVhZG9ubHlBcnJheScpLFxuICAgICAgICAgICAgbWVzc2FnZUlkOiAncmV2aWV3J1xuICAgICAgICAgIH1dXG4gICAgICAgICAgOiBbXVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmlzaXRQcm9wZXJ0eShub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuVFNQcm9wZXJ0eVNpZ25hdHVyZTtcbiAgICAgIGlmIChwcm9wZXJ0eS50eXBlQW5ub3RhdGlvbikge1xuICAgICAgICBjaGVjayhwcm9wZXJ0eS50eXBlQW5ub3RhdGlvbi50eXBlQW5ub3RhdGlvbiwgbm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdUU0ludGVyZmFjZURlY2xhcmF0aW9uIFRTUHJvcGVydHlTaWduYXR1cmUnOiB2aXNpdFByb3BlcnR5LFxuICAgICAgJ1RTVHlwZUFsaWFzRGVjbGFyYXRpb24gVFNQcm9wZXJ0eVNpZ25hdHVyZSc6IHZpc2l0UHJvcGVydHlcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczogeyBkZXNjcmlwdGlvbjogJ1JlcXVpcmUgcmVhZG9ubHkgbWVtYmVyIGFycmF5cyBhcyBhbiBleHBsaWNpdCBjb2xsZWN0aW9uIGltbXV0YWJpbGl0eSBwb2xpY3knIH0sXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHJlYWRvbmx5OiAnVXNlIGEgcmVhZG9ubHkgbWVtYmVyIGFycmF5LCBvciBkaXNhYmxlIHRoaXMgcnVsZSB3aXRoIGEgcmVhc29uIGZvciBtdXRhdGlvbi4nLFxuICAgICAgcmV2aWV3OiAnTWFrZSB0aGlzIGFycmF5IHJlYWRvbmx5IGFmdGVyIHJldmlld2luZyBtdXRhdGlvbnMgYW5kIGFzc2lnbmFiaWxpdHkuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbidcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLHNCQUFzQjtBQUUvQixTQUFTLHNCQUFzQjtBQUt4QixNQUFNLHVCQUF3QztBQUFBLEVBQ25ELE9BQU8sU0FBUztBQUNkLGFBQVMsTUFBTSxNQUF5QixVQUEyQjtBQUNqRSxVQUFJLEtBQUssU0FBUyxlQUFlLGVBQWUsS0FBSyxTQUFTLGVBQWUsb0JBQW9CO0FBQy9GLG1CQUFXLFVBQVUsS0FBSyxPQUFPO0FBQy9CLGdCQUFNLFFBQVEsUUFBUTtBQUFBLFFBQ3hCO0FBQ0E7QUFBQSxNQUNGO0FBQ0EsVUFBSSxLQUFLLFNBQVMsZUFBZSxhQUFhO0FBQzVDLGdCQUFRLE9BQU87QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYO0FBQUEsVUFDQSxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBb0IsTUFBTSxpQkFBaUIsTUFBTSxXQUFXLEdBQUcsV0FBVyxTQUFTLENBQUM7QUFBQSxRQUN4RyxDQUFDO0FBQ0Q7QUFBQSxNQUNGO0FBQ0EsVUFDRSxLQUFLLFNBQVMsZUFBZSxtQkFDMUIsS0FBSyxTQUFTLFNBQVMsZUFBZSxjQUN0QyxLQUFLLFNBQVMsU0FBUyxXQUN2QixLQUFLLGVBQWUsT0FBTyxXQUFXLEdBQ3pDO0FBQ0E7QUFBQSxNQUNGO0FBQ0EsVUFBSSxRQUErRCxRQUFRLFdBQVcsU0FBUyxRQUFRO0FBQ3ZHLFVBQUksYUFBYTtBQUNqQixhQUFPLE9BQU87QUFDWixZQUFJLE1BQU0sSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7QUFDdkM7QUFBQSxRQUNGO0FBQ0EsWUFBSSxNQUFNLElBQUksSUFBSSxlQUFlLEdBQUcsS0FBSyxRQUFRO0FBQy9DLHVCQUFhO0FBQUEsUUFDZjtBQUNBLGdCQUFRLE1BQU07QUFBQSxNQUNoQjtBQUNBLGNBQVEsT0FBTztBQUFBLFFBQ2IsV0FBVztBQUFBLFFBQ1g7QUFBQSxRQUNBLFNBQVMsYUFDTCxDQUFDO0FBQUEsVUFDRCxLQUFLLENBQUMsVUFBb0IsTUFBTSxpQkFBaUIsS0FBSyxTQUFTLE9BQU8sZUFBZTtBQUFBLFVBQ3JGLFdBQVc7QUFBQSxRQUNiLENBQUMsSUFDQyxDQUFDO0FBQUEsTUFDUCxDQUFDO0FBQUEsSUFDSDtBQUVBLGFBQVMsY0FBYyxNQUF1QjtBQUM1QyxZQUFNLFdBQVcsZUFBZSxJQUFJO0FBQ3BDLFVBQUksU0FBUyxnQkFBZ0I7QUFDM0IsY0FBTSxTQUFTLGVBQWUsZ0JBQWdCLElBQUk7QUFBQSxNQUNwRDtBQUFBLElBQ0Y7QUFFQSxXQUFPO0FBQUEsTUFDTCw4Q0FBOEM7QUFBQSxNQUM5Qyw4Q0FBOEM7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLE1BQU0sRUFBRSxhQUFhLCtFQUErRTtBQUFBLElBQ3BHLGdCQUFnQjtBQUFBLElBQ2hCLFVBQVU7QUFBQSxNQUNSLFVBQVU7QUFBQSxNQUNWLFFBQVE7QUFBQSxJQUNWO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxJQUNULE1BQU07QUFBQSxFQUNSO0FBQ0Y7IiwibmFtZXMiOltdfQ==