@astryxdesign/core 0.6.2-canary.2acc24f → 0.6.2-canary.400998f

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 (39) hide show
  1. package/dist/Markdown/Markdown.fr23.bench.js +14 -112
  2. package/dist/Markdown/Markdown.fr23.sampling.d.ts +2 -0
  3. package/dist/Markdown/Markdown.fr23.sampling.d.ts.map +1 -0
  4. package/dist/Markdown/Markdown.fr23.sampling.js +43 -0
  5. package/dist/Markdown/ast.d.ts +1 -1
  6. package/dist/Markdown/ast.js +1 -1
  7. package/dist/Markdown/index.d.ts +2 -2
  8. package/dist/Markdown/index.d.ts.map +1 -1
  9. package/dist/Markdown/index.js +2 -2
  10. package/dist/Markdown/parser/index.d.ts +10 -0
  11. package/dist/Markdown/parser/index.d.ts.map +1 -0
  12. package/dist/Markdown/parser/index.js +10 -0
  13. package/dist/Markdown/parser.d.ts +26 -4
  14. package/dist/Markdown/parser.d.ts.map +1 -1
  15. package/dist/Markdown/parser.js +30 -7
  16. package/dist/Markdown/plugins/frontmatter.d.ts +32 -0
  17. package/dist/Markdown/plugins/frontmatter.d.ts.map +1 -0
  18. package/dist/Markdown/plugins/frontmatter.js +132 -0
  19. package/dist/Markdown/plugins/index.d.ts +2 -0
  20. package/dist/Markdown/plugins/index.d.ts.map +1 -1
  21. package/dist/Markdown/plugins/index.js +2 -1
  22. package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
  23. package/dist/Outline/parseOutlineFromMarkdown.js +2 -2
  24. package/package.json +8 -3
  25. package/src/Markdown/Markdown.doc.mjs +50 -0
  26. package/src/Markdown/Markdown.fr23.bench.ts +14 -128
  27. package/src/Markdown/Markdown.fr23.perf.test.ts +45 -7
  28. package/src/Markdown/Markdown.fr23.sampling.ts +49 -0
  29. package/src/Markdown/Markdown.spec.md +50 -17
  30. package/src/Markdown/ast.ts +1 -1
  31. package/src/Markdown/index.ts +3 -1
  32. package/src/Markdown/parser/index.ts +64 -0
  33. package/src/Markdown/parser.public.test.ts +103 -0
  34. package/src/Markdown/parser.ts +70 -7
  35. package/src/Markdown/plugins/frontmatter.test.tsx +125 -0
  36. package/src/Markdown/plugins/frontmatter.ts +198 -0
  37. package/src/Markdown/plugins/index.ts +6 -0
  38. package/src/Markdown/plugins/protocol.test.tsx +71 -1
  39. package/src/Outline/parseOutlineFromMarkdown.ts +6 -2
@@ -7,27 +7,22 @@
7
7
  * @position Benchmark body for Markdown.fr23.perf.test.ts; not a test itself
8
8
  *
9
9
  * Run as its own process, one measurement at a time, by
10
- * `Markdown.fr23.perf.test.ts`. Nothing else may execute here: the ratio is
11
- * sensitive both to other work competing for the machine and to engine state
12
- * left behind by other plugin configurations in the same process, and this
13
- * file exists so neither can reach it.
10
+ * `Markdown.fr23.perf.test.ts`. The fresh process isolates engine state left
11
+ * behind by other plugin configurations. The harness must also run separately
12
+ * from other tests: a child process still shares machine resources, and CPU
13
+ * time does not remove cache or memory-bandwidth contention.
14
14
  *
15
15
  * The timed region is exactly the spec's protocol — ten untimed warmups,
16
16
  * then nine alternating paired rounds averaging 20 iterations a side,
17
17
  * reported as the median of the nine paired ratios — against the omitted
18
- * baseline, for a stable list and a recreated equivalent one.
18
+ * baseline, for a stable list and a recreated equivalent one. Each ratio
19
+ * comes from one sample, never a selection by the fastest baseline.
19
20
  *
20
- * That protocol is run under a validity gate. A paired design cancels a
21
- * machine that is uniformly slow, but not one that deschedules the two
22
- * sides unequally, and this process can still be sharing cores with the
23
- * test runner that spawned it. So each attempt also records how much the
24
- * BASELINE's own per-round time moved: when the same work varies by more
25
- * than a few percent across the attempt, the machine was not holding still
26
- * and the attempt is discarded and retried, not averaged in. The accepted
27
- * figure is one untouched run of the spec's statistic; only invalid
28
- * attempts are dropped, and exhausting them fails loudly.
21
+ * The harness retries a fresh process only when the A/A control is invalid.
22
+ * A helper-overhead failure is never retried to obtain a passing sample.
29
23
  */
