@mnaoumov/typescript-dev-toolkit 1.3.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/assets/docs-site/components/ConstructorBlock.astro +16 -0
  2. package/assets/docs-site/components/ImportStatement.astro +12 -0
  3. package/assets/docs-site/components/MemberDetail.astro +101 -0
  4. package/assets/docs-site/components/MethodTable.astro +45 -0
  5. package/assets/docs-site/components/PropertyTable.astro +45 -0
  6. package/assets/docs-site/components/SiteTitle.astro +43 -0
  7. package/assets/docs-site/components/TypeSignature.astro +20 -0
  8. package/assets/docs-site/fonts/inter-latin-400-normal.ttf +0 -0
  9. package/assets/docs-site/fonts/inter-latin-700-normal.ttf +0 -0
  10. package/assets/docs-site/styles/global.css +221 -0
  11. package/dist/lib/cjs/build.cjs +1 -1
  12. package/dist/lib/cjs/build.d.cts +1 -1
  13. package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +2 -2
  14. package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +1 -1
  15. package/dist/lib/cjs/commitlint-spellcheck-header.cjs +2 -2
  16. package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +1 -1
  17. package/dist/lib/cjs/docs-site/api-doc-constants.cjs +171 -0
  18. package/dist/lib/cjs/docs-site/api-doc-constants.d.cts +18 -0
  19. package/dist/lib/cjs/docs-site/api-doc-jsdoc.cjs +414 -0
  20. package/dist/lib/cjs/docs-site/api-doc-jsdoc.d.cts +149 -0
  21. package/dist/lib/cjs/docs-site/api-doc-link-rendering.cjs +377 -0
  22. package/dist/lib/cjs/docs-site/api-doc-link-rendering.d.cts +185 -0
  23. package/dist/lib/cjs/docs-site/api-doc-package-sites.cjs +118 -0
  24. package/dist/lib/cjs/docs-site/api-doc-package-sites.d.cts +36 -0
  25. package/dist/lib/cjs/docs-site/api-doc-page-generation.cjs +561 -0
  26. package/dist/lib/cjs/docs-site/api-doc-page-generation.d.cts +159 -0
  27. package/dist/lib/cjs/docs-site/api-doc-route-segments.cjs +42 -0
  28. package/dist/lib/cjs/docs-site/api-doc-route-segments.d.cts +25 -0
  29. package/dist/lib/cjs/docs-site/api-doc-settings.cjs +47 -0
  30. package/dist/lib/cjs/docs-site/api-doc-settings.d.cts +53 -0
  31. package/dist/lib/cjs/docs-site/api-doc-source-processing.cjs +288 -0
  32. package/dist/lib/cjs/docs-site/api-doc-source-processing.d.cts +75 -0
  33. package/dist/lib/cjs/docs-site/api-doc-text-utils.cjs +281 -0
  34. package/dist/lib/cjs/docs-site/api-doc-text-utils.d.cts +178 -0
  35. package/dist/lib/cjs/docs-site/api-doc-type-merging.cjs +157 -0
  36. package/dist/lib/cjs/docs-site/api-doc-type-merging.d.cts +51 -0
  37. package/dist/lib/cjs/docs-site/api-doc-types.cjs +22 -0
  38. package/dist/lib/cjs/docs-site/api-doc-types.d.cts +157 -0
  39. package/dist/lib/cjs/docs-site/api-docs.cjs +143 -0
  40. package/dist/lib/cjs/docs-site/api-docs.d.cts +34 -0
  41. package/dist/lib/cjs/docs-site/astro-config.cjs +169 -0
  42. package/dist/lib/cjs/docs-site/astro-config.d.cts +23 -0
  43. package/dist/lib/cjs/docs-site/docs-links.cjs +123 -0
  44. package/dist/lib/cjs/docs-site/docs-links.d.cts +32 -0
  45. package/dist/lib/cjs/docs-site/docs-site-assets.cjs +64 -0
  46. package/dist/lib/cjs/docs-site/docs-site-assets.d.cts +23 -0
  47. package/dist/lib/cjs/docs-site/docs-site-commands.cjs +72 -0
  48. package/dist/lib/cjs/docs-site/docs-site-commands.d.cts +29 -0
  49. package/dist/lib/cjs/docs-site/docs-site-config.cjs +122 -0
  50. package/dist/lib/cjs/docs-site/docs-site-config.d.cts +162 -0
  51. package/dist/lib/cjs/docs-site/index.cjs +116 -0
  52. package/dist/lib/cjs/docs-site/index.d.cts +26 -0
  53. package/dist/lib/cjs/docs-site/link-check.cjs +197 -0
  54. package/dist/lib/cjs/docs-site/link-check.d.cts +163 -0
  55. package/dist/lib/cjs/docs-site/og-image-page.cjs +45 -0
  56. package/dist/lib/cjs/docs-site/og-image-page.d.cts +15 -0
  57. package/dist/lib/cjs/docs-site/og-image.cjs +326 -0
  58. package/dist/lib/cjs/docs-site/og-image.d.cts +70 -0
  59. package/dist/lib/cjs/docs-site/og-images.cjs +170 -0
  60. package/dist/lib/cjs/docs-site/og-images.d.cts +41 -0
  61. package/dist/lib/cjs/docs-site/route-data.cjs +47 -0
  62. package/dist/lib/cjs/docs-site/route-data.d.cts +14 -0
  63. package/dist/lib/cjs/docs-site/satteri-github-alerts.cjs +97 -0
  64. package/dist/lib/cjs/docs-site/satteri-github-alerts.d.cts +31 -0
  65. package/dist/lib/cjs/docs-site/satteri-relative-links.cjs +87 -0
  66. package/dist/lib/cjs/docs-site/satteri-relative-links.d.cts +29 -0
  67. package/dist/lib/cjs/docs-site/unrendered-alerts.cjs +51 -0
  68. package/dist/lib/cjs/docs-site/unrendered-alerts.d.cts +38 -0
  69. package/dist/lib/cjs/index.cjs +4 -1
  70. package/dist/lib/cjs/index.d.cts +1 -0
  71. package/dist/lib/cjs/library-build.cjs +1 -1
  72. package/dist/lib/cjs/library-build.d.cts +2 -2
  73. package/dist/lib/cjs/linters/eslint-config.cjs +17 -17
  74. package/dist/lib/cjs/linters/eslint-config.d.cts +1 -7
  75. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +2 -2
  76. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +5 -8
  77. package/dist/lib/cjs/package-manager.cjs +2 -2
  78. package/dist/lib/esm/build.d.mts +1 -1
  79. package/dist/lib/esm/build.mjs +1 -1
  80. package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +1 -1
  81. package/dist/lib/esm/commitlint-forbidden-patterns.mjs +2 -2
  82. package/dist/lib/esm/commitlint-spellcheck-header.d.mts +1 -1
  83. package/dist/lib/esm/commitlint-spellcheck-header.mjs +2 -2
  84. package/dist/lib/esm/docs-site/api-doc-constants.d.mts +18 -0
  85. package/dist/lib/esm/docs-site/api-doc-constants.mjs +143 -0
  86. package/dist/lib/esm/docs-site/api-doc-jsdoc.d.mts +149 -0
  87. package/dist/lib/esm/docs-site/api-doc-jsdoc.mjs +377 -0
  88. package/dist/lib/esm/docs-site/api-doc-link-rendering.d.mts +185 -0
  89. package/dist/lib/esm/docs-site/api-doc-link-rendering.mjs +356 -0
  90. package/dist/lib/esm/docs-site/api-doc-package-sites.d.mts +36 -0
  91. package/dist/lib/esm/docs-site/api-doc-package-sites.mjs +91 -0
  92. package/dist/lib/esm/docs-site/api-doc-page-generation.d.mts +159 -0
  93. package/dist/lib/esm/docs-site/api-doc-page-generation.mjs +548 -0
  94. package/dist/lib/esm/docs-site/api-doc-route-segments.d.mts +25 -0
  95. package/dist/lib/esm/docs-site/api-doc-route-segments.mjs +17 -0
  96. package/dist/lib/esm/docs-site/api-doc-settings.d.mts +53 -0
  97. package/dist/lib/esm/docs-site/api-doc-settings.mjs +22 -0
  98. package/dist/lib/esm/docs-site/api-doc-source-processing.d.mts +75 -0
  99. package/dist/lib/esm/docs-site/api-doc-source-processing.mjs +274 -0
  100. package/dist/lib/esm/docs-site/api-doc-text-utils.d.mts +178 -0
  101. package/dist/lib/esm/docs-site/api-doc-text-utils.mjs +239 -0
  102. package/dist/lib/esm/docs-site/api-doc-type-merging.d.mts +51 -0
  103. package/dist/lib/esm/docs-site/api-doc-type-merging.mjs +129 -0
  104. package/dist/lib/esm/docs-site/api-doc-types.d.mts +157 -0
  105. package/dist/lib/esm/docs-site/api-doc-types.mjs +6 -0
  106. package/dist/lib/esm/docs-site/api-docs.d.mts +34 -0
  107. package/dist/lib/esm/docs-site/api-docs.mjs +139 -0
  108. package/dist/lib/esm/docs-site/astro-config.d.mts +23 -0
  109. package/dist/lib/esm/docs-site/astro-config.mjs +135 -0
  110. package/dist/lib/esm/docs-site/docs-links.d.mts +32 -0
  111. package/dist/lib/esm/docs-site/docs-links.mjs +113 -0
  112. package/dist/lib/esm/docs-site/docs-site-assets.d.mts +23 -0
  113. package/dist/lib/esm/docs-site/docs-site-assets.mjs +32 -0
  114. package/dist/lib/esm/docs-site/docs-site-commands.d.mts +29 -0
  115. package/dist/lib/esm/docs-site/docs-site-commands.mjs +46 -0
  116. package/dist/lib/esm/docs-site/docs-site-config.d.mts +162 -0
  117. package/dist/lib/esm/docs-site/docs-site-config.mjs +98 -0
  118. package/dist/lib/esm/docs-site/index.d.mts +26 -0
  119. package/dist/lib/esm/docs-site/index.mjs +58 -0
  120. package/dist/lib/esm/docs-site/link-check.d.mts +163 -0
  121. package/dist/lib/esm/docs-site/link-check.mjs +166 -0
  122. package/dist/lib/esm/docs-site/og-image-page.d.mts +15 -0
  123. package/dist/lib/esm/docs-site/og-image-page.mjs +21 -0
  124. package/dist/lib/esm/docs-site/og-image.d.mts +70 -0
  125. package/dist/lib/esm/docs-site/og-image.mjs +292 -0
  126. package/dist/lib/esm/docs-site/og-images.d.mts +41 -0
  127. package/dist/lib/esm/docs-site/og-images.mjs +156 -0
  128. package/dist/lib/esm/docs-site/route-data.d.mts +14 -0
  129. package/dist/lib/esm/docs-site/route-data.mjs +23 -0
  130. package/dist/lib/esm/docs-site/satteri-github-alerts.d.mts +31 -0
  131. package/dist/lib/esm/docs-site/satteri-github-alerts.mjs +72 -0
  132. package/dist/lib/esm/docs-site/satteri-relative-links.d.mts +29 -0
  133. package/dist/lib/esm/docs-site/satteri-relative-links.mjs +63 -0
  134. package/dist/lib/esm/docs-site/unrendered-alerts.d.mts +38 -0
  135. package/dist/lib/esm/docs-site/unrendered-alerts.mjs +26 -0
  136. package/dist/lib/esm/index.d.mts +1 -0
  137. package/dist/lib/esm/index.mjs +3 -1
  138. package/dist/lib/esm/library-build.d.mts +2 -2
  139. package/dist/lib/esm/library-build.mjs +1 -1
  140. package/dist/lib/esm/linters/eslint-config.d.mts +1 -7
  141. package/dist/lib/esm/linters/eslint-config.mjs +17 -17
  142. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +5 -8
  143. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +2 -2
  144. package/dist/lib/esm/package-manager.mjs +2 -2
  145. package/docs-site/api-doc-constants/package.json +6 -0
  146. package/docs-site/api-doc-jsdoc/package.json +6 -0
  147. package/docs-site/api-doc-link-rendering/package.json +6 -0
  148. package/docs-site/api-doc-package-sites/package.json +6 -0
  149. package/docs-site/api-doc-page-generation/package.json +6 -0
  150. package/docs-site/api-doc-route-segments/package.json +6 -0
  151. package/docs-site/api-doc-settings/package.json +6 -0
  152. package/docs-site/api-doc-source-processing/package.json +6 -0
  153. package/docs-site/api-doc-text-utils/package.json +6 -0
  154. package/docs-site/api-doc-type-merging/package.json +6 -0
  155. package/docs-site/api-doc-types/package.json +6 -0
  156. package/docs-site/api-docs/package.json +6 -0
  157. package/docs-site/astro-config/package.json +6 -0
  158. package/docs-site/docs-links/package.json +6 -0
  159. package/docs-site/docs-site-assets/package.json +6 -0
  160. package/docs-site/docs-site-commands/package.json +6 -0
  161. package/docs-site/docs-site-config/package.json +6 -0
  162. package/docs-site/index/package.json +6 -0
  163. package/docs-site/link-check/package.json +6 -0
  164. package/docs-site/og-image/package.json +6 -0
  165. package/docs-site/og-image-page/package.json +6 -0
  166. package/docs-site/og-images/package.json +6 -0
  167. package/docs-site/package.json +6 -0
  168. package/docs-site/route-data/package.json +6 -0
  169. package/docs-site/satteri-github-alerts/package.json +6 -0
  170. package/docs-site/satteri-relative-links/package.json +6 -0
  171. package/docs-site/unrendered-alerts/package.json +6 -0
  172. package/package.json +74 -4
