textlane 0.0.0 → 0.2.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 (42) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +80 -2
  3. package/build/actions/addon/resolve.d.ts +7 -0
  4. package/build/actions/addon/resolve.js +22 -0
  5. package/build/actions/attacher/check.d.ts +3 -0
  6. package/build/actions/attacher/check.js +5 -0
  7. package/build/actions/host/call.d.ts +13 -0
  8. package/build/actions/host/call.js +47 -0
  9. package/build/actions/options/merge.d.ts +5 -0
  10. package/build/actions/options/merge.js +29 -0
  11. package/build/actions/pluggable/map.d.ts +8 -0
  12. package/build/actions/pluggable/map.js +29 -0
  13. package/build/actions/run/finish.d.ts +12 -0
  14. package/build/actions/run/finish.js +52 -0
  15. package/build/actions/transformer/check.d.ts +3 -0
  16. package/build/actions/transformer/check.js +5 -0
  17. package/build/generated/html.d.ts +260 -0
  18. package/build/generated/html.js +76 -0
  19. package/build/generated/md.d.ts +367 -0
  20. package/build/generated/md.js +100 -0
  21. package/build/generated/mdx.d.ts +28 -0
  22. package/build/generated/mdx.js +8 -0
  23. package/build/generated/nl.d.ts +99 -0
  24. package/build/generated/nl.js +62 -0
  25. package/build/index.d.ts +18 -0
  26. package/build/index.js +27 -0
  27. package/build/models/addon.d.ts +35 -0
  28. package/build/models/addon.js +2 -0
  29. package/build/models/file.d.ts +52 -0
  30. package/build/models/file.js +2 -0
  31. package/build/models/host.d.ts +7 -0
  32. package/build/models/host.js +2 -0
  33. package/build/models/plugin.d.ts +26 -0
  34. package/build/models/plugin.js +2 -0
  35. package/build/models/processor.d.ts +39 -0
  36. package/build/models/processor.js +154 -0
  37. package/build/models/vfile.d.ts +52 -0
  38. package/build/models/vfile.js +164 -0
  39. package/build/settings.d.ts +14 -0
  40. package/build/settings.js +17 -0
  41. package/package.json +36 -3
  42. package/skills/textlane-usage/SKILL.md +148 -0