30
24
 
25
+ import { measureMarkdownPairedRatio } from "./Markdown.fr23.sampling.js";
31
26
  import { parseMarkdown } from "./parser.js";
32
27
  import { createMarkdownPlugin } from "./plugins/index.js";
33
28
  import { createMarkdownFenceTransform } from "./plugins/semanticFence.js";
@@ -41,98 +36,6 @@ function benchmarkDocument(sections) {
41
36
  length: sections
42
37
  }, (_, index) => [`## Section ${index}`, '', `AST-${index} belongs to @{owner-${index}} with TODO follow-up.`, '', `- First item ${index}`, '- Second item', '', `> Quoted detail ${index}`, '', '| Item | Detail |', '| --- | --- |', `| ${index} | ordinary prose |`, '', '```text', `opaque ${index}`, '```'].join('\n')).join('\n\n');
43
38
  }
44
- function median(values) {
45
- const sorted = [...values].sort((left, right) => left - right);
46
- return sorted[Math.floor(sorted.length / 2)];
47
- }
48
-
49
- /**
50
- * The CPU time this process spent on 20 iterations, in microseconds.
51
- *
52
- * CPU time, not wall clock: this process can be sharing cores with the test
53
- * runner that spawned it, and a wall clock counts the milliseconds it spent
54
- * descheduled as if the work had taken them. It does not distribute that
55
- * penalty evenly between the two sides of a paired round either, which is
56
- * exactly the error the pairing is supposed to remove. CPU time counts only
57
- * cycles actually spent on this work, so the ratio reports the helpers
58
- * whether or not the machine is busy.
59
- */
60
- function measureAverage(callback) {
61
- const start = process.cpuUsage();
62
- for (let iteration = 0; iteration < 20; iteration++) {
63
- benchmarkSink ^= callback();
64
- }
65
- const used = process.cpuUsage(start);
66
- return (used.user + used.system) / 20;
67
- }
68
- /** Ten untimed warmups, then the median of nine alternating paired rounds. */
69
- function pairedMedianRatio(baseline, candidate) {
70
- for (let warmup = 0; warmup < 10; warmup++) {
71
- benchmarkSink ^= baseline();
72
- benchmarkSink ^= candidate();
73
- }
74
- const ratios = [];
75
- const baselineTimes = [];
76
- for (let round = 0; round < 9; round++) {
77
- const baselineFirst = round % 2 === 0;
78
- const first = measureAverage(baselineFirst ? baseline : candidate);
79
- const second = measureAverage(baselineFirst ? candidate : baseline);
80
- const baselineTime = baselineFirst ? first : second;
81
- const candidateTime = baselineFirst ? second : first;
82
- baselineTimes.push(baselineTime);
83
- ratios.push(candidateTime / baselineTime);
84
- }
85
- void benchmarkSink;
86
- return {
87
- ratio: median(ratios),
88
- baselineCost: median(baselineTimes)
89
- };
90
- }
91
-
92
- /** Sleeps without spinning, so a busy machine can finish what it is doing. */
93
- function pause(milliseconds) {
94
- Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, milliseconds);
95
- }
96
-
97
- /**
98
- * The spec's statistic, taken from the least-contended attempt.
99
- *
100
- * Each attempt is one untouched run of the protocol — ten warmups, one
101
- * nine-pair median — and nothing is averaged across them. What varies
102
- * between attempts is only how much of the machine this process had, and
103
- * `baselineCost` measures exactly that: the same baseline work, timed the
104
- * same way, independent of anything the helpers do. Taking the attempt with
105
- * the cheapest baseline therefore picks the run least disturbed by whatever
106
- * else the box was doing, without touching the statistic itself.
107
- *
108
- * CPU time already removes descheduling, but not cache and memory-bandwidth
109
- * pressure from a neighbour, which lands hardest on whichever side of the
110
- * pair touches more memory. That is the residue this selection removes.
111
- */
112
- function leastContendedRatio(baseline, candidate) {
113
- let best;
114
- for (let attempt = 0; attempt < 5; attempt++) {
115
- const measured = pairedMedianRatio(baseline, candidate);
116
- if (best === undefined || measured.baselineCost < best.baselineCost) {
117
- best = measured;
118
- }
119
- pause(250);
120
- }
121
- return best.ratio;
122
- }
123
-
124
- /**
125
- * The same protocol with the SAME work on both sides.
126
- *
127
- * An A/A run has no overhead to find, so whatever it reports above 1.0 is
128
- * the measurement's own error on this machine right now. It is the honest
129
- * way to tell a helper regression from a busy box: without it, a contended
130
- * run blames the helpers for time they never spent. The result bounds what
131
- * any A/B number here can be trusted to resolve.
132
- */
133
- function controlRatio(baseline) {
134
- return leastContendedRatio(baseline, baseline);
135
- }
136
39
 