@@ -0,0 +1,16 @@
1
+ ---
2
+ import { Code } from '@astrojs/starlight/components';
3
+
4
+ interface Props {
5
+ description?: string;
6
+ signature: string;
7
+ }
8
+
9
+ const { signature, description } = Astro.props;
10
+ ---
11
+
12
+ <div class="filterable-block" data-inherited="false">
13
+ <h2><span class="icon-own" title="Defined on this type"></span> Constructor</h2>
14
+ <Code code={signature} lang="ts" />
15
+ {description && <p set:html={description} />}
16
+ </div>
@@ -0,0 +1,12 @@
1
+ ---
2
+ import { Code } from '@astrojs/starlight/components';
3
+
4
+ interface Props {
5
+ text: string;
6
+ }
7
+
8
+ const { text } = Astro.props;
9
+ ---
10
+
11
+ <p><strong>Import:</strong></p>
12
+ <Code code={text} lang="ts" />
@@ -0,0 +1,101 @@
1
+ ---
2
+ import { Code } from '@astrojs/starlight/components';
3
+
4
+ /** A rendered API parameter. */
5
+ interface ParameterInfo {
6
+ description: string;
7
+ name: string;
8
+ type: string;
9
+ }
10
+
11
+ interface Props {
12
+ description?: string;
13
+ examples?: string[];
14
+ parameters?: ParameterInfo[];
15
+ remarks?: string;
16
+ returnDescription?: string;
17
+ returnType?: string;
18
+ signature?: string;
19
+ since?: string;
20
+ type?: string;
21
+ }
22
+
23
+ const {
24
+ type,
25
+ description,
26
+ signature,
27
+ parameters = [],
28
+ returnType,
29
+ returnDescription,
30
+ remarks,
31
+ examples = [],
32
+ since
33
+ } = Astro.props;
34
+
35
+ /** Strip markdown code fence markers and extract language + code */
36
+ function parseCodeFence(raw: string): { code: string; lang: string } {
37
+ const match = /^```(\w*)\n([\s\S]*?)(?:\n```)?$/.exec(raw.trim());
38
+ if (match) {
39
+ return { code: match[2]?.trimEnd() ?? '', lang: match[1] || 'ts' };
40
+ }
41
+ return { code: raw.trim(), lang: 'ts' };
42
+ }
43
+ const parsedExamples = examples.map(parseCodeFence);
44
+ ---
45
+
46
+ {type && <p><strong>Type:</strong> <span set:html={type} /></p>}
47
+
48
+ {description && <Fragment set:html={description} />}
49
+
50
+ {signature && (
51
+ <>
52
+ <p><strong>Signature:</strong></p>
53
+ <Code code={signature} lang="ts" />
54
+ </>
55
+ )}
56
+
57
+ {parameters.length > 0 && (
58
+ <>
59
+ <p><strong>Parameters:</strong></p>
60
+ <table>
61
+ <thead>
62
+ <tr>
63
+ <th style="text-align: left">Parameter</th>
64
+ <th style="text-align: left">Type</th>
65
+ <th style="text-align: left">Description</th>
66
+ </tr>
67
+ </thead>
68
+ <tbody>
69
+ {parameters.map((param) => (
70
+ <tr>
71
+ <td style="text-align: left">{param.name}</td>
72
+ <td style="text-align: left" set:html={param.type} />
73
+ <td style="text-align: left" set:html={param.description} />
74
+ </tr>
75
+ ))}
76
+ </tbody>
77
+ </table>
78
+ </>
79
+ )}
80
+
81
+ {returnType && (
82
+ <p><strong>Returns:</strong> <span set:html={returnType} />
83
+ {returnDescription && <> — <span set:html={returnDescription} /></>}
84
+ </p>
85
+ )}
86
+
87
+ {since && <p><strong>Since:</strong> {since}</p>}
88
+
89
+ {remarks && (
90
+ <>
91
+ <p><strong>Remarks:</strong></p>
92
+ <Fragment set:html={remarks} />
93
+ </>
94
+ )}
95
+
96
+ {parsedExamples.map(({ code, lang }) => (
97
+ <>
98
+ <p><strong>Example:</strong></p>
99
+ <Code code={code} lang={lang} />
100
+ </>
101
+ ))}
@@ -0,0 +1,45 @@
1
+ ---
2
+ interface MethodRow {
3
+ description: string;
4
+ href: string;
5
+ inheritedFrom?: string;
6
+ returns: string;
7
+ signature: string;
8
+ }
9
+
10
+ interface Props {
11
+ rows: MethodRow[];
12
+ }
13
+
14
+ const { rows } = Astro.props;
15
+ ---
16
+
17
+ <h2>Methods</h2>
18
+ <table>
19
+ <colgroup>
20
+ <col style="width: 20%" />
21
+ <col style="width: 30%" />
22
+ <col style="width: 50%" />
23
+ </colgroup>
24
+ <thead>
25
+ <tr>
26
+ <th style="text-align: left">Method</th>
27
+ <th style="text-align: left">Returns</th>
28
+ <th style="text-align: left">Description</th>
29
+ </tr>
30
+ </thead>
31
+ <tbody>
32
+ {rows.map((row) => {
33
+ const inherited = row.inheritedFrom
34
+ ? `<br/><em>(Inherited from ${row.inheritedFrom})</em>`
35
+ : '';
36
+ return (
37
+ <tr>
38
+ <td style="text-align: left">{row.href ? <a href={row.href} set:html={row.signature} /> : <span set:html={row.signature} />}</td>
39
+ <td style="text-align: left" set:html={row.returns} />
40
+ <td style="text-align: left" set:html={row.description + inherited} />
41
+ </tr>
42
+ );
43
+ })}
44
+ </tbody>
45
+ </table>
@@ -0,0 +1,45 @@
1
+ ---
2
+ interface PropertyRow {
3
+ description: string;
4
+ href: string;
5
+ inheritedFrom?: string;
6
+ name: string;
7
+ type: string;
8
+ }
9
+
10
+ interface Props {
11
+ rows: PropertyRow[];
12
+ }
13
+
14
+ const { rows } = Astro.props;
15
+ ---
16
+
17
+ <h2>Properties</h2>
18
+ <table>
19
+ <colgroup>
20
+ <col style="width: 20%" />
21
+ <col style="width: 30%" />
22
+ <col style="width: 50%" />
23
+ </colgroup>
24
+ <thead>
25
+ <tr>
26
+ <th style="text-align: left">Property</th>
27
+ <th style="text-align: left">Type</th>
28
+ <th style="text-align: left">Description</th>
29
+ </tr>
30
+ </thead>
31
+ <tbody>
32
+ {rows.map((row) => {
33
+ const inherited = row.inheritedFrom
34
+ ? `<br/><em>(Inherited from ${row.inheritedFrom})</em>`
35
+ : '';
36
+ return (
37
+ <tr>
38
+ <td style="text-align: left">{row.href ? <a href={row.href}>{row.name}</a> : row.name}</td>
39
+ <td style="text-align: left" set:html={row.type} />
40
+ <td style="text-align: left" set:html={row.description + inherited} />
41
+ </tr>
42
+ );
43
+ })}
44
+ </tbody>
45
+ </table>
@@ -0,0 +1,43 @@
1
+ ---
2
+ /**
3
+ * Site-title override: renders the title Starlight passes in, plus the documented package's version as an
4
+ * always-visible badge. `defineDocsSiteConfig` reads the version from the site's root package.json and defines it
5
+ * as `import.meta.env.DOCS_SITE_PACKAGE_VERSION`.
6
+ */
7
+ const { siteTitle, siteTitleHref } = Astro.locals.starlightRoute;
8
+ const version = `v${import.meta.env.DOCS_SITE_PACKAGE_VERSION}`;
9
+ ---
10
+
11
+ <a href={siteTitleHref} class="site-title sl-flex">
12
+ <span translate="no">{siteTitle}</span>
13
+ <span class="site-version" translate="no">{version}</span>
14
+ </a>
15
+
16
+ <style>
17
+ @layer starlight.core {
18
+ .site-title {
19
+ align-items: center;
20
+ gap: 0.5rem;
21
+ font-size: var(--sl-text-h4);
22
+ font-weight: 600;
23
+ color: var(--sl-color-text-accent);
24
+ text-decoration: none;
25
+ white-space: nowrap;
26
+ min-width: 0;
27
+ }
28
+ span:first-child {
29
+ overflow: hidden;
30
+ text-overflow: ellipsis;
31
+ }
32
+ .site-version {
33
+ flex: none;
34
+ font-size: var(--sl-text-xs);
35
+ font-weight: 500;
36
+ line-height: 1.5;
37
+ color: var(--sl-color-gray-1);
38
+ background: var(--sl-color-gray-6);
39
+ padding: 0.05rem 0.45rem;
40
+ border-radius: 999px;
41
+ }
42
+ }
43
+ </style>
@@ -0,0 +1,20 @@
1
+ ---
2
+ import { Code } from '@astrojs/starlight/components';
3
+
4
+ interface Props {
5
+ extends?: string[];
6
+ implements?: string[];
7
+ kind: 'class' | 'interface';
8
+ name: string;
9
+ typeParams?: string[];
10
+ }
11
+
12
+ const { kind, name, typeParams = [], extends: baseTypes = [], implements: implTypes = [] } = Astro.props;
13
+ const typeParamsStr = typeParams.length > 0 ? `<${typeParams.join(', ')}>` : '';
14
+ const extendsClause = baseTypes.length > 0 ? ` extends ${baseTypes.join(', ')}` : '';
15
+ const implementsClause = implTypes.length > 0 ? ` implements ${implTypes.join(', ')}` : '';
16
+ const signature = `export ${kind} ${name}${typeParamsStr}${extendsClause}${implementsClause}`;
17
+ ---
18
+
19
+ <p><strong>Signature:</strong></p>
20
+ <Code code={signature} lang="ts" />
@@ -0,0 +1,221 @@
1
+ :root {
2
+ --icon-size-med: 20px;
3
+
4
+ .starlight-aside--todo {
5
+ --sl-color-asides-text-accent: var(--sl-color-red-high);
6
+ --sl-color-asides-border: var(--sl-color-red);
7
+ background-color: var(--sl-color-red-low);
8
+ }
9
+ }
10
+
11
+ :root[data-theme='dark'] {
12
+ --sl-color-accent-high: hsl(255, 92%, 82%);
13
+ --sl-color-accent: hsl(258, 85%, 68%);
14
+ --sl-color-accent-low: hsl(260, 42%, 38%);
15
+ --sl-hero-color: hsla(258, 85%, 68%, 30%);
16
+
17
+ .starlight-aside--tutorial {
18
+ --sl-color-asides-text-accent: #157AFF;
19
+ --sl-color-asides-border: #21385a;
20
+ background-color: #1e314c;
21
+ }
22
+
23
+ .starlight-aside--remark {
24
+ --sl-color-asides-text-accent: #ea9f52;
25
+ --sl-color-asides-border: #af6b32;
26
+ background-color: #302418;
27
+ }
28
+
29
+ .starlight-aside--todo {
30
+ --sl-color-asides-text-accent: #d2c7ff;
31
+ --sl-color-asides-border: #291761;
32
+ background-color: #321c81;
33
+ }
34
+
35
+ .starlight-aside--note {
36
+ --sl-color-asides-text-accent: #85d4da;
37
+ --sl-color-asides-border: #5eb5bd;
38
+ background-color: #416263;
39
+ }
40
+ }
41
+
42
+ :root[data-theme='light'] {
43
+ --sl-color-accent-high: hsl(260, 55%, 32%);
44
+ --sl-color-accent: hsl(258, 66%, 55%);
45
+ --sl-color-accent-low: hsl(256, 82%, 84%);
46
+ --sl-hero-color: hsla(258, 66%, 55%, 25%);
47
+
48
+ .starlight-aside--tutorial {
49
+ --sl-color-asides-text-accent: #086DDD;
50
+ --sl-color-asides-border: #1e5a97;
51
+ background-color: #E6F0FB;
52
+ }
53
+
54
+ .starlight-aside--remark {
55
+ --sl-color-asides-text-accent: #EC7500;
56
+ --sl-color-asides-border: #7a390c;
57
+ background-color: #ffead5;
58
+ }
59
+
60
+ .starlight-aside--todo {
61
+ --sl-color-asides-text-accent: #6844dc;
62
+ --sl-color-asides-border: #5f3ad6;
63
+ background-color: #ddd5f8;
64
+ }
65
+
66
+ .starlight-aside--note {
67
+ --sl-color-asides-text-accent: #0d9a99;
68
+ --sl-color-asides-border: #21a6a5;
69
+ background-color: #cdeded;
70
+ }
71
+ }
72
+
73
+ /* Prevent horizontal scroll on mobile — any overflowing element (tables, code blocks,
74
+ long type names) is clipped at the page level. Individual containers like tables still
75
+ scroll horizontally via their own overflow:auto. Using `clip` instead of `hidden` avoids
76
+ creating a new scroll container. */
77
+ html,
78
+ body {
79
+ overflow-x: clip;
80
+ }
81
+
82
+ /* Widen content area for API reference tables */
83
+ :root {
84
+ --sl-content-width: 65rem;
85
+ --sl-content-pad-x: 1rem;
86
+ }
87
+
88
+ /* Ensure long content scrolls horizontally within its container on mobile */
89
+ .sl-markdown-content pre {
90
+ overflow-x: auto;
91
+ }
92
+
93
+ /* API reference tables */
94
+ .sl-markdown-content table {
95
+ width: 100%;
96
+ display: block;
97
+ overflow-x: auto;
98
+ }
99
+
100
+ .sl-markdown-content table th,
101
+ .sl-markdown-content table td {
102
+ text-align: left;
103
+ }
104
+
105
+ /* Hide graph view on API pages — not useful for reference docs */
106
+ .slsg-graph-panel { /* cspell:disable-line */
107
+ display: none;
108
+ }
109
+
110
+ .group-label {
111
+ text-transform: none;
112
+ }
113
+
114
+
115
+ /* Hero style */
116
+ [data-has-hero] .page {
117
+ height: 100%;
118
+ background:
119
+ linear-gradient(215deg, var(--sl-hero-color), transparent 40%),
120
+ radial-gradient(var(--sl-hero-color), transparent 40%) no-repeat -80vw -70vh / 150vw 200vh,
121
+ radial-gradient(var(--sl-hero-color), transparent 65%) no-repeat 50% calc(100% + 20rem) /
122
+ 150rem 30rem;
123
+ }
124
+
125
+ [data-has-hero] header {
126
+ border-bottom: 1px solid transparent;
127
+ background-color: transparent;
128
+ -webkit-backdrop-filter: blur(16px);
129
+ backdrop-filter: blur(16px);
130
+ }
131
+
132
+
133
+ [data-has-hero] .hero > img {
134
+ filter: drop-shadow(0 0 3rem var(--sl-hero-color));
135
+ }
136
+
137
+
138
+ .svg-embed {
139
+ display: flex;
140
+ }
141
+
142
+ .starlight-aside {
143
+ --sl-color-asides-text-accent: var(--sl-color-red-high);
144
+ --sl-color-asides-border: var(--sl-color-red);
145
+ background-color: var(--sl-color-red-low);
146
+ border-radius: 8px;
147
+ border: unset;
148
+
149
+ .starlight-aside__content:has(hr) {
150
+ display: none;
151
+ }
152
+
153
+ svg {
154
+ width: var(--icon-size-med);
155
+ height: var(--icon-size-med);
156
+ }
157
+ }
158
+
159
+ .sl-separator {
160
+ display: flex;
161
+ }
162
+
163
+ .sl-separator:after {
164
+ content: "";
165
+ height: 2rem;
166
+ border-inline-end: 1px solid var(--sl-color-gray-5);
167
+ }
168
+
169
+ .obsidian-docs-link {
170
+ text-decoration: none;
171
+ color: var(--sl-color-accent);
172
+ font-weight: 600;
173
+ padding: 0 8px;
174
+ }
175
+
176
+ .code-location-icon {
177
+ display: flex;
178
+ margin-left: auto;
179
+ }
180
+
181
+ .code-location-text {
182
+ display: flex;
183
+ flex-direction: row;
184
+ align-items: center;
185
+ gap: 0.5rem;
186
+ justify-content: flex-end;
187
+ }
188
+
189
+ h3, h4, h5 {
190
+ display: flex;
191
+ }
192
+
193
+
194
+ .content-badge {
195
+ color: white;
196
+ background-color: var(--badge-color, var(--sl-color-accent));
197
+ border-radius: 4px;
198
+ padding: 0.1rem 0.25rem;
199
+ font-weight: 800;
200
+ font-size: 0.75rem;
201
+ }
202
+
203
+ .content-badge--devtools {
204
+ --badge-color: var(--sl-color-accent);
205
+ }
206
+ .content-badge--css {
207
+ --badge-color: var(--sl-color-red);
208
+ }
209
+ .content-badge--js {
210
+ --badge-color: var(--sl-color-purple);
211
+ }
212
+ .content-badge--electron {
213
+ --badge-color: var(--sl-color-orange);
214
+ }
215
+ .content-badge--html {
216
+ --badge-color: var(--sl-color-blue);
217
+ }
218
+
219
+ .content-badge--warning {
220
+ --badge-color: var(--sl-color-red);
221
+ }
@@ -166,4 +166,4 @@ function shouldKeepProjectFile(params) {
166
166
  buildCompileTypeScript,
167
167
  buildTemplates
168
168
  });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlclxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGFja2FnZUpzb24sXG4gIFRzQ29uZmlnSnNvblxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tQcm9qZWN0VHlwZXMsXG4gIHBhcnNlVHNDb25maWcsXG4gIHRvQ2Fub25pY2FsXG59IGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6dHlwZXNjcmlwdCcpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIFRoZSBwcm9qZWN0J3MgU3ZlbHRlIGZpbGVzIGFyZSBmb3VuZCBieSBnbG9iYmluZyB0aGUgU3ZlbHRlIGV4dGVuc2lvbnMgZGlyZWN0bHkuIEdsb2JiaW5nIHRoZSB0c2NvbmZpZ1xuICogYGluY2x1ZGVgIHBhdHRlcm5zIGFuZCBmaWx0ZXJpbmcgdGhhdCBsaXN0IHdvdWxkIG5ldmVyIG1hdGNoOiBgaW5jbHVkZWAgbGlzdHMgVHlwZVNjcmlwdCBnbG9ic1xuICogKGAuL3NyYy8qKlxcLyoudHNgLCDigKYpLCBzbyBubyBgLnN2ZWx0ZWAgcGF0aCBjYW4gZXZlciBhcHBlYXIgaW4gaXQgYW5kIHRoZSBjaGVjayB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCBoYXMgU3ZlbHRlIGZpbGVzIGJ1dCBkb2VzIG5vdCBkZWNsYXJlIGBzdmVsdGUtY2hlY2tgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5Uc0NvbmZpZ0pzb24gfSk7XG4gIGNvbnN0IHRzQ29uZmlnID0gYXdhaXQgcmVhZEpzb248VHNDb25maWdKc29uPih0c0NvbmZpZ1BhdGgpO1xuICBjb25zdCBzdmVsdGVGaWxlcyA9IGF3YWl0IHRvQXJyYXkoZ2xvYihTVkVMVEVfRklMRV9QQVRURVJOUywge1xuICAgIGN3ZDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ3VycmVudEZvbGRlciB9KSxcbiAgICBleGNsdWRlOiBbLi4uU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUywgLi4udHNDb25maWcuZXhjbHVkZSA/PyBbXV1cbiAgfSkpO1xuXG4gIGNvbnN0IFtmaXJzdFN2ZWx0ZUZpbGVdID0gc3ZlbHRlRmlsZXM7XG5cbiAgaWYgKGZpcnN0U3ZlbHRlRmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG5cbiAgaWYgKCFjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZvdW5kIFN2ZWx0ZSBmaWxlKHMpIGluIHRoZSBwcm9qZWN0IChlLmcuICR7Zmlyc3RTdmVsdGVGaWxlfSksIGJ1dCBcXGAke1NWRUxURV9DSEVDS19QQUNLQUdFX05BTUV9XFxgIGlzIG5vdCBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb24uYFxuICAgICAgICArIGAgQWRkIFxcYCR7U1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRX1cXGAgYXMgYSBkZXZEZXBlbmRlbmN5IHRvIHR5cGUtY2hlY2sgdGhlIFN2ZWx0ZSBjb2RlLmBcbiAgICApO1xuICB9XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FIH0pLCAnLS10c2NvbmZpZycsIFJlcG9QYXRocy5Uc0NvbmZpZ0pzb25dKTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgVHlwZVNjcmlwdCBjb2RlLlxuICpcbiAqIFRoZSBnZW5lcmFsIGB0c2NgIHBhc3MgcnVucyB3aXRoIGBza2lwTGliQ2hlY2s6IHRydWVgIChjb25maWd1cmVkIGluIGB0c2NvbmZpZy5qc29uYCkgc28gaXQgZG9lc1xuICogbm90IGZhaWwgb24gYnJva2VuIHVwc3RyZWFtIGAuZC50c2AgZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wuIEFmdGVyd2FyZHMsIHtAbGluayBhcmVQcm9qZWN0VHlwZXNWYWxpZH1cbiAqIHJlLXJ1bnMgdGhlIHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljcyBmcm9tIHRoZVxuICogZmlsZXMgd2Ugb3duLCBzbyB0aGUgZGVjbGFyYXRpb25zIHdlIGF1dGhvciBhcmUgc3RpbGwgZnVsbHkgdmFsaWRhdGVkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIElmIHRoZSBwcm9qZWN0J3Mgb3duIGRlY2xhcmF0aW9ucyBmYWlsIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICd0c2MnIH0pLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xuXG4gIGlmICghYXJlUHJvamVjdFR5cGVzVmFsaWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyBhbGwgdGVtcGxhdGUgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGVzIGZvbGRlciB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGVcbiAqIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHRlbXBsYXRlcyBmb2xkZXIgYW5kIGNvcGllcyBlYWNoIGZpbGUgdG8gdGhlXG4gKiBjb3JyZXNwb25kaW5nIHBhdGggdW5kZXIge0BsaW5rIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMvZGlzdC90ZW1wbGF0ZXNgLiBBIHRyYWlsaW5nIGAudGVtcGxhdGVgIG9uIGEgc291cmNlXG4gKiBmaWxlIG5hbWUgaXMgc3RyaXBwZWQgaW4gdGhlIGRlc3RpbmF0aW9uIChlLmcuIGBlc2xpbnQuY29uZmlnLm10cy50ZW1wbGF0ZWAgaXMgY29waWVkIGFzXG4gKiBgZXNsaW50LmNvbmZpZy5tdHNgKSwgc28gYW4gYWN0aXZlIGNvbmZpZyB0ZW1wbGF0ZSBjYW4gbGl2ZSBpbiB0aGUgcmVwbyB1bmRlciBhIG5hbWUgdGhhdCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgdG9vbCBkb2VzIG5vdCBhdXRvLWRpc2NvdmVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoUmVwb1BhdGhzLlRlbXBsYXRlcywgeyByZWN1cnNpdmU6IHRydWUsIHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpIHtcbiAgICBpZiAoIWRpcmVudC5pc0ZpbGUoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IHRyaW1TdGFydCh7XG4gICAgICAkc3RyaW5nOiBqb2luKGRpcmVudC5wYXJlbnRQYXRoLCBkaXJlbnQubmFtZSksXG4gICAgICBwcmVmaXg6IGAke1JlcG9QYXRocy5UZW1wbGF0ZXN9L2BcbiAgICB9KTtcbiAgICBjb25zdCBkZXN0aW5hdGlvblBhdGggPSBwYXRoLmVuZHNXaXRoKFRFTVBMQVRFX0ZJTEVfU1VGRklYKSA/IHBhdGguc2xpY2UoMCwgLVRFTVBMQVRFX0ZJTEVfU1VGRklYLmxlbmd0aCkgOiBwYXRoO1xuICAgIGF3YWl0IGNwKGpvaW4oUmVwb1BhdGhzLlRlbXBsYXRlcywgcGF0aCksIGpvaW4oUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIGRlc3RpbmF0aW9uUGF0aCkpO1xuICB9XG59XG5cbmNvbnN0IFRFTVBMQVRFX0ZJTEVfU1VGRklYID0gJy50ZW1wbGF0ZSc7XG5cbmNvbnN0IE5PREVfTU9EVUxFU19TRUdNRU5UID0gJy9ub2RlX21vZHVsZXMvJztcblxuY29uc3QgU1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRSA9ICdzdmVsdGUtY2hlY2snO1xuXG5jb25zdCBTVkVMVEVfRklMRV9QQVRURVJOUyA9IFtcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlYCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlLmpzYCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlLnRzYFxuXTtcblxuLyoqXG4gKiBgbm9kZV9tb2R1bGVzYCBtdXN0IGJlIGxpc3RlZCBleHBsaWNpdGx5OiBhIHRzY29uZmlnIHRoYXQgc2V0cyBgZXhjbHVkZWAgYXQgYWxsICoqcmVwbGFjZXMqKiBUeXBlU2NyaXB0J3NcbiAqIGRlZmF1bHQgYG5vZGVfbW9kdWxlc2AgZXhjbHVzaW9uLCBzbyBpdCBjYW5ub3QgYmUgcmVsaWVkIG9uIHRvIGtlZXAgZGVwZW5kZW5jaWVzIG91dCBvZiB0aGUgZ2xvYi5cbiAqL1xuY29uc3QgU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUyA9IFtcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9LyR7UmVwb1BhdGhzLk5vZGVNb2R1bGVzfS8ke1JlcG9QYXRocy5BbnlQYXRofWAsXG4gIGAke1JlcG9QYXRocy5BbnlQYXRofS8ke1JlcG9QYXRocy5EaXN0fS8ke1JlcG9QYXRocy5BbnlQYXRofWBcbl07XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHNob3VsZEtlZXBQcm9qZWN0RmlsZX0uXG4gKi9cbmludGVyZmFjZSBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMge1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCBvZiB0aGUgZmlsZSB1bmRlciBjb25zaWRlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQWJzb2x1dGUgKGNhbm9uaWNhbCkgcGF0aCBvZiB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdENhbm9uaWNhbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlLXJ1bnMgdGhlIHByb2plY3QgdHlwZS1jaGVjayBpbi1tZW1vcnkgd2l0aCBgc2tpcExpYkNoZWNrOiBmYWxzZWAsIHJlcG9ydGluZyBvbmx5IGRpYWdub3N0aWNzXG4gKiB3aG9zZSBzb3VyY2UgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBwcm9qZWN0J3Mgb3duIGZpbGVzIGhhdmUgbm8gdHlwZSBlcnJvcnMsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiBhcmVQcm9qZWN0VHlwZXNWYWxpZCgpOiBib29sZWFuIHtcbiAgY29uc3Qgcm9vdCA9IGdldFJvb3RGb2xkZXIoKTtcblxuICBpZiAoIXJvb3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gIH1cblxuICBjb25zdCByb290Q2Fub25pY2FsID0gdG9DYW5vbmljYWwocm9vdCk7XG4gIGNvbnN0IHsgZmlsZU5hbWVzLCBvcHRpb25zIH0gPSBwYXJzZVRzQ29uZmlnKGpvaW4ocm9vdCwgUmVwb1BhdGhzLlRzQ29uZmlnSnNvbikpO1xuXG4gIHJldHVybiBjaGVja1Byb2plY3RUeXBlcyh7XG4gICAgb3B0aW9ucyxcbiAgICByb290TmFtZXM6IGZpbGVOYW1lcyxcbiAgICBzaG91bGRLZWVwRmlsZTogKGZpbGVOYW1lKSA9PiBzaG91bGRLZWVwUHJvamVjdEZpbGUoeyBmaWxlTmFtZSwgcm9vdENhbm9uaWNhbCB9KVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb2plY3QgZGVjbGFyZXMgYHN2ZWx0ZS1jaGVja2AuXG4gKlxuICogVGhlIGRlY2xhcmF0aW9uIGlzIHJlYWQgZnJvbSBgcGFja2FnZS5qc29uYCByYXRoZXIgdGhhbiBwcm9iZWQgaW4gYG5vZGVfbW9kdWxlcy8uYmluYCwgYmVjYXVzZVxuICoge0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0gZGVsaWJlcmF0ZWx5IGZhbGxzIGJhY2sgdG8gdGhlIHBhY2thZ2UgbWFuYWdlcidzIGV4ZWMgZm9ybSBmb3IgdG9vbHMgdGhhdCBoYXZlXG4gKiBubyBiaW4gc2hpbSDigJQgdGhlIG9ubHkgd2F5IGEgbG9jYWxseSBpbnN0YWxsZWQgdG9vbCByZXNvbHZlcyB1bmRlciB5YXJuIFBuUC4gVHJlYXRpbmcgYSBtaXNzaW5nIHNoaW0gYXMgYVxuICogbWlzc2luZyB0b29sIHdvdWxkIHRoZXJlZm9yZSBicmVhayBQblAgcHJvamVjdHMuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIHByb2plY3QncyBwYXJzZWQgYHBhY2thZ2UuanNvbmAuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBgc3ZlbHRlLWNoZWNrYCBpcyBkZWNsYXJlZCBhcyBhIHJlZ3VsYXIsIGRldiwgb3IgcGVlciBkZXBlbmRlbmN5LlxuICovXG5mdW5jdGlvbiBjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb246IFBhY2thZ2VKc29uKTogYm9vbGVhbiB7XG4gIHJldHVybiBbcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzLCBwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMsIHBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXNdXG4gICAgLnNvbWUoKGRlcGVuZGVuY2llcykgPT4gZGVwZW5kZW5jaWVzPy5bU1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRV0gIT09IHVuZGVmaW5lZCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkS2VlcFByb2plY3RGaWxlKHBhcmFtczogU2hvdWxkS2VlcFByb2plY3RGaWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgZmlsZU5hbWUsIHJvb3RDYW5vbmljYWwgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoYCR7cm9vdENhbm9uaWNhbH0vYCkgJiYgIWZpbGVOYW1lLmluY2x1ZGVzKE5PREVfTU9EVUxFU19TRUdN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
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlclxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGFja2FnZUpzb24sXG4gIFRzQ29uZmlnSnNvblxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tQcm9qZWN0VHlwZXMsXG4gIHBhcnNlVHNDb25maWcsXG4gIHRvQ2Fub25pY2FsXG59IGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6dHlwZXNjcmlwdCcpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIFRoZSBwcm9qZWN0J3MgU3ZlbHRlIGZpbGVzIGFyZSBmb3VuZCBieSBnbG9iYmluZyB0aGUgU3ZlbHRlIGV4dGVuc2lvbnMgZGlyZWN0bHkuIEdsb2JiaW5nIHRoZSB0c2NvbmZpZ1xuICogYGluY2x1ZGVgIHBhdHRlcm5zIGFuZCBmaWx0ZXJpbmcgdGhhdCBsaXN0IHdvdWxkIG5ldmVyIG1hdGNoOiBgaW5jbHVkZWAgbGlzdHMgVHlwZVNjcmlwdCBnbG9ic1xuICogKGAuL3NyYy8qKlxcLyoudHNgLCDigKYpLCBzbyBubyBgLnN2ZWx0ZWAgcGF0aCBjYW4gZXZlciBhcHBlYXIgaW4gaXQgYW5kIHRoZSBjaGVjayB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCBoYXMgU3ZlbHRlIGZpbGVzIGJ1dCBkb2VzIG5vdCBkZWNsYXJlIGBzdmVsdGUtY2hlY2tgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5Uc0NvbmZpZ0pzb24gfSk7XG4gIGNvbnN0IHRzQ29uZmlnID0gYXdhaXQgcmVhZEpzb248VHNDb25maWdKc29uPih0c0NvbmZpZ1BhdGgpO1xuICBjb25zdCBzdmVsdGVGaWxlcyA9IGF3YWl0IHRvQXJyYXkoZ2xvYihTVkVMVEVfRklMRV9QQVRURVJOUywge1xuICAgIGN3ZDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ3VycmVudEZvbGRlciB9KSxcbiAgICBleGNsdWRlOiBbLi4uU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUywgLi4udHNDb25maWcuZXhjbHVkZSA/PyBbXV1cbiAgfSkpO1xuXG4gIGNvbnN0IFtmaXJzdFN2ZWx0ZUZpbGVdID0gc3ZlbHRlRmlsZXM7XG5cbiAgaWYgKGZpcnN0U3ZlbHRlRmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG5cbiAgaWYgKCFjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZvdW5kIFN2ZWx0ZSBmaWxlKHMpIGluIHRoZSBwcm9qZWN0IChlLmcuICR7Zmlyc3RTdmVsdGVGaWxlfSksIGJ1dCBcXGAke1NWRUxURV9DSEVDS19QQUNLQUdFX05BTUV9XFxgIGlzIG5vdCBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb24uYFxuICAgICAgICArIGAgQWRkIFxcYCR7U1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRX1cXGAgYXMgYSBkZXZEZXBlbmRlbmN5IHRvIHR5cGUtY2hlY2sgdGhlIFN2ZWx0ZSBjb2RlLmBcbiAgICApO1xuICB9XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FIH0pLCAnLS10c2NvbmZpZycsIFJlcG9QYXRocy5Uc0NvbmZpZ0pzb25dKTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgVHlwZVNjcmlwdCBjb2RlLlxuICpcbiAqIFRoZSBnZW5lcmFsIGB0c2NgIHBhc3MgcnVucyB3aXRoIGBza2lwTGliQ2hlY2s6IHRydWVgIChjb25maWd1cmVkIGluIGB0c2NvbmZpZy5qc29uYCkgc28gaXQgZG9lc1xuICogbm90IGZhaWwgb24gYnJva2VuIHVwc3RyZWFtIGAuZC50c2AgZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wuIEFmdGVyd2FyZHMsIHtAbGluayBhcmVQcm9qZWN0VHlwZXNWYWxpZH1cbiAqIHJlLXJ1bnMgdGhlIHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljcyBmcm9tIHRoZVxuICogZmlsZXMgd2Ugb3duLCBzbyB0aGUgZGVjbGFyYXRpb25zIHdlIGF1dGhvciBhcmUgc3RpbGwgZnVsbHkgdmFsaWRhdGVkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIElmIHRoZSBwcm9qZWN0J3Mgb3duIGRlY2xhcmF0aW9ucyBmYWlsIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICd0c2MnIH0pLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xuXG4gIGlmICghYXJlUHJvamVjdFR5cGVzVmFsaWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyBhbGwgdGVtcGxhdGUgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGVzIGZvbGRlciB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGVcbiAqIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHRlbXBsYXRlcyBmb2xkZXIgYW5kIGNvcGllcyBlYWNoIGZpbGUgdG8gdGhlXG4gKiBjb3JyZXNwb25kaW5nIHBhdGggdW5kZXIge0BsaW5rIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9AbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9kaXN0L3RlbXBsYXRlc2AuIEEgdHJhaWxpbmcgYC50ZW1wbGF0ZWAgb24gYSBzb3VyY2VcbiAqIGZpbGUgbmFtZSBpcyBzdHJpcHBlZCBpbiB0aGUgZGVzdGluYXRpb24gKGUuZy4gYGVzbGludC5jb25maWcubXRzLnRlbXBsYXRlYCBpcyBjb3BpZWQgYXNcbiAqIGBlc2xpbnQuY29uZmlnLm10c2ApLCBzbyBhbiBhY3RpdmUgY29uZmlnIHRlbXBsYXRlIGNhbiBsaXZlIGluIHRoZSByZXBvIHVuZGVyIGEgbmFtZSB0aGF0IHRoZVxuICogY29ycmVzcG9uZGluZyB0b29sIGRvZXMgbm90IGF1dG8tZGlzY292ZXIuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBmaWxlcyBoYXZlIGJlZW4gY29waWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRUZW1wbGF0ZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZGlyZW50IG9mIGF3YWl0IHJlYWRkaXJQb3NpeChSZXBvUGF0aHMuVGVtcGxhdGVzLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgIGlmICghZGlyZW50LmlzRmlsZSgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoID0gdHJpbVN0YXJ0KHtcbiAgICAgICRzdHJpbmc6IGpvaW4oZGlyZW50LnBhcmVudFBhdGgsIGRpcmVudC5uYW1lKSxcbiAgICAgIHByZWZpeDogYCR7UmVwb1BhdGhzLlRlbXBsYXRlc30vYFxuICAgIH0pO1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uUGF0aCA9IHBhdGguZW5kc1dpdGgoVEVNUExBVEVfRklMRV9TVUZGSVgpID8gcGF0aC5zbGljZSgwLCAtVEVNUExBVEVfRklMRV9TVUZGSVgubGVuZ3RoKSA6IHBhdGg7XG4gICAgYXdhaXQgY3Aoam9pbihSZXBvUGF0aHMuVGVtcGxhdGVzLCBwYXRoKSwgam9pbihSZXBvUGF0aHMuRGlzdFRlbXBsYXRlcywgZGVzdGluYXRpb25QYXRoKSk7XG4gIH1cbn1cblxuY29uc3QgVEVNUExBVEVfRklMRV9TVUZGSVggPSAnLnRlbXBsYXRlJztcblxuY29uc3QgTk9ERV9NT0RVTEVTX1NFR01FTlQgPSAnL25vZGVfbW9kdWxlcy8nO1xuXG5jb25zdCBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FID0gJ3N2ZWx0ZS1jaGVjayc7XG5cbmNvbnN0IFNWRUxURV9GSUxFX1BBVFRFUk5TID0gW1xuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGVgLFxuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGUuanNgLFxuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGUudHNgXG5dO1xuXG4vKipcbiAqIGBub2RlX21vZHVsZXNgIG11c3QgYmUgbGlzdGVkIGV4cGxpY2l0bHk6IGEgdHNjb25maWcgdGhhdCBzZXRzIGBleGNsdWRlYCBhdCBhbGwgKipyZXBsYWNlcyoqIFR5cGVTY3JpcHQnc1xuICogZGVmYXVsdCBgbm9kZV9tb2R1bGVzYCBleGNsdXNpb24sIHNvIGl0IGNhbm5vdCBiZSByZWxpZWQgb24gdG8ga2VlcCBkZXBlbmRlbmNpZXMgb3V0IG9mIHRoZSBnbG9iLlxuICovXG5jb25zdCBTVkVMVEVfRklMRV9FWENMVURFX1BBVFRFUk5TID0gW1xuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vJHtSZXBvUGF0aHMuTm9kZU1vZHVsZXN9LyR7UmVwb1BhdGhzLkFueVBhdGh9YCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9LyR7UmVwb1BhdGhzLkRpc3R9LyR7UmVwb1BhdGhzLkFueVBhdGh9YFxuXTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvdWxkS2VlcFByb2plY3RGaWxlfS5cbiAqL1xuaW50ZXJmYWNlIFNob3VsZEtlZXBQcm9qZWN0RmlsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBwYXRoIG9mIHRoZSBmaWxlIHVuZGVyIGNvbnNpZGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBYnNvbHV0ZSAoY2Fub25pY2FsKSBwYXRoIG9mIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSByb290Q2Fub25pY2FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmUtcnVucyB0aGUgcHJvamVjdCB0eXBlLWNoZWNrIGluLW1lbW9yeSB3aXRoIGBza2lwTGliQ2hlY2s6IGZhbHNlYCwgcmVwb3J0aW5nIG9ubHkgZGlhZ25vc3RpY3NcbiAqIHdob3NlIHNvdXJjZSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QgKHVuZGVyIHRoZSByb290IGZvbGRlciwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYCkuXG4gKlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIHByb2plY3QncyBvd24gZmlsZXMgaGF2ZSBubyB0eXBlIGVycm9ycywgYGZhbHNlYCBvdGhlcndpc2UuXG4gKiBAdGhyb3dzIElmIHRoZSByb290IGZvbGRlciBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIGFyZVByb2plY3RUeXBlc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICBjb25zdCByb290ID0gZ2V0Um9vdEZvbGRlcigpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcm9vdCBmb2xkZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJvb3RDYW5vbmljYWwgPSB0b0Nhbm9uaWNhbChyb290KTtcbiAgY29uc3QgeyBmaWxlTmFtZXMsIG9wdGlvbnMgfSA9IHBhcnNlVHNDb25maWcoam9pbihyb290LCBSZXBvUGF0aHMuVHNDb25maWdKc29uKSk7XG5cbiAgcmV0dXJuIGNoZWNrUHJvamVjdFR5cGVzKHtcbiAgICBvcHRpb25zLFxuICAgIHJvb3ROYW1lczogZmlsZU5hbWVzLFxuICAgIHNob3VsZEtlZXBGaWxlOiAoZmlsZU5hbWUpID0+IHNob3VsZEtlZXBQcm9qZWN0RmlsZSh7IGZpbGVOYW1lLCByb290Q2Fub25pY2FsIH0pXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcHJvamVjdCBkZWNsYXJlcyBgc3ZlbHRlLWNoZWNrYC5cbiAqXG4gKiBUaGUgZGVjbGFyYXRpb24gaXMgcmVhZCBmcm9tIGBwYWNrYWdlLmpzb25gIHJhdGhlciB0aGFuIHByb2JlZCBpbiBgbm9kZV9tb2R1bGVzLy5iaW5gLCBiZWNhdXNlXG4gKiB7QGxpbmsgcmVzb2x2ZVRvb2xDb21tYW5kfSBkZWxpYmVyYXRlbHkgZmFsbHMgYmFjayB0byB0aGUgcGFja2FnZSBtYW5hZ2VyJ3MgZXhlYyBmb3JtIGZvciB0b29scyB0aGF0IGhhdmVcbiAqIG5vIGJpbiBzaGltIOKAlCB0aGUgb25seSB3YXkgYSBsb2NhbGx5IGluc3RhbGxlZCB0b29sIHJlc29sdmVzIHVuZGVyIHlhcm4gUG5QLiBUcmVhdGluZyBhIG1pc3Npbmcgc2hpbSBhcyBhXG4gKiBtaXNzaW5nIHRvb2wgd291bGQgdGhlcmVmb3JlIGJyZWFrIFBuUCBwcm9qZWN0cy5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUpzb24gLSBUaGUgcHJvamVjdCdzIHBhcnNlZCBgcGFja2FnZS5qc29uYC5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGBzdmVsdGUtY2hlY2tgIGlzIGRlY2xhcmVkIGFzIGEgcmVndWxhciwgZGV2LCBvciBwZWVyIGRlcGVuZGVuY3kuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrU3ZlbHRlQ2hlY2tEZWNsYXJlZChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIFtwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMsIHBhY2thZ2VKc29uLmRldkRlcGVuZGVuY2llcywgcGFja2FnZUpzb24ucGVlckRlcGVuZGVuY2llc11cbiAgICAuc29tZSgoZGVwZW5kZW5jaWVzKSA9PiBkZXBlbmRlbmNpZXM/LltTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FXSAhPT0gdW5kZWZpbmVkKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QgKHVuZGVyIHRoZSByb290IGZvbGRlciwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBzaG91bGRLZWVwUHJvamVjdEZpbGUocGFyYW1zOiBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBmaWxlTmFtZSwgcm9vdENhbm9uaWNhbCB9ID0gcGFyYW1zO1xuICByZXR1cm4gZmlsZU5hbWUuc3RhcnRzV2l0aChgJHtyb290Q2Fub25pY2FsfS9gKSAmJiAhZmlsZU5hbWUuaW5jbHVkZXMoTk9E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
@@ -49,7 +49,7 @@ export declare function buildCompileTypeScript(): Promise<void>;
49
49
  *
