textlane 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +9 -0
- package/README.md +80 -2
- package/build/actions/addon/resolve.d.ts +7 -0
- package/build/actions/addon/resolve.js +22 -0
- package/build/actions/attacher/check.d.ts +3 -0
- package/build/actions/attacher/check.js +5 -0
- package/build/actions/host/call.d.ts +13 -0
- package/build/actions/host/call.js +47 -0
- package/build/actions/options/merge.d.ts +5 -0
- package/build/actions/options/merge.js +29 -0
- package/build/actions/pluggable/map.d.ts +8 -0
- package/build/actions/pluggable/map.js +29 -0
- package/build/actions/run/finish.d.ts +12 -0
- package/build/actions/run/finish.js +52 -0
- package/build/actions/transformer/check.d.ts +3 -0
- package/build/actions/transformer/check.js +5 -0
- package/build/generated/html.d.ts +250 -0
- package/build/generated/html.js +74 -0
- package/build/generated/md.d.ts +333 -0
- package/build/generated/md.js +94 -0
- package/build/generated/mdx.d.ts +28 -0
- package/build/generated/mdx.js +8 -0
- package/build/generated/nl.d.ts +99 -0
- package/build/generated/nl.js +62 -0
- package/build/index.d.ts +18 -0
- package/build/index.js +27 -0
- package/build/models/addon.d.ts +35 -0
- package/build/models/addon.js +2 -0
- package/build/models/file.d.ts +52 -0
- package/build/models/file.js +2 -0
- package/build/models/host.d.ts +7 -0
- package/build/models/host.js +2 -0
- package/build/models/plugin.d.ts +26 -0
- package/build/models/plugin.js +2 -0
- package/build/models/processor.d.ts +39 -0
- package/build/models/processor.js +154 -0
- package/build/models/vfile.d.ts +52 -0
- package/build/models/vfile.js +164 -0
- package/build/settings.d.ts +14 -0
- package/build/settings.js +17 -0
- package/package.json +36 -3
- package/skills/textlane-usage/SKILL.md +146 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Generated by `pnpm generate:bindings` from the crate's plugins; do not edit.
|
|
2
|
+
/** The `nl.parse` plugin. */
|
|
3
|
+
export function parse(options) {
|
|
4
|
+
if (options === undefined)
|
|
5
|
+
return { name: "nl.parse" };
|
|
6
|
+
return { name: "nl.parse", options };
|
|
7
|
+
}
|
|
8
|
+
/** The `nl.equality` plugin. */
|
|
9
|
+
export function equality(options) {
|
|
10
|
+
if (options === undefined)
|
|
11
|
+
return { name: "nl.equality" };
|
|
12
|
+
return { name: "nl.equality", options };
|
|
13
|
+
}
|
|
14
|
+
/** The `nl.passive` plugin. */
|
|
15
|
+
export function passive(options) {
|
|
16
|
+
if (options === undefined)
|
|
17
|
+
return { name: "nl.passive" };
|
|
18
|
+
return { name: "nl.passive", options };
|
|
19
|
+
}
|
|
20
|
+
/** The `nl.readability` plugin. */
|
|
21
|
+
export function readability(options) {
|
|
22
|
+
if (options === undefined)
|
|
23
|
+
return { name: "nl.readability" };
|
|
24
|
+
return { name: "nl.readability", options };
|
|
25
|
+
}
|
|
26
|
+
/** The `nl.repeatedWords` plugin. */
|
|
27
|
+
export function repeatedWords() {
|
|
28
|
+
return { name: "nl.repeatedWords" };
|
|
29
|
+
}
|
|
30
|
+
/** The `nl.sentenceSpacing` plugin. */
|
|
31
|
+
export function sentenceSpacing(options) {
|
|
32
|
+
if (options === undefined)
|
|
33
|
+
return { name: "nl.sentenceSpacing" };
|
|
34
|
+
return { name: "nl.sentenceSpacing", options };
|
|
35
|
+
}
|
|
36
|
+
/** The `nl.stringify` plugin. */
|
|
37
|
+
export function stringify() {
|
|
38
|
+
return { name: "nl.stringify" };
|
|
39
|
+
}
|
|
40
|
+
/** The `nl.smartypants` plugin. */
|
|
41
|
+
export function smartypants(options) {
|
|
42
|
+
if (options === undefined)
|
|
43
|
+
return { name: "nl.smartypants" };
|
|
44
|
+
return { name: "nl.smartypants", options };
|
|
45
|
+
}
|
|
46
|
+
/** The `nl.quotes` plugin. */
|
|
47
|
+
export function quotes(options) {
|
|
48
|
+
if (options === undefined)
|
|
49
|
+
return { name: "nl.quotes" };
|
|
50
|
+
return { name: "nl.quotes", options };
|
|
51
|
+
}
|
|
52
|
+
/** The `nl.contractions` plugin. */
|
|
53
|
+
export function contractions(options) {
|
|
54
|
+
if (options === undefined)
|
|
55
|
+
return { name: "nl.contractions" };
|
|
56
|
+
return { name: "nl.contractions", options };
|
|
57
|
+
}
|
|
58
|
+
/** The `nl.indefiniteArticle` plugin. */
|
|
59
|
+
export function indefiniteArticle() {
|
|
60
|
+
return { name: "nl.indefiniteArticle" };
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9nZW5lcmF0ZWQvbmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0VBQStFO0FBK0YvRSw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQTtJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QyxDQUFDO0FBRUQsZ0NBQWdDO0FBQ2hDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUE7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDekMsQ0FBQztBQUVELCtCQUErQjtBQUMvQixNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQXdCO0lBQzlDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFBO0lBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3hDLENBQUM7QUFFRCxtQ0FBbUM7QUFDbkMsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFBO0lBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDNUMsQ0FBQztBQUVELHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFDckMsQ0FBQztBQUVELHVDQUF1QztBQUN2QyxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWdDO0lBQzlELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLENBQUE7SUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUNoRCxDQUFDO0FBRUQsaUNBQWlDO0FBQ2pDLE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUE7QUFDakMsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQTRCO0lBQ3RELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDO0FBRUQsOEJBQThCO0FBQzlCLE1BQU0sVUFBVSxNQUFNLENBQUMsT0FBdUI7SUFDNUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDdkMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQTZCO0lBQ3hELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgYHBucG0gZ2VuZXJhdGU6YmluZGluZ3NgIGZyb20gdGhlIGNyYXRlJ3MgcGx1Z2luczsgZG8gbm90IGVkaXQuXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYG5sLnBhcnNlYDogbmF0dXJhbCBsYW5ndWFnZSBpbnRvIG5sY3N0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZU9wdGlvbnMge1xuICAvKiogVGhlIHJ1bGVzIHNlbnRlbmNlcyBhbmQgd29yZHMgYXJlIGZvdW5kIGJ5LiAqL1xuICBsYW5ndWFnZT86IExhbmd1YWdlXG59XG5cbi8qKiBUaGUgbGFuZ3VhZ2UgYG5sLnBhcnNlYCByZWFkczogcGFyc2UtbGF0aW4ncyBydWxlcywgb3IgcGFyc2UtZW5nbGlzaCdzIG9uIHRvcCBvZiB0aGVtLiAqL1xuZXhwb3J0IHR5cGUgTGFuZ3VhZ2UgPSBcImxhdGluXCIgfCBcImVuZ2xpc2hcIlxuXG4vKiogYG5sLmVxdWFsaXR5YDogd2FybmluZ3MgYWJvdXQgaW5zZW5zaXRpdmUsIGluY29uc2lkZXJhdGUgd29yZGluZywgYXMgcmV0ZXh0LWVxdWFsaXR5OyBvcHRpb25zIGFyZSByZXRleHQtZXF1YWxpdHkncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXF1YWxpdHlPcHRpb25zIHtcbiAgLyoqIFBocmFzZXMgbm90IHRvIHdhcm4gYWJvdXQuICovXG4gIGlnbm9yZT86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogV2hldGhlciBhIHBocmFzZSB1c2VkIG5leHQgdG8gaXRzIGNvdW50ZXJwYXJ0IChgaGUgb3Igc2hlYCkgaXMgZmluZS4gKi9cbiAgYmluYXJ5PzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIGBubC5wYXNzaXZlYDogd2FybmluZ3MgYWJvdXQgdGhlIHBhc3NpdmUgdm9pY2UsIGFzIHJldGV4dC1wYXNzaXZlOyBvcHRpb25zIGFyZSByZXRleHQtcGFzc2l2ZSdzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXNzaXZlT3B0aW9ucyB7XG4gIC8qKiBQYXJ0aWNpcGxlcyBub3QgdG8gd2FybiBhYm91dC4gKi9cbiAgaWdub3JlPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBgbmwucmVhZGFiaWxpdHlgOiB3YXJuaW5ncyBhYm91dCBzZW50ZW5jZXMgdG9vIGhhcmQgdG8gcmVhZCwgYXMgcmV0ZXh0LXJlYWRhYmlsaXR5OyBvcHRpb25zIGFyZSByZXRleHQtcmVhZGFiaWxpdHkncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGFiaWxpdHlPcHRpb25zIHtcbiAgLyoqIFRoZSBhZ2Ugb2YgdGhlIHRhcmdldCBhdWRpZW5jZTogMTYgYnkgZGVmYXVsdC4gKi9cbiAgYWdlPzogbnVtYmVyIHwgbnVsbFxuICAvKiogVGhlIHNoYXJlIG9mIGFsZ29yaXRobXMgdGhhdCBtdXN0IGZpbmQgYSBzZW50ZW5jZSB0b28gaGFyZDogNC83IGJ5IGRlZmF1bHQuICovXG4gIHRocmVzaG9sZD86IG51bWJlciB8IG51bGxcbiAgLyoqIFRoZSBmZXdlc3Qgd29yZHMgYSBzZW50ZW5jZSBuZWVkcyB0byBiZSBjaGVja2VkOiA1IGJ5IGRlZmF1bHQuICovXG4gIG1pbldvcmRzPzogbnVtYmVyIHwgbnVsbFxufVxuXG4vKiogYG5sLnNlbnRlbmNlU3BhY2luZ2A6IHdhcm5pbmdzIGFib3V0IHRoZSBzcGFjZXMgYmV0d2VlbiBzZW50ZW5jZXMsIGFzIHJldGV4dC1zZW50ZW5jZS1zcGFjaW5nOyBvcHRpb25zIGFyZSByZXRleHQtc2VudGVuY2Utc3BhY2luZydzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW50ZW5jZVNwYWNpbmdPcHRpb25zIHtcbiAgLyoqIFRoZSBzcGFjaW5nIGV4cGVjdGVkIGJldHdlZW4gc2VudGVuY2VzOiBgMWAgb3IgYFwic3BhY2VcImAgKHRoZSBkZWZhdWx0KSwgYDJgIG9yIGBcImRvdWJsZS1zcGFjZVwiYCwgYDBgIG9yIGBcIm5ld2xpbmVcImAuICovXG4gIHByZWZlcnJlZD86IFNwYWNpbmcgfCBudWxsXG59XG5cbi8qKiBBIHNwYWNpbmcgYmV0d2VlbiBzZW50ZW5jZXMsIGFzIGEgY291bnQgb2Ygc3BhY2VzIG9yIGJ5IG5hbWUuICovXG5leHBvcnQgdHlwZSBTcGFjaW5nID0gbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgbmwuc21hcnR5cGFudHNgOiBzdHJhaWdodCBxdW90ZXMsIGRhc2hlcywgZG90cyBhbmQgYmFja3RpY2tzIGludG8gdHlwb2dyYXBoaWMgb25lczsgb3B0aW9ucyBhcyByZXRleHQtc21hcnR5cGFudHMgdGFrZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnR5cGFudHNPcHRpb25zIHtcbiAgLyoqIFR1cm4gZG91YmxlIGJhY2t0aWNrcyBhbmQgZG91YmxlIHN0cmFpZ2h0IHNpbmdsZSBxdW90ZXMgaW50byBkb3VibGUgcXVvdGVzOyBgYWxsYCB0dXJucyBzaW5nbGUgb25lcyBpbnRvIHNpbmdsZSBxdW90ZXMgdG9vLCBhbmQgbmVlZHMgYHF1b3RlczogZmFsc2VgLiAqL1xuICBiYWNrdGlja3M/OiBCYWNrdGlja3NcbiAgLyoqIFRoZSBjbG9zaW5nIHF1b3RlcyB0byB1c2U6IGDigJ1gIGFuZCBg4oCZYCBieSBkZWZhdWx0LiAqL1xuICBjbG9zaW5nUXVvdGVzPzogUXVvdGVDaGFyYWN0ZXJzIHwgbnVsbFxuICAvKiogVHVybiB0d28gZGFzaGVzIGludG8gYW4gZW0gZGFzaDsgYG9sZHNjaG9vbGAgYW5kIGBpbnZlcnRlZGAgdHJlYXQgdGhyZWUgdG9vLiAqL1xuICBkYXNoZXM/OiBEYXNoZXNcbiAgLyoqIFR1cm4gdGhyZWUgZG90cyBpbnRvIGFuIGVsbGlwc2lzLCB3aXRoIHNwYWNlcyBiZXR3ZWVuIHRoZW0gb3Igd2l0aG91dC4gKi9cbiAgZWxsaXBzZXM/OiBFbGxpcHNlc1xuICAvKiogVGhlIG9wZW5pbmcgcXVvdGVzIHRvIHVzZTogYOKAnGAgYW5kIGDigJhgIGJ5IGRlZmF1bHQuICovXG4gIG9wZW5pbmdRdW90ZXM/OiBRdW90ZUNoYXJhY3RlcnMgfCBudWxsXG4gIC8qKiBUdXJuIHN0cmFpZ2h0IHF1b3RlcyBpbnRvIHNtYXJ0IG9uZXMuIEBkZWZhdWx0IHRydWUgKi9cbiAgcXVvdGVzPzogYm9vbGVhbiB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQmFja3RpY2tzID0gYm9vbGVhbiB8IFwiYWxsXCJcblxuLyoqIFRoZSBxdW90ZSBjaGFyYWN0ZXJzIHRvIHVzZSBmb3IgZG91YmxlIGFuZCBzaW5nbGUgcXVvdGVzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90ZUNoYXJhY3RlcnMge1xuICBkb3VibGU6IHN0cmluZ1xuICBzaW5nbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEYXNoZXMgPSBib29sZWFuIHwgXCJvbGRzY2hvb2xcIiB8IFwiaW52ZXJ0ZWRcIlxuXG5leHBvcnQgdHlwZSBFbGxpcHNlcyA9IGJvb2xlYW4gfCBcInNwYWNlZFwiIHwgXCJ1bnNwYWNlZFwiXG5cbi8qKiBgbmwucXVvdGVzYDogY2hlY2sgdGhhdCBxdW90ZXMgYW5kIGFwb3N0cm9waGVzIGFyZSBzdHJhaWdodCBvciBzbWFydCwgYXMgcHJlZmVycmVkLCBhdCBlYWNoIGxldmVsIG9mIG5lc3Rpbmc7IG9wdGlvbnMgYXMgcmV0ZXh0LXF1b3RlcyB0YWtlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90ZXNPcHRpb25zIHtcbiAgLyoqIFRoZSBzdHlsZSBvZiBxdW90ZXMgYW5kIGFwb3N0cm9waGVzIHRvIHByZWZlcjogYHNtYXJ0YCBieSBkZWZhdWx0LiAqL1xuICBwcmVmZXJyZWQ/OiBRdW90ZVN0eWxlIHwgbnVsbFxuICAvKiogU21hcnQgcXVvdGVzIGJ5IG5lc3RpbmcgbGV2ZWwsIGVhY2ggb25lIGNoYXJhY3RlciBvciBhbiBvcGVuaW5nIGFuZCBjbG9zaW5nIHBhaXI6IGBbXCLigJzigJ1cIiwgXCLigJjigJlcIl1gIGJ5IGRlZmF1bHQuICovXG4gIHNtYXJ0Pzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBTdHJhaWdodCBxdW90ZXMgYnkgbmVzdGluZyBsZXZlbDogYFtcIlxcXCJcIiwgXCInXCJdYCBieSBkZWZhdWx0LiAqL1xuICBzdHJhaWdodD86IHN0cmluZ1tdIHwgbnVsbFxufVxuXG4vKiogQSBzdHlsZSBvZiBxdW90ZXM6IHN0cmFpZ2h0IChgXCJgKSBvciBzbWFydCAoYOKAnOKAnWApLiAqL1xuZXhwb3J0IHR5cGUgUXVvdGVTdHlsZSA9IFwic21hcnRcIiB8IFwic3RyYWlnaHRcIlxuXG4vKiogYG5sLmNvbnRyYWN0aW9uc2A6IGNoZWNrIGFwb3N0cm9waGVzIGluIGNvbnRyYWN0aW9ucywgc3VjaCBhcyBgZG9u4oCZdGA7IG9wdGlvbnMgYXMgcmV0ZXh0LWNvbnRyYWN0aW9ucyB0YWtlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmFjdGlvbnNPcHRpb25zIHtcbiAgLyoqIEFsc28gY2hlY2sgY29udHJhY3Rpb25zIHdyaXR0ZW4gYXMgbGl0ZXJhbHMsIHN1Y2ggYXMgYOKAnGhhc2504oCdYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dMaXRlcmFscz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBFeHBlY3Qgc3RyYWlnaHQgYXBvc3Ryb3BoZXMgKGAnYCkgaW5zdGVhZCBvZiBzbWFydCBvbmVzIChg4oCZYCkuIEBkZWZhdWx0IGZhbHNlICovXG4gIHN0cmFpZ2h0PzogYm9vbGVhbiB8IG51bGxcbn1cblxuLyoqIFRoZSBgbmwucGFyc2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShvcHRpb25zPzogUGFyc2VPcHRpb25zKTogUGx1Z2luPFwibmwucGFyc2VcIiwgUGFyc2VPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibmwucGFyc2VcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG5sLmVxdWFsaXR5YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHkob3B0aW9ucz86IEVxdWFsaXR5T3B0aW9ucyk6IFBsdWdpbjxcIm5sLmVxdWFsaXR5XCIsIEVxdWFsaXR5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLmVxdWFsaXR5XCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLmVxdWFsaXR5XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5wYXNzaXZlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFzc2l2ZShvcHRpb25zPzogUGFzc2l2ZU9wdGlvbnMpOiBQbHVnaW48XCJubC5wYXNzaXZlXCIsIFBhc3NpdmVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwucGFzc2l2ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5wYXNzaXZlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5yZWFkYWJpbGl0eWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRhYmlsaXR5KG9wdGlvbnM/OiBSZWFkYWJpbGl0eU9wdGlvbnMpOiBQbHVnaW48XCJubC5yZWFkYWJpbGl0eVwiLCBSZWFkYWJpbGl0eU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJubC5yZWFkYWJpbGl0eVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5yZWFkYWJpbGl0eVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbmwucmVwZWF0ZWRXb3Jkc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGVhdGVkV29yZHMoKTogUGx1Z2luPFwibmwucmVwZWF0ZWRXb3Jkc1wiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibmwucmVwZWF0ZWRXb3Jkc1wiIH1cbn1cblxuLyoqIFRoZSBgbmwuc2VudGVuY2VTcGFjaW5nYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VTcGFjaW5nKG9wdGlvbnM/OiBTZW50ZW5jZVNwYWNpbmdPcHRpb25zKTogUGx1Z2luPFwibmwuc2VudGVuY2VTcGFjaW5nXCIsIFNlbnRlbmNlU3BhY2luZ09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJubC5zZW50ZW5jZVNwYWNpbmdcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwibmwuc2VudGVuY2VTcGFjaW5nXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5zdHJpbmdpZnlgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkoKTogUGx1Z2luPFwibmwuc3RyaW5naWZ5XCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJubC5zdHJpbmdpZnlcIiB9XG59XG5cbi8qKiBUaGUgYG5sLnNtYXJ0eXBhbnRzYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc21hcnR5cGFudHMob3B0aW9ucz86IFNtYXJ0eXBhbnRzT3B0aW9ucyk6IFBsdWdpbjxcIm5sLnNtYXJ0eXBhbnRzXCIsIFNtYXJ0eXBhbnRzT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLnNtYXJ0eXBhbnRzXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLnNtYXJ0eXBhbnRzXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBubC5xdW90ZXNgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBxdW90ZXMob3B0aW9ucz86IFF1b3Rlc09wdGlvbnMpOiBQbHVnaW48XCJubC5xdW90ZXNcIiwgUXVvdGVzT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcIm5sLnF1b3Rlc1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJubC5xdW90ZXNcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYG5sLmNvbnRyYWN0aW9uc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyYWN0aW9ucyhvcHRpb25zPzogQ29udHJhY3Rpb25zT3B0aW9ucyk6IFBsdWdpbjxcIm5sLmNvbnRyYWN0aW9uc1wiLCBDb250cmFjdGlvbnNPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwibmwuY29udHJhY3Rpb25zXCIgfVxuICByZXR1cm4geyBuYW1lOiBcIm5sLmNvbnRyYWN0aW9uc1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgbmwuaW5kZWZpbml0ZUFydGljbGVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRlZmluaXRlQXJ0aWNsZSgpOiBQbHVnaW48XCJubC5pbmRlZmluaXRlQXJ0aWNsZVwiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwibmwuaW5kZWZpbml0ZUFydGljbGVcIiB9XG59XG4iXX0=
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Processor } from "./models/processor.ts";
|
|
2
|
+
export type { Compatible, Message, MessageOptions, Node, Place, Point, VFile, } from "./models/file.ts";
|
|
3
|
+
export type { Attacher, Pluggable, PluggableList, Plugin, Preset, Transformer, } from "./models/plugin.ts";
|
|
4
|
+
export type { HostFile, HostMessage } from "./models/vfile.ts";
|
|
5
|
+
export { Processor } from "./models/processor.ts";
|
|
6
|
+
/** A new processor: add plugins with `use`, then `process` text. */
|
|
7
|
+
export declare function textlane(): Processor;
|
|
8
|
+
/** The package version, as the native crate reports it. */
|
|
9
|
+
export declare const version: () => string;
|
|
10
|
+
/** The name of every native plugin, as a pipeline names it. */
|
|
11
|
+
export declare const pluginNames: () => string[];
|
|
12
|
+
/** The most memory, in bytes, each thread keeps after a document to reuse for the next. */
|
|
13
|
+
export declare const retainedMemory: () => number;
|
|
14
|
+
/**
|
|
15
|
+
* Cap the memory, in bytes, each thread keeps after a document; `0` keeps none. The
|
|
16
|
+
* default is 256 MB.
|
|
17
|
+
*/
|
|
18
|
+
export declare const setRetainedMemory: (bytes: number) => void;
|
package/build/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { resolveAddon } from "./actions/addon/resolve.js";
|
|
3
|
+
import { Processor } from "./models/processor.js";
|
|
4
|
+
export { Processor } from "./models/processor.js";
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const addon = require(resolveAddon({
|
|
7
|
+
platform: process.platform,
|
|
8
|
+
arch: process.arch,
|
|
9
|
+
env: process.env,
|
|
10
|
+
resolvePackage: specifier => require.resolve(specifier),
|
|
11
|
+
}));
|
|
12
|
+
/** A new processor: add plugins with `use`, then `process` text. */
|
|
13
|
+
export function textlane() {
|
|
14
|
+
return new Processor(new addon.Pipeline());
|
|
15
|
+
}
|
|
16
|
+
/** The package version, as the native crate reports it. */
|
|
17
|
+
export const version = addon.version;
|
|
18
|
+
/** The name of every native plugin, as a pipeline names it. */
|
|
19
|
+
export const pluginNames = addon.pluginNames;
|
|
20
|
+
/** The most memory, in bytes, each thread keeps after a document to reuse for the next. */
|
|
21
|
+
export const retainedMemory = addon.retainedMemory;
|
|
22
|
+
/**
|
|
23
|
+
* Cap the memory, in bytes, each thread keeps after a document; `0` keeps none. The
|
|
24
|
+
* default is 256 MB.
|
|
25
|
+
*/
|
|
26
|
+
export const setRetainedMemory = addon.setRetainedMemory;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFvQmpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUVqRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFFOUMsTUFBTSxLQUFLLEdBQVUsT0FBTyxDQUMxQixZQUFZLENBQUM7SUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7SUFDMUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0lBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztJQUNoQixjQUFjLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztDQUN4RCxDQUFDLENBQ0gsQ0FBQTtBQUVELG9FQUFvRTtBQUNwRSxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7QUFDNUMsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQTtBQUVwQywrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUE7QUFFNUMsMkZBQTJGO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFBO0FBRWxEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIlxuaW1wb3J0IHsgcmVzb2x2ZUFkZG9uIH0gZnJvbSBcIi4vYWN0aW9ucy9hZGRvbi9yZXNvbHZlLnRzXCJcbmltcG9ydCB0eXBlIHsgQWRkb24gfSBmcm9tIFwiLi9tb2RlbHMvYWRkb24udHNcIlxuaW1wb3J0IHsgUHJvY2Vzc29yIH0gZnJvbSBcIi4vbW9kZWxzL3Byb2Nlc3Nvci50c1wiXG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tcGF0aWJsZSxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZU9wdGlvbnMsXG4gIE5vZGUsXG4gIFBsYWNlLFxuICBQb2ludCxcbiAgVkZpbGUsXG59IGZyb20gXCIuL21vZGVscy9maWxlLnRzXCJcbmV4cG9ydCB0eXBlIHtcbiAgQXR0YWNoZXIsXG4gIFBsdWdnYWJsZSxcbiAgUGx1Z2dhYmxlTGlzdCxcbiAgUGx1Z2luLFxuICBQcmVzZXQsXG4gIFRyYW5zZm9ybWVyLFxufSBmcm9tIFwiLi9tb2RlbHMvcGx1Z2luLnRzXCJcbmV4cG9ydCB0eXBlIHsgSG9zdEZpbGUsIEhvc3RNZXNzYWdlIH0gZnJvbSBcIi4vbW9kZWxzL3ZmaWxlLnRzXCJcbmV4cG9ydCB7IFByb2Nlc3NvciB9IGZyb20gXCIuL21vZGVscy9wcm9jZXNzb3IudHNcIlxuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpXG5cbmNvbnN0IGFkZG9uOiBBZGRvbiA9IHJlcXVpcmUoXG4gIHJlc29sdmVBZGRvbih7XG4gICAgcGxhdGZvcm06IHByb2Nlc3MucGxhdGZvcm0sXG4gICAgYXJjaDogcHJvY2Vzcy5hcmNoLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgcmVzb2x2ZVBhY2thZ2U6IHNwZWNpZmllciA9PiByZXF1aXJlLnJlc29sdmUoc3BlY2lmaWVyKSxcbiAgfSksXG4pXG5cbi8qKiBBIG5ldyBwcm9jZXNzb3I6IGFkZCBwbHVnaW5zIHdpdGggYHVzZWAsIHRoZW4gYHByb2Nlc3NgIHRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dGxhbmUoKSB7XG4gIHJldHVybiBuZXcgUHJvY2Vzc29yKG5ldyBhZGRvbi5QaXBlbGluZSgpKVxufVxuXG4vKiogVGhlIHBhY2thZ2UgdmVyc2lvbiwgYXMgdGhlIG5hdGl2ZSBjcmF0ZSByZXBvcnRzIGl0LiAqL1xuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBhZGRvbi52ZXJzaW9uXG5cbi8qKiBUaGUgbmFtZSBvZiBldmVyeSBuYXRpdmUgcGx1Z2luLCBhcyBhIHBpcGVsaW5lIG5hbWVzIGl0LiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbk5hbWVzID0gYWRkb24ucGx1Z2luTmFtZXNcblxuLyoqIFRoZSBtb3N0IG1lbW9yeSwgaW4gYnl0ZXMsIGVhY2ggdGhyZWFkIGtlZXBzIGFmdGVyIGEgZG9jdW1lbnQgdG8gcmV1c2UgZm9yIHRoZSBuZXh0LiAqL1xuZXhwb3J0IGNvbnN0IHJldGFpbmVkTWVtb3J5ID0gYWRkb24ucmV0YWluZWRNZW1vcnlcblxuLyoqXG4gKiBDYXAgdGhlIG1lbW9yeSwgaW4gYnl0ZXMsIGVhY2ggdGhyZWFkIGtlZXBzIGFmdGVyIGEgZG9jdW1lbnQ7IGAwYCBrZWVwcyBub25lLiBUaGVcbiAqIGRlZmF1bHQgaXMgMjU2IE1CLlxuICovXG5leHBvcnQgY29uc3Qgc2V0UmV0YWluZWRNZW1vcnkgPSBhZGRvbi5zZXRSZXRhaW5lZE1lbW9yeVxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Message, Node, VFile } from "./file.ts";
|
|
2
|
+
/** The crate's pipeline as the addon exposes it: values cross as JSON. */
|
|
3
|
+
export interface NativePipeline {
|
|
4
|
+
use(value: unknown, options?: unknown): void;
|
|
5
|
+
data(key?: string): unknown;
|
|
6
|
+
setData(key: string, value: unknown): void;
|
|
7
|
+
replaceData(data: Record<string, unknown>): void;
|
|
8
|
+
freeze(): void;
|
|
9
|
+
parse(text: string): Node;
|
|
10
|
+
run(tree: Node, value?: string): Node;
|
|
11
|
+
runSync(tree: Node, value?: string): Node;
|
|
12
|
+
stringify(tree: Node): string;
|
|
13
|
+
process(text: string): VFile;
|
|
14
|
+
processSync(text: string): VFile;
|
|
15
|
+
hosts(): number[];
|
|
16
|
+
startRun(tree: Node, value: string | undefined, sync: boolean): NativeRun<Node>;
|
|
17
|
+
startProcess(text: string, sync: boolean): NativeRun<VFile>;
|
|
18
|
+
}
|
|
19
|
+
/** A run paused before host plugins until `resume`, then finished with `result`. */
|
|
20
|
+
export interface NativeRun<Result> {
|
|
21
|
+
hosts(): number[];
|
|
22
|
+
tree(): Node;
|
|
23
|
+
value(): string | null;
|
|
24
|
+
messages(): Message[];
|
|
25
|
+
resume(tree: Node, messages: Message[]): void;
|
|
26
|
+
result(): Result;
|
|
27
|
+
}
|
|
28
|
+
/** What the napi addon exports. */
|
|
29
|
+
export interface Addon {
|
|
30
|
+
version(): string;
|
|
31
|
+
pluginNames(): string[];
|
|
32
|
+
retainedMemory(): number;
|
|
33
|
+
setRetainedMemory(bytes: number): void;
|
|
34
|
+
Pipeline: new () => NativePipeline;
|
|
35
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tb2RlbHMvYWRkb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWVzc2FnZSwgTm9kZSwgVkZpbGUgfSBmcm9tIFwiLi9maWxlLnRzXCJcblxuLyoqIFRoZSBjcmF0ZSdzIHBpcGVsaW5lIGFzIHRoZSBhZGRvbiBleHBvc2VzIGl0OiB2YWx1ZXMgY3Jvc3MgYXMgSlNPTi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0aXZlUGlwZWxpbmUge1xuICB1c2UodmFsdWU6IHVua25vd24sIG9wdGlvbnM/OiB1bmtub3duKTogdm9pZFxuICBkYXRhKGtleT86IHN0cmluZyk6IHVua25vd25cbiAgc2V0RGF0YShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkXG4gIHJlcGxhY2VEYXRhKGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZFxuICBmcmVlemUoKTogdm9pZFxuICBwYXJzZSh0ZXh0OiBzdHJpbmcpOiBOb2RlXG4gIHJ1bih0cmVlOiBOb2RlLCB2YWx1ZT86IHN0cmluZyk6IE5vZGVcbiAgcnVuU3luYyh0cmVlOiBOb2RlLCB2YWx1ZT86IHN0cmluZyk6IE5vZGVcbiAgc3RyaW5naWZ5KHRyZWU6IE5vZGUpOiBzdHJpbmdcbiAgcHJvY2Vzcyh0ZXh0OiBzdHJpbmcpOiBWRmlsZVxuICBwcm9jZXNzU3luYyh0ZXh0OiBzdHJpbmcpOiBWRmlsZVxuICBob3N0cygpOiBudW1iZXJbXVxuICBzdGFydFJ1bih0cmVlOiBOb2RlLCB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBzeW5jOiBib29sZWFuKTogTmF0aXZlUnVuPE5vZGU+XG4gIHN0YXJ0UHJvY2Vzcyh0ZXh0OiBzdHJpbmcsIHN5bmM6IGJvb2xlYW4pOiBOYXRpdmVSdW48VkZpbGU+XG59XG5cbi8qKiBBIHJ1biBwYXVzZWQgYmVmb3JlIGhvc3QgcGx1Z2lucyB1bnRpbCBgcmVzdW1lYCwgdGhlbiBmaW5pc2hlZCB3aXRoIGByZXN1bHRgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXRpdmVSdW48UmVzdWx0PiB7XG4gIGhvc3RzKCk6IG51bWJlcltdXG4gIHRyZWUoKTogTm9kZVxuICB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsXG4gIG1lc3NhZ2VzKCk6IE1lc3NhZ2VbXVxuICByZXN1bWUodHJlZTogTm9kZSwgbWVzc2FnZXM6IE1lc3NhZ2VbXSk6IHZvaWRcbiAgcmVzdWx0KCk6IFJlc3VsdFxufVxuXG4vKiogV2hhdCB0aGUgbmFwaSBhZGRvbiBleHBvcnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRvbiB7XG4gIHZlcnNpb24oKTogc3RyaW5nXG4gIHBsdWdpbk5hbWVzKCk6IHN0cmluZ1tdXG4gIHJldGFpbmVkTWVtb3J5KCk6IG51bWJlclxuICBzZXRSZXRhaW5lZE1lbW9yeShieXRlczogbnVtYmVyKTogdm9pZFxuICBQaXBlbGluZTogbmV3ICgpID0+IE5hdGl2ZVBpcGVsaW5lXG59XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** A unist node as JSON: what `parse` returns and `run` and `stringify` take. */
|
|
2
|
+
export interface Node {
|
|
3
|
+
type: string;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}
|
|
6
|
+
/** One place in a file: a 1-indexed line and column and a 0-indexed offset, when known. */
|
|
7
|
+
export interface Point {
|
|
8
|
+
line: number;
|
|
9
|
+
column: number;
|
|
10
|
+
offset: number | null;
|
|
11
|
+
}
|
|
12
|
+
/** A diagnostic a plugin reported, as vfile-message has it. */
|
|
13
|
+
export interface Message {
|
|
14
|
+
reason: string;
|
|
15
|
+
ruleId: string | null;
|
|
16
|
+
source: string | null;
|
|
17
|
+
place: {
|
|
18
|
+
start: Point;
|
|
19
|
+
end: Point;
|
|
20
|
+
} | null;
|
|
21
|
+
}
|
|
22
|
+
/** What `process` gives back, as a vfile: the output, the messages and the file's data. */
|
|
23
|
+
export interface VFile {
|
|
24
|
+
value: string;
|
|
25
|
+
messages: Message[];
|
|
26
|
+
data: Record<string, unknown>;
|
|
27
|
+
path?: string;
|
|
28
|
+
}
|
|
29
|
+
/** A document: its text, or a file holding it as `value`, with its path when known. */
|
|
30
|
+
export type Compatible = string | {
|
|
31
|
+
value: string;
|
|
32
|
+
path?: string;
|
|
33
|
+
};
|
|
34
|
+
/** Where a message is: a point, a position, or a node holding one. */
|
|
35
|
+
export type Place = {
|
|
36
|
+
line: number;
|
|
37
|
+
column: number;
|
|
38
|
+
offset?: number | null;
|
|
39
|
+
} | {
|
|
40
|
+
start: Point;
|
|
41
|
+
end: Point;
|
|
42
|
+
} | {
|
|
43
|
+
position?: unknown;
|
|
44
|
+
};
|
|
45
|
+
/** What `message` takes besides the reason, as vfile-message names it. */
|
|
46
|
+
export interface MessageOptions {
|
|
47
|
+
ancestors?: unknown[];
|
|
48
|
+
cause?: unknown;
|
|
49
|
+
place?: Place;
|
|
50
|
+
ruleId?: string;
|
|
51
|
+
source?: string;
|
|
52
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQSB1bmlzdCBub2RlIGFzIEpTT046IHdoYXQgYHBhcnNlYCByZXR1cm5zIGFuZCBgcnVuYCBhbmQgYHN0cmluZ2lmeWAgdGFrZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZSB7XG4gIHR5cGU6IHN0cmluZ1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duXG59XG5cbi8qKiBPbmUgcGxhY2UgaW4gYSBmaWxlOiBhIDEtaW5kZXhlZCBsaW5lIGFuZCBjb2x1bW4gYW5kIGEgMC1pbmRleGVkIG9mZnNldCwgd2hlbiBrbm93bi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xuICBsaW5lOiBudW1iZXJcbiAgY29sdW1uOiBudW1iZXJcbiAgb2Zmc2V0OiBudW1iZXIgfCBudWxsXG59XG5cbi8qKiBBIGRpYWdub3N0aWMgYSBwbHVnaW4gcmVwb3J0ZWQsIGFzIHZmaWxlLW1lc3NhZ2UgaGFzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIHtcbiAgcmVhc29uOiBzdHJpbmdcbiAgcnVsZUlkOiBzdHJpbmcgfCBudWxsXG4gIHNvdXJjZTogc3RyaW5nIHwgbnVsbFxuICBwbGFjZTogeyBzdGFydDogUG9pbnQ7IGVuZDogUG9pbnQgfSB8IG51bGxcbn1cblxuLyoqIFdoYXQgYHByb2Nlc3NgIGdpdmVzIGJhY2ssIGFzIGEgdmZpbGU6IHRoZSBvdXRwdXQsIHRoZSBtZXNzYWdlcyBhbmQgdGhlIGZpbGUncyBkYXRhLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWRmlsZSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbWVzc2FnZXM6IE1lc3NhZ2VbXVxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBwYXRoPzogc3RyaW5nXG59XG5cbi8qKiBBIGRvY3VtZW50OiBpdHMgdGV4dCwgb3IgYSBmaWxlIGhvbGRpbmcgaXQgYXMgYHZhbHVlYCwgd2l0aCBpdHMgcGF0aCB3aGVuIGtub3duLiAqL1xuZXhwb3J0IHR5cGUgQ29tcGF0aWJsZSA9IHN0cmluZyB8IHsgdmFsdWU6IHN0cmluZzsgcGF0aD86IHN0cmluZyB9XG5cbi8qKiBXaGVyZSBhIG1lc3NhZ2UgaXM6IGEgcG9pbnQsIGEgcG9zaXRpb24sIG9yIGEgbm9kZSBob2xkaW5nIG9uZS4gKi9cbmV4cG9ydCB0eXBlIFBsYWNlID1cbiAgfCB7IGxpbmU6IG51bWJlcjsgY29sdW1uOiBudW1iZXI7IG9mZnNldD86IG51bWJlciB8IG51bGwgfVxuICB8IHsgc3RhcnQ6IFBvaW50OyBlbmQ6IFBvaW50IH1cbiAgfCB7IHBvc2l0aW9uPzogdW5rbm93biB9XG5cbi8qKiBXaGF0IGBtZXNzYWdlYCB0YWtlcyBiZXNpZGVzIHRoZSByZWFzb24sIGFzIHZmaWxlLW1lc3NhZ2UgbmFtZXMgaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VPcHRpb25zIHtcbiAgYW5jZXN0b3JzPzogdW5rbm93bltdXG4gIGNhdXNlPzogdW5rbm93blxuICBwbGFjZT86IFBsYWNlXG4gIHJ1bGVJZD86IHN0cmluZ1xuICBzb3VyY2U/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Attacher, Transformer } from "./plugin.ts";
|
|
2
|
+
/** A JavaScript plugin a processor uses: its attacher, options and, once attached, its transformer. */
|
|
3
|
+
export interface Host {
|
|
4
|
+
attacher: Attacher;
|
|
5
|
+
parameters: unknown[];
|
|
6
|
+
transformer?: Transformer;
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVscy9ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF0dGFjaGVyLCBUcmFuc2Zvcm1lciB9IGZyb20gXCIuL3BsdWdpbi50c1wiXG5cbi8qKiBBIEphdmFTY3JpcHQgcGx1Z2luIGEgcHJvY2Vzc29yIHVzZXM6IGl0cyBhdHRhY2hlciwgb3B0aW9ucyBhbmQsIG9uY2UgYXR0YWNoZWQsIGl0cyB0cmFuc2Zvcm1lci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdCB7XG4gIGF0dGFjaGVyOiBBdHRhY2hlclxuICBwYXJhbWV0ZXJzOiB1bmtub3duW11cbiAgdHJhbnNmb3JtZXI/OiBUcmFuc2Zvcm1lclxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Node } from "./file.ts";
|
|
2
|
+
import type { HostFile } from "./vfile.ts";
|
|
3
|
+
/** A native plugin as a pipeline names it, with its options when given. */
|
|
4
|
+
export interface Plugin<Name extends string = string, Options = unknown> {
|
|
5
|
+
name: Name;
|
|
6
|
+
options?: Options;
|
|
7
|
+
}
|
|
8
|
+
/** Plugins and the settings they share, as unified's presets. */
|
|
9
|
+
export interface Preset {
|
|
10
|
+
plugins?: PluggableList;
|
|
11
|
+
settings?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A JavaScript plugin, as unified's attachers: called with the processor as `this` and its
|
|
15
|
+
* options when the processor freezes, it returns the transformer the pipeline runs.
|
|
16
|
+
*/
|
|
17
|
+
export type Attacher = (this: never, ...parameters: never[]) => unknown;
|
|
18
|
+
/**
|
|
19
|
+
* What an attacher returns: it changes the tree in place or returns a new one, directly,
|
|
20
|
+
* through a promise or through `next`.
|
|
21
|
+
*/
|
|
22
|
+
export type Transformer = (tree: Node, file: HostFile, next: (error?: unknown, tree?: Node) => void) => unknown;
|
|
23
|
+
/** A plugin, by descriptor, name or attacher, with options, or a preset. */
|
|
24
|
+
export type Pluggable = Plugin | string | Attacher | [Plugin | string | Attacher, unknown?] | Preset;
|
|
25
|
+
/** Several pluggables, used in order. */
|
|
26
|
+
export type PluggableList = Pluggable[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOb2RlIH0gZnJvbSBcIi4vZmlsZS50c1wiXG5pbXBvcnQgdHlwZSB7IEhvc3RGaWxlIH0gZnJvbSBcIi4vdmZpbGUudHNcIlxuXG4vKiogQSBuYXRpdmUgcGx1Z2luIGFzIGEgcGlwZWxpbmUgbmFtZXMgaXQsIHdpdGggaXRzIG9wdGlvbnMgd2hlbiBnaXZlbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIE9wdGlvbnMgPSB1bmtub3duPiB7XG4gIG5hbWU6IE5hbWVcbiAgb3B0aW9ucz86IE9wdGlvbnNcbn1cblxuLyoqIFBsdWdpbnMgYW5kIHRoZSBzZXR0aW5ncyB0aGV5IHNoYXJlLCBhcyB1bmlmaWVkJ3MgcHJlc2V0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2V0IHtcbiAgcGx1Z2lucz86IFBsdWdnYWJsZUxpc3RcbiAgc2V0dGluZ3M/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxufVxuXG4vKipcbiAqIEEgSmF2YVNjcmlwdCBwbHVnaW4sIGFzIHVuaWZpZWQncyBhdHRhY2hlcnM6IGNhbGxlZCB3aXRoIHRoZSBwcm9jZXNzb3IgYXMgYHRoaXNgIGFuZCBpdHNcbiAqIG9wdGlvbnMgd2hlbiB0aGUgcHJvY2Vzc29yIGZyZWV6ZXMsIGl0IHJldHVybnMgdGhlIHRyYW5zZm9ybWVyIHRoZSBwaXBlbGluZSBydW5zLlxuICovXG5leHBvcnQgdHlwZSBBdHRhY2hlciA9ICh0aGlzOiBuZXZlciwgLi4ucGFyYW1ldGVyczogbmV2ZXJbXSkgPT4gdW5rbm93blxuXG4vKipcbiAqIFdoYXQgYW4gYXR0YWNoZXIgcmV0dXJuczogaXQgY2hhbmdlcyB0aGUgdHJlZSBpbiBwbGFjZSBvciByZXR1cm5zIGEgbmV3IG9uZSwgZGlyZWN0bHksXG4gKiB0aHJvdWdoIGEgcHJvbWlzZSBvciB0aHJvdWdoIGBuZXh0YC5cbiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNmb3JtZXIgPSAoXG4gIHRyZWU6IE5vZGUsXG4gIGZpbGU6IEhvc3RGaWxlLFxuICBuZXh0OiAoZXJyb3I/OiB1bmtub3duLCB0cmVlPzogTm9kZSkgPT4gdm9pZCxcbikgPT4gdW5rbm93blxuXG4vKiogQSBwbHVnaW4sIGJ5IGRlc2NyaXB0b3IsIG5hbWUgb3IgYXR0YWNoZXIsIHdpdGggb3B0aW9ucywgb3IgYSBwcmVzZXQuICovXG5leHBvcnQgdHlwZSBQbHVnZ2FibGUgPVxuICB8IFBsdWdpblxuICB8IHN0cmluZ1xuICB8IEF0dGFjaGVyXG4gIHwgW1BsdWdpbiB8IHN0cmluZyB8IEF0dGFjaGVyLCB1bmtub3duP11cbiAgfCBQcmVzZXRcblxuLyoqIFNldmVyYWwgcGx1Z2dhYmxlcywgdXNlZCBpbiBvcmRlci4gKi9cbmV4cG9ydCB0eXBlIFBsdWdnYWJsZUxpc3QgPSBQbHVnZ2FibGVbXVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { NativePipeline } from "./addon.ts";
|
|
2
|
+
import type { Compatible, Node, VFile } from "./file.ts";
|
|
3
|
+
import type { Pluggable, PluggableList, Preset } from "./plugin.ts";
|
|
4
|
+
/**
|
|
5
|
+
* unified's processor over the native pipeline; every call is the crate's, except that
|
|
6
|
+
* JavaScript plugins run here when a run pauses before them.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Processor {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(native: NativePipeline);
|
|
11
|
+
/**
|
|
12
|
+
* Add a plugin, a list of them or a preset; a plugin used again is reconfigured. A
|
|
13
|
+
* JavaScript plugin is an attacher, called with the processor and its options at freeze.
|
|
14
|
+
*/
|
|
15
|
+
use(value: Pluggable | PluggableList | Preset | null | undefined, ...options: unknown[]): this;
|
|
16
|
+
/** All data, or the value under `key`. */
|
|
17
|
+
data(): Record<string, unknown>;
|
|
18
|
+
data(key: string): unknown;
|
|
19
|
+
/** Set the value under `key`, or replace all data. */
|
|
20
|
+
data(key: string, value: unknown): this;
|
|
21
|
+
data(dataset: Record<string, unknown>): this;
|
|
22
|
+
/** Attach every plugin; later `use` and `data` setters fail. */
|
|
23
|
+
freeze(): this;
|
|
24
|
+
/** Parse a document into a tree. */
|
|
25
|
+
parse(document: Compatible): Node;
|
|
26
|
+
/**
|
|
27
|
+
* Run the transforms, finishing asynchronous stages; `file`, the text `tree` was parsed
|
|
28
|
+
* from, lets bridges read it and keeps positions in the result.
|
|
29
|
+
*/
|
|
30
|
+
run(tree: Node, file?: Compatible): Promise<Node>;
|
|
31
|
+
/** Run the transforms; fails with `async-in-sync` on an asynchronous stage. */
|
|
32
|
+
runSync(tree: Node, file?: Compatible): Node;
|
|
33
|
+
/** Compile a tree, running no transform. */
|
|
34
|
+
stringify(tree: Node): string;
|
|
35
|
+
/** Parse, run and compile a document, finishing asynchronous stages. */
|
|
36
|
+
process(document: Compatible): Promise<VFile>;
|
|
37
|
+
/** Parse, run and compile a document; fails with `async-in-sync` on an asynchronous stage. */
|
|
38
|
+
processSync(document: Compatible): VFile;
|
|
39
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { isAttacher } from "../actions/attacher/check.js";
|
|
2
|
+
import { isPlainObject, mergeOptions } from "../actions/options/merge.js";
|
|
3
|
+
import { mapPluggable } from "../actions/pluggable/map.js";
|
|
4
|
+
import { finishRun } from "../actions/run/finish.js";
|
|
5
|
+
import { isTransformer } from "../actions/transformer/check.js";
|
|
6
|
+
import { HostFile } from "./vfile.js";
|
|
7
|
+
/**
|
|
8
|
+
* unified's processor over the native pipeline; every call is the crate's, except that
|
|
9
|
+
* JavaScript plugins run here when a run pauses before them.
|
|
10
|
+
*/
|
|
11
|
+
export class Processor {
|
|
12
|
+
#native;
|
|
13
|
+
#ids = new Map();
|
|
14
|
+
#hosts = new Map();
|
|
15
|
+
#attached = false;
|
|
16
|
+
constructor(native) {
|
|
17
|
+
this.#native = native;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Add a plugin, a list of them or a preset; a plugin used again is reconfigured. A
|
|
21
|
+
* JavaScript plugin is an attacher, called with the processor and its options at freeze.
|
|
22
|
+
*/
|
|
23
|
+
use(value, ...options) {
|
|
24
|
+
if (isAttacher(value)) {
|
|
25
|
+
this.#native.use([this.#register(value, options)]);
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
const register = (attacher, parameters) => this.#register(attacher, parameters);
|
|
29
|
+
this.#native.use(mapPluggable(value ?? null, register), options[0]);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
data(key, ...value) {
|
|
33
|
+
if (typeof key === "object") {
|
|
34
|
+
this.#native.replaceData(key);
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
if (key !== undefined && value.length > 0) {
|
|
38
|
+
this.#native.setData(key, value[0]);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
return this.#native.data(key);
|
|
42
|
+
}
|
|
43
|
+
/** Attach every plugin; later `use` and `data` setters fail. */
|
|
44
|
+
freeze() {
|
|
45
|
+
this.#attach();
|
|
46
|
+
this.#native.freeze();
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/** Parse a document into a tree. */
|
|
50
|
+
parse(document) {
|
|
51
|
+
this.#attach();
|
|
52
|
+
return this.#native.parse(readValue(document) ?? "");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Run the transforms, finishing asynchronous stages; `file`, the text `tree` was parsed
|
|
56
|
+
* from, lets bridges read it and keeps positions in the result.
|
|
57
|
+
*/
|
|
58
|
+
async run(tree, file) {
|
|
59
|
+
const value = readValue(file);
|
|
60
|
+
if (!this.#attach())
|
|
61
|
+
return this.#native.run(tree, value);
|
|
62
|
+
const run = this.#native.startRun(tree, value, false);
|
|
63
|
+
const host = new HostFile({ value, path: readPath(file) });
|
|
64
|
+
await finishRun({ run, hosts: this.#hosts, file: host, sync: false, call: "run" });
|
|
65
|
+
return run.result();
|
|
66
|
+
}
|
|
67
|
+
/** Run the transforms; fails with `async-in-sync` on an asynchronous stage. */
|
|
68
|
+
runSync(tree, file) {
|
|
69
|
+
const value = readValue(file);
|
|
70
|
+
if (!this.#attach())
|
|
71
|
+
return this.#native.runSync(tree, value);
|
|
72
|
+
const run = this.#native.startRun(tree, value, true);
|
|
73
|
+
const host = new HostFile({ value, path: readPath(file) });
|
|
74
|
+
void finishRun({ run, hosts: this.#hosts, file: host, sync: true, call: "run" });
|
|
75
|
+
return run.result();
|
|
76
|
+
}
|
|
77
|
+
/** Compile a tree, running no transform. */
|
|
78
|
+
stringify(tree) {
|
|
79
|
+
this.#attach();
|
|
80
|
+
return this.#native.stringify(tree);
|
|
81
|
+
}
|
|
82
|
+
/** Parse, run and compile a document, finishing asynchronous stages. */
|
|
83
|
+
async process(document) {
|
|
84
|
+
const text = readValue(document) ?? "";
|
|
85
|
+
if (!this.#attach())
|
|
86
|
+
return withPath(this.#native.process(text), document);
|
|
87
|
+
const run = this.#native.startProcess(text, false);
|
|
88
|
+
const file = new HostFile({ value: run.value() ?? text, path: readPath(document) });
|
|
89
|
+
await finishRun({ run, hosts: this.#hosts, file, sync: false, call: "process" });
|
|
90
|
+
return withPath(mergeData(run.result(), file.data), document);
|
|
91
|
+
}
|
|
92
|
+
/** Parse, run and compile a document; fails with `async-in-sync` on an asynchronous stage. */
|
|
93
|
+
processSync(document) {
|
|
94
|
+
const text = readValue(document) ?? "";
|
|
95
|
+
if (!this.#attach())
|
|
96
|
+
return withPath(this.#native.processSync(text), document);
|
|
97
|
+
const run = this.#native.startProcess(text, true);
|
|
98
|
+
const file = new HostFile({ value: run.value() ?? text, path: readPath(document) });
|
|
99
|
+
void finishRun({ run, hosts: this.#hosts, file, sync: true, call: "process" });
|
|
100
|
+
return withPath(mergeData(run.result(), file.data), document);
|
|
101
|
+
}
|
|
102
|
+
// unified's addPlugin: the same attacher is one plugin, its object options merged
|
|
103
|
+
#register(attacher, parameters) {
|
|
104
|
+
let id = this.#ids.get(attacher);
|
|
105
|
+
if (id === undefined) {
|
|
106
|
+
id = this.#ids.size;
|
|
107
|
+
this.#ids.set(attacher, id);
|
|
108
|
+
this.#hosts.set(id, { attacher, parameters });
|
|
109
|
+
return [{ host: id }, parameters[0] !== false];
|
|
110
|
+
}
|
|
111
|
+
const host = this.#hosts.get(id);
|
|
112
|
+
if (!host || parameters.length === 0)
|
|
113
|
+
return [{ host: id }];
|
|
114
|
+
const [primary, ...rest] = parameters;
|
|
115
|
+
const merged = isPlainObject(host.parameters[0]) && isPlainObject(primary)
|
|
116
|
+
? mergeOptions(host.parameters[0], primary)
|
|
117
|
+
: primary;
|
|
118
|
+
host.parameters = [merged, ...rest];
|
|
119
|
+
return [{ host: id }, merged !== false];
|
|
120
|
+
}
|
|
121
|
+
// Attachers run once, before the native pipeline freezes, so they can still set data;
|
|
122
|
+
// whether any JavaScript plugin is on decides if runs pause for them
|
|
123
|
+
#attach() {
|
|
124
|
+
if (!this.#attached) {
|
|
125
|
+
this.#attached = true;
|
|
126
|
+
for (const id of this.#native.hosts()) {
|
|
127
|
+
const host = this.#hosts.get(id);
|
|
128
|
+
if (!host)
|
|
129
|
+
continue;
|
|
130
|
+
const [primary, ...rest] = host.parameters;
|
|
131
|
+
const parameters = primary === true ? [undefined, ...rest] : host.parameters;
|
|
132
|
+
const transformer = Reflect.apply(host.attacher, this, parameters);
|
|
133
|
+
if (isTransformer(transformer))
|
|
134
|
+
host.transformer = transformer;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return this.#native.hosts().length > 0;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function readValue(file) {
|
|
141
|
+
return typeof file === "string" ? file : file?.value;
|
|
142
|
+
}
|
|
143
|
+
function readPath(file) {
|
|
144
|
+
return typeof file === "string" ? undefined : file?.path;
|
|
145
|
+
}
|
|
146
|
+
// Native stages' data first, then what JavaScript plugins stored over it
|
|
147
|
+
function mergeData(result, data) {
|
|
148
|
+
return { ...result, data: { ...result.data, ...data } };
|
|
149
|
+
}
|
|
150
|
+
function withPath(file, document) {
|
|
151
|
+
const path = readPath(document);
|
|
152
|
+
return path === undefined ? file : { ...file, path };
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbW9kZWxzL3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN6RSxPQUFPLEVBQWtCLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFLL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sU0FBUztJQUNwQixPQUFPLENBQWdCO0lBQ3ZCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtJQUNsQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWdCLENBQUE7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUVqQixZQUFZLE1BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQ0QsS0FBNEQsRUFDNUQsR0FBRyxPQUFrQjtRQUVyQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2xELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLENBQUMsUUFBa0IsRUFBRSxVQUFxQixFQUFFLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUs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RSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFBO0FBQ3pELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxJQUFXLEVBQUUsUUFBb0I7SUFDakQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9CLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFBO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0F0dGFjaGVyIH0gZnJvbSBcIi4uL2FjdGlvbnMvYXR0YWNoZXIvY2hlY2sudHNcIlxuaW1wb3J0IHsgaXNQbGFpbk9iamVjdCwgbWVyZ2VPcHRpb25zIH0gZnJvbSBcIi4uL2FjdGlvbnMvb3B0aW9ucy9tZXJnZS50c1wiXG5pbXBvcnQgeyB0eXBlIEhvc3RFbnRyeSwgbWFwUGx1Z2dhYmxlIH0gZnJvbSBcIi4uL2FjdGlvbnMvcGx1Z2dhYmxlL21hcC50c1wiXG5pbXBvcnQgeyBmaW5pc2hSdW4gfSBmcm9tIFwiLi4vYWN0aW9ucy9ydW4vZmluaXNoLnRzXCJcbmltcG9ydCB7IGlzVHJhbnNmb3JtZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy90cmFuc2Zvcm1lci9jaGVjay50c1wiXG5pbXBvcnQgdHlwZSB7IE5hdGl2ZVBpcGVsaW5lIH0gZnJvbSBcIi4vYWRkb24udHNcIlxuaW1wb3J0IHR5cGUgeyBDb21wYXRpYmxlLCBOb2RlLCBWRmlsZSB9IGZyb20gXCIuL2ZpbGUudHNcIlxuaW1wb3J0IHR5cGUgeyBIb3N0IH0gZnJvbSBcIi4vaG9zdC50c1wiXG5pbXBvcnQgdHlwZSB7IEF0dGFjaGVyLCBQbHVnZ2FibGUsIFBsdWdnYWJsZUxpc3QsIFByZXNldCB9IGZyb20gXCIuL3BsdWdpbi50c1wiXG5pbXBvcnQgeyBIb3N0RmlsZSB9IGZyb20gXCIuL3ZmaWxlLnRzXCJcblxuLyoqXG4gKiB1bmlmaWVkJ3MgcHJvY2Vzc29yIG92ZXIgdGhlIG5hdGl2ZSBwaXBlbGluZTsgZXZlcnkgY2FsbCBpcyB0aGUgY3JhdGUncywgZXhjZXB0IHRoYXRcbiAqIEphdmFTY3JpcHQgcGx1Z2lucyBydW4gaGVyZSB3aGVuIGEgcnVuIHBhdXNlcyBiZWZvcmUgdGhlbS5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb2Nlc3NvciB7XG4gICNuYXRpdmU6IE5hdGl2ZVBpcGVsaW5lXG4gICNpZHMgPSBuZXcgTWFwPEF0dGFjaGVyLCBudW1iZXI+KClcbiAgI2hvc3RzID0gbmV3IE1hcDxudW1iZXIsIEhvc3Q+KClcbiAgI2F0dGFjaGVkID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihuYXRpdmU6IE5hdGl2ZVBpcGVsaW5lKSB7XG4gICAgdGhpcy4jbmF0aXZlID0gbmF0aXZlXG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcGx1Z2luLCBhIGxpc3Qgb2YgdGhlbSBvciBhIHByZXNldDsgYSBwbHVnaW4gdXNlZCBhZ2FpbiBpcyByZWNvbmZpZ3VyZWQuIEFcbiAgICogSmF2YVNjcmlwdCBwbHVnaW4gaXMgYW4gYXR0YWNoZXIsIGNhbGxlZCB3aXRoIHRoZSBwcm9jZXNzb3IgYW5kIGl0cyBvcHRpb25zIGF0IGZyZWV6ZS5cbiAgICovXG4gIHVzZShcbiAgICB2YWx1ZTogUGx1Z2dhYmxlIHwgUGx1Z2dhYmxlTGlzdCB8IFByZXNldCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgLi4ub3B0aW9uczogdW5rbm93bltdXG4gICkge1xuICAgIGlmIChpc0F0dGFjaGVyKHZhbHVlKSkge1xuICAgICAgdGhpcy4jbmF0aXZlLnVzZShbdGhpcy4jcmVnaXN0ZXIodmFsdWUsIG9wdGlvbnMpXSlcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGNvbnN0IHJlZ2lzdGVyID0gKGF0dGFjaGVyOiBBdHRhY2hlciwgcGFyYW1ldGVyczogdW5rbm93bltdKSA9PlxuICAgICAgdGhpcy4jcmVnaXN0ZXIoYXR0YWNoZXIsIHBhcmFtZXRlcnMpXG4gICAgdGhpcy4jbmF0aXZlLnVzZShtYXBQbHVnZ2FibGUodmFsdWUgPz8gbnVsbCwgcmVnaXN0ZXIpLCBvcHRpb25zWzBdKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKiogQWxsIGRhdGEsIG9yIHRoZSB2YWx1ZSB1bmRlciBga2V5YC4gKi9cbiAgZGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBkYXRhKGtleTogc3RyaW5nKTogdW5rbm93blxuICAvKiogU2V0IHRoZSB2YWx1ZSB1bmRlciBga2V5YCwgb3IgcmVwbGFjZSBhbGwgZGF0YS4gKi9cbiAgZGF0YShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB0aGlzXG4gIGRhdGEoZGF0YXNldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB0aGlzXG4gIGRhdGEoa2V5Pzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIC4uLnZhbHVlOiB1bmtub3duW10pIHtcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgdGhpcy4jbmF0aXZlLnJlcGxhY2VEYXRhKGtleSlcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLiNuYXRpdmUuc2V0RGF0YShrZXksIHZhbHVlWzBdKVxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5kYXRhKGtleSlcbiAgfVxuXG4gIC8qKiBBdHRhY2ggZXZlcnkgcGx1Z2luOyBsYXRlciBgdXNlYCBhbmQgYGRhdGFgIHNldHRlcnMgZmFpbC4gKi9cbiAgZnJlZXplKCkge1xuICAgIHRoaXMuI2F0dGFjaCgpXG4gICAgdGhpcy4jbmF0aXZlLmZyZWV6ZSgpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKiBQYXJzZSBhIGRvY3VtZW50IGludG8gYSB0cmVlLiAqL1xuICBwYXJzZShkb2N1bWVudDogQ29tcGF0aWJsZSkge1xuICAgIHRoaXMuI2F0dGFjaCgpXG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5wYXJzZShyZWFkVmFsdWUoZG9jdW1lbnQpID8/IFwiXCIpXG4gIH1cblxuICAvKipcbiAgICogUnVuIHRoZSB0cmFuc2Zvcm1zLCBmaW5pc2hpbmcgYXN5bmNocm9ub3VzIHN0YWdlczsgYGZpbGVgLCB0aGUgdGV4dCBgdHJlZWAgd2FzIHBhcnNlZFxuICAgKiBmcm9tLCBsZXRzIGJyaWRnZXMgcmVhZCBpdCBhbmQga2VlcHMgcG9zaXRpb25zIGluIHRoZSByZXN1bHQuXG4gICAqL1xuICBhc3luYyBydW4odHJlZTogTm9kZSwgZmlsZT86IENvbXBhdGlibGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlYWRWYWx1ZShmaWxlKVxuICAgIGlmICghdGhpcy4jYXR0YWNoKCkpIHJldHVybiB0aGlzLiNuYXRpdmUucnVuKHRyZWUsIHZhbHVlKVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFJ1bih0cmVlLCB2YWx1ZSwgZmFsc2UpXG4gICAgY29uc3QgaG9zdCA9IG5ldyBIb3N0RmlsZSh7IHZhbHVlLCBwYXRoOiByZWFkUGF0aChmaWxlKSB9KVxuICAgIGF3YWl0IGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlOiBob3N0LCBzeW5jOiBmYWxzZSwgY2FsbDogXCJydW5cIiB9KVxuICAgIHJldHVybiBydW4ucmVzdWx0KClcbiAgfVxuXG4gIC8qKiBSdW4gdGhlIHRyYW5zZm9ybXM7IGZhaWxzIHdpdGggYGFzeW5jLWluLXN5bmNgIG9uIGFuIGFzeW5jaHJvbm91cyBzdGFnZS4gKi9cbiAgcnVuU3luYyh0cmVlOiBOb2RlLCBmaWxlPzogQ29tcGF0aWJsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gcmVhZFZhbHVlKGZpbGUpXG4gICAgaWYgKCF0aGlzLiNhdHRhY2goKSkgcmV0dXJuIHRoaXMuI25hdGl2ZS5ydW5TeW5jKHRyZWUsIHZhbHVlKVxuICAgIGNvbnN0IHJ1biA9IHRoaXMuI25hdGl2ZS5zdGFydFJ1bih0cmVlLCB2YWx1ZSwgdHJ1ZSlcbiAgICBjb25zdCBob3N0ID0gbmV3IEhvc3RGaWxlKHsgdmFsdWUsIHBhdGg6IHJlYWRQYXRoKGZpbGUpIH0pXG4gICAgdm9pZCBmaW5pc2hSdW4oeyBydW4sIGhvc3RzOiB0aGlzLiNob3N0cywgZmlsZTogaG9zdCwgc3luYzogdHJ1ZSwgY2FsbDogXCJydW5cIiB9KVxuICAgIHJldHVybiBydW4ucmVzdWx0KClcbiAgfVxuXG4gIC8qKiBDb21waWxlIGEgdHJlZSwgcnVubmluZyBubyB0cmFuc2Zvcm0uICovXG4gIHN0cmluZ2lmeSh0cmVlOiBOb2RlKSB7XG4gICAgdGhpcy4jYXR0YWNoKClcbiAgICByZXR1cm4gdGhpcy4jbmF0aXZlLnN0cmluZ2lmeSh0cmVlKVxuICB9XG5cbiAgLyoqIFBhcnNlLCBydW4gYW5kIGNvbXBpbGUgYSBkb2N1bWVudCwgZmluaXNoaW5nIGFzeW5jaHJvbm91cyBzdGFnZXMuICovXG4gIGFzeW5jIHByb2Nlc3MoZG9jdW1lbnQ6IENvbXBhdGlibGUpOiBQcm9taXNlPFZGaWxlPiB7XG4gICAgY29uc3QgdGV4dCA9IHJlYWRWYWx1ZShkb2N1bWVudCkgPz8gXCJcIlxuICAgIGlmICghdGhpcy4jYXR0YWNoKCkpIHJldHVybiB3aXRoUGF0aCh0aGlzLiNuYXRpdmUucHJvY2Vzcyh0ZXh0KSwgZG9jdW1lbnQpXG4gICAgY29uc3QgcnVuID0gdGhpcy4jbmF0aXZlLnN0YXJ0UHJvY2Vzcyh0ZXh0LCBmYWxzZSlcbiAgICBjb25zdCBmaWxlID0gbmV3IEhvc3RGaWxlKHsgdmFsdWU6IHJ1bi52YWx1ZSgpID8/IHRleHQsIHBhdGg6IHJlYWRQYXRoKGRvY3VtZW50KSB9KVxuICAgIGF3YWl0IGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlLCBzeW5jOiBmYWxzZSwgY2FsbDogXCJwcm9jZXNzXCIgfSlcbiAgICByZXR1cm4gd2l0aFBhdGgobWVyZ2VEYXRhKHJ1bi5yZXN1bHQoKSwgZmlsZS5kYXRhKSwgZG9jdW1lbnQpXG4gIH1cblxuICAvKiogUGFyc2UsIHJ1biBhbmQgY29tcGlsZSBhIGRvY3VtZW50OyBmYWlscyB3aXRoIGBhc3luYy1pbi1zeW5jYCBvbiBhbiBhc3luY2hyb25vdXMgc3RhZ2UuICovXG4gIHByb2Nlc3NTeW5jKGRvY3VtZW50OiBDb21wYXRpYmxlKTogVkZpbGUge1xuICAgIGNvbnN0IHRleHQgPSByZWFkVmFsdWUoZG9jdW1lbnQpID8/IFwiXCJcbiAgICBpZiAoIXRoaXMuI2F0dGFjaCgpKSByZXR1cm4gd2l0aFBhdGgodGhpcy4jbmF0aXZlLnByb2Nlc3NTeW5jKHRleHQpLCBkb2N1bWVudClcbiAgICBjb25zdCBydW4gPSB0aGlzLiNuYXRpdmUuc3RhcnRQcm9jZXNzKHRleHQsIHRydWUpXG4gICAgY29uc3QgZmlsZSA9IG5ldyBIb3N0RmlsZSh7IHZhbHVlOiBydW4udmFsdWUoKSA/PyB0ZXh0LCBwYXRoOiByZWFkUGF0aChkb2N1bWVudCkgfSlcbiAgICB2b2lkIGZpbmlzaFJ1bih7IHJ1biwgaG9zdHM6IHRoaXMuI2hvc3RzLCBmaWxlLCBzeW5jOiB0cnVlLCBjYWxsOiBcInByb2Nlc3NcIiB9KVxuICAgIHJldHVybiB3aXRoUGF0aChtZXJnZURhdGEocnVuLnJlc3VsdCgpLCBmaWxlLmRhdGEpLCBkb2N1bWVudClcbiAgfVxuXG4gIC8vIHVuaWZpZWQncyBhZGRQbHVnaW46IHRoZSBzYW1lIGF0dGFjaGVyIGlzIG9uZSBwbHVnaW4sIGl0cyBvYmplY3Qgb3B0aW9ucyBtZXJnZWRcbiAgI3JlZ2lzdGVyKGF0dGFjaGVyOiBBdHRhY2hlciwgcGFyYW1ldGVyczogdW5rbm93bltdKTogSG9zdEVudHJ5IHtcbiAgICBsZXQgaWQgPSB0aGlzLiNpZHMuZ2V0KGF0dGFjaGVyKVxuICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZCA9IHRoaXMuI2lkcy5zaXplXG4gICAgICB0aGlzLiNpZHMuc2V0KGF0dGFjaGVyLCBpZClcbiAgICAgIHRoaXMuI2hvc3RzLnNldChpZCwgeyBhdHRhY2hlciwgcGFyYW1ldGVycyB9KVxuICAgICAgcmV0dXJuIFt7IGhvc3Q6IGlkIH0sIHBhcmFtZXRlcnNbMF0gIT09IGZhbHNlXVxuICAgIH1cbiAgICBjb25zdCBob3N0ID0gdGhpcy4jaG9zdHMuZ2V0KGlkKVxuICAgIGlmICghaG9zdCB8fCBwYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFt7IGhvc3Q6IGlkIH1dXG4gICAgY29uc3QgW3ByaW1hcnksIC4uLnJlc3RdID0gcGFyYW1ldGVyc1xuICAgIGNvbnN0IG1lcmdlZCA9XG4gICAgICBpc1BsYWluT2JqZWN0KGhvc3QucGFyYW1ldGVyc1swXSkgJiYgaXNQbGFpbk9iamVjdChwcmltYXJ5KVxuICAgICAgICA/IG1lcmdlT3B0aW9ucyhob3N0LnBhcmFtZXRlcnNbMF0sIHByaW1hcnkpXG4gICAgICAgIDogcHJpbWFyeVxuICAgIGhvc3QucGFyYW1ldGVycyA9IFttZXJnZWQsIC4uLnJlc3RdXG4gICAgcmV0dXJuIFt7IGhvc3Q6IGlkIH0sIG1lcmdlZCAhPT0gZmFsc2VdXG4gIH1cblxuICAvLyBBdHRhY2hlcnMgcnVuIG9uY2UsIGJlZm9yZSB0aGUgbmF0aXZlIHBpcGVsaW5lIGZyZWV6ZXMsIHNvIHRoZXkgY2FuIHN0aWxsIHNldCBkYXRhO1xuICAvLyB3aGV0aGVyIGFueSBKYXZhU2NyaXB0IHBsdWdpbiBpcyBvbiBkZWNpZGVzIGlmIHJ1bnMgcGF1c2UgZm9yIHRoZW1cbiAgI2F0dGFjaCgpIHtcbiAgICBpZiAoIXRoaXMuI2F0dGFjaGVkKSB7XG4gICAgICB0aGlzLiNhdHRhY2hlZCA9IHRydWVcbiAgICAgIGZvciAoY29uc3QgaWQgb2YgdGhpcy4jbmF0aXZlLmhvc3RzKCkpIHtcbiAgICAgICAgY29uc3QgaG9zdCA9IHRoaXMuI2hvc3RzLmdldChpZClcbiAgICAgICAgaWYgKCFob3N0KSBjb250aW51ZVxuICAgICAgICBjb25zdCBbcHJpbWFyeSwgLi4ucmVzdF0gPSBob3N0LnBhcmFtZXRlcnNcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHByaW1hcnkgPT09IHRydWUgPyBbdW5kZWZpbmVkLCAuLi5yZXN0XSA6IGhvc3QucGFyYW1ldGVyc1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lcjogdW5rbm93biA9IFJlZmxlY3QuYXBwbHkoaG9zdC5hdHRhY2hlciwgdGhpcywgcGFyYW1ldGVycylcbiAgICAgICAgaWYgKGlzVHJhbnNmb3JtZXIodHJhbnNmb3JtZXIpKSBob3N0LnRyYW5zZm9ybWVyID0gdHJhbnNmb3JtZXJcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI25hdGl2ZS5ob3N0cygpLmxlbmd0aCA+IDBcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkVmFsdWUoZmlsZTogQ29tcGF0aWJsZSB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gdHlwZW9mIGZpbGUgPT09IFwic3RyaW5nXCIgPyBmaWxlIDogZmlsZT8udmFsdWVcbn1cblxuZnVuY3Rpb24gcmVhZFBhdGgoZmlsZTogQ29tcGF0aWJsZSB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gdHlwZW9mIGZpbGUgPT09IFwic3RyaW5nXCIgPyB1bmRlZmluZWQgOiBmaWxlPy5wYXRoXG59XG5cbi8vIE5hdGl2ZSBzdGFnZXMnIGRhdGEgZmlyc3QsIHRoZW4gd2hhdCBKYXZhU2NyaXB0IHBsdWdpbnMgc3RvcmVkIG92ZXIgaXRcbmZ1bmN0aW9uIG1lcmdlRGF0YShyZXN1bHQ6IFZGaWxlLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFZGaWxlIHtcbiAgcmV0dXJuIHsgLi4ucmVzdWx0LCBkYXRhOiB7IC4uLnJlc3VsdC5kYXRhLCAuLi5kYXRhIH0gfVxufVxuXG5mdW5jdGlvbiB3aXRoUGF0aChmaWxlOiBWRmlsZSwgZG9jdW1lbnQ6IENvbXBhdGlibGUpIHtcbiAgY29uc3QgcGF0aCA9IHJlYWRQYXRoKGRvY3VtZW50KVxuICByZXR1cm4gcGF0aCA9PT0gdW5kZWZpbmVkID8gZmlsZSA6IHsgLi4uZmlsZSwgcGF0aCB9XG59XG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Message, MessageOptions, Place } from "./file.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The file a JavaScript plugin gets, as a vfile: the document, its path, data and messages.
|
|
4
|
+
* Only what plugins report here reaches the result; native stages report there directly.
|
|
5
|
+
*/
|
|
6
|
+
export declare class HostFile {
|
|
7
|
+
value: string | undefined;
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
messages: HostMessage[];
|
|
10
|
+
history: string[];
|
|
11
|
+
cwd: string;
|
|
12
|
+
constructor(options: {
|
|
13
|
+
value?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
});
|
|
16
|
+
/** The current path; setting it adds to `history`. */
|
|
17
|
+
get path(): string | undefined;
|
|
18
|
+
set path(path: string | undefined);
|
|
19
|
+
get dirname(): string | undefined;
|
|
20
|
+
get basename(): string | undefined;
|
|
21
|
+
get extname(): string | undefined;
|
|
22
|
+
get stem(): string | undefined;
|
|
23
|
+
/** Report a warning against the file, as vfile's `message`; `origin` is `source:ruleId`. */
|
|
24
|
+
message(reason: string | Error, options?: MessageOptions | Place | null, origin?: string): HostMessage;
|
|
25
|
+
/** Report a note against the file, neither a warning nor an error. */
|
|
26
|
+
info(reason: string | Error, options?: MessageOptions | Place | null, origin?: string): HostMessage;
|
|
27
|
+
/** Report an error against the file and throw it. */
|
|
28
|
+
fail(reason: string | Error, options?: MessageOptions | Place | null, origin?: string): never;
|
|
29
|
+
toString(): string;
|
|
30
|
+
}
|
|
31
|
+
/** A diagnostic a JavaScript plugin reported, as vfile-message has it. */
|
|
32
|
+
export declare class HostMessage extends Error {
|
|
33
|
+
reason: string;
|
|
34
|
+
ruleId: string | null;
|
|
35
|
+
source: string | null;
|
|
36
|
+
place: Message["place"];
|
|
37
|
+
line: number | undefined;
|
|
38
|
+
column: number | undefined;
|
|
39
|
+
fatal: boolean | null | undefined;
|
|
40
|
+
file: string;
|
|
41
|
+
ancestors: unknown[] | undefined;
|
|
42
|
+
cause: unknown;
|
|
43
|
+
actual: string | undefined;
|
|
44
|
+
expected: string[] | undefined;
|
|
45
|
+
url: string | undefined;
|
|
46
|
+
note: string | undefined;
|
|
47
|
+
constructor(reason: string | Error, options?: MessageOptions | Place | null, origin?: string);
|
|
48
|
+
/** A message a native stage reported, as the file's other messages are. */
|
|
49
|
+
static fromMessage(message: Message, path: string | undefined): HostMessage;
|
|
50
|
+
/** The message as it crosses into the crate. */
|
|
51
|
+
toJSON(): Message;
|
|
52
|
+
}
|