137
40
  /** Matches a prose identifier in every fixture section. */
138
41
  const identifierPlugin = createMarkdownPlugin({
@@ -224,13 +127,12 @@ function measure(sections) {
224
127
  plugins: [...representative]
225
128
  }).length;
226
129
  primePipeline([empty, withStableList, withRecreatedList]);
227
- // The control is taken first: it is the cheapest way to learn the machine
228
- // cannot measure, and taking it before the pair keeps it from being the
229
- // one attempt that happened to land in a quiet moment.
230
- const control = controlRatio(empty);
130
+ // The A/A control measures identical work. Only a failed control can
131
+ // invalidate this sample; neither helper ratio participates in selection.
132
+ const control = measureMarkdownPairedRatio(empty, empty);
231
133
  return {
232
- stable: leastContendedRatio(empty, withStableList),
233
- recreated: leastContendedRatio(empty, withRecreatedList),
134
+ stable: measureMarkdownPairedRatio(empty, withStableList),
135
+ recreated: measureMarkdownPairedRatio(empty, withRecreatedList),
234
136
  control
235
137
  };
236
138
  }
@@ -0,0 +1,2 @@
1
+ export declare function measureMarkdownPairedRatio(baseline: () => number, candidate: () => number, now?: () => number): number;
2
+ //# sourceMappingURL=Markdown.fr23.sampling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.fr23.sampling.d.ts","sourceRoot":"","sources":["../../src/Markdown/Markdown.fr23.sampling.ts"],"names":[],"mappings":"AAmBA,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,MAAM,EACtB,SAAS,EAAE,MAAM,MAAM,EACvB,GAAG,GAAE,MAAM,MAAgB,GAC1B,MAAM,CAyBR"}
@@ -0,0 +1,43 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file Markdown.fr23.sampling.ts
5
+ * @input Baseline/candidate callbacks and a microsecond CPU clock
6
+ * @output The FR23 paired-median ratio
7
+ * @position Test-only sampling for Markdown.fr23.bench.ts
8
+ */
9
+
10
+ function cpuTime() {
11
+ const used = process.cpuUsage();
12
+ return used.user + used.system;
13
+ }
14
+ function median(values) {
15
+ const sorted = [...values].sort((left, right) => left - right);
16
+ return sorted[Math.floor(sorted.length / 2)];
17
+ }
18
+ export function measureMarkdownPairedRatio(baseline, candidate, now = cpuTime) {
19
+ let sink = 0;
20
+ const average = callback => {
21
+ const start = now();
22
+ for (let iteration = 0; iteration < 20; iteration++) {
23
+ sink ^= callback();
24
+ }
25
+ return (now() - start) / 20;
26
+ };
27
+ for (let warmup = 0; warmup < 10; warmup++) {
28
+ sink ^= baseline();
29
+ sink ^= candidate();
30
+ }
31
+ const ratios = [];
32
+ for (let round = 0; round < 9; round++) {
33
+ const baselineFirst = round % 2 === 0;
34
+ const first = average(baselineFirst ? baseline : candidate);
35
+ const second = average(baselineFirst ? candidate : baseline);
36
+ const baselineTime = baselineFirst ? first : second;
37
+ const candidateTime = baselineFirst ? second : first;
38
+ ratios.push(candidateTime / baselineTime);
39
+ }
40
+ void sink;
41
+ // Selecting a sample by its cheapest baseline also selects denominator noise.
42
+ return median(ratios);
43
+ }
@@ -2,7 +2,7 @@
2
2
  * @file ast.ts
3
3
  * @input Parsed Markdown structure and optional Astryx extension nodes
4
4
  * @output Canonical immutable MDAST-aligned Markdown node types and text projection
5
- * @position Internal canonical Markdown tree shared by parsing, rendering, and Outline
5
+ * @position Public canonical Markdown tree shared by parsing, transforms, rendering, and Outline
6
6
  */