50
50
  * This function recursively reads the contents of the templates folder and copies each file to the
51
51
  * corresponding path under {@link RepoPaths.DistTemplates}, so consumers can copy the
52
- * templates from `node_modules/obsidian-dev-utils/dist/templates`. A trailing `.template` on a source
52
+ * templates from `node_modules/@mnaoumov/typescript-dev-toolkit/dist/templates`. A trailing `.template` on a source
53
53
  * file name is stripped in the destination (e.g. `eslint.config.mts.template` is copied as
54
54
  * `eslint.config.mts`), so an active config template can live in the repo under a name that the
55
55
  * corresponding tool does not auto-discover.
@@ -29,7 +29,7 @@ __export(commitlint_forbidden_patterns_exports, {
29
29
  });
30
30
  module.exports = __toCommonJS(commitlint_forbidden_patterns_exports);
31
31
  var import_forbidden_patterns = require('./forbidden-patterns.cjs');
32
- const NO_FORBIDDEN_PATTERNS_RULE_NAME = "obsidian-dev-utils/no-forbidden-patterns";
32
+ const NO_FORBIDDEN_PATTERNS_RULE_NAME = "typescript-dev-toolkit/no-forbidden-patterns";
33
33
  async function noForbiddenPatternsRule(commit) {
34
34
  const patterns = await (0, import_forbidden_patterns.readForbiddenPatterns)();
35
35
  const text = [commit.header, commit.body, commit.footer].filter((part) => part !== null).join("\n");
@@ -52,4 +52,4 @@ const forbiddenPatternsPlugin = {
52
52
  forbiddenPatternsPlugin,
53
53
  noForbiddenPatternsRule
54
54
  });