@@ -0,0 +1,367 @@
1
+ import type { Plugin } from "../models/plugin.ts";
2
+ /** `md.parse`: Markdown into mdast. */
3
+ export type ParseOptions = Record<string, unknown>;
4
+ /** `md.directive`: generic directives, `:a`, `::b` and `:::c`, read by `md.parse` and written by `md.stringify`; options named as mdast-util-directive's serializer names them. */
5
+ export interface DirectiveOptions {
6
+ /** Write an empty attribute as its name alone, `{a}`, rather than `{a=""}`. @default true */
7
+ collapseEmptyAttributes?: boolean;
8
+ /** Write `id` and `class` as `#a` and `.b` where they can be. @default true */
9
+ preferShortcut?: boolean;
10
+ /** Leave attribute values unquoted where they can be. @default false */
11
+ preferUnquoted?: boolean;
12
+ /** The quote of attribute values: `"` or `'`; `md.stringify`'s `quote` when unset. */
13
+ quote?: string | null;
14
+ /** Use the other quote when the preferred one occurs more often in a value. @default false */
15
+ quoteSmart?: boolean;
16
+ }
17
+ /** `md.gfm`: GitHub Flavored Markdown's syntax, read by `md.parse` and written by `md.stringify`; options named as remark-gfm names them. */
18
+ export interface GfmOptions {
19
+ /** Let one tilde, `~a~`, form strikethrough, as well as two. @default true */
20
+ singleTilde?: boolean;
21
+ /** Pad table cells with a space on each side when writing Markdown. @default true */
22
+ tableCellPadding?: boolean;
23
+ /** Line up table pipes when writing Markdown. @default true */
24
+ tablePipeAlign?: boolean;
25
+ /** Write a footnote definition's first line blank when it holds flow content. @default false */
26
+ firstLineBlank?: boolean;
27
+ }
28
+ /** `md.math`: math syntax, `$$` blocks and `$` text, read by `md.parse` and written by `md.stringify`; options named as remark-math names them. */
29
+ export interface MathOptions {
30
+ /** Let one dollar, `$a$`, form math in text, as well as two. @default true */
31
+ singleDollarTextMath?: boolean;
32
+ }
33
+ /** `md.mdx`: MDX syntax, JSX, expressions and ESM, read by `md.parse` and written by `md.stringify`; it turns off indented code, autolinks and raw HTML; options named as remark-mdx and mdast-util-mdx-jsx's serializer name them. */
34
+ export interface MdxOptions {
35
+ /** The quote of JSX attribute values: `"` (when unset) or `'`. */
36
+ quote?: string | null;
37
+ /** Use the other quote when the preferred one occurs more often in a value. @default false */
38
+ quoteSmart?: boolean;
39
+ /** Write self-closing tags without a space before the slash, `<a/>`. @default false */
40
+ tightSelfClosing?: boolean;
41
+ /** The width past which a flow element's attributes go on lines of their own. */
42
+ printWidth?: number | null;
43
+ }
44
+ /** The kinds of matter to recognize, as remark-frontmatter takes them (a preset, a matter, or a list of them; `yaml` when unset), or textlane's options object. */
45
+ export type FrontmatterOptions = "yaml" | "toml" | Matter | ("yaml" | "toml" | Matter)[] | FrontmatterSettings;
46
+ /** One kind of frontmatter: the node `type` it becomes and its fences, a `marker` repeated three times or a whole `fence`. */
47
+ export interface Matter {
48
+ type: string;
49
+ marker?: Fence;
50
+ fence?: Fence;
51
+ anywhere?: boolean;
52
+ }
53
+ /** Different opening and closing fences. */
54
+ export interface FencePair {
55
+ open: string;
56
+ close: string;
57
+ }
58
+ /** A fence, or its opening and closing ones. */
59
+ export type Fence = string | FencePair;
60
+ /** textlane's options: the matters, and what to do with YAML frontmatter. */
61
+ export interface FrontmatterSettings {
62
+ /** The kinds of matter to recognize, as remark-frontmatter takes them; `yaml` when unset. */
63
+ matters?: "yaml" | "toml" | Matter | ("yaml" | "toml" | Matter)[];
64
+ /** Parse the YAML frontmatter a document starts with into `file.data.matter`, `{}` when there is none, as vfile-matter does. */
65
+ data?: boolean;
66
+ /** Remove the YAML frontmatter a document starts with from the tree. */
67
+ strip?: boolean;
68
+ }
69
+ /** `md.component`: directives, GitHub alerts and other nodes into MDX JSX elements, the components an MDX runtime renders, by declarative rules. */
70
+ export interface ComponentOptions {
71
+ /** Rules for directives; the first that matches a directive converts it. */
72
+ directives?: DirectiveRule[];
73
+ /** GitHub alerts, `> [!NOTE]`, into a component. */
74
+ alerts?: AlertRule | null;
75
+ /** Node types, such as `defList`, into components keeping their children. @default {} */
76
+ nodes?: Record<string, string>;
77
+ /** What becomes of a directive no rule converts. */
78
+ unknownDirectives?: UnknownDirectives;
79
+ /** Rules for fenced code; the first that matches a block applies. */
80
+ codes?: CodeRule[];
81
+ }
82
+ /** How `md.component` turns matching directives into one component. */
83
+ export interface DirectiveRule {
84
+ /** The directive's name, or several. */
85
+ name: Names;
86
+ /** The kind of directive: `text`, `leaf` or `container`; any when left out. */
87
+ kind?: DirectiveKind | null;
88
+ /** Attribute values the directive must have. @default {} */
89
+ where?: Record<string, string>;
90
+ /** The component: a text element for a text directive, else a flow element. */
91
+ component: string;
92
+ /** The attribute that gets the directive's name. */
93
+ nameAs?: string | null;
94
+ /** The attribute that gets the label's text: a container's label paragraph or a text or leaf directive's content, which is then dropped. */
95
+ labelAs?: string | null;
96
+ /** The label's text when there is none. */
97
+ labelDefault?: string | null;
98
+ /** The attributes to keep, in order; every one, as written, when left out. */
99
+ attributes?: AttributeRule[] | null;
100
+ /** Attributes without which the directive is left to `unknownDirectives`. @default [] */
101
+ required?: string[];
102
+ /** Wrap runs of adjacent siblings this rule converted in another component. */
103
+ group?: GroupRule | null;
104
+ /** The attribute that gets the lists of a container directive as a file tree, JSON items `{name, type, comment?, highlighted?, children?}`; the lists leave its content. */
105
+ treeAs?: string | null;
106
+ }
107
+ /** One name or several. */
108
+ export type Names = string | string[];
109
+ /** A directive's kind, by how many colons open it. */
110
+ export type DirectiveKind = "text" | "leaf" | "container";
111
+ /** An attribute to keep: its name, or its name with what to call it and a default. */
112
+ export type AttributeRule = string | {
113
+ name: string;
114
+ rename?: string | null;
115
+ default?: string | null;
116
+ };
117
+ /** The component wrapping a run of adjacent siblings one rule converted. */
118
+ export interface GroupRule {
119
+ /** The wrapping component. */
120
+ component: string;
121
+ /** The shortest run wrapped; 2 when left out. */
122
+ min?: number | null;
123
+ /** Attributes the wrapper copies from the run's first element. @default [] */
124
+ inherit?: string[];
125
+ }
126
+ /** How `md.component` turns GitHub alerts, a block quote opening with `[!TYPE]`, into a component. */
127
+ export interface AlertRule {
128
+ /** The component an alert becomes. */
129
+ component: string;
130
+ /** The attribute that gets the alert's type. */
131
+ typeAs: string;
132
+ /** Each alert type, as written, to the value of `typeAs`; other types stay block quotes. */
133
+ types: Record<string, string>;
134
+ }
135
+ /** What `md.component` does with a directive no rule converts. */
136
+ export type UnknownDirectives = "keep" | "source";
137
+ /** How `md.component` turns matching code blocks into a component, or groups them. */
138
+ export interface CodeRule {
139
+ /** The block's language, or several; any when left out. */
140
+ lang?: Names | null;
141
+ /** A `key="value"` the block's meta must hold. */
142
+ meta?: string | null;
143
+ /** The component the block becomes; left out, the block stays code and only groups. */
144
+ component?: string | null;
145
+ /** The attribute that gets the code; left out, the code is the component's text. */
146
+ valueAs?: string | null;
147
+ /** Meta `key="value"` pairs to keep as attributes, in order. */
148
+ attributes?: AttributeRule[];
149
+ /** Wrap runs of adjacent blocks this rule matched in another component. */
150
+ group?: CodeGroupRule | null;
151
+ }
152
+ /** The component wrapping a run of adjacent code blocks one rule matched; the meta keys it reads are taken out of each block's meta. */
153
+ export interface CodeGroupRule {
154
+ /** The wrapping component. */
155
+ component: string;
156
+ /** The shortest run wrapped; 2 when left out. */
157
+ min?: number | null;
158
+ /** The attribute that gets the run's values of the rule's `meta` key, as a JSON list. */
159
+ collect?: string | null;
160
+ /** Meta keys the wrapper copies from the run's first block as attributes. @default [] */
161
+ inherit?: string[];
162
+ }
163
+ /** `md.packageCommand`: a fenced block of package-manager commands, its language naming the ecosystem (`npm`, `pip`, `cargo`), into one component with the commands converted for each manager, as `@docusaurus/remark-plugin-npm2yarn` does for npm. */
164
+ export interface PackageCommandOptions {
165
+ /** The component a block becomes; one string attribute per manager. @default "PackageTabs" */
166
+ component?: string;
167
+ /** Each ecosystem's managers, in attribute order; an empty list leaves its blocks code. */
168
+ ecosystems?: Ecosystems;
169
+ }
170
+ /** The managers `md.packageCommand` converts each ecosystem's commands for. */
171
+ export interface Ecosystems {
172
+ /** Managers for `npm` blocks, converted as npm-to-yarn converts; npm, pnpm, yarn and bun by default. */
173
+ npm?: NpmManager[];
174
+ /** Managers for `pip` blocks; pip, uv, poetry and pdm by default. */
175
+ pip?: PipManager[];
176
+ /** Managers for `cargo` blocks; cargo and cargo-binstall by default. */
177
+ cargo?: CargoManager[];
178
+ }
179
+ /** A JavaScript package manager an `npm` command converts to. */
180
+ export type NpmManager = "npm" | "pnpm" | "yarn" | "bun" | "deno" | "nub";
181
+ /** A Python package manager a `pip` command converts to. */
182
+ export type PipManager = "pip" | "uv" | "poetry" | "pdm";
183
+ /** A Rust installer a `cargo` command converts to. */
184
+ export type CargoManager = "cargo" | "cargo-binstall";
185
+ /** `md.headingId`: `{#id}` at the end of a heading, after a space, as its id, as remark-heading-id reads it; headings without one keep none. */
186
+ export interface HeadingIdOptions {
187
+ /** Read a whole attribute list, `{#id .class key=value key="v w"}`, as directives write theirs: classes become `className` and other keys properties. @default false */
188
+ attributes?: boolean;
189
+ /** Literal suffixes, such as `[step]`, stripped from a heading's end for the attributes each names, a value or `true` for a bare one: `{"[step]": {"data-step": true}}`. */
190
+ markers?: Record<string, Record<string, MarkerValue>>;
191
+ }
192
+ /** An attribute a heading marker sets: its value, or `true` for the bare attribute. */
193
+ export type MarkerValue = boolean | string;
194
+ /** `md.pathRewrite`: the URLs of images, links and definitions as a site serves them: relative ones resolved against the file's path and made root-relative, every root-relative one under `base`, and links to Markdown files turned into page URLs. */
195
+ export interface PathRewriteOptions {
196
+ /** The directory URLs count from, as the file's path spells it; the path's own starting point when left out. */
197
+ root?: string | null;
198
+ /** The URL the site is served at, such as `/docs`, put before every root-relative URL once. */
199
+ base?: string | null;
200
+ /** The nodes whose URLs are rewritten; images, links and definitions when left out. */
201
+ nodes?: UrlNode[] | null;
202
+ /** Markdown files, relative to `root`, to the URL of their page; a link to one of them takes it, before `markdownLinks` applies. @default {} */
203
+ pages?: Record<string, string>;
204
+ /** How a link to a Markdown file no page names becomes a URL. */
205
+ markdownLinks?: MarkdownLinks;
206
+ }
207
+ /** A node with a URL. */
208
+ export type UrlNode = "image" | "link" | "definition";
209
+ /** How a link to a Markdown file becomes a URL. */
210
+ export type MarkdownLinks = "keep" | "directory" | "html";
211
+ /** `md.strip`: mdast down to its text, as strip-markdown does: code, HTML, tables and the like dropped, headings made paragraphs, formatting unwrapped. */
212
+ export interface StripOptions {
213
+ /** Node types to leave as they are, such as `inlineCode`. @default [] */
214
+ keep?: string[];
215
+ /** Node types to drop, besides those strip-markdown drops. @default [] */
216
+ remove?: string[];
217
+ }
218
+ /** `md.toc`: a table of contents under the first heading matching `heading`, replacing what sat between it and the next heading as deep or shallower, as remark-toc makes it. */
219
+ export interface TocOptions {
220
+ /** The heading to put the table under, as JavaScript regular expression source matched against its whole text, case-insensitively; `(table[ -]of[ -])?contents?|toc` when unset. */
221
+ heading?: string | null;
222
+ /** The deepest heading rank to list, 1 to 6. */
223
+ maxDepth?: number | null;
224
+ /** The shallowest heading rank to list, 1 to 6. */
225
+ minDepth?: number | null;
226
+ /** Headings to leave out, as JavaScript regular expression source matched against their whole text, case-insensitively. */
227
+ skip?: string | null;
228
+ /** Keep the list compact, without blank lines between items; `true` when unset. */
229
+ tight?: boolean | null;
230
+ /** Number the list instead of bulleting it. */
231
+ ordered?: boolean | null;
232
+ /** What each link's fragment starts with, such as `user-content-`. */
233
+ prefix?: string | null;
234
+ /** The parents whose headings are listed, as a unist-util-is test: a node type, an object of fields a parent must equal, or a list of these; only the root when unset. */
235
+ parents?: ParentTest | null;
236
+ }
237
+ /** A unist-util-is test of a node, written as JSON: one check, or a list any of which passes. */
238
+ export type ParentTest = ParentCheck | ParentCheck[];
239
+ /** One unist-util-is check: a node type, or fields a node must equal. */
240
+ export type ParentCheck = string | Record<string, unknown>;
241
+ /** `md.stringify`: mdast into Markdown; options named as mdast-util-to-markdown names them. */
242
+ export interface StringifyOptions {
243
+ /** The marker of unordered list items: `*`, `+` or `-`. */
244
+ bullet?: string | null;
245
+ /** The marker of ordered list items: `.` or `)`. */
246
+ bulletOrdered?: string | null;
247
+ /** The marker of a list right after a list with `bullet`. */
248
+ bulletOther?: string | null;
249
+ /** Close ATX headings with as many `#` as they open with. @default false */
250
+ closeAtx?: boolean;
251
+ /** The marker of emphasis: `*` or `_`. */
252
+ emphasis?: string | null;
253
+ /** The marker of fenced code: `` ` `` or `~`. */
254
+ fence?: string | null;
255
+ /** Fence code; `false` indents it where it can. @default true */
256
+ fences?: boolean;
257
+ /** Number ordered list items up from `start`. @default true */
258
+ incrementListMarker?: boolean;
259
+ /** How list item content is indented: `one`, `tab` or `mixed`. */
260
+ listItemIndent?: string | null;
261
+ /** The marker of titles: `"` or `'`. */
262
+ quote?: string | null;
263
+ /** Write links as resources even where an autolink would do. @default false */
264
+ resourceLink?: boolean;
265
+ /** The marker of thematic breaks: `*`, `-` or `_`. */
266
+ rule?: string | null;
267
+ /** How many markers a thematic break has, 3 or more. */
268
+ ruleRepetition?: number | null;
269
+ /** Put spaces between the markers of a thematic break. @default false */
270
+ ruleSpaces?: boolean;
271
+ /** Write headings of rank 1 and 2 as setext headings. @default false */
272
+ setext?: boolean;
273
+ /** The marker of strong: `*` or `_`. */
274
+ strong?: string | null;
275
+ /** Join definitions with no blank line between them. @default false */
276
+ tightDefinitions?: boolean;
277
+ /** Extra patterns of characters to escape. */
278
+ unsafe?: UnsafePattern[];
279
+ }
280
+ /** A character to escape where it would otherwise start or end syntax. */
281
+ export interface UnsafePattern {
282
+ /** The character, escaped as a regular expression would need it. @default "" */
283
+ character?: string;
284
+ /** A regular expression that must match right before the character. */
285
+ before?: string | null;
286
+ /** A regular expression that must match right after the character. */
287
+ after?: string | null;
288
+ /** Only at the start of a line, after any indent. @default false */
289
+ atBreak?: boolean;
290
+ /** Only inside one of these constructs. */
291
+ inConstruct?: Names | null;
292
+ /** Never inside one of these constructs. */
293
+ notInConstruct?: Names | null;
294
+ /** Only at the start of a node right after one of these node types. */
295
+ beforeNode?: Names | null;
296
+ /** Only at the end of a node right before one of these node types. */
297
+ afterNode?: Names | null;
298
+ /** Read `before` and `after` with Unicode classes such as `\p{L}`. @default false */
299
+ unicode?: boolean;
300
+ }
301
+ /** `md.toHtml`: mdast into hast; options named as remark-rehype names them. */
302
+ export interface ToHtmlOptions {
303
+ /** Keep raw HTML in the tree instead of dropping it. @default false */
304
+ allowDangerousHtml?: boolean;
305
+ /** What footnote `id`s start with, so they cannot clobber the page's; `user-content-` when unset. */
306
+ clobberPrefix?: string | null;
307
+ /** The text of each footnote's back reference; `↩`, numbered from the second, when unset. */
308
+ footnoteBackContent?: string | null;
309
+ /** The `aria-label` of each footnote's back reference; `Back to reference 1` and so on when unset. */
310
+ footnoteBackLabel?: string | null;
311
+ /** The heading of the footnotes section; `Footnotes` when unset. */
312
+ footnoteLabel?: string | null;
313
+ /** The tag name of the footnotes section's heading; `h2` when unset. */
314
+ footnoteLabelTagName?: string | null;
315
+ /** Node types without a handler to copy into hast as they are, their children converted. @default [] */
316
+ passThrough?: string[];
317
+ /** An `aria-label` for each task-list checkbox, so screen readers name it; none when left out, as remark-rehype writes none. */
318
+ taskListLabels?: TaskListLabels | null;
319
+ }
320
+ /** The labels of task-list checkboxes. */
321
+ export interface TaskListLabels {
322
+ /** The label of a checked box, such as `Completed task`. */
323
+ checked: string;
324
+ /** The label of an unchecked box, such as `Task`. */
325
+ unchecked: string;
326
+ }
327
+ /** `md.toNaturalLanguage`: mdast into nlcst, tokenized by the processor's natural-language parser; options named as remark-retext and mdast-util-to-nlcst name them. */
328
+ export interface ToNaturalLanguageOptions {
329
+ /** Node types to leave out, besides `table`, `tableRow` and `tableCell`. @default [] */
330
+ ignore?: string[];
331
+ /** Node types to keep as one `SourceNode` of their source text, besides `inlineCode`. @default [] */
332
+ source?: string[];
333
+ }
334
+ /** The `md.parse` plugin. */
335
+ export declare function parse(options?: ParseOptions): Plugin<"md.parse", ParseOptions>;
336
+ /** The `md.directive` plugin. */
337
+ export declare function directive(options?: DirectiveOptions): Plugin<"md.directive", DirectiveOptions>;
338
+ /** The `md.gfm` plugin. */
339
+ export declare function gfm(options?: GfmOptions): Plugin<"md.gfm", GfmOptions>;
340
+ /** The `md.definitionList` plugin. */
341
+ export declare function definitionList(): Plugin<"md.definitionList">;
342
+ /** The `md.math` plugin. */
343
+ export declare function math(options?: MathOptions): Plugin<"md.math", MathOptions>;
344
+ /** The `md.mdx` plugin. */
345
+ export declare function mdx(options?: MdxOptions): Plugin<"md.mdx", MdxOptions>;
346
+ /** The `md.frontmatter` plugin. */
347
+ export declare function frontmatter(options?: FrontmatterOptions): Plugin<"md.frontmatter", FrontmatterOptions>;
348
+ /** The `md.gemoji` plugin. */
349
+ export declare function gemoji(): Plugin<"md.gemoji">;
350
+ /** The `md.component` plugin. */
351
+ export declare function component(options?: ComponentOptions): Plugin<"md.component", ComponentOptions>;
352
+ /** The `md.packageCommand` plugin. */
353
+ export declare function packageCommand(options?: PackageCommandOptions): Plugin<"md.packageCommand", PackageCommandOptions>;
354
+ /** The `md.headingId` plugin. */
355
+ export declare function headingId(options?: HeadingIdOptions): Plugin<"md.headingId", HeadingIdOptions>;
356
+ /** The `md.pathRewrite` plugin. */
357
+ export declare function pathRewrite(options?: PathRewriteOptions): Plugin<"md.pathRewrite", PathRewriteOptions>;
358
+ /** The `md.strip` plugin. */
359
+ export declare function strip(options?: StripOptions): Plugin<"md.strip", StripOptions>;
360
+ /** The `md.toc` plugin. */
361
+ export declare function toc(options?: TocOptions): Plugin<"md.toc", TocOptions>;
362
+ /** The `md.stringify` plugin. */
363
+ export declare function stringify(options?: StringifyOptions): Plugin<"md.stringify", StringifyOptions>;
364
+ /** The `md.toHtml` plugin. */
365
+ export declare function toHtml(options?: ToHtmlOptions): Plugin<"md.toHtml", ToHtmlOptions>;
366
+ /** The `md.toNaturalLanguage` plugin. */
367
+ export declare function toNaturalLanguage(options?: ToNaturalLanguageOptions): Plugin<"md.toNaturalLanguage", ToNaturalLanguageOptions>;
@@ -0,0 +1,100 @@
1
+ // Generated by `pnpm generate:bindings` from the crate's plugins; do not edit.
2
+ /** The `md.parse` plugin. */
3
+ export function parse(options) {
4
+ if (options === undefined)
5
+ return { name: "md.parse" };
6
+ return { name: "md.parse", options };
7
+ }
8
+ /** The `md.directive` plugin. */
9
+ export function directive(options) {
10
+ if (options === undefined)
11
+ return { name: "md.directive" };
12
+ return { name: "md.directive", options };
13
+ }
14
+ /** The `md.gfm` plugin. */
15
+ export function gfm(options) {
16
+ if (options === undefined)
17
+ return { name: "md.gfm" };
18
+ return { name: "md.gfm", options };
19
+ }
20
+ /** The `md.definitionList` plugin. */
21
+ export function definitionList() {
22
+ return { name: "md.definitionList" };
23
+ }
24
+ /** The `md.math` plugin. */
25
+ export function math(options) {
26
+ if (options === undefined)
27
+ return { name: "md.math" };
28
+ return { name: "md.math", options };
29
+ }
30
+ /** The `md.mdx` plugin. */
31
+ export function mdx(options) {
32
+ if (options === undefined)
33
+ return { name: "md.mdx" };
34
+ return { name: "md.mdx", options };
35
+ }
36
+ /** The `md.frontmatter` plugin. */
37
+ export function frontmatter(options) {
38
+ if (options === undefined)
39
+ return { name: "md.frontmatter" };
40
+ return { name: "md.frontmatter", options };
41
+ }
42
+ /** The `md.gemoji` plugin. */
43
+ export function gemoji() {
44
+ return { name: "md.gemoji" };
45
+ }
46
+ /** The `md.component` plugin. */
47
+ export function component(options) {
48
+ if (options === undefined)
49
+ return { name: "md.component" };
50
+ return { name: "md.component", options };
51
+ }
52
+ /** The `md.packageCommand` plugin. */
53
+ export function packageCommand(options) {
54
+ if (options === undefined)
55
+ return { name: "md.packageCommand" };
56
+ return { name: "md.packageCommand", options };
57
+ }
58
+ /** The `md.headingId` plugin. */
59
+ export function headingId(options) {
60
+ if (options === undefined)
61
+ return { name: "md.headingId" };
62
+ return { name: "md.headingId", options };
63
+ }
64
+ /** The `md.pathRewrite` plugin. */
65
+ export function pathRewrite(options) {
66
+ if (options === undefined)
67
+ return { name: "md.pathRewrite" };
68
+ return { name: "md.pathRewrite", options };
69
+ }
70
+ /** The `md.strip` plugin. */
71
+ export function strip(options) {
72
+ if (options === undefined)
73
+ return { name: "md.strip" };
74
+ return { name: "md.strip", options };
75
+ }
76
+ /** The `md.toc` plugin. */
77
+ export function toc(options) {
78
+ if (options === undefined)
79
+ return { name: "md.toc" };
80
+ return { name: "md.toc", options };
81
+ }
82
+ /** The `md.stringify` plugin. */
83
+ export function stringify(options) {
84
+ if (options === undefined)
85
+ return { name: "md.stringify" };
86
+ return { name: "md.stringify", options };
87
+ }
88
+ /** The `md.toHtml` plugin. */
89
+ export function toHtml(options) {
90
+ if (options === undefined)
91
+ return { name: "md.toHtml" };
92
+ return { name: "md.toHtml", options };
93
+ }
94
+ /** The `md.toNaturalLanguage` plugin. */
95
+ export function toNaturalLanguage(options) {
96
+ if (options === undefined)
97
+ return { name: "md.toNaturalLanguage" };
98
+ return { name: "md.toNaturalLanguage", options };
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9nZW5lcmF0ZWQvbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBbVgvRSw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7SUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDMUMsQ0FBQztBQUVELDJCQUEyQjtBQUMzQixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFBO0lBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLGNBQWM7SUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCw0QkFBNEI7QUFDNUIsTUFBTSxVQUFVLElBQUksQ0FBQyxPQUFxQjtJQUN4QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsMkJBQTJCO0FBQzNCLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBb0I7SUFDdEMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUE7SUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDcEMsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQTRCO0lBQ3RELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUE7QUFDOUIsQ0FBQztBQUVELGlDQUFpQztBQUNqQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCO0lBQ2xELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFBO0lBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzFDLENBQUM7QUFFRCxzQ0FBc0M7QUFDdEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUErQjtJQUM1RCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFBO0lBQy9ELE9BQU8sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDL0MsQ0FBQztBQUVELGlDQUFpQztBQUNqQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCO0lBQ2xELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFBO0lBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzFDLENBQUM7QUFFRCxtQ0FBbUM7QUFDbkMsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFBO0lBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDNUMsQ0FBQztBQUVELDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQXNCO0lBQzFDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCwyQkFBMkI7QUFDM0IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFvQjtJQUN0QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQTtJQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNwQyxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7SUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDMUMsQ0FBQztBQUVELDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsTUFBTSxDQUFDLE9BQXVCO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3ZDLENBQUM7QUFFRCx5Q0FBeUM7QUFDekMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWtDO0lBQ2xFLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLENBQUE7SUFDbEUsT0FBTyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGBwbnBtIGdlbmVyYXRlOmJpbmRpbmdzYCBmcm9tIHRoZSBjcmF0ZSdzIHBsdWdpbnM7IGRvIG5vdCBlZGl0LlxuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCIuLi9tb2RlbHMvcGx1Z2luLnRzXCJcblxuLyoqIGBtZC5wYXJzZWA6IE1hcmtkb3duIGludG8gbWRhc3QuICovXG5leHBvcnQgdHlwZSBQYXJzZU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4vKiogYG1kLmRpcmVjdGl2ZWA6IGdlbmVyaWMgZGlyZWN0aXZlcywgYDphYCwgYDo6YmAgYW5kIGA6OjpjYCwgcmVhZCBieSBgbWQucGFyc2VgIGFuZCB3cml0dGVuIGJ5IGBtZC5zdHJpbmdpZnlgOyBvcHRpb25zIG5hbWVkIGFzIG1kYXN0LXV0aWwtZGlyZWN0aXZlJ3Mgc2VyaWFsaXplciBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVPcHRpb25zIHtcbiAgLyoqIFdyaXRlIGFuIGVtcHR5IGF0dHJpYnV0ZSBhcyBpdHMgbmFtZSBhbG9uZSwgYHthfWAsIHJhdGhlciB0aGFuIGB7YT1cIlwifWAuIEBkZWZhdWx0IHRydWUgKi9cbiAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBgaWRgIGFuZCBgY2xhc3NgIGFzIGAjYWAgYW5kIGAuYmAgd2hlcmUgdGhleSBjYW4gYmUuIEBkZWZhdWx0IHRydWUgKi9cbiAgcHJlZmVyU2hvcnRjdXQ/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBhdHRyaWJ1dGUgdmFsdWVzIHVucXVvdGVkIHdoZXJlIHRoZXkgY2FuIGJlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBwcmVmZXJVbnF1b3RlZD86IGJvb2xlYW5cbiAgLyoqIFRoZSBxdW90ZSBvZiBhdHRyaWJ1dGUgdmFsdWVzOiBgXCJgIG9yIGAnYDsgYG1kLnN0cmluZ2lmeWAncyBgcXVvdGVgIHdoZW4gdW5zZXQuICovXG4gIHF1b3RlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVXNlIHRoZSBvdGhlciBxdW90ZSB3aGVuIHRoZSBwcmVmZXJyZWQgb25lIG9jY3VycyBtb3JlIG9mdGVuIGluIGEgdmFsdWUuIEBkZWZhdWx0IGZhbHNlICovXG4gIHF1b3RlU21hcnQ/OiBib29sZWFuXG59XG5cbi8qKiBgbWQuZ2ZtYDogR2l0SHViIEZsYXZvcmVkIE1hcmtkb3duJ3Mgc3ludGF4LCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLWdmbSBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZm1PcHRpb25zIHtcbiAgLyoqIExldCBvbmUgdGlsZGUsIGB+YX5gLCBmb3JtIHN0cmlrZXRocm91Z2gsIGFzIHdlbGwgYXMgdHdvLiBAZGVmYXVsdCB0cnVlICovXG4gIHNpbmdsZVRpbGRlPzogYm9vbGVhblxuICAvKiogUGFkIHRhYmxlIGNlbGxzIHdpdGggYSBzcGFjZSBvbiBlYWNoIHNpZGUgd2hlbiB3cml0aW5nIE1hcmtkb3duLiBAZGVmYXVsdCB0cnVlICovXG4gIHRhYmxlQ2VsbFBhZGRpbmc/OiBib29sZWFuXG4gIC8qKiBMaW5lIHVwIHRhYmxlIHBpcGVzIHdoZW4gd3JpdGluZyBNYXJrZG93bi4gQGRlZmF1bHQgdHJ1ZSAqL1xuICB0YWJsZVBpcGVBbGlnbj86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGEgZm9vdG5vdGUgZGVmaW5pdGlvbidzIGZpcnN0IGxpbmUgYmxhbmsgd2hlbiBpdCBob2xkcyBmbG93IGNvbnRlbnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGZpcnN0TGluZUJsYW5rPzogYm9vbGVhblxufVxuXG4vKiogYG1kLm1hdGhgOiBtYXRoIHN5bnRheCwgYCQkYCBibG9ja3MgYW5kIGAkYCB0ZXh0LCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLW1hdGggbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0aE9wdGlvbnMge1xuICAvKiogTGV0IG9uZSBkb2xsYXIsIGAkYSRgLCBmb3JtIG1hdGggaW4gdGV4dCwgYXMgd2VsbCBhcyB0d28uIEBkZWZhdWx0IHRydWUgKi9cbiAgc2luZ2xlRG9sbGFyVGV4dE1hdGg/OiBib29sZWFuXG59XG5cbi8qKiBgbWQubWR4YDogTURYIHN5bnRheCwgSlNYLCBleHByZXNzaW9ucyBhbmQgRVNNLCByZWFkIGJ5IGBtZC5wYXJzZWAgYW5kIHdyaXR0ZW4gYnkgYG1kLnN0cmluZ2lmeWA7IGl0IHR1cm5zIG9mZiBpbmRlbnRlZCBjb2RlLCBhdXRvbGlua3MgYW5kIHJhdyBIVE1MOyBvcHRpb25zIG5hbWVkIGFzIHJlbWFyay1tZHggYW5kIG1kYXN0LXV0aWwtbWR4LWpzeCdzIHNlcmlhbGl6ZXIgbmFtZSB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZHhPcHRpb25zIHtcbiAgLyoqIFRoZSBxdW90ZSBvZiBKU1ggYXR0cmlidXRlIHZhbHVlczogYFwiYCAod2hlbiB1bnNldCkgb3IgYCdgLiAqL1xuICBxdW90ZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFVzZSB0aGUgb3RoZXIgcXVvdGUgd2hlbiB0aGUgcHJlZmVycmVkIG9uZSBvY2N1cnMgbW9yZSBvZnRlbiBpbiBhIHZhbHVlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBxdW90ZVNtYXJ0PzogYm9vbGVhblxuICAvKiogV3JpdGUgc2VsZi1jbG9zaW5nIHRhZ3Mgd2l0aG91dCBhIHNwYWNlIGJlZm9yZSB0aGUgc2xhc2gsIGA8YS8+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdGlnaHRTZWxmQ2xvc2luZz86IGJvb2xlYW5cbiAgLyoqIFRoZSB3aWR0aCBwYXN0IHdoaWNoIGEgZmxvdyBlbGVtZW50J3MgYXR0cmlidXRlcyBnbyBvbiBsaW5lcyBvZiB0aGVpciBvd24uICovXG4gIHByaW50V2lkdGg/OiBudW1iZXIgfCBudWxsXG59XG5cbi8qKiBUaGUga2luZHMgb2YgbWF0dGVyIHRvIHJlY29nbml6ZSwgYXMgcmVtYXJrLWZyb250bWF0dGVyIHRha2VzIHRoZW0gKGEgcHJlc2V0LCBhIG1hdHRlciwgb3IgYSBsaXN0IG9mIHRoZW07IGB5YW1sYCB3aGVuIHVuc2V0KSwgb3IgdGV4dGxhbmUncyBvcHRpb25zIG9iamVjdC4gKi9cbmV4cG9ydCB0eXBlIEZyb250bWF0dGVyT3B0aW9ucyA9IFwieWFtbFwiIHwgXCJ0b21sXCIgfCBNYXR0ZXIgfCAoXCJ5YW1sXCIgfCBcInRvbWxcIiB8IE1hdHRlcilbXSB8IEZyb250bWF0dGVyU2V0dGluZ3NcblxuLyoqIE9uZSBraW5kIG9mIGZyb250bWF0dGVyOiB0aGUgbm9kZSBgdHlwZWAgaXQgYmVjb21lcyBhbmQgaXRzIGZlbmNlcywgYSBgbWFya2VyYCByZXBlYXRlZCB0aHJlZSB0aW1lcyBvciBhIHdob2xlIGBmZW5jZWAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdHRlciB7XG4gIHR5cGU6IHN0cmluZ1xuICBtYXJrZXI/OiBGZW5jZVxuICBmZW5jZT86IEZlbmNlXG4gIGFueXdoZXJlPzogYm9vbGVhblxufVxuXG4vKiogRGlmZmVyZW50IG9wZW5pbmcgYW5kIGNsb3NpbmcgZmVuY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZW5jZVBhaXIge1xuICBvcGVuOiBzdHJpbmdcbiAgY2xvc2U6IHN0cmluZ1xufVxuXG4vKiogQSBmZW5jZSwgb3IgaXRzIG9wZW5pbmcgYW5kIGNsb3Npbmcgb25lcy4gKi9cbmV4cG9ydCB0eXBlIEZlbmNlID0gc3RyaW5nIHwgRmVuY2VQYWlyXG5cbi8qKiB0ZXh0bGFuZSdzIG9wdGlvbnM6IHRoZSBtYXR0ZXJzLCBhbmQgd2hhdCB0byBkbyB3aXRoIFlBTUwgZnJvbnRtYXR0ZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb250bWF0dGVyU2V0dGluZ3Mge1xuICAvKiogVGhlIGtpbmRzIG9mIG1hdHRlciB0byByZWNvZ25pemUsIGFzIHJlbWFyay1mcm9udG1hdHRlciB0YWtlcyB0aGVtOyBgeWFtbGAgd2hlbiB1bnNldC4gKi9cbiAgbWF0dGVycz86IFwieWFtbFwiIHwgXCJ0b21sXCIgfCBNYXR0ZXIgfCAoXCJ5YW1sXCIgfCBcInRvbWxcIiB8IE1hdHRlcilbXVxuICAvKiogUGFyc2UgdGhlIFlBTUwgZnJvbnRtYXR0ZXIgYSBkb2N1bWVudCBzdGFydHMgd2l0aCBpbnRvIGBmaWxlLmRhdGEubWF0dGVyYCwgYHt9YCB3aGVuIHRoZXJlIGlzIG5vbmUsIGFzIHZmaWxlLW1hdHRlciBkb2VzLiAqL1xuICBkYXRhPzogYm9vbGVhblxuICAvKiogUmVtb3ZlIHRoZSBZQU1MIGZyb250bWF0dGVyIGEgZG9jdW1lbnQgc3RhcnRzIHdpdGggZnJvbSB0aGUgdHJlZS4gKi9cbiAgc3RyaXA/OiBib29sZWFuXG59XG5cbi8qKiBgbWQuY29tcG9uZW50YDogZGlyZWN0aXZlcywgR2l0SHViIGFsZXJ0cyBhbmQgb3RoZXIgbm9kZXMgaW50byBNRFggSlNYIGVsZW1lbnRzLCB0aGUgY29tcG9uZW50cyBhbiBNRFggcnVudGltZSByZW5kZXJzLCBieSBkZWNsYXJhdGl2ZSBydWxlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKiBSdWxlcyBmb3IgZGlyZWN0aXZlczsgdGhlIGZpcnN0IHRoYXQgbWF0Y2hlcyBhIGRpcmVjdGl2ZSBjb252ZXJ0cyBpdC4gKi9cbiAgZGlyZWN0aXZlcz86IERpcmVjdGl2ZVJ1bGVbXVxuICAvKiogR2l0SHViIGFsZXJ0cywgYD4gWyFOT1RFXWAsIGludG8gYSBjb21wb25lbnQuICovXG4gIGFsZXJ0cz86IEFsZXJ0UnVsZSB8IG51bGxcbiAgLyoqIE5vZGUgdHlwZXMsIHN1Y2ggYXMgYGRlZkxpc3RgLCBpbnRvIGNvbXBvbmVudHMga2VlcGluZyB0aGVpciBjaGlsZHJlbi4gQGRlZmF1bHQge30gKi9cbiAgbm9kZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBXaGF0IGJlY29tZXMgb2YgYSBkaXJlY3RpdmUgbm8gcnVsZSBjb252ZXJ0cy4gKi9cbiAgdW5rbm93bkRpcmVjdGl2ZXM/OiBVbmtub3duRGlyZWN0aXZlc1xuICAvKiogUnVsZXMgZm9yIGZlbmNlZCBjb2RlOyB0aGUgZmlyc3QgdGhhdCBtYXRjaGVzIGEgYmxvY2sgYXBwbGllcy4gKi9cbiAgY29kZXM/OiBDb2RlUnVsZVtdXG59XG5cbi8qKiBIb3cgYG1kLmNvbXBvbmVudGAgdHVybnMgbWF0Y2hpbmcgZGlyZWN0aXZlcyBpbnRvIG9uZSBjb21wb25lbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZVJ1bGUge1xuICAvKiogVGhlIGRpcmVjdGl2ZSdzIG5hbWUsIG9yIHNldmVyYWwuICovXG4gIG5hbWU6IE5hbWVzXG4gIC8qKiBUaGUga2luZCBvZiBkaXJlY3RpdmU6IGB0ZXh0YCwgYGxlYWZgIG9yIGBjb250YWluZXJgOyBhbnkgd2hlbiBsZWZ0IG91dC4gKi9cbiAga2luZD86IERpcmVjdGl2ZUtpbmQgfCBudWxsXG4gIC8qKiBBdHRyaWJ1dGUgdmFsdWVzIHRoZSBkaXJlY3RpdmUgbXVzdCBoYXZlLiBAZGVmYXVsdCB7fSAqL1xuICB3aGVyZT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgLyoqIFRoZSBjb21wb25lbnQ6IGEgdGV4dCBlbGVtZW50IGZvciBhIHRleHQgZGlyZWN0aXZlLCBlbHNlIGEgZmxvdyBlbGVtZW50LiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIGF0dHJpYnV0ZSB0aGF0IGdldHMgdGhlIGRpcmVjdGl2ZSdzIG5hbWUuICovXG4gIG5hbWVBcz86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBsYWJlbCdzIHRleHQ6IGEgY29udGFpbmVyJ3MgbGFiZWwgcGFyYWdyYXBoIG9yIGEgdGV4dCBvciBsZWFmIGRpcmVjdGl2ZSdzIGNvbnRlbnQsIHdoaWNoIGlzIHRoZW4gZHJvcHBlZC4gKi9cbiAgbGFiZWxBcz86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBsYWJlbCdzIHRleHQgd2hlbiB0aGVyZSBpcyBub25lLiAqL1xuICBsYWJlbERlZmF1bHQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgYXR0cmlidXRlcyB0byBrZWVwLCBpbiBvcmRlcjsgZXZlcnkgb25lLCBhcyB3cml0dGVuLCB3aGVuIGxlZnQgb3V0LiAqL1xuICBhdHRyaWJ1dGVzPzogQXR0cmlidXRlUnVsZVtdIHwgbnVsbFxuICAvKiogQXR0cmlidXRlcyB3aXRob3V0IHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgbGVmdCB0byBgdW5rbm93bkRpcmVjdGl2ZXNgLiBAZGVmYXVsdCBbXSAqL1xuICByZXF1aXJlZD86IHN0cmluZ1tdXG4gIC8qKiBXcmFwIHJ1bnMgb2YgYWRqYWNlbnQgc2libGluZ3MgdGhpcyBydWxlIGNvbnZlcnRlZCBpbiBhbm90aGVyIGNvbXBvbmVudC4gKi9cbiAgZ3JvdXA/OiBHcm91cFJ1bGUgfCBudWxsXG4gIC8qKiBUaGUgYXR0cmlidXRlIHRoYXQgZ2V0cyB0aGUgbGlzdHMgb2YgYSBjb250YWluZXIgZGlyZWN0aXZlIGFzIGEgZmlsZSB0cmVlLCBKU09OIGl0ZW1zIGB7bmFtZSwgdHlwZSwgY29tbWVudD8sIGhpZ2hsaWdodGVkPywgY2hpbGRyZW4/fWA7IHRoZSBsaXN0cyBsZWF2ZSBpdHMgY29udGVudC4gKi9cbiAgdHJlZUFzPzogc3RyaW5nIHwgbnVsbFxufVxuXG4vKiogT25lIG5hbWUgb3Igc2V2ZXJhbC4gKi9cbmV4cG9ydCB0eXBlIE5hbWVzID0gc3RyaW5nIHwgc3RyaW5nW11cblxuLyoqIEEgZGlyZWN0aXZlJ3Mga2luZCwgYnkgaG93IG1hbnkgY29sb25zIG9wZW4gaXQuICovXG5leHBvcnQgdHlwZSBEaXJlY3RpdmVLaW5kID0gXCJ0ZXh0XCIgfCBcImxlYWZcIiB8IFwiY29udGFpbmVyXCJcblxuLyoqIEFuIGF0dHJpYnV0ZSB0byBrZWVwOiBpdHMgbmFtZSwgb3IgaXRzIG5hbWUgd2l0aCB3aGF0IHRvIGNhbGwgaXQgYW5kIGEgZGVmYXVsdC4gKi9cbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZVJ1bGUgPSBzdHJpbmcgfCB7IG5hbWU6IHN0cmluZzsgcmVuYW1lPzogc3RyaW5nIHwgbnVsbDsgZGVmYXVsdD86IHN0cmluZyB8IG51bGwgfVxuXG4vKiogVGhlIGNvbXBvbmVudCB3cmFwcGluZyBhIHJ1biBvZiBhZGphY2VudCBzaWJsaW5ncyBvbmUgcnVsZSBjb252ZXJ0ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwUnVsZSB7XG4gIC8qKiBUaGUgd3JhcHBpbmcgY29tcG9uZW50LiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIHNob3J0ZXN0IHJ1biB3cmFwcGVkOyAyIHdoZW4gbGVmdCBvdXQuICovXG4gIG1pbj86IG51bWJlciB8IG51bGxcbiAgLyoqIEF0dHJpYnV0ZXMgdGhlIHdyYXBwZXIgY29waWVzIGZyb20gdGhlIHJ1bidzIGZpcnN0IGVsZW1lbnQuIEBkZWZhdWx0IFtdICovXG4gIGluaGVyaXQ/OiBzdHJpbmdbXVxufVxuXG4vKiogSG93IGBtZC5jb21wb25lbnRgIHR1cm5zIEdpdEh1YiBhbGVydHMsIGEgYmxvY2sgcXVvdGUgb3BlbmluZyB3aXRoIGBbIVRZUEVdYCwgaW50byBhIGNvbXBvbmVudC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnRSdWxlIHtcbiAgLyoqIFRoZSBjb21wb25lbnQgYW4gYWxlcnQgYmVjb21lcy4gKi9cbiAgY29tcG9uZW50OiBzdHJpbmdcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBhbGVydCdzIHR5cGUuICovXG4gIHR5cGVBczogc3RyaW5nXG4gIC8qKiBFYWNoIGFsZXJ0IHR5cGUsIGFzIHdyaXR0ZW4sIHRvIHRoZSB2YWx1ZSBvZiBgdHlwZUFzYDsgb3RoZXIgdHlwZXMgc3RheSBibG9jayBxdW90ZXMuICovXG4gIHR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG59XG5cbi8qKiBXaGF0IGBtZC5jb21wb25lbnRgIGRvZXMgd2l0aCBhIGRpcmVjdGl2ZSBubyBydWxlIGNvbnZlcnRzLiAqL1xuZXhwb3J0IHR5cGUgVW5rbm93bkRpcmVjdGl2ZXMgPSBcImtlZXBcIiB8IFwic291cmNlXCJcblxuLyoqIEhvdyBgbWQuY29tcG9uZW50YCB0dXJucyBtYXRjaGluZyBjb2RlIGJsb2NrcyBpbnRvIGEgY29tcG9uZW50LCBvciBncm91cHMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVJ1bGUge1xuICAvKiogVGhlIGJsb2NrJ3MgbGFuZ3VhZ2UsIG9yIHNldmVyYWw7IGFueSB3aGVuIGxlZnQgb3V0LiAqL1xuICBsYW5nPzogTmFtZXMgfCBudWxsXG4gIC8qKiBBIGBrZXk9XCJ2YWx1ZVwiYCB0aGUgYmxvY2sncyBtZXRhIG11c3QgaG9sZC4gKi9cbiAgbWV0YT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBjb21wb25lbnQgdGhlIGJsb2NrIGJlY29tZXM7IGxlZnQgb3V0LCB0aGUgYmxvY2sgc3RheXMgY29kZSBhbmQgb25seSBncm91cHMuICovXG4gIGNvbXBvbmVudD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBjb2RlOyBsZWZ0IG91dCwgdGhlIGNvZGUgaXMgdGhlIGNvbXBvbmVudCdzIHRleHQuICovXG4gIHZhbHVlQXM/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBNZXRhIGBrZXk9XCJ2YWx1ZVwiYCBwYWlycyB0byBrZWVwIGFzIGF0dHJpYnV0ZXMsIGluIG9yZGVyLiAqL1xuICBhdHRyaWJ1dGVzPzogQXR0cmlidXRlUnVsZVtdXG4gIC8qKiBXcmFwIHJ1bnMgb2YgYWRqYWNlbnQgYmxvY2tzIHRoaXMgcnVsZSBtYXRjaGVkIGluIGFub3RoZXIgY29tcG9uZW50LiAqL1xuICBncm91cD86IENvZGVHcm91cFJ1bGUgfCBudWxsXG59XG5cbi8qKiBUaGUgY29tcG9uZW50IHdyYXBwaW5nIGEgcnVuIG9mIGFkamFjZW50IGNvZGUgYmxvY2tzIG9uZSBydWxlIG1hdGNoZWQ7IHRoZSBtZXRhIGtleXMgaXQgcmVhZHMgYXJlIHRha2VuIG91dCBvZiBlYWNoIGJsb2NrJ3MgbWV0YS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUdyb3VwUnVsZSB7XG4gIC8qKiBUaGUgd3JhcHBpbmcgY29tcG9uZW50LiAqL1xuICBjb21wb25lbnQ6IHN0cmluZ1xuICAvKiogVGhlIHNob3J0ZXN0IHJ1biB3cmFwcGVkOyAyIHdoZW4gbGVmdCBvdXQuICovXG4gIG1pbj86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBhdHRyaWJ1dGUgdGhhdCBnZXRzIHRoZSBydW4ncyB2YWx1ZXMgb2YgdGhlIHJ1bGUncyBgbWV0YWAga2V5LCBhcyBhIEpTT04gbGlzdC4gKi9cbiAgY29sbGVjdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIE1ldGEga2V5cyB0aGUgd3JhcHBlciBjb3BpZXMgZnJvbSB0aGUgcnVuJ3MgZmlyc3QgYmxvY2sgYXMgYXR0cmlidXRlcy4gQGRlZmF1bHQgW10gKi9cbiAgaW5oZXJpdD86IHN0cmluZ1tdXG59XG5cbi8qKiBgbWQucGFja2FnZUNvbW1hbmRgOiBhIGZlbmNlZCBibG9jayBvZiBwYWNrYWdlLW1hbmFnZXIgY29tbWFuZHMsIGl0cyBsYW5ndWFnZSBuYW1pbmcgdGhlIGVjb3N5c3RlbSAoYG5wbWAsIGBwaXBgLCBgY2FyZ29gKSwgaW50byBvbmUgY29tcG9uZW50IHdpdGggdGhlIGNvbW1hbmRzIGNvbnZlcnRlZCBmb3IgZWFjaCBtYW5hZ2VyLCBhcyBgQGRvY3VzYXVydXMvcmVtYXJrLXBsdWdpbi1ucG0yeWFybmAgZG9lcyBmb3IgbnBtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlQ29tbWFuZE9wdGlvbnMge1xuICAvKiogVGhlIGNvbXBvbmVudCBhIGJsb2NrIGJlY29tZXM7IG9uZSBzdHJpbmcgYXR0cmlidXRlIHBlciBtYW5hZ2VyLiBAZGVmYXVsdCBcIlBhY2thZ2VUYWJzXCIgKi9cbiAgY29tcG9uZW50Pzogc3RyaW5nXG4gIC8qKiBFYWNoIGVjb3N5c3RlbSdzIG1hbmFnZXJzLCBpbiBhdHRyaWJ1dGUgb3JkZXI7IGFuIGVtcHR5IGxpc3QgbGVhdmVzIGl0cyBibG9ja3MgY29kZS4gKi9cbiAgZWNvc3lzdGVtcz86IEVjb3N5c3RlbXNcbn1cblxuLyoqIFRoZSBtYW5hZ2VycyBgbWQucGFja2FnZUNvbW1hbmRgIGNvbnZlcnRzIGVhY2ggZWNvc3lzdGVtJ3MgY29tbWFuZHMgZm9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY29zeXN0ZW1zIHtcbiAgLyoqIE1hbmFnZXJzIGZvciBgbnBtYCBibG9ja3MsIGNvbnZlcnRlZCBhcyBucG0tdG8teWFybiBjb252ZXJ0czsgbnBtLCBwbnBtLCB5YXJuIGFuZCBidW4gYnkgZGVmYXVsdC4gKi9cbiAgbnBtPzogTnBtTWFuYWdlcltdXG4gIC8qKiBNYW5hZ2VycyBmb3IgYHBpcGAgYmxvY2tzOyBwaXAsIHV2LCBwb2V0cnkgYW5kIHBkbSBieSBkZWZhdWx0LiAqL1xuICBwaXA/OiBQaXBNYW5hZ2VyW11cbiAgLyoqIE1hbmFnZXJzIGZvciBgY2FyZ29gIGJsb2NrczsgY2FyZ28gYW5kIGNhcmdvLWJpbnN0YWxsIGJ5IGRlZmF1bHQuICovXG4gIGNhcmdvPzogQ2FyZ29NYW5hZ2VyW11cbn1cblxuLyoqIEEgSmF2YVNjcmlwdCBwYWNrYWdlIG1hbmFnZXIgYW4gYG5wbWAgY29tbWFuZCBjb252ZXJ0cyB0by4gKi9cbmV4cG9ydCB0eXBlIE5wbU1hbmFnZXIgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIiB8IFwiYnVuXCIgfCBcImRlbm9cIiB8IFwibnViXCJcblxuLyoqIEEgUHl0aG9uIHBhY2thZ2UgbWFuYWdlciBhIGBwaXBgIGNvbW1hbmQgY29udmVydHMgdG8uICovXG5leHBvcnQgdHlwZSBQaXBNYW5hZ2VyID0gXCJwaXBcIiB8IFwidXZcIiB8IFwicG9ldHJ5XCIgfCBcInBkbVwiXG5cbi8qKiBBIFJ1c3QgaW5zdGFsbGVyIGEgYGNhcmdvYCBjb21tYW5kIGNvbnZlcnRzIHRvLiAqL1xuZXhwb3J0IHR5cGUgQ2FyZ29NYW5hZ2VyID0gXCJjYXJnb1wiIHwgXCJjYXJnby1iaW5zdGFsbFwiXG5cbi8qKiBgbWQuaGVhZGluZ0lkYDogYHsjaWR9YCBhdCB0aGUgZW5kIG9mIGEgaGVhZGluZywgYWZ0ZXIgYSBzcGFjZSwgYXMgaXRzIGlkLCBhcyByZW1hcmstaGVhZGluZy1pZCByZWFkcyBpdDsgaGVhZGluZ3Mgd2l0aG91dCBvbmUga2VlcCBub25lLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFkaW5nSWRPcHRpb25zIHtcbiAgLyoqIFJlYWQgYSB3aG9sZSBhdHRyaWJ1dGUgbGlzdCwgYHsjaWQgLmNsYXNzIGtleT12YWx1ZSBrZXk9XCJ2IHdcIn1gLCBhcyBkaXJlY3RpdmVzIHdyaXRlIHRoZWlyczogY2xhc3NlcyBiZWNvbWUgYGNsYXNzTmFtZWAgYW5kIG90aGVyIGtleXMgcHJvcGVydGllcy4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIExpdGVyYWwgc3VmZml4ZXMsIHN1Y2ggYXMgYFtzdGVwXWAsIHN0cmlwcGVkIGZyb20gYSBoZWFkaW5nJ3MgZW5kIGZvciB0aGUgYXR0cmlidXRlcyBlYWNoIG5hbWVzLCBhIHZhbHVlIG9yIGB0cnVlYCBmb3IgYSBiYXJlIG9uZTogYHtcIltzdGVwXVwiOiB7XCJkYXRhLXN0ZXBcIjogdHJ1ZX19YC4gKi9cbiAgbWFya2Vycz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIE1hcmtlclZhbHVlPj5cbn1cblxuLyoqIEFuIGF0dHJpYnV0ZSBhIGhlYWRpbmcgbWFya2VyIHNldHM6IGl0cyB2YWx1ZSwgb3IgYHRydWVgIGZvciB0aGUgYmFyZSBhdHRyaWJ1dGUuICovXG5leHBvcnQgdHlwZSBNYXJrZXJWYWx1ZSA9IGJvb2xlYW4gfCBzdHJpbmdcblxuLyoqIGBtZC5wYXRoUmV3cml0ZWA6IHRoZSBVUkxzIG9mIGltYWdlcywgbGlua3MgYW5kIGRlZmluaXRpb25zIGFzIGEgc2l0ZSBzZXJ2ZXMgdGhlbTogcmVsYXRpdmUgb25lcyByZXNvbHZlZCBhZ2FpbnN0IHRoZSBmaWxlJ3MgcGF0aCBhbmQgbWFkZSByb290LXJlbGF0aXZlLCBldmVyeSByb290LXJlbGF0aXZlIG9uZSB1bmRlciBgYmFzZWAsIGFuZCBsaW5rcyB0byBNYXJrZG93biBmaWxlcyB0dXJuZWQgaW50byBwYWdlIFVSTHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhdGhSZXdyaXRlT3B0aW9ucyB7XG4gIC8qKiBUaGUgZGlyZWN0b3J5IFVSTHMgY291bnQgZnJvbSwgYXMgdGhlIGZpbGUncyBwYXRoIHNwZWxscyBpdDsgdGhlIHBhdGgncyBvd24gc3RhcnRpbmcgcG9pbnQgd2hlbiBsZWZ0IG91dC4gKi9cbiAgcm9vdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBVUkwgdGhlIHNpdGUgaXMgc2VydmVkIGF0LCBzdWNoIGFzIGAvZG9jc2AsIHB1dCBiZWZvcmUgZXZlcnkgcm9vdC1yZWxhdGl2ZSBVUkwgb25jZS4gKi9cbiAgYmFzZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBub2RlcyB3aG9zZSBVUkxzIGFyZSByZXdyaXR0ZW47IGltYWdlcywgbGlua3MgYW5kIGRlZmluaXRpb25zIHdoZW4gbGVmdCBvdXQuICovXG4gIG5vZGVzPzogVXJsTm9kZVtdIHwgbnVsbFxuICAvKiogTWFya2Rvd24gZmlsZXMsIHJlbGF0aXZlIHRvIGByb290YCwgdG8gdGhlIFVSTCBvZiB0aGVpciBwYWdlOyBhIGxpbmsgdG8gb25lIG9mIHRoZW0gdGFrZXMgaXQsIGJlZm9yZSBgbWFya2Rvd25MaW5rc2AgYXBwbGllcy4gQGRlZmF1bHQge30gKi9cbiAgcGFnZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBIb3cgYSBsaW5rIHRvIGEgTWFya2Rvd24gZmlsZSBubyBwYWdlIG5hbWVzIGJlY29tZXMgYSBVUkwuICovXG4gIG1hcmtkb3duTGlua3M/OiBNYXJrZG93bkxpbmtzXG59XG5cbi8qKiBBIG5vZGUgd2l0aCBhIFVSTC4gKi9cbmV4cG9ydCB0eXBlIFVybE5vZGUgPSBcImltYWdlXCIgfCBcImxpbmtcIiB8IFwiZGVmaW5pdGlvblwiXG5cbi8qKiBIb3cgYSBsaW5rIHRvIGEgTWFya2Rvd24gZmlsZSBiZWNvbWVzIGEgVVJMLiAqL1xuZXhwb3J0IHR5cGUgTWFya2Rvd25MaW5rcyA9IFwia2VlcFwiIHwgXCJkaXJlY3RvcnlcIiB8IFwiaHRtbFwiXG5cbi8qKiBgbWQuc3RyaXBgOiBtZGFzdCBkb3duIHRvIGl0cyB0ZXh0LCBhcyBzdHJpcC1tYXJrZG93biBkb2VzOiBjb2RlLCBIVE1MLCB0YWJsZXMgYW5kIHRoZSBsaWtlIGRyb3BwZWQsIGhlYWRpbmdzIG1hZGUgcGFyYWdyYXBocywgZm9ybWF0dGluZyB1bndyYXBwZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmlwT3B0aW9ucyB7XG4gIC8qKiBOb2RlIHR5cGVzIHRvIGxlYXZlIGFzIHRoZXkgYXJlLCBzdWNoIGFzIGBpbmxpbmVDb2RlYC4gQGRlZmF1bHQgW10gKi9cbiAga2VlcD86IHN0cmluZ1tdXG4gIC8qKiBOb2RlIHR5cGVzIHRvIGRyb3AsIGJlc2lkZXMgdGhvc2Ugc3RyaXAtbWFya2Rvd24gZHJvcHMuIEBkZWZhdWx0IFtdICovXG4gIHJlbW92ZT86IHN0cmluZ1tdXG59XG5cbi8qKiBgbWQudG9jYDogYSB0YWJsZSBvZiBjb250ZW50cyB1bmRlciB0aGUgZmlyc3QgaGVhZGluZyBtYXRjaGluZyBgaGVhZGluZ2AsIHJlcGxhY2luZyB3aGF0IHNhdCBiZXR3ZWVuIGl0IGFuZCB0aGUgbmV4dCBoZWFkaW5nIGFzIGRlZXAgb3Igc2hhbGxvd2VyLCBhcyByZW1hcmstdG9jIG1ha2VzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2NPcHRpb25zIHtcbiAgLyoqIFRoZSBoZWFkaW5nIHRvIHB1dCB0aGUgdGFibGUgdW5kZXIsIGFzIEphdmFTY3JpcHQgcmVndWxhciBleHByZXNzaW9uIHNvdXJjZSBtYXRjaGVkIGFnYWluc3QgaXRzIHdob2xlIHRleHQsIGNhc2UtaW5zZW5zaXRpdmVseTsgYCh0YWJsZVsgLV1vZlsgLV0pP2NvbnRlbnRzP3x0b2NgIHdoZW4gdW5zZXQuICovXG4gIGhlYWRpbmc/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgZGVlcGVzdCBoZWFkaW5nIHJhbmsgdG8gbGlzdCwgMSB0byA2LiAqL1xuICBtYXhEZXB0aD86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBzaGFsbG93ZXN0IGhlYWRpbmcgcmFuayB0byBsaXN0LCAxIHRvIDYuICovXG4gIG1pbkRlcHRoPzogbnVtYmVyIHwgbnVsbFxuICAvKiogSGVhZGluZ3MgdG8gbGVhdmUgb3V0LCBhcyBKYXZhU2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lvbiBzb3VyY2UgbWF0Y2hlZCBhZ2FpbnN0IHRoZWlyIHdob2xlIHRleHQsIGNhc2UtaW5zZW5zaXRpdmVseS4gKi9cbiAgc2tpcD86IHN0cmluZyB8IG51bGxcbiAgLyoqIEtlZXAgdGhlIGxpc3QgY29tcGFjdCwgd2l0aG91dCBibGFuayBsaW5lcyBiZXR3ZWVuIGl0ZW1zOyBgdHJ1ZWAgd2hlbiB1bnNldC4gKi9cbiAgdGlnaHQ/OiBib29sZWFuIHwgbnVsbFxuICAvKiogTnVtYmVyIHRoZSBsaXN0IGluc3RlYWQgb2YgYnVsbGV0aW5nIGl0LiAqL1xuICBvcmRlcmVkPzogYm9vbGVhbiB8IG51bGxcbiAgLyoqIFdoYXQgZWFjaCBsaW5rJ3MgZnJhZ21lbnQgc3RhcnRzIHdpdGgsIHN1Y2ggYXMgYHVzZXItY29udGVudC1gLiAqL1xuICBwcmVmaXg/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgcGFyZW50cyB3aG9zZSBoZWFkaW5ncyBhcmUgbGlzdGVkLCBhcyBhIHVuaXN0LXV0aWwtaXMgdGVzdDogYSBub2RlIHR5cGUsIGFuIG9iamVjdCBvZiBmaWVsZHMgYSBwYXJlbnQgbXVzdCBlcXVhbCwgb3IgYSBsaXN0IG9mIHRoZXNlOyBvbmx5IHRoZSByb290IHdoZW4gdW5zZXQuICovXG4gIHBhcmVudHM/OiBQYXJlbnRUZXN0IHwgbnVsbFxufVxuXG4vKiogQSB1bmlzdC11dGlsLWlzIHRlc3Qgb2YgYSBub2RlLCB3cml0dGVuIGFzIEpTT046IG9uZSBjaGVjaywgb3IgYSBsaXN0IGFueSBvZiB3aGljaCBwYXNzZXMuICovXG5leHBvcnQgdHlwZSBQYXJlbnRUZXN0ID0gUGFyZW50Q2hlY2sgfCBQYXJlbnRDaGVja1tdXG5cbi8qKiBPbmUgdW5pc3QtdXRpbC1pcyBjaGVjazogYSBub2RlIHR5cGUsIG9yIGZpZWxkcyBhIG5vZGUgbXVzdCBlcXVhbC4gKi9cbmV4cG9ydCB0eXBlIFBhcmVudENoZWNrID0gc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuLyoqIGBtZC5zdHJpbmdpZnlgOiBtZGFzdCBpbnRvIE1hcmtkb3duOyBvcHRpb25zIG5hbWVkIGFzIG1kYXN0LXV0aWwtdG8tbWFya2Rvd24gbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5naWZ5T3B0aW9ucyB7XG4gIC8qKiBUaGUgbWFya2VyIG9mIHVub3JkZXJlZCBsaXN0IGl0ZW1zOiBgKmAsIGArYCBvciBgLWAuICovXG4gIGJ1bGxldD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBtYXJrZXIgb2Ygb3JkZXJlZCBsaXN0IGl0ZW1zOiBgLmAgb3IgYClgLiAqL1xuICBidWxsZXRPcmRlcmVkPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIG1hcmtlciBvZiBhIGxpc3QgcmlnaHQgYWZ0ZXIgYSBsaXN0IHdpdGggYGJ1bGxldGAuICovXG4gIGJ1bGxldE90aGVyPzogc3RyaW5nIHwgbnVsbFxuICAvKiogQ2xvc2UgQVRYIGhlYWRpbmdzIHdpdGggYXMgbWFueSBgI2AgYXMgdGhleSBvcGVuIHdpdGguIEBkZWZhdWx0IGZhbHNlICovXG4gIGNsb3NlQXR4PzogYm9vbGVhblxuICAvKiogVGhlIG1hcmtlciBvZiBlbXBoYXNpczogYCpgIG9yIGBfYC4gKi9cbiAgZW1waGFzaXM/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgbWFya2VyIG9mIGZlbmNlZCBjb2RlOiBgYCBgIGBgIG9yIGB+YC4gKi9cbiAgZmVuY2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBGZW5jZSBjb2RlOyBgZmFsc2VgIGluZGVudHMgaXQgd2hlcmUgaXQgY2FuLiBAZGVmYXVsdCB0cnVlICovXG4gIGZlbmNlcz86IGJvb2xlYW5cbiAgLyoqIE51bWJlciBvcmRlcmVkIGxpc3QgaXRlbXMgdXAgZnJvbSBgc3RhcnRgLiBAZGVmYXVsdCB0cnVlICovXG4gIGluY3JlbWVudExpc3RNYXJrZXI/OiBib29sZWFuXG4gIC8qKiBIb3cgbGlzdCBpdGVtIGNvbnRlbnQgaXMgaW5kZW50ZWQ6IGBvbmVgLCBgdGFiYCBvciBgbWl4ZWRgLiAqL1xuICBsaXN0SXRlbUluZGVudD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBtYXJrZXIgb2YgdGl0bGVzOiBgXCJgIG9yIGAnYC4gKi9cbiAgcXVvdGU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBXcml0ZSBsaW5rcyBhcyByZXNvdXJjZXMgZXZlbiB3aGVyZSBhbiBhdXRvbGluayB3b3VsZCBkby4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcmVzb3VyY2VMaW5rPzogYm9vbGVhblxuICAvKiogVGhlIG1hcmtlciBvZiB0aGVtYXRpYyBicmVha3M6IGAqYCwgYC1gIG9yIGBfYC4gKi9cbiAgcnVsZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIEhvdyBtYW55IG1hcmtlcnMgYSB0aGVtYXRpYyBicmVhayBoYXMsIDMgb3IgbW9yZS4gKi9cbiAgcnVsZVJlcGV0aXRpb24/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBQdXQgc3BhY2VzIGJldHdlZW4gdGhlIG1hcmtlcnMgb2YgYSB0aGVtYXRpYyBicmVhay4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcnVsZVNwYWNlcz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGhlYWRpbmdzIG9mIHJhbmsgMSBhbmQgMiBhcyBzZXRleHQgaGVhZGluZ3MuIEBkZWZhdWx0IGZhbHNlICovXG4gIHNldGV4dD86IGJvb2xlYW5cbiAgLyoqIFRoZSBtYXJrZXIgb2Ygc3Ryb25nOiBgKmAgb3IgYF9gLiAqL1xuICBzdHJvbmc/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBKb2luIGRlZmluaXRpb25zIHdpdGggbm8gYmxhbmsgbGluZSBiZXR3ZWVuIHRoZW0uIEBkZWZhdWx0IGZhbHNlICovXG4gIHRpZ2h0RGVmaW5pdGlvbnM/OiBib29sZWFuXG4gIC8qKiBFeHRyYSBwYXR0ZXJucyBvZiBjaGFyYWN0ZXJzIHRvIGVzY2FwZS4gKi9cbiAgdW5zYWZlPzogVW5zYWZlUGF0dGVybltdXG59XG5cbi8qKiBBIGNoYXJhY3RlciB0byBlc2NhcGUgd2hlcmUgaXQgd291bGQgb3RoZXJ3aXNlIHN0YXJ0IG9yIGVuZCBzeW50YXguICovXG5leHBvcnQgaW50ZXJmYWNlIFVuc2FmZVBhdHRlcm4ge1xuICAvKiogVGhlIGNoYXJhY3RlciwgZXNjYXBlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB3b3VsZCBuZWVkIGl0LiBAZGVmYXVsdCBcIlwiICovXG4gIGNoYXJhY3Rlcj86IHN0cmluZ1xuICAvKiogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtdXN0IG1hdGNoIHJpZ2h0IGJlZm9yZSB0aGUgY2hhcmFjdGVyLiAqL1xuICBiZWZvcmU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG11c3QgbWF0Y2ggcmlnaHQgYWZ0ZXIgdGhlIGNoYXJhY3Rlci4gKi9cbiAgYWZ0ZXI/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBPbmx5IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUsIGFmdGVyIGFueSBpbmRlbnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGF0QnJlYWs/OiBib29sZWFuXG4gIC8qKiBPbmx5IGluc2lkZSBvbmUgb2YgdGhlc2UgY29uc3RydWN0cy4gKi9cbiAgaW5Db25zdHJ1Y3Q/OiBOYW1lcyB8IG51bGxcbiAgLyoqIE5ldmVyIGluc2lkZSBvbmUgb2YgdGhlc2UgY29uc3RydWN0cy4gKi9cbiAgbm90SW5Db25zdHJ1Y3Q/OiBOYW1lcyB8IG51bGxcbiAgLyoqIE9ubHkgYXQgdGhlIHN0YXJ0IG9mIGEgbm9kZSByaWdodCBhZnRlciBvbmUgb2YgdGhlc2Ugbm9kZSB0eXBlcy4gKi9cbiAgYmVmb3JlTm9kZT86IE5hbWVzIHwgbnVsbFxuICAvKiogT25seSBhdCB0aGUgZW5kIG9mIGEgbm9kZSByaWdodCBiZWZvcmUgb25lIG9mIHRoZXNlIG5vZGUgdHlwZXMuICovXG4gIGFmdGVyTm9kZT86IE5hbWVzIHwgbnVsbFxuICAvKiogUmVhZCBgYmVmb3JlYCBhbmQgYGFmdGVyYCB3aXRoIFVuaWNvZGUgY2xhc3NlcyBzdWNoIGFzIGBcXHB7TH1gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB1bmljb2RlPzogYm9vbGVhblxufVxuXG4vKiogYG1kLnRvSHRtbGA6IG1kYXN0IGludG8gaGFzdDsgb3B0aW9ucyBuYW1lZCBhcyByZW1hcmstcmVoeXBlIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFRvSHRtbE9wdGlvbnMge1xuICAvKiogS2VlcCByYXcgSFRNTCBpbiB0aGUgdHJlZSBpbnN0ZWFkIG9mIGRyb3BwaW5nIGl0LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhbGxvd0Rhbmdlcm91c0h0bWw/OiBib29sZWFuXG4gIC8qKiBXaGF0IGZvb3Rub3RlIGBpZGBzIHN0YXJ0IHdpdGgsIHNvIHRoZXkgY2Fubm90IGNsb2JiZXIgdGhlIHBhZ2UnczsgYHVzZXItY29udGVudC1gIHdoZW4gdW5zZXQuICovXG4gIGNsb2JiZXJQcmVmaXg/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdGV4dCBvZiBlYWNoIGZvb3Rub3RlJ3MgYmFjayByZWZlcmVuY2U7IGDihqlgLCBudW1iZXJlZCBmcm9tIHRoZSBzZWNvbmQsIHdoZW4gdW5zZXQuICovXG4gIGZvb3Rub3RlQmFja0NvbnRlbnQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgYGFyaWEtbGFiZWxgIG9mIGVhY2ggZm9vdG5vdGUncyBiYWNrIHJlZmVyZW5jZTsgYEJhY2sgdG8gcmVmZXJlbmNlIDFgIGFuZCBzbyBvbiB3aGVuIHVuc2V0LiAqL1xuICBmb290bm90ZUJhY2tMYWJlbD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBoZWFkaW5nIG9mIHRoZSBmb290bm90ZXMgc2VjdGlvbjsgYEZvb3Rub3Rlc2Agd2hlbiB1bnNldC4gKi9cbiAgZm9vdG5vdGVMYWJlbD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSB0YWcgbmFtZSBvZiB0aGUgZm9vdG5vdGVzIHNlY3Rpb24ncyBoZWFkaW5nOyBgaDJgIHdoZW4gdW5zZXQuICovXG4gIGZvb3Rub3RlTGFiZWxUYWdOYW1lPzogc3RyaW5nIHwgbnVsbFxuICAvKiogTm9kZSB0eXBlcyB3aXRob3V0IGEgaGFuZGxlciB0byBjb3B5IGludG8gaGFzdCBhcyB0aGV5IGFyZSwgdGhlaXIgY2hpbGRyZW4gY29udmVydGVkLiBAZGVmYXVsdCBbXSAqL1xuICBwYXNzVGhyb3VnaD86IHN0cmluZ1tdXG4gIC8qKiBBbiBgYXJpYS1sYWJlbGAgZm9yIGVhY2ggdGFzay1saXN0IGNoZWNrYm94LCBzbyBzY3JlZW4gcmVhZGVycyBuYW1lIGl0OyBub25lIHdoZW4gbGVmdCBvdXQsIGFzIHJlbWFyay1yZWh5cGUgd3JpdGVzIG5vbmUuICovXG4gIHRhc2tMaXN0TGFiZWxzPzogVGFza0xpc3RMYWJlbHMgfCBudWxsXG59XG5cbi8qKiBUaGUgbGFiZWxzIG9mIHRhc2stbGlzdCBjaGVja2JveGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrTGlzdExhYmVscyB7XG4gIC8qKiBUaGUgbGFiZWwgb2YgYSBjaGVja2VkIGJveCwgc3VjaCBhcyBgQ29tcGxldGVkIHRhc2tgLiAqL1xuICBjaGVja2VkOiBzdHJpbmdcbiAgLyoqIFRoZSBsYWJlbCBvZiBhbiB1bmNoZWNrZWQgYm94LCBzdWNoIGFzIGBUYXNrYC4gKi9cbiAgdW5jaGVja2VkOiBzdHJpbmdcbn1cblxuLyoqIGBtZC50b05hdHVyYWxMYW5ndWFnZWA6IG1kYXN0IGludG8gbmxjc3QsIHRva2VuaXplZCBieSB0aGUgcHJvY2Vzc29yJ3MgbmF0dXJhbC1sYW5ndWFnZSBwYXJzZXI7IG9wdGlvbnMgbmFtZWQgYXMgcmVtYXJrLXJldGV4dCBhbmQgbWRhc3QtdXRpbC10by1ubGNzdCBuYW1lIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFRvTmF0dXJhbExhbmd1YWdlT3B0aW9ucyB7XG4gIC8qKiBOb2RlIHR5cGVzIHRvIGxlYXZlIG91dCwgYmVzaWRlcyBgdGFibGVgLCBgdGFibGVSb3dgIGFuZCBgdGFibGVDZWxsYC4gQGRlZmF1bHQgW10gKi9cbiAgaWdub3JlPzogc3RyaW5nW11cbiAgLyoqIE5vZGUgdHlwZXMgdG8ga2VlcCBhcyBvbmUgYFNvdXJjZU5vZGVgIG9mIHRoZWlyIHNvdXJjZSB0ZXh0LCBiZXNpZGVzIGBpbmxpbmVDb2RlYC4gQGRlZmF1bHQgW10gKi9cbiAgc291cmNlPzogc3RyaW5nW11cbn1cblxuLyoqIFRoZSBgbWQucGFyc2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShvcHRpb25zPzogUGFyc2VPcHRpb25zKTogUGx1Z2luPFwibWQucGFyc2VcIiwgUGFyc2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQucGFyc2VcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLmRpcmVjdGl2ZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdGl2ZShvcHRpb25zPzogRGlyZWN0aXZlT3B0aW9ucyk6IFBsdWdpbjxcIm1kLmRpcmVjdGl2ZVwiLCBEaXJlY3RpdmVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQuZGlyZWN0aXZlXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLmRpcmVjdGl2ZVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuZ2ZtYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZ2ZtKG9wdGlvbnM/OiBHZm1PcHRpb25zKTogUGx1Z2luPFwibWQuZ2ZtXCIsIEdmbU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5nZm1cIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQuZ2ZtXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5kZWZpbml0aW9uTGlzdGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmluaXRpb25MaXN0KCk6IFBsdWdpbjxcIm1kLmRlZmluaXRpb25MaXN0XCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5kZWZpbml0aW9uTGlzdFwiIH1cbn1cblxuLyoqIFRoZSBgbWQubWF0aGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGgob3B0aW9ucz86IE1hdGhPcHRpb25zKTogUGx1Z2luPFwibWQubWF0aFwiLCBNYXRoT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLm1hdGhcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQubWF0aFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQubWR4YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gbWR4KG9wdGlvbnM/OiBNZHhPcHRpb25zKTogUGx1Z2luPFwibWQubWR4XCIsIE1keE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5tZHhcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQubWR4XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5mcm9udG1hdHRlcmAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb250bWF0dGVyKG9wdGlvbnM/OiBGcm9udG1hdHRlck9wdGlvbnMpOiBQbHVnaW48XCJtZC5mcm9udG1hdHRlclwiLCBGcm9udG1hdHRlck9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5mcm9udG1hdHRlclwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5mcm9udG1hdHRlclwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQuZ2Vtb2ppYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZ2Vtb2ppKCk6IFBsdWdpbjxcIm1kLmdlbW9qaVwiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibWQuZ2Vtb2ppXCIgfVxufVxuXG4vKiogVGhlIGBtZC5jb21wb25lbnRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnQob3B0aW9ucz86IENvbXBvbmVudE9wdGlvbnMpOiBQbHVnaW48XCJtZC5jb21wb25lbnRcIiwgQ29tcG9uZW50T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLmNvbXBvbmVudFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5jb21wb25lbnRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnBhY2thZ2VDb21tYW5kYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZUNvbW1hbmQob3B0aW9ucz86IFBhY2thZ2VDb21tYW5kT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnBhY2thZ2VDb21tYW5kXCIsIFBhY2thZ2VDb21tYW5kT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnBhY2thZ2VDb21tYW5kXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnBhY2thZ2VDb21tYW5kXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5oZWFkaW5nSWRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nSWQob3B0aW9ucz86IEhlYWRpbmdJZE9wdGlvbnMpOiBQbHVnaW48XCJtZC5oZWFkaW5nSWRcIiwgSGVhZGluZ0lkT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLmhlYWRpbmdJZFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5oZWFkaW5nSWRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnBhdGhSZXdyaXRlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aFJld3JpdGUob3B0aW9ucz86IFBhdGhSZXdyaXRlT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnBhdGhSZXdyaXRlXCIsIFBhdGhSZXdyaXRlT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnBhdGhSZXdyaXRlXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnBhdGhSZXdyaXRlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5zdHJpcGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwKG9wdGlvbnM/OiBTdHJpcE9wdGlvbnMpOiBQbHVnaW48XCJtZC5zdHJpcFwiLCBTdHJpcE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpcFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpcFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQudG9jYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gdG9jKG9wdGlvbnM/OiBUb2NPcHRpb25zKTogUGx1Z2luPFwibWQudG9jXCIsIFRvY09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJtZC50b2NcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQudG9jXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBtZC5zdHJpbmdpZnlgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkob3B0aW9ucz86IFN0cmluZ2lmeU9wdGlvbnMpOiBQbHVnaW48XCJtZC5zdHJpbmdpZnlcIiwgU3RyaW5naWZ5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm1kLnN0cmluZ2lmeVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJtZC5zdHJpbmdpZnlcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG1kLnRvSHRtbGAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbChvcHRpb25zPzogVG9IdG1sT3B0aW9ucyk6IFBsdWdpbjxcIm1kLnRvSHRtbFwiLCBUb0h0bWxPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQudG9IdG1sXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm1kLnRvSHRtbFwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbWQudG9OYXR1cmFsTGFuZ3VhZ2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hdHVyYWxMYW5ndWFnZShvcHRpb25zPzogVG9OYXR1cmFsTGFuZ3VhZ2VPcHRpb25zKTogUGx1Z2luPFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiwgVG9OYXR1cmFsTGFuZ3VhZ2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWQudG9OYXR1cmFsTGFuZ3VhZ2VcIiwgb3B0aW9ucyB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import type { Plugin } from "../models/plugin.ts";
2
+ /** `mdx.compile`: hast into a JavaScript module, as @mdx-js/mdx's `compile` makes it; options named as @mdx-js/mdx's `compile` names them. */
3
+ export interface CompileOptions {
4
+ /** Keep JSX in the output instead of compiling it to function calls. @default false */
5
+ jsx?: boolean;
6
+ /** The JSX runtime: `automatic` (default) or `classic`. */
7
+ jsxRuntime?: string | null;
8
+ /** Where the automatic runtime imports `jsx` and `jsxs` from (default `react`). */
9
+ jsxImportSource?: string | null;
10
+ /** The classic runtime's element function (default `React.createElement`). */
11
+ pragma?: string | null;
12
+ /** The classic runtime's fragment (default `React.Fragment`). */
13
+ pragmaFrag?: string | null;
14
+ /** Where the classic runtime imports the pragma's first name from (default `react`). */
15
+ pragmaImportSource?: string | null;
16
+ /** Where `useMDXComponents` is imported from, to take components from a provider. */
17
+ providerImportSource?: string | null;
18
+ /** `program` (default), a module, or `function-body`, the body of a function that gets the runtime as its first argument. */
19
+ outputFormat?: string | null;
20
+ /** How attribute names of HTML elements are cased: `react` (default) or `html`. */
21
+ elementAttributeNameCase?: string | null;
22
+ /** How style property names are cased: `dom` (default) or `css`. */
23
+ stylePropertyNameCase?: string | null;
24
+ /** Turn `align` on table cells into a `textAlign` style (default `true`). */
25
+ tableCellAlignToStyle?: boolean | null;
26
+ }
27
+ /** The `mdx.compile` plugin. */
28
+ export declare function compile(options?: CompileOptions): Plugin<"mdx.compile", CompileOptions>;
@@ -0,0 +1,8 @@
1
+ // Generated by `pnpm generate:bindings` from the crate's plugins; do not edit.
2
+ /** The `mdx.compile` plugin. */
3
+ export function compile(options) {
4
+ if (options === undefined)
5
+ return { name: "mdx.compile" };
6
+ return { name: "mdx.compile", options };
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWR4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZ2VuZXJhdGVkL21keC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrRUFBK0U7QUE4Qi9FLGdDQUFnQztBQUNoQyxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQXdCO0lBQzlDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFBO0lBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgYHBucG0gZ2VuZXJhdGU6YmluZGluZ3NgIGZyb20gdGhlIGNyYXRlJ3MgcGx1Z2luczsgZG8gbm90IGVkaXQuXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYG1keC5jb21waWxlYDogaGFzdCBpbnRvIGEgSmF2YVNjcmlwdCBtb2R1bGUsIGFzIEBtZHgtanMvbWR4J3MgYGNvbXBpbGVgIG1ha2VzIGl0OyBvcHRpb25zIG5hbWVkIGFzIEBtZHgtanMvbWR4J3MgYGNvbXBpbGVgIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBpbGVPcHRpb25zIHtcbiAgLyoqIEtlZXAgSlNYIGluIHRoZSBvdXRwdXQgaW5zdGVhZCBvZiBjb21waWxpbmcgaXQgdG8gZnVuY3Rpb24gY2FsbHMuIEBkZWZhdWx0IGZhbHNlICovXG4gIGpzeD86IGJvb2xlYW5cbiAgLyoqIFRoZSBKU1ggcnVudGltZTogYGF1dG9tYXRpY2AgKGRlZmF1bHQpIG9yIGBjbGFzc2ljYC4gKi9cbiAganN4UnVudGltZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFdoZXJlIHRoZSBhdXRvbWF0aWMgcnVudGltZSBpbXBvcnRzIGBqc3hgIGFuZCBganN4c2AgZnJvbSAoZGVmYXVsdCBgcmVhY3RgKS4gKi9cbiAganN4SW1wb3J0U291cmNlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGNsYXNzaWMgcnVudGltZSdzIGVsZW1lbnQgZnVuY3Rpb24gKGRlZmF1bHQgYFJlYWN0LmNyZWF0ZUVsZW1lbnRgKS4gKi9cbiAgcHJhZ21hPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGNsYXNzaWMgcnVudGltZSdzIGZyYWdtZW50IChkZWZhdWx0IGBSZWFjdC5GcmFnbWVudGApLiAqL1xuICBwcmFnbWFGcmFnPzogc3RyaW5nIHwgbnVsbFxuICAvKiogV2hlcmUgdGhlIGNsYXNzaWMgcnVudGltZSBpbXBvcnRzIHRoZSBwcmFnbWEncyBmaXJzdCBuYW1lIGZyb20gKGRlZmF1bHQgYHJlYWN0YCkuICovXG4gIHByYWdtYUltcG9ydFNvdXJjZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFdoZXJlIGB1c2VNRFhDb21wb25lbnRzYCBpcyBpbXBvcnRlZCBmcm9tLCB0byB0YWtlIGNvbXBvbmVudHMgZnJvbSBhIHByb3ZpZGVyLiAqL1xuICBwcm92aWRlckltcG9ydFNvdXJjZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIGBwcm9ncmFtYCAoZGVmYXVsdCksIGEgbW9kdWxlLCBvciBgZnVuY3Rpb24tYm9keWAsIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gdGhhdCBnZXRzIHRoZSBydW50aW1lIGFzIGl0cyBmaXJzdCBhcmd1bWVudC4gKi9cbiAgb3V0cHV0Rm9ybWF0Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogSG93IGF0dHJpYnV0ZSBuYW1lcyBvZiBIVE1MIGVsZW1lbnRzIGFyZSBjYXNlZDogYHJlYWN0YCAoZGVmYXVsdCkgb3IgYGh0bWxgLiAqL1xuICBlbGVtZW50QXR0cmlidXRlTmFtZUNhc2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBIb3cgc3R5bGUgcHJvcGVydHkgbmFtZXMgYXJlIGNhc2VkOiBgZG9tYCAoZGVmYXVsdCkgb3IgYGNzc2AuICovXG4gIHN0eWxlUHJvcGVydHlOYW1lQ2FzZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFR1cm4gYGFsaWduYCBvbiB0YWJsZSBjZWxscyBpbnRvIGEgYHRleHRBbGlnbmAgc3R5bGUgKGRlZmF1bHQgYHRydWVgKS4gKi9cbiAgdGFibGVDZWxsQWxpZ25Ub1N0eWxlPzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIFRoZSBgbWR4LmNvbXBpbGVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlKG9wdGlvbnM/OiBDb21waWxlT3B0aW9ucyk6IFBsdWdpbjxcIm1keC5jb21waWxlXCIsIENvbXBpbGVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibWR4LmNvbXBpbGVcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibWR4LmNvbXBpbGVcIiwgb3B0aW9ucyB9XG59XG4iXX0=