7
7
  export type MarkdownAstDataValue = null | boolean | number | string | ReadonlyArray<MarkdownAstDataValue> | {
8
8
  readonly [key: string]: MarkdownAstDataValue;
@@ -4,7 +4,7 @@
4
4
  * @file ast.ts
5
5
  * @input Parsed Markdown structure and optional Astryx extension nodes
6
6
  * @output Canonical immutable MDAST-aligned Markdown node types and text projection
7
- * @position Internal canonical Markdown tree shared by parsing, rendering, and Outline
7
+ * @position Public canonical Markdown tree shared by parsing, transforms, rendering, and Outline
8
8
  */
9
9
 
10
10
  const markdownAstLegacyCodeLanguage = Symbol('MarkdownAstLegacyCodeLanguage');
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * @file index.ts
3
- * @output Exports Markdown component, parser functions, and types
3
+ * @output Exports Markdown component, canonical and compatibility parser functions, and types
4
4
  * @position Component entry point; re-exported by /packages/core/src/index.ts
5
5
  */
6
6
  export { visitMarkdownNodes } from './ast';
7
7
  export type { MarkdownAstPoint, MarkdownAstDataValue, MarkdownAstPosition, MarkdownAstNodeBase, MarkdownAstExtensionNode, MarkdownAstText, MarkdownAstInlineCode, MarkdownAstInlineMath, MarkdownAstLink, MarkdownAstImage, MarkdownAstCitation, MarkdownAstBreak, MarkdownAstPhrasingContent, MarkdownAstHeading, MarkdownAstParagraph, MarkdownAstCode, MarkdownAstMath, MarkdownAstBlockquote, MarkdownAstList, MarkdownAstListItem, MarkdownAstTable, MarkdownAstTableRow, MarkdownAstTableCell, MarkdownAstThematicBreak, MarkdownAstBlockContent, MarkdownAstRoot, MarkdownAstNodeMap, MarkdownAstNode, } from './ast';
8
8
  export { Markdown } from './Markdown';
9
9
  export type { MarkdownProps, MarkdownSource, MarkdownComponents, MarkdownInlinePlugin, } from './Markdown';
10
- export { parseMarkdown, parseMarkdownIncremental, createIncrementalState, parseInline, } from './parser';
10
+ export { parseMarkdown, parseMarkdownAst, parseMarkdownIncremental, createIncrementalState, parseInline, parseInlineAst, } from './parser';
11
11
  export type { BlockNode, BlockNodeWithMath, MathBlockNode, InlineNode, InlineNodeWithMath, MathInlineNode, SourceRange, ListItemNode, TableCellNode, TableAlignment, ParseOptions, MathParseOptions, IncrementalParseOptions, IncrementalMathParseOptions, IncrementalState as IncrementalParseState, } from './parser';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Markdown/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAC,kBAAkB,EAAC,MAAM,OAAO,CAAC;AACzC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Markdown/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAC,kBAAkB,EAAC,MAAM,OAAO,CAAC;AACzC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,UAAU,CAAC"}
@@ -4,9 +4,9 @@
4
4
 
5
5
  /**
6
6
  * @file index.ts
7
- * @output Exports Markdown component, parser functions, and types
7
+ * @output Exports Markdown component, canonical and compatibility parser functions, and types
8
8
  * @position Component entry point; re-exported by /packages/core/src/index.ts
9
9
  */
10
10
  export { visitMarkdownNodes } from "./ast.js";
11
11
  export { Markdown } from "./Markdown.js";
12
- export { parseMarkdown, parseMarkdownIncremental, createIncrementalState, parseInline } from "./parser.js";
12
+ export { parseMarkdown, parseMarkdownAst, parseMarkdownIncremental, createIncrementalState, parseInline, parseInlineAst } from "./parser.js";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @file index.ts
3
+ * @input Markdown source and public parser options
4
+ * @output Server-safe legacy and canonical Markdown parser entry points and types
5
+ * @position Public subpath entry point: `@astryxdesign/core/Markdown/parser`
6
+ */
7
+ export { createIncrementalState, parseInline, parseInlineAst, parseMarkdown, parseMarkdownAst, parseMarkdownIncremental, } from '../parser';
8
+ export type { BlockNode, BlockNodeWithMath, MathBlockNode, InlineNode, InlineNodeWithMath, MathInlineNode, SourceRange, ListItemNode, TableCellNode, TableAlignment, ParseOptions, MathParseOptions, IncrementalParseOptions, IncrementalMathParseOptions, IncrementalState as IncrementalParseState, } from '../parser';
9
+ export type { MarkdownAstPoint, MarkdownAstDataValue, MarkdownAstPosition, MarkdownAstNodeBase, MarkdownAstExtensionNode, MarkdownAstText, MarkdownAstInlineCode, MarkdownAstInlineMath, MarkdownAstLink, MarkdownAstImage, MarkdownAstCitation, MarkdownAstBreak, MarkdownAstPhrasingContent, MarkdownAstHeading, MarkdownAstParagraph, MarkdownAstCode, MarkdownAstMath, MarkdownAstBlockquote, MarkdownAstList, MarkdownAstListItem, MarkdownAstTable, MarkdownAstTableRow, MarkdownAstTableCell, MarkdownAstThematicBreak, MarkdownAstBlockContent, MarkdownAstRoot, MarkdownAstNodeMap, MarkdownAstNode, } from '../ast';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Markdown/parser/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,10 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file index.ts
5
+ * @input Markdown source and public parser options
6
+ * @output Server-safe legacy and canonical Markdown parser entry points and types
7
+ * @position Public subpath entry point: `@astryxdesign/core/Markdown/parser`
8
+ */
9
+
10
+ export { createIncrementalState, parseInline, parseInlineAst, parseMarkdown, parseMarkdownAst, parseMarkdownIncremental } from "../parser.js";
@@ -259,8 +259,18 @@ export declare function parseInline<const Plugins extends ReadonlyArray<Markdown
259
259
  export declare function parseInline<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(text: string, options: MathParseOptionsWithoutPlugins & {
260
260
  plugins: Plugins;
261
261
  }): InlineNodeWithMath<MarkdownExtensionsOf<Plugins>>[];
262
- /** @internal Canonical inline parse used by Markdown rendering. */
263
- export declare function parseInlineAst(text: string, arg?: ReadonlySet<string> | RuntimeParseOptions): MarkdownAstPhrasingContent<RuntimeExtensionNode>[];
262
+ /**
263
+ * Parse inline Markdown into the canonical immutable Astryx AST.
264
+ *
265
+ * Unlike `parseInline`, this returns MDAST-aligned node names and fields. Math
266
+ * nodes are present only when `math: true`, and plugin extension nodes are
267
+ * inferred from the ordered `plugins` tuple.
268
+ */
269
+ export declare function parseInlineAst(text: string, sourceIds?: ReadonlySet<string>): MarkdownAstPhrasingContent[];
270
+ export declare function parseInlineAst(text: string, options: ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins): MarkdownAstPhrasingContent[];
271
+ export declare function parseInlineAst<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(text: string, options: (ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins) & {
272
+ plugins: Plugins;
273
+ }): MarkdownAstPhrasingContent<MarkdownExtensionsOf<Plugins>>[];
264
274
  export declare function parseMarkdown(input: string, sourceIds?: ReadonlySet<string>): BlockNode[];
265
275
  export declare function parseMarkdown(input: string, options: MathParseOptionsWithoutPlugins): BlockNodeWithMath[];
266
276
  export declare function parseMarkdown(input: string, options: ParseOptionsWithoutPlugins): BlockNode[];
@@ -270,8 +280,20 @@ export declare function parseMarkdown<const Plugins extends ReadonlyArray<Markdo
270
280
  export declare function parseMarkdown<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(input: string, options: MathParseOptionsWithoutPlugins & {
271
281
  plugins: Plugins;
272
282
  }): BlockNodeWithMath<MarkdownExtensionsOf<Plugins>>[];
273
- /** @internal Canonical block parse used by Markdown and Outline rendering. */
274
- export declare function parseMarkdownAst(input: string, arg?: ReadonlySet<string> | RuntimeParseOptions, isFinal?: boolean): MarkdownAstRoot<RuntimeExtensionNode>;
283
+ /**
284
+ * Parse block Markdown into the canonical immutable Astryx AST.
285
+ *
286
+ * Unlike `parseMarkdown`, this returns the MDAST-aligned root used by Markdown,
287
+ * transforms, and Outline. Math nodes are present only when `math: true`, and
288
+ * plugin extension nodes are inferred from the ordered `plugins` tuple.
289
+ */
290
+ export declare function parseMarkdownAst(input: string, sourceIds?: ReadonlySet<string>): MarkdownAstRoot;
291
+ export declare function parseMarkdownAst(input: string, options: ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins): MarkdownAstRoot;
292
+ export declare function parseMarkdownAst<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(input: string, options: (ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins) & {
293
+ plugins: Plugins;
294
+ }): MarkdownAstRoot<MarkdownExtensionsOf<Plugins>>;
295
+ /** @internal Full-parse entry point with streaming finality for Outline. */
296
+ export declare function parseMarkdownAstInternal(input: string, arg: ReadonlySet<string> | RuntimeParseOptions | undefined, isFinal: boolean): MarkdownAstRoot<RuntimeExtensionNode>;
275
297
  type IncrementalBlockNode<MathEnabled extends boolean> = MathEnabled extends true ? BlockNodeWithMath : BlockNode;
276
298
  declare const incrementalStateMode: unique symbol;
277
299
  export interface IncrementalState<MathEnabled extends boolean = false> {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@
3
3
  /**
4
4
  * @file parser.ts
5
5
  * @input Markdown string, released parse options, and optional ordered plugins
6
- * @output Canonical MDAST-aligned nodes for internal consumers plus unchanged
6
+ * @output Canonical MDAST-aligned nodes for public/server consumers plus unchanged
7
7
  * released parser-node projections; shared heading slug helpers
8
- * @position Core parser and compatibility boundary; consumed by Markdown and Outline
8
+ * @position Core parser and compatibility boundary; consumed by public parser entry,
9
+ * Markdown, and Outline
9
10
  */
10
11
 
11
12
  import { getMarkdownAstLegacyCodeLanguage, markMarkdownAstLegacyCodeLanguage } from "./ast.js";
@@ -925,11 +926,21 @@ function matchExtensionSyntax(source, offset, context, opts) {
925
926
  };
926
927
  }
927
928
  export function parseInline(text, arg) {
928
- return projectInlineNodes(parseInlineAst(text, arg), wantsLegacyRanges(arg));
929
+ return projectInlineNodes(parseInlineAstRuntime(text, arg), wantsLegacyRanges(arg));
929
930
  }
930
931
 
931
- /** @internal Canonical inline parse used by Markdown rendering. */
932
+ /**
933
+ * Parse inline Markdown into the canonical immutable Astryx AST.
934
+ *
935
+ * Unlike `parseInline`, this returns MDAST-aligned node names and fields. Math
936
+ * nodes are present only when `math: true`, and plugin extension nodes are
937
+ * inferred from the ordered `plugins` tuple.
938
+ */
939
+
932
940
  export function parseInlineAst(text, arg) {
941
+ return parseInlineAstRuntime(text, arg);
942
+ }
943
+ function parseInlineAstRuntime(text, arg) {
933
944
  const opts = resolveOptions(arg);
934
945
  const nodes = parseInlineEntry(text, opts);
935
946
  if ((opts.plugins?.transforms.length ?? 0) === 0) {
@@ -1787,11 +1798,23 @@ function parseList(lines, startIndex, ordered, opts) {
1787
1798
  // ---------------------------------------------------------------------------
1788
1799
 
1789
1800
  export function parseMarkdown(input, arg) {
1790
- return projectMarkdownRoot(parseMarkdownAst(input, arg), wantsLegacyRanges(arg));
1801
+ return projectMarkdownRoot(parseMarkdownAstInternal(input, arg, true), wantsLegacyRanges(arg));
1802
+ }
1803
+
1804
+ /**
1805
+ * Parse block Markdown into the canonical immutable Astryx AST.
1806
+ *
1807
+ * Unlike `parseMarkdown`, this returns the MDAST-aligned root used by Markdown,
1808
+ * transforms, and Outline. Math nodes are present only when `math: true`, and
1809
+ * plugin extension nodes are inferred from the ordered `plugins` tuple.
1810
+ */
1811
+
1812
+ export function parseMarkdownAst(input, arg) {
1813
+ return parseMarkdownAstInternal(input, arg, true);
1791
1814
  }
1792
1815
 
1793
- /** @internal Canonical block parse used by Markdown and Outline rendering. */
1794
- export function parseMarkdownAst(input, arg, isFinal = true) {
1816
+ /** @internal Full-parse entry point with streaming finality for Outline. */
1817
+ export function parseMarkdownAstInternal(input, arg, isFinal) {
1795
1818
  const resolved = resolveOptions(arg);
1796
1819
  const opts = isFinal ? resolved : {
1797
1820
  ...resolved,
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @file frontmatter.ts
3
+ * @input Document-start frontmatter delimiters and a typed metadata decoder
4
+ * @output A Markdown plugin plus a typed metadata reader for later transforms
5
+ * @position Optional first-party document metadata helper
6
+ */
7
+ import type { MarkdownAstRoot } from '../ast';
8
+ import { type MarkdownExtensionNode, type MarkdownPluginData, type MarkdownPluginEntry } from './protocol';
9
+ type FrontmatterRecord = Readonly<Record<string, string>>;
10
+ export interface MarkdownFrontmatterOptions<Metadata extends MarkdownPluginData> {
11
+ /** Stable plugin and metadata namespace. */
12
+ readonly name: string;
13
+ /** Converts validated key/value fields into typed document metadata. */
14
+ readonly parse: (fields: FrontmatterRecord) => Metadata;
15
+ }
16
+ export type MarkdownFrontmatterParseResult<Metadata extends MarkdownPluginData> = {
17
+ readonly status: 'none';
18
+ } | {
19
+ readonly status: 'defer';
20
+ } | {
21
+ readonly status: 'match';
22
+ readonly contentStart: number;
23
+ readonly metadata: Metadata;
24
+ };
25
+ export interface MarkdownFrontmatter<Metadata extends MarkdownPluginData> {
26
+ readonly plugin: MarkdownPluginEntry<never>;
27
+ parse(source: string, isFinal?: boolean): MarkdownFrontmatterParseResult<Metadata>;
28
+ getMetadata(document: MarkdownAstRoot<MarkdownExtensionNode>): Metadata | undefined;
29
+ }
30
+ export declare function createMarkdownFrontmatter<Metadata extends MarkdownPluginData>(options: MarkdownFrontmatterOptions<Metadata>): MarkdownFrontmatter<Metadata>;
31
+ export {};
32
+ //# sourceMappingURL=frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/frontmatter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAMpB,KAAK,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAO1D,MAAM,WAAW,0BAA0B,CACzC,QAAQ,SAAS,kBAAkB;IAEnC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,QAAQ,CAAC;CACzD;AAED,MAAM,MAAM,8BAA8B,CACxC,QAAQ,SAAS,kBAAkB,IAEjC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GACzB;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAC1B;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,kBAAkB;IACtE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC5C,WAAW,CACT,QAAQ,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAC/C,QAAQ,GAAG,SAAS,CAAC;CACzB;AAkED,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,kBAAkB,EAC3E,OAAO,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAC5C,mBAAmB,CAAC,QAAQ,CAAC,CAoE/B"}
@@ -0,0 +1,132 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file frontmatter.ts
5
+ * @input Document-start frontmatter delimiters and a typed metadata decoder
6
+ * @output A Markdown plugin plus a typed metadata reader for later transforms
7
+ * @position Optional first-party document metadata helper
8
+ */
9
+
10
+ import { createMarkdownPlugin, freezeMarkdownPluginData, isMarkdownPluginData, markMarkdownTransformTrusted } from "./protocol.js";
11
+ const ENVELOPE_KEY = 'astryx:frontmatter';
12
+ const ENVELOPE_BRAND = 'astryx.markdown.frontmatter';
13
+ const ENVELOPE_VERSION = 1;
14
+ function asDataRecord(value) {
15
+ return value != null && typeof value === 'object' && !Array.isArray(value) ? value : {};
16
+ }
17
+ function parseEnvelope(value) {
18
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
19
+ return;
20
+ }
21
+ const candidate = value;
22
+ return candidate.brand === ENVELOPE_BRAND && candidate.version === ENVELOPE_VERSION && candidate.values != null && typeof candidate.values === 'object' && !Array.isArray(candidate.values) ? candidate : undefined;
23
+ }
24
+ function readFrontmatter(source) {
25
+ const openingLength = source.startsWith('---\r\n') ? 5 : source.startsWith('---\n') ? 4 : 0;
26
+ if (openingLength === 0) {
27
+ return {
28
+ status: 'none'
29
+ };
30
+ }
31
+ const body = source.slice(openingLength);
32
+ const close = /(?:^|\r?\n)---(?=\r?\n|$)/.exec(body);
33
+ if (close == null) {
34
+ return {
35
+ status: 'defer'
36
+ };
37
+ }
38
+ const fields = Object.create(null);
39
+ for (const line of body.slice(0, close.index).split(/\r?\n/)) {
40
+ if (line.trim() === '') {
41
+ continue;
42
+ }
43
+ const separator = line.indexOf(':');
44
+ const key = line.slice(0, separator).trim();
45
+ if (separator <= 0 || key === '' || Object.hasOwn(fields, key)) {
46
+ return {
47
+ status: 'none'
48
+ };
49
+ }
50
+ fields[key] = line.slice(separator + 1).trim();
51
+ }
52
+ let end = openingLength + close.index + close[0].length;
53
+ if (source.startsWith('\r\n', end)) {
54
+ end += 2;
55
+ } else if (source[end] === '\n') {
56
+ end += 1;
57
+ }
58
+ return {
59
+ status: 'match',
60
+ end,
61
+ fields: Object.freeze(fields)
62
+ };
63
+ }
64
+ export function createMarkdownFrontmatter(options) {
65
+ if (options.name.trim() === '') {
66
+ throw new TypeError('Markdown frontmatter name must be non-empty');
67
+ }
68
+ const name = options.name;
69
+ const parse = (source, isFinal = true) => {
70
+ const parsed = readFrontmatter(source);
71
+ if (parsed.status === 'defer') {
72
+ return isFinal ? {
73
+ status: 'none'
74
+ } : parsed;
75
+ }
76
+ if (parsed.status === 'none') {
77
+ return parsed;
78
+ }
79
+ const metadata = options.parse(parsed.fields);
80
+ if (!isMarkdownPluginData(metadata)) {
81
+ throw new TypeError('Markdown frontmatter metadata must be finite JSON-like data');
82
+ }
83
+ return {
84
+ status: 'match',
85
+ contentStart: parsed.end,
86
+ metadata: freezeMarkdownPluginData(metadata)
87
+ };
88
+ };
89
+ const transform = (document, context) => {
90
+ const parsed = parse(context.source, context.isFinal);
91
+ if (parsed.status === 'none') {
92
+ return document;
93
+ }
94
+ if (parsed.status === 'defer') {
95
+ return {
96
+ ...document,
97
+ children: []
98
+ };
99
+ }
100
+ const documentData = asDataRecord(document.data);
101
+ const prior = parseEnvelope(documentData[ENVELOPE_KEY]);
102
+ const envelope = Object.freeze({
103
+ brand: ENVELOPE_BRAND,
104
+ version: ENVELOPE_VERSION,
105
+ values: Object.freeze({
106
+ ...prior?.values,
107
+ [name]: parsed.metadata
108
+ })
109
+ });
110
+ return {
111
+ ...document,
112
+ data: Object.freeze({
113
+ ...documentData,
114
+ [ENVELOPE_KEY]: envelope
115
+ }),
116
+ children: document.children.filter(node => (node.position?.end.offset ?? Infinity) > parsed.contentStart)
117
+ };
118
+ };
119
+ const plugin = createMarkdownPlugin({
120
+ name,
121
+ apiVersion: 1,
122
+ transform: markMarkdownTransformTrusted(transform)
123
+ });
124
+ return Object.freeze({
125
+ plugin,
126
+ parse,
127
+ getMetadata(document) {
128
+ const data = asDataRecord(document.data);
129
+ return parseEnvelope(data[ENVELOPE_KEY])?.values[name];
130
+ }
131
+ });
132
+ }
@@ -10,5 +10,7 @@ export { createMarkdownFenceTransform } from './semanticFence';
10
10
  export type { MarkdownFenceContext, MarkdownFenceNode, MarkdownFenceTransformOptions, } from './semanticFence';
11
11
  export { createMarkdownSourceDecoration, getMarkdownSourceDecorations, } from './sourceDecoration';
12
12
  export type { MarkdownSourceDecoration, MarkdownSourceDecorationOptions, MarkdownSourceDecorationRange, } from './sourceDecoration';
13
+ export { createMarkdownFrontmatter } from './frontmatter';
14
+ export type { MarkdownFrontmatter, MarkdownFrontmatterOptions, MarkdownFrontmatterParseResult, } from './frontmatter';
13
15
  export type { MarkdownPluginData, MarkdownExtensionNode, MarkdownTokenizerInput, MarkdownTokenizeResult, MarkdownSyntaxContribution, MarkdownSyntaxCapability, MarkdownTransformContext, MarkdownTransform, MarkdownExtensionRenderer, MarkdownExtensionRenderers, MarkdownSyntaxPluginDefinition, MarkdownTransformPluginDefinition, MarkdownPluginDefinition, MarkdownPluginEntry, MarkdownNodeOf, MarkdownExtensionsOf, } from './protocol';
14
16
  //# sourceMappingURL=index.d.ts.map