55
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQSBjb21taXRsaW50IHJ1bGUgdGhhdCByZWZ1c2VzIGEgY29tbWl0IG1lc3NhZ2UgbWF0Y2hpbmcgYSBwYXR0ZXJuIGZyb20gdGhlIFVOUFVCTElTSEVEIGZvcmJpZGRlbi1wYXR0ZXJuc1xuICogbGlzdCBcdTIwMTQgaW4gaXRzIGhlYWRlciwgaXRzIGJvZHkgb3IgaXRzIGZvb3Rlci5cbiAqXG4gKiBUaGUgcmVsZWFzZSBhbHJlYWR5IHJlZnVzZXMgYSBjaGFuZ2Vsb2cgc2VjdGlvbiBjYXJyeWluZyBzdWNoIGEgcGF0dGVybiwgYnV0IGEgY2hhbmdlbG9nIHNlY3Rpb24gaG9sZHMgY29tbWl0XG4gKiBTVUJKRUNUUyBvbmx5LCBzbyBhIGJvZHkgbGluZSB3YXMgbmV2ZXIgc2Nhbm5lZCBieSBhbnl0aGluZzogaXQgcmVhY2hlZCB0aGUgcHVibGljIGhpc3RvcnkgdGhlIG1vbWVudCB0aGVcbiAqIGNvbW1pdCB3YXMgcHVzaGVkLCBhbmQgYSBwdXNoZWQgY29tbWl0IHdpdGggZGVzY2VuZGFudHMgY2Fubm90IGJlIGNsZWFuZWQgd2l0aG91dCByZXdyaXRpbmcgcHVibGlzaGVkIGhpc3RvcnkuXG4gKiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBvbmUgcG9pbnQgd2hlcmUgYSBib2R5IGlzIGNoZWNrZWQgYmVmb3JlIGl0IGV4aXN0cyBhbnl3aGVyZSBlbHNlLlxuICpcbiAqIFRoZSBsaXN0IGNvbWVzIGZyb20gdGhlIHNhbWUgcGxhY2UgYXMgdGhlIHJlbGVhc2UnczogdGhlIGZpbGUgbmFtZWQgYnkgdGhlIGBGT1JCSURERU5fUEFUVEVSTlNfRklMRWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIChzZWUgYGZvcmJpZGRlbi1wYXR0ZXJucy50c2ApLiBUaGUgcnVsZSBwYXNzZXMgd2hlbiBub3RoaW5nIGlzIGNvbmZpZ3VyZWQsIHNvIGEgY29uc3VtZXJcbiAqIHdobyBoYXMgbm90IHNldCBpdCBzZWVzIG5vIGNoYW5nZSBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBc3luY1J1bGUsXG4gIFBsdWdpbixcbiAgUnVsZU91dGNvbWVcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBmaW5kRm9yYmlkZGVuUGF0dGVybk1hdGNoZXMsXG4gIEZPUkJJRERFTl9QQVRURVJOU19GSUxFX0VOVl9WQVJJQUJMRSxcbiAgcmVhZEZvcmJpZGRlblBhdHRlcm5zXG59IGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZSB0aGUgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLlxuICovXG5leHBvcnQgY29uc3QgTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tZm9yYmlkZGVuLXBhdHRlcm5zJztcblxudHlwZSBDb21taXQgPSBQYXJhbWV0ZXJzPEFzeW5jUnVsZT5bMF07XG5cbi8qKlxuICogQ2hlY2tzIHRoZSB3aG9sZSBjb21taXQgbWVzc2FnZSBcdTIwMTQgaGVhZGVyLCBib2R5IGFuZCBmb290ZXIgXHUyMDE0IGFnYWluc3QgdGhlIGZvcmJpZGRlbiBwYXR0ZXJucy5cbiAqXG4gKiBPbmx5IHRoZSBgYWx3YXlzYCBjb25kaXRpb24gaXMgbWVhbmluZ2Z1bDogYG5ldmVyYCB3b3VsZCByZXF1aXJlIGV2ZXJ5IGxpbmUgdG8gY2FycnkgYSBmb3JiaWRkZW4gcGF0dGVybiwgc29cbiAqIGl0IGlzIHRyZWF0ZWQgdGhlIHNhbWUgd2F5IHJhdGhlciB0aGFuIGludmVydGVkLlxuICpcbiAqIEBwYXJhbSBjb21taXQgLSBUaGUgcGFyc2VkIGNvbW1pdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJ1bGUgb3V0Y29tZSwgbmFtaW5nIGVhY2ggb2ZmZW5kaW5nIGxpbmUgYW5kIHdoYXQgbWF0Y2hlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vRm9yYmlkZGVuUGF0dGVybnNSdWxlKGNvbW1pdDogQ29tbWl0KTogUHJvbWlzZTxSdWxlT3V0Y29tZT4ge1xuICBjb25zdCBwYXR0ZXJucyA9IGF3YWl0IHJlYWRGb3JiaWRkZW5QYXR0ZXJucygpO1xuICBjb25zdCB0ZXh0ID0gW2NvbW1pdC5oZWFkZXIsIGNvbW1pdC5ib2R5LCBjb21taXQuZm9vdGVyXS5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09IG51bGwpLmpvaW4oJ1xcbicpO1xuICBjb25zdCBtYXRjaGVzID0gZmluZEZvcmJpZGRlblBhdHRlcm5NYXRjaGVzKHRleHQsIHBhdHRlcm5zKTtcblxuICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW3RydWVdO1xuICB9XG5cbiAgY29uc3Qgb2ZmZW5kaW5nTGluZXMgPSBtYXRjaGVzLm1hcCgoeyBsaW5lLCBtYXRjaCB9KSA9PiBgJHtsaW5lfSAgICA8LSAke21hdGNofWApLmpvaW4oJ1xcbicpO1xuICByZXR1cm4gW2ZhbHNlLCBgdGhlIGNvbW1pdCBtZXNzYWdlIG1hdGNoZXMgYSBwYXR0ZXJuIGZyb20gdGhlIGZpbGUgJHtGT1JCSURERU5fUEFUVEVSTlNfRklMRV9FTlZfVkFSSUFCTEV9IG5hbWVzOlxcbiR7b2ZmZW5kaW5nTGluZXN9YF07XG59XG5cbi8qKlxuICogVGhlIGNvbW1pdGxpbnQgcGx1Z2luIGNhcnJ5aW5nIHtAbGluayBub0ZvcmJpZGRlblBhdHRlcm5zUnVsZX0uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JiaWRkZW5QYXR0ZXJuc1BsdWdpbjogUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgIFtOT19GT1JCSURERU5fUEFUVEVSTlNfUlVMRV9OQU1FXTogbm9Gb3JiaWRkZW5QYXR0ZXJuc1J1bGVcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkEsZ0NBSU87QUFLQSxNQUFNLGtDQUFrQztBQWEvQyxlQUFzQix3QkFBd0IsUUFBc0M7QUFDbEYsUUFBTSxXQUFXLFVBQU0saURBQXNCO0FBQzdDLFFBQU0sT0FBTyxDQUFDLE9BQU8sUUFBUSxPQUFPLE1BQU0sT0FBTyxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsS0FBSyxJQUFJO0FBQ2xHLFFBQU0sY0FBVSx1REFBNEIsTUFBTSxRQUFRO0FBRTFELE1BQUksUUFBUSxXQUFXLEdBQUc7QUFDeEIsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsUUFBTSxpQkFBaUIsUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUk7QUFDM0YsU0FBTyxDQUFDLE9BQU8sc0RBQXNELDhEQUFvQztBQUFBLEVBQVksY0FBYyxFQUFFO0FBQ3ZJO0FBS08sTUFBTSwwQkFBa0M7QUFBQSxFQUM3QyxPQUFPO0FBQUEsSUFDTCxDQUFDLCtCQUErQixHQUFHO0FBQUEsRUFDckM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
55
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQSBjb21taXRsaW50IHJ1bGUgdGhhdCByZWZ1c2VzIGEgY29tbWl0IG1lc3NhZ2UgbWF0Y2hpbmcgYSBwYXR0ZXJuIGZyb20gdGhlIFVOUFVCTElTSEVEIGZvcmJpZGRlbi1wYXR0ZXJuc1xuICogbGlzdCBcdTIwMTQgaW4gaXRzIGhlYWRlciwgaXRzIGJvZHkgb3IgaXRzIGZvb3Rlci5cbiAqXG4gKiBUaGUgcmVsZWFzZSBhbHJlYWR5IHJlZnVzZXMgYSBjaGFuZ2Vsb2cgc2VjdGlvbiBjYXJyeWluZyBzdWNoIGEgcGF0dGVybiwgYnV0IGEgY2hhbmdlbG9nIHNlY3Rpb24gaG9sZHMgY29tbWl0XG4gKiBTVUJKRUNUUyBvbmx5LCBzbyBhIGJvZHkgbGluZSB3YXMgbmV2ZXIgc2Nhbm5lZCBieSBhbnl0aGluZzogaXQgcmVhY2hlZCB0aGUgcHVibGljIGhpc3RvcnkgdGhlIG1vbWVudCB0aGVcbiAqIGNvbW1pdCB3YXMgcHVzaGVkLCBhbmQgYSBwdXNoZWQgY29tbWl0IHdpdGggZGVzY2VuZGFudHMgY2Fubm90IGJlIGNsZWFuZWQgd2l0aG91dCByZXdyaXRpbmcgcHVibGlzaGVkIGhpc3RvcnkuXG4gKiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBvbmUgcG9pbnQgd2hlcmUgYSBib2R5IGlzIGNoZWNrZWQgYmVmb3JlIGl0IGV4aXN0cyBhbnl3aGVyZSBlbHNlLlxuICpcbiAqIFRoZSBsaXN0IGNvbWVzIGZyb20gdGhlIHNhbWUgcGxhY2UgYXMgdGhlIHJlbGVhc2UnczogdGhlIGZpbGUgbmFtZWQgYnkgdGhlIGBGT1JCSURERU5fUEFUVEVSTlNfRklMRWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIChzZWUgYGZvcmJpZGRlbi1wYXR0ZXJucy50c2ApLiBUaGUgcnVsZSBwYXNzZXMgd2hlbiBub3RoaW5nIGlzIGNvbmZpZ3VyZWQsIHNvIGEgY29uc3VtZXJcbiAqIHdobyBoYXMgbm90IHNldCBpdCBzZWVzIG5vIGNoYW5nZSBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBc3luY1J1bGUsXG4gIFBsdWdpbixcbiAgUnVsZU91dGNvbWVcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBmaW5kRm9yYmlkZGVuUGF0dGVybk1hdGNoZXMsXG4gIEZPUkJJRERFTl9QQVRURVJOU19GSUxFX0VOVl9WQVJJQUJMRSxcbiAgcmVhZEZvcmJpZGRlblBhdHRlcm5zXG59IGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZSB0aGUgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLlxuICovXG5leHBvcnQgY29uc3QgTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRSA9ICd0eXBlc2NyaXB0LWRldi10b29sa2l0L25vLWZvcmJpZGRlbi1wYXR0ZXJucyc7XG5cbnR5cGUgQ29tbWl0ID0gUGFyYW1ldGVyczxBc3luY1J1bGU+WzBdO1xuXG4vKipcbiAqIENoZWNrcyB0aGUgd2hvbGUgY29tbWl0IG1lc3NhZ2UgXHUyMDE0IGhlYWRlciwgYm9keSBhbmQgZm9vdGVyIFx1MjAxNCBhZ2FpbnN0IHRoZSBmb3JiaWRkZW4gcGF0dGVybnMuXG4gKlxuICogT25seSB0aGUgYGFsd2F5c2AgY29uZGl0aW9uIGlzIG1lYW5pbmdmdWw6IGBuZXZlcmAgd291bGQgcmVxdWlyZSBldmVyeSBsaW5lIHRvIGNhcnJ5IGEgZm9yYmlkZGVuIHBhdHRlcm4sIHNvXG4gKiBpdCBpcyB0cmVhdGVkIHRoZSBzYW1lIHdheSByYXRoZXIgdGhhbiBpbnZlcnRlZC5cbiAqXG4gKiBAcGFyYW0gY29tbWl0IC0gVGhlIHBhcnNlZCBjb21taXQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBydWxlIG91dGNvbWUsIG5hbWluZyBlYWNoIG9mZmVuZGluZyBsaW5lIGFuZCB3aGF0IG1hdGNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBub0ZvcmJpZGRlblBhdHRlcm5zUnVsZShjb21taXQ6IENvbW1pdCk6IFByb21pc2U8UnVsZU91dGNvbWU+IHtcbiAgY29uc3QgcGF0dGVybnMgPSBhd2FpdCByZWFkRm9yYmlkZGVuUGF0dGVybnMoKTtcbiAgY29uc3QgdGV4dCA9IFtjb21taXQuaGVhZGVyLCBjb21taXQuYm9keSwgY29tbWl0LmZvb3Rlcl0uZmlsdGVyKChwYXJ0KSA9PiBwYXJ0ICE9PSBudWxsKS5qb2luKCdcXG4nKTtcbiAgY29uc3QgbWF0Y2hlcyA9IGZpbmRGb3JiaWRkZW5QYXR0ZXJuTWF0Y2hlcyh0ZXh0LCBwYXR0ZXJucyk7XG5cbiAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIGNvbnN0IG9mZmVuZGluZ0xpbmVzID0gbWF0Y2hlcy5tYXAoKHsgbGluZSwgbWF0Y2ggfSkgPT4gYCR7bGluZX0gICAgPC0gJHttYXRjaH1gKS5qb2luKCdcXG4nKTtcbiAgcmV0dXJuIFtmYWxzZSwgYHRoZSBjb21taXQgbWVzc2FnZSBtYXRjaGVzIGEgcGF0dGVybiBmcm9tIHRoZSBmaWxlICR7Rk9SQklEREVOX1BBVFRFUk5TX0ZJTEVfRU5WX1ZBUklBQkxFfSBuYW1lczpcXG4ke29mZmVuZGluZ0xpbmVzfWBdO1xufVxuXG4vKipcbiAqIFRoZSBjb21taXRsaW50IHBsdWdpbiBjYXJyeWluZyB7QGxpbmsgbm9Gb3JiaWRkZW5QYXR0ZXJuc1J1bGV9LlxuICovXG5leHBvcnQgY29uc3QgZm9yYmlkZGVuUGF0dGVybnNQbHVnaW46IFBsdWdpbiA9IHtcbiAgcnVsZXM6IHtcbiAgICBbTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRV06IG5vRm9yYmlkZGVuUGF0dGVybnNSdWxlXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBc0JBLGdDQUlPO0FBS0EsTUFBTSxrQ0FBa0M7QUFhL0MsZUFBc0Isd0JBQXdCLFFBQXNDO0FBQ2xGLFFBQU0sV0FBVyxVQUFNLGlEQUFzQjtBQUM3QyxRQUFNLE9BQU8sQ0FBQyxPQUFPLFFBQVEsT0FBTyxNQUFNLE9BQU8sTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLFNBQVMsSUFBSSxFQUFFLEtBQUssSUFBSTtBQUNsRyxRQUFNLGNBQVUsdURBQTRCLE1BQU0sUUFBUTtBQUUxRCxNQUFJLFFBQVEsV0FBVyxHQUFHO0FBQ3hCLFdBQU8sQ0FBQyxJQUFJO0FBQUEsRUFDZDtBQUVBLFFBQU0saUJBQWlCLFFBQVEsSUFBSSxDQUFDLEVBQUUsTUFBTSxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJO0FBQzNGLFNBQU8sQ0FBQyxPQUFPLHNEQUFzRCw4REFBb0M7QUFBQSxFQUFZLGNBQWMsRUFBRTtBQUN2STtBQUtPLE1BQU0sMEJBQWtDO0FBQUEsRUFDN0MsT0FBTztBQUFBLElBQ0wsQ0FBQywrQkFBK0IsR0FBRztBQUFBLEVBQ3JDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -18,7 +18,7 @@ import type { AsyncRule, Plugin, RuleOutcome } from '@commitlint/types' with { '
18
18
  /**
19
19
  * The name the rule is registered under.
20
20
  */
21
- export declare const NO_FORBIDDEN_PATTERNS_RULE_NAME = "obsidian-dev-utils/no-forbidden-patterns";
21
+ export declare const NO_FORBIDDEN_PATTERNS_RULE_NAME = "typescript-dev-toolkit/no-forbidden-patterns";
22
22
  type Commit = Parameters<AsyncRule>[0];
23
23
  /**
24
24
  * Checks the whole commit message — header, body and footer — against the forbidden patterns.